diff options
Diffstat (limited to 'website/static')
33 files changed, 39928 insertions, 0 deletions
diff --git a/website/static/.well-known/security.txt b/website/static/.well-known/security.txt new file mode 100644 index 0000000000..6c99200641 --- /dev/null +++ b/website/static/.well-known/security.txt @@ -0,0 +1,18 @@ +# Our security addresses +Contact: mailto:security-officer@FreeBSD.org +Contact: mailto:secteam@FreeBSD.org + +# Our OpenPGP key +Encryption: https://www.freebsd.org/security/so_public_key.asc + +# The codes for the languages our security contacts prefer to use +Preferred-Languages: en + +# The official URL for this file +Canonical: https://www.freebsd.org/.well-known/security.txt + +# Our security policy pages +Policy: https://www.freebsd.org/security/#reporting +Policy: https://www.freebsd.org/security/reporting/ + +Expires: 2025-12-06T00:00:00.000Z diff --git a/website/static/gifs/fastlyLogo-red-SVG.svg b/website/static/gifs/fastlyLogo-red-SVG.svg new file mode 100644 index 0000000000..c372d52649 --- /dev/null +++ b/website/static/gifs/fastlyLogo-red-SVG.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 198.27"><defs><style>.cls-1{fill:#ff282d;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="Fastly_Logo_-_Red" data-name="Fastly Logo - Red"><g id="Fastly_Logo_-_Red-2" data-name="Fastly Logo - Red"><polygon class="cls-1" points="348.44 20.35 348.44 153.94 388.57 153.94 388.57 133.53 375.31 133.53 375.31 0 348.44 0 348.44 20.35"/><path class="cls-1" d="M0,133.53H13.64V69.08H0V51.35l13.64-2.24V31.17C13.64,9.43,18.37,0,46.09,0A115.17,115.17,0,0,1,65.38,2L61.7,23.85a49.78,49.78,0,0,0-9-.78c-9.76,0-12.23,1-12.23,10.51V49.11H60.79v20H40.51v64.45H54v20.4H0Z"/><path class="cls-1" d="M334.78,127.08a53.11,53.11,0,0,1-10.54.84c-11.06.27-10.1-3.36-10.1-13.78V69.08h21v-20h-21V0H287.27V119.71c0,23.5,5.8,34.23,31.08,34.23,6,0,14.21-1.54,20.42-2.87Z"/><path class="cls-1" d="M501.7,133.63a10.14,10.14,0,1,1-10.19,10.14,10.14,10.14,0,0,1,10.19-10.14m0,18.68a8.55,8.55,0,0,0,8.51-8.54,8.5,8.5,0,1,0-8.51,8.54m1.88-3.56-2.05-3h-1.42v3h-2.29v-10H502c2.46,0,4,1.24,4,3.45a3,3,0,0,1-2.08,3.09l2.49,3.42Zm-3.47-5h1.82c1,0,1.74-.4,1.74-1.5s-.7-1.45-1.68-1.45h-1.88Z"/><path class="cls-1" d="M253.72,69V65.46A115.8,115.8,0,0,0,233.14,64c-12.5,0-14,6.63-14,10.23,0,5.08,1.74,7.83,15.29,10.79,19.8,4.45,39.69,9.09,39.69,33.64,0,23.29-12,35.32-37.21,35.32-16.88,0-33.26-3.63-45.76-6.8V127.08h20.35v3.56c8.75,1.69,17.93,1.52,22.73,1.52,13.34,0,15.49-7.17,15.49-11,0-5.29-3.82-7.83-16.32-10.37-23.56-4-42.25-12.07-42.25-36,0-22.65,15.14-31.54,40.37-31.54,17.09,0,30.08,2.65,42.59,5.83V69Z"/><path class="cls-1" d="M127.84,85.09,118,93.69a5.25,5.25,0,1,0,3.19,3.2l8.72-9.75Z"/><path class="cls-1" d="M171.25,127.07V43.46H144.37V51a55,55,0,0,0-18.11-6.77v-9.1h3.28V28.28H102.48v6.83h3.28v9.17a55.32,55.32,0,1,0,38.76,101.87l4.77,7.78h28.38V127.07Zm-26.64-26.83A28.42,28.42,0,0,1,117.73,127v-3.18h-3.22V127a28.43,28.43,0,0,1-26.68-26.89H91V96.91H87.85a28.42,28.42,0,0,1,26.66-26.65v3.16h3.22V70.25A28.42,28.42,0,0,1,144.61,97h-3.2v3.22Z"/><path class="cls-1" d="M456.58,49.11H512v20H498.75l-34,83.62c-9.74,23.48-25.74,45.59-50.1,45.59a93.67,93.67,0,0,1-19.5-2l2.43-24.39a68.7,68.7,0,0,0,10.63,1.1c11.3,0,24-7,28-19.19L401.82,69.06H388.57v-20H444v20H430.78l19.51,48h0l19.51-48H456.58Z"/></g></g></g></g></svg>
\ No newline at end of file diff --git a/website/static/security/advisories/FreeBSD-EN-25:12.efi.asc b/website/static/security/advisories/FreeBSD-EN-25:12.efi.asc new file mode 100644 index 0000000000..d33b44ce3a --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:12.efi.asc @@ -0,0 +1,130 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:12.efi Errata Notice + The FreeBSD Project + +Topic: bsdinstall(8) not copying the correct loader on systems with + IA32 UEFI firmware. + +Category: core +Module: efi +Announced: 2025-08-08 +Affects: FreeBSD 14.3 +Corrected: 2025-06-16 23:07:25 UTC (stable/14, 14.3-STABLE) + 2025-08-08 00:39:02 UTC (releng/14.3, 14.3-RELEASE-p2) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +bsdinstall(8) checks the machdep.efi_arch sysctl and depending on its value, +it either copies loader.efi or loader_ia32.efi. + +II. Problem Description + +The commit that added the machdep.efi_arch sysctl was not MFCed in time for +releng/14.3, however, the commit that added support for loader_ia32.efi in +bsdinstall(8) was. The result is that bsdinstall(8) always copies loader.efi. + +III. Impact + +bsdinstall(8) copying loader.efi regardless of the firmware's architecture +results in an unbootable system after install for systems which expect a +32-bit UEFI loader. + +IV. Workaround + +loader_ia32.efi can be manually copied to /boot/efi/efi/boot/bootia32.efi +where the EFI boot partition is mounted at /boot/efi. + +Systems which have 64-bit UEFI firmware are unaffected. Non x86 systems are +likewise unaffected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date and reboot the system. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# reboot + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:12/efi.patch +# fetch https://security.FreeBSD.org/patches/EN-25:12/efi.patch.asc +# gpg --verify efi.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in +<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 0e8890a425bc stable/14-n271710 +releng/14.3/ ce4fe4c4bfcd releng/14.3-n271435 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:12.efi.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVShUACgkQbljekB8A +Gu/B+xAAy3AcOLVmDr4YNs0PXwENZ5Xqg00TYgSXSRl/iA+wk4h7XFcaytdVUgk5 +nX0dLZGTyZoQpmdiX8HsVht95XONfdhwoPxUtWFTY9SWBYh859IjFHTpr8E/MXHH +lAmbs7H0W/lw4Fqm6xs6+esXitaBE2Q3rgl0LFI0BbEfHdGiNz/qWYXR2U+qVAPY +5aiC9tcvRU3pNLLN7XGIophVjL10k1iuwzQeKGDopzBx7qVFklRSDb1oe1BawDYh +jkn+mqzpkgqEIVdgsZSKGO5lpEMCtDwgyA7uIik/QE525oNVpsWfJ/aHbDapB+1P +pFYH/yWpI/eT3DVMnTiNhCBkBcm0pCWJZlLTKcLU19fm8wMxq01H5FqqueBLrh39 +LztN/xnmdpAoG1AytICoV86gbRy4fnCbbbhLOLWhPVfc6q2UyJUHa1LjR3LtSeNG +0f+evVM81IfG0Niynqcy/DEIem0aamFUJhqU6aJISj+aVGd9PRp2JhVllbkiR7H/ +xd3dnEHtLt6wCJh1PlK+3Sa2WuSDDRWo1WCmx1xvUI+5VWl4HL8f+YoQl8aOu0DR +XnpxyAqD+4uTXiQOhf+9HuteoTq9aePbUef5qkSQXXxOtohUL6xvq62Zb1HU6Jbs +ZpGd15oa4o4yJXTu1lEE/D/dSZhtX2rACh+GzEW9vt6lIUZENe0= +=7zQB +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:13.wlan_tkip.asc b/website/static/security/advisories/FreeBSD-EN-25:13.wlan_tkip.asc new file mode 100644 index 0000000000..4dfd91e244 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:13.wlan_tkip.asc @@ -0,0 +1,131 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:13.wlan_tkip Errata Notice + The FreeBSD Project + +Topic: net80211 TKIP crypto support fails for some drivers + +Category: core +Module: wlan_tkip +Announced: 2025-08-08 +Credits: Adrian Chadd +Affects: FreeBSD 14.3 +Corrected: 2025-06-10 23:45:16 UTC (stable/14, 14.3-STABLE) + 2025-08-08 00:39:03 UTC (releng/14.3, 14.3-RELEASE-p2) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +In order to support Temporal Key Integrity Protocol (TKIP) on modern wireless +chipsets, the net80211 wireless stack was adjusted to skip certain crypto +operations if a driver indicated that they were already done by hardware. + +II. Problem Description + +One adjustment erroneously changed a default for an operation from opt-in +to opt-out. + +III. Impact + +Older drivers may not pass flags to either opt-in or opt-out and thus +one TKIP operations is no longer executed for them given the changed +default. This leads to non-working wireless connections. + +IV. Workaround + +Users still using TKIP are highly advised to change their Cipher Suite +to CCMP as TKIP is no longer considered secure and has been deprecated +since 2012. + +No other workaround is available. Systems using CCMP are unaffected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date and reboot. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +can be updated via the freebsd-update(8) utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for erratum update" + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:13/wlan_tkip.patch +# fetch https://security.FreeBSD.org/patches/EN-25:13/wlan_tkip.patch.asc +# gpg --verify wlan_tkip.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in +<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 950343a170f0 stable/14-n271651 +releng/14.3/ a3bd81ddfe29 releng/14.3-n271436 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288009> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:13.wlan_tkip.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVSh0ACgkQbljekB8A +Gu9d9BAAhaBGWImVR+mFeKhvJFJ01a47YpxVTyyfJR+Rd+4wF1Z9YZu1OcoZyMMQ +0vSkumjR98NeMFGpH9rZg2D6dJ4JQfvF+MbFlKlQ0QCdD8El++KM3T/S3h9WVXGp +Rs5in2XMxGj36LKNZ43Okmszh/JO6AiSLkfqkt708JiV+8Fff00JugFnU9ulQeDP +k3e5hw68ohS6DS5xrlmuY3yLzySl3PcI8vAp/8fY7cLchhJsPBmoWv87mParj6AG +uIlzJoQMFCVdlv2+e8p6be2Ua68f/qp6i1wgwUzLqLrirPUe74RlnU/+hkGRMYL+ ++tkaPI/Bwdhn1xyybueBuGAJMiHi6iqlvmbORwxaTvuRZr2UTX/piCAMlWaiOlsu +REsVHc3d2bF6GkY7xx1TGYMI/+jx5Y5xrgXrpWZwcf8xzJxkMu+FOpOkzJEmqG3L +oDsvoCAOlck3/8+1R9nWMj36Q8HqhnJTr6axKNi7yRs5KC8BcTxjqM98eNSfurAe +pg818lA6xCEwgbc1M7kcVTAtQbaZUwSCaTbryr9EBBSIudVnsn7ZnrtT/yr/MLk8 +/F4KDaPKXcbWYEPIFwIV0GKkMXVltD4O4cUPO1SSXmxcrMV+9mJ0xlKmQzbCD56y +6eFZsADV0l9mGYMv3LtODycbwAiL36F2JgTiNGLrPJbkAmy9foc= +=uFgf +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:14.route.asc b/website/static/security/advisories/FreeBSD-EN-25:14.route.asc new file mode 100644 index 0000000000..8f3a13f3bc --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:14.route.asc @@ -0,0 +1,133 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:14.route Errata Notice + The FreeBSD Project + +Topic: route(8) monitor buffers too much when redirected to a file + +Category: core +Module: route +Announced: 2025-08-08 +Affects: FreeBSD 14.x +Corrected: 2025-07-21 02:13:16 UTC (stable/14, 14.3-STABLE) + 2025-08-08 00:39:04 UTC (releng/14.3, 14.3-RELEASE-p2) + 2025-08-08 00:39:17 UTC (releng/14.2, 14.2-RELEASE-p5) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +route(8)'s `monitor` command continuously reports routing changes on the system, +which may be used interactively or by other tooling. When a command's output +is redirected to a file, its standard output becomes fully buffered. + +II. Problem Description + +In FreeBSD 14.x, route(8) does not flush its standard output at distinct message +boundaries as it previously did in FreeBSD 13.x and before. As such, it could +appear that no changes are happening on the system when its output has been +redirected to a file. + +III. Impact + +Other programs that rely on `route monitor` are likely to miss changes that +they are expecting to see, unless routing tables/information are changing at +a high frequency. + +IV. Workaround + +Use `stdbuf -oL route monitor` to force the output of `route monitor` to be +line-buffered. See stdbuf(1). Programs watching `route monitor` output are +not incredibly common. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date, and restart any affected +services. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:14/route.patch +# fetch https://security.FreeBSD.org/patches/EN-25:14/route.patch.asc +# gpg --verify route.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ dd695839efd8 stable/14-n271995 +releng/14.3/ 97f34921d77b releng/14.3-n271437 +releng/14.2/ 168703212b61 releng/14.2-n269531 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278265> +<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275026> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:14.route.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVSh8ACgkQbljekB8A +Gu9SKxAAwfW3Ql0ZaqG5aIYJ1FOUBMY/F0p22E9RmO1L8xGpX6m0vzjQUrrCycHq +3Lc+QWg4IpDq9WUvfg3yuslZpRnRa679EVjeR7R/Bo7qgfAEVYVZK52g5L7kukAq +ta9Ufqltrp5UZUkYdfj1k5nROM/SfSROj8opvlwDxdwjzgr0shiY5WUfYTxkTFOA +WNSzxnjB95VLgT9PCRXv2oUvs/4N/vZtLwzxFPkfBsbLOyz0+lDZ/ub5q1tllBfi +QMRrsJ+bxAfjZtD0VutmL1kY0BaialP6/hOqTka+DuGVi3C73mk6+/xlu/ig7RUk +xsaAigN5pdfQpa2UDx+vEVp5OYHIja6rgzlZeIELv1sZLridp8kySygQ7W3k9PED +nQM6rZe4d/sp7REv/wSCK0sC6BEQ5KgZ1l89ChR8BtCb7gVj69A/OU1KoSyUkuAV +Qn8vCVr0zOBXrwlGIgP94R2qhl4smWylynKajjqT6Hgh3k4KRZMJKfFxDAQlUxWf +5m1aHD41O7h92L6IixoVAHQ0E/MtnuV9Pos5lDlDewRvUdSSfT02UahcIOoch860 +NtsFyurxnBOVPtpr92gg1aVx/u4EnP3/2NnMDWwLIM80QvsXOXZ+e6WigBJ3bJxB +FAMdoiMJyi3orwDfxnCuUBOwnnwLtxjd3iw5frZXEa5xJfmKpsA= +=YgHt +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:15.arm64.asc b/website/static/security/advisories/FreeBSD-EN-25:15.arm64.asc new file mode 100644 index 0000000000..e2da868709 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:15.arm64.asc @@ -0,0 +1,137 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:15.arm64 Errata Notice + The FreeBSD Project + +Topic: arm64 syscall(2) allows unprivileged user to panic kernel + +Category: core +Module: arm64 +Announced: 2025-09-16 +Credits: Juniper Networks, Inc. +Affects: All supported versions of FreeBSD. +Corrected: 2025-08-25 15:23:01 UTC (stable/14, 14.3-STABLE) + 2025-09-16 16:31:06 UTC (releng/14.3, 14.3-RELEASE-p3) + 2025-09-16 16:31:17 UTC (releng/14.2, 14.2-RELEASE-p6) + 2025-08-25 15:23:22 UTC (stable/13, 13.5-STABLE) + 2025-09-16 16:31:26 UTC (releng/13.5, 13.5-RELEASE-p4) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +The FreeBSD arm64 kernel implements a 32-bit compatibility layer, enabling +execution of unmodified 32-bit arm binaries on a 64-bit system. + +FreeBSD implements a pseudo system call, syscall(2), which lets the caller +invoke a system call selected using the first system call argument. + +II. Problem Description + +The 32-bit compatibility layer implements syscall(2). It performs some +validation of the system call parameters and explicitly calls panic() to +panic the system if an unexpected state is reached. + +It is possible to construct a program which can reach this unexpected state, +resulting in a panic. In particular, no particular privileges are required +to do so. + +III. Impact + +An unprivileged user may be able to trigger a panic. + +IV. Workaround + +No workaround is available. Non-arm64 platforms are unaffected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:15/arm64.patch +# fetch https://security.FreeBSD.org/patches/EN-25:15/arm64.patch.asc +# gpg --verify arm64.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in +<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 17d87881a363 stable/14-n272249 +releng/14.3/ 99012995b4c6 releng/14.3-n271440 +releng/14.2/ 722746b39e6e releng/14.2-n269534 +stable/13/ 98ac13c4baf5 stable/13-n259404 +releng/13.5/ 751971e55454 releng/13.5-n259175 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:15.arm64.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBEACgkQbljekB8A +Gu+13w//fHfH1hAOg+FGwV3ZoMh2oEVd+VmkLg/CdghL9T+dGwqzIMOliXMKhaZq +Nzk++lmKlzdpuDEqaw1ikj+bJ+knhrZyAziTlxpB2uly6K119hchAU5TQK2M6D4W +8aQWxeJMPxobsfxi9JciVMWcQK9XsurwUzlCDuLvGgUMPPaMVdy89U86NnKo66eE +fjK2l1Mc730wtisTuTLkY1SHPBchvm20ehu8BVpx4eBEHnecqRaUxQHy2yxTi+/0 +IKrwnpvz8S7/QLcED6TSCKsuLDY/uOx8x6N9PlHHvcLay/ImyvhTPavREld/b3nM +YC8fFb7bjguPZCC222nr/J+/YkD+2+EqVHPOAq7HxVT0uqss7BL9qwIywg0CIhvT +G3fw121L7cwXI/f/Hw6coVTFHnNXUB48FyIFkEXPdMxrNBUSE/KejYjkkJ2YaRir +kXZboMMOoxIf0NPNmv78v+PBj3jpbPP2epjhIk0I5D6uNzdjXEqRlRNgBhqc01Qn +veu+1tEox5Y0Zp4Mum0EipuTaZMjeT4hwmt9zwogsYEZFnyIvilzIOc3zEFRB4Y2 +IB1EUkw49V/zzHn5KnVujaUiVOdVUxe6G8txFcPIT66mPdJZmKO1fbD3pR/0NDj6 +Smj07jNL8PskCLuoe0MmMFiNJI3CHTh+6Ly39j5UpnSsPCPRTyM= +=58zg +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:16.vfs.asc b/website/static/security/advisories/FreeBSD-EN-25:16.vfs.asc new file mode 100644 index 0000000000..648944e6a9 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:16.vfs.asc @@ -0,0 +1,131 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:16.vfs Errata Notice + The FreeBSD Project + +Topic: copy_file_range(2) fails to set output parameters + +Category: core +Module: vfs +Announced: 2025-09-16 +Affects: FreeBSD 14.3 +Corrected: 2025-08-23 21:25:20 UTC (stable/14, 14.3-STABLE) + 2025-09-16 16:31:07 UTC (releng/14.3, 14.3-RELEASE-p3) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +copy_file_range(2) is a system call which takes two file descriptors as input +and copies data from one file to the other. + +II. Problem Description + +The copy_file_range(2) system call accepts two optional pointer arguments, +inoffp and outoffp. When non-NULL, the kernel is to use their values to +determine the starting offsets for the input and output files, respectively. +In this case, the seek offset corresponding to the file descriptor is not +used or updated. + +When finishing the copy, the kernel is supposed to write updated offsets to +the pointed-to values. However, it does not do so. + +III. Impact + +Applications which rely on this behaviour may behave incorrectly. No such +applications exist in the base system. + +IV. Workaround + +No workaround is available. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r now + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:16/vfs.patch +# fetch https://security.FreeBSD.org/patches/EN-25:16/vfs.patch.asc +# gpg --verify vfs.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in +<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 2fd0083fcc23 stable/14-n272229 +releng/14.3/ d1e981cbf3bd releng/14.3-n271441 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288985> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:16.vfs.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBMACgkQbljekB8A +Gu8ZLxAAql8vK7+rcHUDI0gKQu9TC2jlNC7EZcDwMupCnbjXFv8mSbC48XWeXUYk +j6DLDK8BWGOs4+1xftFlHCgu4yPLm7YhcgiUIhqlViAhNBfwIH9YDP/3heYEkvBn +Ns6sh/jtRkB3t+j1fbrcMFZZT2G1plCr4GTZS1fEE+YXQ6NNwo90liSi5dDh2m2Y +1OvLjdRwVj/BzVNqygiVJGXkof2SS3KsoVMv8CsoBZnSgvXyIPjgBhqJIjzh6my7 +BqRmylf+8tZXAKCR0Ylp6qFdI1gEcxWNXyadfUuigAoQFiAFSOX/T1NYYtpK7koH +IROnhKxU6TKj1EhvPrV40I+vdwBYczTZlXIFRrQw0CI7sDIus53T94rmUaqwfY+L +0yiW7gnqwujzaFkv6u9biAoVvm0FHuqq+tsOeB5k344nQ5BrbzMKVatPw2J3HG53 +alalSlMQzgKZYfCkQPemzusVJIlkazJ5r2kMeHzKukfMtjCLyOP+K/evo+Y0HCHh +eOwNoRLNdLra92GGlk643bKBx8pbC4J+FYXq7/+/MHQkAFX8GWZ5XoMjqIaq/e1r +poa72xNwSFrPLbbWkBXf/kknifVv98/VPRE4guzgwNjBo5wVUNzRhhVUsSmzEHPe +3ris0e+OD+te5gqfp5+cKaQS7RUXItXtGO/FzJHl+mmkEfrkD9I= +=q5E4 +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:17.bnxt.asc b/website/static/security/advisories/FreeBSD-EN-25:17.bnxt.asc new file mode 100644 index 0000000000..df6b461cfc --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:17.bnxt.asc @@ -0,0 +1,140 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:17.bnxt Errata Notice + The FreeBSD Project + +Topic: bnxt(4) fails to set media type in some cases + +Category: core +Module: bnxt +Announced: 2025-09-16 +Affects: FreeBSD 14.3 +Corrected: 2025-06-22 07:18:55 UTC (stable/14, 14.3-STABLE) + 2025-09-16 16:31:08 UTC (releng/14.3, 14.3-RELEASE-p3) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +The bnxt(4) driver provides support for Broadcom NetXtreme-C/NetXtreme-E Family +of Ethernet controllers. A key function of the driver is to report the various +supported physical media types and operational modes (e.g., 1000base-T, +40GBASE-AOC, full-duplex, autoselect) to the operating system's ifmedia +interface. This allows network administrators to view and configure the +interface link settings. + +II. Problem Description + +A logic error was introduced into the bnxt(4) driver which prevented the proper +population of the supported media list for several physical connection types. +Inside the function responsible for building this list, a switch statement +incorrectly used return statements instead of break statements. This caused +the function to exit prematurely after identifying certain media types, +including common BASE-T (copper), 40G Active Optical Cable (AOC), and 1G-CX +connections, before the corresponding speed and duplex options could be +registered with the network subsystem. + +III. Impact + +For network controllers using the affected media types, the driver fails to +advertise any supported link modes. An administrator running ifconfig(8) on +the interface would see incorrect media (unknown). Because of this, the +network interface may be unable to establish a link, as the operating system +cannot properly configure it or initiate auto-negotiation. The network port +will be unusable. + +IV. Workaround + +No workaround is available. Only systems that uses bnxt(4) device with the +affected media types are affected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r now + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:17/bnxt.patch +# fetch https://security.FreeBSD.org/patches/EN-25:17/bnxt.patch.asc +# gpg --verify bnxt.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile your kernel as described in +<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the +system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 33f65f12eba1 stable/14-n271757 +releng/14.3/ c07b1838f9c9 releng/14.3-n271442 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=33f65f12eba1> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287395> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:17.bnxt.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBUACgkQbljekB8A +Gu//GBAAu3k3rFlqFKbSgq38xldf8fFngj/IuLa4BjB2lcTa7Rpy+6vxlFxXyqVk +9VVXf+tkXNhQ5ngY52SqMDdlG0OQdr+rwPcB8bI2nw+1DW1FRMVvBN7PlJrGgs2N +OtE6I4Wy+IK7vyzEgs8P3Kq3U7oXQVz/jJ3n1DmmjxlKfNqlo3eOGDlNZgTdFF2h +NbZUW4CGZTQxV4Ihq7Zg99bJw38o6WkOjkBkd7/djQfLm9aufVoWPN7SDaVnDun0 +vtWTTXrxsmPfVZB0sxdhYLjKPX+4GdVype0k3A26K50dTNVh5GAhWzH1LqFS6BR4 +DveE4/02bjaTAqK1XW+08JoGqibzmOTt8mUOlKL1aomACgmFc2Lzj33Qd6z1JdJB +6XYTcAoi2Kz94VHBMYjgWOBjiw66YryEyNpHJkFCfWnA3jgZB9TKZn2FZPxGBbvM +6an5ZcjaKHv1X+en2Fh8Ri1Hq4CKN/SmI/Sp0B28hXv8MQCNOnTqxqgdKgg2xQnD +0BasLt7y8y4rAHed+znWW1gRHWLP9q4FLqdvargtdMO81N2n/fm8jKe+SD2YNfTQ +Nvs29hRzs/thxI1gJMhDmmHkprGOyy6fzdZLtUjqhPh2l/YvHq32i/iNKpVfCy5v +hHpd38wxOpTs5nk4qbVZlS2DgRuTSO/VU0IMphaIwBhwHkZaoWY= +=jvzm +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-EN-25:18.freebsd-update.asc b/website/static/security/advisories/FreeBSD-EN-25:18.freebsd-update.asc new file mode 100644 index 0000000000..879a139248 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-EN-25:18.freebsd-update.asc @@ -0,0 +1,140 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-EN-25:18.freebsd-update Errata Notice + The FreeBSD Project + +Topic: freebsd-update(8) installs libraries in incorrect order + +Category: core +Module: freebsd-update +Announced: 2025-09-30 +Credits: Graham Perrin +Affects: All supported versions of FreeBSD. +Corrected: 2025-09-25 19:26:37 UTC (stable/15, 15.0-ALPHA4) + 2025-09-25 19:27:06 UTC (stable/14, 14.3-STABLE) + 2025-09-30 15:37:15 UTC (releng/14.3, 14.3-RELEASE-p4) + 2025-09-30 15:37:24 UTC (releng/14.2, 14.2-RELEASE-p7) + 2025-09-25 19:27:34 UTC (stable/13, 13.5-STABLE) + 2025-09-30 15:37:34 UTC (releng/13.5, 13.5-RELEASE-p5) + +For general information regarding FreeBSD Errata Notices and Security +Advisories, including descriptions of the fields above, security +branches, and the following sections, please visit +<URL:https://security.FreeBSD.org/>. + +I. Background + +The freebsd-update(8) utility is used to fetch, install, and rollback +binary updates to the FreeBSD base system. In addition to security and +errata updates within a release (its original purpose), freebsd-update(8) +can be used to upgrade to a newer FreeBSD release. + +II. Problem Description + +When installing updates, freebsd-update(8) did not enforce ordering between +the C standard library ("libc") and the system library ("libsys") which was +introduced in FreeBSD 15.0. + +III. Impact + +When using freebsd-update(8) to upgrade a system from FreeBSD 13.x or 14.x to +FreeBSD 15.0, freebsd-update(8) would install a new libc which depends on +libsys before the libsys library existed. This resulted in the rest of the +update failing to install and a mostly-unusable system, with only statically +linked binaries (e.g. in /rescue) functioning. + +IV. Workaround + +No workaround is available, but this misbehaviour only applies to using +freebsd-update(8) to upgrade to FreeBSD 15.0; applying security and errata +updates (including this one) within a release branch is unaffected. + +V. Solution + +Upgrade your system to a supported FreeBSD stable or release / security +branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install + +2) To update your system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/EN-25:18/freebsd-update.patch +# fetch https://security.FreeBSD.org/patches/EN-25:18/freebsd-update.patch.asc +# gpg --verify freebsd-update.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/15/ 8134e7f4b406 stable/15-n280326 +stable/14/ e26928669f39 stable/14-n272484 +releng/14.3/ 978e04ff5bcf releng/14.3-n271445 +releng/14.2/ 3447fea3523b releng/14.2-n269536 +stable/13/ 87eb52f1b061 stable/13-n259445 +releng/13.5/ ab91dd76ff72 releng/13.5-n259177 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289769> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-25:18.freebsd-update.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjb+x0ACgkQbljekB8A +Gu8DQhAAt4nGFTHJcC4dVceeanMY4+p8zUqtrjGP1wO+dgnBbPJuHteMlaK8bi0N +A1f+XRCcbHN7OUZz0k+WgNsFOC583Zg29l+Oe6DvgRzyjUhp7q70/vgEUYbTn2eM +CeXL0GNP9h/UYcqmpot4bO0VvXf9g6qG6qBqYN31eSuDBWcRLLAOzQwbWTLxZYgB +vYDPTqMSOTygGJEiSwGDkywE45N0JvT/GA9kNiu9uh5xL0dQLgwi07BB3+bQ3rNx +hB5sK5EJSa0FcRmpSxXvtQJK5l9eIYkAcFUo0K4/UaSknIFqSOr7j4zS3MOE1PPa +7u+ZJY3SMYg9/YRlRpLs7FGe8t+Oz/1IFgjJ1bJVHZCA55kGaB9toh+wunGsSUHc ++DzPGC0PYmcVLtk75WgjjkofCRCco8Dx3QlLfEUKxzNJFL+LwfE+zi5Pk//GJcr2 +V6RipeMNJGc60N/Zz2X95ut/43/tOBFh157oSXnVFdTbDJ7zc16EvjH99IIwlkEy +pasLr0i0XklormpAyUkddA3z57qy3580/sZf07QUHrQJQfy738qPf1QY6ejk560D +INBXdJk5FNJAYiogMrHyK0N1xX5WHk6qbbiAOmSefFCKcB7uL5CPcu6l8D0sAtyP +CbzuTLGqCWiDBT0aLK1xn1MNQMPT4PL7JhWqrSJnQpicgibqAsg= +=8oNH +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-SA-25:07.libarchive.asc b/website/static/security/advisories/FreeBSD-SA-25:07.libarchive.asc new file mode 100644 index 0000000000..f1242dd39a --- /dev/null +++ b/website/static/security/advisories/FreeBSD-SA-25:07.libarchive.asc @@ -0,0 +1,136 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-25:07.libarchive Security Advisory + The FreeBSD Project + +Topic: Integer overflow in libarchive leading to double free + +Category: contrib +Module: libarchive +Announced: 2025-08-08 +Affects: All supported versions of FreeBSD. +Corrected: 2025-06-19 22:47:34 UTC (stable/14, 14.3-STABLE) + 2025-08-08 00:39:05 UTC (releng/14.3, 14.3-RELEASE-p2) + 2025-08-08 00:39:19 UTC (releng/14.2, 14.2-RELEASE-p5) + 2025-06-20 20:43:32 UTC (stable/13, 13.5-STABLE) + 2025-08-08 00:39:29 UTC (releng/13.5, 13.5-RELEASE-p3) +CVE Name: CVE-2025-5914 + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit <URL:https://security.FreeBSD.org/>. + +I. Background + +The libarchive(3) library provides a flexible interface for reading and +writing streaming archive files such as tar(1) and cpio(1), and has been the +basis for the FreeBSD implementation of the tar(1) and cpio(1) utilities +since FreeBSD 5.3. + +II. Problem Description + +An integer overflow in the archive_read_format_rar_seek_data() function may +lead to a double free problem. + +III. Impact + +Exploiting a double free vulnerability can cause memory corruption. This in +turn could enable a threat actor to execute arbitrary code. It might also +result in denial of service. + +IV. Workaround + +No workaround is available. + +V. Solution + +Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your vulnerable system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +# fetch https://security.FreeBSD.org/patches/SA-25:07/libarchive.patch +# fetch https://security.FreeBSD.org/patches/SA-25:07/libarchive.patch.asc +# gpg --verify libarchive.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>. + +Restart all daemons that use the library, or reboot the system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/14/ 6dad4525a291 stable/14-n271728 +releng/14.3/ fb780a82dfbd releng/14.3-n271438 +releng/14.2/ c0979bd2734f releng/14.2-n269532 +stable/13/ f47afeb2ce1e stable/13-n259312 +releng/13.5/ 798b7b161a71 releng/13.5-n259173 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://github.com/libarchive/libarchive/pull/2598> +<URL:https://github.com/advisories/GHSA-7376-x4rm-3v8x> +<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-5914> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-25:07.libarchive.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVSiEACgkQbljekB8A +Gu9QGg/9Gri16tBoEsU57UcI3MlbHYGHSXb3Bqs+EgAfxeLjSB58GH1zDUjgjVmT +js6QN6scVbyX4SHQyM4nBw1zn5D7Ejhr/1nrnkbr98YWJn6OZzadp9ANNO2joclx +QBD6Gztk9bCPMPtSyMCTe7yOtvcYWoNzHQfaIU+xdfRmlRFNv/VzaUL/vfGdTF1a ++yJ0BEB0oNLlRpCFayDXpFquxe72Uwc2qaYKd5cuEHNrXoo54KZC7fSH1lJR5ZiH +puPz/mxp3sY/zdWwNvmuFxZTuAIgfLiovV1Hr/UbzyoOfhqtZUuPuXkSS1JQAfuo +9lSd71E8ZB11MSUZ23kfUMO8KMAgt+d47UGHC2v/uU2t9CcSpc7IpO7khZpRGisE +DjwQ0XgMu5Csa7YBB++tulOsESlNqlcVaredBqRaT8h7ClTQ4pNguhkJy+mRm0m1 +3nRYKoG7xejJIArrg+aTu5HboAPGINwbX1m2dOIhI/P6hKCMxoZm4P5ubgxDIXIM +Ofv19plmhEVACSPb+uzEvIke82R51aGyCnVAjORL6fNX5SkZoLZb5VDJTr5F3BdL +90ZOgWpKCwD6r7K65unDA7BuHz/VntNNR0QdxO3+fJk/Bmqo8mykAAU5LO0JmWUw +H4mgUonPalkZag2pYFJpixqV/BPa9tad2xXRfKiFzsRsawfzrJA= +=fwMp +-----END PGP SIGNATURE----- diff --git a/website/static/security/advisories/FreeBSD-SA-25:08.openssl.asc b/website/static/security/advisories/FreeBSD-SA-25:08.openssl.asc new file mode 100644 index 0000000000..339a9ce084 --- /dev/null +++ b/website/static/security/advisories/FreeBSD-SA-25:08.openssl.asc @@ -0,0 +1,207 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-25:08.openssl Security Advisory + The FreeBSD Project + +Topic: Multiple vulnerabilities in OpenSSL + +Category: contrib +Module: openssl +Announced: 2025-09-30 +Credits: Stanislav Fort (Aisle Research) +Affects: All supported versions of FreeBSD. +Corrected: 2025-09-30 15:26:14 UTC (stable/15, 15.0-ALPHA4) + 2025-09-30 15:28:38 UTC (stable/14, 14.3-STABLE) + 2025-09-30 15:37:16 UTC (releng/14.3, 14.3-RELEASE-p4) + 2025-09-30 15:37:25 UTC (releng/14.2, 14.2-RELEASE-p7) + 2025-09-30 15:30:02 UTC (stable/13, 13.5-STABLE) + 2025-09-30 15:37:35 UTC (releng/13.5, 13.5-RELEASE-p5) +CVE Name: CVE-2025-9230, CVE-2025-9231, CVE-2025-9232 + +For general information regarding FreeBSD Security Advisories, +including descriptions of the fields above, security branches, and the +following sections, please visit <URL:https://security.FreeBSD.org/>. + +I. Background + +FreeBSD includes software from the OpenSSL Project. The OpenSSL Project is a +collaborative effort to develop a robust, commercial-grade, full-featured +Open Source toolkit for the Transport Layer Security (TLS) protocol. It is +also a general-purpose cryptography library. + +II. Problem Description + +* Out-of-bounds read & write in RFC 3211 KEK Unwrap (CVE-2025-9230) +Affects: FreeBSD 15.x, 14.x, and 13.x + +An application trying to decrypt cryptographic message syntax (CMS) messages +encrypted using password based encryption can trigger an out-of-bounds read +and write. + +* Timing side-channel in SM2 algorithm on 64 bit ARM (CVE-2025-9231) +Affects: FreeBSD 15.x only + +A timing side-channel which could potentially allow remote recovery of the +private key exists in the SM2 algorithm implementation on 64-bit ARM +platforms. + +* Out-of-bounds read in HTTP client no_proxy handling (CVE-2025-9232) +Affects: FreeBSD 15.x and 14.x only + +An application using the OpenSSL HTTP client API functions may trigger an +out-of-bounds read if the "no_proxy" environment variable is set and the host +portion of the authority component of the HTTP URL is an IPv6 address. + +III. Impact + +* Out-of-bounds read & write in RFC 3211 KEK Unwrap (CVE-2025-9230) +Affects: FreeBSD 15.x, 14.x, and 13.x + +The out-of-bounds read may trigger a crash which leads to denial of service +for an application. The out-of-bounds write can cause a memory corruption +which can have various consequences including a denial of service or +execution of attacker-supplied code. + +Although the consequences of a successful exploit of this vulnerability +could be severe, the probability that an attacker would be able to +perform it is low. Password based (PWRI) encryption support in CMS +messages is very rarely used. + +* Timing side-channel in SM2 algorithm on 64 bit ARM (CVE-2025-9231) +Affects: FreeBSD 15.x only + +A timing side-channel in SM2 signature computations on 64 bit ARM platforms +could allow recovering the private key by an attacker. + +OpenSSL does not directly support certificates with SM2 keys in TLS, and so +this CVE is not relevant in most TLS contexts. However, it is possible to +add support for such certificates via a custom provider. + +* Out-of-bounds read in HTTP client no_proxy handling (CVE-2025-9232) +Affects: FreeBSD 15.x and 14.x only + +An out-of-bounds read can trigger a crash which leads to denial of service +for an application. + +The OpenSSL HTTP client API functions can be used directly by applications +but they are also used by the OCSP client functions and CMP (Certificate +Management Protocol) client implementation in OpenSSL. However the URLs used +by these implementations are unlikely to be controlled by an attacker. + +In this vulnerable code the out of bounds read can only trigger a crash. +Furthermore the vulnerability requires an attacker-controlled URL to be +passed from an application to the OpenSSL function and the user has to have +a "no_proxy" environment variable set. + +IV. Workaround + +No workaround is available. Several of the issues have mitigating factors. +Please see the Impact section for more details. + +V. Solution + +Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +Perform one of the following: + +1) To update your vulnerable system via a binary patch: + +Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms, +or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8) +utility: + +# freebsd-update fetch +# freebsd-update install +# shutdown -r +10min "Rebooting for a security update" + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +[FreeBSD 15.x] +# fetch https://security.FreeBSD.org/patches/SA-25:08/openssl-15.patch +# fetch https://security.FreeBSD.org/patches/SA-25:08/openssl-15.patch.asc +# gpg --verify openssl-15.patch.asc + +[FreeBSD 14.x] +# fetch https://security.FreeBSD.org/patches/SA-25:08/openssl-14.patch +# fetch https://security.FreeBSD.org/patches/SA-25:08/openssl-14.patch.asc +# gpg --verify openssl-14.patch.asc + +[FreeBSD 13.5] +# fetch https://security.FreeBSD.org/patches/SA-25:08/openssl-13.patch +# fetch https://security.FreeBSD.org/patches/SA-25:08/openssl-13.patch.asc +# gpg --verify openssl-13.patch.asc + +b) Apply the patch. Execute the following commands as root: + +# cd /usr/src +# patch < /path/to/patch + +c) Recompile the operating system using buildworld and installworld as +described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>. + +Restart all daemons that use the library, or reboot the system. + +VI. Correction details + +This issue is corrected as of the corresponding Git commit hash in the +following stable and release branches: + +Branch/path Hash Revision +- ------------------------------------------------------------------------- +stable/15/ 4d6fd774b5b3 stable/15-n280387 +stable/14/ 270158508d7c stable/14-n272541 +releng/14.3/ 75d258af9fe9 releng/14.3-n271446 +releng/14.2/ 6a0d914d9c3e releng/14.2-n269537 +stable/13/ c0dbaf2b5dbd stable/13-n259448 +releng/13.5/ ae7c74cfa531 releng/13.5-n259178 +- ------------------------------------------------------------------------- + +Run the following command to see which files were modified by a +particular commit: + +# git show --stat <commit hash> + +Or visit the following URL, replacing NNNNNN with the hash: + +<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN> + +To determine the commit count in a working tree (for comparison against +nNNNNNN in the table above), run: + +# git rev-list --count --first-parent HEAD + +VII. References + +<URL:https://openssl-library.org/news/secadv/20250930.txt> + +<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-9230> +<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-9231> +<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-9232> + +The latest revision of this advisory is available at +<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-25:08.openssl.asc> +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjb+z4ACgkQbljekB8A +Gu8kgA//TsqChpypUuth9KRbWpU0noUkxkbIS1CI1YYRmZn6GF52YNhe9enKN4Gc +PeUSZOsfbABv0UGfUPbaD4VifGni/ss/bhSK5nzmfbOLDbnOX1oodLVNhspDjv9K +kJPz7C3zzUrNchCZzDRvrulMXeoYOKmqY/Mc0VViXqeg2k6IqXlCPm62jFc4Glpw +g0pvTyXNhbebuP/XGGYq4nQW2ZUX+Z6yvKqCn8d/7YHRRb48KP7c5LCryUU3UdQa +pjcHX0U8dYsJlQIqWH7HPn9RrWX87EN5v7csZN+fV030lgtnsTsFRK3TxrdTTvxt +JgyNQVXy/RTmd1tQLo1dVZRjdav5MBYVBxgmweL54VcPYngTZWjEY7HjUr0WWU32 +1Fhf7Bs4q+vWalDkyA8nxyXPG4Lq018yRRxwKebsRy2fm5SqlJSK5g7TNRvo0QfM +LnfZItuya9flw6r3I9ypjKaY1WAz5Kzt83yr2be7GzLEDCuCd882JeYwmqyRnUKQ ++/IPbE7VM3oK7lzJfVuKyRxWPXWLxAaEDKNTafSNWfsz/TolyBxsF6obYaZOkw1C +mstsaaMnHdV9+GktwavCRVV6M0WK4o7xvn1nUSHPwKWpq4dfjH7syujeO483+pz3 +tZoLEkWhaNn3KmIQKbl+t+CjzDRoshzZg6Xl1UVoZvrtOyX/IUY= +=nUv2 +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:12/efi.patch b/website/static/security/patches/EN-25:12/efi.patch new file mode 100644 index 0000000000..cd15bf1b89 --- /dev/null +++ b/website/static/security/patches/EN-25:12/efi.patch @@ -0,0 +1,59 @@ +--- stand/efi/loader/bootinfo.c.orig ++++ stand/efi/loader/bootinfo.c +@@ -447,9 +447,15 @@ + module = *modulep; + file_addmetadata(kfp, MODINFOMD_MODULEP, sizeof(module), &module); + #endif +-#if defined(EFI) && !defined(__i386__) ++#ifdef EFI ++#ifndef __i386__ + file_addmetadata(kfp, MODINFOMD_FW_HANDLE, sizeof(ST), &ST); + #endif ++#if defined(__amd64__) || defined(__i386__) ++ file_addmetadata(kfp, MODINFOMD_EFI_ARCH, sizeof(MACHINE_ARCH), ++ MACHINE_ARCH); ++#endif ++#endif + #ifdef LOADER_GELI_SUPPORT + geli_export_key_metadata(kfp); + #endif +--- sys/amd64/amd64/machdep.c.orig ++++ sys/amd64/amd64/machdep.c +@@ -1691,6 +1691,27 @@ + efi_map_sysctl_handler, "S,efi_map_header", + "Raw EFI Memory Map"); + ++static int ++efi_arch_sysctl_handler(SYSCTL_HANDLER_ARGS) ++{ ++ char *arch; ++ caddr_t kmdp; ++ ++ kmdp = preload_search_by_type("elf kernel"); ++ if (kmdp == NULL) ++ kmdp = preload_search_by_type("elf64 kernel"); ++ ++ arch = (char *)preload_search_info(kmdp, ++ MODINFO_METADATA | MODINFOMD_EFI_ARCH); ++ if (arch == NULL) ++ return (0); ++ ++ return (SYSCTL_OUT_STR(req, arch)); ++} ++SYSCTL_PROC(_machdep, OID_AUTO, efi_arch, ++ CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, ++ efi_arch_sysctl_handler, "A", "EFI Firmware Architecture"); ++ + void + spinlock_enter(void) + { +--- sys/x86/include/metadata.h.orig ++++ sys/x86/include/metadata.h +@@ -34,6 +34,7 @@ + #define MODINFOMD_EFI_FB 0x1005 + #define MODINFOMD_MODULEP 0x1006 + #define MODINFOMD_VBE_FB 0x1007 ++#define MODINFOMD_EFI_ARCH 0x1008 + + struct efi_map_header { + uint64_t memory_size; diff --git a/website/static/security/patches/EN-25:12/efi.patch.asc b/website/static/security/patches/EN-25:12/efi.patch.asc new file mode 100644 index 0000000000..ac25268b3a --- /dev/null +++ b/website/static/security/patches/EN-25:12/efi.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVShwACgkQbljekB8A +Gu96qRAAw0SdIOM6CoKh6R91MNsbA4wBL4TtrlBG8pPBDkhP8N1zn3hYOFu10MA8 +hEMB08WdHm6ruLG8Hlb7toVIvs2xM83CUZnywDvAHryuCZ81/JrzPU7MKJCAhz8/ +wqhGN56qsn9R7jSNYS4KgGSZlK+742OJD9hRgbUQ57ZRlpN0/VLRovTPQ9KPVPEG +OaNKZh4vcAKjIYHpLmKdtKnM7BY7Ep4r9ZUfIck147PiV1T6b4eC/k4ZjIXnKLX5 +EfxB93r7DaOYSsyBI8IDMMyJFD7JcsWWzacoOoLqak0YciuaJAFFObJ8r5EpOIH/ +YfC0r+siD4tL+RYd4DlSNdB9xLhLA9tGQ4x1IMJspMj0vXb2QY+docgUG6QUzqCI +cUaZSm7kWnyELir4NfYHocpRZP8dTQzB0kLkXCz8DY8crhhhMEwfLBKoz7j7mMTL +d+M5cSNqwbHRrSC1DG9BrC8r4LWmZ7Rtbj90sTtcTCv9Ue5K4TOW9+h8p08LpSHk +p93Jp7SQxy8qniaANnciXgjXS48HlReWL1GbFXI372M01qNAxdP3ZysvUpm9OKuV +KEyYsyhe+324fKKtEhq5hSJD3eyCycih3eN9/VCDOQqKEnfG4Y9+Mch7MiQt3Z3i +1Nc+Ri9sUgpE3fXMa/OEapu6CX9QLUSkLwsscP/wIRvasbX1qQw= +=rniG +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:13/wlan_tkip.patch b/website/static/security/patches/EN-25:13/wlan_tkip.patch new file mode 100644 index 0000000000..b26adf8fb6 --- /dev/null +++ b/website/static/security/patches/EN-25:13/wlan_tkip.patch @@ -0,0 +1,13 @@ + sys/net80211/ieee80211_crypto_tkip.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +--- sys/net80211/ieee80211_crypto_tkip.c.orig ++++ sys/net80211/ieee80211_crypto_tkip.c +@@ -370,7 +370,7 @@ + /* + * Strip the ICV if hardware has not done so already. + */ +- if (rxs != NULL && (rxs->c_pktflags & IEEE80211_RX_F_ICV_STRIP) == 0) ++ if ((rxs == NULL) || (rxs->c_pktflags & IEEE80211_RX_F_ICV_STRIP) == 0) + m_adj(m, -tkip.ic_trailer); + + return 1; diff --git a/website/static/security/patches/EN-25:13/wlan_tkip.patch.asc b/website/static/security/patches/EN-25:13/wlan_tkip.patch.asc new file mode 100644 index 0000000000..a757c7505d --- /dev/null +++ b/website/static/security/patches/EN-25:13/wlan_tkip.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVSh4ACgkQbljekB8A +Gu/8XxAAyLbpO5IQL14hklDvN8E6jJb3+71TG5cH7e8mTPMQ0hFVer9CrWIxm8JC +QqWYHOxV+ahuopQOcQz8Km1jJGB88gLTPNsyD1V8KF37HIfsXpuM8pKV2UuJaU9w +TzlYflsfL4OTgKhqgplPG4rdo5na1G+UoslScpX+0rm8EhpZCtd4w5TNOKOuQI5f +nnNPjGboFfudzlTJF19bZlZzJJoHSeQHpqNYi/ZBeRMzhHYlKLvpDATW3j31tklL +GM04iT2Rlrco2BB7WBiftn2te6Ok/3Zv7UVyqSUPdi/v+pNmn5BuXE2+8bNrKP84 +OomUsh5dfw1E/J2cb+Wh0J7nExUa9RtbSFXqVlZgLyos5DIDQ6wDuuMNTcOFhPnJ +mvIkDrfBLPS8pWWSPEuajaPvtG3BkKy5JiK0pxfJlvx6MA7DA0myhBAjm27n5sxb +r+18h2ra9umZzvIxBzs3qTnxo/1V//J2C/B1EuoR2oBU532mk5CooZQuBbzUQ+5P +EsqzMGBUf2Q+h9V6Jr87hdLgMCc33yNlNgQSpNq4QIKx42l0SSNaQhc4RRfs8fR/ +gRCC+Xx9Fdzx7FNvnQMJV8F6TxDDfetM4oh6FaGlCFBosVJJxPMlz8XFecgwi0q4 +rKhYthBbfc5wCGIWhnYvP7xWB/dZ9nbNcU6RKGhNu8UJi0Luf/c= +=np7v +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:14/route.patch b/website/static/security/patches/EN-25:14/route.patch new file mode 100644 index 0000000000..fcdde605ba --- /dev/null +++ b/website/static/security/patches/EN-25:14/route.patch @@ -0,0 +1,10 @@ +--- sbin/route/route_netlink.c.orig ++++ sbin/route/route_netlink.c +@@ -733,6 +733,7 @@ + print_nlmsg_generic(h, hdr, cinfo); + } + ++ fflush(stdout); + snl_clear_lb(&h->ss_cmd); + } + diff --git a/website/static/security/patches/EN-25:14/route.patch.asc b/website/static/security/patches/EN-25:14/route.patch.asc new file mode 100644 index 0000000000..2921d98028 --- /dev/null +++ b/website/static/security/patches/EN-25:14/route.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVSiAACgkQbljekB8A +Gu+bhQ//VsSVSQD09d5QSCn36S0WaBsCDN2NbeROFoh59GBgj2PJtErMd7FhISpA +eAKk55yJ42irIRCPRZtozWg2UWoiBKb43kHzZqdmW1SAPKHP4BQOmTiM7X033qiD +yzap8t2R2kniBta8fzfYnC+m2V5wXc9ObQnsQCk1kNV6+b/9fFjQBrsLGRrRmM0S +t8gI+tpG5peIKnTs+SyCqHNaTu+GzHJY2ZfEMylrTK+IU1JMR1taw+a8TAPKVhth +REciSl3Pj3X9v8rsuATkW+V0RFnRwd8XOBWJoZt+sgK61B9pwcIvC5yiXZcYiPUJ +vmAkSiDJDisgmB+T1o/ZHAuxBz8CbifP4rHC0h9HJubLzsu1NCFelKPaFhJrVvkl +1YZzN+Oi2mJiKHfg4gNTKjcdMtTSA/AAUt2ZhFk94/oNpxnivs33os+uIg2PNWH3 +iH3Pt6ihEr77gJZ2AYot8RShsQivKRAX3HSsefj7uusLys8ZO8vbrgs/CgBtj/cl +fWCvCIRwq0EOL5WqNQ9YIck3jIASbSAJSkmEhKSw+3c1zSewVirrqONXIvxvGJ5Y +BV4G3LJBQ9EThr03mIuI4clYz6rUHYBIAp5/G1CrYhRUVb0WC4TRGTlGYR0ReuKe +cVLrbVEFJIFy6e9yOMutcMTTyFvGsW86llDLR8oNWoxqP4jyohg= +=f+CH +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:15/arm64.patch b/website/static/security/patches/EN-25:15/arm64.patch new file mode 100644 index 0000000000..c5c5ea4b31 --- /dev/null +++ b/website/static/security/patches/EN-25:15/arm64.patch @@ -0,0 +1,11 @@ +--- sys/arm64/arm64/elf32_machdep.c.orig ++++ sys/arm64/arm64/elf32_machdep.c +@@ -195,7 +195,7 @@ + register_t *ap; + struct syscall_args *sa; + int error, i, nap, narg; +- unsigned int args[4]; ++ unsigned int args[6]; + + nap = 4; + p = td->td_proc; diff --git a/website/static/security/patches/EN-25:15/arm64.patch.asc b/website/static/security/patches/EN-25:15/arm64.patch.asc new file mode 100644 index 0000000000..5b8cae892e --- /dev/null +++ b/website/static/security/patches/EN-25:15/arm64.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBIACgkQbljekB8A +Gu/RohAA4pWcgChN+oBJGkiwMVH8mj+pdLE0aIbC3EVPEMfcF3twv2ZHrI+L38p6 +sRL1tMohZQFkA1NmTNnxf/qZmwnMei1nqeTTkfCHZPMBUeeoFh7TK9gl+qpGTcJr +WibRnC2breqD63sQXvaSihPo2ayc0AWDrDE8XRLEHgYE4EV940nFyb0elr8cV+4P +EaXOGn3vN9k7xYnPXwlX9Nt8MoYpY0LJFONCcBhpZNyun+VR3GaUBuGe9fyfMZYP +znNBdH4Kx5wwd3rEa2uo/ErLA1HU2E5BXrjE99VGHt+GNn8TgIxC4oS1+jKV56oM +/4VeeBlouIAM266opHtzk6OsQC5H9FyilM6XjSr1G80HfKYz3h1zPwIMRYKuI7sr +lQd7/XotZKkBIGy5bNeouwPhqt5iXerbDBNq+i80AoxQcLup+GEKmNRmkiahyetm +nj6dJRwtn1f8Fy8w3sMeH9UswFBi8j/oUcQ48GQ8s4BxcYKFkm4+aViYYa85AlSp +awFDp2un/oZIR8KNalAQI5cPTSyG6E/G2Ssg08ThhDrXANF9hPuzKodmc69+okVX +5EoC8wAVYG1mdR2V/7nQO478w8yRu+ne9bvQvAup7umdwGR7psNMB+Zua6zl1WsJ +8I2N8jC5w32scN7pzVNfdwYD5S8eLZB8iFQ6WlxKE/LhTJ7lXEw= +=pygX +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:16/vfs.patch b/website/static/security/patches/EN-25:16/vfs.patch new file mode 100644 index 0000000000..226ae9f81a --- /dev/null +++ b/website/static/security/patches/EN-25:16/vfs.patch @@ -0,0 +1,52 @@ +--- sys/kern/vfs_syscalls.c.orig ++++ sys/kern/vfs_syscalls.c +@@ -5050,11 +5050,12 @@ + size_t retlen; + void *rl_rcookie, *rl_wcookie; + off_t inoff, outoff, savinoff, savoutoff; +- bool foffsets_locked; ++ bool foffsets_locked, foffsets_set; + + infp = outfp = NULL; + rl_rcookie = rl_wcookie = NULL; + foffsets_locked = false; ++ foffsets_set = false; + error = 0; + retlen = 0; + +@@ -5122,6 +5123,8 @@ + } + foffset_lock_pair(infp1, &inoff, outfp1, &outoff, 0); + foffsets_locked = true; ++ } else { ++ foffsets_set = true; + } + savinoff = inoff; + savoutoff = outoff; +@@ -5180,11 +5183,12 @@ + vn_rangelock_unlock(invp, rl_rcookie); + if (rl_wcookie != NULL) + vn_rangelock_unlock(outvp, rl_wcookie); ++ if ((foffsets_locked || foffsets_set) && ++ (error == EINTR || error == ERESTART)) { ++ inoff = savinoff; ++ outoff = savoutoff; ++ } + if (foffsets_locked) { +- if (error == EINTR || error == ERESTART) { +- inoff = savinoff; +- outoff = savoutoff; +- } + if (inoffp == NULL) + foffset_unlock(infp, inoff, 0); + else +@@ -5193,6 +5197,9 @@ + foffset_unlock(outfp, outoff, 0); + else + *outoffp = outoff; ++ } else if (foffsets_set) { ++ *inoffp = inoff; ++ *outoffp = outoff; + } + if (outfp != NULL) + fdrop(outfp, td); diff --git a/website/static/security/patches/EN-25:16/vfs.patch.asc b/website/static/security/patches/EN-25:16/vfs.patch.asc new file mode 100644 index 0000000000..5d302e77f4 --- /dev/null +++ b/website/static/security/patches/EN-25:16/vfs.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBQACgkQbljekB8A +Gu9MZBAAghcIHmJAoGyWlG9gEsbEMRWmg9KDcNZuJ6oJM3EzRw/d7nzfvFHQUkk4 +5Seao9EexaN6XO/sq4v+6dVYh3c1lrlBTK7dHA0Mt9XSCip202Fh4rzZA5QhhjhD +8WwaF1J/y1FZv0ag5Z8XJxCIQCz49V/VctObzhq5PpB1XF+Axbddz2H80Jxb27Kh +GEcbKW66+CfVtL3AAhpvCUfgLyEciS1qhfC2tnNrIEl2gSlEqj7AaZ/fx4v/F1QK +ixo0nFQyox13HrlOMWgJBQJM1bCjwueERVmZSnT88SG9cro+LiEdzrbY+ITAMtqT +lA2oQ8AbOYYVPvwc0fnlDlxhwmjFzMSCm+mQQ/haYVrLrIcMeJ8SzV/gxEuamkpi +C0lgf5Y4mzv102CKUygghuOfNnOi0zFjCTqSf5q/7TwaNuelYn/kndMOj9qFFCjn +Wtvvn1BPVnnsLj2xgr1w4V6BnZDjo+xLujLQKOYt5x1RrlPQ/pEt3WNg/ekldLEy +Po4Hzmih/DLfqUo3ttKI4ZXeTisv7KmHE4woy/ok+FZ4U+SxaWKalEoNab7MgTRm +nV7jfMA4AiiK5jkK/3TCPvc82TktgufH19IVuCrMe1RocVxfjIGtXoJ0osLG1YIL +pGlJ5/MXZQLGE4oPi4wb2lErHwpogfS6Jq0prnXE6IbLAi6EHFk= +=Yxtv +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:17/bnxt.patch b/website/static/security/patches/EN-25:17/bnxt.patch new file mode 100644 index 0000000000..796f2332bf --- /dev/null +++ b/website/static/security/patches/EN-25:17/bnxt.patch @@ -0,0 +1,44 @@ +--- sys/dev/bnxt/bnxt_en/if_bnxt.c.orig ++++ sys/dev/bnxt/bnxt_en/if_bnxt.c +@@ -4609,34 +4609,34 @@ + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_40G_ACTIVE_CABLE: + media_type = BNXT_MEDIA_AC; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_1G_BASECX: + media_type = BNXT_MEDIA_BASECX; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_1G_BASET: + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASET: + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASETE: + media_type = BNXT_MEDIA_BASET; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASEKX: + media_type = BNXT_MEDIA_BASEKX; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_SGMIIEXTPHY: + media_type = BNXT_MEDIA_BASESGMII; +- return; ++ break; + + case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_UNKNOWN: + /* Only Autoneg is supported for TYPE_UNKNOWN */ +- return; ++ break; + + default: + /* Only Autoneg is supported for new phy type values */ + device_printf(softc->dev, "phy type %d not supported by driver\n", phy_type); +- return; ++ break; + } + + switch (link_info->sig_mode) { diff --git a/website/static/security/patches/EN-25:17/bnxt.patch.asc b/website/static/security/patches/EN-25:17/bnxt.patch.asc new file mode 100644 index 0000000000..6e25f45b25 --- /dev/null +++ b/website/static/security/patches/EN-25:17/bnxt.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjJlBYACgkQbljekB8A +Gu/wNRAAsT7ZDT8E6cuOTcv2lZMKjYdW4gVdM8FQPbHrWm1GgURK7Gm9X6HPmSEC +kZRO4aYr3CDuPPLkUQk6PvQybIrZWq2/MkNu3OqnN4ByUCb1qzIIBMWAgzwyKZjT +rkh0VXgIHB0AMbecUsvX6y0J99eesxi0FG1zuGu9YrtKPwdM2ZejEaK+Ix5owpbP +czcvxcr6iLU7HJQgl7vWM0lnmKCUzTu/X+UH/UEyX8NRIfBdnsW39QheDR8/2ony +aL3z9V8I0rczQSxsRBFn4cDl4vYQ87zrtu8eai1hj9NQ1yCUuP5tqICBR0Ljwn+Q +oDlkZaVp/KgTVX1b5JxxU2EAHYAdVFBz9c1wJ7hz4ciuC4+luVFSZljz9tnrniuK +GmS/xPt9HirPFqH2GeYrdD8a58eKmr0ew9kL3upf49cITRvfIiwn8KSUzbakNok2 +SmKeAO7ScgCfS2I9xWj/VYiePwKsd2tPQ8/TgZfeHxKrFdwzpm1GZsacqX9kymvX +7r7Kl6VjNhuv2sLeEgd25GtG9i6G0bFXJJhC4ZUCkW5LCULIOywUdGEQ1HAvIvlb +ppHCIXZavoHYyXWRaPTAfxj6v9UdxHFzChK4AG21I4Chh28EutvDTG675HQ7FScd +ICnCu+g4bDgVJcWkwp+Ou5ViYFQM0e7WgJoBQ23krj6VFj0D0T4= +=66Ry +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/EN-25:18/freebsd-update.patch b/website/static/security/patches/EN-25:18/freebsd-update.patch new file mode 100644 index 0000000000..df93f7bb03 --- /dev/null +++ b/website/static/security/patches/EN-25:18/freebsd-update.patch @@ -0,0 +1,32 @@ +--- usr.sbin/freebsd-update/freebsd-update.sh.orig ++++ usr.sbin/freebsd-update/freebsd-update.sh +@@ -3111,10 +3111,28 @@ + grep -E '^/libexec/ld-elf[^|]*\.so\.[0-9]+\|' > INDEX-NEW + install_from_index INDEX-NEW || return 1 + +- # Install new shared libraries next ++ # Next, in order, libsys, libc, and libthr. + grep -vE '^/boot/' $1/INDEX-NEW | + grep -vE '^[^|]+\|d\|' | + grep -vE '^/libexec/ld-elf[^|]*\.so\.[0-9]+\|' | ++ grep -E '^[^|]*/lib/libsys\.so\.[0-9]+\|' > INDEX-NEW ++ install_from_index INDEX-NEW || return 1 ++ grep -vE '^/boot/' $1/INDEX-NEW | ++ grep -vE '^[^|]+\|d\|' | ++ grep -vE '^/libexec/ld-elf[^|]*\.so\.[0-9]+\|' | ++ grep -E '^[^|]*/lib/libc\.so\.[0-9]+\|' > INDEX-NEW ++ install_from_index INDEX-NEW || return 1 ++ grep -vE '^/boot/' $1/INDEX-NEW | ++ grep -vE '^[^|]+\|d\|' | ++ grep -vE '^/libexec/ld-elf[^|]*\.so\.[0-9]+\|' | ++ grep -E '^[^|]*/lib/libthr\.so\.[0-9]+\|' > INDEX-NEW ++ install_from_index INDEX-NEW || return 1 ++ ++ # Install the rest of the shared libraries next ++ grep -vE '^/boot/' $1/INDEX-NEW | ++ grep -vE '^[^|]+\|d\|' | ++ grep -vE '^/libexec/ld-elf[^|]*\.so\.[0-9]+\|' | ++ grep -vE '^[^|]*/lib/(libsys|libc|libthr)\.so\.[0-9]+\|' | + grep -E '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-NEW + install_from_index INDEX-NEW || return 1 + diff --git a/website/static/security/patches/EN-25:18/freebsd-update.patch.asc b/website/static/security/patches/EN-25:18/freebsd-update.patch.asc new file mode 100644 index 0000000000..f44b92f70d --- /dev/null +++ b/website/static/security/patches/EN-25:18/freebsd-update.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjb+yMACgkQbljekB8A +Gu85Mw/9HtHqy0ZseVpE6OhJy4+6pG00tCnQq/ERCbycGkyZziJakwCQFviEx0MO +MUSta9g8MhysdMLNTRl9wwaiEGoXxXZvRaEEFB0Crf4Fvt4V4QLzU7WUxgbfa4kp +wQOad+xzfe/7KLiUk70OHh1ODfYydC8NVPCoIT+pbkHzdGvaqEKXR8vtjs7Myf7V +M7Y6GhRs9tDvA63TEBWEVLP1wVTJ3sYGopeyzKU7xNBEngih5LaP17BOXMlA74rR +zrNxIkRTJe+gPAbMUyZ7OdmbdtzeYtcbwZN+7uf4Vd2xSP0VjqNlC8goKdPNw2kN +71mrGpejtDSqvT23RCPA3ek5dqDFsl+2h2MfUstNLofnKSO4H6pq0I61PZbYDDkY +VVgNdybqzs/lFsL4VNFS5dbaoa6OiBpX2yo2b7AUwaqtP4n6qKSaO2yTBsZfxoAs +nTZkCzbVCzlqP4JXCDdmjvnAhaf0DxEx7QsSj5YCp5RihIqXaE+XZ4LlQFt0HgDr +2iLLX2V9g3g966CKcXI0vVt/vzOqpakrcBpnslW0b6+rhthe1MTIhgdDLvpmJ5DX +a35bUeKqqxCq9yiPDKE0RpABnxSKEWGB+asVErLNRga97wf5fUojTmtLURALMIY8 +OSCW9nsI8iCX/4+eB3OfuWPpW9Z9IGB19CDMgdnVUnozBgjv0cM= +=saMY +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:07/libarchive.patch b/website/static/security/patches/SA-25:07/libarchive.patch new file mode 100644 index 0000000000..30d2e8d1df --- /dev/null +++ b/website/static/security/patches/SA-25:07/libarchive.patch @@ -0,0 +1,38022 @@ +--- contrib/libarchive/COPYING.orig ++++ contrib/libarchive/COPYING +@@ -20,7 +20,7 @@ + libarchive/mtree.5 + + * The following source files are in the public domain: +- libarchive/archive_getdate.c ++ libarchive/archive_parse_date.c + + * The following source files are triple-licensed with the ability to choose + from CC0 1.0 Universal, OpenSSL or Apache 2.0 licenses: +--- contrib/libarchive/NEWS.orig ++++ contrib/libarchive/NEWS +@@ -1,3 +1,11 @@ ++Jun 01, 2026: libarchive 3.8.1 released ++ ++May 20, 2025: libarchive 3.8.0 released ++ ++Mar 30, 2025: libarchive 3.7.9 released ++ ++Mar 20, 2025: libarchive 3.7.8 released ++ + Oct 13, 2024: libarchive 3.7.7 released + + Sep 23, 2024: libarchive 3.7.6 released +--- contrib/libarchive/README.md.orig ++++ contrib/libarchive/README.md +@@ -85,13 +85,14 @@ + * PWB binary cpio + * ISO9660 CD-ROM images (with optional Rockridge or Joliet extensions) + * ZIP archives (with uncompressed or "deflate" compressed entries, including support for encrypted Zip archives) +- * ZIPX archives (with support for bzip2, ppmd8, lzma and xz compressed entries) ++ * ZIPX archives (with support for bzip2, zstd, ppmd8, lzma and xz compressed entries) + * GNU and BSD 'ar' archives + * 'mtree' format + * 7-Zip archives (including archives that use zstandard compression) + * Microsoft CAB format + * LHA and LZH archives + * RAR and RAR 5.0 archives (with some limitations due to RAR's proprietary status) ++ * WARC archives + * XAR archives + + The library also detects and handles any of the following before evaluating the archive: +@@ -120,15 +121,18 @@ + * PWB binary cpio + * shar archives + * ZIP archives (with uncompressed or "deflate" compressed entries) ++ * ZIPX archives (with bzip2, zstd, lzma or xz compressed entries) + * GNU and BSD 'ar' archives + * 'mtree' format + * ISO9660 format +- * 7-Zip archives ++ * 7-Zip archives (including archives that use zstandard compression) ++ * WARC archives + * XAR archives + + When creating archives, the result can be filtered with any of the following: + + * uuencode ++ * base64 + * gzip compression + * bzip2 compression + * compress/LZW compression +@@ -241,4 +245,3 @@ + appropriate. It has many advantages over other tar formats + (including the legacy GNU tar format) and is widely supported by + current tar implementations. +- +--- /dev/null ++++ contrib/libarchive/build/ci/github_actions/install-macos-dependencies.sh +@@ -0,0 +1,19 @@ ++#!/bin/sh ++set -eux ++ ++# Uncommenting these adds a full minute to the CI time ++#brew update > /dev/null ++#brew upgrade > /dev/null ++ ++# This does an upgrade if the package is already installed ++brew install \ ++ autoconf \ ++ automake \ ++ libtool \ ++ pkg-config \ ++ cmake \ ++ xz \ ++ lz4 \ ++ zstd \ ++ libxml2 \ ++ openssl +--- contrib/libarchive/cpio/cpio.c.orig ++++ contrib/libarchive/cpio/cpio.c +@@ -1206,7 +1206,7 @@ + else + strcpy(date, "invalid mtime"); + +- fprintf(out, "%s%3d %-8s %-8s %8s %12s %s", ++ fprintf(out, "%s%3u %-8s %-8s %8s %12s %s", + archive_entry_strmode(entry), + archive_entry_nlink(entry), + uname, gname, size, date, +--- contrib/libarchive/cpio/test/test_format_newc.c.orig ++++ contrib/libarchive/cpio/test/test_format_newc.c +@@ -189,10 +189,10 @@ + gid = from_hex(e + 30, 8); /* gid */ + assertEqualMem(e + 38, "00000003", 8); /* nlink */ + t = from_hex(e + 46, 8); /* mtime */ +- failure("t=%#08jx now=%#08jx=%jd", (intmax_t)t, (intmax_t)now, ++ failure("t=%#08jx now=%#08jx=%jd", (uintmax_t)t, (uintmax_t)now, + (intmax_t)now); + assert(t <= now); /* File wasn't created in future. */ +- failure("t=%#08jx now - 2=%#08jx=%jd", (intmax_t)t, (intmax_t)now - 2, ++ failure("t=%#08jx now - 2=%#08jx=%jd", (uintmax_t)t, (uintmax_t)now - 2, + (intmax_t)now - 2); + assert(t >= now - 2); /* File was created w/in last 2 secs. */ + failure("newc format stores body only with last appearance of a link\n" +@@ -219,7 +219,7 @@ + assert(is_hex(e, 110)); + assertEqualMem(e + 0, "070701", 6); /* Magic */ + assert(is_hex(e + 6, 8)); /* ino */ +-#if defined(_WIN32) && !defined(CYGWIN) ++#if defined(_WIN32) && !defined(__CYGWIN__) + /* Mode: Group members bits and others bits do not work. */ + assertEqualInt(0xa180, from_hex(e + 14, 8) & 0xffc0); + #else +@@ -230,7 +230,7 @@ + assertEqualMem(e + 38, "00000001", 8); /* nlink */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=%#08jx this entry created" +- " at t2=%#08jx", (intmax_t)t, (intmax_t)t2); ++ " at t2=%#08jx", (uintmax_t)t, (uintmax_t)t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ + assertEqualMem(e + 54, "00000005", 8); /* File size */ + fs = (uint64_t)from_hex(e + 54, 8); +@@ -266,7 +266,7 @@ + #endif + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=%#08jx this entry created at" +- "t2=%#08jx", (intmax_t)t, (intmax_t)t2); ++ "t2=%#08jx", (uintmax_t)t, (uintmax_t)t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ + assertEqualMem(e + 54, "00000000", 8); /* File size */ + fs = (uint64_t)from_hex(e + 54, 8); +@@ -300,7 +300,7 @@ + assertEqualMem(e + 38, "00000003", 8); /* nlink */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=%#08jx this entry created at" +- "t2=%#08jx", (intmax_t)t, (intmax_t)t2); ++ "t2=%#08jx", (uintmax_t)t, (uintmax_t)t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ + assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ + fs = (uint64_t)from_hex(e + 54, 8); +--- contrib/libarchive/cpio/test/test_option_a.c.orig ++++ contrib/libarchive/cpio/test/test_option_a.c +@@ -52,7 +52,7 @@ + * #ifdef this section out. Most of the test below is + * still valid. */ + memset(×, 0, sizeof(times)); +-#if defined(_WIN32) && !defined(CYGWIN) ++#if defined(_WIN32) && !defined(__CYGWIN__) + times.actime = 86400; + times.modtime = 86400; + #else +--- contrib/libarchive/cpio/test/test_option_c.c.orig ++++ contrib/libarchive/cpio/test/test_option_c.c +@@ -18,7 +18,7 @@ + return (1); + } + +-static long long int ++static unsigned long long int + from_octal(const char *p, size_t l) + { + long long int r = 0; +@@ -117,7 +117,7 @@ + gid = (int)from_octal(e + 30, 6); + assertEqualMem(e + 36, "000001", 6); /* nlink */ + failure("file entries should not have rdev set (dev field was 0%o)", +- dev); ++ (unsigned int)dev); + assertEqualMem(e + 42, "000000", 6); /* rdev */ + t = from_octal(e + 48, 11); /* mtime */ + assert(t <= now); /* File wasn't created in future. */ +@@ -133,7 +133,7 @@ + assert(is_octal(e, 76)); /* Entire header is octal digits. */ + assertEqualMem(e + 0, "070707", 6); /* Magic */ + assertEqualInt(dev, from_octal(e + 6, 6)); /* dev */ +- assert(ino != from_octal(e + 12, 6)); /* ino */ ++ assert(ino != (int)from_octal(e + 12, 6)); /* ino */ + #if !defined(_WIN32) || defined(__CYGWIN__) + /* On Windows, symbolic link and group members bits and + * others bits do not work. */ +@@ -163,7 +163,7 @@ + assertEqualInt(dev, from_octal(e + 6, 6)); + /* Ino must be different from first entry. */ + assert(is_octal(e + 12, 6)); /* ino */ +- assert(ino != from_octal(e + 12, 6)); ++ assert(ino != (int)from_octal(e + 12, 6)); + #if defined(_WIN32) && !defined(__CYGWIN__) + /* Group members bits and others bits do not work. */ + assertEqualMem(e + 18, "040777", 6); /* Mode */ +--- contrib/libarchive/libarchive/archive.h.orig ++++ contrib/libarchive/libarchive/archive.h +@@ -34,12 +34,15 @@ + * assert that ARCHIVE_VERSION_NUMBER >= 2012108. + */ + /* Note: Compiler will complain if this does not match archive_entry.h! */ +-#define ARCHIVE_VERSION_NUMBER 3007007 ++#define ARCHIVE_VERSION_NUMBER 3008001 + + #include <sys/stat.h> + #include <stddef.h> /* for wchar_t */ + #include <stdio.h> /* For FILE * */ ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* time_t is slated to be removed from public includes in 4.0 */ + #include <time.h> /* For time_t */ ++#endif + + /* + * Note: archive.h is for use outside of libarchive; the configuration +@@ -63,12 +66,15 @@ + #define __LA_INT64_T_DEFINED + # if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__) + typedef __int64 la_int64_t; ++typedef unsigned __int64 la_uint64_t; + # else + # include <unistd.h> /* ssize_t */ + # if defined(_SCO_DS) || defined(__osf__) + typedef long long la_int64_t; ++typedef unsigned long long la_uint64_t; + # else + typedef int64_t la_int64_t; ++typedef uint64_t la_uint64_t; + # endif + # endif + #endif +@@ -94,6 +100,22 @@ + # endif + #endif + ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* Use the platform types for time_t */ ++#define __LA_TIME_T time_t ++#else ++/* Use 64-bits integer types for time_t */ ++#define __LA_TIME_T la_int64_t ++#endif ++ ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* Use the platform types for dev_t */ ++#define __LA_DEV_T dev_t ++#else ++/* Use 64-bits integer types for dev_t */ ++#define __LA_DEV_T la_int64_t ++#endif ++ + /* Large file support for Android */ + #if defined(__LIBARCHIVE_BUILD) && defined(__ANDROID__) + #include "android_lf.h" +@@ -132,7 +154,7 @@ + #define __LA_PRINTF(fmtarg, firstvararg) /* nothing */ + #endif + +-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1 ++#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) + # define __LA_DEPRECATED __attribute__((deprecated)) + #else + # define __LA_DEPRECATED +@@ -155,7 +177,7 @@ + /* + * Textual name/version of the library, useful for version displays. + */ +-#define ARCHIVE_VERSION_ONLY_STRING "3.7.7" ++#define ARCHIVE_VERSION_ONLY_STRING "3.8.1" + #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING + __LA_DECL const char * archive_version_string(void); + +@@ -178,6 +200,23 @@ + __LA_DECL const char * archive_bzlib_version(void); + __LA_DECL const char * archive_liblz4_version(void); + __LA_DECL const char * archive_libzstd_version(void); ++__LA_DECL const char * archive_liblzo2_version(void); ++__LA_DECL const char * archive_libexpat_version(void); ++__LA_DECL const char * archive_libbsdxml_version(void); ++__LA_DECL const char * archive_libxml2_version(void); ++__LA_DECL const char * archive_mbedtls_version(void); ++__LA_DECL const char * archive_nettle_version(void); ++__LA_DECL const char * archive_openssl_version(void); ++__LA_DECL const char * archive_libmd_version(void); ++__LA_DECL const char * archive_commoncrypto_version(void); ++__LA_DECL const char * archive_cng_version(void); ++__LA_DECL const char * archive_wincrypt_version(void); ++__LA_DECL const char * archive_librichacl_version(void); ++__LA_DECL const char * archive_libacl_version(void); ++__LA_DECL const char * archive_libattr_version(void); ++__LA_DECL const char * archive_libiconv_version(void); ++__LA_DECL const char * archive_libpcre_version(void); ++__LA_DECL const char * archive_libpcre2_version(void); + + /* Declare our basic types. */ + struct archive; +@@ -449,6 +488,8 @@ + __LA_DECL int archive_read_support_format_cab(struct archive *); + __LA_DECL int archive_read_support_format_cpio(struct archive *); + __LA_DECL int archive_read_support_format_empty(struct archive *); ++/* archive_read_support_format_gnutar() is an alias for historical reasons ++ * of archive_read_support_format_tar(). */ + __LA_DECL int archive_read_support_format_gnutar(struct archive *); + __LA_DECL int archive_read_support_format_iso9660(struct archive *); + __LA_DECL int archive_read_support_format_lha(struct archive *); +@@ -828,6 +869,10 @@ + __LA_DECL int archive_write_set_format_filter_by_ext_def(struct archive *a, const char *filename, const char * def_ext); + __LA_DECL int archive_write_zip_set_compression_deflate(struct archive *); + __LA_DECL int archive_write_zip_set_compression_store(struct archive *); ++__LA_DECL int archive_write_zip_set_compression_lzma(struct archive *); ++__LA_DECL int archive_write_zip_set_compression_xz(struct archive *); ++__LA_DECL int archive_write_zip_set_compression_bzip2(struct archive *); ++__LA_DECL int archive_write_zip_set_compression_zstd(struct archive *); + /* Deprecated; use archive_write_open2 instead */ + __LA_DECL int archive_write_open(struct archive *, void *, + archive_open_callback *, archive_write_callback *, +@@ -1083,6 +1128,10 @@ + __LA_DEPRECATED; + #endif + ++/* Parses a date string relative to the current time. ++ * NOTE: This is not intended for general date parsing, and the resulting timestamp should only be used for libarchive. */ ++__LA_DECL time_t archive_parse_date(time_t now, const char *datestr); ++ + __LA_DECL int archive_errno(struct archive *); + __LA_DECL const char *archive_error_string(struct archive *); + __LA_DECL const char *archive_format_name(struct archive *); +@@ -1201,8 +1250,10 @@ + const wchar_t *); + + /* Utility functions */ ++#if ARCHIVE_VERSION_NUMBER < 4000000 + /* Convenience function to sort a NULL terminated list of strings */ + __LA_DECL int archive_utility_string_sort(char **); ++#endif + + #ifdef __cplusplus + } +--- contrib/libarchive/libarchive/archive_acl.c.orig ++++ contrib/libarchive/libarchive/archive_acl.c +@@ -1185,8 +1185,13 @@ + /* Set remaining fields to blank. */ + for (n = fields; n < numfields; ++n) + field[n].start = field[n].end = NULL; ++ ++ if (field[0].start == NULL || field[0].end == NULL) { ++ /* This should never happen */ ++ return (ARCHIVE_FATAL); ++ } + +- if (field[0].start != NULL && *(field[0].start) == L'#') { ++ if (*(field[0].start) == L'#') { + /* Comment, skip entry */ + continue; + } +@@ -1676,7 +1681,12 @@ + for (n = fields; n < numfields; ++n) + field[n].start = field[n].end = NULL; + +- if (field[0].start != NULL && *(field[0].start) == '#') { ++ if (field[0].start == NULL || field[0].end == NULL) { ++ /* This should never happen */ ++ return (ARCHIVE_FATAL); ++ } ++ ++ if (*(field[0].start) == '#') { + /* Comment, skip entry */ + continue; + } +--- contrib/libarchive/libarchive/archive_acl_private.h.orig ++++ contrib/libarchive/libarchive/archive_acl_private.h +@@ -80,4 +80,4 @@ + int archive_acl_from_text_nl(struct archive_acl *, const char * /* text */, + size_t /* size of text */, int /* type */, struct archive_string_conv *); + +-#endif /* ARCHIVE_ENTRY_PRIVATE_H_INCLUDED */ ++#endif /* !ARCHIVE_ACL_PRIVATE_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_cmdline.c.orig ++++ contrib/libarchive/libarchive/archive_cmdline.c +@@ -71,7 +71,7 @@ + archive_string_empty(as); + + /* Skip beginning space characters. */ +- while (*s != '\0' && *s == ' ') ++ while (*s == ' ') + s++; + /* Copy non-space characters. */ + while (*s != '\0' && *s != ' ') { +--- contrib/libarchive/libarchive/archive_cryptor_private.h.orig ++++ contrib/libarchive/libarchive/archive_cryptor_private.h +@@ -64,6 +64,7 @@ + + #elif defined(_WIN32) && !defined(__CYGWIN__) && defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA + #include <bcrypt.h> ++#define ARCHIVE_CRYPTOR_USE_CNG 1 + + /* Common in other bcrypt implementations, but missing from VS2008. */ + #ifndef BCRYPT_SUCCESS +@@ -86,6 +87,7 @@ + #include <mbedtls/aes.h> + #include <mbedtls/md.h> + #include <mbedtls/pkcs5.h> ++#define ARCHIVE_CRYPTOR_USE_MBED 1 + + #define AES_MAX_KEY_SIZE 32 + #define AES_BLOCK_SIZE 16 +@@ -105,6 +107,7 @@ + #endif + #include <nettle/aes.h> + #include <nettle/version.h> ++#define ARCHIVE_CRYPTOR_USE_NETTLE 1 + + typedef struct { + #if NETTLE_VERSION_MAJOR < 3 +@@ -125,6 +128,7 @@ + + #elif defined(HAVE_LIBCRYPTO) + #include "archive_openssl_evp_private.h" ++#define ARCHIVE_CRYPTOR_USE_OPENSSL 1 + #define AES_BLOCK_SIZE 16 + #define AES_MAX_KEY_SIZE 32 + +@@ -140,6 +144,10 @@ + + #else + ++#if defined(_WIN32) && !defined(__CYGWIN__) && !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) ++#define ARCHIVE_CRYPTOR_USE_WINCRYPT 1 ++#endif ++ + #define AES_BLOCK_SIZE 16 + #define AES_MAX_KEY_SIZE 32 + typedef int archive_crypto_ctx; +--- contrib/libarchive/libarchive/archive_digest.c.orig ++++ contrib/libarchive/libarchive/archive_digest.c +@@ -196,6 +196,13 @@ + + #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) + ++// These functions are available in macOS 10.4 and later, but deprecated from 10.15 onwards. ++// We need to continue supporting this feature regardless, so suppress the warnings. ++#if defined(__clang__) ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ + static int + __archive_md5init(archive_md5_ctx *ctx) + { +@@ -218,13 +225,46 @@ + return (ARCHIVE_OK); + } + ++#if defined(__clang__) ++#pragma clang diagnostic pop ++#endif ++ ++#elif defined(ARCHIVE_CRYPTO_MD5_WIN) ++ ++static int ++__archive_md5init(archive_md5_ctx *ctx) ++{ ++#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA ++ return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); ++#else ++ return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); ++#endif ++} ++ ++static int ++__archive_md5update(archive_md5_ctx *ctx, const void *indata, ++ size_t insize) ++{ ++ return (win_crypto_Update(ctx, indata, insize)); ++} ++ ++static int ++__archive_md5final(archive_md5_ctx *ctx, void *md) ++{ ++ return (win_crypto_Final(md, 16, ctx)); ++} ++ + #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + + static int + __archive_md5init(archive_md5_ctx *ctx) + { + mbedtls_md5_init(ctx); ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_md5_starts(ctx) == 0) ++#else + if (mbedtls_md5_starts_ret(ctx) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -234,7 +274,11 @@ + __archive_md5update(archive_md5_ctx *ctx, const void *indata, + size_t insize) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_md5_update(ctx, indata, insize) == 0) ++#else + if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -243,7 +287,11 @@ + static int + __archive_md5final(archive_md5_ctx *ctx, void *md) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_md5_finish(ctx, md) == 0) { ++#else + if (mbedtls_md5_finish_ret(ctx, md) == 0) { ++#endif + mbedtls_md5_free(ctx); + return (ARCHIVE_OK); + } else { +@@ -311,31 +359,6 @@ + return (ARCHIVE_OK); + } + +-#elif defined(ARCHIVE_CRYPTO_MD5_WIN) +- +-static int +-__archive_md5init(archive_md5_ctx *ctx) +-{ +-#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA +- return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); +-#else +- return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); +-#endif +-} +- +-static int +-__archive_md5update(archive_md5_ctx *ctx, const void *indata, +- size_t insize) +-{ +- return (win_crypto_Update(ctx, indata, insize)); +-} +- +-static int +-__archive_md5final(archive_md5_ctx *ctx, void *md) +-{ +- return (win_crypto_Final(md, 16, ctx)); +-} +- + #else + + static int +@@ -420,7 +443,11 @@ + __archive_ripemd160init(archive_rmd160_ctx *ctx) + { + mbedtls_ripemd160_init(ctx); ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_ripemd160_starts(ctx) == 0) ++#else + if (mbedtls_ripemd160_starts_ret(ctx) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -430,7 +457,11 @@ + __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, + size_t insize) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_ripemd160_update(ctx, indata, insize) == 0) ++#else + if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -439,7 +470,11 @@ + static int + __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_ripemd160_finish(ctx, md) == 0) { ++#else + if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { ++#endif + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_OK); + } else { +@@ -605,13 +640,42 @@ + return (ARCHIVE_OK); + } + ++#elif defined(ARCHIVE_CRYPTO_SHA1_WIN) ++ ++static int ++__archive_sha1init(archive_sha1_ctx *ctx) ++{ ++#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA ++ return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); ++#else ++ return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); ++#endif ++} ++ ++static int ++__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, ++ size_t insize) ++{ ++ return (win_crypto_Update(ctx, indata, insize)); ++} ++ ++static int ++__archive_sha1final(archive_sha1_ctx *ctx, void *md) ++{ ++ return (win_crypto_Final(md, 20, ctx)); ++} ++ + #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + + static int + __archive_sha1init(archive_sha1_ctx *ctx) + { + mbedtls_sha1_init(ctx); ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha1_starts(ctx) == 0) ++#else + if (mbedtls_sha1_starts_ret(ctx) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -621,7 +685,11 @@ + __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, + size_t insize) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha1_update(ctx, indata, insize) == 0) ++#else + if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -630,7 +698,11 @@ + static int + __archive_sha1final(archive_sha1_ctx *ctx, void *md) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha1_finish(ctx, md) == 0) { ++#else + if (mbedtls_sha1_finish_ret(ctx, md) == 0) { ++#endif + mbedtls_sha1_free(ctx); + return (ARCHIVE_OK); + } else { +@@ -698,31 +770,6 @@ + return (ARCHIVE_OK); + } + +-#elif defined(ARCHIVE_CRYPTO_SHA1_WIN) +- +-static int +-__archive_sha1init(archive_sha1_ctx *ctx) +-{ +-#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA +- return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); +-#else +- return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); +-#endif +-} +- +-static int +-__archive_sha1update(archive_sha1_ctx *ctx, const void *indata, +- size_t insize) +-{ +- return (win_crypto_Update(ctx, indata, insize)); +-} +- +-static int +-__archive_sha1final(archive_sha1_ctx *ctx, void *md) +-{ +- return (win_crypto_Final(md, 20, ctx)); +-} +- + #else + + static int +@@ -873,13 +920,42 @@ + return (ARCHIVE_OK); + } + ++#elif defined(ARCHIVE_CRYPTO_SHA256_WIN) ++ ++static int ++__archive_sha256init(archive_sha256_ctx *ctx) ++{ ++#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA ++ return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); ++#else ++ return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); ++#endif ++} ++ ++static int ++__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, ++ size_t insize) ++{ ++ return (win_crypto_Update(ctx, indata, insize)); ++} ++ ++static int ++__archive_sha256final(archive_sha256_ctx *ctx, void *md) ++{ ++ return (win_crypto_Final(md, 32, ctx)); ++} ++ + #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + + static int + __archive_sha256init(archive_sha256_ctx *ctx) + { + mbedtls_sha256_init(ctx); ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha256_starts(ctx, 0) == 0) ++#else + if (mbedtls_sha256_starts_ret(ctx, 0) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -889,7 +965,11 @@ + __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, + size_t insize) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha256_update(ctx, indata, insize) == 0) ++#else + if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -898,7 +978,11 @@ + static int + __archive_sha256final(archive_sha256_ctx *ctx, void *md) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha256_finish(ctx, md) == 0) { ++#else + if (mbedtls_sha256_finish_ret(ctx, md) == 0) { ++#endif + mbedtls_sha256_free(ctx); + return (ARCHIVE_OK); + } else { +@@ -962,31 +1046,6 @@ + return (ARCHIVE_OK); + } + +-#elif defined(ARCHIVE_CRYPTO_SHA256_WIN) +- +-static int +-__archive_sha256init(archive_sha256_ctx *ctx) +-{ +-#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA +- return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); +-#else +- return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); +-#endif +-} +- +-static int +-__archive_sha256update(archive_sha256_ctx *ctx, const void *indata, +- size_t insize) +-{ +- return (win_crypto_Update(ctx, indata, insize)); +-} +- +-static int +-__archive_sha256final(archive_sha256_ctx *ctx, void *md) +-{ +- return (win_crypto_Final(md, 32, ctx)); +-} +- + #else + + static int +@@ -1113,13 +1172,42 @@ + return (ARCHIVE_OK); + } + ++#elif defined(ARCHIVE_CRYPTO_SHA384_WIN) ++ ++static int ++__archive_sha384init(archive_sha384_ctx *ctx) ++{ ++#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA ++ return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); ++#else ++ return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); ++#endif ++} ++ ++static int ++__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, ++ size_t insize) ++{ ++ return (win_crypto_Update(ctx, indata, insize)); ++} ++ ++static int ++__archive_sha384final(archive_sha384_ctx *ctx, void *md) ++{ ++ return (win_crypto_Final(md, 48, ctx)); ++} ++ + #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + + static int + __archive_sha384init(archive_sha384_ctx *ctx) + { + mbedtls_sha512_init(ctx); ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha512_starts(ctx, 1) == 0) ++#else + if (mbedtls_sha512_starts_ret(ctx, 1) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -1129,7 +1217,11 @@ + __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, + size_t insize) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha512_update(ctx, indata, insize) == 0) ++#else + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -1138,7 +1230,11 @@ + static int + __archive_sha384final(archive_sha384_ctx *ctx, void *md) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha512_finish(ctx, md) == 0) { ++#else + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { ++#endif + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { +@@ -1202,31 +1298,6 @@ + return (ARCHIVE_OK); + } + +-#elif defined(ARCHIVE_CRYPTO_SHA384_WIN) +- +-static int +-__archive_sha384init(archive_sha384_ctx *ctx) +-{ +-#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA +- return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); +-#else +- return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); +-#endif +-} +- +-static int +-__archive_sha384update(archive_sha384_ctx *ctx, const void *indata, +- size_t insize) +-{ +- return (win_crypto_Update(ctx, indata, insize)); +-} +- +-static int +-__archive_sha384final(archive_sha384_ctx *ctx, void *md) +-{ +- return (win_crypto_Final(md, 48, ctx)); +-} +- + #else + + static int +@@ -1377,13 +1448,42 @@ + return (ARCHIVE_OK); + } + ++#elif defined(ARCHIVE_CRYPTO_SHA512_WIN) ++ ++static int ++__archive_sha512init(archive_sha512_ctx *ctx) ++{ ++#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA ++ return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); ++#else ++ return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); ++#endif ++} ++ ++static int ++__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, ++ size_t insize) ++{ ++ return (win_crypto_Update(ctx, indata, insize)); ++} ++ ++static int ++__archive_sha512final(archive_sha512_ctx *ctx, void *md) ++{ ++ return (win_crypto_Final(md, 64, ctx)); ++} ++ + #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + + static int + __archive_sha512init(archive_sha512_ctx *ctx) + { + mbedtls_sha512_init(ctx); ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha512_starts(ctx, 0) == 0) ++#else + if (mbedtls_sha512_starts_ret(ctx, 0) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -1393,7 +1493,11 @@ + __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, + size_t insize) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha512_update(ctx, indata, insize) == 0) ++#else + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) ++#endif + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +@@ -1402,7 +1506,11 @@ + static int + __archive_sha512final(archive_sha512_ctx *ctx, void *md) + { ++#if MBEDTLS_VERSION_NUMBER > 0x03000000 ++ if (mbedtls_sha512_finish(ctx, md) == 0) { ++#else + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { ++#endif + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { +@@ -1466,31 +1574,6 @@ + return (ARCHIVE_OK); + } + +-#elif defined(ARCHIVE_CRYPTO_SHA512_WIN) +- +-static int +-__archive_sha512init(archive_sha512_ctx *ctx) +-{ +-#if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA +- return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); +-#else +- return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); +-#endif +-} +- +-static int +-__archive_sha512update(archive_sha512_ctx *ctx, const void *indata, +- size_t insize) +-{ +- return (win_crypto_Update(ctx, indata, insize)); +-} +- +-static int +-__archive_sha512final(archive_sha512_ctx *ctx, void *md) +-{ +- return (win_crypto_Final(md, 64, ctx)); +-} +- + #else + + static int +@@ -1525,11 +1608,12 @@ + * 1. libc + * 2. libc2 + * 3. libc3 +- * 4. libSystem +- * 5. Nettle +- * 6. OpenSSL +- * 7. libmd +- * 8. Windows API ++ * 4. libmd ++ * 5. libSystem ++ * 6. Windows API ++ * 7. mbedTLS ++ * 8. Nettle ++ * 9. OpenSSL + */ + const struct archive_digest __archive_digest = + { +--- contrib/libarchive/libarchive/archive_digest_private.h.orig ++++ contrib/libarchive/libarchive/archive_digest_private.h +@@ -113,6 +113,7 @@ + defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) + #include <CommonCrypto/CommonDigest.h> ++#define ARCHIVE_CRYPTO_CommonCrypto 1 + #endif + + /* mbed TLS crypto headers */ +@@ -167,6 +168,7 @@ + #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA + /* don't use bcrypt when XP needs to be supported */ + #include <bcrypt.h> ++#define ARCHIVE_CRYPTO_CNG 1 + typedef struct { + int valid; + BCRYPT_ALG_HANDLE hAlg; +@@ -175,6 +177,7 @@ + #else + #include <windows.h> + #include <wincrypt.h> ++#define ARCHIVE_CRYPTO_WINCRYPT 1 + typedef struct { + int valid; + HCRYPTPROV cryptProv; +@@ -190,14 +193,16 @@ + typedef MD5_CTX archive_md5_ctx; + #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) + typedef CC_MD5_CTX archive_md5_ctx; ++#elif defined(ARCHIVE_CRYPTO_MD5_WIN) ++typedef Digest_CTX archive_md5_ctx; + #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) ++#define ARCHIVE_CRYPTO_MBED 1 + typedef mbedtls_md5_context archive_md5_ctx; + #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) ++#define ARCHIVE_CRYPTO_NETTLE 1 + typedef struct md5_ctx archive_md5_ctx; + #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) + typedef EVP_MD_CTX *archive_md5_ctx; +-#elif defined(ARCHIVE_CRYPTO_MD5_WIN) +-typedef Digest_CTX archive_md5_ctx; + #else + typedef unsigned char archive_md5_ctx; + #endif +@@ -207,8 +212,10 @@ + #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) + typedef RIPEMD160_CTX archive_rmd160_ctx; + #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) ++#define ARCHIVE_CRYPTO_MBED 1 + typedef mbedtls_ripemd160_context archive_rmd160_ctx; + #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) ++#define ARCHIVE_CRYPTO_NETTLE 1 + typedef struct ripemd160_ctx archive_rmd160_ctx; + #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) + typedef EVP_MD_CTX *archive_rmd160_ctx; +@@ -222,14 +229,16 @@ + typedef SHA1_CTX archive_sha1_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) + typedef CC_SHA1_CTX archive_sha1_ctx; ++#elif defined(ARCHIVE_CRYPTO_SHA1_WIN) ++typedef Digest_CTX archive_sha1_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) ++#define ARCHIVE_CRYPTO_MBED 1 + typedef mbedtls_sha1_context archive_sha1_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) ++#define ARCHIVE_CRYPTO_NETTLE 1 + typedef struct sha1_ctx archive_sha1_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) + typedef EVP_MD_CTX *archive_sha1_ctx; +-#elif defined(ARCHIVE_CRYPTO_SHA1_WIN) +-typedef Digest_CTX archive_sha1_ctx; + #else + typedef unsigned char archive_sha1_ctx; + #endif +@@ -244,14 +253,16 @@ + typedef SHA256_CTX archive_sha256_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) + typedef CC_SHA256_CTX archive_sha256_ctx; ++#elif defined(ARCHIVE_CRYPTO_SHA256_WIN) ++typedef Digest_CTX archive_sha256_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) ++#define ARCHIVE_CRYPTO_MBED 1 + typedef mbedtls_sha256_context archive_sha256_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) ++#define ARCHIVE_CRYPTO_NETTLE 1 + typedef struct sha256_ctx archive_sha256_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) + typedef EVP_MD_CTX *archive_sha256_ctx; +-#elif defined(ARCHIVE_CRYPTO_SHA256_WIN) +-typedef Digest_CTX archive_sha256_ctx; + #else + typedef unsigned char archive_sha256_ctx; + #endif +@@ -264,14 +275,16 @@ + typedef SHA2_CTX archive_sha384_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) + typedef CC_SHA512_CTX archive_sha384_ctx; ++#elif defined(ARCHIVE_CRYPTO_SHA384_WIN) ++typedef Digest_CTX archive_sha384_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ++#define ARCHIVE_CRYPTO_MBED 1 + typedef mbedtls_sha512_context archive_sha384_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) ++#define ARCHIVE_CRYPTO_NETTLE 1 + typedef struct sha384_ctx archive_sha384_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) + typedef EVP_MD_CTX *archive_sha384_ctx; +-#elif defined(ARCHIVE_CRYPTO_SHA384_WIN) +-typedef Digest_CTX archive_sha384_ctx; + #else + typedef unsigned char archive_sha384_ctx; + #endif +@@ -286,14 +299,16 @@ + typedef SHA512_CTX archive_sha512_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) + typedef CC_SHA512_CTX archive_sha512_ctx; ++#elif defined(ARCHIVE_CRYPTO_SHA512_WIN) ++typedef Digest_CTX archive_sha512_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) ++#define ARCHIVE_CRYPTO_MBED 1 + typedef mbedtls_sha512_context archive_sha512_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) ++#define ARCHIVE_CRYPTO_NETTLE 1 + typedef struct sha512_ctx archive_sha512_ctx; + #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) + typedef EVP_MD_CTX *archive_sha512_ctx; +-#elif defined(ARCHIVE_CRYPTO_SHA512_WIN) +-typedef Digest_CTX archive_sha512_ctx; + #else + typedef unsigned char archive_sha512_ctx; + #endif +--- contrib/libarchive/libarchive/archive_disk_acl_freebsd.c.orig ++++ contrib/libarchive/libarchive/archive_disk_acl_freebsd.c +@@ -262,7 +262,7 @@ + } + for (i = 0; i < acl_nfs4_flag_map_size; ++i) { + r = acl_get_flag_np(acl_flagset, +- acl_nfs4_flag_map[i].p_perm); ++ (acl_flag_t)acl_nfs4_flag_map[i].p_perm); + if (r == -1) { + archive_set_error(&a->archive, errno, + "Failed to check flag in a NFSv4 " +@@ -517,7 +517,7 @@ + for (i = 0; i < acl_nfs4_flag_map_size; ++i) { + if (ae_permset & acl_nfs4_flag_map[i].a_perm) { + if (acl_add_flag_np(acl_flagset, +- acl_nfs4_flag_map[i].p_perm) != 0) { ++ (acl_flag_t)acl_nfs4_flag_map[i].p_perm) != 0) { + archive_set_error(a, errno, + "Failed to add flag to " + "NFSv4 ACL flagset"); +--- contrib/libarchive/libarchive/archive_entry.c.orig ++++ contrib/libarchive/libarchive/archive_entry.c +@@ -275,7 +275,7 @@ + * Functions for reading fields from an archive_entry. + */ + +-time_t ++__LA_TIME_T + archive_entry_atime(struct archive_entry *entry) + { + return (entry->ae_stat.aest_atime); +@@ -293,7 +293,7 @@ + return (entry->ae_set & AE_SET_ATIME); + } + +-time_t ++__LA_TIME_T + archive_entry_birthtime(struct archive_entry *entry) + { + return (entry->ae_stat.aest_birthtime); +@@ -311,7 +311,7 @@ + return (entry->ae_set & AE_SET_BIRTHTIME); + } + +-time_t ++__LA_TIME_T + archive_entry_ctime(struct archive_entry *entry) + { + return (entry->ae_stat.aest_ctime); +@@ -329,7 +329,7 @@ + return (entry->ae_stat.aest_ctime_nsec); + } + +-dev_t ++__LA_DEV_T + archive_entry_dev(struct archive_entry *entry) + { + if (entry->ae_stat.aest_dev_is_broken_down) +@@ -345,7 +345,7 @@ + return (entry->ae_set & AE_SET_DEV); + } + +-dev_t ++__LA_DEV_T + archive_entry_devmajor(struct archive_entry *entry) + { + if (entry->ae_stat.aest_dev_is_broken_down) +@@ -354,7 +354,7 @@ + return major(entry->ae_stat.aest_dev); + } + +-dev_t ++__LA_DEV_T + archive_entry_devminor(struct archive_entry *entry) + { + if (entry->ae_stat.aest_dev_is_broken_down) +@@ -568,7 +568,7 @@ + return (entry->acl.mode); + } + +-time_t ++__LA_TIME_T + archive_entry_mtime(struct archive_entry *entry) + { + return (entry->ae_stat.aest_mtime); +@@ -667,7 +667,7 @@ + return (entry->ae_set & AE_SET_RDEV); + } + +-dev_t ++__LA_DEV_T + archive_entry_rdev(struct archive_entry *entry) + { + if (archive_entry_rdev_is_set(entry)) { +@@ -681,7 +681,7 @@ + } + } + +-dev_t ++__LA_DEV_T + archive_entry_rdevmajor(struct archive_entry *entry) + { + if (archive_entry_rdev_is_set(entry)) { +@@ -694,7 +694,7 @@ + } + } + +-dev_t ++__LA_DEV_T + archive_entry_rdevminor(struct archive_entry *entry) + { + if (archive_entry_rdev_is_set(entry)) { +@@ -984,7 +984,9 @@ + archive_entry_set_ino(struct archive_entry *entry, la_int64_t ino) + { + if (ino < 0) { +- ino = 0; ++ entry->stat_valid = 0; ++ entry->ae_set &= ~AE_SET_INO; ++ return; + } + entry->stat_valid = 0; + entry->ae_set |= AE_SET_INO; +@@ -995,7 +997,9 @@ + archive_entry_set_ino64(struct archive_entry *entry, la_int64_t ino) + { + if (ino < 0) { +- ino = 0; ++ entry->stat_valid = 0; ++ entry->ae_set &= ~AE_SET_INO; ++ return; + } + entry->stat_valid = 0; + entry->ae_set |= AE_SET_INO; +@@ -1088,7 +1092,7 @@ + } + + void +-archive_entry_set_atime(struct archive_entry *entry, time_t t, long ns) ++archive_entry_set_atime(struct archive_entry *entry, __LA_TIME_T t, long ns) + { + FIX_NS(t, ns); + entry->stat_valid = 0; +@@ -1105,7 +1109,7 @@ + } + + void +-archive_entry_set_birthtime(struct archive_entry *entry, time_t t, long ns) ++archive_entry_set_birthtime(struct archive_entry *entry, __LA_TIME_T t, long ns) + { + FIX_NS(t, ns); + entry->stat_valid = 0; +@@ -1122,7 +1126,7 @@ + } + + void +-archive_entry_set_ctime(struct archive_entry *entry, time_t t, long ns) ++archive_entry_set_ctime(struct archive_entry *entry, __LA_TIME_T t, long ns) + { + FIX_NS(t, ns); + entry->stat_valid = 0; +@@ -1139,7 +1143,7 @@ + } + + void +-archive_entry_set_dev(struct archive_entry *entry, dev_t d) ++archive_entry_set_dev(struct archive_entry *entry, __LA_DEV_T d) + { + entry->stat_valid = 0; + entry->ae_set |= AE_SET_DEV; +@@ -1148,7 +1152,7 @@ + } + + void +-archive_entry_set_devmajor(struct archive_entry *entry, dev_t m) ++archive_entry_set_devmajor(struct archive_entry *entry, __LA_DEV_T m) + { + entry->stat_valid = 0; + entry->ae_set |= AE_SET_DEV; +@@ -1157,7 +1161,7 @@ + } + + void +-archive_entry_set_devminor(struct archive_entry *entry, dev_t m) ++archive_entry_set_devminor(struct archive_entry *entry, __LA_DEV_T m) + { + entry->stat_valid = 0; + entry->ae_set |= AE_SET_DEV; +@@ -1243,7 +1247,7 @@ + } + + void +-archive_entry_set_mtime(struct archive_entry *entry, time_t t, long ns) ++archive_entry_set_mtime(struct archive_entry *entry, __LA_TIME_T t, long ns) + { + FIX_NS(t, ns); + entry->stat_valid = 0; +@@ -1319,7 +1323,7 @@ + } + + void +-archive_entry_set_rdev(struct archive_entry *entry, dev_t m) ++archive_entry_set_rdev(struct archive_entry *entry, __LA_DEV_T m) + { + entry->stat_valid = 0; + entry->ae_stat.aest_rdev = m; +@@ -1330,7 +1334,7 @@ + } + + void +-archive_entry_set_rdevmajor(struct archive_entry *entry, dev_t m) ++archive_entry_set_rdevmajor(struct archive_entry *entry, __LA_DEV_T m) + { + entry->stat_valid = 0; + entry->ae_stat.aest_rdev_is_broken_down = 1; +@@ -1340,7 +1344,7 @@ + } + + void +-archive_entry_set_rdevminor(struct archive_entry *entry, dev_t m) ++archive_entry_set_rdevminor(struct archive_entry *entry, __LA_DEV_T m) + { + entry->stat_valid = 0; + entry->ae_stat.aest_rdev_is_broken_down = 1; +@@ -1603,21 +1607,27 @@ + switch (type) { + case ARCHIVE_ENTRY_DIGEST_MD5: + copy_digest(entry, md5, digest); ++ entry->mset_digest |= AE_MSET_DIGEST_MD5; + break; + case ARCHIVE_ENTRY_DIGEST_RMD160: + copy_digest(entry, rmd160, digest); ++ entry->mset_digest |= AE_MSET_DIGEST_RMD160; + break; + case ARCHIVE_ENTRY_DIGEST_SHA1: + copy_digest(entry, sha1, digest); ++ entry->mset_digest |= AE_MSET_DIGEST_SHA1; + break; + case ARCHIVE_ENTRY_DIGEST_SHA256: + copy_digest(entry, sha256, digest); ++ entry->mset_digest |= AE_MSET_DIGEST_SHA256; + break; + case ARCHIVE_ENTRY_DIGEST_SHA384: + copy_digest(entry, sha384, digest); ++ entry->mset_digest |= AE_MSET_DIGEST_SHA384; + break; + case ARCHIVE_ENTRY_DIGEST_SHA512: + copy_digest(entry, sha512, digest); ++ entry->mset_digest |= AE_MSET_DIGEST_SHA512; + break; + default: + return ARCHIVE_WARN; +--- contrib/libarchive/libarchive/archive_entry.h.orig ++++ contrib/libarchive/libarchive/archive_entry.h +@@ -28,7 +28,7 @@ + #define ARCHIVE_ENTRY_H_INCLUDED + + /* Note: Compiler will complain if this does not match archive.h! */ +-#define ARCHIVE_VERSION_NUMBER 3007007 ++#define ARCHIVE_VERSION_NUMBER 3008001 + + /* + * Note: archive_entry.h is for use outside of libarchive; the +@@ -40,8 +40,11 @@ + + #include <sys/types.h> + #include <stddef.h> /* for wchar_t */ +-#include <stdint.h> ++#include <stdint.h> /* for C99 int64_t, etc. */ ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* time_t is slated to be removed from public includes in 4.0 */ + #include <time.h> ++#endif + + #if defined(_WIN32) && !defined(__CYGWIN__) + #include <windows.h> +@@ -55,12 +58,15 @@ + #define __LA_INT64_T_DEFINED + # if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__) + typedef __int64 la_int64_t; ++typedef unsigned __int64 la_uint64_t; + # else + #include <unistd.h> + # if defined(_SCO_DS) || defined(__osf__) + typedef long long la_int64_t; ++typedef unsigned long long la_uint64_t; + # else + typedef int64_t la_int64_t; ++typedef uint64_t la_uint64_t; + # endif + # endif + #endif +@@ -96,6 +102,30 @@ + # define __LA_MODE_T mode_t + #endif + ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* Use the platform types for time_t */ ++#define __LA_TIME_T time_t ++#else ++/* Use 64-bits integer types for time_t */ ++#define __LA_TIME_T la_int64_t ++#endif ++ ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* Use the platform types for dev_t */ ++#define __LA_DEV_T dev_t ++#else ++/* Use 64-bits integer types for dev_t */ ++#define __LA_DEV_T la_int64_t ++#endif ++ ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++/* Libarchive 3.x used signed int64 for inode numbers */ ++#define __LA_INO_T la_int64_t ++#else ++/* Switch to unsigned for libarchive 4.0 */ ++#define __LA_INO_T la_uint64_t ++#endif ++ + /* Large file support for Android */ + #if defined(__LIBARCHIVE_BUILD) && defined(__ANDROID__) + #include "android_lf.h" +@@ -127,7 +157,8 @@ + # define __LA_DECL + #endif + +-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1 ++#if defined(__GNUC__) && (__GNUC__ > 3 || \ ++ (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) + # define __LA_DEPRECATED __attribute__((deprecated)) + #else + # define __LA_DEPRECATED +@@ -235,19 +266,19 @@ + * also return NULL when implicit character set conversions fail. + * This is usually what you want. + */ +-__LA_DECL time_t archive_entry_atime(struct archive_entry *); ++__LA_DECL __LA_TIME_T archive_entry_atime(struct archive_entry *); + __LA_DECL long archive_entry_atime_nsec(struct archive_entry *); + __LA_DECL int archive_entry_atime_is_set(struct archive_entry *); +-__LA_DECL time_t archive_entry_birthtime(struct archive_entry *); ++__LA_DECL __LA_TIME_T archive_entry_birthtime(struct archive_entry *); + __LA_DECL long archive_entry_birthtime_nsec(struct archive_entry *); + __LA_DECL int archive_entry_birthtime_is_set(struct archive_entry *); +-__LA_DECL time_t archive_entry_ctime(struct archive_entry *); ++__LA_DECL __LA_TIME_T archive_entry_ctime(struct archive_entry *); + __LA_DECL long archive_entry_ctime_nsec(struct archive_entry *); + __LA_DECL int archive_entry_ctime_is_set(struct archive_entry *); +-__LA_DECL dev_t archive_entry_dev(struct archive_entry *); ++__LA_DECL __LA_DEV_T archive_entry_dev(struct archive_entry *); + __LA_DECL int archive_entry_dev_is_set(struct archive_entry *); +-__LA_DECL dev_t archive_entry_devmajor(struct archive_entry *); +-__LA_DECL dev_t archive_entry_devminor(struct archive_entry *); ++__LA_DECL __LA_DEV_T archive_entry_devmajor(struct archive_entry *); ++__LA_DECL __LA_DEV_T archive_entry_devminor(struct archive_entry *); + __LA_DECL __LA_MODE_T archive_entry_filetype(struct archive_entry *); + __LA_DECL int archive_entry_filetype_is_set(struct archive_entry *); + __LA_DECL void archive_entry_fflags(struct archive_entry *, +@@ -264,8 +295,8 @@ + __LA_DECL const char *archive_entry_hardlink_utf8(struct archive_entry *); + __LA_DECL const wchar_t *archive_entry_hardlink_w(struct archive_entry *); + __LA_DECL int archive_entry_hardlink_is_set(struct archive_entry *); +-__LA_DECL la_int64_t archive_entry_ino(struct archive_entry *); +-__LA_DECL la_int64_t archive_entry_ino64(struct archive_entry *); ++__LA_DECL __LA_INO_T archive_entry_ino(struct archive_entry *); ++__LA_DECL __LA_INO_T archive_entry_ino64(struct archive_entry *); + __LA_DECL int archive_entry_ino_is_set(struct archive_entry *); + __LA_DECL __LA_MODE_T archive_entry_mode(struct archive_entry *); + __LA_DECL time_t archive_entry_mtime(struct archive_entry *); +@@ -278,9 +309,9 @@ + __LA_DECL __LA_MODE_T archive_entry_perm(struct archive_entry *); + __LA_DECL int archive_entry_perm_is_set(struct archive_entry *); + __LA_DECL int archive_entry_rdev_is_set(struct archive_entry *); +-__LA_DECL dev_t archive_entry_rdev(struct archive_entry *); +-__LA_DECL dev_t archive_entry_rdevmajor(struct archive_entry *); +-__LA_DECL dev_t archive_entry_rdevminor(struct archive_entry *); ++__LA_DECL __LA_DEV_T archive_entry_rdev(struct archive_entry *); ++__LA_DECL __LA_DEV_T archive_entry_rdevmajor(struct archive_entry *); ++__LA_DECL __LA_DEV_T archive_entry_rdevminor(struct archive_entry *); + __LA_DECL const char *archive_entry_sourcepath(struct archive_entry *); + __LA_DECL const wchar_t *archive_entry_sourcepath_w(struct archive_entry *); + __LA_DECL la_int64_t archive_entry_size(struct archive_entry *); +@@ -309,18 +340,18 @@ + * always copied. + */ + +-__LA_DECL void archive_entry_set_atime(struct archive_entry *, time_t, long); ++__LA_DECL void archive_entry_set_atime(struct archive_entry *, __LA_TIME_T, long); + __LA_DECL void archive_entry_unset_atime(struct archive_entry *); + #if defined(_WIN32) && !defined(__CYGWIN__) + __LA_DECL void archive_entry_copy_bhfi(struct archive_entry *, BY_HANDLE_FILE_INFORMATION *); + #endif +-__LA_DECL void archive_entry_set_birthtime(struct archive_entry *, time_t, long); ++__LA_DECL void archive_entry_set_birthtime(struct archive_entry *, __LA_TIME_T, long); + __LA_DECL void archive_entry_unset_birthtime(struct archive_entry *); +-__LA_DECL void archive_entry_set_ctime(struct archive_entry *, time_t, long); ++__LA_DECL void archive_entry_set_ctime(struct archive_entry *, __LA_TIME_T, long); + __LA_DECL void archive_entry_unset_ctime(struct archive_entry *); +-__LA_DECL void archive_entry_set_dev(struct archive_entry *, dev_t); +-__LA_DECL void archive_entry_set_devmajor(struct archive_entry *, dev_t); +-__LA_DECL void archive_entry_set_devminor(struct archive_entry *, dev_t); ++__LA_DECL void archive_entry_set_dev(struct archive_entry *, __LA_DEV_T); ++__LA_DECL void archive_entry_set_devmajor(struct archive_entry *, __LA_DEV_T); ++__LA_DECL void archive_entry_set_devminor(struct archive_entry *, __LA_DEV_T); + __LA_DECL void archive_entry_set_filetype(struct archive_entry *, unsigned int); + __LA_DECL void archive_entry_set_fflags(struct archive_entry *, + unsigned long /* set */, unsigned long /* clear */); +@@ -343,15 +374,15 @@ + __LA_DECL void archive_entry_copy_hardlink(struct archive_entry *, const char *); + __LA_DECL void archive_entry_copy_hardlink_w(struct archive_entry *, const wchar_t *); + __LA_DECL int archive_entry_update_hardlink_utf8(struct archive_entry *, const char *); +-__LA_DECL void archive_entry_set_ino(struct archive_entry *, la_int64_t); +-__LA_DECL void archive_entry_set_ino64(struct archive_entry *, la_int64_t); ++__LA_DECL void archive_entry_set_ino(struct archive_entry *, __LA_INO_T); ++__LA_DECL void archive_entry_set_ino64(struct archive_entry *, __LA_INO_T); + __LA_DECL void archive_entry_set_link(struct archive_entry *, const char *); + __LA_DECL void archive_entry_set_link_utf8(struct archive_entry *, const char *); + __LA_DECL void archive_entry_copy_link(struct archive_entry *, const char *); + __LA_DECL void archive_entry_copy_link_w(struct archive_entry *, const wchar_t *); + __LA_DECL int archive_entry_update_link_utf8(struct archive_entry *, const char *); + __LA_DECL void archive_entry_set_mode(struct archive_entry *, __LA_MODE_T); +-__LA_DECL void archive_entry_set_mtime(struct archive_entry *, time_t, long); ++__LA_DECL void archive_entry_set_mtime(struct archive_entry *, __LA_TIME_T, long); + __LA_DECL void archive_entry_unset_mtime(struct archive_entry *); + __LA_DECL void archive_entry_set_nlink(struct archive_entry *, unsigned int); + __LA_DECL void archive_entry_set_pathname(struct archive_entry *, const char *); +@@ -360,9 +391,9 @@ + __LA_DECL void archive_entry_copy_pathname_w(struct archive_entry *, const wchar_t *); + __LA_DECL int archive_entry_update_pathname_utf8(struct archive_entry *, const char *); + __LA_DECL void archive_entry_set_perm(struct archive_entry *, __LA_MODE_T); +-__LA_DECL void archive_entry_set_rdev(struct archive_entry *, dev_t); +-__LA_DECL void archive_entry_set_rdevmajor(struct archive_entry *, dev_t); +-__LA_DECL void archive_entry_set_rdevminor(struct archive_entry *, dev_t); ++__LA_DECL void archive_entry_set_rdev(struct archive_entry *, __LA_DEV_T); ++__LA_DECL void archive_entry_set_rdevmajor(struct archive_entry *, __LA_DEV_T); ++__LA_DECL void archive_entry_set_rdevminor(struct archive_entry *, __LA_DEV_T); + __LA_DECL void archive_entry_set_size(struct archive_entry *, la_int64_t); + __LA_DECL void archive_entry_unset_size(struct archive_entry *); + __LA_DECL void archive_entry_copy_sourcepath(struct archive_entry *, const char *); +@@ -418,6 +449,7 @@ + #define ARCHIVE_ENTRY_DIGEST_SHA512 0x00000006 + + __LA_DECL const unsigned char * archive_entry_digest(struct archive_entry *, int /* type */); ++__LA_DECL int archive_entry_set_digest(struct archive_entry *, int, const unsigned char *); + + /* + * ACL routines. This used to simply store and return text-format ACL +--- contrib/libarchive/libarchive/archive_entry_link_resolver.c.orig ++++ contrib/libarchive/libarchive/archive_entry_link_resolver.c +@@ -280,6 +280,10 @@ + dev_t dev; + int64_t ino; + ++ if (!archive_entry_ino_is_set(entry) || !archive_entry_dev_is_set(entry)) { ++ return (NULL); ++ } ++ + /* Free a held entry. */ + if (res->spare != NULL) { + archive_entry_free(res->spare->canonical); +@@ -369,6 +373,10 @@ + struct links_entry *le; + size_t hash, bucket; + ++ if (!archive_entry_ino_is_set(entry) || !archive_entry_dev_is_set(entry)) { ++ return (NULL); ++ } ++ + /* Add this entry to the links cache. */ + le = calloc(1, sizeof(struct links_entry)); + if (le == NULL) +--- contrib/libarchive/libarchive/archive_entry_locale.h.orig ++++ contrib/libarchive/libarchive/archive_entry_locale.h +@@ -87,4 +87,4 @@ + int _archive_entry_copy_uname_l(struct archive_entry *, + const char *, size_t, struct archive_string_conv *); + +-#endif /* ARCHIVE_ENTRY_LOCALE_H_INCLUDED */ ++#endif /* !ARCHIVE_ENTRY_LOCALE_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_entry_private.h.orig ++++ contrib/libarchive/libarchive/archive_entry_private.h +@@ -174,6 +174,13 @@ + size_t mac_metadata_size; + + /* Digest support. */ ++#define AE_MSET_DIGEST_MD5 1 ++#define AE_MSET_DIGEST_RMD160 2 ++#define AE_MSET_DIGEST_SHA1 4 ++#define AE_MSET_DIGEST_SHA256 8 ++#define AE_MSET_DIGEST_SHA384 16 ++#define AE_MSET_DIGEST_SHA512 32 ++ uint_least32_t mset_digest; + struct ae_digest digest; + + /* ACL support. */ +@@ -195,8 +202,4 @@ + int ae_symlink_type; + }; + +-int +-archive_entry_set_digest(struct archive_entry *entry, int type, +- const unsigned char *digest); +- +-#endif /* ARCHIVE_ENTRY_PRIVATE_H_INCLUDED */ ++#endif /* !ARCHIVE_ENTRY_PRIVATE_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_getdate.c.orig ++++ contrib/libarchive/libarchive/archive_getdate.c +@@ -1,1100 +0,0 @@ +-/* +- * This code is in the public domain and has no copyright. +- * +- * This is a plain C recursive-descent translation of an old +- * public-domain YACC grammar that has been used for parsing dates in +- * very many open-source projects. +- * +- * Since the original authors were generous enough to donate their +- * work to the public domain, I feel compelled to match their +- * generosity. +- * +- * Tim Kientzle, February 2009. +- */ +- +-/* +- * Header comment from original getdate.y: +- */ +- +-/* +-** Originally written by Steven M. Bellovin <smb@research.att.com> while +-** at the University of North Carolina at Chapel Hill. Later tweaked by +-** a couple of people on Usenet. Completely overhauled by Rich $alz +-** <rsalz@bbn.com> and Jim Berets <jberets@bbn.com> in August, 1990; +-** +-** This grammar has 10 shift/reduce conflicts. +-** +-** This code is in the public domain and has no copyright. +-*/ +- +-#include "archive_platform.h" +- +-#include <ctype.h> +-#include <stdio.h> +-#include <stdlib.h> +-#include <string.h> +-#include <time.h> +- +-#define __LIBARCHIVE_BUILD 1 +-#include "archive_getdate.h" +- +-/* Basic time units. */ +-#define EPOCH 1970 +-#define MINUTE (60L) +-#define HOUR (60L * MINUTE) +-#define DAY (24L * HOUR) +- +-/* Daylight-savings mode: on, off, or not yet known. */ +-enum DSTMODE { DSTon, DSToff, DSTmaybe }; +-/* Meridian: am or pm. */ +-enum { tAM, tPM }; +-/* Token types returned by nexttoken() */ +-enum { tAGO = 260, tDAY, tDAYZONE, tAMPM, tMONTH, tMONTH_UNIT, tSEC_UNIT, +- tUNUMBER, tZONE, tDST }; +-struct token { int token; time_t value; }; +- +-/* +- * Parser state. +- */ +-struct gdstate { +- struct token *tokenp; /* Pointer to next token. */ +- /* HaveXxxx counts how many of this kind of phrase we've seen; +- * it's a fatal error to have more than one time, zone, day, +- * or date phrase. */ +- int HaveYear; +- int HaveMonth; +- int HaveDay; +- int HaveWeekDay; /* Day of week */ +- int HaveTime; /* Hour/minute/second */ +- int HaveZone; /* timezone and/or DST info */ +- int HaveRel; /* time offset; we can have more than one */ +- /* Absolute time values. */ +- time_t Timezone; /* Seconds offset from GMT */ +- time_t Day; +- time_t Hour; +- time_t Minutes; +- time_t Month; +- time_t Seconds; +- time_t Year; +- /* DST selection */ +- enum DSTMODE DSTmode; +- /* Day of week accounting, e.g., "3rd Tuesday" */ +- time_t DayOrdinal; /* "3" in "3rd Tuesday" */ +- time_t DayNumber; /* "Tuesday" in "3rd Tuesday" */ +- /* Relative time values: hour/day/week offsets are measured in +- * seconds, month/year are counted in months. */ +- time_t RelMonth; +- time_t RelSeconds; +-}; +- +-/* +- * A series of functions that recognize certain common time phrases. +- * Each function returns 1 if it managed to make sense of some of the +- * tokens, zero otherwise. +- */ +- +-/* +- * hour:minute or hour:minute:second with optional AM, PM, or numeric +- * timezone offset +- */ +-static int +-timephrase(struct gdstate *gds) +-{ +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == ':' +- && gds->tokenp[2].token == tUNUMBER +- && gds->tokenp[3].token == ':' +- && gds->tokenp[4].token == tUNUMBER) { +- /* "12:14:18" or "22:08:07" */ +- ++gds->HaveTime; +- gds->Hour = gds->tokenp[0].value; +- gds->Minutes = gds->tokenp[2].value; +- gds->Seconds = gds->tokenp[4].value; +- gds->tokenp += 5; +- } +- else if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == ':' +- && gds->tokenp[2].token == tUNUMBER) { +- /* "12:14" or "22:08" */ +- ++gds->HaveTime; +- gds->Hour = gds->tokenp[0].value; +- gds->Minutes = gds->tokenp[2].value; +- gds->Seconds = 0; +- gds->tokenp += 3; +- } +- else if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == tAMPM) { +- /* "7" is a time if it's followed by "am" or "pm" */ +- ++gds->HaveTime; +- gds->Hour = gds->tokenp[0].value; +- gds->Minutes = gds->Seconds = 0; +- /* We'll handle the AM/PM below. */ +- gds->tokenp += 1; +- } else { +- /* We can't handle this. */ +- return 0; +- } +- +- if (gds->tokenp[0].token == tAMPM) { +- /* "7:12pm", "12:20:13am" */ +- if (gds->Hour == 12) +- gds->Hour = 0; +- if (gds->tokenp[0].value == tPM) +- gds->Hour += 12; +- gds->tokenp += 1; +- } +- if (gds->tokenp[0].token == '+' +- && gds->tokenp[1].token == tUNUMBER) { +- /* "7:14+0700" */ +- gds->HaveZone++; +- gds->DSTmode = DSToff; +- gds->Timezone = - ((gds->tokenp[1].value / 100) * HOUR +- + (gds->tokenp[1].value % 100) * MINUTE); +- gds->tokenp += 2; +- } +- if (gds->tokenp[0].token == '-' +- && gds->tokenp[1].token == tUNUMBER) { +- /* "19:14:12-0530" */ +- gds->HaveZone++; +- gds->DSTmode = DSToff; +- gds->Timezone = + ((gds->tokenp[1].value / 100) * HOUR +- + (gds->tokenp[1].value % 100) * MINUTE); +- gds->tokenp += 2; +- } +- return 1; +-} +- +-/* +- * Timezone name, possibly including DST. +- */ +-static int +-zonephrase(struct gdstate *gds) +-{ +- if (gds->tokenp[0].token == tZONE +- && gds->tokenp[1].token == tDST) { +- gds->HaveZone++; +- gds->Timezone = gds->tokenp[0].value; +- gds->DSTmode = DSTon; +- gds->tokenp += 1; +- return 1; +- } +- +- if (gds->tokenp[0].token == tZONE) { +- gds->HaveZone++; +- gds->Timezone = gds->tokenp[0].value; +- gds->DSTmode = DSToff; +- gds->tokenp += 1; +- return 1; +- } +- +- if (gds->tokenp[0].token == tDAYZONE) { +- gds->HaveZone++; +- gds->Timezone = gds->tokenp[0].value; +- gds->DSTmode = DSTon; +- gds->tokenp += 1; +- return 1; +- } +- return 0; +-} +- +-/* +- * Year/month/day in various combinations. +- */ +-static int +-datephrase(struct gdstate *gds) +-{ +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == '/' +- && gds->tokenp[2].token == tUNUMBER +- && gds->tokenp[3].token == '/' +- && gds->tokenp[4].token == tUNUMBER) { +- gds->HaveYear++; +- gds->HaveMonth++; +- gds->HaveDay++; +- if (gds->tokenp[0].value >= 13) { +- /* First number is big: 2004/01/29, 99/02/17 */ +- gds->Year = gds->tokenp[0].value; +- gds->Month = gds->tokenp[2].value; +- gds->Day = gds->tokenp[4].value; +- } else if ((gds->tokenp[4].value >= 13) +- || (gds->tokenp[2].value >= 13)) { +- /* Last number is big: 01/07/98 */ +- /* Middle number is big: 01/29/04 */ +- gds->Month = gds->tokenp[0].value; +- gds->Day = gds->tokenp[2].value; +- gds->Year = gds->tokenp[4].value; +- } else { +- /* No significant clues: 02/03/04 */ +- gds->Month = gds->tokenp[0].value; +- gds->Day = gds->tokenp[2].value; +- gds->Year = gds->tokenp[4].value; +- } +- gds->tokenp += 5; +- return 1; +- } +- +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == '/' +- && gds->tokenp[2].token == tUNUMBER) { +- /* "1/15" */ +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Month = gds->tokenp[0].value; +- gds->Day = gds->tokenp[2].value; +- gds->tokenp += 3; +- return 1; +- } +- +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == '-' +- && gds->tokenp[2].token == tUNUMBER +- && gds->tokenp[3].token == '-' +- && gds->tokenp[4].token == tUNUMBER) { +- /* ISO 8601 format. yyyy-mm-dd. */ +- gds->HaveYear++; +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Year = gds->tokenp[0].value; +- gds->Month = gds->tokenp[2].value; +- gds->Day = gds->tokenp[4].value; +- gds->tokenp += 5; +- return 1; +- } +- +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == '-' +- && gds->tokenp[2].token == tMONTH +- && gds->tokenp[3].token == '-' +- && gds->tokenp[4].token == tUNUMBER) { +- gds->HaveYear++; +- gds->HaveMonth++; +- gds->HaveDay++; +- if (gds->tokenp[0].value > 31) { +- /* e.g. 1992-Jun-17 */ +- gds->Year = gds->tokenp[0].value; +- gds->Month = gds->tokenp[2].value; +- gds->Day = gds->tokenp[4].value; +- } else { +- /* e.g. 17-JUN-1992. */ +- gds->Day = gds->tokenp[0].value; +- gds->Month = gds->tokenp[2].value; +- gds->Year = gds->tokenp[4].value; +- } +- gds->tokenp += 5; +- return 1; +- } +- +- if (gds->tokenp[0].token == tMONTH +- && gds->tokenp[1].token == tUNUMBER +- && gds->tokenp[2].token == ',' +- && gds->tokenp[3].token == tUNUMBER) { +- /* "June 17, 2001" */ +- gds->HaveYear++; +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Month = gds->tokenp[0].value; +- gds->Day = gds->tokenp[1].value; +- gds->Year = gds->tokenp[3].value; +- gds->tokenp += 4; +- return 1; +- } +- +- if (gds->tokenp[0].token == tMONTH +- && gds->tokenp[1].token == tUNUMBER) { +- /* "May 3" */ +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Month = gds->tokenp[0].value; +- gds->Day = gds->tokenp[1].value; +- gds->tokenp += 2; +- return 1; +- } +- +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == tMONTH +- && gds->tokenp[2].token == tUNUMBER) { +- /* "12 Sept 1997" */ +- gds->HaveYear++; +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Day = gds->tokenp[0].value; +- gds->Month = gds->tokenp[1].value; +- gds->Year = gds->tokenp[2].value; +- gds->tokenp += 3; +- return 1; +- } +- +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == tMONTH) { +- /* "12 Sept" */ +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Day = gds->tokenp[0].value; +- gds->Month = gds->tokenp[1].value; +- gds->tokenp += 2; +- return 1; +- } +- +- return 0; +-} +- +-/* +- * Relative time phrase: "tomorrow", "yesterday", "+1 hour", etc. +- */ +-static int +-relunitphrase(struct gdstate *gds) +-{ +- if (gds->tokenp[0].token == '-' +- && gds->tokenp[1].token == tUNUMBER +- && gds->tokenp[2].token == tSEC_UNIT) { +- /* "-3 hours" */ +- gds->HaveRel++; +- gds->RelSeconds -= gds->tokenp[1].value * gds->tokenp[2].value; +- gds->tokenp += 3; +- return 1; +- } +- if (gds->tokenp[0].token == '+' +- && gds->tokenp[1].token == tUNUMBER +- && gds->tokenp[2].token == tSEC_UNIT) { +- /* "+1 minute" */ +- gds->HaveRel++; +- gds->RelSeconds += gds->tokenp[1].value * gds->tokenp[2].value; +- gds->tokenp += 3; +- return 1; +- } +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == tSEC_UNIT) { +- /* "1 day" */ +- gds->HaveRel++; +- gds->RelSeconds += gds->tokenp[0].value * gds->tokenp[1].value; +- gds->tokenp += 2; +- return 1; +- } +- if (gds->tokenp[0].token == '-' +- && gds->tokenp[1].token == tUNUMBER +- && gds->tokenp[2].token == tMONTH_UNIT) { +- /* "-3 months" */ +- gds->HaveRel++; +- gds->RelMonth -= gds->tokenp[1].value * gds->tokenp[2].value; +- gds->tokenp += 3; +- return 1; +- } +- if (gds->tokenp[0].token == '+' +- && gds->tokenp[1].token == tUNUMBER +- && gds->tokenp[2].token == tMONTH_UNIT) { +- /* "+5 years" */ +- gds->HaveRel++; +- gds->RelMonth += gds->tokenp[1].value * gds->tokenp[2].value; +- gds->tokenp += 3; +- return 1; +- } +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == tMONTH_UNIT) { +- /* "2 years" */ +- gds->HaveRel++; +- gds->RelMonth += gds->tokenp[0].value * gds->tokenp[1].value; +- gds->tokenp += 2; +- return 1; +- } +- if (gds->tokenp[0].token == tSEC_UNIT) { +- /* "now", "tomorrow" */ +- gds->HaveRel++; +- gds->RelSeconds += gds->tokenp[0].value; +- gds->tokenp += 1; +- return 1; +- } +- if (gds->tokenp[0].token == tMONTH_UNIT) { +- /* "month" */ +- gds->HaveRel++; +- gds->RelMonth += gds->tokenp[0].value; +- gds->tokenp += 1; +- return 1; +- } +- return 0; +-} +- +-/* +- * Day of the week specification. +- */ +-static int +-dayphrase(struct gdstate *gds) +-{ +- if (gds->tokenp[0].token == tDAY) { +- /* "tues", "wednesday," */ +- gds->HaveWeekDay++; +- gds->DayOrdinal = 1; +- gds->DayNumber = gds->tokenp[0].value; +- gds->tokenp += 1; +- if (gds->tokenp[0].token == ',') +- gds->tokenp += 1; +- return 1; +- } +- if (gds->tokenp[0].token == tUNUMBER +- && gds->tokenp[1].token == tDAY) { +- /* "second tues" "3 wed" */ +- gds->HaveWeekDay++; +- gds->DayOrdinal = gds->tokenp[0].value; +- gds->DayNumber = gds->tokenp[1].value; +- gds->tokenp += 2; +- return 1; +- } +- return 0; +-} +- +-/* +- * Try to match a phrase using one of the above functions. +- * This layer also deals with a couple of generic issues. +- */ +-static int +-phrase(struct gdstate *gds) +-{ +- if (timephrase(gds)) +- return 1; +- if (zonephrase(gds)) +- return 1; +- if (datephrase(gds)) +- return 1; +- if (dayphrase(gds)) +- return 1; +- if (relunitphrase(gds)) { +- if (gds->tokenp[0].token == tAGO) { +- gds->RelSeconds = -gds->RelSeconds; +- gds->RelMonth = -gds->RelMonth; +- gds->tokenp += 1; +- } +- return 1; +- } +- +- /* Bare numbers sometimes have meaning. */ +- if (gds->tokenp[0].token == tUNUMBER) { +- if (gds->HaveTime && !gds->HaveYear && !gds->HaveRel) { +- gds->HaveYear++; +- gds->Year = gds->tokenp[0].value; +- gds->tokenp += 1; +- return 1; +- } +- +- if(gds->tokenp[0].value > 10000) { +- /* "20040301" */ +- gds->HaveYear++; +- gds->HaveMonth++; +- gds->HaveDay++; +- gds->Day= (gds->tokenp[0].value)%100; +- gds->Month= (gds->tokenp[0].value/100)%100; +- gds->Year = gds->tokenp[0].value/10000; +- gds->tokenp += 1; +- return 1; +- } +- +- if (gds->tokenp[0].value < 24) { +- gds->HaveTime++; +- gds->Hour = gds->tokenp[0].value; +- gds->Minutes = 0; +- gds->Seconds = 0; +- gds->tokenp += 1; +- return 1; +- } +- +- if ((gds->tokenp[0].value / 100 < 24) +- && (gds->tokenp[0].value % 100 < 60)) { +- /* "513" is same as "5:13" */ +- gds->Hour = gds->tokenp[0].value / 100; +- gds->Minutes = gds->tokenp[0].value % 100; +- gds->Seconds = 0; +- gds->tokenp += 1; +- return 1; +- } +- } +- +- return 0; +-} +- +-/* +- * A dictionary of time words. +- */ +-static struct LEXICON { +- size_t abbrev; +- const char *name; +- int type; +- time_t value; +-} const TimeWords[] = { +- /* am/pm */ +- { 0, "am", tAMPM, tAM }, +- { 0, "pm", tAMPM, tPM }, +- +- /* Month names. */ +- { 3, "january", tMONTH, 1 }, +- { 3, "february", tMONTH, 2 }, +- { 3, "march", tMONTH, 3 }, +- { 3, "april", tMONTH, 4 }, +- { 3, "may", tMONTH, 5 }, +- { 3, "june", tMONTH, 6 }, +- { 3, "july", tMONTH, 7 }, +- { 3, "august", tMONTH, 8 }, +- { 3, "september", tMONTH, 9 }, +- { 3, "october", tMONTH, 10 }, +- { 3, "november", tMONTH, 11 }, +- { 3, "december", tMONTH, 12 }, +- +- /* Days of the week. */ +- { 2, "sunday", tDAY, 0 }, +- { 3, "monday", tDAY, 1 }, +- { 2, "tuesday", tDAY, 2 }, +- { 3, "wednesday", tDAY, 3 }, +- { 2, "thursday", tDAY, 4 }, +- { 2, "friday", tDAY, 5 }, +- { 2, "saturday", tDAY, 6 }, +- +- /* Timezones: Offsets are in seconds. */ +- { 0, "gmt", tZONE, 0*HOUR }, /* Greenwich Mean */ +- { 0, "ut", tZONE, 0*HOUR }, /* Universal (Coordinated) */ +- { 0, "utc", tZONE, 0*HOUR }, +- { 0, "wet", tZONE, 0*HOUR }, /* Western European */ +- { 0, "bst", tDAYZONE, 0*HOUR }, /* British Summer */ +- { 0, "wat", tZONE, 1*HOUR }, /* West Africa */ +- { 0, "at", tZONE, 2*HOUR }, /* Azores */ +- /* { 0, "bst", tZONE, 3*HOUR }, */ /* Brazil Standard: Conflict */ +- /* { 0, "gst", tZONE, 3*HOUR }, */ /* Greenland Standard: Conflict*/ +- { 0, "nft", tZONE, 3*HOUR+30*MINUTE }, /* Newfoundland */ +- { 0, "nst", tZONE, 3*HOUR+30*MINUTE }, /* Newfoundland Standard */ +- { 0, "ndt", tDAYZONE, 3*HOUR+30*MINUTE }, /* Newfoundland Daylight */ +- { 0, "ast", tZONE, 4*HOUR }, /* Atlantic Standard */ +- { 0, "adt", tDAYZONE, 4*HOUR }, /* Atlantic Daylight */ +- { 0, "est", tZONE, 5*HOUR }, /* Eastern Standard */ +- { 0, "edt", tDAYZONE, 5*HOUR }, /* Eastern Daylight */ +- { 0, "cst", tZONE, 6*HOUR }, /* Central Standard */ +- { 0, "cdt", tDAYZONE, 6*HOUR }, /* Central Daylight */ +- { 0, "mst", tZONE, 7*HOUR }, /* Mountain Standard */ +- { 0, "mdt", tDAYZONE, 7*HOUR }, /* Mountain Daylight */ +- { 0, "pst", tZONE, 8*HOUR }, /* Pacific Standard */ +- { 0, "pdt", tDAYZONE, 8*HOUR }, /* Pacific Daylight */ +- { 0, "yst", tZONE, 9*HOUR }, /* Yukon Standard */ +- { 0, "ydt", tDAYZONE, 9*HOUR }, /* Yukon Daylight */ +- { 0, "hst", tZONE, 10*HOUR }, /* Hawaii Standard */ +- { 0, "hdt", tDAYZONE, 10*HOUR }, /* Hawaii Daylight */ +- { 0, "cat", tZONE, 10*HOUR }, /* Central Alaska */ +- { 0, "ahst", tZONE, 10*HOUR }, /* Alaska-Hawaii Standard */ +- { 0, "nt", tZONE, 11*HOUR }, /* Nome */ +- { 0, "idlw", tZONE, 12*HOUR }, /* Intl Date Line West */ +- { 0, "cet", tZONE, -1*HOUR }, /* Central European */ +- { 0, "met", tZONE, -1*HOUR }, /* Middle European */ +- { 0, "mewt", tZONE, -1*HOUR }, /* Middle European Winter */ +- { 0, "mest", tDAYZONE, -1*HOUR }, /* Middle European Summer */ +- { 0, "swt", tZONE, -1*HOUR }, /* Swedish Winter */ +- { 0, "sst", tDAYZONE, -1*HOUR }, /* Swedish Summer */ +- { 0, "fwt", tZONE, -1*HOUR }, /* French Winter */ +- { 0, "fst", tDAYZONE, -1*HOUR }, /* French Summer */ +- { 0, "eet", tZONE, -2*HOUR }, /* Eastern Eur, USSR Zone 1 */ +- { 0, "bt", tZONE, -3*HOUR }, /* Baghdad, USSR Zone 2 */ +- { 0, "it", tZONE, -3*HOUR-30*MINUTE },/* Iran */ +- { 0, "zp4", tZONE, -4*HOUR }, /* USSR Zone 3 */ +- { 0, "zp5", tZONE, -5*HOUR }, /* USSR Zone 4 */ +- { 0, "ist", tZONE, -5*HOUR-30*MINUTE },/* Indian Standard */ +- { 0, "zp6", tZONE, -6*HOUR }, /* USSR Zone 5 */ +- /* { 0, "nst", tZONE, -6.5*HOUR }, */ /* North Sumatra: Conflict */ +- /* { 0, "sst", tZONE, -7*HOUR }, */ /* So Sumatra, USSR 6: Conflict */ +- { 0, "wast", tZONE, -7*HOUR }, /* West Australian Standard */ +- { 0, "wadt", tDAYZONE, -7*HOUR }, /* West Australian Daylight */ +- { 0, "jt", tZONE, -7*HOUR-30*MINUTE },/* Java (3pm in Cronusland!)*/ +- { 0, "cct", tZONE, -8*HOUR }, /* China Coast, USSR Zone 7 */ +- { 0, "jst", tZONE, -9*HOUR }, /* Japan Std, USSR Zone 8 */ +- { 0, "cast", tZONE, -9*HOUR-30*MINUTE },/* Ctrl Australian Std */ +- { 0, "cadt", tDAYZONE, -9*HOUR-30*MINUTE },/* Ctrl Australian Daylt */ +- { 0, "east", tZONE, -10*HOUR }, /* Eastern Australian Std */ +- { 0, "eadt", tDAYZONE, -10*HOUR }, /* Eastern Australian Daylt */ +- { 0, "gst", tZONE, -10*HOUR }, /* Guam Std, USSR Zone 9 */ +- { 0, "nzt", tZONE, -12*HOUR }, /* New Zealand */ +- { 0, "nzst", tZONE, -12*HOUR }, /* New Zealand Standard */ +- { 0, "nzdt", tDAYZONE, -12*HOUR }, /* New Zealand Daylight */ +- { 0, "idle", tZONE, -12*HOUR }, /* Intl Date Line East */ +- +- { 0, "dst", tDST, 0 }, +- +- /* Time units. */ +- { 4, "years", tMONTH_UNIT, 12 }, +- { 5, "months", tMONTH_UNIT, 1 }, +- { 9, "fortnights", tSEC_UNIT, 14 * DAY }, +- { 4, "weeks", tSEC_UNIT, 7 * DAY }, +- { 3, "days", tSEC_UNIT, DAY }, +- { 4, "hours", tSEC_UNIT, HOUR }, +- { 3, "minutes", tSEC_UNIT, MINUTE }, +- { 3, "seconds", tSEC_UNIT, 1 }, +- +- /* Relative-time words. */ +- { 0, "tomorrow", tSEC_UNIT, DAY }, +- { 0, "yesterday", tSEC_UNIT, -DAY }, +- { 0, "today", tSEC_UNIT, 0 }, +- { 0, "now", tSEC_UNIT, 0 }, +- { 0, "last", tUNUMBER, -1 }, +- { 0, "this", tSEC_UNIT, 0 }, +- { 0, "next", tUNUMBER, 2 }, +- { 0, "first", tUNUMBER, 1 }, +- { 0, "1st", tUNUMBER, 1 }, +-/* { 0, "second", tUNUMBER, 2 }, */ +- { 0, "2nd", tUNUMBER, 2 }, +- { 0, "third", tUNUMBER, 3 }, +- { 0, "3rd", tUNUMBER, 3 }, +- { 0, "fourth", tUNUMBER, 4 }, +- { 0, "4th", tUNUMBER, 4 }, +- { 0, "fifth", tUNUMBER, 5 }, +- { 0, "5th", tUNUMBER, 5 }, +- { 0, "sixth", tUNUMBER, 6 }, +- { 0, "seventh", tUNUMBER, 7 }, +- { 0, "eighth", tUNUMBER, 8 }, +- { 0, "ninth", tUNUMBER, 9 }, +- { 0, "tenth", tUNUMBER, 10 }, +- { 0, "eleventh", tUNUMBER, 11 }, +- { 0, "twelfth", tUNUMBER, 12 }, +- { 0, "ago", tAGO, 1 }, +- +- /* Military timezones. */ +- { 0, "a", tZONE, 1*HOUR }, +- { 0, "b", tZONE, 2*HOUR }, +- { 0, "c", tZONE, 3*HOUR }, +- { 0, "d", tZONE, 4*HOUR }, +- { 0, "e", tZONE, 5*HOUR }, +- { 0, "f", tZONE, 6*HOUR }, +- { 0, "g", tZONE, 7*HOUR }, +- { 0, "h", tZONE, 8*HOUR }, +- { 0, "i", tZONE, 9*HOUR }, +- { 0, "k", tZONE, 10*HOUR }, +- { 0, "l", tZONE, 11*HOUR }, +- { 0, "m", tZONE, 12*HOUR }, +- { 0, "n", tZONE, -1*HOUR }, +- { 0, "o", tZONE, -2*HOUR }, +- { 0, "p", tZONE, -3*HOUR }, +- { 0, "q", tZONE, -4*HOUR }, +- { 0, "r", tZONE, -5*HOUR }, +- { 0, "s", tZONE, -6*HOUR }, +- { 0, "t", tZONE, -7*HOUR }, +- { 0, "u", tZONE, -8*HOUR }, +- { 0, "v", tZONE, -9*HOUR }, +- { 0, "w", tZONE, -10*HOUR }, +- { 0, "x", tZONE, -11*HOUR }, +- { 0, "y", tZONE, -12*HOUR }, +- { 0, "z", tZONE, 0*HOUR }, +- +- /* End of table. */ +- { 0, NULL, 0, 0 } +-}; +- +-/* +- * Year is either: +- * = A number from 0 to 99, which means a year from 1970 to 2069, or +- * = The actual year (>=100). +- */ +-static time_t +-Convert(time_t Month, time_t Day, time_t Year, +- time_t Hours, time_t Minutes, time_t Seconds, +- time_t Timezone, enum DSTMODE DSTmode) +-{ +- signed char DaysInMonth[12] = { +- 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 +- }; +- time_t Julian; +- int i; +- struct tm *ltime; +-#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) +- struct tm tmbuf; +-#endif +- +- if (Year < 69) +- Year += 2000; +- else if (Year < 100) +- Year += 1900; +- DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) +- ? 29 : 28; +- /* Checking for 2038 bogusly assumes that time_t is 32 bits. But +- I'm too lazy to try to check for time_t overflow in another way. */ +- if (Year < EPOCH || Year >= 2038 +- || Month < 1 || Month > 12 +- /* Lint fluff: "conversion from long may lose accuracy" */ +- || Day < 1 || Day > DaysInMonth[(int)--Month] +- || Hours < 0 || Hours > 23 +- || Minutes < 0 || Minutes > 59 +- || Seconds < 0 || Seconds > 59) +- return -1; +- +- Julian = Day - 1; +- for (i = 0; i < Month; i++) +- Julian += DaysInMonth[i]; +- for (i = EPOCH; i < Year; i++) +- Julian += 365 + (i % 4 == 0); +- Julian *= DAY; +- Julian += Timezone; +- Julian += Hours * HOUR + Minutes * MINUTE + Seconds; +-#if defined(HAVE_LOCALTIME_S) +- ltime = localtime_s(&tmbuf, &Julian) ? NULL : &tmbuf; +-#elif defined(HAVE_LOCALTIME_R) +- ltime = localtime_r(&Julian, &tmbuf); +-#else +- ltime = localtime(&Julian); +-#endif +- if (DSTmode == DSTon +- || (DSTmode == DSTmaybe && ltime->tm_isdst)) +- Julian -= HOUR; +- return Julian; +-} +- +-static time_t +-DSTcorrect(time_t Start, time_t Future) +-{ +- time_t StartDay; +- time_t FutureDay; +- struct tm *ltime; +-#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) +- struct tm tmbuf; +-#endif +-#if defined(HAVE_LOCALTIME_S) +- ltime = localtime_s(&tmbuf, &Start) ? NULL : &tmbuf; +-#elif defined(HAVE_LOCALTIME_R) +- ltime = localtime_r(&Start, &tmbuf); +-#else +- ltime = localtime(&Start); +-#endif +- StartDay = (ltime->tm_hour + 1) % 24; +-#if defined(HAVE_LOCALTIME_S) +- ltime = localtime_s(&tmbuf, &Future) ? NULL : &tmbuf; +-#elif defined(HAVE_LOCALTIME_R) +- ltime = localtime_r(&Future, &tmbuf); +-#else +- ltime = localtime(&Future); +-#endif +- FutureDay = (ltime->tm_hour + 1) % 24; +- return (Future - Start) + (StartDay - FutureDay) * HOUR; +-} +- +- +-static time_t +-RelativeDate(time_t Start, time_t zone, int dstmode, +- time_t DayOrdinal, time_t DayNumber) +-{ +- struct tm *tm; +- time_t t, now; +-#if defined(HAVE_GMTIME_R) || defined(HAVE_GMTIME_S) +- struct tm tmbuf; +-#endif +- +- t = Start - zone; +-#if defined(HAVE_GMTIME_S) +- tm = gmtime_s(&tmbuf, &t) ? NULL : &tmbuf; +-#elif defined(HAVE_GMTIME_R) +- tm = gmtime_r(&t, &tmbuf); +-#else +- tm = gmtime(&t); +-#endif +- now = Start; +- now += DAY * ((DayNumber - tm->tm_wday + 7) % 7); +- now += 7 * DAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1); +- if (dstmode == DSTmaybe) +- return DSTcorrect(Start, now); +- return now - Start; +-} +- +- +-static time_t +-RelativeMonth(time_t Start, time_t Timezone, time_t RelMonth) +-{ +- struct tm *tm; +- time_t Month; +- time_t Year; +-#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) +- struct tm tmbuf; +-#endif +- +- if (RelMonth == 0) +- return 0; +-#if defined(HAVE_LOCALTIME_S) +- tm = localtime_s(&tmbuf, &Start) ? NULL : &tmbuf; +-#elif defined(HAVE_LOCALTIME_R) +- tm = localtime_r(&Start, &tmbuf); +-#else +- tm = localtime(&Start); +-#endif +- Month = 12 * (tm->tm_year + 1900) + tm->tm_mon + RelMonth; +- Year = Month / 12; +- Month = Month % 12 + 1; +- return DSTcorrect(Start, +- Convert(Month, (time_t)tm->tm_mday, Year, +- (time_t)tm->tm_hour, (time_t)tm->tm_min, (time_t)tm->tm_sec, +- Timezone, DSTmaybe)); +-} +- +-/* +- * Tokenizer. +- */ +-static int +-nexttoken(const char **in, time_t *value) +-{ +- char c; +- char buff[64]; +- +- for ( ; ; ) { +- while (isspace((unsigned char)**in)) +- ++*in; +- +- /* Skip parenthesized comments. */ +- if (**in == '(') { +- int Count = 0; +- do { +- c = *(*in)++; +- if (c == '\0') +- return c; +- if (c == '(') +- Count++; +- else if (c == ')') +- Count--; +- } while (Count > 0); +- continue; +- } +- +- /* Try the next token in the word table first. */ +- /* This allows us to match "2nd", for example. */ +- { +- const char *src = *in; +- const struct LEXICON *tp; +- unsigned i = 0; +- +- /* Force to lowercase and strip '.' characters. */ +- while (*src != '\0' +- && (isalnum((unsigned char)*src) || *src == '.') +- && i < sizeof(buff)-1) { +- if (*src != '.') { +- if (isupper((unsigned char)*src)) +- buff[i++] = tolower((unsigned char)*src); +- else +- buff[i++] = *src; +- } +- src++; +- } +- buff[i] = '\0'; +- +- /* +- * Find the first match. If the word can be +- * abbreviated, make sure we match at least +- * the minimum abbreviation. +- */ +- for (tp = TimeWords; tp->name; tp++) { +- size_t abbrev = tp->abbrev; +- if (abbrev == 0) +- abbrev = strlen(tp->name); +- if (strlen(buff) >= abbrev +- && strncmp(tp->name, buff, strlen(buff)) +- == 0) { +- /* Skip over token. */ +- *in = src; +- /* Return the match. */ +- *value = tp->value; +- return tp->type; +- } +- } +- } +- +- /* +- * Not in the word table, maybe it's a number. Note: +- * Because '-' and '+' have other special meanings, I +- * don't deal with signed numbers here. +- */ +- if (isdigit((unsigned char)(c = **in))) { +- for (*value = 0; isdigit((unsigned char)(c = *(*in)++)); ) +- *value = 10 * *value + c - '0'; +- (*in)--; +- return (tUNUMBER); +- } +- +- return *(*in)++; +- } +-} +- +-#define TM_YEAR_ORIGIN 1900 +- +-/* Yield A - B, measured in seconds. */ +-static long +-difftm (struct tm *a, struct tm *b) +-{ +- int ay = a->tm_year + (TM_YEAR_ORIGIN - 1); +- int by = b->tm_year + (TM_YEAR_ORIGIN - 1); +- int days = ( +- /* difference in day of year */ +- a->tm_yday - b->tm_yday +- /* + intervening leap days */ +- + ((ay >> 2) - (by >> 2)) +- - (ay/100 - by/100) +- + ((ay/100 >> 2) - (by/100 >> 2)) +- /* + difference in years * 365 */ +- + (long)(ay-by) * 365 +- ); +- return (days * DAY + (a->tm_hour - b->tm_hour) * HOUR +- + (a->tm_min - b->tm_min) * MINUTE +- + (a->tm_sec - b->tm_sec)); +-} +- +-/* +- * +- * The public function. +- * +- * TODO: tokens[] array should be dynamically sized. +- */ +-time_t +-__archive_get_date(time_t now, const char *p) +-{ +- struct token tokens[256]; +- struct gdstate _gds; +- struct token *lasttoken; +- struct gdstate *gds; +- struct tm local, *tm; +- struct tm gmt, *gmt_ptr; +- time_t Start; +- time_t tod; +- long tzone; +- +- /* Clear out the parsed token array. */ +- memset(tokens, 0, sizeof(tokens)); +- /* Initialize the parser state. */ +- memset(&_gds, 0, sizeof(_gds)); +- gds = &_gds; +- +- /* Look up the current time. */ +-#if defined(HAVE_LOCALTIME_S) +- tm = localtime_s(&local, &now) ? NULL : &local; +-#elif defined(HAVE_LOCALTIME_R) +- tm = localtime_r(&now, &local); +-#else +- memset(&local, 0, sizeof(local)); +- tm = localtime(&now); +-#endif +- if (tm == NULL) +- return -1; +-#if !defined(HAVE_LOCALTIME_R) && !defined(HAVE_LOCALTIME_S) +- local = *tm; +-#endif +- +- /* Look up UTC if we can and use that to determine the current +- * timezone offset. */ +-#if defined(HAVE_GMTIME_S) +- gmt_ptr = gmtime_s(&gmt, &now) ? NULL : &gmt; +-#elif defined(HAVE_GMTIME_R) +- gmt_ptr = gmtime_r(&now, &gmt); +-#else +- memset(&gmt, 0, sizeof(gmt)); +- gmt_ptr = gmtime(&now); +- if (gmt_ptr != NULL) { +- /* Copy, in case localtime and gmtime use the same buffer. */ +- gmt = *gmt_ptr; +- } +-#endif +- if (gmt_ptr != NULL) +- tzone = difftm (&gmt, &local); +- else +- /* This system doesn't understand timezones; fake it. */ +- tzone = 0; +- if(local.tm_isdst) +- tzone += HOUR; +- +- /* Tokenize the input string. */ +- lasttoken = tokens; +- while ((lasttoken->token = nexttoken(&p, &lasttoken->value)) != 0) { +- ++lasttoken; +- if (lasttoken > tokens + 255) +- return -1; +- } +- gds->tokenp = tokens; +- +- /* Match phrases until we run out of input tokens. */ +- while (gds->tokenp < lasttoken) { +- if (!phrase(gds)) +- return -1; +- } +- +- /* Use current local timezone if none was specified. */ +- if (!gds->HaveZone) { +- gds->Timezone = tzone; +- gds->DSTmode = DSTmaybe; +- } +- +- /* If a timezone was specified, use that for generating the default +- * time components instead of the local timezone. */ +- if (gds->HaveZone && gmt_ptr != NULL) { +- now -= gds->Timezone; +-#if defined(HAVE_GMTIME_S) +- gmt_ptr = gmtime_s(&gmt, &now) ? NULL : &gmt; +-#elif defined(HAVE_GMTIME_R) +- gmt_ptr = gmtime_r(&now, &gmt); +-#else +- gmt_ptr = gmtime(&now); +-#endif +- if (gmt_ptr != NULL) +- local = *gmt_ptr; +- now += gds->Timezone; +- } +- +- if (!gds->HaveYear) +- gds->Year = local.tm_year + 1900; +- if (!gds->HaveMonth) +- gds->Month = local.tm_mon + 1; +- if (!gds->HaveDay) +- gds->Day = local.tm_mday; +- /* Note: No default for hour/min/sec; a specifier that just +- * gives date always refers to 00:00 on that date. */ +- +- /* If we saw more than one time, timezone, weekday, year, month, +- * or day, then give up. */ +- if (gds->HaveTime > 1 || gds->HaveZone > 1 || gds->HaveWeekDay > 1 +- || gds->HaveYear > 1 || gds->HaveMonth > 1 || gds->HaveDay > 1) +- return -1; +- +- /* Compute an absolute time based on whatever absolute information +- * we collected. */ +- if (gds->HaveYear || gds->HaveMonth || gds->HaveDay +- || gds->HaveTime || gds->HaveWeekDay) { +- Start = Convert(gds->Month, gds->Day, gds->Year, +- gds->Hour, gds->Minutes, gds->Seconds, +- gds->Timezone, gds->DSTmode); +- if (Start < 0) +- return -1; +- } else { +- Start = now; +- if (!gds->HaveRel) +- Start -= local.tm_hour * HOUR + local.tm_min * MINUTE +- + local.tm_sec; +- } +- +- /* Add the relative offset. */ +- Start += gds->RelSeconds; +- Start += RelativeMonth(Start, gds->Timezone, gds->RelMonth); +- +- /* Adjust for day-of-week offsets. */ +- if (gds->HaveWeekDay +- && !(gds->HaveYear || gds->HaveMonth || gds->HaveDay)) { +- tod = RelativeDate(Start, gds->Timezone, +- gds->DSTmode, gds->DayOrdinal, gds->DayNumber); +- Start += tod; +- } +- +- /* -1 is an error indicator, so return 0 instead of -1 if +- * that's the actual time. */ +- return Start == -1 ? 0 : Start; +-} +- +- +-#if defined(TEST) +- +-/* ARGSUSED */ +-int +-main(int argc, char **argv) +-{ +- time_t d; +- time_t now = time(NULL); +- +- while (*++argv != NULL) { +- (void)printf("Input: %s\n", *argv); +- d = get_date(now, *argv); +- if (d == -1) +- (void)printf("Bad format - couldn't convert.\n"); +- else +- (void)printf("Output: %s\n", ctime(&d)); +- } +- exit(0); +- /* NOTREACHED */ +-} +-#endif /* defined(TEST) */ +--- contrib/libarchive/libarchive/archive_getdate.h.orig ++++ contrib/libarchive/libarchive/archive_getdate.h +@@ -1,37 +0,0 @@ +-/*- +- * Copyright (c) 2003-2015 Tim Kientzle +- * All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * +- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR +- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +- +-#ifndef ARCHIVE_GETDATE_H_INCLUDED +-#define ARCHIVE_GETDATE_H_INCLUDED +- +-#ifndef __LIBARCHIVE_BUILD +-#error This header is only to be used internally to libarchive. +-#endif +- +-#include <time.h> +- +-time_t __archive_get_date(time_t now, const char *); +- +-#endif +--- contrib/libarchive/libarchive/archive_hmac_private.h.orig ++++ contrib/libarchive/libarchive/archive_hmac_private.h +@@ -116,4 +116,4 @@ + }; + + extern const struct archive_hmac __archive_hmac; +-#endif /* ARCHIVE_HMAC_PRIVATE_H_INCLUDED */ ++#endif /* !ARCHIVE_HMAC_PRIVATE_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_match.c.orig ++++ contrib/libarchive/libarchive/archive_match.c +@@ -35,14 +35,17 @@ + #ifdef HAVE_STRING_H + #include <string.h> + #endif ++#ifdef HAVE_LIMITS_H ++#include <limits.h> ++#endif + + #include "archive.h" + #include "archive_private.h" + #include "archive_entry.h" +-#include "archive_getdate.h" + #include "archive_pathmatch.h" + #include "archive_rb.h" + #include "archive_string.h" ++#include "archive_time_private.h" + + struct match { + struct match *next; +@@ -53,8 +56,7 @@ + struct match_list { + struct match *first; + struct match **last; +- int count; +- int unmatched_count; ++ size_t unmatched_count; + struct match *unmatched_next; + int unmatched_eof; + }; +@@ -73,7 +75,6 @@ + struct entry_list { + struct match_file *first; + struct match_file **last; +- int count; + }; + + struct id_array { +@@ -144,12 +145,15 @@ + const char *); + static int add_pattern_wcs(struct archive_match *, struct match_list *, + const wchar_t *); ++#if !defined(_WIN32) || defined(__CYGWIN__) + static int cmp_key_mbs(const struct archive_rb_node *, const void *); +-static int cmp_key_wcs(const struct archive_rb_node *, const void *); + static int cmp_node_mbs(const struct archive_rb_node *, + const struct archive_rb_node *); ++#else ++static int cmp_key_wcs(const struct archive_rb_node *, const void *); + static int cmp_node_wcs(const struct archive_rb_node *, + const struct archive_rb_node *); ++#endif + static void entry_list_add(struct entry_list *, struct match_file *); + static void entry_list_free(struct entry_list *); + static void entry_list_init(struct entry_list *); +@@ -187,14 +191,14 @@ + struct archive_entry *); + static int validate_time_flag(struct archive *, int, const char *); + +-#define get_date __archive_get_date ++#define get_date archive_parse_date + +-static const struct archive_rb_tree_ops rb_ops_mbs = { ++static const struct archive_rb_tree_ops rb_ops = { ++#if !defined(_WIN32) || defined(__CYGWIN__) + cmp_node_mbs, cmp_key_mbs +-}; +- +-static const struct archive_rb_tree_ops rb_ops_wcs = { ++#else + cmp_node_wcs, cmp_key_wcs ++#endif + }; + + /* +@@ -228,7 +232,7 @@ + a->recursive_include = 1; + match_list_init(&(a->inclusions)); + match_list_init(&(a->exclusions)); +- __archive_rb_tree_init(&(a->exclusion_tree), &rb_ops_mbs); ++ __archive_rb_tree_init(&(a->exclusion_tree), &rb_ops); + entry_list_init(&(a->exclusion_entry_list)); + match_list_init(&(a->inclusion_unames)); + match_list_init(&(a->inclusion_gnames)); +@@ -507,7 +511,9 @@ + ARCHIVE_STATE_NEW, "archive_match_unmatched_inclusions"); + a = (struct archive_match *)_a; + +- return (a->inclusions.unmatched_count); ++ if (a->inclusions.unmatched_count > (size_t)INT_MAX) ++ return INT_MAX; ++ return (int)(a->inclusions.unmatched_count); + } + + int +@@ -650,7 +656,7 @@ + break; + } + } else { +- if (*b == 0x0d || *b == 0x0a) { ++ if (*b == 0x0d || *b == 0x0a) { + found_separator = 1; + break; + } +@@ -735,7 +741,7 @@ + } + } + +- /* Exclusions take priority */ ++ /* Exclusions take priority. */ + for (match = a->exclusions.first; match != NULL; + match = match->next){ + r = match_path_exclusion(a, match, mbs, pathname); +@@ -834,7 +840,6 @@ + { + list->first = NULL; + list->last = &(list->first); +- list->count = 0; + } + + static void +@@ -855,7 +860,6 @@ + { + *list->last = m; + list->last = &(m->next); +- list->count++; + list->unmatched_count++; + } + +@@ -1145,36 +1149,15 @@ + } + + #if defined(_WIN32) && !defined(__CYGWIN__) +-#define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000) + static int + set_timefilter_find_data(struct archive_match *a, int timetype, +- DWORD ftLastWriteTime_dwHighDateTime, DWORD ftLastWriteTime_dwLowDateTime, +- DWORD ftCreationTime_dwHighDateTime, DWORD ftCreationTime_dwLowDateTime) ++ const FILETIME* ftLastWriteTime, const FILETIME* ftCreationTime) + { +- ULARGE_INTEGER utc; + time_t ctime_sec, mtime_sec; +- long ctime_ns, mtime_ns; ++ uint32_t ctime_ns, mtime_ns; + +- utc.HighPart = ftCreationTime_dwHighDateTime; +- utc.LowPart = ftCreationTime_dwLowDateTime; +- if (utc.QuadPart >= EPOC_TIME) { +- utc.QuadPart -= EPOC_TIME; +- ctime_sec = (time_t)(utc.QuadPart / 10000000); +- ctime_ns = (long)(utc.QuadPart % 10000000) * 100; +- } else { +- ctime_sec = 0; +- ctime_ns = 0; +- } +- utc.HighPart = ftLastWriteTime_dwHighDateTime; +- utc.LowPart = ftLastWriteTime_dwLowDateTime; +- if (utc.QuadPart >= EPOC_TIME) { +- utc.QuadPart -= EPOC_TIME; +- mtime_sec = (time_t)(utc.QuadPart / 10000000); +- mtime_ns = (long)(utc.QuadPart % 10000000) * 100; +- } else { +- mtime_sec = 0; +- mtime_ns = 0; +- } ++ ntfs_to_unix(FILETIME_to_ntfs(ftLastWriteTime), &mtime_sec, &mtime_ns); ++ ntfs_to_unix(FILETIME_to_ntfs(ftCreationTime), &ctime_sec, &ctime_ns); + return set_timefilter(a, timetype, + mtime_sec, mtime_ns, ctime_sec, ctime_ns); + } +@@ -1199,9 +1182,7 @@ + return (ARCHIVE_FAILED); + } + FindClose(h); +- return set_timefilter_find_data(a, timetype, +- d.ftLastWriteTime.dwHighDateTime, d.ftLastWriteTime.dwLowDateTime, +- d.ftCreationTime.dwHighDateTime, d.ftCreationTime.dwLowDateTime); ++ return set_timefilter_find_data(a, timetype, &d.ftLastWriteTime, &d.ftCreationTime); + } + + static int +@@ -1223,9 +1204,7 @@ + return (ARCHIVE_FAILED); + } + FindClose(h); +- return set_timefilter_find_data(a, timetype, +- d.ftLastWriteTime.dwHighDateTime, d.ftLastWriteTime.dwLowDateTime, +- d.ftCreationTime.dwHighDateTime, d.ftCreationTime.dwLowDateTime); ++ return set_timefilter_find_data(a, timetype, &d.ftLastWriteTime, &d.ftCreationTime); + } + + #else /* _WIN32 && !__CYGWIN__ */ +@@ -1300,6 +1279,7 @@ + /* + * Call back functions for archive_rb. + */ ++#if !defined(_WIN32) || defined(__CYGWIN__) + static int + cmp_node_mbs(const struct archive_rb_node *n1, + const struct archive_rb_node *n2) +@@ -1316,7 +1296,7 @@ + return (-1); + return (strcmp(p1, p2)); + } +- ++ + static int + cmp_key_mbs(const struct archive_rb_node *n, const void *key) + { +@@ -1328,7 +1308,7 @@ + return (-1); + return (strcmp(p, (const char *)key)); + } +- ++#else + static int + cmp_node_wcs(const struct archive_rb_node *n1, + const struct archive_rb_node *n2) +@@ -1345,7 +1325,7 @@ + return (-1); + return (wcscmp(p1, p2)); + } +- ++ + static int + cmp_key_wcs(const struct archive_rb_node *n, const void *key) + { +@@ -1357,13 +1337,13 @@ + return (-1); + return (wcscmp(p, (const wchar_t *)key)); + } ++#endif + + static void + entry_list_init(struct entry_list *list) + { + list->first = NULL; + list->last = &(list->first); +- list->count = 0; + } + + static void +@@ -1384,7 +1364,6 @@ + { + *list->last = file; + list->last = &(file->next); +- list->count++; + } + + static int +@@ -1407,9 +1386,7 @@ + return (ARCHIVE_FAILED); + } + archive_mstring_copy_wcs(&(f->pathname), pathname); +- a->exclusion_tree.rbt_ops = &rb_ops_wcs; + #else +- (void)rb_ops_wcs; + pathname = archive_entry_pathname(entry); + if (pathname == NULL) { + free(f); +@@ -1417,7 +1394,6 @@ + return (ARCHIVE_FAILED); + } + archive_mstring_copy_mbs(&(f->pathname), pathname); +- a->exclusion_tree.rbt_ops = &rb_ops_mbs; + #endif + f->flag = flag; + f->mtime_sec = archive_entry_mtime(entry); +@@ -1542,16 +1518,13 @@ + } + + /* If there is no exclusion list, include the file. */ +- if (a->exclusion_entry_list.count == 0) ++ if (a->exclusion_entry_list.first == NULL) + return (0); + + #if defined(_WIN32) && !defined(__CYGWIN__) + pathname = archive_entry_pathname_w(entry); +- a->exclusion_tree.rbt_ops = &rb_ops_wcs; + #else +- (void)rb_ops_wcs; + pathname = archive_entry_pathname(entry); +- a->exclusion_tree.rbt_ops = &rb_ops_mbs; + #endif + if (pathname == NULL) + return (0); +@@ -1707,7 +1680,7 @@ + static int + add_owner_id(struct archive_match *a, struct id_array *ids, int64_t id) + { +- unsigned i; ++ size_t i; + + if (ids->count + 1 >= ids->size) { + void *p; +@@ -1744,10 +1717,10 @@ + static int + match_owner_id(struct id_array *ids, int64_t id) + { +- unsigned b, m, t; ++ size_t b, m, t; + + t = 0; +- b = (unsigned)ids->count; ++ b = ids->count; + while (t < b) { + m = (t + b)>>1; + if (ids->ids[m] == id) +@@ -1842,7 +1815,7 @@ + return (1); + } + +- if (a->inclusion_unames.count) { ++ if (a->inclusion_unames.first != NULL) { + #if defined(_WIN32) && !defined(__CYGWIN__) + r = match_owner_name_wcs(a, &(a->inclusion_unames), + archive_entry_uname_w(entry)); +@@ -1856,7 +1829,7 @@ + return (r); + } + +- if (a->inclusion_gnames.count) { ++ if (a->inclusion_gnames.first != NULL) { + #if defined(_WIN32) && !defined(__CYGWIN__) + r = match_owner_name_wcs(a, &(a->inclusion_gnames), + archive_entry_gname_w(entry)); +@@ -1871,4 +1844,3 @@ + } + return (0); + } +- +--- contrib/libarchive/libarchive/archive_options.c.orig ++++ contrib/libarchive/libarchive/archive_options.c +@@ -38,7 +38,7 @@ + int + _archive_set_option(struct archive *a, + const char *m, const char *o, const char *v, +- int magic, const char *fn, option_handler use_option) ++ unsigned int magic, const char *fn, option_handler use_option) + { + const char *mp, *op, *vp; + int r; +@@ -97,7 +97,7 @@ + + int + _archive_set_options(struct archive *a, const char *options, +- int magic, const char *fn, option_handler use_option) ++ unsigned int magic, const char *fn, option_handler use_option) + { + int allok = 1, anyok = 0, ignore_mod_err = 0, r; + char *data; +--- contrib/libarchive/libarchive/archive_options_private.h.orig ++++ contrib/libarchive/libarchive/archive_options_private.h +@@ -35,11 +35,11 @@ + int + _archive_set_option(struct archive *a, + const char *mod, const char *opt, const char *val, +- int magic, const char *fn, option_handler use_option); ++ unsigned int magic, const char *fn, option_handler use_option); + + int + _archive_set_options(struct archive *a, const char *options, +- int magic, const char *fn, option_handler use_option); ++ unsigned int magic, const char *fn, option_handler use_option); + + int + _archive_set_either_option(struct archive *a, +--- contrib/libarchive/libarchive/archive_pack_dev.h.orig ++++ contrib/libarchive/libarchive/archive_pack_dev.h +@@ -46,4 +46,4 @@ + (((y) << 12) & 0xfff00000) | \ + (((y) << 0) & 0x000000ff))) + +-#endif /* ARCHIVE_PACK_DEV_H */ ++#endif /* !ARCHIVE_PACK_DEV_H */ +--- /dev/null ++++ contrib/libarchive/libarchive/archive_parse_date.c +@@ -0,0 +1,1147 @@ ++/* ++ * This code is in the public domain and has no copyright. ++ * ++ * This is a plain C recursive-descent translation of an old ++ * public-domain YACC grammar that has been used for parsing dates in ++ * very many open-source projects. ++ * ++ * Since the original authors were generous enough to donate their ++ * work to the public domain, I feel compelled to match their ++ * generosity. ++ * ++ * Tim Kientzle, February 2009. ++ */ ++ ++/* ++ * Header comment from original getdate.y: ++ */ ++ ++/* ++** Originally written by Steven M. Bellovin <smb@research.att.com> while ++** at the University of North Carolina at Chapel Hill. Later tweaked by ++** a couple of people on Usenet. Completely overhauled by Rich $alz ++** <rsalz@bbn.com> and Jim Berets <jberets@bbn.com> in August, 1990; ++** ++** This grammar has 10 shift/reduce conflicts. ++** ++** This code is in the public domain and has no copyright. ++*/ ++ ++#include "archive_platform.h" ++ ++#include <ctype.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <time.h> ++ ++#include "archive.h" ++ ++/* Basic time units. */ ++#define EPOCH 1970 ++#define MINUTE (60L) ++#define HOUR (60L * MINUTE) ++#define DAY (24L * HOUR) ++ ++/* Daylight-savings mode: on, off, or not yet known. */ ++enum DSTMODE { DSTon, DSToff, DSTmaybe }; ++/* Meridian: am or pm. */ ++enum { tAM, tPM }; ++/* Token types returned by nexttoken() */ ++enum { tAGO = 260, tDAY, tDAYZONE, tAMPM, tMONTH, tMONTH_UNIT, tSEC_UNIT, ++ tUNUMBER, tZONE, tDST }; ++struct token { int token; time_t value; }; ++ ++/* ++ * Parser state. ++ */ ++struct gdstate { ++ struct token *tokenp; /* Pointer to next token. */ ++ /* HaveXxxx counts how many of this kind of phrase we've seen; ++ * it's a fatal error to have more than one time, zone, day, ++ * or date phrase. */ ++ int HaveYear; ++ int HaveMonth; ++ int HaveDay; ++ int HaveWeekDay; /* Day of week */ ++ int HaveTime; /* Hour/minute/second */ ++ int HaveZone; /* timezone and/or DST info */ ++ int HaveRel; /* time offset; we can have more than one */ ++ /* Absolute time values. */ ++ time_t Timezone; /* Seconds offset from GMT */ ++ time_t Day; ++ time_t Hour; ++ time_t Minutes; ++ time_t Month; ++ time_t Seconds; ++ time_t Year; ++ /* DST selection */ ++ enum DSTMODE DSTmode; ++ /* Day of week accounting, e.g., "3rd Tuesday" */ ++ time_t DayOrdinal; /* "3" in "3rd Tuesday" */ ++ time_t DayNumber; /* "Tuesday" in "3rd Tuesday" */ ++ /* Relative time values: hour/day/week offsets are measured in ++ * seconds, month/year are counted in months. */ ++ time_t RelMonth; ++ time_t RelSeconds; ++}; ++ ++/* ++ * A series of functions that recognize certain common time phrases. ++ * Each function returns 1 if it managed to make sense of some of the ++ * tokens, zero otherwise. ++ */ ++ ++/* ++ * hour:minute or hour:minute:second with optional AM, PM, or numeric ++ * timezone offset ++ */ ++static int ++timephrase(struct gdstate *gds) ++{ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == ':' ++ && gds->tokenp[2].token == tUNUMBER ++ && gds->tokenp[3].token == ':' ++ && gds->tokenp[4].token == tUNUMBER) { ++ /* "12:14:18" or "22:08:07" */ ++ ++gds->HaveTime; ++ gds->Hour = gds->tokenp[0].value; ++ gds->Minutes = gds->tokenp[2].value; ++ gds->Seconds = gds->tokenp[4].value; ++ gds->tokenp += 5; ++ } ++ else if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == ':' ++ && gds->tokenp[2].token == tUNUMBER) { ++ /* "12:14" or "22:08" */ ++ ++gds->HaveTime; ++ gds->Hour = gds->tokenp[0].value; ++ gds->Minutes = gds->tokenp[2].value; ++ gds->Seconds = 0; ++ gds->tokenp += 3; ++ } ++ else if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == tAMPM) { ++ /* "7" is a time if it's followed by "am" or "pm" */ ++ ++gds->HaveTime; ++ gds->Hour = gds->tokenp[0].value; ++ gds->Minutes = gds->Seconds = 0; ++ /* We'll handle the AM/PM below. */ ++ gds->tokenp += 1; ++ } else { ++ /* We can't handle this. */ ++ return 0; ++ } ++ ++ if (gds->tokenp[0].token == tAMPM) { ++ /* "7:12pm", "12:20:13am" */ ++ if (gds->Hour == 12) ++ gds->Hour = 0; ++ if (gds->tokenp[0].value == tPM) ++ gds->Hour += 12; ++ gds->tokenp += 1; ++ } ++ if (gds->tokenp[0].token == '+' ++ && gds->tokenp[1].token == tUNUMBER) { ++ /* "7:14+0700" */ ++ gds->HaveZone++; ++ gds->DSTmode = DSToff; ++ gds->Timezone = - ((gds->tokenp[1].value / 100) * HOUR ++ + (gds->tokenp[1].value % 100) * MINUTE); ++ gds->tokenp += 2; ++ } ++ if (gds->tokenp[0].token == '-' ++ && gds->tokenp[1].token == tUNUMBER) { ++ /* "19:14:12-0530" */ ++ gds->HaveZone++; ++ gds->DSTmode = DSToff; ++ gds->Timezone = + ((gds->tokenp[1].value / 100) * HOUR ++ + (gds->tokenp[1].value % 100) * MINUTE); ++ gds->tokenp += 2; ++ } ++ return 1; ++} ++ ++/* ++ * Timezone name, possibly including DST. ++ */ ++static int ++zonephrase(struct gdstate *gds) ++{ ++ if (gds->tokenp[0].token == tZONE ++ && gds->tokenp[1].token == tDST) { ++ gds->HaveZone++; ++ gds->Timezone = gds->tokenp[0].value; ++ gds->DSTmode = DSTon; ++ gds->tokenp += 1; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tZONE) { ++ gds->HaveZone++; ++ gds->Timezone = gds->tokenp[0].value; ++ gds->DSTmode = DSToff; ++ gds->tokenp += 1; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tDAYZONE) { ++ gds->HaveZone++; ++ gds->Timezone = gds->tokenp[0].value; ++ gds->DSTmode = DSTon; ++ gds->tokenp += 1; ++ return 1; ++ } ++ return 0; ++} ++ ++/* ++ * Year/month/day in various combinations. ++ */ ++static int ++datephrase(struct gdstate *gds) ++{ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == '/' ++ && gds->tokenp[2].token == tUNUMBER ++ && gds->tokenp[3].token == '/' ++ && gds->tokenp[4].token == tUNUMBER) { ++ gds->HaveYear++; ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ if (gds->tokenp[0].value >= 13) { ++ /* First number is big: 2004/01/29, 99/02/17 */ ++ gds->Year = gds->tokenp[0].value; ++ gds->Month = gds->tokenp[2].value; ++ gds->Day = gds->tokenp[4].value; ++ } else if ((gds->tokenp[4].value >= 13) ++ || (gds->tokenp[2].value >= 13)) { ++ /* Last number is big: 01/07/98 */ ++ /* Middle number is big: 01/29/04 */ ++ gds->Month = gds->tokenp[0].value; ++ gds->Day = gds->tokenp[2].value; ++ gds->Year = gds->tokenp[4].value; ++ } else { ++ /* No significant clues: 02/03/04 */ ++ gds->Month = gds->tokenp[0].value; ++ gds->Day = gds->tokenp[2].value; ++ gds->Year = gds->tokenp[4].value; ++ } ++ gds->tokenp += 5; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == '/' ++ && gds->tokenp[2].token == tUNUMBER) { ++ /* "1/15" */ ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Month = gds->tokenp[0].value; ++ gds->Day = gds->tokenp[2].value; ++ gds->tokenp += 3; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == '-' ++ && gds->tokenp[2].token == tUNUMBER ++ && gds->tokenp[3].token == '-' ++ && gds->tokenp[4].token == tUNUMBER) { ++ /* ISO 8601 format. yyyy-mm-dd. */ ++ gds->HaveYear++; ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Year = gds->tokenp[0].value; ++ gds->Month = gds->tokenp[2].value; ++ gds->Day = gds->tokenp[4].value; ++ gds->tokenp += 5; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == '-' ++ && gds->tokenp[2].token == tMONTH ++ && gds->tokenp[3].token == '-' ++ && gds->tokenp[4].token == tUNUMBER) { ++ gds->HaveYear++; ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ if (gds->tokenp[0].value > 31) { ++ /* e.g. 1992-Jun-17 */ ++ gds->Year = gds->tokenp[0].value; ++ gds->Month = gds->tokenp[2].value; ++ gds->Day = gds->tokenp[4].value; ++ } else { ++ /* e.g. 17-JUN-1992. */ ++ gds->Day = gds->tokenp[0].value; ++ gds->Month = gds->tokenp[2].value; ++ gds->Year = gds->tokenp[4].value; ++ } ++ gds->tokenp += 5; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tMONTH ++ && gds->tokenp[1].token == tUNUMBER ++ && gds->tokenp[2].token == ',' ++ && gds->tokenp[3].token == tUNUMBER) { ++ /* "June 17, 2001" */ ++ gds->HaveYear++; ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Month = gds->tokenp[0].value; ++ gds->Day = gds->tokenp[1].value; ++ gds->Year = gds->tokenp[3].value; ++ gds->tokenp += 4; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tMONTH ++ && gds->tokenp[1].token == tUNUMBER) { ++ /* "May 3" */ ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Month = gds->tokenp[0].value; ++ gds->Day = gds->tokenp[1].value; ++ gds->tokenp += 2; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == tMONTH ++ && gds->tokenp[2].token == tUNUMBER) { ++ /* "12 Sept 1997" */ ++ gds->HaveYear++; ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Day = gds->tokenp[0].value; ++ gds->Month = gds->tokenp[1].value; ++ gds->Year = gds->tokenp[2].value; ++ gds->tokenp += 3; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == tMONTH) { ++ /* "12 Sept" */ ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Day = gds->tokenp[0].value; ++ gds->Month = gds->tokenp[1].value; ++ gds->tokenp += 2; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Relative time phrase: "tomorrow", "yesterday", "+1 hour", etc. ++ */ ++static int ++relunitphrase(struct gdstate *gds) ++{ ++ if (gds->tokenp[0].token == '-' ++ && gds->tokenp[1].token == tUNUMBER ++ && gds->tokenp[2].token == tSEC_UNIT) { ++ /* "-3 hours" */ ++ gds->HaveRel++; ++ gds->RelSeconds -= gds->tokenp[1].value * gds->tokenp[2].value; ++ gds->tokenp += 3; ++ return 1; ++ } ++ if (gds->tokenp[0].token == '+' ++ && gds->tokenp[1].token == tUNUMBER ++ && gds->tokenp[2].token == tSEC_UNIT) { ++ /* "+1 minute" */ ++ gds->HaveRel++; ++ gds->RelSeconds += gds->tokenp[1].value * gds->tokenp[2].value; ++ gds->tokenp += 3; ++ return 1; ++ } ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == tSEC_UNIT) { ++ /* "1 day" */ ++ gds->HaveRel++; ++ gds->RelSeconds += gds->tokenp[0].value * gds->tokenp[1].value; ++ gds->tokenp += 2; ++ return 1; ++ } ++ if (gds->tokenp[0].token == '-' ++ && gds->tokenp[1].token == tUNUMBER ++ && gds->tokenp[2].token == tMONTH_UNIT) { ++ /* "-3 months" */ ++ gds->HaveRel++; ++ gds->RelMonth -= gds->tokenp[1].value * gds->tokenp[2].value; ++ gds->tokenp += 3; ++ return 1; ++ } ++ if (gds->tokenp[0].token == '+' ++ && gds->tokenp[1].token == tUNUMBER ++ && gds->tokenp[2].token == tMONTH_UNIT) { ++ /* "+5 years" */ ++ gds->HaveRel++; ++ gds->RelMonth += gds->tokenp[1].value * gds->tokenp[2].value; ++ gds->tokenp += 3; ++ return 1; ++ } ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == tMONTH_UNIT) { ++ /* "2 years" */ ++ gds->HaveRel++; ++ gds->RelMonth += gds->tokenp[0].value * gds->tokenp[1].value; ++ gds->tokenp += 2; ++ return 1; ++ } ++ if (gds->tokenp[0].token == tSEC_UNIT) { ++ /* "now", "tomorrow" */ ++ gds->HaveRel++; ++ gds->RelSeconds += gds->tokenp[0].value; ++ gds->tokenp += 1; ++ return 1; ++ } ++ if (gds->tokenp[0].token == tMONTH_UNIT) { ++ /* "month" */ ++ gds->HaveRel++; ++ gds->RelMonth += gds->tokenp[0].value; ++ gds->tokenp += 1; ++ return 1; ++ } ++ return 0; ++} ++ ++/* ++ * Day of the week specification. ++ */ ++static int ++dayphrase(struct gdstate *gds) ++{ ++ if (gds->tokenp[0].token == tDAY) { ++ /* "tues", "wednesday," */ ++ gds->HaveWeekDay++; ++ gds->DayOrdinal = 1; ++ gds->DayNumber = gds->tokenp[0].value; ++ gds->tokenp += 1; ++ if (gds->tokenp[0].token == ',') ++ gds->tokenp += 1; ++ return 1; ++ } ++ if (gds->tokenp[0].token == tUNUMBER ++ && gds->tokenp[1].token == tDAY) { ++ /* "second tues" "3 wed" */ ++ gds->HaveWeekDay++; ++ gds->DayOrdinal = gds->tokenp[0].value; ++ gds->DayNumber = gds->tokenp[1].value; ++ gds->tokenp += 2; ++ return 1; ++ } ++ return 0; ++} ++ ++/* ++ * Try to match a phrase using one of the above functions. ++ * This layer also deals with a couple of generic issues. ++ */ ++static int ++phrase(struct gdstate *gds) ++{ ++ if (timephrase(gds)) ++ return 1; ++ if (zonephrase(gds)) ++ return 1; ++ if (datephrase(gds)) ++ return 1; ++ if (dayphrase(gds)) ++ return 1; ++ if (relunitphrase(gds)) { ++ if (gds->tokenp[0].token == tAGO) { ++ gds->RelSeconds = -gds->RelSeconds; ++ gds->RelMonth = -gds->RelMonth; ++ gds->tokenp += 1; ++ } ++ return 1; ++ } ++ ++ /* Bare numbers sometimes have meaning. */ ++ if (gds->tokenp[0].token == tUNUMBER) { ++ if (gds->HaveTime && !gds->HaveYear && !gds->HaveRel) { ++ gds->HaveYear++; ++ gds->Year = gds->tokenp[0].value; ++ gds->tokenp += 1; ++ return 1; ++ } ++ ++ if(gds->tokenp[0].value > 10000) { ++ /* "20040301" */ ++ gds->HaveYear++; ++ gds->HaveMonth++; ++ gds->HaveDay++; ++ gds->Day= (gds->tokenp[0].value)%100; ++ gds->Month= (gds->tokenp[0].value/100)%100; ++ gds->Year = gds->tokenp[0].value/10000; ++ gds->tokenp += 1; ++ return 1; ++ } ++ ++ if (gds->tokenp[0].value < 24) { ++ gds->HaveTime++; ++ gds->Hour = gds->tokenp[0].value; ++ gds->Minutes = 0; ++ gds->Seconds = 0; ++ gds->tokenp += 1; ++ return 1; ++ } ++ ++ if ((gds->tokenp[0].value / 100 < 24) ++ && (gds->tokenp[0].value % 100 < 60)) { ++ /* "513" is same as "5:13" */ ++ gds->Hour = gds->tokenp[0].value / 100; ++ gds->Minutes = gds->tokenp[0].value % 100; ++ gds->Seconds = 0; ++ gds->tokenp += 1; ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++/* ++ * A dictionary of time words. ++ */ ++static struct LEXICON { ++ size_t abbrev; ++ const char *name; ++ int type; ++ time_t value; ++} const TimeWords[] = { ++ /* am/pm */ ++ { 0, "am", tAMPM, tAM }, ++ { 0, "pm", tAMPM, tPM }, ++ ++ /* Month names. */ ++ { 3, "january", tMONTH, 1 }, ++ { 3, "february", tMONTH, 2 }, ++ { 3, "march", tMONTH, 3 }, ++ { 3, "april", tMONTH, 4 }, ++ { 3, "may", tMONTH, 5 }, ++ { 3, "june", tMONTH, 6 }, ++ { 3, "july", tMONTH, 7 }, ++ { 3, "august", tMONTH, 8 }, ++ { 3, "september", tMONTH, 9 }, ++ { 3, "october", tMONTH, 10 }, ++ { 3, "november", tMONTH, 11 }, ++ { 3, "december", tMONTH, 12 }, ++ ++ /* Days of the week. */ ++ { 2, "sunday", tDAY, 0 }, ++ { 3, "monday", tDAY, 1 }, ++ { 2, "tuesday", tDAY, 2 }, ++ { 3, "wednesday", tDAY, 3 }, ++ { 2, "thursday", tDAY, 4 }, ++ { 2, "friday", tDAY, 5 }, ++ { 2, "saturday", tDAY, 6 }, ++ ++ /* Timezones: Offsets are in seconds. */ ++ { 0, "gmt", tZONE, 0*HOUR }, /* Greenwich Mean */ ++ { 0, "ut", tZONE, 0*HOUR }, /* Universal (Coordinated) */ ++ { 0, "utc", tZONE, 0*HOUR }, ++ { 0, "wet", tZONE, 0*HOUR }, /* Western European */ ++ { 0, "bst", tDAYZONE, 0*HOUR }, /* British Summer */ ++ { 0, "wat", tZONE, 1*HOUR }, /* West Africa */ ++ { 0, "at", tZONE, 2*HOUR }, /* Azores */ ++ /* { 0, "bst", tZONE, 3*HOUR }, */ /* Brazil Standard: Conflict */ ++ /* { 0, "gst", tZONE, 3*HOUR }, */ /* Greenland Standard: Conflict*/ ++ { 0, "nft", tZONE, 3*HOUR+30*MINUTE }, /* Newfoundland */ ++ { 0, "nst", tZONE, 3*HOUR+30*MINUTE }, /* Newfoundland Standard */ ++ { 0, "ndt", tDAYZONE, 3*HOUR+30*MINUTE }, /* Newfoundland Daylight */ ++ { 0, "ast", tZONE, 4*HOUR }, /* Atlantic Standard */ ++ { 0, "adt", tDAYZONE, 4*HOUR }, /* Atlantic Daylight */ ++ { 0, "est", tZONE, 5*HOUR }, /* Eastern Standard */ ++ { 0, "edt", tDAYZONE, 5*HOUR }, /* Eastern Daylight */ ++ { 0, "cst", tZONE, 6*HOUR }, /* Central Standard */ ++ { 0, "cdt", tDAYZONE, 6*HOUR }, /* Central Daylight */ ++ { 0, "mst", tZONE, 7*HOUR }, /* Mountain Standard */ ++ { 0, "mdt", tDAYZONE, 7*HOUR }, /* Mountain Daylight */ ++ { 0, "pst", tZONE, 8*HOUR }, /* Pacific Standard */ ++ { 0, "pdt", tDAYZONE, 8*HOUR }, /* Pacific Daylight */ ++ { 0, "yst", tZONE, 9*HOUR }, /* Yukon Standard */ ++ { 0, "ydt", tDAYZONE, 9*HOUR }, /* Yukon Daylight */ ++ { 0, "hst", tZONE, 10*HOUR }, /* Hawaii Standard */ ++ { 0, "hdt", tDAYZONE, 10*HOUR }, /* Hawaii Daylight */ ++ { 0, "cat", tZONE, 10*HOUR }, /* Central Alaska */ ++ { 0, "ahst", tZONE, 10*HOUR }, /* Alaska-Hawaii Standard */ ++ { 0, "nt", tZONE, 11*HOUR }, /* Nome */ ++ { 0, "idlw", tZONE, 12*HOUR }, /* Intl Date Line West */ ++ { 0, "cet", tZONE, -1*HOUR }, /* Central European */ ++ { 0, "met", tZONE, -1*HOUR }, /* Middle European */ ++ { 0, "mewt", tZONE, -1*HOUR }, /* Middle European Winter */ ++ { 0, "mest", tDAYZONE, -1*HOUR }, /* Middle European Summer */ ++ { 0, "swt", tZONE, -1*HOUR }, /* Swedish Winter */ ++ { 0, "sst", tDAYZONE, -1*HOUR }, /* Swedish Summer */ ++ { 0, "fwt", tZONE, -1*HOUR }, /* French Winter */ ++ { 0, "fst", tDAYZONE, -1*HOUR }, /* French Summer */ ++ { 0, "eet", tZONE, -2*HOUR }, /* Eastern Eur, USSR Zone 1 */ ++ { 0, "bt", tZONE, -3*HOUR }, /* Baghdad, USSR Zone 2 */ ++ { 0, "it", tZONE, -3*HOUR-30*MINUTE },/* Iran */ ++ { 0, "zp4", tZONE, -4*HOUR }, /* USSR Zone 3 */ ++ { 0, "zp5", tZONE, -5*HOUR }, /* USSR Zone 4 */ ++ { 0, "ist", tZONE, -5*HOUR-30*MINUTE },/* Indian Standard */ ++ { 0, "zp6", tZONE, -6*HOUR }, /* USSR Zone 5 */ ++ /* { 0, "nst", tZONE, -6.5*HOUR }, */ /* North Sumatra: Conflict */ ++ /* { 0, "sst", tZONE, -7*HOUR }, */ /* So Sumatra, USSR 6: Conflict */ ++ { 0, "wast", tZONE, -7*HOUR }, /* West Australian Standard */ ++ { 0, "wadt", tDAYZONE, -7*HOUR }, /* West Australian Daylight */ ++ { 0, "jt", tZONE, -7*HOUR-30*MINUTE },/* Java (3pm in Cronusland!)*/ ++ { 0, "cct", tZONE, -8*HOUR }, /* China Coast, USSR Zone 7 */ ++ { 0, "jst", tZONE, -9*HOUR }, /* Japan Std, USSR Zone 8 */ ++ { 0, "cast", tZONE, -9*HOUR-30*MINUTE },/* Ctrl Australian Std */ ++ { 0, "cadt", tDAYZONE, -9*HOUR-30*MINUTE },/* Ctrl Australian Daylt */ ++ { 0, "east", tZONE, -10*HOUR }, /* Eastern Australian Std */ ++ { 0, "eadt", tDAYZONE, -10*HOUR }, /* Eastern Australian Daylt */ ++ { 0, "gst", tZONE, -10*HOUR }, /* Guam Std, USSR Zone 9 */ ++ { 0, "nzt", tZONE, -12*HOUR }, /* New Zealand */ ++ { 0, "nzst", tZONE, -12*HOUR }, /* New Zealand Standard */ ++ { 0, "nzdt", tDAYZONE, -12*HOUR }, /* New Zealand Daylight */ ++ { 0, "idle", tZONE, -12*HOUR }, /* Intl Date Line East */ ++ ++ { 0, "dst", tDST, 0 }, ++ ++ /* Time units. */ ++ { 4, "years", tMONTH_UNIT, 12 }, ++ { 5, "months", tMONTH_UNIT, 1 }, ++ { 9, "fortnights", tSEC_UNIT, 14 * DAY }, ++ { 4, "weeks", tSEC_UNIT, 7 * DAY }, ++ { 3, "days", tSEC_UNIT, DAY }, ++ { 4, "hours", tSEC_UNIT, HOUR }, ++ { 3, "minutes", tSEC_UNIT, MINUTE }, ++ { 3, "seconds", tSEC_UNIT, 1 }, ++ ++ /* Relative-time words. */ ++ { 0, "tomorrow", tSEC_UNIT, DAY }, ++ { 0, "yesterday", tSEC_UNIT, -DAY }, ++ { 0, "today", tSEC_UNIT, 0 }, ++ { 0, "now", tSEC_UNIT, 0 }, ++ { 0, "last", tUNUMBER, -1 }, ++ { 0, "this", tSEC_UNIT, 0 }, ++ { 0, "next", tUNUMBER, 2 }, ++ { 0, "first", tUNUMBER, 1 }, ++ { 0, "1st", tUNUMBER, 1 }, ++/* { 0, "second", tUNUMBER, 2 }, */ ++ { 0, "2nd", tUNUMBER, 2 }, ++ { 0, "third", tUNUMBER, 3 }, ++ { 0, "3rd", tUNUMBER, 3 }, ++ { 0, "fourth", tUNUMBER, 4 }, ++ { 0, "4th", tUNUMBER, 4 }, ++ { 0, "fifth", tUNUMBER, 5 }, ++ { 0, "5th", tUNUMBER, 5 }, ++ { 0, "sixth", tUNUMBER, 6 }, ++ { 0, "seventh", tUNUMBER, 7 }, ++ { 0, "eighth", tUNUMBER, 8 }, ++ { 0, "ninth", tUNUMBER, 9 }, ++ { 0, "tenth", tUNUMBER, 10 }, ++ { 0, "eleventh", tUNUMBER, 11 }, ++ { 0, "twelfth", tUNUMBER, 12 }, ++ { 0, "ago", tAGO, 1 }, ++ ++ /* Military timezones. */ ++ { 0, "a", tZONE, 1*HOUR }, ++ { 0, "b", tZONE, 2*HOUR }, ++ { 0, "c", tZONE, 3*HOUR }, ++ { 0, "d", tZONE, 4*HOUR }, ++ { 0, "e", tZONE, 5*HOUR }, ++ { 0, "f", tZONE, 6*HOUR }, ++ { 0, "g", tZONE, 7*HOUR }, ++ { 0, "h", tZONE, 8*HOUR }, ++ { 0, "i", tZONE, 9*HOUR }, ++ { 0, "k", tZONE, 10*HOUR }, ++ { 0, "l", tZONE, 11*HOUR }, ++ { 0, "m", tZONE, 12*HOUR }, ++ { 0, "n", tZONE, -1*HOUR }, ++ { 0, "o", tZONE, -2*HOUR }, ++ { 0, "p", tZONE, -3*HOUR }, ++ { 0, "q", tZONE, -4*HOUR }, ++ { 0, "r", tZONE, -5*HOUR }, ++ { 0, "s", tZONE, -6*HOUR }, ++ { 0, "t", tZONE, -7*HOUR }, ++ { 0, "u", tZONE, -8*HOUR }, ++ { 0, "v", tZONE, -9*HOUR }, ++ { 0, "w", tZONE, -10*HOUR }, ++ { 0, "x", tZONE, -11*HOUR }, ++ { 0, "y", tZONE, -12*HOUR }, ++ { 0, "z", tZONE, 0*HOUR }, ++ ++ /* End of table. */ ++ { 0, NULL, 0, 0 } ++}; ++ ++/* ++ * Year is either: ++ * = A number from 0 to 99, which means a year from 1970 to 2069, or ++ * = The actual year (>=100). ++ */ ++static time_t ++Convert(time_t Month, time_t Day, time_t Year, ++ time_t Hours, time_t Minutes, time_t Seconds, ++ time_t Timezone, enum DSTMODE DSTmode) ++{ ++ signed char DaysInMonth[12] = { ++ 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ++ }; ++ time_t Julian; ++ int i; ++ struct tm *ltime; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++ ++ if (Year < 69) ++ Year += 2000; ++ else if (Year < 100) ++ Year += 1900; ++ DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ++ ? 29 : 28; ++ /* Checking for 2038 bogusly assumes that time_t is 32 bits. But ++ I'm too lazy to try to check for time_t overflow in another way. */ ++ if (Year < EPOCH || Year >= 2038 ++ || Month < 1 || Month > 12 ++ /* Lint fluff: "conversion from long may lose accuracy" */ ++ || Day < 1 || Day > DaysInMonth[(int)--Month] ++ || Hours < 0 || Hours > 23 ++ || Minutes < 0 || Minutes > 59 ++ || Seconds < 0 || Seconds > 59) ++ return -1; ++ ++ Julian = Day - 1; ++ for (i = 0; i < Month; i++) ++ Julian += DaysInMonth[i]; ++ for (i = EPOCH; i < Year; i++) ++ Julian += 365 + (i % 4 == 0); ++ Julian *= DAY; ++ Julian += Timezone; ++ Julian += Hours * HOUR + Minutes * MINUTE + Seconds; ++#if defined(HAVE_LOCALTIME_S) ++ ltime = localtime_s(&tmbuf, &Julian) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ ltime = localtime_r(&Julian, &tmbuf); ++#else ++ ltime = localtime(&Julian); ++#endif ++ if (DSTmode == DSTon ++ || (DSTmode == DSTmaybe && ltime->tm_isdst)) ++ Julian -= HOUR; ++ return Julian; ++} ++ ++static time_t ++DSTcorrect(time_t Start, time_t Future) ++{ ++ time_t StartDay; ++ time_t FutureDay; ++ struct tm *ltime; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++#if defined(HAVE_LOCALTIME_S) ++ ltime = localtime_s(&tmbuf, &Start) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ ltime = localtime_r(&Start, &tmbuf); ++#else ++ ltime = localtime(&Start); ++#endif ++ StartDay = (ltime->tm_hour + 1) % 24; ++#if defined(HAVE_LOCALTIME_S) ++ ltime = localtime_s(&tmbuf, &Future) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ ltime = localtime_r(&Future, &tmbuf); ++#else ++ ltime = localtime(&Future); ++#endif ++ FutureDay = (ltime->tm_hour + 1) % 24; ++ return (Future - Start) + (StartDay - FutureDay) * HOUR; ++} ++ ++ ++static time_t ++RelativeDate(time_t Start, time_t zone, int dstmode, ++ time_t DayOrdinal, time_t DayNumber) ++{ ++ struct tm *tm; ++ time_t t, now; ++#if defined(HAVE_GMTIME_R) || defined(HAVE_GMTIME_S) ++ struct tm tmbuf; ++#endif ++ ++ t = Start - zone; ++#if defined(HAVE_GMTIME_S) ++ tm = gmtime_s(&tmbuf, &t) ? NULL : &tmbuf; ++#elif defined(HAVE_GMTIME_R) ++ tm = gmtime_r(&t, &tmbuf); ++#else ++ tm = gmtime(&t); ++#endif ++ now = Start; ++ now += DAY * ((DayNumber - tm->tm_wday + 7) % 7); ++ now += 7 * DAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1); ++ if (dstmode == DSTmaybe) ++ return DSTcorrect(Start, now); ++ return now - Start; ++} ++ ++ ++static time_t ++RelativeMonth(time_t Start, time_t Timezone, time_t RelMonth) ++{ ++ struct tm *tm; ++ time_t Month; ++ time_t Year; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++ ++ if (RelMonth == 0) ++ return 0; ++#if defined(HAVE_LOCALTIME_S) ++ tm = localtime_s(&tmbuf, &Start) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ tm = localtime_r(&Start, &tmbuf); ++#else ++ tm = localtime(&Start); ++#endif ++ Month = 12 * (tm->tm_year + 1900) + tm->tm_mon + RelMonth; ++ Year = Month / 12; ++ Month = Month % 12 + 1; ++ return DSTcorrect(Start, ++ Convert(Month, (time_t)tm->tm_mday, Year, ++ (time_t)tm->tm_hour, (time_t)tm->tm_min, (time_t)tm->tm_sec, ++ Timezone, DSTmaybe)); ++} ++ ++/* ++ * Parses and consumes an unsigned number. ++ * Returns 1 if any number is parsed. Otherwise, *value is unchanged. ++ */ ++static char ++consume_unsigned_number(const char **in, time_t *value) ++{ ++ char c; ++ if (isdigit((unsigned char)(c = **in))) { ++ for (*value = 0; isdigit((unsigned char)(c = *(*in)++)); ) ++ *value = 10 * *value + c - '0'; ++ (*in)--; ++ return 1; ++ } ++ return 0; ++} ++ ++/* ++ * Tokenizer. ++ */ ++static int ++nexttoken(const char **in, time_t *value) ++{ ++ char c; ++ char buff[64]; ++ ++ for ( ; ; ) { ++ while (isspace((unsigned char)**in)) ++ ++*in; ++ ++ /* Skip parenthesized comments. */ ++ if (**in == '(') { ++ int Count = 0; ++ do { ++ c = *(*in)++; ++ if (c == '\0') ++ return c; ++ if (c == '(') ++ Count++; ++ else if (c == ')') ++ Count--; ++ } while (Count > 0); ++ continue; ++ } ++ ++ /* Try the next token in the word table first. */ ++ /* This allows us to match "2nd", for example. */ ++ { ++ const char *src = *in; ++ const struct LEXICON *tp; ++ unsigned i = 0; ++ ++ /* Force to lowercase and strip '.' characters. */ ++ while (*src != '\0' ++ && (isalnum((unsigned char)*src) || *src == '.') ++ && i < sizeof(buff)-1) { ++ if (*src != '.') { ++ if (isupper((unsigned char)*src)) ++ buff[i++] = (char)tolower( ++ (unsigned char)*src); ++ else ++ buff[i++] = *src; ++ } ++ src++; ++ } ++ buff[i] = '\0'; ++ ++ /* ++ * Find the first match. If the word can be ++ * abbreviated, make sure we match at least ++ * the minimum abbreviation. ++ */ ++ for (tp = TimeWords; tp->name; tp++) { ++ size_t abbrev = tp->abbrev; ++ if (abbrev == 0) ++ abbrev = strlen(tp->name); ++ if (strlen(buff) >= abbrev ++ && strncmp(tp->name, buff, strlen(buff)) ++ == 0) { ++ /* Skip over token. */ ++ *in = src; ++ /* Return the match. */ ++ *value = tp->value; ++ return tp->type; ++ } ++ } ++ } ++ ++ /* ++ * Not in the word table, maybe it's a number. Note: ++ * Because '-' and '+' have other special meanings, I ++ * don't deal with signed numbers here. ++ */ ++ if (consume_unsigned_number(in, value)) { ++ return (tUNUMBER); ++ } ++ ++ return *(*in)++; ++ } ++} ++ ++#define TM_YEAR_ORIGIN 1900 ++ ++/* Yield A - B, measured in seconds. */ ++static long ++difftm (struct tm *a, struct tm *b) ++{ ++ int ay = a->tm_year + (TM_YEAR_ORIGIN - 1); ++ int by = b->tm_year + (TM_YEAR_ORIGIN - 1); ++ long days = ( ++ /* difference in day of year */ ++ a->tm_yday - b->tm_yday ++ /* + intervening leap days */ ++ + ((ay >> 2) - (by >> 2)) ++ - (ay/100 - by/100) ++ + ((ay/100 >> 2) - (by/100 >> 2)) ++ /* + difference in years * 365 */ ++ + (long)(ay-by) * 365 ++ ); ++ return (days * DAY + (a->tm_hour - b->tm_hour) * HOUR ++ + (a->tm_min - b->tm_min) * MINUTE ++ + (a->tm_sec - b->tm_sec)); ++} ++ ++/* ++ * Parses a Unix epoch timestamp (seconds). ++ * This supports a subset of what GNU tar accepts from black box testing, ++ * but covers common use cases. ++ */ ++static time_t ++parse_unix_epoch(const char *p) ++{ ++ time_t epoch; ++ ++ /* may begin with + */ ++ if (*p == '+') { ++ p++; ++ } ++ ++ /* followed by some number */ ++ if (!consume_unsigned_number(&p, &epoch)) ++ return (time_t)-1; ++ ++ /* ...and nothing else */ ++ if (*p != '\0') ++ return (time_t)-1; ++ ++ return epoch; ++} ++ ++/* ++ * ++ * The public function. ++ * ++ * TODO: tokens[] array should be dynamically sized. ++ */ ++time_t ++archive_parse_date(time_t now, const char *p) ++{ ++ struct token tokens[256]; ++ struct gdstate _gds; ++ struct token *lasttoken; ++ struct gdstate *gds; ++ struct tm local, *tm; ++ struct tm gmt, *gmt_ptr; ++ time_t Start; ++ time_t tod; ++ long tzone; ++ ++ /* ++ * @-prefixed Unix epoch timestamps (seconds) ++ * Skip the complex tokenizer - We do not want to accept strings like "@tenth" ++ */ ++ if (*p == '@') ++ return parse_unix_epoch(p + 1); ++ ++ /* Clear out the parsed token array. */ ++ memset(tokens, 0, sizeof(tokens)); ++ /* Initialize the parser state. */ ++ memset(&_gds, 0, sizeof(_gds)); ++ gds = &_gds; ++ ++ /* Look up the current time. */ ++#if defined(HAVE_LOCALTIME_S) ++ tm = localtime_s(&local, &now) ? NULL : &local; ++#elif defined(HAVE_LOCALTIME_R) ++ tm = localtime_r(&now, &local); ++#else ++ memset(&local, 0, sizeof(local)); ++ tm = localtime(&now); ++#endif ++ if (tm == NULL) ++ return -1; ++#if !defined(HAVE_LOCALTIME_R) && !defined(HAVE_LOCALTIME_S) ++ local = *tm; ++#endif ++ ++ /* Look up UTC if we can and use that to determine the current ++ * timezone offset. */ ++#if defined(HAVE_GMTIME_S) ++ gmt_ptr = gmtime_s(&gmt, &now) ? NULL : &gmt; ++#elif defined(HAVE_GMTIME_R) ++ gmt_ptr = gmtime_r(&now, &gmt); ++#else ++ memset(&gmt, 0, sizeof(gmt)); ++ gmt_ptr = gmtime(&now); ++ if (gmt_ptr != NULL) { ++ /* Copy, in case localtime and gmtime use the same buffer. */ ++ gmt = *gmt_ptr; ++ } ++#endif ++ if (gmt_ptr != NULL) ++ tzone = difftm (&gmt, &local); ++ else ++ /* This system doesn't understand timezones; fake it. */ ++ tzone = 0; ++ if(local.tm_isdst) ++ tzone += HOUR; ++ ++ /* Tokenize the input string. */ ++ lasttoken = tokens; ++ while ((lasttoken->token = nexttoken(&p, &lasttoken->value)) != 0) { ++ ++lasttoken; ++ if (lasttoken > tokens + 255) ++ return -1; ++ } ++ gds->tokenp = tokens; ++ ++ /* Match phrases until we run out of input tokens. */ ++ while (gds->tokenp < lasttoken) { ++ if (!phrase(gds)) ++ return -1; ++ } ++ ++ /* Use current local timezone if none was specified. */ ++ if (!gds->HaveZone) { ++ gds->Timezone = tzone; ++ gds->DSTmode = DSTmaybe; ++ } ++ ++ /* If a timezone was specified, use that for generating the default ++ * time components instead of the local timezone. */ ++ if (gds->HaveZone && gmt_ptr != NULL) { ++ now -= gds->Timezone; ++#if defined(HAVE_GMTIME_S) ++ gmt_ptr = gmtime_s(&gmt, &now) ? NULL : &gmt; ++#elif defined(HAVE_GMTIME_R) ++ gmt_ptr = gmtime_r(&now, &gmt); ++#else ++ gmt_ptr = gmtime(&now); ++#endif ++ if (gmt_ptr != NULL) ++ local = *gmt_ptr; ++ now += gds->Timezone; ++ } ++ ++ if (!gds->HaveYear) ++ gds->Year = local.tm_year + 1900; ++ if (!gds->HaveMonth) ++ gds->Month = local.tm_mon + 1; ++ if (!gds->HaveDay) ++ gds->Day = local.tm_mday; ++ /* Note: No default for hour/min/sec; a specifier that just ++ * gives date always refers to 00:00 on that date. */ ++ ++ /* If we saw more than one time, timezone, weekday, year, month, ++ * or day, then give up. */ ++ if (gds->HaveTime > 1 || gds->HaveZone > 1 || gds->HaveWeekDay > 1 ++ || gds->HaveYear > 1 || gds->HaveMonth > 1 || gds->HaveDay > 1) ++ return -1; ++ ++ /* Compute an absolute time based on whatever absolute information ++ * we collected. */ ++ if (gds->HaveYear || gds->HaveMonth || gds->HaveDay ++ || gds->HaveTime || gds->HaveWeekDay) { ++ Start = Convert(gds->Month, gds->Day, gds->Year, ++ gds->Hour, gds->Minutes, gds->Seconds, ++ gds->Timezone, gds->DSTmode); ++ if (Start < 0) ++ return -1; ++ } else { ++ Start = now; ++ if (!gds->HaveRel) ++ Start -= local.tm_hour * HOUR + local.tm_min * MINUTE ++ + local.tm_sec; ++ } ++ ++ /* Add the relative offset. */ ++ Start += gds->RelSeconds; ++ Start += RelativeMonth(Start, gds->Timezone, gds->RelMonth); ++ ++ /* Adjust for day-of-week offsets. */ ++ if (gds->HaveWeekDay ++ && !(gds->HaveYear || gds->HaveMonth || gds->HaveDay)) { ++ tod = RelativeDate(Start, gds->Timezone, ++ gds->DSTmode, gds->DayOrdinal, gds->DayNumber); ++ Start += tod; ++ } ++ ++ /* -1 is an error indicator, so return 0 instead of -1 if ++ * that's the actual time. */ ++ return Start == -1 ? 0 : Start; ++} ++ ++ ++#if defined(TEST) ++ ++/* ARGSUSED */ ++int ++main(int argc, char **argv) ++{ ++ time_t d; ++ time_t now = time(NULL); ++ ++ while (*++argv != NULL) { ++ (void)printf("Input: %s\n", *argv); ++ d = get_date(now, *argv); ++ if (d == -1) ++ (void)printf("Bad format - couldn't convert.\n"); ++ else ++ (void)printf("Output: %s\n", ctime(&d)); ++ } ++ exit(0); ++ /* NOTREACHED */ ++} ++#endif /* defined(TEST) */ +--- contrib/libarchive/libarchive/archive_platform.h.orig ++++ contrib/libarchive/libarchive/archive_platform.h +@@ -61,6 +61,11 @@ + # endif + #endif + ++/* For cygwin, to avoid missing LONG, ULONG, PUCHAR, ... definitions */ ++#ifdef __CYGWIN__ ++#include <windef.h> ++#endif ++ + /* It should be possible to get rid of this by extending the feature-test + * macros to cover Windows API functions, probably along with non-trivial + * refactoring of code to find structures that sit more cleanly on top of +--- contrib/libarchive/libarchive/archive_platform_acl.h.orig ++++ contrib/libarchive/libarchive/archive_platform_acl.h +@@ -50,4 +50,4 @@ + #define ARCHIVE_ACL_SUPPORT 1 + #endif + +-#endif /* ARCHIVE_PLATFORM_ACL_H_INCLUDED */ ++#endif /* !ARCHIVE_PLATFORM_ACL_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_platform_xattr.h.orig ++++ contrib/libarchive/libarchive/archive_platform_xattr.h +@@ -42,4 +42,4 @@ + #define ARCHIVE_XATTR_SUPPORT 1 + #endif + +-#endif /* ARCHIVE_PLATFORM_XATTR_H_INCLUDED */ ++#endif /* !ARCHIVE_PLATFORM_XATTR_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_ppmd7.c.orig ++++ contrib/libarchive/libarchive/archive_ppmd7.c +@@ -287,9 +287,14 @@ + return AllocUnitsRare(p, indx); + } + +-#define MyMem12Cpy(dest, src, num) \ +- { UInt32 *d = (UInt32 *)dest; const UInt32 *s = (const UInt32 *)src; UInt32 n = num; \ +- do { d[0] = s[0]; d[1] = s[1]; d[2] = s[2]; s += 3; d += 3; } while(--n); } ++#define MyMem12Cpy(dest, src, num) do { \ ++ UInt32 *d = (UInt32 *)dest; \ ++ const UInt32 *s = (const UInt32 *)src; \ ++ UInt32 n = num; \ ++ do { \ ++ d[0] = s[0]; d[1] = s[1]; d[2] = s[2]; s += 3; d += 3; \ ++ } while(--n); \ ++} while (0) + + static void *ShrinkUnits(CPpmd7 *p, void *oldPtr, unsigned oldNU, unsigned newNU) + { +--- contrib/libarchive/libarchive/archive_ppmd8.c.orig ++++ contrib/libarchive/libarchive/archive_ppmd8.c +@@ -242,9 +242,14 @@ + return AllocUnitsRare(p, indx); + } + +-#define MyMem12Cpy(dest, src, num) \ +- { UInt32 *d = (UInt32 *)dest; const UInt32 *z = (const UInt32 *)src; UInt32 n = num; \ +- do { d[0] = z[0]; d[1] = z[1]; d[2] = z[2]; z += 3; d += 3; } while (--n); } ++#define MyMem12Cpy(dest, src, num) do { \ ++ UInt32 *d = (UInt32 *)dest; \ ++ const UInt32 *z = (const UInt32 *)src; \ ++ UInt32 n = num; \ ++ do { \ ++ d[0] = z[0]; d[1] = z[1]; d[2] = z[2]; z += 3; d += 3; \ ++ } while (--n); \ ++} while (0) + + static void *ShrinkUnits(CPpmd8 *p, void *oldPtr, unsigned oldNU, unsigned newNU) + { +@@ -341,7 +346,9 @@ + (p)->SuccessorHigh = (UInt16)(((UInt32)(v) >> 16) & 0xFFFF); + } + +-#define RESET_TEXT(offs) { p->Text = p->Base + p->AlignOffset + (offs); } ++#define RESET_TEXT(offs) do { \ ++ p->Text = p->Base + p->AlignOffset + (offs); \ ++} while (0) + + static void RestartModel(CPpmd8 *p) + { +--- contrib/libarchive/libarchive/archive_ppmd_private.h.orig ++++ contrib/libarchive/libarchive/archive_ppmd_private.h +@@ -109,8 +109,12 @@ + Byte Count; /* Count to next change of Shift */ + } CPpmd_See; + +-#define Ppmd_See_Update(p) if ((p)->Shift < PPMD_PERIOD_BITS && --(p)->Count == 0) \ +- { (p)->Summ <<= 1; (p)->Count = (Byte)(3 << (p)->Shift++); } ++#define Ppmd_See_Update(p) do { \ ++ if ((p)->Shift < PPMD_PERIOD_BITS && --(p)->Count == 0) { \ ++ (p)->Summ <<= 1; \ ++ (p)->Count = (Byte)(3 << (p)->Shift++); \ ++ } \ ++} while (0) + + typedef struct + { +@@ -144,8 +148,12 @@ + #endif + CPpmd_Byte_Ref; + +-#define PPMD_SetAllBitsIn256Bytes(p) \ +- { unsigned j; for (j = 0; j < 256 / sizeof(p[0]); j += 8) { \ +- p[j+7] = p[j+6] = p[j+5] = p[j+4] = p[j+3] = p[j+2] = p[j+1] = p[j+0] = ~(size_t)0; }} ++#define PPMD_SetAllBitsIn256Bytes(p) do { \ ++ unsigned j; \ ++ for (j = 0; j < 256 / sizeof(p[0]); j += 8) { \ ++ p[j+7] = p[j+6] = p[j+5] = p[j+4] = \ ++ p[j+3] = p[j+2] = p[j+1] = p[j+0] = ~(size_t)0; \ ++ } \ ++} while (0) + + #endif +--- contrib/libarchive/libarchive/archive_random_private.h.orig ++++ contrib/libarchive/libarchive/archive_random_private.h +@@ -33,4 +33,4 @@ + /* Random number generator. */ + int archive_random(void *buf, size_t nbytes); + +-#endif /* ARCHIVE_RANDOM_PRIVATE_H_INCLUDED */ ++#endif /* !ARCHIVE_RANDOM_PRIVATE_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_rb.h.orig ++++ contrib/libarchive/libarchive/archive_rb.h +@@ -110,4 +110,4 @@ + __archive_rb_tree_iterate(struct archive_rb_tree *, + struct archive_rb_node *, const unsigned int); + +-#endif /* ARCHIVE_RB_H_*/ ++#endif /* !ARCHIVE_RB_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_read.c.orig ++++ contrib/libarchive/libarchive/archive_read.c +@@ -176,15 +176,9 @@ + return 0; + + if (self->archive->client.skipper != NULL) { +- /* Seek requests over 1GiB are broken down into +- * multiple seeks. This avoids overflows when the +- * requests get passed through 32-bit arguments. */ +- int64_t skip_limit = (int64_t)1 << 30; + int64_t total = 0; + for (;;) { + int64_t get, ask = request; +- if (ask > skip_limit) +- ask = skip_limit; + get = (self->archive->client.skipper) + (&self->archive->archive, self->data, ask); + total += get; +--- contrib/libarchive/libarchive/archive_read_append_filter.c.orig ++++ contrib/libarchive/libarchive/archive_read_append_filter.c +@@ -96,6 +96,10 @@ + strcpy(str, "lzip"); + r1 = archive_read_support_filter_lzip(_a); + break; ++ case ARCHIVE_FILTER_LZOP: ++ strcpy(str, "lzop"); ++ r1 = archive_read_support_filter_lzop(_a); ++ break; + case ARCHIVE_FILTER_LRZIP: + strcpy(str, "lrzip"); + r1 = archive_read_support_filter_lrzip(_a); +--- contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c.orig ++++ contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c +@@ -888,7 +888,7 @@ + count = (sizeof(buff) - sizeof(*fm))/sizeof(*fe); + fm = (struct fiemap *)buff; + fm->fm_start = 0; +- fm->fm_length = ~0ULL;; ++ fm->fm_length = ~0ULL; + fm->fm_flags = FIEMAP_FLAG_SYNC; + fm->fm_extent_count = count; + do_fiemap = 1; +--- contrib/libarchive/libarchive/archive_read_disk_posix.c.orig ++++ contrib/libarchive/libarchive/archive_read_disk_posix.c +@@ -276,7 +276,7 @@ + #endif + + /* Initiate/terminate a tree traversal. */ +-static struct tree *tree_open(const char *, int, int); ++static struct tree *tree_open(const char *, char, int); + static struct tree *tree_reopen(struct tree *, const char *, int); + static void tree_close(struct tree *); + static void tree_free(struct tree *); +@@ -514,7 +514,7 @@ + + static void + setup_symlink_mode(struct archive_read_disk *a, char symlink_mode, +- int follow_symlinks) ++ char follow_symlinks) + { + a->symlink_mode = symlink_mode; + a->follow_symlinks = follow_symlinks; +@@ -778,7 +778,8 @@ + */ + if (t->current_sparse->offset > t->entry_total) { + if (lseek(t->entry_fd, +- (off_t)t->current_sparse->offset, SEEK_SET) < 0) { ++ (off_t)t->current_sparse->offset, SEEK_SET) != ++ t->current_sparse->offset) { + archive_set_error(&a->archive, errno, "Seek error"); + r = ARCHIVE_FATAL; + a->archive.state = ARCHIVE_STATE_FATAL; +@@ -2180,7 +2181,7 @@ + * Open a directory tree for traversal. + */ + static struct tree * +-tree_open(const char *path, int symlink_mode, int restore_time) ++tree_open(const char *path, char symlink_mode, int restore_time) + { + struct tree *t; + +--- contrib/libarchive/libarchive/archive_read_disk_private.h.orig ++++ contrib/libarchive/libarchive/archive_read_disk_private.h +@@ -52,10 +52,11 @@ + + /* + * Since symlink interaction changes, we need to track whether +- * we're following symlinks for the current item. 'L' mode above +- * sets this true, 'P' sets it false, 'H' changes it as we traverse. ++ * we're following symlinks for the current item, governed by the above ++ * symlink_mode. 'L' sets this true, 'P' sets it false, 'H' changes it ++ * as we traverse. + */ +- char follow_symlinks; /* Either 'L' or 'P'. */ ++ char follow_symlinks; /* Either 0 or 1. */ + + /* Directory traversals. */ + struct tree *tree; +--- contrib/libarchive/libarchive/archive_read_format.3.orig ++++ contrib/libarchive/libarchive/archive_read_format.3 +@@ -37,8 +37,10 @@ + .Nm archive_read_support_format_lha , + .Nm archive_read_support_format_mtree , + .Nm archive_read_support_format_rar , ++.Nm archive_read_support_format_rar5 , + .Nm archive_read_support_format_raw , + .Nm archive_read_support_format_tar , ++.Nm archive_read_support_format_warc , + .Nm archive_read_support_format_xar , + .Nm archive_read_support_format_zip + .Nd functions for reading streaming archives +@@ -70,10 +72,14 @@ + .Ft int + .Fn archive_read_support_format_rar "struct archive *" + .Ft int ++.Fn archive_read_support_format_rar5 "struct archive *" ++.Ft int + .Fn archive_read_support_format_raw "struct archive *" + .Ft int + .Fn archive_read_support_format_tar "struct archive *" + .Ft int ++.Fn archive_read_support_format_warc "struct archive *" ++.Ft int + .Fn archive_read_support_format_xar "struct archive *" + .Ft int + .Fn archive_read_support_format_zip "struct archive *" +@@ -89,8 +95,10 @@ + .Fn archive_read_support_format_lha , + .Fn archive_read_support_format_mtree , + .Fn archive_read_support_format_rar , ++.Fn archive_read_support_format_rar5 , + .Fn archive_read_support_format_raw , + .Fn archive_read_support_format_tar , ++.Fn archive_read_support_format_warc , + .Fn archive_read_support_format_xar , + .Fn archive_read_support_format_zip + .Xc +@@ -100,6 +108,13 @@ + .Fn archive_read_support_format_tar + enables support for a variety of standard tar formats, old-style tar, + ustar, pax interchange format, and many common variants. ++.Fn archive_read_support_format_zip ++enables support for both the streaming and the seeking zip readers, ++which can separately be enabled by respectively ++.Fn archive_read_support_format_zip_streamable ++and ++.Fn archive_read_support_format_zip_seekable ++. + .It Fn archive_read_support_format_all + Enables support for all available formats except the + .Dq raw +--- contrib/libarchive/libarchive/archive_read_open_fd.c.orig ++++ contrib/libarchive/libarchive/archive_read_open_fd.c +@@ -52,6 +52,7 @@ + struct read_fd_data { + int fd; + size_t block_size; ++ int64_t size; + char use_lseek; + void *buffer; + }; +@@ -95,6 +96,7 @@ + if (S_ISREG(st.st_mode)) { + archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino); + mine->use_lseek = 1; ++ mine->size = st.st_size; + } + #if defined(__CYGWIN__) || defined(_WIN32) + setmode(mine->fd, O_BINARY); +@@ -131,7 +133,7 @@ + file_skip(struct archive *a, void *client_data, int64_t request) + { + struct read_fd_data *mine = (struct read_fd_data *)client_data; +- int64_t skip = request; ++ off_t skip = (off_t)request; + int64_t old_offset, new_offset; + int skip_bits = sizeof(skip) * 8 - 1; /* off_t is a signed type. */ + +@@ -140,20 +142,25 @@ + + /* Reduce a request that would overflow the 'skip' variable. */ + if (sizeof(request) > sizeof(skip)) { +- int64_t max_skip = ++ const int64_t max_skip = + (((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1; + if (request > max_skip) +- skip = max_skip; ++ skip = (off_t)max_skip; + } + +- /* Reduce request to the next smallest multiple of block_size */ +- request = (request / mine->block_size) * mine->block_size; +- if (request == 0) ++ /* Reduce 'skip' to the next smallest multiple of block_size */ ++ skip = (off_t)(((int64_t)skip / mine->block_size) * mine->block_size); ++ if (skip == 0) + return (0); + +- if (((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) && +- ((new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0)) +- return (new_offset - old_offset); ++ if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) { ++ if (old_offset >= mine->size || ++ skip > mine->size - old_offset) { ++ /* Do not seek past end of file. */ ++ errno = ESPIPE; ++ } else if ((new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0) ++ return (new_offset - old_offset); ++ } + + /* If seek failed once, it will probably fail again. */ + mine->use_lseek = 0; +@@ -178,11 +185,24 @@ + file_seek(struct archive *a, void *client_data, int64_t request, int whence) + { + struct read_fd_data *mine = (struct read_fd_data *)client_data; ++ off_t seek = (off_t)request; + int64_t r; ++ int seek_bits = sizeof(seek) * 8 - 1; /* off_t is a signed type. */ + + /* We use off_t here because lseek() is declared that way. */ +- /* See above for notes about when off_t is less than 64 bits. */ +- r = lseek(mine->fd, request, whence); ++ ++ /* Reduce a request that would overflow the 'seek' variable. */ ++ if (sizeof(request) > sizeof(seek)) { ++ const int64_t max_seek = ++ (((int64_t)1 << (seek_bits - 1)) - 1) * 2 + 1; ++ const int64_t min_seek = ~max_seek; ++ if (request > max_seek) ++ seek = (off_t)max_seek; ++ else if (request < min_seek) ++ seek = (off_t)min_seek; ++ } ++ ++ r = lseek(mine->fd, seek, whence); + if (r >= 0) + return r; + +--- contrib/libarchive/libarchive/archive_read_open_file.c.orig ++++ contrib/libarchive/libarchive/archive_read_open_file.c +@@ -52,13 +52,15 @@ + struct read_FILE_data { + FILE *f; + size_t block_size; ++ int64_t size; + void *buffer; + char can_skip; + }; + +-static int file_close(struct archive *, void *); +-static ssize_t file_read(struct archive *, void *, const void **buff); +-static int64_t file_skip(struct archive *, void *, int64_t request); ++static int FILE_close(struct archive *, void *); ++static ssize_t FILE_read(struct archive *, void *, const void **buff); ++static int64_t FILE_seek(struct archive *, void *, int64_t, int); ++static int64_t FILE_skip(struct archive *, void *, int64_t); + + int + archive_read_open_FILE(struct archive *a, FILE *f) +@@ -69,7 +71,7 @@ + void *b; + + archive_clear_error(a); +- mine = malloc(sizeof(*mine)); ++ mine = calloc(1, sizeof(*mine)); + b = malloc(block_size); + if (mine == NULL || b == NULL) { + archive_set_error(a, ENOMEM, "No memory"); +@@ -90,22 +92,23 @@ + archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino); + /* Enable the seek optimization only for regular files. */ + mine->can_skip = 1; +- } else +- mine->can_skip = 0; ++ mine->size = st.st_size; ++ } + + #if defined(__CYGWIN__) || defined(_WIN32) + setmode(fileno(mine->f), O_BINARY); + #endif + +- archive_read_set_read_callback(a, file_read); +- archive_read_set_skip_callback(a, file_skip); +- archive_read_set_close_callback(a, file_close); ++ archive_read_set_read_callback(a, FILE_read); ++ archive_read_set_skip_callback(a, FILE_skip); ++ archive_read_set_seek_callback(a, FILE_seek); ++ archive_read_set_close_callback(a, FILE_close); + archive_read_set_callback_data(a, mine); + return (archive_read_open1(a)); + } + + static ssize_t +-file_read(struct archive *a, void *client_data, const void **buff) ++FILE_read(struct archive *a, void *client_data, const void **buff) + { + struct read_FILE_data *mine = (struct read_FILE_data *)client_data; + size_t bytes_read; +@@ -119,16 +122,17 @@ + } + + static int64_t +-file_skip(struct archive *a, void *client_data, int64_t request) ++FILE_skip(struct archive *a, void *client_data, int64_t request) + { + struct read_FILE_data *mine = (struct read_FILE_data *)client_data; +-#if HAVE_FSEEKO +- off_t skip = (off_t)request; +-#elif HAVE__FSEEKI64 ++#if HAVE__FSEEKI64 + int64_t skip = request; ++#elif HAVE_FSEEKO ++ off_t skip = (off_t)request; + #else + long skip = (long)request; + #endif ++ int64_t old_offset, new_offset = -1; + int skip_bits = sizeof(skip) * 8 - 1; + + (void)a; /* UNUSED */ +@@ -144,7 +148,7 @@ + + /* If request is too big for a long or an off_t, reduce it. */ + if (sizeof(request) > sizeof(skip)) { +- int64_t max_skip = ++ const int64_t max_skip = + (((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1; + if (request > max_skip) + skip = max_skip; +@@ -152,23 +156,92 @@ + + #ifdef __ANDROID__ + /* fileno() isn't safe on all platforms ... see above. */ +- if (lseek(fileno(mine->f), skip, SEEK_CUR) < 0) ++ old_offset = lseek(fileno(mine->f), 0, SEEK_CUR); + #elif HAVE__FSEEKI64 +- if (_fseeki64(mine->f, skip, SEEK_CUR) != 0) ++ old_offset = _ftelli64(mine->f); + #elif HAVE_FSEEKO +- if (fseeko(mine->f, skip, SEEK_CUR) != 0) ++ old_offset = ftello(mine->f); + #else +- if (fseek(mine->f, skip, SEEK_CUR) != 0) ++ old_offset = ftell(mine->f); + #endif +- { +- mine->can_skip = 0; +- return (0); ++ if (old_offset >= 0) { ++ if (old_offset < mine->size && ++ skip <= mine->size - old_offset) { ++#ifdef __ANDROID__ ++ new_offset = lseek(fileno(mine->f), skip, SEEK_CUR); ++#elif HAVE__FSEEKI64 ++ if (_fseeki64(mine->f, skip, SEEK_CUR) == 0) ++ new_offset = _ftelli64(mine->f); ++#elif HAVE_FSEEKO ++ if (fseeko(mine->f, skip, SEEK_CUR) == 0) ++ new_offset = ftello(mine->f); ++#else ++ if (fseek(mine->f, skip, SEEK_CUR) == 0) ++ new_offset = ftell(mine->f); ++#endif ++ if (new_offset >= 0) ++ return (new_offset - old_offset); ++ } ++ } ++ ++ mine->can_skip = 0; ++ return (0); ++} ++ ++/* ++ * TODO: Store the offset and use it in the read callback. ++ */ ++static int64_t ++FILE_seek(struct archive *a, void *client_data, int64_t request, int whence) ++{ ++ struct read_FILE_data *mine = (struct read_FILE_data *)client_data; ++#if HAVE__FSEEKI64 ++ int64_t seek = request; ++#elif HAVE_FSEEKO ++ off_t seek = (off_t)request; ++#else ++ long seek = (long)request; ++#endif ++ int seek_bits = sizeof(seek) * 8 - 1; ++ (void)a; /* UNUSED */ ++ ++ /* Reduce a request that would overflow the 'seek' variable. */ ++ if (sizeof(request) > sizeof(seek)) { ++ const int64_t max_seek = ++ (((int64_t)1 << (seek_bits - 1)) - 1) * 2 + 1; ++ const int64_t min_seek = ~max_seek; ++ if (request > max_seek) ++ seek = max_seek; ++ else if (request < min_seek) ++ seek = min_seek; + } +- return (request); ++ ++#ifdef __ANDROID__ ++ /* Newer Android versions have fseeko...to meditate. */ ++ int64_t ret = lseek(fileno(mine->f), seek, whence); ++ if (ret >= 0) { ++ return ret; ++ } ++#elif HAVE__FSEEKI64 ++ if (_fseeki64(mine->f, seek, whence) == 0) { ++ return _ftelli64(mine->f); ++ } ++#elif HAVE_FSEEKO ++ if (fseeko(mine->f, seek, whence) == 0) { ++ return ftello(mine->f); ++ } ++#else ++ if (fseek(mine->f, seek, whence) == 0) { ++ return ftell(mine->f); ++ } ++#endif ++ /* If we arrive here, the input is corrupted or truncated so fail. */ ++ archive_set_error(a, errno, "Error seeking in FILE* pointer"); ++ return (ARCHIVE_FATAL); + } + + static int +-file_close(struct archive *a, void *client_data) ++FILE_close(struct archive *a, void *client_data) + { + struct read_FILE_data *mine = (struct read_FILE_data *)client_data; + +--- contrib/libarchive/libarchive/archive_read_open_filename.c.orig ++++ contrib/libarchive/libarchive/archive_read_open_filename.c +@@ -74,6 +74,7 @@ + size_t block_size; + void *buffer; + mode_t st_mode; /* Mode bits for opened file. */ ++ int64_t size; + char use_lseek; + enum fnt_e { FNT_STDIN, FNT_MBS, FNT_WCS } filename_type; + union { +@@ -303,7 +304,7 @@ + } + if (fd < 0) { + archive_set_error(a, errno, +- "Failed to open '%S'", wfilename); ++ "Failed to open '%ls'", wfilename); + return (ARCHIVE_FATAL); + } + #else +@@ -315,7 +316,7 @@ + if (fstat(fd, &st) != 0) { + #if defined(_WIN32) && !defined(__CYGWIN__) + if (mine->filename_type == FNT_WCS) +- archive_set_error(a, errno, "Can't stat '%S'", ++ archive_set_error(a, errno, "Can't stat '%ls'", + wfilename); + else + #endif +@@ -400,8 +401,10 @@ + mine->st_mode = st.st_mode; + + /* Disk-like inputs can use lseek(). */ +- if (is_disk_like) ++ if (is_disk_like) { + mine->use_lseek = 1; ++ mine->size = st.st_size; ++ } + + return (ARCHIVE_OK); + fail: +@@ -447,7 +450,7 @@ + "Error reading '%s'", mine->filename.m); + else + archive_set_error(a, errno, +- "Error reading '%S'", mine->filename.w); ++ "Error reading '%ls'", mine->filename.w); + } + return (bytes_read); + } +@@ -479,21 +482,30 @@ + struct read_file_data *mine = (struct read_file_data *)client_data; + #if defined(_WIN32) && !defined(__CYGWIN__) + /* We use _lseeki64() on Windows. */ +- int64_t old_offset, new_offset; ++ int64_t old_offset, new_offset, skip = request; + #else +- off_t old_offset, new_offset; ++ off_t old_offset, new_offset, skip = (off_t)request; + #endif ++ int skip_bits = sizeof(skip) * 8 - 1; + + /* We use off_t here because lseek() is declared that way. */ + +- /* TODO: Deal with case where off_t isn't 64 bits. +- * This shouldn't be a problem on Linux or other POSIX +- * systems, since the configuration logic for libarchive +- * tries to obtain a 64-bit off_t. +- */ +- if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0 && +- (new_offset = lseek(mine->fd, request, SEEK_CUR)) >= 0) +- return (new_offset - old_offset); ++ /* Reduce a request that would overflow the 'skip' variable. */ ++ if (sizeof(request) > sizeof(skip)) { ++ const int64_t max_skip = ++ (((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1; ++ if (request > max_skip) ++ skip = max_skip; ++ } ++ ++ if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) { ++ if (old_offset >= mine->size || ++ skip > mine->size - old_offset) { ++ /* Do not seek past end of file. */ ++ errno = ESPIPE; ++ } else if ((new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0) ++ return (new_offset - old_offset); ++ } + + /* If lseek() fails, don't bother trying again. */ + mine->use_lseek = 0; +@@ -509,7 +521,7 @@ + archive_set_error(a, errno, "Error seeking in '%s'", + mine->filename.m); + else +- archive_set_error(a, errno, "Error seeking in '%S'", ++ archive_set_error(a, errno, "Error seeking in '%ls'", + mine->filename.w); + return (-1); + } +@@ -540,11 +552,24 @@ + file_seek(struct archive *a, void *client_data, int64_t request, int whence) + { + struct read_file_data *mine = (struct read_file_data *)client_data; ++ off_t seek = (off_t)request; + int64_t r; ++ int seek_bits = sizeof(seek) * 8 - 1; + + /* We use off_t here because lseek() is declared that way. */ +- /* See above for notes about when off_t is less than 64 bits. */ +- r = lseek(mine->fd, request, whence); ++ ++ /* Reduce a request that would overflow the 'seek' variable. */ ++ if (sizeof(request) > sizeof(seek)) { ++ const int64_t max_seek = ++ (((int64_t)1 << (seek_bits - 1)) - 1) * 2 + 1; ++ const int64_t min_seek = ~max_seek; ++ if (request > max_seek) ++ seek = (off_t)max_seek; ++ else if (request < min_seek) ++ seek = (off_t)min_seek; ++ } ++ ++ r = lseek(mine->fd, seek, whence); + if (r >= 0) + return r; + +@@ -555,7 +580,7 @@ + archive_set_error(a, errno, "Error seeking in '%s'", + mine->filename.m); + else +- archive_set_error(a, errno, "Error seeking in '%S'", ++ archive_set_error(a, errno, "Error seeking in '%ls'", + mine->filename.w); + return (ARCHIVE_FATAL); + } +--- contrib/libarchive/libarchive/archive_read_support_filter_by_code.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_filter_by_code.c +@@ -37,46 +37,32 @@ + switch (filter_code) { + case ARCHIVE_FILTER_NONE: + return archive_read_support_filter_none(a); +- break; + case ARCHIVE_FILTER_GZIP: + return archive_read_support_filter_gzip(a); +- break; + case ARCHIVE_FILTER_BZIP2: + return archive_read_support_filter_bzip2(a); +- break; + case ARCHIVE_FILTER_COMPRESS: + return archive_read_support_filter_compress(a); +- break; + case ARCHIVE_FILTER_LZMA: + return archive_read_support_filter_lzma(a); +- break; + case ARCHIVE_FILTER_XZ: + return archive_read_support_filter_xz(a); +- break; + case ARCHIVE_FILTER_UU: + return archive_read_support_filter_uu(a); +- break; + case ARCHIVE_FILTER_RPM: + return archive_read_support_filter_rpm(a); +- break; + case ARCHIVE_FILTER_LZIP: + return archive_read_support_filter_lzip(a); +- break; + case ARCHIVE_FILTER_LRZIP: + return archive_read_support_filter_lrzip(a); +- break; + case ARCHIVE_FILTER_LZOP: + return archive_read_support_filter_lzop(a); +- break; + case ARCHIVE_FILTER_GRZIP: + return archive_read_support_filter_grzip(a); +- break; + case ARCHIVE_FILTER_LZ4: + return archive_read_support_filter_lz4(a); +- break; + case ARCHIVE_FILTER_ZSTD: + return archive_read_support_filter_zstd(a); +- break; + } + return (ARCHIVE_FATAL); + } +--- contrib/libarchive/libarchive/archive_read_support_filter_compress.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_filter_compress.c +@@ -328,6 +328,7 @@ + static int debug_buff[1024]; + static unsigned debug_index; + ++again: + code = newcode = getbits(self, state->bits); + if (code < 0) + return (code); +@@ -360,7 +361,7 @@ + state->section_end_code = (1 << state->bits) - 1; + state->free_ent = 257; + state->oldcode = -1; +- return (next_code(self)); ++ goto again; + } + + if (code > state->free_ent +--- contrib/libarchive/libarchive/archive_read_support_filter_lz4.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_filter_lz4.c +@@ -323,7 +323,6 @@ + archive_set_error(&self->archive->archive, + ARCHIVE_ERRNO_MISC, "Program error."); + return (ARCHIVE_FATAL); +- break; + } + + while (state->stage == SELECT_STREAM) { +--- contrib/libarchive/libarchive/archive_read_support_format_7zip.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_7zip.c +@@ -28,6 +28,9 @@ + #ifdef HAVE_ERRNO_H + #include <errno.h> + #endif ++#if HAVE_STDINT_H ++#include <stdint.h> ++#endif + #ifdef HAVE_STDLIB_H + #include <stdlib.h> + #endif +@@ -50,6 +53,7 @@ + #include "archive_ppmd7_private.h" + #include "archive_private.h" + #include "archive_read_private.h" ++#include "archive_time_private.h" + #include "archive_endian.h" + + #ifndef HAVE_ZLIB_H +@@ -59,7 +63,26 @@ + #define _7ZIP_SIGNATURE "7z\xBC\xAF\x27\x1C" + #define SFX_MIN_ADDR 0x27000 + #define SFX_MAX_ADDR 0x60000 ++#define SFX_MAX_OFFSET (SFX_MAX_ADDR - SFX_MIN_ADDR) + ++/* ++ * PE format ++ */ ++#define PE_DOS_HDR_LEN 0x40 ++#define PE_DOS_HDR_ELFANEW_OFFSET 0x3c ++#define PE_COFF_HDR_LEN 0x18 ++#define PE_COFF_HDR_SEC_CNT_OFFSET 0x6 ++#define PE_COFF_HDR_OPT_SZ_OFFSET 0x14 ++#define PE_SEC_HDR_LEN 0x28 ++#define PE_SEC_HDR_RAW_ADDR_OFFSET 0x14 ++#define PE_SEC_HDR_RAW_SZ_OFFSET 0x10 ++ ++/* ++ * ELF format ++ */ ++#define ELF_HDR_MIN_LEN 0x34 ++#define ELF_HDR_EI_CLASS_OFFSET 0x04 ++#define ELF_HDR_EI_DATA_OFFSET 0x05 + + /* + * Codec ID +@@ -83,6 +106,7 @@ + #define _7Z_ARM 0x03030501 + #define _7Z_ARMTHUMB 0x03030701 + #define _7Z_ARM64 0xa ++#define _7Z_RISCV 0xb + #define _7Z_SPARC 0x03030805 + + #define _7Z_ZSTD 0x4F71101 /* Copied from https://github.com/mcmilk/7-Zip-zstd.git */ +@@ -144,7 +168,6 @@ + uint32_t *digests; + }; + +- + struct _7z_folder { + uint64_t numCoders; + struct _7z_coder { +@@ -224,13 +247,13 @@ + #define CRC32_IS_SET (1<<3) + #define HAS_STREAM (1<<4) + +- time_t mtime; +- time_t atime; +- time_t ctime; +- long mtime_ns; +- long atime_ns; +- long ctime_ns; +- uint32_t mode; ++ int64_t mtime; ++ int64_t atime; ++ int64_t ctime; ++ uint32_t mtime_ns; ++ uint32_t atime_ns; ++ uint32_t ctime_ns; ++ __LA_MODE_T mode; + uint32_t attr; + }; + +@@ -388,7 +411,6 @@ + static int decompress(struct archive_read *, struct _7zip *, + void *, size_t *, const void *, size_t *); + static ssize_t extract_pack_stream(struct archive_read *, size_t); +-static void fileTimeToUtc(uint64_t, time_t *, long *); + static uint64_t folder_uncompressed_size(struct _7z_folder *); + static void free_CodersInfo(struct _7z_coders_info *); + static void free_Digest(struct _7z_digests *); +@@ -424,7 +446,9 @@ + size_t); + static int seek_pack(struct archive_read *); + static int64_t skip_stream(struct archive_read *, size_t); +-static int skip_sfx(struct archive_read *, ssize_t); ++static int skip_sfx(struct archive_read *, const ssize_t); ++static ssize_t find_pe_overlay(struct archive_read *); ++static ssize_t find_elf_data_sec(struct archive_read *); + static int slurp_central_directory(struct archive_read *, struct _7zip *, + struct _7z_header_info *); + static int setup_decode_folder(struct archive_read *, struct _7z_folder *, +@@ -435,6 +459,8 @@ + static size_t arm_Convert(struct _7zip *, uint8_t *, size_t); + static size_t arm64_Convert(struct _7zip *, uint8_t *, size_t); + static ssize_t Bcj2_Decode(struct _7zip *, uint8_t *, size_t); ++static size_t sparc_Convert(struct _7zip *, uint8_t *, size_t); ++static size_t powerpc_Convert(struct _7zip *, uint8_t *, size_t); + + + int +@@ -522,15 +548,17 @@ + * It may a 7-Zip SFX archive file. If first two bytes are + * 'M' and 'Z' available on Windows or first four bytes are + * "\x7F\x45LF" available on posix like system, seek the 7-Zip +- * signature. Although we will perform a seek when reading +- * a header, what we do not use __archive_read_seek() here is +- * due to a bidding performance. ++ * signature. While find_pe_overlay can be performed without ++ * performing a seek, find_elf_data_sec requires one, ++ * thus a performance difference between the two is expected. + */ + if ((p[0] == 'M' && p[1] == 'Z') || memcmp(p, "\x7F\x45LF", 4) == 0) { +- ssize_t offset = SFX_MIN_ADDR; ++ const ssize_t min_addr = p[0] == 'M' ? find_pe_overlay(a) : ++ find_elf_data_sec(a); ++ ssize_t offset = min_addr; + ssize_t window = 4096; + ssize_t bytes_avail; +- while (offset + window <= (SFX_MAX_ADDR)) { ++ while (offset + window <= (min_addr + SFX_MAX_OFFSET)) { + const char *buff = __archive_read_ahead(a, + offset + window, &bytes_avail); + if (buff == NULL) { +@@ -580,21 +608,14 @@ + } + + static int +-skip_sfx(struct archive_read *a, ssize_t bytes_avail) ++skip_sfx(struct archive_read *a, const ssize_t min_addr) + { + const void *h; + const char *p, *q; + size_t skip, offset; + ssize_t bytes, window; + +- /* +- * If bytes_avail > SFX_MIN_ADDR we do not have to call +- * __archive_read_seek() at this time since we have +- * already had enough data. +- */ +- if (bytes_avail > SFX_MIN_ADDR) +- __archive_read_consume(a, SFX_MIN_ADDR); +- else if (__archive_read_seek(a, SFX_MIN_ADDR, SEEK_SET) < 0) ++ if (__archive_read_seek(a, min_addr, SEEK_SET) < 0) + return (ARCHIVE_FATAL); + + offset = 0; +@@ -627,7 +648,7 @@ + (struct _7zip *)a->format->data; + skip = p - (const char *)h; + __archive_read_consume(a, skip); +- zip->seek_base = SFX_MIN_ADDR + offset + skip; ++ zip->seek_base = min_addr + offset + skip; + return (ARCHIVE_OK); + } + p += step; +@@ -644,6 +665,207 @@ + return (ARCHIVE_FATAL); + } + ++static ssize_t ++find_pe_overlay(struct archive_read *a) ++{ ++ const char *h; ++ ssize_t bytes, max_offset, offset, sec_end; ++ ssize_t opt_hdr_sz, sec_cnt; ++ ++ for (;;) { ++ /* ++ * Read Dos header to find e_lfanew ++ */ ++ h = __archive_read_ahead(a, PE_DOS_HDR_LEN, &bytes); ++ if (h == NULL || h[0] != 'M' || h[1] != 'Z') { ++ break; ++ } ++ offset = archive_le32dec(h + PE_DOS_HDR_ELFANEW_OFFSET); ++ ++ /* ++ * Read COFF header to find opt header size and sec cnt ++ */ ++ if (bytes < offset + PE_COFF_HDR_LEN) { ++ h = __archive_read_ahead(a, offset + PE_COFF_HDR_LEN, ++ &bytes); ++ if (h == NULL || h[offset] != 'P' || ++ h[offset + 1] != 'E') { ++ break; ++ } ++ } ++ sec_cnt = archive_le16dec( ++ h + offset + PE_COFF_HDR_SEC_CNT_OFFSET); ++ opt_hdr_sz = archive_le16dec( ++ h + offset + PE_COFF_HDR_OPT_SZ_OFFSET); ++ ++ /* ++ * Skip optional header ++ */ ++ if (opt_hdr_sz != 0) { ++ offset += PE_COFF_HDR_LEN + opt_hdr_sz; ++ } else { ++ break; ++ } ++ ++ /* ++ * Traverse sec table to find max raw offset (i.e., overlay) ++ */ ++ if (bytes < offset + sec_cnt * PE_SEC_HDR_LEN) { ++ h = __archive_read_ahead(a, ++ offset + sec_cnt * PE_SEC_HDR_LEN, NULL); ++ if (h == NULL) { ++ break; ++ } ++ } ++ max_offset = offset; ++ while (sec_cnt > 0) { ++ sec_end = archive_le32dec( ++ h + offset + PE_SEC_HDR_RAW_SZ_OFFSET) + ++ archive_le32dec( ++ h + offset + PE_SEC_HDR_RAW_ADDR_OFFSET); ++ if (sec_end > max_offset) { ++ max_offset = sec_end; ++ } ++ offset += PE_SEC_HDR_LEN; ++ sec_cnt--; ++ } ++ return (max_offset); ++ } ++ ++ /* ++ * If encounter any weirdness, revert to old brute-force style search ++ */ ++ return (SFX_MIN_ADDR); ++} ++ ++static ssize_t ++find_elf_data_sec(struct archive_read *a) ++{ ++ const char *h; ++ char big_endian, format_64; ++ ssize_t bytes, min_addr = SFX_MIN_ADDR; ++ uint64_t e_shoff, strtab_offset, strtab_size; ++ uint16_t e_shentsize, e_shnum, e_shstrndx; ++ uint16_t (*dec16)(const void *); ++ uint32_t (*dec32)(const void *); ++ uint64_t (*dec64)(const void *); ++ ++ for (;;) { ++ /* ++ * Read Elf header to find bitness & endianness ++ */ ++ h = __archive_read_ahead(a, ELF_HDR_MIN_LEN, &bytes); ++ if (h == NULL || memcmp(h, "\x7F\x45LF", 4) != 0) { ++ break; ++ } ++ format_64 = h[ELF_HDR_EI_CLASS_OFFSET] == 0x2; ++ big_endian = h[ELF_HDR_EI_DATA_OFFSET] == 0x2; ++ if (big_endian) { ++ dec16 = &archive_be16dec; ++ dec32 = &archive_be32dec; ++ dec64 = &archive_be64dec; ++ } else { ++ dec16 = &archive_le16dec; ++ dec32 = &archive_le32dec; ++ dec64 = &archive_le64dec; ++ } ++ ++ /* ++ * Read section header table info ++ */ ++ if (format_64) { ++ e_shoff = (*dec64)(h + 0x28); ++ e_shentsize = (*dec16)(h + 0x3A); ++ e_shnum = (*dec16)(h + 0x3C); ++ e_shstrndx = (*dec16)(h + 0x3E); ++ if (e_shnum < e_shstrndx || e_shentsize < 0x28) ++ break; ++ ++ } else { ++ e_shoff = (*dec32)(h + 0x20); ++ e_shentsize = (*dec16)(h + 0x2E); ++ e_shnum = (*dec16)(h + 0x30); ++ e_shstrndx = (*dec16)(h + 0x32); ++ if (e_shnum < e_shstrndx || e_shentsize < 0x18) ++ break; ++ } ++ ++ /* ++ * Reading the section table to find strtab section ++ */ ++ if (__archive_read_seek(a, e_shoff, SEEK_SET) < 0) { ++ break; ++ } ++ h = __archive_read_ahead(a, (size_t)e_shnum * (size_t)e_shentsize, NULL); ++ if (h == NULL) { ++ break; ++ } ++ if (format_64) { ++ strtab_offset = (*dec64)( ++ h + e_shstrndx * e_shentsize + 0x18); ++ strtab_size = (*dec64)( ++ h + e_shstrndx * e_shentsize + 0x20); ++ } else { ++ strtab_offset = (*dec32)( ++ h + e_shstrndx * e_shentsize + 0x10); ++ strtab_size = (*dec32)( ++ h + e_shstrndx * e_shentsize + 0x14); ++ } ++ ++ /* ++ * Read the STRTAB section to find the .data offset ++ */ ++ if (__archive_read_seek(a, strtab_offset, SEEK_SET) < 0) { ++ break; ++ } ++ h = __archive_read_ahead(a, strtab_size, NULL); ++ if (h == NULL) { ++ break; ++ } ++ ssize_t data_sym_offset = -1; ++ for (size_t offset = 0; offset < strtab_size - 6; offset++) { ++ if (memcmp(h + offset, ".data\00", 6) == 0) { ++ data_sym_offset = offset; ++ break; ++ } ++ } ++ if (data_sym_offset == -1) { ++ break; ++ } ++ ++ /* ++ * Find the section with the .data name ++ */ ++ if (__archive_read_seek(a, e_shoff, SEEK_SET) < 0) { ++ break; ++ } ++ h = __archive_read_ahead(a, (size_t)e_shnum * (size_t)e_shentsize, NULL); ++ if (h == NULL) { ++ break; ++ } ++ ssize_t sec_tbl_offset = 0, name_offset; ++ while (e_shnum > 0) { ++ name_offset = (*dec32)(h + sec_tbl_offset); ++ if (name_offset == data_sym_offset) { ++ if (format_64) { ++ min_addr = (*dec64)( ++ h + sec_tbl_offset + 0x18); ++ } else { ++ min_addr = (*dec32)( ++ h + sec_tbl_offset + 0x10); ++ } ++ break; ++ } ++ sec_tbl_offset += e_shentsize; ++ e_shnum--; ++ } ++ break; ++ } ++ ++ __archive_read_seek(a, 0, SEEK_SET); ++ return (min_addr); ++} ++ + static int + archive_read_format_7zip_read_header(struct archive_read *a, + struct archive_entry *entry) +@@ -770,7 +992,7 @@ + /* allocate for ",rdonly,hidden,system" */ + fflags_text = malloc(22 * sizeof(*fflags_text)); + if (fflags_text != NULL) { +- ptr = fflags_text; ++ ptr = fflags_text; + if (zip_entry->attr & FILE_ATTRIBUTE_READONLY) { + strcpy(ptr, ",rdonly"); + ptr = ptr + 7; +@@ -1109,7 +1331,9 @@ + if (coder2->codec != _7Z_X86 && + coder2->codec != _7Z_X86_BCJ2 && + coder2->codec != _7Z_ARM && +- coder2->codec != _7Z_ARM64) { ++ coder2->codec != _7Z_ARM64 && ++ coder2->codec != _7Z_POWERPC && ++ coder2->codec != _7Z_SPARC) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, + "Unsupported filter %lx for %lx", +@@ -1223,6 +1447,12 @@ + filters[fi].id = LZMA_FILTER_ARM64; + fi++; + break; ++#endif ++#ifdef LZMA_FILTER_RISCV ++ case _7Z_RISCV: ++ filters[fi].id = LZMA_FILTER_RISCV; ++ fi++; ++ break; + #endif + case _7Z_SPARC: + filters[fi].id = LZMA_FILTER_SPARC; +@@ -1396,6 +1626,7 @@ + case _7Z_ARM: + case _7Z_ARMTHUMB: + case _7Z_ARM64: ++ case _7Z_RISCV: + case _7Z_SPARC: + case _7Z_DELTA: + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +@@ -1708,6 +1939,10 @@ + *outbytes = arm_Convert(zip, buff, *outbytes); + } else if (zip->codec2 == _7Z_ARM64) { + *outbytes = arm64_Convert(zip, buff, *outbytes); ++ } else if (zip->codec2 == _7Z_SPARC) { ++ *outbytes = sparc_Convert(zip, buff, *outbytes); ++ } else if (zip->codec2 == _7Z_POWERPC) { ++ *outbytes = powerpc_Convert(zip, buff, *outbytes); + } + } + +@@ -2841,23 +3076,6 @@ + return (0); + } + +-#define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000) +-static void +-fileTimeToUtc(uint64_t fileTime, time_t *timep, long *ns) +-{ +- +- if (fileTime >= EPOC_TIME) { +- fileTime -= EPOC_TIME; +- /* milli seconds base */ +- *timep = (time_t)(fileTime / 10000000); +- /* nano seconds base */ +- *ns = (long)(fileTime % 10000000) * 100; +- } else { +- *timep = 0; +- *ns = 0; +- } +-} +- + static int + read_Times(struct archive_read *a, struct _7z_header_info *h, int type) + { +@@ -2900,19 +3118,19 @@ + goto failed; + switch (type) { + case kCTime: +- fileTimeToUtc(archive_le64dec(p), ++ ntfs_to_unix(archive_le64dec(p), + &(entries[i].ctime), + &(entries[i].ctime_ns)); + entries[i].flg |= CTIME_IS_SET; + break; + case kATime: +- fileTimeToUtc(archive_le64dec(p), ++ ntfs_to_unix(archive_le64dec(p), + &(entries[i].atime), + &(entries[i].atime_ns)); + entries[i].flg |= ATIME_IS_SET; + break; + case kMTime: +- fileTimeToUtc(archive_le64dec(p), ++ ntfs_to_unix(archive_le64dec(p), + &(entries[i].mtime), + &(entries[i].mtime_ns)); + entries[i].flg |= MTIME_IS_SET; +@@ -3007,7 +3225,9 @@ + + if ((p[0] == 'M' && p[1] == 'Z') || memcmp(p, "\x7F\x45LF", 4) == 0) { + /* This is an executable ? Must be self-extracting... */ +- r = skip_sfx(a, bytes_avail); ++ const ssize_t min_addr = p[0] == 'M' ? find_pe_overlay(a) : ++ find_elf_data_sec(a); ++ r = skip_sfx(a, min_addr); + if (r < ARCHIVE_WARN) + return (r); + if ((p = __archive_read_ahead(a, 32, &bytes_avail)) == NULL) +@@ -4007,6 +4227,121 @@ + return i; + } + ++static size_t ++sparc_Convert(struct _7zip *zip, uint8_t *buf, size_t size) ++{ ++ // This function was adapted from ++ // static size_t bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size) ++ // in https://git.tukaani.org/xz-embedded.git ++ ++ /* ++ * Branch/Call/Jump (BCJ) filter decoders ++ * ++ * Authors: Lasse Collin <lasse.collin@tukaani.org> ++ * Igor Pavlov <https://7-zip.org/> ++ * ++ * Copyright (C) The XZ Embedded authors and contributors ++ * ++ * Permission to use, copy, modify, and/or distribute this ++ * software for any purpose with or without fee is hereby granted. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL ++ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ++ * THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR ++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, ++ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++ size_t i; ++ uint32_t instr; ++ ++ size &= ~(size_t)3; ++ ++ for (i = 0; i < size; i += 4) { ++ instr = (uint32_t)(buf[i] << 24) ++ | ((uint32_t)buf[i+1] << 16) ++ | ((uint32_t)buf[i+2] << 8) ++ | (uint32_t)buf[i+3]; ++ ++ if ((instr >> 22) == 0x100 || (instr >> 22) == 0x1FF) { ++ instr <<= 2; ++ instr -= zip->bcj_ip + (uint32_t)i; ++ instr >>= 2; ++ instr = ((uint32_t)0x40000000 - (instr & 0x400000)) ++ | 0x40000000 | (instr & 0x3FFFFF); ++ ++ buf[i] = (uint8_t)(instr >> 24); ++ buf[i+1] = (uint8_t)(instr >> 16); ++ buf[i+2] = (uint8_t)(instr >> 8); ++ buf[i+3] = (uint8_t)instr; ++ } ++ } ++ ++ zip->bcj_ip += (uint32_t)i; ++ ++ return i; ++} ++ ++static size_t ++powerpc_Convert(struct _7zip *zip, uint8_t *buf, size_t size) ++{ ++ // This function was adapted from ++ // static size_t powerpc_code(void *simple, uint32_t now_pos, bool is_encoder, uint8_t *buffer, size_t size) ++ // in https://git.tukaani.org/xz.git ++ ++ /* ++ * Filter for PowerPC (big endian) binaries ++ * ++ * Authors: Igor Pavlov ++ * Lasse Collin ++ * ++ * Copyright (C) The XZ Utils authors and contributors ++ * ++ * Permission to use, copy, modify, and/or distribute this ++ * software for any purpose with or without fee is hereby granted. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL ++ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ++ * THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR ++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, ++ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++ size &= ~(size_t)3; ++ ++ size_t i; ++ for (i = 0; i < size; i += 4) { ++ // PowerPC branch 6(48) 24(Offset) 1(Abs) 1(Link) ++ if ((buf[i] >> 2) == 0x12 ++ && ((buf[i + 3] & 3) == 1)) { ++ ++ const uint32_t src ++ = (((uint32_t)(buf[i + 0]) & 3) << 24) ++ | ((uint32_t)(buf[i + 1]) << 16) ++ | ((uint32_t)(buf[i + 2]) << 8) ++ | ((uint32_t)(buf[i + 3]) & ~UINT32_C(3)); ++ ++ uint32_t dest = src - (zip->bcj_ip + (uint32_t)(i)); ++ ++ buf[i + 0] = 0x48 | ((dest >> 24) & 0x03); ++ buf[i + 1] = (dest >> 16); ++ buf[i + 2] = (dest >> 8); ++ buf[i + 3] &= 0x03; ++ buf[i + 3] |= dest; ++ } ++ } ++ ++ zip->bcj_ip += (uint32_t)i; ++ ++ return i; ++} ++ + /* + * Brought from LZMA SDK. + * +@@ -4029,8 +4364,17 @@ + + #define RC_READ_BYTE (*buffer++) + #define RC_TEST { if (buffer == bufferLim) return SZ_ERROR_DATA; } +-#define RC_INIT2 zip->bcj2_code = 0; zip->bcj2_range = 0xFFFFFFFF; \ +- { int ii; for (ii = 0; ii < 5; ii++) { RC_TEST; zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; }} ++#define RC_INIT2 do { \ ++ zip->bcj2_code = 0; \ ++ zip->bcj2_range = 0xFFFFFFFF; \ ++ { \ ++ int ii; \ ++ for (ii = 0; ii < 5; ii++) { \ ++ RC_TEST; \ ++ zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; \ ++ } \ ++ } \ ++} while (0) + + #define NORMALIZE if (zip->bcj2_range < kTopValue) { RC_TEST; zip->bcj2_range <<= 8; zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; } + +@@ -4177,4 +4521,3 @@ + + return ((ssize_t)outPos); + } +- +--- contrib/libarchive/libarchive/archive_read_support_format_by_code.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_by_code.c +@@ -41,49 +41,34 @@ + switch (format_code & ARCHIVE_FORMAT_BASE_MASK) { + case ARCHIVE_FORMAT_7ZIP: + return archive_read_support_format_7zip(a); +- break; + case ARCHIVE_FORMAT_AR: + return archive_read_support_format_ar(a); +- break; + case ARCHIVE_FORMAT_CAB: + return archive_read_support_format_cab(a); +- break; + case ARCHIVE_FORMAT_CPIO: + return archive_read_support_format_cpio(a); +- break; + case ARCHIVE_FORMAT_EMPTY: + return archive_read_support_format_empty(a); +- break; + case ARCHIVE_FORMAT_ISO9660: + return archive_read_support_format_iso9660(a); +- break; + case ARCHIVE_FORMAT_LHA: + return archive_read_support_format_lha(a); +- break; + case ARCHIVE_FORMAT_MTREE: + return archive_read_support_format_mtree(a); +- break; + case ARCHIVE_FORMAT_RAR: + return archive_read_support_format_rar(a); +- break; + case ARCHIVE_FORMAT_RAR_V5: + return archive_read_support_format_rar5(a); +- break; + case ARCHIVE_FORMAT_RAW: + return archive_read_support_format_raw(a); +- break; + case ARCHIVE_FORMAT_TAR: + return archive_read_support_format_tar(a); +- break; + case ARCHIVE_FORMAT_WARC: + return archive_read_support_format_warc(a); +- break; + case ARCHIVE_FORMAT_XAR: + return archive_read_support_format_xar(a); +- break; + case ARCHIVE_FORMAT_ZIP: + return archive_read_support_format_zip(a); +- break; + } + archive_set_error(a, ARCHIVE_ERRNO_PROGRAMMER, + "Invalid format code specified"); +--- contrib/libarchive/libarchive/archive_read_support_format_cab.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_cab.c +@@ -363,7 +363,12 @@ + return (ARCHIVE_FATAL); + } + archive_string_init(&cab->ws); +- archive_wstring_ensure(&cab->ws, 256); ++ if (archive_wstring_ensure(&cab->ws, 256) == NULL) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't allocate memory"); ++ free(cab); ++ return (ARCHIVE_FATAL); ++ } + + r = __archive_read_register_format(a, + cab, +--- contrib/libarchive/libarchive/archive_read_support_format_cpio.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_cpio.c +@@ -189,6 +189,7 @@ + }; + + static int64_t atol16(const char *, unsigned); ++static uint64_t atol16u(const char *, unsigned); + static int64_t atol8(const char *, unsigned); + static int archive_read_format_cpio_bid(struct archive_read *, int); + static int archive_read_format_cpio_options(struct archive_read *, +@@ -835,6 +836,7 @@ + struct archive_entry *entry, size_t *namelength, size_t *name_pad) + { + int64_t t; ++ uint64_t u; + const void *h; + const char *header; + +@@ -851,12 +853,12 @@ + + archive_entry_set_dev(entry, + (dev_t)atol16(header + afiol_dev_offset, afiol_dev_size)); +- t = atol16(header + afiol_ino_offset, afiol_ino_size); +- if (t < 0) { +- archive_set_error(&a->archive, 0, "Nonsensical ino value"); +- return (ARCHIVE_FATAL); +- } +- archive_entry_set_ino(entry, t); ++ u = atol16u(header + afiol_ino_offset, afiol_ino_size); ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++ archive_entry_set_ino(entry, (int64_t)(u & INT64_MAX)); ++#else ++ archive_entry_set_ino(entry, u); ++#endif + archive_entry_set_mode(entry, + (mode_t)atol8(header + afiol_mode_offset, afiol_mode_size)); + archive_entry_set_uid(entry, atol16(header + afiol_uid_offset, afiol_uid_size)); +@@ -1030,6 +1032,12 @@ + + static int64_t + atol16(const char *p, unsigned char_cnt) ++{ ++ return ((int64_t)atol16u(p, char_cnt)); ++} ++ ++static uint64_t ++atol16u(const char *p, unsigned char_cnt) + { + uint64_t l; + int digit; +@@ -1048,7 +1056,7 @@ + l <<= 4; + l |= digit; + } +- return ((int64_t)l); ++ return (l); + } + + static int +--- contrib/libarchive/libarchive/archive_read_support_format_iso9660.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_iso9660.c +@@ -1429,7 +1429,7 @@ + * information first, then store all file bodies. */ + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Ignoring out-of-order file @%jx (%s) %jd < %jd", +- (intmax_t)file->number, ++ (uintmax_t)file->number, + iso9660->pathname.s, + (intmax_t)file->offset, + (intmax_t)iso9660->current_position); +@@ -2273,7 +2273,7 @@ + if (version == 1) { + if (data_length >= 8) + file->mode +- = toi(data, 4); ++ = (__LA_MODE_T)toi(data, 4); + if (data_length >= 16) + file->nlinks + = toi(data + 8, 4); +--- contrib/libarchive/libarchive/archive_read_support_format_lha.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_lha.c +@@ -43,6 +43,7 @@ + #include "archive_entry_locale.h" + #include "archive_private.h" + #include "archive_read_private.h" ++#include "archive_time_private.h" + #include "archive_endian.h" + + +@@ -162,12 +163,12 @@ + #define ATIME_IS_SET 2 + #define UNIX_MODE_IS_SET 4 + #define CRC_IS_SET 8 +- time_t birthtime; +- long birthtime_tv_nsec; +- time_t mtime; +- long mtime_tv_nsec; +- time_t atime; +- long atime_tv_nsec; ++ int64_t birthtime; ++ uint32_t birthtime_tv_nsec; ++ int64_t mtime; ++ uint32_t mtime_tv_nsec; ++ int64_t atime; ++ uint32_t atime_tv_nsec; + mode_t mode; + int64_t uid; + int64_t gid; +@@ -230,8 +231,6 @@ + struct lha *, uint16_t *, int, uint64_t, size_t *); + static size_t lha_check_header_format(const void *); + static int lha_skip_sfx(struct archive_read *); +-static time_t lha_dos_time(const unsigned char *); +-static time_t lha_win_time(uint64_t, long *); + static unsigned char lha_calcsum(unsigned char, const void *, + int, size_t); + static int lha_parse_linkname(struct archive_wstring *, +@@ -819,7 +818,7 @@ + headersum = p[H0_HEADER_SUM_OFFSET]; + lha->compsize = archive_le32dec(p + H0_COMP_SIZE_OFFSET); + lha->origsize = archive_le32dec(p + H0_ORIG_SIZE_OFFSET); +- lha->mtime = lha_dos_time(p + H0_DOS_TIME_OFFSET); ++ lha->mtime = dos_to_unix(archive_le32dec(p + H0_DOS_TIME_OFFSET)); + namelen = p[H0_NAME_LEN_OFFSET]; + extdsize = (int)lha->header_size - H0_FIXED_SIZE - namelen; + if ((namelen > 221 || extdsize < 0) && extdsize != -2) { +@@ -919,7 +918,7 @@ + /* Note: An extended header size is included in a compsize. */ + lha->compsize = archive_le32dec(p + H1_COMP_SIZE_OFFSET); + lha->origsize = archive_le32dec(p + H1_ORIG_SIZE_OFFSET); +- lha->mtime = lha_dos_time(p + H1_DOS_TIME_OFFSET); ++ lha->mtime = dos_to_unix(archive_le32dec(p + H1_DOS_TIME_OFFSET)); + namelen = p[H1_NAME_LEN_OFFSET]; + /* Calculate a padding size. The result will be normally 0 only(?) */ + padding = ((int)lha->header_size) - H1_FIXED_SIZE - namelen; +@@ -1090,7 +1089,7 @@ + + if (archive_le16dec(p + H3_FIELD_LEN_OFFSET) != 4) + goto invalid; +- lha->header_size =archive_le32dec(p + H3_HEADER_SIZE_OFFSET); ++ lha->header_size = archive_le32dec(p + H3_HEADER_SIZE_OFFSET); + lha->compsize = archive_le32dec(p + H3_COMP_SIZE_OFFSET); + lha->origsize = archive_le32dec(p + H3_ORIG_SIZE_OFFSET); + lha->mtime = archive_le32dec(p + H3_TIME_OFFSET); +@@ -1326,16 +1325,16 @@ + break; + case EXT_TIMESTAMP: + if (datasize == (sizeof(uint64_t) * 3)) { +- lha->birthtime = lha_win_time( +- archive_le64dec(extdheader), ++ ntfs_to_unix(archive_le64dec(extdheader), ++ &lha->birthtime, + &lha->birthtime_tv_nsec); + extdheader += sizeof(uint64_t); +- lha->mtime = lha_win_time( +- archive_le64dec(extdheader), ++ ntfs_to_unix(archive_le64dec(extdheader), ++ &lha->mtime, + &lha->mtime_tv_nsec); + extdheader += sizeof(uint64_t); +- lha->atime = lha_win_time( +- archive_le64dec(extdheader), ++ ntfs_to_unix(archive_le64dec(extdheader), ++ &lha->atime, + &lha->atime_tv_nsec); + lha->setflag |= BIRTHTIME_IS_SET | + ATIME_IS_SET; +@@ -1716,45 +1715,6 @@ + return (0); + } + +-/* Convert an MSDOS-style date/time into Unix-style time. */ +-static time_t +-lha_dos_time(const unsigned char *p) +-{ +- int msTime, msDate; +- struct tm ts; +- +- msTime = archive_le16dec(p); +- msDate = archive_le16dec(p+2); +- +- memset(&ts, 0, sizeof(ts)); +- ts.tm_year = ((msDate >> 9) & 0x7f) + 80; /* Years since 1900. */ +- ts.tm_mon = ((msDate >> 5) & 0x0f) - 1; /* Month number. */ +- ts.tm_mday = msDate & 0x1f; /* Day of month. */ +- ts.tm_hour = (msTime >> 11) & 0x1f; +- ts.tm_min = (msTime >> 5) & 0x3f; +- ts.tm_sec = (msTime << 1) & 0x3e; +- ts.tm_isdst = -1; +- return (mktime(&ts)); +-} +- +-/* Convert an MS-Windows-style date/time into Unix-style time. */ +-static time_t +-lha_win_time(uint64_t wintime, long *ns) +-{ +-#define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000) +- +- if (wintime >= EPOC_TIME) { +- wintime -= EPOC_TIME; /* 1970-01-01 00:00:00 (UTC) */ +- if (ns != NULL) +- *ns = (long)(wintime % 10000000) * 100; +- return (wintime / 10000000); +- } else { +- if (ns != NULL) +- *ns = 0; +- return (0); +- } +-} +- + static unsigned char + lha_calcsum(unsigned char sum, const void *pp, int offset, size_t size) + { +@@ -2917,4 +2877,3 @@ + /* This bit pattern needs to be found out at a huffman tree. */ + return (lzh_decode_huffman_tree(hf, rbits, c)); + } +- +--- contrib/libarchive/libarchive/archive_read_support_format_rar.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_rar.c +@@ -335,8 +335,8 @@ + int found_first_header; + char has_endarc_header; + struct data_block_offsets *dbo; +- unsigned int cursor; +- unsigned int nodes; ++ size_t cursor; ++ size_t nodes; + char filename_must_match; + + /* LZSS members */ +@@ -451,7 +451,7 @@ + static int rar_decode_byte(struct archive_read*, uint8_t *); + static int execute_filter(struct archive_read*, struct rar_filter *, + struct rar_virtual_machine *, size_t); +-static int copy_from_lzss_window(struct archive_read *, void *, int64_t, int); ++static int copy_from_lzss_window(struct archive_read *, uint8_t *, int64_t, int); + static inline void vm_write_32(struct rar_virtual_machine*, size_t, uint32_t); + static inline uint32_t vm_read_32(struct rar_virtual_machine*, size_t); + +@@ -475,7 +475,7 @@ + ((rar_br_has(br, (n)) || rar_br_fillup(a, br)) || rar_br_has(br, (n))) + /* Notify how many bits we consumed. */ + #define rar_br_consume(br, n) ((br)->cache_avail -= (n)) +-#define rar_br_consume_unalined_bits(br) ((br)->cache_avail &= ~7) ++#define rar_br_consume_unaligned_bits(br) ((br)->cache_avail &= ~7) + + static const uint32_t cache_masks[] = { + 0x00000000, 0x00000001, 0x00000003, 0x00000007, +@@ -741,11 +741,11 @@ + return (ARCHIVE_FATAL); + } + +- /* +- * Until enough data has been read, we cannot tell about +- * any encrypted entries yet. +- */ +- rar->has_encrypted_entries = ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW; ++ /* ++ * Until enough data has been read, we cannot tell about ++ * any encrypted entries yet. ++ */ ++ rar->has_encrypted_entries = ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW; + + r = __archive_read_register_format(a, + rar, +@@ -768,21 +768,21 @@ + static int + archive_read_support_format_rar_capabilities(struct archive_read * a) + { +- (void)a; /* UNUSED */ +- return (ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA +- | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA); ++ (void)a; /* UNUSED */ ++ return (ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA ++ | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA); + } + + static int + archive_read_format_rar_has_encrypted_entries(struct archive_read *_a) + { +- if (_a && _a->format) { +- struct rar * rar = (struct rar *)_a->format->data; +- if (rar) { +- return rar->has_encrypted_entries; +- } +- } +- return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW; ++ if (_a && _a->format) { ++ struct rar * rar = (struct rar *)_a->format->data; ++ if (rar) { ++ return rar->has_encrypted_entries; ++ } ++ } ++ return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW; + } + + +@@ -793,7 +793,7 @@ + + /* If there's already a bid > 30, we'll never win. */ + if (best_bid > 30) +- return (-1); ++ return (-1); + + if ((p = __archive_read_ahead(a, 7, NULL)) == NULL) + return (-1); +@@ -865,7 +865,7 @@ + } + skip = p - (const char *)h; + __archive_read_consume(a, skip); +- total += skip; ++ total += skip; + } + fatal: + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +@@ -910,7 +910,7 @@ + const void *h; + const char *p; + struct rar *rar; +- size_t skip; ++ int64_t skip; + char head_type; + int ret; + unsigned flags; +@@ -930,7 +930,7 @@ + * as well. + */ + if (rar->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) { +- rar->has_encrypted_entries = 0; ++ rar->has_encrypted_entries = 0; + } + + /* RAR files can be generated without EOF headers, so return ARCHIVE_EOF if +@@ -953,8 +953,11 @@ + { + unsigned long crc32_val; + +- if ((h = __archive_read_ahead(a, 7, NULL)) == NULL) ++ if ((h = __archive_read_ahead(a, 7, NULL)) == NULL) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Failed to read next header."); + return (ARCHIVE_FATAL); ++ } + p = h; + + head_type = p[2]; +@@ -972,7 +975,7 @@ + case MAIN_HEAD: + rar->main_flags = archive_le16dec(p + 3); + skip = archive_le16dec(p + 5); +- if (skip < 7 + sizeof(rar->reserved1) + sizeof(rar->reserved2)) { ++ if ((size_t)skip < 7 + sizeof(rar->reserved1) + sizeof(rar->reserved2)) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Invalid header size"); + return (ARCHIVE_FATAL); +@@ -984,7 +987,8 @@ + memcpy(rar->reserved2, p + 7 + sizeof(rar->reserved1), + sizeof(rar->reserved2)); + if (rar->main_flags & MHD_ENCRYPTVER) { +- if (skip < 7 + sizeof(rar->reserved1) + sizeof(rar->reserved2)+1) { ++ if ((size_t)skip < ++ 7 + sizeof(rar->reserved1) + sizeof(rar->reserved2) + 1) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Invalid header size"); + return (ARCHIVE_FATAL); +@@ -1053,28 +1057,30 @@ + /* Skim the entire header and compute the CRC. */ + crc32_val = 0; + while (skip > 0) { +- size_t to_read = skip; +- if (to_read > 32 * 1024) +- to_read = 32 * 1024; +- if ((h = __archive_read_ahead(a, to_read, NULL)) == NULL) { +- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +- "Bad RAR file"); +- return (ARCHIVE_FATAL); +- } +- p = h; +- crc32_val = crc32(crc32_val, (const unsigned char *)p, (unsigned int)to_read); +- __archive_read_consume(a, to_read); +- skip -= to_read; ++ unsigned to_read; ++ if (skip > 32 * 1024) ++ to_read = 32 * 1024; ++ else ++ to_read = (unsigned)skip; ++ if ((h = __archive_read_ahead(a, to_read, NULL)) == NULL) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Bad RAR file"); ++ return (ARCHIVE_FATAL); ++ } ++ p = h; ++ crc32_val = crc32(crc32_val, (const unsigned char *)p, to_read); ++ __archive_read_consume(a, to_read); ++ skip -= to_read; + } + if ((crc32_val & 0xffff) != crc32_expected) { + #ifndef DONT_FAIL_ON_CRC_ERROR +- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +- "Header CRC error"); +- return (ARCHIVE_FATAL); ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Header CRC error"); ++ return (ARCHIVE_FATAL); + #endif + } + if (head_type == ENDARC_HEAD) +- return (ARCHIVE_EOF); ++ return (ARCHIVE_EOF); + break; + + case NEWSUB_HEAD: +@@ -1083,7 +1089,7 @@ + break; + + default: +- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Bad RAR file"); + return (ARCHIVE_FATAL); + } +@@ -1098,7 +1104,7 @@ + int ret; + + if (rar->has_encrypted_entries == ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW) { +- rar->has_encrypted_entries = 0; ++ rar->has_encrypted_entries = 0; + } + + if (rar->bytes_unconsumed > 0) { +@@ -1186,7 +1192,7 @@ + int whence) + { + int64_t client_offset, ret; +- unsigned int i; ++ size_t i; + struct rar *rar = (struct rar *)(a->format->data); + + if (rar->compression_method == COMPRESS_METHOD_STORE) +@@ -1433,7 +1439,11 @@ + } + + if ((h = __archive_read_ahead(a, (size_t)header_size - 7, NULL)) == NULL) ++ { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Failed to read full header content."); + return (ARCHIVE_FATAL); ++ } + + /* File Header CRC check. */ + crc32_computed = crc32(crc32_computed, h, (unsigned)(header_size - 7)); +@@ -1460,8 +1470,8 @@ + + if (rar->file_flags & FHD_PASSWORD) + { +- archive_entry_set_is_data_encrypted(entry, 1); +- rar->has_encrypted_entries = 1; ++ archive_entry_set_is_data_encrypted(entry, 1); ++ rar->has_encrypted_entries = 1; + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "RAR encryption support unavailable."); + /* Since it is only the data part itself that is encrypted we can at least +@@ -1506,10 +1516,23 @@ + */ + if (head_type == NEWSUB_HEAD) { + size_t distance = p - (const char *)h; ++ if (rar->packed_size > INT64_MAX - header_size) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Extended header size too large."); ++ return (ARCHIVE_FATAL); ++ } + header_size += rar->packed_size; ++ if ((uintmax_t)header_size > SIZE_MAX) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unable to read extended header data."); ++ return (ARCHIVE_FATAL); ++ } + /* Make sure we have the extended data. */ +- if ((h = __archive_read_ahead(a, (size_t)header_size - 7, NULL)) == NULL) +- return (ARCHIVE_FATAL); ++ if ((h = __archive_read_ahead(a, (size_t)header_size - 7, NULL)) == NULL) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Failed to read extended header data."); ++ return (ARCHIVE_FATAL); ++ } + p = h; + endp = p + header_size - 7; + p += distance; +@@ -1670,6 +1693,8 @@ + !memcmp(rar->filename, rar->filename_save, filename_size + 1)) + { + __archive_read_consume(a, header_size - 7); ++ rar->br.avail_in = 0; ++ rar->br.next_in = NULL; + rar->cursor++; + if (rar->cursor >= rar->nodes) + { +@@ -1689,6 +1714,12 @@ + } + if (rar->dbo[rar->cursor].start_offset < 0) + { ++ if (rar->packed_size > INT64_MAX - a->filter->position) ++ { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unable to store offsets."); ++ return (ARCHIVE_FATAL); ++ } + rar->dbo[rar->cursor].start_offset = a->filter->position; + rar->dbo[rar->cursor].end_offset = rar->dbo[rar->cursor].start_offset + + rar->packed_size; +@@ -1745,6 +1776,11 @@ + } + + __archive_read_consume(a, header_size - 7); ++ if (rar->packed_size > INT64_MAX - a->filter->position) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unable to store offsets."); ++ return (ARCHIVE_FATAL); ++ } + rar->dbo[0].start_offset = a->filter->position; + rar->dbo[0].end_offset = rar->dbo[0].start_offset + rar->packed_size; + +@@ -1753,7 +1789,7 @@ + case OS_MSDOS: + case OS_OS2: + case OS_WIN32: +- rar->mode = archive_le32dec(file_header.file_attr); ++ rar->mode = (__LA_MODE_T)archive_le32dec(file_header.file_attr); + if (rar->mode & FILE_ATTRIBUTE_DIRECTORY) + rar->mode = AE_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH; + else +@@ -1764,7 +1800,7 @@ + case OS_UNIX: + case OS_MAC_OS: + case OS_BEOS: +- rar->mode = archive_le32dec(file_header.file_attr); ++ rar->mode = (__LA_MODE_T)archive_le32dec(file_header.file_attr); + break; + + default: +@@ -1780,6 +1816,7 @@ + rar->offset_outgoing = 0; + rar->br.cache_avail = 0; + rar->br.avail_in = 0; ++ rar->br.next_in = NULL; + rar->crc_calculated = 0; + rar->entry_eof = 0; + rar->valid = 1; +@@ -1941,8 +1978,18 @@ + int ret = (ARCHIVE_OK); + + rar = (struct rar *)(a->format->data); ++ if ((uintmax_t)rar->packed_size > SIZE_MAX) ++ { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unable to read link."); ++ return (ARCHIVE_FATAL); ++ } + if ((h = rar_read_ahead(a, (size_t)rar->packed_size, NULL)) == NULL) ++ { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Failed to read link."); + return (ARCHIVE_FATAL); ++ } + p = h; + + if (archive_entry_copy_symlink_l(entry, +@@ -2224,7 +2271,7 @@ + + ret = expand(a, &end); + if (ret != ARCHIVE_OK) +- return (ret); ++ return (ret); + + rar->bytes_uncopied = end - start; + rar->filters.lastend = end; +@@ -2276,7 +2323,7 @@ + free_codes(a); + + /* Skip to the next byte */ +- rar_br_consume_unalined_bits(br); ++ rar_br_consume_unaligned_bits(br); + + /* PPMd block flag */ + if (!rar_br_read_ahead(a, br, 1)) +@@ -2332,9 +2379,9 @@ + __archive_ppmd7_functions.Ppmd7_Construct(&rar->ppmd7_context); + + if (rar->dictionary_size == 0) { +- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Invalid zero dictionary size"); +- return (ARCHIVE_FATAL); ++ return (ARCHIVE_FATAL); + } + + if (!__archive_ppmd7_functions.Ppmd7_Alloc(&rar->ppmd7_context, +@@ -2803,7 +2850,7 @@ + else + code->tablesize = code->maxlength; + +- code->table = calloc(1U << code->tablesize, sizeof(*code->table)); ++ code->table = calloc(((size_t)1U) << code->tablesize, sizeof(*code->table)); + + return make_table_recurse(a, code, 0, code->table, 0, code->tablesize); + } +@@ -2929,11 +2976,11 @@ + } + + if ((symbol = read_next_symbol(a, &rar->maincode)) < 0) +- return (ARCHIVE_FATAL); ++ goto bad_data; + + if (symbol < 256) + { +- lzss_emit_literal(rar, symbol); ++ lzss_emit_literal(rar, (uint8_t)symbol); + continue; + } + else if (symbol == 256) +@@ -2956,14 +3003,14 @@ + else + { + if (parse_codes(a) != ARCHIVE_OK) +- return (ARCHIVE_FATAL); ++ goto bad_data; + continue; + } + } + else if(symbol==257) + { + if (!read_filter(a, end)) +- return (ARCHIVE_FATAL); ++ goto bad_data; + continue; + } + else if(symbol==258) +@@ -3048,7 +3095,7 @@ + { + if ((lowoffsetsymbol = + read_next_symbol(a, &rar->lowoffsetcode)) < 0) +- return (ARCHIVE_FATAL); ++ goto bad_data; + if(lowoffsetsymbol == 16) + { + rar->numlowoffsetrepeats = 15; +@@ -3096,7 +3143,7 @@ + } + + static int +-copy_from_lzss_window(struct archive_read *a, void *buffer, ++copy_from_lzss_window(struct archive_read *a, uint8_t *buffer, + int64_t startpos, int length) + { + int windowoffs, firstpart; +@@ -3111,7 +3158,7 @@ + } + if (firstpart < length) { + memcpy(buffer, &rar->lzss.window[windowoffs], firstpart); +- memcpy(buffer, &rar->lzss.window[0], length - firstpart); ++ memcpy(buffer + firstpart, &rar->lzss.window[0], length - firstpart); + } else { + memcpy(buffer, &rar->lzss.window[windowoffs], length); + } +@@ -3180,8 +3227,12 @@ + rar_read_ahead(struct archive_read *a, size_t min, ssize_t *avail) + { + struct rar *rar = (struct rar *)(a->format->data); +- const void *h = __archive_read_ahead(a, min, avail); ++ const void *h; + int ret; ++ ++again: ++ h = __archive_read_ahead(a, min, avail); ++ + if (avail) + { + if (a->archive.read_data_is_posix_read && *avail > (ssize_t)a->archive.read_data_requested) +@@ -3203,7 +3254,7 @@ + rar->filename_must_match = 0; + if (ret != (ARCHIVE_OK)) + return NULL; +- return rar_read_ahead(a, min, avail); ++ goto again; + } + } + return h; +@@ -3266,6 +3317,9 @@ + else + blocklength = prog ? prog->oldfilterlength : 0; + ++ if (blocklength > rar->dictionary_size) ++ return 0; ++ + registers[3] = PROGRAM_SYSTEM_GLOBAL_ADDRESS; + registers[4] = blocklength; + registers[5] = prog ? prog->usagecount : 0; +--- contrib/libarchive/libarchive/archive_read_support_format_rar5.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_rar5.c +@@ -46,6 +46,7 @@ + #include "archive_entry_locale.h" + #include "archive_ppmd7_private.h" + #include "archive_entry_private.h" ++#include "archive_time_private.h" + + #ifdef HAVE_BLAKE2_H + #include <blake2.h> +@@ -100,10 +101,12 @@ + uint8_t dir : 1; /* Is this file entry a directory? */ + + /* Optional time fields. */ +- uint64_t e_mtime; +- uint64_t e_ctime; +- uint64_t e_atime; +- uint32_t e_unix_ns; ++ int64_t e_mtime; ++ int64_t e_ctime; ++ int64_t e_atime; ++ uint32_t e_mtime_ns; ++ uint32_t e_ctime_ns; ++ uint32_t e_atime_ns; + + /* Optional hash fields. */ + uint32_t stored_crc32; +@@ -691,7 +694,8 @@ + default: + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, +- "Unsupported filter type: 0x%x", flt->type); ++ "Unsupported filter type: 0x%x", ++ (unsigned int)flt->type); + return ARCHIVE_FATAL; + } + +@@ -1100,22 +1104,22 @@ + return ARCHIVE_OK; + } + +-static int read_u32(struct archive_read* a, uint32_t* pvalue) { ++static char read_u32(struct archive_read* a, uint32_t* pvalue) { + const uint8_t* p; + if(!read_ahead(a, 4, &p)) + return 0; + + *pvalue = archive_le32dec(p); +- return ARCHIVE_OK == consume(a, 4) ? 1 : 0; ++ return ARCHIVE_OK == consume(a, 4); + } + +-static int read_u64(struct archive_read* a, uint64_t* pvalue) { ++static char read_u64(struct archive_read* a, uint64_t* pvalue) { + const uint8_t* p; + if(!read_ahead(a, 8, &p)) + return 0; + + *pvalue = archive_le64dec(p); +- return ARCHIVE_OK == consume(a, 8) ? 1 : 0; ++ return ARCHIVE_OK == consume(a, 8); + } + + static int bid_standard(struct archive_read* a) { +@@ -1293,21 +1297,15 @@ + *extra_data_size -= hash_size; + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +- "Unsupported hash type (0x%x)", (int) hash_type); ++ "Unsupported hash type (0x%jx)", (uintmax_t)hash_type); + return ARCHIVE_FATAL; + } + + return ARCHIVE_OK; + } + +-static uint64_t time_win_to_unix(uint64_t win_time) { +- const size_t ns_in_sec = 10000000; +- const uint64_t sec_to_unix = 11644473600LL; +- return win_time / ns_in_sec - sec_to_unix; +-} +- + static int parse_htime_item(struct archive_read* a, char unix_time, +- uint64_t* where, int64_t* extra_data_size) ++ int64_t* sec, uint32_t* nsec, int64_t* extra_data_size) + { + if(unix_time) { + uint32_t time_val; +@@ -1315,13 +1313,13 @@ + return ARCHIVE_EOF; + + *extra_data_size -= 4; +- *where = (uint64_t) time_val; ++ *sec = (int64_t) time_val; + } else { + uint64_t windows_time; + if(!read_u64(a, &windows_time)) + return ARCHIVE_EOF; + +- *where = time_win_to_unix(windows_time); ++ ntfs_to_unix(windows_time, sec, nsec); + *extra_data_size -= 8; + } + +@@ -1385,7 +1383,7 @@ + static int parse_file_extra_htime(struct archive_read* a, + struct archive_entry* e, struct rar5* rar, int64_t* extra_data_size) + { +- char unix_time = 0; ++ char unix_time, has_unix_ns, has_mtime, has_ctime, has_atime; + size_t flags = 0; + size_t value_len; + +@@ -1406,32 +1404,62 @@ + } + + unix_time = flags & IS_UNIX; ++ has_unix_ns = unix_time && (flags & HAS_UNIX_NS); ++ has_mtime = flags & HAS_MTIME; ++ has_atime = flags & HAS_ATIME; ++ has_ctime = flags & HAS_CTIME; ++ rar->file.e_atime_ns = rar->file.e_ctime_ns = rar->file.e_mtime_ns = 0; + +- if(flags & HAS_MTIME) { ++ if(has_mtime) { + parse_htime_item(a, unix_time, &rar->file.e_mtime, +- extra_data_size); +- archive_entry_set_mtime(e, rar->file.e_mtime, 0); ++ &rar->file.e_mtime_ns, extra_data_size); + } + +- if(flags & HAS_CTIME) { ++ if(has_ctime) { + parse_htime_item(a, unix_time, &rar->file.e_ctime, +- extra_data_size); +- archive_entry_set_ctime(e, rar->file.e_ctime, 0); ++ &rar->file.e_ctime_ns, extra_data_size); + } + +- if(flags & HAS_ATIME) { ++ if(has_atime) { + parse_htime_item(a, unix_time, &rar->file.e_atime, +- extra_data_size); +- archive_entry_set_atime(e, rar->file.e_atime, 0); ++ &rar->file.e_atime_ns, extra_data_size); + } + +- if(flags & HAS_UNIX_NS) { +- if(!read_u32(a, &rar->file.e_unix_ns)) ++ if(has_mtime && has_unix_ns) { ++ if(!read_u32(a, &rar->file.e_mtime_ns)) + return ARCHIVE_EOF; + + *extra_data_size -= 4; + } + ++ if(has_ctime && has_unix_ns) { ++ if(!read_u32(a, &rar->file.e_ctime_ns)) ++ return ARCHIVE_EOF; ++ ++ *extra_data_size -= 4; ++ } ++ ++ if(has_atime && has_unix_ns) { ++ if(!read_u32(a, &rar->file.e_atime_ns)) ++ return ARCHIVE_EOF; ++ ++ *extra_data_size -= 4; ++ } ++ ++ /* The seconds and nanoseconds are either together, or separated in two ++ * fields so we parse them, then set the archive_entry's times. */ ++ if(has_mtime) { ++ archive_entry_set_mtime(e, rar->file.e_mtime, rar->file.e_mtime_ns); ++ } ++ ++ if(has_ctime) { ++ archive_entry_set_ctime(e, rar->file.e_ctime, rar->file.e_ctime_ns); ++ } ++ ++ if(has_atime) { ++ archive_entry_set_atime(e, rar->file.e_atime, rar->file.e_atime_ns); ++ } ++ + return ARCHIVE_OK; + } + +@@ -1896,7 +1924,8 @@ + } else { + /* Unknown host OS */ + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +- "Unsupported Host OS: 0x%x", (int) host_os); ++ "Unsupported Host OS: 0x%jx", ++ (uintmax_t)host_os); + + return ARCHIVE_FATAL; + } +@@ -2104,8 +2133,8 @@ + default: + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, +- "Unsupported extra type (0x%x)", +- (int) extra_field_id); ++ "Unsupported extra type (0x%jx)", ++ (uintmax_t)extra_field_id); + return ARCHIVE_FATAL; + } + +@@ -3093,7 +3122,7 @@ + * can be stored in the output buffer directly. + * + * - Code 256 defines a new filter, which is later used to +- * ransform the data block accordingly to the filter type. ++ * transform the data block accordingly to the filter type. + * The data block needs to be fully uncompressed first. + * + * - Code bigger than 257 and smaller than 262 define +@@ -3983,7 +4012,7 @@ + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, + "Compression method not supported: 0x%x", +- rar->cstate.method); ++ (unsigned int)rar->cstate.method); + + return ARCHIVE_FATAL; + } +--- contrib/libarchive/libarchive/archive_read_support_format_tar.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_tar.c +@@ -129,7 +129,11 @@ + int64_t entry_offset; + int64_t entry_padding; + int64_t entry_bytes_unconsumed; +- int64_t realsize; ++ int64_t disk_size; ++ int64_t GNU_sparse_realsize; ++ int64_t GNU_sparse_size; ++ int64_t SCHILY_sparse_realsize; ++ int64_t pax_size; + struct sparse_block *sparse_list; + struct sparse_block *sparse_last; + int64_t sparse_offset; +@@ -138,6 +142,7 @@ + int sparse_gnu_minor; + char sparse_gnu_attributes_seen; + char filetype; ++ char size_fields; /* Bits defined below */ + + struct archive_string localname; + struct archive_string_conv *opt_sconv; +@@ -148,9 +153,15 @@ + int compat_2x; + int process_mac_extensions; + int read_concatenated_archives; +- int realsize_override; + }; + ++/* Track which size fields were present in the headers */ ++#define TAR_SIZE_PAX_SIZE 1 ++#define TAR_SIZE_GNU_SPARSE_REALSIZE 2 ++#define TAR_SIZE_GNU_SPARSE_SIZE 4 ++#define TAR_SIZE_SCHILY_SPARSE_REALSIZE 8 ++ ++ + static int archive_block_is_null(const char *p); + static char *base64_decode(const char *, size_t, size_t *); + static int gnu_add_sparse_entry(struct archive_read *, struct tar *, +@@ -158,36 +169,36 @@ + + static void gnu_clear_sparse_list(struct tar *); + static int gnu_sparse_old_read(struct archive_read *, struct tar *, +- const struct archive_entry_header_gnutar *header, size_t *); ++ const struct archive_entry_header_gnutar *header, int64_t *); + static int gnu_sparse_old_parse(struct archive_read *, struct tar *, + const struct gnu_sparse *sparse, int length); + static int gnu_sparse_01_parse(struct archive_read *, struct tar *, + const char *, size_t); +-static ssize_t gnu_sparse_10_read(struct archive_read *, struct tar *, +- size_t *); ++static int64_t gnu_sparse_10_read(struct archive_read *, struct tar *, ++ int64_t *); + static int header_Solaris_ACL(struct archive_read *, struct tar *, +- struct archive_entry *, const void *, size_t *); ++ struct archive_entry *, const void *, int64_t *); + static int header_common(struct archive_read *, struct tar *, + struct archive_entry *, const void *); + static int header_old_tar(struct archive_read *, struct tar *, + struct archive_entry *, const void *); + static int header_pax_extension(struct archive_read *, struct tar *, +- struct archive_entry *, const void *, size_t *); ++ struct archive_entry *, const void *, int64_t *); + static int header_pax_global(struct archive_read *, struct tar *, +- struct archive_entry *, const void *h, size_t *); ++ struct archive_entry *, const void *h, int64_t *); + static int header_gnu_longlink(struct archive_read *, struct tar *, +- struct archive_entry *, const void *h, size_t *); ++ struct archive_entry *, const void *h, int64_t *); + static int header_gnu_longname(struct archive_read *, struct tar *, +- struct archive_entry *, const void *h, size_t *); ++ struct archive_entry *, const void *h, int64_t *); + static int is_mac_metadata_entry(struct archive_entry *entry); + static int read_mac_metadata_blob(struct archive_read *, +- struct archive_entry *, size_t *); ++ struct archive_entry *, int64_t *); + static int header_volume(struct archive_read *, struct tar *, +- struct archive_entry *, const void *h, size_t *); ++ struct archive_entry *, const void *h, int64_t *); + static int header_ustar(struct archive_read *, struct tar *, + struct archive_entry *, const void *h); + static int header_gnutar(struct archive_read *, struct tar *, +- struct archive_entry *, const void *h, size_t *); ++ struct archive_entry *, const void *h, int64_t *); + static int archive_read_format_tar_bid(struct archive_read *, int); + static int archive_read_format_tar_options(struct archive_read *, + const char *, const char *); +@@ -200,7 +211,7 @@ + static int checksum(struct archive_read *, const void *); + static int pax_attribute(struct archive_read *, struct tar *, + struct archive_entry *, const char *key, size_t key_length, +- size_t value_length, size_t *unconsumed); ++ size_t value_length, int64_t *unconsumed); + static int pax_attribute_LIBARCHIVE_xattr(struct archive_entry *, + const char *, size_t, const char *, size_t); + static int pax_attribute_SCHILY_acl(struct archive_read *, struct tar *, +@@ -209,20 +220,20 @@ + struct archive_entry *, const char *, size_t); + static void pax_time(const char *, size_t, int64_t *sec, long *nanos); + static ssize_t readline(struct archive_read *, struct tar *, const char **, +- ssize_t limit, size_t *); ++ ssize_t limit, int64_t *); + static int read_body_to_string(struct archive_read *, struct tar *, +- struct archive_string *, const void *h, size_t *); ++ struct archive_string *, const void *h, int64_t *); + static int read_bytes_to_string(struct archive_read *, +- struct archive_string *, size_t, size_t *); ++ struct archive_string *, size_t, int64_t *); + static int64_t tar_atol(const char *, size_t); + static int64_t tar_atol10(const char *, size_t); + static int64_t tar_atol256(const char *, size_t); + static int64_t tar_atol8(const char *, size_t); + static int tar_read_header(struct archive_read *, struct tar *, +- struct archive_entry *, size_t *); ++ struct archive_entry *, int64_t *); + static int tohex(int c); + static char *url_decode(const char *, size_t); +-static void tar_flush_unconsumed(struct archive_read *, size_t *); ++static void tar_flush_unconsumed(struct archive_read *, int64_t *); + + /* Sanity limits: These numbers should be low enough to + * prevent a maliciously-crafted archive from forcing us to +@@ -467,7 +478,7 @@ + * anything outstanding since we're going to do read_aheads + */ + static void +-tar_flush_unconsumed(struct archive_read *a, size_t *unconsumed) ++tar_flush_unconsumed(struct archive_read *a, int64_t *unconsumed) + { + if (*unconsumed) { + /* +@@ -515,7 +526,8 @@ + const char *p; + const wchar_t *wp; + int r; +- size_t l, unconsumed = 0; ++ size_t l; ++ int64_t unconsumed = 0; + + /* Assign default device/inode values. */ + archive_entry_set_dev(entry, 1 + default_dev); /* Don't use zero. */ +@@ -529,8 +541,7 @@ + tar = (struct tar *)(a->format->data); + tar->entry_offset = 0; + gnu_clear_sparse_list(tar); +- tar->realsize = -1; /* Mark this as "unset" */ +- tar->realsize_override = 0; ++ tar->size_fields = 0; /* We don't have any size info yet */ + + /* Setup default string conversion. */ + tar->sconv = tar->opt_sconv; +@@ -617,12 +628,15 @@ + /* If we're at end of file, return EOF. */ + if (tar->sparse_list == NULL || + tar->entry_bytes_remaining == 0) { +- if (__archive_read_consume(a, tar->entry_padding) < 0) ++ int64_t request = tar->entry_bytes_remaining + ++ tar->entry_padding; ++ ++ if (__archive_read_consume(a, request) != request) + return (ARCHIVE_FATAL); + tar->entry_padding = 0; + *buff = NULL; + *size = 0; +- *offset = tar->realsize; ++ *offset = tar->disk_size; + return (ARCHIVE_EOF); + } + +@@ -655,29 +669,15 @@ + static int + archive_read_format_tar_skip(struct archive_read *a) + { +- int64_t bytes_skipped; + int64_t request; +- struct sparse_block *p; + struct tar* tar; + + tar = (struct tar *)(a->format->data); + +- /* Do not consume the hole of a sparse file. */ +- request = 0; +- for (p = tar->sparse_list; p != NULL; p = p->next) { +- if (!p->hole) { +- if (p->remaining >= INT64_MAX - request) { +- return ARCHIVE_FATAL; +- } +- request += p->remaining; +- } +- } +- if (request > tar->entry_bytes_remaining) +- request = tar->entry_bytes_remaining; +- request += tar->entry_padding + tar->entry_bytes_unconsumed; ++ request = tar->entry_bytes_remaining + tar->entry_padding + ++ tar->entry_bytes_unconsumed; + +- bytes_skipped = __archive_read_consume(a, request); +- if (bytes_skipped < 0) ++ if (__archive_read_consume(a, request) != request) + return (ARCHIVE_FATAL); + + tar->entry_bytes_remaining = 0; +@@ -690,13 +690,29 @@ + return (ARCHIVE_OK); + } + ++/* ++ * This function resets the accumulated state while reading ++ * a header. ++ */ ++static void ++tar_reset_header_state(struct tar *tar) ++{ ++ tar->pax_hdrcharset_utf8 = 1; ++ tar->sparse_gnu_attributes_seen = 0; ++ archive_string_empty(&(tar->entry_gname)); ++ archive_string_empty(&(tar->entry_pathname)); ++ archive_string_empty(&(tar->entry_pathname_override)); ++ archive_string_empty(&(tar->entry_uname)); ++ archive_string_empty(&tar->entry_linkpath); ++} ++ + /* + * This function reads and interprets all of the headers associated + * with a single entry. + */ + static int + tar_read_header(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, size_t *unconsumed) ++ struct archive_entry *entry, int64_t *unconsumed) + { + ssize_t bytes; + int err = ARCHIVE_OK, err2; +@@ -715,13 +731,7 @@ + static const int32_t seen_x_header = 32; /* Also X */ + static const int32_t seen_mac_metadata = 512; + +- tar->pax_hdrcharset_utf8 = 1; +- tar->sparse_gnu_attributes_seen = 0; +- archive_string_empty(&(tar->entry_gname)); +- archive_string_empty(&(tar->entry_pathname)); +- archive_string_empty(&(tar->entry_pathname_override)); +- archive_string_empty(&(tar->entry_uname)); +- archive_string_empty(&tar->entry_linkpath); ++ tar_reset_header_state(tar); + + /* Ensure format is set. */ + if (a->archive.archive_format_name == NULL) { +@@ -750,7 +760,7 @@ + * if there's no regular header, then this is + * a premature EOF. */ + archive_set_error(&a->archive, EINVAL, +- "Damaged tar archive"); ++ "Damaged tar archive (end-of-archive within a sequence of headers)"); + return (ARCHIVE_FATAL); + } else { + return (ARCHIVE_EOF); +@@ -760,7 +770,7 @@ + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated tar archive" +- " detected while reading next heaader"); ++ " detected while reading next header"); + return (ARCHIVE_FATAL); + } + *unconsumed += 512; +@@ -787,7 +797,8 @@ + /* This is NOT a null block, so it must be a valid header. */ + if (!checksum(a, h)) { + tar_flush_unconsumed(a, unconsumed); +- archive_set_error(&a->archive, EINVAL, "Damaged tar archive"); ++ archive_set_error(&a->archive, EINVAL, ++ "Damaged tar archive (bad header checksum)"); + /* If we've read some critical information (pax headers, etc) + * and _then_ see a bad header, we can't really recover. */ + if (eof_fatal) { +@@ -804,6 +815,8 @@ + switch(header->typeflag[0]) { + case 'A': /* Solaris tar ACL */ + if (seen_headers & seen_A_header) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Redundant 'A' header"); + return (ARCHIVE_FATAL); + } + seen_headers |= seen_A_header; +@@ -813,6 +826,8 @@ + break; + case 'g': /* POSIX-standard 'g' header. */ + if (seen_headers & seen_g_header) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Redundant 'g' header"); + return (ARCHIVE_FATAL); + } + seen_headers |= seen_g_header; +@@ -822,27 +837,41 @@ + break; + case 'K': /* Long link name (GNU tar, others) */ + if (seen_headers & seen_K_header) { +- return (ARCHIVE_FATAL); ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Damaged archive: Redundant 'K' headers may cause linknames to be incorrect"); ++ err = err_combine(err, ARCHIVE_WARN); + } + seen_headers |= seen_K_header; ++ a->archive.archive_format = ARCHIVE_FORMAT_TAR_GNUTAR; ++ a->archive.archive_format_name = "GNU tar format"; + err2 = header_gnu_longlink(a, tar, entry, h, unconsumed); + break; + case 'L': /* Long filename (GNU tar, others) */ + if (seen_headers & seen_L_header) { +- return (ARCHIVE_FATAL); ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Damaged archive: Redundant 'L' headers may cause filenames to be incorrect"); ++ err = err_combine(err, ARCHIVE_WARN); + } + seen_headers |= seen_L_header; ++ a->archive.archive_format = ARCHIVE_FORMAT_TAR_GNUTAR; ++ a->archive.archive_format_name = "GNU tar format"; + err2 = header_gnu_longname(a, tar, entry, h, unconsumed); + break; + case 'V': /* GNU volume header */ + if (seen_headers & seen_V_header) { +- return (ARCHIVE_FATAL); ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Redundant 'V' header"); ++ err = err_combine(err, ARCHIVE_WARN); + } + seen_headers |= seen_V_header; ++ a->archive.archive_format = ARCHIVE_FORMAT_TAR_GNUTAR; ++ a->archive.archive_format_name = "GNU tar format"; + err2 = header_volume(a, tar, entry, h, unconsumed); + break; + case 'X': /* Used by SUN tar; same as 'x'. */ + if (seen_headers & seen_x_header) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Redundant 'X'/'x' header"); + return (ARCHIVE_FATAL); + } + seen_headers |= seen_x_header; +@@ -853,6 +882,8 @@ + break; + case 'x': /* POSIX-standard 'x' header. */ + if (seen_headers & seen_x_header) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Redundant 'x' header"); + return (ARCHIVE_FATAL); + } + seen_headers |= seen_x_header; +@@ -904,6 +935,7 @@ + err = err_combine(err, err2); + /* Note: Other headers can appear again. */ + seen_headers = seen_mac_metadata; ++ tar_reset_header_state(tar); + break; + } + +@@ -1032,13 +1064,13 @@ + */ + static int + header_Solaris_ACL(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + const struct archive_entry_header_ustar *header; + struct archive_string acl_text; + size_t size; + int err, acl_type; +- int64_t type; ++ uint64_t type; + char *acl, *p; + + header = (const struct archive_entry_header_ustar *)h; +@@ -1075,7 +1107,7 @@ + } + p++; + } +- switch ((int)type & ~0777777) { ++ switch (type & ~0777777) { + case 01000000: + /* POSIX.1e ACL */ + acl_type = ARCHIVE_ENTRY_ACL_TYPE_ACCESS; +@@ -1086,8 +1118,8 @@ + break; + default: + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Malformed Solaris ACL attribute (unsupported type %o)", +- (int)type); ++ "Malformed Solaris ACL attribute (unsupported type %llu)", ++ (unsigned long long)type); + archive_string_free(&acl_text); + return (ARCHIVE_WARN); + } +@@ -1138,14 +1170,16 @@ + */ + static int + header_gnu_longlink(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + int err; + + struct archive_string linkpath; + archive_string_init(&linkpath); + err = read_body_to_string(a, tar, &linkpath, h, unconsumed); +- archive_entry_set_link(entry, linkpath.s); ++ if (err == ARCHIVE_OK) { ++ archive_entry_set_link(entry, linkpath.s); ++ } + archive_string_free(&linkpath); + return (err); + } +@@ -1170,7 +1204,7 @@ + */ + static int + header_gnu_longname(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + int err; + struct archive_string longname; +@@ -1191,7 +1225,7 @@ + */ + static int + header_volume(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + const struct archive_entry_header_ustar *header; + int64_t size, to_consume; +@@ -1217,7 +1251,7 @@ + static int + read_bytes_to_string(struct archive_read *a, + struct archive_string *as, size_t size, +- size_t *unconsumed) { ++ int64_t *unconsumed) { + const void *src; + + /* Fail if we can't make our buffer big enough. */ +@@ -1250,7 +1284,7 @@ + */ + static int + read_body_to_string(struct archive_read *a, struct tar *tar, +- struct archive_string *as, const void *h, size_t *unconsumed) ++ struct archive_string *as, const void *h, int64_t *unconsumed) + { + int64_t size; + const struct archive_entry_header_ustar *header; +@@ -1259,18 +1293,21 @@ + (void)tar; /* UNUSED */ + header = (const struct archive_entry_header_ustar *)h; + size = tar_atol(header->size, sizeof(header->size)); +- if (size > entry_limit) { ++ if (size < 0 || size > entry_limit) { ++ archive_set_error(&a->archive, EINVAL, ++ "Special header has invalid size: %lld", ++ (long long)size); + return (ARCHIVE_FATAL); + } +- if ((size > (int64_t)pathname_limit) || (size < 0)) { ++ if (size > (int64_t)pathname_limit) { + archive_string_empty(as); + int64_t to_consume = ((size + 511) & ~511); + if (to_consume != __archive_read_consume(a, to_consume)) { + return (ARCHIVE_FATAL); + } + archive_set_error(&a->archive, EINVAL, +- "Special header too large: %d > 1MiB", +- (int)size); ++ "Special header too large: %lld > 1MiB", ++ (long long)size); + return (ARCHIVE_WARN); + } + r = read_bytes_to_string(a, as, size, unconsumed); +@@ -1287,6 +1324,11 @@ + * allows header_old_tar and header_ustar + * to handle filenames differently, while still putting most of the + * common parsing into one place. ++ * ++ * This is called _after_ ustar, GNU tar, Schily, etc, special ++ * fields have already been parsed into the `tar` structure. ++ * So we can make final decisions here about how to reconcile ++ * size, mode, etc, information. + */ + static int + header_common(struct archive_read *a, struct tar *tar, +@@ -1308,34 +1350,73 @@ + archive_entry_set_perm(entry, + (mode_t)tar_atol(header->mode, sizeof(header->mode))); + } ++ ++ /* Set uid, gid, mtime if not already set */ + if (!archive_entry_uid_is_set(entry)) { + archive_entry_set_uid(entry, tar_atol(header->uid, sizeof(header->uid))); + } + if (!archive_entry_gid_is_set(entry)) { + archive_entry_set_gid(entry, tar_atol(header->gid, sizeof(header->gid))); + } ++ if (!archive_entry_mtime_is_set(entry)) { ++ archive_entry_set_mtime(entry, tar_atol(header->mtime, sizeof(header->mtime)), 0); ++ } ++ ++ /* Reconcile the size info. */ ++ /* First, how big is the file on disk? */ ++ if ((tar->size_fields & TAR_SIZE_GNU_SPARSE_REALSIZE) != 0) { ++ /* GNU sparse format 1.0 uses `GNU.sparse.realsize` ++ * to hold the size of the file on disk. */ ++ tar->disk_size = tar->GNU_sparse_realsize; ++ } else if ((tar->size_fields & TAR_SIZE_GNU_SPARSE_SIZE) != 0 ++ && (tar->sparse_gnu_major == 0)) { ++ /* GNU sparse format 0.0 and 0.1 use `GNU.sparse.size` ++ * to hold the size of the file on disk. */ ++ tar->disk_size = tar->GNU_sparse_size; ++ } else if ((tar->size_fields & TAR_SIZE_SCHILY_SPARSE_REALSIZE) != 0) { ++ tar->disk_size = tar->SCHILY_sparse_realsize; ++ } else if ((tar->size_fields & TAR_SIZE_PAX_SIZE) != 0) { ++ tar->disk_size = tar->pax_size; ++ } else { ++ /* There wasn't a suitable pax header, so use the ustar info */ ++ tar->disk_size = tar_atol(header->size, sizeof(header->size)); ++ } + +- tar->entry_bytes_remaining = tar_atol(header->size, sizeof(header->size)); ++ if (tar->disk_size < 0) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Tar entry has negative file size"); ++ return (ARCHIVE_FATAL); ++ } else if (tar->disk_size > entry_limit) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Tar entry size overflow"); ++ return (ARCHIVE_FATAL); ++ } else { ++ archive_entry_set_size(entry, tar->disk_size); ++ } ++ ++ /* Second, how big is the data in the archive? */ ++ if ((tar->size_fields & TAR_SIZE_GNU_SPARSE_SIZE) != 0 ++ && (tar->sparse_gnu_major == 1)) { ++ /* GNU sparse format 1.0 uses `GNU.sparse.size` ++ * to hold the size of the data in the archive. */ ++ tar->entry_bytes_remaining = tar->GNU_sparse_size; ++ } else if ((tar->size_fields & TAR_SIZE_PAX_SIZE) != 0) { ++ tar->entry_bytes_remaining = tar->pax_size; ++ } else { ++ tar->entry_bytes_remaining ++ = tar_atol(header->size, sizeof(header->size)); ++ } + if (tar->entry_bytes_remaining < 0) { + tar->entry_bytes_remaining = 0; + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Tar entry has negative size"); ++ "Tar entry has negative size"); + return (ARCHIVE_FATAL); +- } +- if (tar->entry_bytes_remaining > entry_limit) { ++ } else if (tar->entry_bytes_remaining > entry_limit) { + tar->entry_bytes_remaining = 0; + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Tar entry size overflow"); ++ "Tar entry size overflow"); + return (ARCHIVE_FATAL); + } +- if (!tar->realsize_override) { +- tar->realsize = tar->entry_bytes_remaining; +- } +- archive_entry_set_size(entry, tar->realsize); +- +- if (!archive_entry_mtime_is_set(entry)) { +- archive_entry_set_mtime(entry, tar_atol(header->mtime, sizeof(header->mtime)), 0); +- } + + /* Handle the tar type flag appropriately. */ + tar->filetype = header->typeflag[0]; +@@ -1597,7 +1678,7 @@ + */ + static int + read_mac_metadata_blob(struct archive_read *a, +- struct archive_entry *entry, size_t *unconsumed) ++ struct archive_entry *entry, int64_t *unconsumed) + { + int64_t size; + size_t msize; +@@ -1654,7 +1735,7 @@ + */ + static int + header_pax_global(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + const struct archive_entry_header_ustar *header; + int64_t size, to_consume; +@@ -1665,7 +1746,10 @@ + + header = (const struct archive_entry_header_ustar *)h; + size = tar_atol(header->size, sizeof(header->size)); +- if (size > entry_limit) { ++ if (size < 0 || size > entry_limit) { ++ archive_set_error(&a->archive, EINVAL, ++ "Special header has invalid size: %lld", ++ (long long)size); + return (ARCHIVE_FATAL); + } + to_consume = ((size + 511) & ~511); +@@ -1761,7 +1845,7 @@ + + static int + header_pax_extension(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + /* Sanity checks: The largest `x` body I've ever heard of was + * a little over 4MB. So I doubt there has ever been a +@@ -1812,8 +1896,8 @@ + return (ARCHIVE_FATAL); + } + archive_set_error(&a->archive, EINVAL, +- "Ignoring oversized pax extensions: %d > %d", +- (int)ext_size, (int)ext_size_limit); ++ "Ignoring oversized pax extensions: %lld > %lld", ++ (long long)ext_size, (long long)ext_size_limit); + return (ARCHIVE_WARN); + } + tar_flush_unconsumed(a, unconsumed); +@@ -1912,6 +1996,13 @@ + *unconsumed += p - attr_start; + tar_flush_unconsumed(a, unconsumed); + ++ if (value_length == 0) { ++ archive_set_error(&a->archive, EINVAL, ++ "Malformed pax attributes"); ++ *unconsumed += ext_size + ext_padding; ++ return (ARCHIVE_WARN); ++ } ++ + /* pax_attribute will consume value_length - 1 */ + r = pax_attribute(a, tar, entry, attr_name.s, archive_strlen(&attr_name), value_length - 1, unconsumed); + ext_size -= value_length - 1; +@@ -2121,8 +2212,9 @@ + if (value_length > acl_limit) { + __archive_read_consume(a, value_length); + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Unreasonably large ACL: %d > %d", +- (int)value_length, (int)acl_limit); ++ "Unreasonably large ACL: %llu > %llu", ++ (unsigned long long)value_length, ++ (unsigned long long)acl_limit); + return (ARCHIVE_WARN); + } + +@@ -2154,7 +2246,7 @@ + } + + static int +-pax_attribute_read_time(struct archive_read *a, size_t value_length, int64_t *ps, long *pn, size_t *unconsumed) { ++pax_attribute_read_time(struct archive_read *a, size_t value_length, int64_t *ps, long *pn, int64_t *unconsumed) { + struct archive_string as; + int r; + +@@ -2169,12 +2261,16 @@ + r = read_bytes_to_string(a, &as, value_length, unconsumed); + if (r < ARCHIVE_OK) { + archive_string_free(&as); ++ *ps = 0; ++ *pn = 0; + return (r); + } + + pax_time(as.s, archive_strlen(&as), ps, pn); + archive_string_free(&as); +- if (*ps < 0 || *ps == INT64_MAX) { ++ if (*ps == INT64_MIN) { ++ *ps = 0; ++ *pn = 0; + return (ARCHIVE_WARN); + } + return (ARCHIVE_OK); +@@ -2183,7 +2279,7 @@ + static int + pax_attribute_read_number(struct archive_read *a, size_t value_length, int64_t *result) { + struct archive_string as; +- size_t unconsumed = 0; ++ int64_t unconsumed = 0; + int r; + + if (value_length > 64) { +@@ -2197,6 +2293,7 @@ + tar_flush_unconsumed(a, &unconsumed); + if (r < ARCHIVE_OK) { + archive_string_free(&as); ++ *result = 0; + return (r); + } + +@@ -2223,7 +2320,7 @@ + */ + static int + pax_attribute(struct archive_read *a, struct tar *tar, struct archive_entry *entry, +- const char *key, size_t key_length, size_t value_length, size_t *unconsumed) ++ const char *key, size_t key_length, size_t value_length, int64_t *unconsumed) + { + int64_t t; + long n; +@@ -2289,10 +2386,13 @@ + } + else if (key_length == 4 && memcmp(key, "size", 4) == 0) { + /* GNU.sparse.size */ ++ /* This is either the size of stored entry OR the size of data on disk, ++ * depending on which GNU sparse format version is in use. ++ * Since pax attributes can be in any order, we may not actually ++ * know at this point how to interpret this. */ + if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) { +- tar->realsize = t; +- archive_entry_set_size(entry, tar->realsize); +- tar->realsize_override = 1; ++ tar->GNU_sparse_size = t; ++ tar->size_fields |= TAR_SIZE_GNU_SPARSE_SIZE; + } + return (err); + } +@@ -2304,8 +2404,9 @@ + tar->sparse_gnu_minor = 1; + if (value_length > sparse_map_limit) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Unreasonably large sparse map: %d > %d", +- (int)value_length, (int)sparse_map_limit); ++ "Unreasonably large sparse map: %llu > %llu", ++ (unsigned long long)value_length, ++ (unsigned long long)sparse_map_limit); + err = ARCHIVE_FAILED; + } else { + p = __archive_read_ahead(a, value_length, &bytes_read); +@@ -2360,11 +2461,10 @@ + return (err); + } + else if (key_length == 8 && memcmp(key, "realsize", 8) == 0) { +- /* GNU.sparse.realsize */ ++ /* GNU.sparse.realsize = size of file on disk */ + if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) { +- tar->realsize = t; +- archive_entry_set_size(entry, tar->realsize); +- tar->realsize_override = 1; ++ tar->GNU_sparse_realsize = t; ++ tar->size_fields |= TAR_SIZE_GNU_SPARSE_REALSIZE; + } + return (err); + } +@@ -2413,8 +2513,8 @@ + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "symlink type is very long" +- "(longest recognized value is 4 bytes, this is %d)", +- (int)value_length); ++ "(longest recognized value is 4 bytes, this is %llu)", ++ (unsigned long long)value_length); + err = ARCHIVE_WARN; + } + __archive_read_consume(a, value_length); +@@ -2450,8 +2550,9 @@ + if (value_length > xattr_limit) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Ignoring unreasonably large security.selinux attribute:" +- " %d > %d", +- (int)value_length, (int)xattr_limit); ++ " %llu > %llu", ++ (unsigned long long)value_length, ++ (unsigned long long)xattr_limit); + /* TODO: Should this be FAILED instead? */ + err = ARCHIVE_WARN; + } else { +@@ -2545,12 +2646,12 @@ + } + else if (key_length == 8 && memcmp(key, "realsize", 8) == 0) { + if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) { +- tar->realsize = t; +- tar->realsize_override = 1; +- archive_entry_set_size(entry, tar->realsize); ++ tar->SCHILY_sparse_realsize = t; ++ tar->size_fields |= TAR_SIZE_SCHILY_SPARSE_REALSIZE; + } + return (err); + } ++ /* TODO: Is there a SCHILY.sparse.size similar to GNU.sparse.size ? */ + else if (key_length > 6 && memcmp(key, "xattr.", 6) == 0) { + key_length -= 6; + key += 6; +@@ -2568,8 +2669,9 @@ + } + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Unreasonably large xattr: %d > %d", +- (int)value_length, (int)xattr_limit); ++ "Unreasonably large xattr: %llu > %llu", ++ (unsigned long long)value_length, ++ (unsigned long long)xattr_limit); + err = ARCHIVE_WARN; + } + __archive_read_consume(a, value_length); +@@ -2599,8 +2701,9 @@ + } + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "Unreasonably large sparse map: %d > %d", +- (int)value_length, (int)sparse_map_limit); ++ "Unreasonably large sparse map: %llu > %llu", ++ (unsigned long long)value_length, ++ (unsigned long long)sparse_map_limit); + err = ARCHIVE_FAILED; + } + __archive_read_consume(a, value_length); +@@ -2669,8 +2772,8 @@ + } + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +- "hdrcharset attribute is unreasonably large (%d bytes)", +- (int)value_length); ++ "hdrcharset attribute is unreasonably large (%llu bytes)", ++ (unsigned long long)value_length); + err = ARCHIVE_WARN; + } + __archive_read_consume(a, value_length); +@@ -2717,19 +2820,8 @@ + if (key_length == 4 && memcmp(key, "size", 4) == 0) { + /* "size" is the size of the data in the entry. */ + if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) { +- tar->entry_bytes_remaining = t; +- /* +- * The "size" pax header keyword always overrides the +- * "size" field in the tar header. +- * GNU.sparse.realsize, GNU.sparse.size and +- * SCHILY.realsize override this value. +- */ +- if (!tar->realsize_override) { +- archive_entry_set_size(entry, +- tar->entry_bytes_remaining); +- tar->realsize +- = tar->entry_bytes_remaining; +- } ++ tar->pax_size = t; ++ tar->size_fields |= TAR_SIZE_PAX_SIZE; + } + else if (t == INT64_MAX) { + /* Note: pax_attr_read_number returns INT64_MAX on overflow or < 0 */ +@@ -2768,7 +2860,9 @@ + + + /* +- * parse a decimal time value, which may include a fractional portion ++ * Parse a decimal time value, which may include a fractional portion ++ * ++ * Sets ps to INT64_MIN on error. + */ + static void + pax_time(const char *p, size_t length, int64_t *ps, long *pn) +@@ -2784,6 +2878,7 @@ + + if (length <= 0) { + *ps = 0; ++ *pn = 0; + return; + } + s = 0; +@@ -2797,8 +2892,9 @@ + digit = *p - '0'; + if (s > limit || + (s == limit && digit > last_digit_limit)) { +- s = INT64_MAX; +- break; ++ *ps = INT64_MIN; ++ *pn = 0; ++ return; + } + s = (s * 10) + digit; + ++p; +@@ -2829,7 +2925,7 @@ + */ + static int + header_gnutar(struct archive_read *a, struct tar *tar, +- struct archive_entry *entry, const void *h, size_t *unconsumed) ++ struct archive_entry *entry, const void *h, int64_t *unconsumed) + { + const struct archive_entry_header_gnutar *header; + int64_t t; +@@ -2841,11 +2937,6 @@ + * filename is stored as in old-style archives. + */ + +- /* Grab fields common to all tar variants. */ +- err = header_common(a, tar, entry, h); +- if (err == ARCHIVE_FATAL) +- return (err); +- + /* Copy filename over (to ensure null termination). */ + header = (const struct archive_entry_header_gnutar *)h; + const char *existing_pathname = archive_entry_pathname(entry); +@@ -2894,8 +2985,6 @@ + archive_entry_set_rdev(entry, 0); + } + +- tar->entry_padding = 0x1ff & (-tar->entry_bytes_remaining); +- + /* Grab GNU-specific fields. */ + if (!archive_entry_atime_is_set(entry)) { + t = tar_atol(header->atime, sizeof(header->atime)); +@@ -2909,10 +2998,10 @@ + } + + if (header->realsize[0] != 0) { +- tar->realsize ++ /* Treat as a synonym for the pax GNU.sparse.realsize attr */ ++ tar->GNU_sparse_realsize + = tar_atol(header->realsize, sizeof(header->realsize)); +- archive_entry_set_size(entry, tar->realsize); +- tar->realsize_override = 1; ++ tar->size_fields |= TAR_SIZE_GNU_SPARSE_REALSIZE; + } + + if (header->sparse[0].offset[0] != 0) { +@@ -2925,6 +3014,13 @@ + } + } + ++ /* Grab fields common to all tar variants. */ ++ err = header_common(a, tar, entry, h); ++ if (err == ARCHIVE_FATAL) ++ return (err); ++ ++ tar->entry_padding = 0x1ff & (-tar->entry_bytes_remaining); ++ + return (err); + } + +@@ -2980,7 +3076,7 @@ + + static int + gnu_sparse_old_read(struct archive_read *a, struct tar *tar, +- const struct archive_entry_header_gnutar *header, size_t *unconsumed) ++ const struct archive_entry_header_gnutar *header, int64_t *unconsumed) + { + ssize_t bytes_read; + const void *data; +@@ -3104,8 +3200,7 @@ + * it's not possible to support both variants. This code supports + * the later variant at the expense of not supporting the former. + * +- * This variant also replaced GNU.sparse.size with GNU.sparse.realsize +- * and introduced the GNU.sparse.major/GNU.sparse.minor attributes. ++ * This variant also introduced the GNU.sparse.major/GNU.sparse.minor attributes. + */ + + /* +@@ -3115,7 +3210,7 @@ + */ + static int64_t + gnu_sparse_10_atol(struct archive_read *a, struct tar *tar, +- int64_t *remaining, size_t *unconsumed) ++ int64_t *remaining, int64_t *unconsumed) + { + int64_t l, limit, last_digit_limit; + const char *p; +@@ -3160,12 +3255,10 @@ + * Returns length (in bytes) of the sparse data description + * that was read. + */ +-static ssize_t +-gnu_sparse_10_read(struct archive_read *a, struct tar *tar, size_t *unconsumed) ++static int64_t ++gnu_sparse_10_read(struct archive_read *a, struct tar *tar, int64_t *unconsumed) + { +- ssize_t bytes_read; +- int entries; +- int64_t offset, size, to_skip, remaining; ++ int64_t bytes_read, entries, offset, size, to_skip, remaining; + + /* Clear out the existing sparse list. */ + gnu_clear_sparse_list(tar); +@@ -3173,7 +3266,7 @@ + remaining = tar->entry_bytes_remaining; + + /* Parse entries. */ +- entries = (int)gnu_sparse_10_atol(a, tar, &remaining, unconsumed); ++ entries = gnu_sparse_10_atol(a, tar, &remaining, unconsumed); + if (entries < 0) + return (ARCHIVE_FATAL); + /* Parse the individual entries. */ +@@ -3191,14 +3284,14 @@ + } + /* Skip rest of block... */ + tar_flush_unconsumed(a, unconsumed); +- bytes_read = (ssize_t)(tar->entry_bytes_remaining - remaining); ++ bytes_read = tar->entry_bytes_remaining - remaining; + to_skip = 0x1ff & -bytes_read; + /* Fail if tar->entry_bytes_remaing would get negative */ + if (to_skip > remaining) + return (ARCHIVE_FATAL); + if (to_skip != __archive_read_consume(a, to_skip)) + return (ARCHIVE_FATAL); +- return ((ssize_t)(bytes_read + to_skip)); ++ return (bytes_read + to_skip); + } + + /* +@@ -3408,7 +3501,7 @@ + */ + static ssize_t + readline(struct archive_read *a, struct tar *tar, const char **start, +- ssize_t limit, size_t *unconsumed) ++ ssize_t limit, int64_t *unconsumed) + { + ssize_t bytes_read; + ssize_t total_size = 0; +--- contrib/libarchive/libarchive/archive_read_support_format_warc.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_warc.c +@@ -386,7 +386,8 @@ + case LAST_WT: + default: + /* consume the content and start over */ +- _warc_skip(a); ++ if (_warc_skip(a) < 0) ++ return (ARCHIVE_FATAL); + goto start_over; + } + return (ARCHIVE_OK); +@@ -439,7 +440,9 @@ + { + struct warc_s *w = a->format->data; + +- __archive_read_consume(a, w->cntlen + 4U/*\r\n\r\n separator*/); ++ if (__archive_read_consume(a, w->cntlen) < 0 || ++ __archive_read_consume(a, 4U/*\r\n\r\n separator*/) < 0) ++ return (ARCHIVE_FATAL); + w->cntlen = 0U; + w->cntoff = 0U; + return (ARCHIVE_OK); +--- contrib/libarchive/libarchive/archive_read_support_format_xar.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_xar.c +@@ -36,6 +36,10 @@ + #include <bsdxml.h> + #elif HAVE_EXPAT_H + #include <expat.h> ++#elif HAVE_XMLLITE_H ++#include <objidl.h> ++#include <initguid.h> ++#include <xmllite.h> + #endif + #ifdef HAVE_BZLIB_H + #include <bzlib.h> +@@ -56,12 +60,13 @@ + #include "archive_read_private.h" + + #if (!defined(HAVE_LIBXML_XMLREADER_H) && \ +- !defined(HAVE_BSDXML_H) && !defined(HAVE_EXPAT_H)) ||\ ++ !defined(HAVE_BSDXML_H) && !defined(HAVE_EXPAT_H) && \ ++ !defined(HAVE_XMLLITE_H)) ||\ + !defined(HAVE_ZLIB_H) || \ + !defined(ARCHIVE_HAS_MD5) || !defined(ARCHIVE_HAS_SHA1) + /* + * xar needs several external libraries. +- * o libxml2 or expat --- XML parser ++ * o libxml2, expat or (Windows only) xmllite --- XML parser + * o openssl or MD5/SHA1 hash function + * o zlib + * o bzlib2 (option) +@@ -438,6 +443,8 @@ + static void expat_end_cb(void *, const XML_Char *); + static void expat_data_cb(void *, const XML_Char *, int); + static int expat_read_toc(struct archive_read *); ++#elif defined(HAVE_XMLLITE_H) ++static int xmllite_read_toc(struct archive_read *); + #endif + + int +@@ -589,6 +596,8 @@ + r = xml2_read_toc(a); + #elif defined(HAVE_BSDXML_H) || defined(HAVE_EXPAT_H) + r = expat_read_toc(a); ++#elif defined(HAVE_XMLLITE_H) ++ r = xmllite_read_toc(a); + #endif + if (r != ARCHIVE_OK) + return (r); +@@ -1110,17 +1119,17 @@ + while (bsize && psize > 1) { + unsigned char x; + +- if (p[0] >= 'a' && p[0] <= 'z') ++ if (p[0] >= 'a' && p[0] <= 'f') + x = (p[0] - 'a' + 0x0a) << 4; +- else if (p[0] >= 'A' && p[0] <= 'Z') ++ else if (p[0] >= 'A' && p[0] <= 'F') + x = (p[0] - 'A' + 0x0a) << 4; + else if (p[0] >= '0' && p[0] <= '9') + x = (p[0] - '0') << 4; + else + return (-1); +- if (p[1] >= 'a' && p[1] <= 'z') ++ if (p[1] >= 'a' && p[1] <= 'f') + x |= p[1] - 'a' + 0x0a; +- else if (p[1] >= 'A' && p[1] <= 'Z') ++ else if (p[1] >= 'A' && p[1] <= 'F') + x |= p[1] - 'A' + 0x0a; + else if (p[1] >= '0' && p[1] <= '9') + x |= p[1] - '0'; +@@ -1745,15 +1754,6 @@ + #if defined(HAVE_LZMA_H) && defined(HAVE_LIBLZMA) + if (xar->lzstream_valid) + lzma_end(&(xar->lzstream)); +-#elif defined(HAVE_LZMA_H) && defined(HAVE_LIBLZMA) +- if (xar->lzstream_valid) { +- if (lzmadec_end(&(xar->lzstream)) != LZMADEC_OK) { +- archive_set_error(&a->archive, +- ARCHIVE_ERRNO_MISC, +- "Failed to clean up lzmadec decompressor"); +- r = ARCHIVE_FATAL; +- } +- } + #endif + return (r); + } +@@ -2070,7 +2070,7 @@ + if (xar->file->link > 0) + if (add_link(a, xar, xar->file) != ARCHIVE_OK) { + return (ARCHIVE_FATAL); +- }; ++ } + } + } + } +@@ -2851,7 +2851,6 @@ + xar->file->has |= HAS_XATTR; + archive_strncpy(&(xar->xattr->fstype), s, len); + break; +- break; + case FILE_ACL_DEFAULT: + case FILE_ACL_ACCESS: + case FILE_ACL_APPLEEXTENDED: +@@ -3343,6 +3342,326 @@ + XML_ParserFree(parser); + return (ud.state); + } +-#endif /* defined(HAVE_BSDXML_H) || defined(HAVE_EXPAT_H) */ ++ ++#elif defined(HAVE_XMLLITE_H) ++ ++struct ArchiveStreamAdapter { ++ const ISequentialStreamVtbl *lpVtbl; /* see asaStaticVtable */ ++ struct archive_read *a; ++}; ++ ++static HRESULT STDMETHODCALLTYPE ++asaQueryInterface(ISequentialStream *this, REFIID riid, void **ppv) ++{ ++ if (!IsEqualIID(riid, &IID_ISequentialStream)) { ++ *ppv = NULL; ++ return E_NOINTERFACE; ++ } ++ *ppv = this; ++ return S_OK; ++} ++ ++/* ++ * We can dispense with reference counting as we tightly manage the lifetime ++ * of an ArchiveStreamAdapter. ++ */ ++static ULONG STDMETHODCALLTYPE ++asaAddRef(ISequentialStream *this) ++{ ++ (void)this; /* UNUSED */ ++ return ULONG_MAX; ++} ++ ++static ULONG STDMETHODCALLTYPE ++asaRelease(ISequentialStream *this) ++{ ++ (void)this; /* UNUSED */ ++ return ULONG_MAX; ++} ++ ++static HRESULT STDMETHODCALLTYPE ++asaRead(ISequentialStream *this, void *pv, ULONG cb, ULONG *pcbRead) ++{ ++ struct ArchiveStreamAdapter *asa = (struct ArchiveStreamAdapter *)this; ++ struct archive_read *a; ++ struct xar *xar; ++ const void *d = pv; ++ size_t outbytes = cb; ++ size_t used = 0; ++ int r; ++ ++ a = asa->a; ++ xar = (struct xar *)(a->format->data); ++ ++ *pcbRead = 0; ++ ++ if (xar->toc_remaining <= 0) ++ return cb != 0 ? S_FALSE : S_OK; ++ ++ r = rd_contents(a, &d, &outbytes, &used, xar->toc_remaining); ++ if (r != ARCHIVE_OK) ++ return E_FAIL; ++ __archive_read_consume(a, used); ++ xar->toc_remaining -= used; ++ xar->offset += used; ++ xar->toc_total += outbytes; ++ PRINT_TOC(pv, outbytes); ++ ++ *pcbRead = (ULONG)outbytes; ++ return outbytes < cb ? S_FALSE : S_OK; ++} ++ ++static HRESULT STDMETHODCALLTYPE ++asaWrite(ISequentialStream *this, const void *pv, ULONG cb, ULONG *pcbWritten) ++{ ++ (void)this; /* UNUSED */ ++ (void)pv; /* UNUSED */ ++ (void)cb; /* UNUSED */ ++ if (!pcbWritten) return E_INVALIDARG; ++ *pcbWritten = 0; ++ return E_NOTIMPL; ++} ++ ++static const ISequentialStreamVtbl asaStaticVtable = { ++ .QueryInterface = asaQueryInterface, ++ .AddRef = asaAddRef, ++ .Release = asaRelease, ++ .Read = asaRead, ++ .Write = asaWrite, ++}; ++ ++static int ++xmllite_create_stream_adapter(struct archive_read *a, ++ struct ArchiveStreamAdapter **pasa) ++{ ++ struct ArchiveStreamAdapter *asa = ++ calloc(1, sizeof(struct ArchiveStreamAdapter)); ++ if (!asa) { ++ archive_set_error(&(a->archive), ENOMEM, "Out of memory"); ++ return (ARCHIVE_FATAL); ++ } ++ asa->lpVtbl = &asaStaticVtable; ++ asa->a = a; ++ *pasa = asa; ++ return (ARCHIVE_OK); ++} ++ ++typedef HRESULT(STDMETHODCALLTYPE *xmllite_wstr_func)(IXmlReader *, LPCWSTR *, ++ UINT *); ++ ++/* ++ * Returns an narrow-char archive_string in *as after calling ++ * the wide-char COM API callee() on the XmlReader reader. ++ * Sets an appropriate error on the archive if it fails. ++ */ ++static int ++xmllite_call_return_as(struct archive_read *a, struct archive_string *as, ++ IXmlReader *reader, xmllite_wstr_func callee) ++{ ++ LPCWSTR wcs; ++ UINT wlen; ++ ++ if (FAILED(callee(reader, &wcs, &wlen))) { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "Failed to read XML data"); ++ return (ARCHIVE_FATAL); ++ } ++ ++ archive_string_init(as); ++ if (archive_string_append_from_wcs(as, wcs, (size_t)wlen) < 0) { ++ archive_string_free(as); ++ archive_set_error(&(a->archive), ENOMEM, "Out of memory"); ++ return (ARCHIVE_FATAL); ++ } ++ ++ return (ARCHIVE_OK); ++} ++ ++static char * ++xmllite_call_return_mbs(struct archive_read *a, IXmlReader *reader, ++ xmllite_wstr_func callee) ++{ ++ char *ret; ++ struct archive_string as; ++ ++ if (xmllite_call_return_as(a, &as, reader, callee) < 0) { ++ return NULL; ++ } ++ ++ ret = strdup(as.s); ++ archive_string_free(&as); ++ if (ret == NULL) { ++ archive_set_error(&(a->archive), ENOMEM, "Out of memory"); ++ return NULL; ++ } ++ return ret; ++} ++ ++static int ++xmllite_xmlattr_setup(struct archive_read *a, ++ struct xmlattr_list *list, IXmlReader *reader) ++{ ++ struct xmlattr *attr; ++ HRESULT hr; ++ ++ list->first = NULL; ++ list->last = &(list->first); ++ hr = reader->lpVtbl->MoveToFirstAttribute(reader); ++ /* Contrary to other checks, we're not using SUCCEEDED/FAILED ++ * because MoveToNextAttribute returns *S_FALSE* (success!) ++ * when it runs out of attributes. ++ */ ++ while (hr == S_OK) { ++ /* Attributes implied as being default by the DTD are ignored */ ++ if (reader->lpVtbl->IsDefault(reader)) ++ continue; ++ ++ attr = malloc(sizeof*(attr)); ++ if (attr == NULL) { ++ archive_set_error(&(a->archive), ENOMEM, ++ "Out of memory"); ++ return (ARCHIVE_FATAL); ++ } ++ ++ attr->name = xmllite_call_return_mbs(a, reader, ++ reader->lpVtbl->GetLocalName); ++ if (attr->name == NULL) { ++ free(attr); ++ /* xmllite_call_return_mbs sets an appropriate error */ ++ return (ARCHIVE_FATAL); ++ } ++ ++ attr->value = xmllite_call_return_mbs(a, reader, ++ reader->lpVtbl->GetValue); ++ if (attr->value == NULL) { ++ free(attr->name); ++ free(attr); ++ /* xmllite_call_return_mbs sets an appropriate error */ ++ return (ARCHIVE_FATAL); ++ } ++ ++ attr->next = NULL; ++ *list->last = attr; ++ list->last = &(attr->next); ++ hr = reader->lpVtbl->MoveToNextAttribute(reader); ++ } ++ ++ if (FAILED(hr)) { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_FILE_FORMAT, ++ "Failed to parse XML document"); ++ return (ARCHIVE_FAILED); ++ } ++ ++ return (ARCHIVE_OK); ++} ++ ++static int ++xmllite_read_toc(struct archive_read *a) ++{ ++ struct ArchiveStreamAdapter *asa = NULL; ++ char *name; ++ struct archive_string as; ++ BOOL empty; ++ XmlNodeType type; ++ struct xmlattr_list list; ++ IXmlReader *reader = NULL; ++ int r = ARCHIVE_OK; ++ ++ if ((r = xmllite_create_stream_adapter(a, &asa)) < 0) { ++ goto out; ++ } ++ ++ if (FAILED(CreateXmlReader(&IID_IXmlReader, (void **)&reader, NULL))) { ++ r = ARCHIVE_FATAL; ++ goto out; ++ } ++ ++ if (FAILED(reader->lpVtbl->SetInput(reader, (IUnknown *)asa))) { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "Failed to prepare XML stream"); ++ r = ARCHIVE_FATAL; ++ goto out; ++ } ++ ++ while (!reader->lpVtbl->IsEOF(reader)) { ++ if (FAILED(reader->lpVtbl->Read(reader, &type))) { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "Failed to read XML stream"); ++ r = ARCHIVE_FATAL; ++ goto out; ++ } ++ ++ switch (type) { ++ case XmlNodeType_Element: ++ empty = reader->lpVtbl->IsEmptyElement(reader); ++ ++ name = xmllite_call_return_mbs(a, reader, ++ reader->lpVtbl->GetLocalName); ++ if (name == NULL) { ++ /* xmllite_call_return_mbs sets an appropriate error */ ++ r = ARCHIVE_FATAL; ++ goto out; ++ } ++ ++ r = xmllite_xmlattr_setup(a, &list, reader); ++ if (r == ARCHIVE_OK) { ++ r = xml_start(a, name, &list); ++ } ++ xmlattr_cleanup(&list); ++ if (r == ARCHIVE_OK && empty) { ++ xml_end(a, name); ++ } ++ ++ free(name); ++ if (r != ARCHIVE_OK) { ++ goto out; ++ } ++ ++ break; ++ case XmlNodeType_EndElement: ++ name = xmllite_call_return_mbs(a, reader, ++ reader->lpVtbl->GetLocalName); ++ if (name == NULL) { ++ /* xmllite_call_return_mbs sets an appropriate error */ ++ r = ARCHIVE_FATAL; ++ goto out; ++ } ++ ++ xml_end(a, name); ++ free(name); ++ break; ++ case XmlNodeType_Text: ++ r = xmllite_call_return_as(a, &as, reader, ++ reader->lpVtbl->GetValue); ++ if (r != ARCHIVE_OK) { ++ /* xmllite_call_return_as sets an appropriate error */ ++ goto out; ++ } ++ ++ xml_data(a, as.s, (int)archive_strlen(&as)); ++ archive_string_free(&as); ++ ++ case XmlNodeType_None: ++ case XmlNodeType_Attribute: ++ case XmlNodeType_CDATA: ++ case XmlNodeType_ProcessingInstruction: ++ case XmlNodeType_Comment: ++ case XmlNodeType_DocumentType: ++ case XmlNodeType_Whitespace: ++ case XmlNodeType_XmlDeclaration: ++ default: ++ break; ++ } ++ } ++ ++out: ++ if (reader) ++ reader->lpVtbl->Release(reader); ++ ++ free(asa); ++ ++ return r; ++} ++#endif /* defined(XMLLITE) */ + + #endif /* Support xar format */ +--- contrib/libarchive/libarchive/archive_read_support_format_zip.c.orig ++++ contrib/libarchive/libarchive/archive_read_support_format_zip.c +@@ -71,6 +71,7 @@ + #include "archive_private.h" + #include "archive_rb.h" + #include "archive_read_private.h" ++#include "archive_time_private.h" + #include "archive_ppmd8_private.h" + + #ifndef HAVE_ZLIB_H +@@ -465,27 +466,6 @@ + return "??"; + } + +-/* Convert an MSDOS-style date/time into Unix-style time. */ +-static time_t +-zip_time(const char *p) +-{ +- int msTime, msDate; +- struct tm ts; +- +- msTime = (0xff & (unsigned)p[0]) + 256 * (0xff & (unsigned)p[1]); +- msDate = (0xff & (unsigned)p[2]) + 256 * (0xff & (unsigned)p[3]); +- +- memset(&ts, 0, sizeof(ts)); +- ts.tm_year = ((msDate >> 9) & 0x7f) + 80; /* Years since 1900. */ +- ts.tm_mon = ((msDate >> 5) & 0x0f) - 1; /* Month number. */ +- ts.tm_mday = msDate & 0x1f; /* Day of month. */ +- ts.tm_hour = (msTime >> 11) & 0x1f; +- ts.tm_min = (msTime >> 5) & 0x3f; +- ts.tm_sec = (msTime << 1) & 0x3e; +- ts.tm_isdst = -1; +- return mktime(&ts); +-} +- + /* + * The extra data is stored as a list of + * id1+size1+data1 + id2+size2+data2 ... +@@ -978,7 +958,7 @@ + } + zip->init_decryption = (zip_entry->zip_flags & ZIP_ENCRYPTED); + zip_entry->compression = (char)archive_le16dec(p + 8); +- zip_entry->mtime = zip_time(p + 10); ++ zip_entry->mtime = dos_to_unix(archive_le32dec(p + 10)); + zip_entry->crc32 = archive_le32dec(p + 14); + if (zip_entry->zip_flags & ZIP_LENGTH_AT_END) + zip_entry->decdat = p[11]; +@@ -2134,15 +2114,15 @@ + + if(order < 2 || restore_method > 2) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, +- "Invalid parameter set in PPMd8 stream (order=%" PRId32 ", " +- "restore=%" PRId32 ")", order, restore_method); ++ "Invalid parameter set in PPMd8 stream (order=%" PRIu32 ", " ++ "restore=%" PRIu32 ")", order, restore_method); + return (ARCHIVE_FAILED); + } + + /* Allocate the memory needed to properly decompress the file. */ + if(!__archive_ppmd8_functions.Ppmd8_Alloc(&zip->ppmd8, mem << 20)) { + archive_set_error(&a->archive, ENOMEM, +- "Unable to allocate memory for PPMd8 stream: %" PRId32 " bytes", ++ "Unable to allocate memory for PPMd8 stream: %" PRIu32 " bytes", + mem << 20); + return (ARCHIVE_FATAL); + } +@@ -3168,7 +3148,6 @@ + /* We can't decompress this entry, but we will + * be able to skip() it and try the next entry. */ + return (ARCHIVE_FAILED); +- break; + } + if (r != ARCHIVE_OK) + return (r); +@@ -3987,7 +3966,7 @@ + zip->has_encrypted_entries = 1; + } + zip_entry->compression = (char)archive_le16dec(p + 10); +- zip_entry->mtime = zip_time(p + 12); ++ zip_entry->mtime = dos_to_unix(archive_le32dec(p + 12)); + zip_entry->crc32 = archive_le32dec(p + 16); + if (zip_entry->zip_flags & ZIP_LENGTH_AT_END) + zip_entry->decdat = p[13]; +--- contrib/libarchive/libarchive/archive_string.c.orig ++++ contrib/libarchive/libarchive/archive_string.c +@@ -154,7 +154,6 @@ + struct archive_string_conv *); + static int archive_string_append_from_wcs_in_codepage(struct archive_string *, + const wchar_t *, size_t, struct archive_string_conv *); +-static int is_big_endian(void); + static int strncat_in_codepage(struct archive_string *, const void *, + size_t, struct archive_string_conv *); + static int win_strncat_from_utf16be(struct archive_string *, const void *, +@@ -199,6 +198,29 @@ + static int archive_string_append_unicode(struct archive_string *, + const void *, size_t, struct archive_string_conv *); + ++#if defined __LITTLE_ENDIAN__ ++ #define IS_BIG_ENDIAN 0 ++#elif defined __BIG_ENDIAN__ ++ #define IS_BIG_ENDIAN 1 ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) ++ #define IS_BIG_ENDIAN 0 ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) ++ #define IS_BIG_ENDIAN 1 ++#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(_M_ARM64)) ++ #define IS_BIG_ENDIAN 0 ++#else ++// Detect endianness at runtime. ++static int ++is_big_endian(void) ++{ ++ uint16_t d = 1; ++ ++ return (archive_be16dec(&d) == 1); ++} ++ ++#define IS_BIG_ENDIAN is_big_endian() ++#endif ++ + static struct archive_string * + archive_string_append(struct archive_string *as, const char *p, size_t s) + { +@@ -450,7 +472,8 @@ + archive_wstring_append_from_mbs_in_codepage(struct archive_wstring *dest, + const char *s, size_t length, struct archive_string_conv *sc) + { +- int count, ret = 0; ++ int ret = 0; ++ size_t count; + UINT from_cp; + + if (sc != NULL) +@@ -472,7 +495,7 @@ + ws = dest->s + dest->length; + mp = (const unsigned char *)s; + count = 0; +- while (count < (int)length && *mp) { ++ while (count < length && *mp) { + *ws++ = (wchar_t)*mp++; + count++; + } +@@ -485,7 +508,7 @@ + struct archive_string u16; + int saved_flag = sc->flag;/* save current flag. */ + +- if (is_big_endian()) ++ if (IS_BIG_ENDIAN) + sc->flag |= SCONV_TO_UTF16BE; + else + sc->flag |= SCONV_TO_UTF16LE; +@@ -495,16 +518,16 @@ + * UTF-16BE/LE NFD ===> UTF-16 NFC + * UTF-16BE/LE NFC ===> UTF-16 NFD + */ +- count = (int)utf16nbytes(s, length); ++ count = utf16nbytes(s, length); + } else { + /* + * UTF-8 NFD ===> UTF-16 NFC + * UTF-8 NFC ===> UTF-16 NFD + */ +- count = (int)mbsnbytes(s, length); ++ count = mbsnbytes(s, length); + } + u16.s = (char *)dest->s; +- u16.length = dest->length << 1;; ++ u16.length = dest->length << 1; + u16.buffer_length = dest->buffer_length; + if (sc->flag & SCONV_NORMALIZATION_C) + ret = archive_string_normalize_C(&u16, s, count, sc); +@@ -516,23 +539,23 @@ + sc->flag = saved_flag;/* restore the saved flag. */ + return (ret); + } else if (sc != NULL && (sc->flag & SCONV_FROM_UTF16)) { +- count = (int)utf16nbytes(s, length); ++ count = utf16nbytes(s, length); + count >>= 1; /* to be WCS length */ + /* Allocate memory for WCS. */ + if (NULL == archive_wstring_ensure(dest, + dest->length + count + 1)) + return (-1); + wmemcpy(dest->s + dest->length, (const wchar_t *)s, count); +- if ((sc->flag & SCONV_FROM_UTF16BE) && !is_big_endian()) { ++ if ((sc->flag & SCONV_FROM_UTF16BE) && !IS_BIG_ENDIAN) { + uint16_t *u16 = (uint16_t *)(dest->s + dest->length); +- int b; ++ size_t b; + for (b = 0; b < count; b++) { + uint16_t val = archive_le16dec(u16+b); + archive_be16enc(u16+b, val); + } +- } else if ((sc->flag & SCONV_FROM_UTF16LE) && is_big_endian()) { ++ } else if ((sc->flag & SCONV_FROM_UTF16LE) && IS_BIG_ENDIAN) { + uint16_t *u16 = (uint16_t *)(dest->s + dest->length); +- int b; ++ size_t b; + for (b = 0; b < count; b++) { + uint16_t val = archive_be16dec(u16+b); + archive_le16enc(u16+b, val); +@@ -556,21 +579,28 @@ + + buffsize = dest->length + length + 1; + do { ++ int r; ++ ++ /* MultiByteToWideChar is limited to int. */ ++ if (length > (size_t)INT_MAX || ++ (dest->buffer_length >> 1) > (size_t)INT_MAX) ++ return (-1); + /* Allocate memory for WCS. */ + if (NULL == archive_wstring_ensure(dest, buffsize)) + return (-1); + /* Convert MBS to WCS. */ +- count = MultiByteToWideChar(from_cp, ++ r = MultiByteToWideChar(from_cp, + mbflag, s, (int)length, dest->s + dest->length, + (int)(dest->buffer_length >> 1) -1); +- if (count == 0 && ++ if (r == 0 && + GetLastError() == ERROR_INSUFFICIENT_BUFFER) { + /* Expand the WCS buffer. */ + buffsize = dest->buffer_length << 1; + continue; + } +- if (count == 0 && length != 0) ++ if (r == 0 && length != 0) + ret = -1; ++ count = (size_t)r; + break; + } while (1); + } +@@ -679,9 +709,9 @@ + const wchar_t *ws, size_t len, struct archive_string_conv *sc) + { + BOOL defchar_used, *dp; +- int count, ret = 0; ++ int ret = 0; + UINT to_cp; +- int wslen = (int)len; ++ size_t count, wslen = len; + + if (sc != NULL) + to_cp = sc->to_cp; +@@ -720,13 +750,13 @@ + count = 0; + defchar_used = 0; + if (sc->flag & SCONV_TO_UTF16BE) { +- while (count < (int)len && *ws) { ++ while (count < len && *ws) { + archive_be16enc(u16+count, *ws); + ws++; + count++; + } + } else { +- while (count < (int)len && *ws) { ++ while (count < len && *ws) { + archive_le16enc(u16+count, *ws); + ws++; + count++; +@@ -739,15 +769,21 @@ + archive_string_ensure(as, as->length + len * 2 + 1)) + return (-1); + do { ++ int r; ++ + defchar_used = 0; + if (to_cp == CP_UTF8 || sc == NULL) + dp = NULL; + else + dp = &defchar_used; +- count = WideCharToMultiByte(to_cp, 0, ws, wslen, ++ /* WideCharToMultiByte is limited to int. */ ++ if (as->buffer_length - as->length - 1 > (size_t)INT_MAX || ++ wslen > (size_t)INT_MAX) ++ return (-1); ++ r = WideCharToMultiByte(to_cp, 0, ws, (int)wslen, + as->s + as->length, +- (int)as->buffer_length - (int)as->length - 1, NULL, dp); +- if (count == 0 && ++ (int)(as->buffer_length - as->length - 1), NULL, dp); ++ if (r == 0 && + GetLastError() == ERROR_INSUFFICIENT_BUFFER) { + /* Expand the MBS buffer and retry. */ + if (NULL == archive_string_ensure(as, +@@ -755,8 +791,9 @@ + return (-1); + continue; + } +- if (count == 0) ++ if (r == 0) + ret = -1; ++ count = (size_t)r; + break; + } while (1); + } +@@ -2032,7 +2069,7 @@ + char *outp; + size_t avail, bs; + int return_value = 0; /* success */ +- int to_size, from_size; ++ size_t to_size, from_size; + + if (sc->flag & SCONV_TO_UTF16) + to_size = 2; +@@ -2051,7 +2088,7 @@ + remaining = length; + outp = as->s + as->length; + avail = as->buffer_length - as->length - to_size; +- while (remaining >= (size_t)from_size) { ++ while (remaining >= from_size) { + size_t result = iconv(cd, &itp, &remaining, &outp, &avail); + + if (result != (size_t)-1) +@@ -2174,6 +2211,8 @@ + if (codepage != CP_UTF8) + mbflag |= MB_PRECOMPOSED; + ++ if (n > (size_t)INT_MAX) ++ return (-1); /* Invalid */ + if (MultiByteToWideChar(codepage, mbflag, p, (int)n, NULL, 0) == 0) + return (-1); /* Invalid */ + return (0); /* Okay */ +@@ -2327,7 +2366,7 @@ + cnt = utf8_count[ch]; + + /* Invalid sequence or there are not plenty bytes. */ +- if ((int)n < cnt) { ++ if (n < (size_t)cnt) { + cnt = (int)n; + for (i = 1; i < cnt; i++) { + if ((s[i] & 0xc0) != 0x80) { +@@ -2396,7 +2435,7 @@ + cnt = 6; + else + cnt = 1; +- if ((int)n < cnt) ++ if (n < (size_t)cnt) + cnt = (int)n; + for (i = 1; i < cnt; i++) { + if ((s[i] & 0xc0) != 0x80) { +@@ -2612,7 +2651,7 @@ + } else { + if (remaining < 2) + return (0); +- archive_be16enc(utf16, uc); ++ archive_be16enc(utf16, (uint16_t)uc); + return (2); + } + } +@@ -2634,7 +2673,7 @@ + } else { + if (remaining < 2) + return (0); +- archive_le16enc(utf16, uc); ++ archive_le16enc(utf16, (uint16_t)uc); + return (2); + } + } +@@ -3499,10 +3538,9 @@ + { + struct archive_string tmp; + const char *u16; +- int ll; + BOOL defchar; + char *mbs; +- size_t mbs_size, b; ++ size_t mbs_size, b, ll; + int ret = 0; + + bytes &= ~1; +@@ -3538,7 +3576,7 @@ + + archive_string_init(&tmp); + if (be) { +- if (is_big_endian()) { ++ if (IS_BIG_ENDIAN) { + u16 = _p; + } else { + if (archive_string_ensure(&tmp, bytes+2) == NULL) +@@ -3551,7 +3589,7 @@ + u16 = tmp.s; + } + } else { +- if (!is_big_endian()) { ++ if (!IS_BIG_ENDIAN) { + u16 = _p; + } else { + if (archive_string_ensure(&tmp, bytes+2) == NULL) +@@ -3566,18 +3604,24 @@ + } + + do { ++ int r; + defchar = 0; +- ll = WideCharToMultiByte(sc->to_cp, 0, ++ /* WideCharToMultiByte is limited to int. */ ++ if (bytes > (size_t)INT_MAX || mbs_size > (size_t)INT_MAX) ++ return (-1); ++ r = WideCharToMultiByte(sc->to_cp, 0, + (LPCWSTR)u16, (int)bytes>>1, mbs, (int)mbs_size, + NULL, &defchar); + /* Exit loop if we succeeded */ +- if (ll != 0 || ++ if (r != 0 || + GetLastError() != ERROR_INSUFFICIENT_BUFFER) { ++ ll = (size_t)r; + break; + } + /* Else expand buffer and loop to try again. */ +- ll = WideCharToMultiByte(sc->to_cp, 0, ++ r = WideCharToMultiByte(sc->to_cp, 0, + (LPCWSTR)u16, (int)bytes, NULL, 0, NULL, NULL); ++ ll = (size_t)r; + if (archive_string_ensure(as, ll +1) == NULL) + return (-1); + mbs = as->s + as->length; +@@ -3605,14 +3649,6 @@ + return (win_strncat_from_utf16(as, _p, bytes, sc, 0)); + } + +-static int +-is_big_endian(void) +-{ +- uint16_t d = 1; +- +- return (archive_be16dec(&d) == 1); +-} +- + /* + * Convert a current locale string to UTF-16BE/LE and copy the result. + * Return -1 if conversion fails. +@@ -3651,16 +3687,21 @@ + return (0); + } + do { +- count = MultiByteToWideChar(sc->from_cp, ++ int r; ++ if (length > (size_t)INT_MAX || (avail >> 1) > (size_t)INT_MAX) ++ return (-1); ++ r = MultiByteToWideChar(sc->from_cp, + MB_PRECOMPOSED, s, (int)length, (LPWSTR)u16, (int)avail>>1); + /* Exit loop if we succeeded */ +- if (count != 0 || ++ if (r != 0 || + GetLastError() != ERROR_INSUFFICIENT_BUFFER) { ++ count = (size_t)r; + break; + } + /* Expand buffer and try again */ +- count = MultiByteToWideChar(sc->from_cp, ++ r = MultiByteToWideChar(sc->from_cp, + MB_PRECOMPOSED, s, (int)length, NULL, 0); ++ count = (size_t)r; + if (archive_string_ensure(as16, (count +1) * 2) + == NULL) + return (-1); +@@ -3673,7 +3714,7 @@ + if (count == 0) + return (-1); + +- if (is_big_endian()) { ++ if (IS_BIG_ENDIAN) { + if (!bigendian) { + while (count > 0) { + uint16_t v = archive_be16dec(u16); +@@ -3811,9 +3852,9 @@ + ret = -1; + } + if (bigendian) +- archive_be16enc(utf16, c); ++ archive_be16enc(utf16, (uint16_t)c); + else +- archive_le16enc(utf16, c); ++ archive_le16enc(utf16, (uint16_t)c); + utf16 += 2; + } + as16->length = utf16 - as16->s; +--- contrib/libarchive/libarchive/archive_string_composition.h.orig ++++ contrib/libarchive/libarchive/archive_string_composition.h +@@ -2286,5 +2286,4 @@ + { 0x110AB , 0x110A5 , 0x110BA }, + }; + +-#endif /* ARCHIVE_STRING_COMPOSITION_H_INCLUDED */ +- ++#endif /* !ARCHIVE_STRING_COMPOSITION_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_string_sprintf.c.orig ++++ contrib/libarchive/libarchive/archive_string_sprintf.c +@@ -116,8 +116,14 @@ + + long_flag = '\0'; + switch(*p) { +- case 'j': + case 'l': ++ if (p[1] == 'l') { ++ long_flag = 'L'; ++ p += 2; ++ break; ++ } ++ __LA_FALLTHROUGH; ++ case 'j': + case 'z': + long_flag = *p; + p++; +@@ -136,6 +142,7 @@ + switch(long_flag) { + case 'j': s = va_arg(ap, intmax_t); break; + case 'l': s = va_arg(ap, long); break; ++ case 'L': s = va_arg(ap, long long); break; + case 'z': s = va_arg(ap, ssize_t); break; + default: s = va_arg(ap, int); break; + } +@@ -144,6 +151,7 @@ + case 's': + switch(long_flag) { + case 'l': ++ case 'L': + pw = va_arg(ap, wchar_t *); + if (pw == NULL) + pw = L"(null)"; +@@ -172,6 +180,7 @@ + switch(long_flag) { + case 'j': u = va_arg(ap, uintmax_t); break; + case 'l': u = va_arg(ap, unsigned long); break; ++ case 'L': u = va_arg(ap, unsigned long long); break; + case 'z': u = va_arg(ap, size_t); break; + default: u = va_arg(ap, unsigned int); break; + } +--- /dev/null ++++ contrib/libarchive/libarchive/archive_time.c +@@ -0,0 +1,163 @@ ++/*- ++ * Copyright © 2025 ARJANEN LoĂ¯c Jean David ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "archive_platform.h" ++#include "archive_private.h" ++#include "archive_time_private.h" ++#include <limits.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#define NTFS_EPOC_TIME ARCHIVE_LITERAL_ULL(11644473600) ++#define NTFS_TICKS ARCHIVE_LITERAL_ULL(10000000) ++#define NTFS_EPOC_TICKS (NTFS_EPOC_TIME * NTFS_TICKS) ++#define DOS_MIN_TIME 0x00210000U ++#define DOS_MAX_TIME 0xff9fbf7dU ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++#include <winnt.h> ++/* Windows FILETIME to NTFS time. */ ++uint64_t ++FILETIME_to_ntfs(const FILETIME* filetime) ++{ ++ ULARGE_INTEGER utc; ++ utc.HighPart = filetime->dwHighDateTime; ++ utc.LowPart = filetime->dwLowDateTime; ++ return utc.QuadPart; ++} ++#endif ++ ++/* Convert an MSDOS-style date/time into Unix-style time. */ ++int64_t ++dos_to_unix(uint32_t dos_time) ++{ ++ uint16_t msTime, msDate; ++ struct tm ts; ++ time_t t; ++ ++ msTime = (0xFFFF & dos_time); ++ msDate = (dos_time >> 16); ++ ++ memset(&ts, 0, sizeof(ts)); ++ ts.tm_year = ((msDate >> 9) & 0x7f) + 80; /* Years since 1900. */ ++ ts.tm_mon = ((msDate >> 5) & 0x0f) - 1; /* Month number. */ ++ ts.tm_mday = msDate & 0x1f; /* Day of month. */ ++ ts.tm_hour = (msTime >> 11) & 0x1f; ++ ts.tm_min = (msTime >> 5) & 0x3f; ++ ts.tm_sec = (msTime << 1) & 0x3e; ++ ts.tm_isdst = -1; ++ t = mktime(&ts); ++ return (int64_t)(t == (time_t)-1 ? INT32_MAX : t); ++} ++ ++/* Convert into MSDOS-style date/time. */ ++uint32_t ++unix_to_dos(int64_t unix_time) ++{ ++ struct tm *t; ++ uint32_t dt; ++ time_t ut = unix_time; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++ ++ if (sizeof(time_t) < sizeof(int64_t) && (int64_t)ut != unix_time) { ++ ut = (time_t)(unix_time > 0 ? INT32_MAX : INT32_MIN); ++ } ++ ++#if defined(HAVE_LOCALTIME_S) ++ t = localtime_s(&tmbuf, &ut) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ t = localtime_r(&ut, &tmbuf); ++#else ++ t = localtime(&ut); ++#endif ++ dt = 0; ++ if (t != NULL && t->tm_year >= INT_MIN + 80) { ++ const int year = t->tm_year - 80; ++ ++ if (year & ~0x7f) { ++ dt = year > 0 ? DOS_MAX_TIME : DOS_MIN_TIME; ++ } ++ else { ++ dt += (year & 0x7f) << 9; ++ dt += ((t->tm_mon + 1) & 0x0f) << 5; ++ dt += (t->tm_mday & 0x1f); ++ dt <<= 16; ++ dt += (t->tm_hour & 0x1f) << 11; ++ dt += (t->tm_min & 0x3f) << 5; ++ /* Only counting every 2 seconds. */ ++ dt += (t->tm_sec & 0x3e) >> 1; ++ } ++ } ++ if (dt > DOS_MAX_TIME) { ++ dt = DOS_MAX_TIME; ++ } ++ else if (dt < DOS_MIN_TIME) { ++ dt = DOS_MIN_TIME; ++ } ++ return dt; ++} ++ ++/* Convert NTFS time to Unix sec/nsec */ ++void ++ntfs_to_unix(uint64_t ntfs, int64_t* secs, uint32_t* nsecs) ++{ ++ if (ntfs > INT64_MAX) { ++ ntfs -= NTFS_EPOC_TICKS; ++ *secs = ntfs / NTFS_TICKS; ++ *nsecs = 100 * (ntfs % NTFS_TICKS); ++ } ++ else { ++ lldiv_t tdiv; ++ int64_t value = (int64_t)ntfs - (int64_t)NTFS_EPOC_TICKS; ++ ++ tdiv = lldiv(value, NTFS_TICKS); ++ *secs = tdiv.quot; ++ *nsecs = (uint32_t)(tdiv.rem * 100); ++ } ++} ++ ++/* Convert Unix sec/nsec to NTFS time */ ++uint64_t ++unix_to_ntfs(int64_t secs, uint32_t nsecs) ++{ ++ uint64_t ntfs; ++ ++ if (secs < -(int64_t)NTFS_EPOC_TIME) ++ return 0; ++ ++ ntfs = secs + NTFS_EPOC_TIME; ++ ++ if (ntfs > UINT64_MAX / NTFS_TICKS) ++ return UINT64_MAX; ++ ++ ntfs *= NTFS_TICKS; ++ ++ if (ntfs > UINT64_MAX - nsecs/100) ++ return UINT64_MAX; ++ ++ return ntfs + nsecs/100; ++} +--- /dev/null ++++ contrib/libarchive/libarchive/archive_time_private.h +@@ -0,0 +1,47 @@ ++/*- ++ * Copyright © 2025 ARJANEN LoĂ¯c Jean David ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef ARCHIVE_TIME_PRIVATE_H_INCLUDED ++#define ARCHIVE_TIME_PRIVATE_H_INCLUDED ++ ++#ifndef __LIBARCHIVE_BUILD ++#error This header is only to be used internally to libarchive. ++#endif ++#include <stdint.h> ++ ++/* NTFS time to Unix sec/nsec. */ ++void ntfs_to_unix(uint64_t ntfs, int64_t* secs, uint32_t* nsecs); ++/* DOS time to Unix sec. */ ++int64_t dos_to_unix(uint32_t dos); ++/* Unix sec/nsec to NTFS time. */ ++uint64_t unix_to_ntfs(int64_t secs, uint32_t nsecs); ++/* Unix sec to DOS time. */ ++uint32_t unix_to_dos(int64_t secs); ++#if defined(_WIN32) && !defined(__CYGWIN__) ++#include <windef.h> ++#include <winbase.h> ++/* Windows FILETIME to NTFS time. */ ++uint64_t FILETIME_to_ntfs(const FILETIME* filetime); ++#endif ++#endif /* ARCHIVE_TIME_PRIVATE_H_INCLUDED */ +--- contrib/libarchive/libarchive/archive_util.c.orig ++++ contrib/libarchive/libarchive/archive_util.c +@@ -77,7 +77,9 @@ + #define O_CLOEXEC 0 + #endif + +-static int archive_utility_string_sort_helper(char **, unsigned int); ++#if ARCHIVE_VERSION_NUMBER < 4000000 ++static int __LA_LIBC_CC archive_utility_string_sort_helper(const void *, const void *); ++#endif + + /* Generic initialization of 'struct archive' objects. */ + int +@@ -629,74 +631,28 @@ + #endif + } + ++#if ARCHIVE_VERSION_NUMBER < 4000000 + /* +- * Utility function to sort a group of strings using quicksort. ++ * Utility functions to sort a group of strings using quicksort. + */ + static int +-archive_utility_string_sort_helper(char **strings, unsigned int n) ++__LA_LIBC_CC ++archive_utility_string_sort_helper(const void *p1, const void *p2) + { +- unsigned int i, lesser_count, greater_count; +- char **lesser, **greater, **tmp, *pivot; +- int retval1, retval2; +- +- /* A list of 0 or 1 elements is already sorted */ +- if (n <= 1) +- return (ARCHIVE_OK); +- +- lesser_count = greater_count = 0; +- lesser = greater = NULL; +- pivot = strings[0]; +- for (i = 1; i < n; i++) +- { +- if (strcmp(strings[i], pivot) < 0) +- { +- lesser_count++; +- tmp = realloc(lesser, lesser_count * sizeof(*tmp)); +- if (!tmp) { +- free(greater); +- free(lesser); +- return (ARCHIVE_FATAL); +- } +- lesser = tmp; +- lesser[lesser_count - 1] = strings[i]; +- } +- else +- { +- greater_count++; +- tmp = realloc(greater, greater_count * sizeof(*tmp)); +- if (!tmp) { +- free(greater); +- free(lesser); +- return (ARCHIVE_FATAL); +- } +- greater = tmp; +- greater[greater_count - 1] = strings[i]; +- } +- } ++ const char * const * const s1 = p1; ++ const char * const * const s2 = p2; + +- /* quicksort(lesser) */ +- retval1 = archive_utility_string_sort_helper(lesser, lesser_count); +- for (i = 0; i < lesser_count; i++) +- strings[i] = lesser[i]; +- free(lesser); +- +- /* pivot */ +- strings[lesser_count] = pivot; +- +- /* quicksort(greater) */ +- retval2 = archive_utility_string_sort_helper(greater, greater_count); +- for (i = 0; i < greater_count; i++) +- strings[lesser_count + 1 + i] = greater[i]; +- free(greater); +- +- return (retval1 < retval2) ? retval1 : retval2; ++ return strcmp(*s1, *s2); + } + + int + archive_utility_string_sort(char **strings) + { +- unsigned int size = 0; +- while (strings[size] != NULL) ++ size_t size = 0; ++ while (strings[size] != NULL) + size++; +- return archive_utility_string_sort_helper(strings, size); ++ qsort(strings, size, sizeof(char *), ++ archive_utility_string_sort_helper); ++ return (ARCHIVE_OK); + } ++#endif +--- contrib/libarchive/libarchive/archive_version_details.c.orig ++++ contrib/libarchive/libarchive/archive_version_details.c +@@ -46,11 +46,125 @@ + #endif + #ifdef HAVE_ZSTD_H + #include <zstd.h> ++#include <stdio.h> ++#endif ++#ifdef HAVE_LZO_LZOCONF_H ++#include <lzo/lzoconf.h> ++#endif ++#if HAVE_LIBXML_XMLVERSION_H ++#include <libxml/xmlversion.h> ++#elif HAVE_BSDXML_H ++#include <bsdxml.h> ++#elif HAVE_EXPAT_H ++#include <expat.h> ++#endif ++#if HAVE_MBEDTLS_VERSION_H ++#include <mbedtls/version.h> ++#endif ++#if HAVE_NETTLE_VERSION_H ++#include <nettle/version.h> ++#include <stdio.h> ++#endif ++#if HAVE_OPENSSL_OPENSSLV_H ++#include <openssl/opensslv.h> ++#include <stdio.h> ++#endif ++#if HAVE_ICONV_H ++#include <iconv.h> ++#endif ++#if HAVE_PCRE_H ++#include <pcre.h> ++#endif ++#if HAVE_PCRE2_H ++#include <pcre2.h> + #endif + + #include "archive.h" + #include "archive_private.h" + #include "archive_string.h" ++#include "archive_cryptor_private.h" ++#include "archive_digest_private.h" ++ ++static void ++archive_regex_version(struct archive_string* str) ++{ ++#if HAVE_LIBPCREPOSIX && HAVE_PCRE_H ++ archive_strcat(str, " libpcre/"); ++ archive_strcat(str, archive_libpcre_version()); ++#elif HAVE_LIBPCRE2POSIX && HAVE_PCRE2_H ++ archive_strcat(str, " libpcre2/"); ++ archive_strcat(str, archive_libpcre2_version()); ++#else ++ (void)str; /* UNUSED */ ++#endif ++} ++ ++static void ++archive_xml_version(struct archive_string* str) ++{ ++#if HAVE_LIBXML_XMLVERSION_H && HAVE_LIBXML2 ++ archive_strcat(str, " libxml2/"); ++ archive_strcat(str, archive_libxml2_version()); ++#elif HAVE_BSDXML_H && HAVE_LIBBSDXML ++ archive_strcat(str, " bsdxml/"); ++ archive_strcat(str, archive_libbsdxml_version()); ++#elif HAVE_EXPAT_H && HAVE_LIBEXPAT ++ archive_strcat(str, " expat/"); ++ archive_strcat(str, archive_libexpat_version()); ++#else ++ (void)str; /* UNUSED */ ++#endif ++} ++ ++static void ++archive_libb2_version(struct archive_string* str) ++{ ++ archive_strcat(str, " libb2/"); ++#if HAVE_BLAKE2_H && HAVE_LIBB2 ++#if defined(LIBB2_PKGCONFIG_VERSION) ++ archive_strcat(str, LIBB2_PKGCONFIG_VERSION); ++#else ++ archive_strcat(str, "system"); ++#endif ++#else ++ archive_strcat(str, "bundled"); ++#endif ++} ++ ++static void ++archive_crypto_version(struct archive_string* str) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto) ++ archive_strcat(str, " CommonCrypto/"); ++ archive_strcat(str, archive_commoncrypto_version()); ++#endif ++#if defined(ARCHIVE_CRYPTOR_USE_CNG) ++ archive_strcat(str, " cng/"); ++ archive_strcat(str, archive_cng_version()); ++#endif ++#if defined(ARCHIVE_CRYPTOR_USE_MBED) ++ archive_strcat(str, " mbedtls/"); ++ archive_strcat(str, archive_mbedtls_version()); ++#endif ++#if defined(ARCHIVE_CRYPTOR_USE_NETTLE) ++ archive_strcat(str, " nettle/"); ++ archive_strcat(str, archive_nettle_version()); ++#endif ++#if defined(ARCHIVE_CRYPTOR_USE_OPENSSL) ++ archive_strcat(str, " openssl/"); ++ archive_strcat(str, archive_openssl_version()); ++#endif ++#if defined(ARCHIVE_CRYPTOR_USE_LIBMD) ++ archive_strcat(str, " libmd/"); ++ archive_strcat(str, archive_libmd_version()); ++#endif ++#if defined(ARCHIVE_CRYPTOR_USE_WINCRYPT) ++ archive_strcat(str, " WinCrypt/"); ++ archive_strcat(str, archive_wincrypt_version()); ++#endif ++ // Just in case ++ (void)str; /* UNUSED */ ++} + + const char * + archive_version_details(void) +@@ -62,12 +176,17 @@ + const char *bzlib = archive_bzlib_version(); + const char *liblz4 = archive_liblz4_version(); + const char *libzstd = archive_libzstd_version(); ++ const char *liblzo = archive_liblzo2_version(); ++ const char *libiconv = archive_libiconv_version(); ++ const char *libacl = archive_libacl_version(); ++ const char *librichacl = archive_librichacl_version(); ++ const char *libattr = archive_libacl_version(); + + if (!init) { + archive_string_init(&str); + + archive_strcat(&str, ARCHIVE_VERSION_STRING); +- if (zlib != NULL) { ++ if (zlib) { + archive_strcat(&str, " zlib/"); + archive_strcat(&str, zlib); + } +@@ -91,6 +210,30 @@ + archive_strcat(&str, " libzstd/"); + archive_strcat(&str, libzstd); + } ++ if (liblzo) { ++ archive_strcat(&str, " liblzo2/"); ++ archive_strcat(&str, liblzo); ++ } ++ archive_xml_version(&str); ++ archive_regex_version(&str); ++ archive_crypto_version(&str); ++ archive_libb2_version(&str); ++ if (librichacl) { ++ archive_strcat(&str, " librichacl/"); ++ archive_strcat(&str, librichacl); ++ } ++ if (libacl) { ++ archive_strcat(&str, " libacl/"); ++ archive_strcat(&str, libacl); ++ } ++ if (libattr) { ++ archive_strcat(&str, " libattr/"); ++ archive_strcat(&str, libattr); ++ } ++ if (libiconv) { ++ archive_strcat(&str, " libiconv/"); ++ archive_strcat(&str, libiconv); ++ } + } + return str.s; + } +@@ -98,8 +241,8 @@ + const char * + archive_zlib_version(void) + { +-#ifdef HAVE_ZLIB_H +- return ZLIB_VERSION; ++#if HAVE_ZLIB_H && HAVE_LIBZ ++ return zlibVersion(); + #else + return NULL; + #endif +@@ -108,8 +251,8 @@ + const char * + archive_liblzma_version(void) + { +-#ifdef HAVE_LZMA_H +- return LZMA_VERSION_STRING; ++#if HAVE_LZMA_H && HAVE_LIBLZMA ++ return lzma_version_string(); + #else + return NULL; + #endif +@@ -118,7 +261,7 @@ + const char * + archive_bzlib_version(void) + { +-#ifdef HAVE_BZLIB_H ++#if HAVE_BZLIB_H && HAVE_LIBBZ2 + return BZ2_bzlibVersion(); + #else + return NULL; +@@ -128,12 +271,22 @@ + const char * + archive_liblz4_version(void) + { +-#if defined(HAVE_LZ4_H) && defined(HAVE_LIBLZ4) ++#if HAVE_LZ4_H && HAVE_LIBLZ4 ++#if LZ4_VERSION_NUMBER > 10705 ++ return LZ4_versionString(); ++#elif LZ4_VERSION_NUMBER > 10300 ++ div_t major = div(LZ4_versionNumber(), 10000); ++ div_t minor = div(major.rem, 100); ++ static char lz4_version[9]; ++ snprintf(lz4_version, 9, "%d.%d.%d", major.quot, minor.quot, minor.rem); ++ return lz4_version; ++#else + #define str(s) #s + #define NUMBER(x) str(x) + return NUMBER(LZ4_VERSION_MAJOR) "." NUMBER(LZ4_VERSION_MINOR) "." NUMBER(LZ4_VERSION_RELEASE); + #undef NUMBER + #undef str ++#endif + #else + return NULL; + #endif +@@ -143,7 +296,243 @@ + archive_libzstd_version(void) + { + #if HAVE_ZSTD_H && HAVE_LIBZSTD +- return ZSTD_VERSION_STRING; ++#if ZSTD_VERSION_NUMBER > 10300 ++ return ZSTD_versionString(); ++#else ++ div_t major = div(ZSTD_versionNumber(), 10000); ++ div_t minor = div(major.rem, 100); ++ static char zstd_version[9]; ++ snprintf(zstd_version, 9, "%d.%d.%d", major.quot, minor.quot, minor.rem); ++ return zstd_version; ++#endif ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_liblzo2_version(void) ++{ ++#if HAVE_LZO_LZOCONF_H && HAVE_LIBLZO2 ++ return LZO_VERSION_STRING; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libbsdxml_version(void) ++{ ++#if HAVE_BSDXML_H && HAVE_LIBBSDXML ++ return XML_ExpatVersion(); ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libxml2_version(void) ++{ ++#if HAVE_LIBXML_XMLREADER_H && HAVE_LIBXML2 ++ return LIBXML_DOTTED_VERSION; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libexpat_version(void) ++{ ++#if HAVE_EXPAT_H && HAVE_LIBEXPAT ++ return XML_ExpatVersion(); ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_mbedtls_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_MBED) || defined(ARCHIVE_CRYPTO_MBED) ++ static char mbed_version[9]; ++ mbedtls_version_get_string(mbed_version); ++ return mbed_version; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_nettle_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_NETTLE) || defined(ARCHIVE_CRYPTO_NETTLE) ++ static char nettle_version[6]; ++ snprintf(nettle_version, 6, "%d.%d", nettle_version_major(), nettle_version_minor()); ++ return nettle_version; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_openssl_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_OPENSSL) || defined(ARCHIVE_CRYPTO_OPENSSL) ++#ifdef OPENSSL_VERSION_STR ++ return OPENSSL_VERSION_STR; ++#else ++#define OPENSSL_MAJOR (OPENSSL_VERSION_NUMBER >> 28) ++#define OPENSSL_MINOR ((OPENSSL_VERSION_NUMBER >> 20) & 0xFF) ++ static char openssl_version[6]; ++ snprintf(openssl_version, 6, "%ld.%ld", OPENSSL_MAJOR, OPENSSL_MINOR); ++ return openssl_version; ++#undef OPENSSL_MAJOR ++#undef OPENSSL_MINOR ++#endif ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libmd_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_LIBMD) || defined(ARCHIVE_CRYPTO_LIBMD) ++ return "system"; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_commoncrypto_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto) || defined(ARCHIVE_CRYPTO_CommonCrypto) ++ return "system"; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_cng_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_CNG) || defined(ARCHIVE_CRYPTO_CNG) ++#ifdef BCRYPT_HASH_INTERFACE_MAJORVERSION_2 ++ return "2.0"; ++#else ++ return "1.0"; ++#endif ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_wincrypt_version(void) ++{ ++#if defined(ARCHIVE_CRYPTOR_USE_WINCRYPT) || defined(ARCHIVE_CRYPTO_WINCRYPT) ++ HCRYPTPROV prov; ++ if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { ++ if (GetLastError() != (DWORD)NTE_BAD_KEYSET) ++ return NULL; ++ if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) ++ return NULL; ++ } ++ DWORD version, length = sizeof(version); ++ if (!CryptGetProvParam(prov, PP_VERSION, (BYTE *)&version, &length, 0)) { ++ return NULL; ++ } else { ++ char major = (version >> 8) & 0xFF; ++ char minor = version & 0xFF; ++ static char wincrypt_version[6]; ++ snprintf(wincrypt_version, 6, "%hhd.%hhd", major, minor); ++ return wincrypt_version; ++ } ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_librichacl_version(void) ++{ ++#if HAVE_LIBRICHACL ++#if defined(LIBRICHACL_PKGCONFIG_VERSION) ++ return LIBRICHACL_PKGCONFIG_VERSION; ++#else ++ return "system"; ++#endif ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libacl_version(void) ++{ ++#if HAVE_LIBACL ++#if defined(LIBACL_PKGCONFIG_VERSION) ++ return LIBACL_PKGCONFIG_VERSION; ++#else ++ return "system"; ++#endif ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libattr_version(void) ++{ ++#if HAVE_LIBATTR ++#if defined(LIBATTR_PKGCONFIG_VERSION) ++ return LIBATTR_PKGCONFIG_VERSION; ++#else ++ return "system"; ++#endif ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libiconv_version(void) ++{ ++#if HAVE_LIBCHARSET && HAVE_ICONV_H ++ char major = _libiconv_version >> 8; ++ char minor = _libiconv_version & 0xFF; ++ static char charset_version[6]; ++ snprintf(charset_version, 6, "%hhd.%hhd", major, minor); ++ return charset_version; ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libpcre_version(void) ++{ ++#if HAVE_LIBPCREPOSIX && HAVE_PCRE_H ++#define str(s) #s ++#define NUMBER(x) str(x) ++ return NUMBER(PCRE_MAJOR) "." NUMBER(PCRE_MINOR); ++#undef NUMBER ++#undef str ++#else ++ return NULL; ++#endif ++} ++ ++const char * ++archive_libpcre2_version(void) ++{ ++#if HAVE_LIBPCRE2POSIX && HAVE_PCRE2_H ++#define str(s) #s ++#define NUMBER(x) str(x) ++ return NUMBER(PCRE2_MAJOR) "." NUMBER(PCRE2_MINOR); ++#undef NUMBER ++#undef str + #else + return NULL; + #endif +--- contrib/libarchive/libarchive/archive_write.c.orig ++++ contrib/libarchive/libarchive/archive_write.c +@@ -283,7 +283,7 @@ + } + + /* +- * Close all filtes ++ * Close all filters + */ + static int + __archive_write_filters_close(struct archive_write *a) +--- contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c.orig ++++ contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c +@@ -166,7 +166,7 @@ + } + + archive_string_sprintf(&state->encoded_buff, "begin-base64 %o %s\n", +- state->mode, state->name.s); ++ (unsigned int)state->mode, state->name.s); + + f->data = state; + return (0); +--- contrib/libarchive/libarchive/archive_write_add_filter_gzip.c.orig ++++ contrib/libarchive/libarchive/archive_write_add_filter_gzip.c +@@ -58,6 +58,7 @@ + struct private_data { + int compression_level; + int timestamp; ++ char *original_filename; + #ifdef HAVE_ZLIB_H + z_stream stream; + int64_t total_in; +@@ -113,6 +114,8 @@ + f->free = &archive_compressor_gzip_free; + f->code = ARCHIVE_FILTER_GZIP; + f->name = "gzip"; ++ ++ data->original_filename = NULL; + #ifdef HAVE_ZLIB_H + data->compression_level = Z_DEFAULT_COMPRESSION; + return (ARCHIVE_OK); +@@ -140,6 +143,7 @@ + #else + __archive_write_program_free(data->pdata); + #endif ++ free((void*)data->original_filename); + free(data); + f->data = NULL; + return (ARCHIVE_OK); +@@ -165,6 +169,13 @@ + data->timestamp = (value == NULL)?-1:1; + return (ARCHIVE_OK); + } ++ if (strcmp(key, "original-filename") == 0) { ++ free((void*)data->original_filename); ++ data->original_filename = NULL; ++ if (value) ++ data->original_filename = strdup(value); ++ return (ARCHIVE_OK); ++ } + + /* Note: The "warn" return is just to inform the options + * supervisor that we didn't handle it. It will generate +@@ -210,7 +221,7 @@ + data->compressed[0] = 0x1f; /* GZip signature bytes */ + data->compressed[1] = 0x8b; + data->compressed[2] = 0x08; /* "Deflate" compression */ +- data->compressed[3] = 0; /* No options */ ++ data->compressed[3] = data->original_filename == NULL ? 0 : 0x8; + if (data->timestamp >= 0) { + time_t t = time(NULL); + data->compressed[4] = (uint8_t)(t)&0xff; /* Timestamp */ +@@ -229,6 +240,12 @@ + data->stream.next_out += 10; + data->stream.avail_out -= 10; + ++ if (data->original_filename != NULL) { ++ strcpy((char*)data->compressed + 10, data->original_filename); ++ data->stream.next_out += strlen(data->original_filename) + 1; ++ data->stream.avail_out -= strlen(data->original_filename) + 1; ++ } ++ + f->write = archive_compressor_gzip_write; + + /* Initialize compression library. */ +--- contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c.orig ++++ contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c +@@ -155,7 +155,7 @@ + } + + archive_string_sprintf(&state->encoded_buff, "begin %o %s\n", +- state->mode, state->name.s); ++ (unsigned int)state->mode, state->name.s); + + f->data = state; + return (0); +--- contrib/libarchive/libarchive/archive_write_disk_posix.c.orig ++++ contrib/libarchive/libarchive/archive_write_disk_posix.c +@@ -478,9 +478,11 @@ + case AE_IFLNK: + ret = (S_ISLNK(mode)); + break; ++#ifdef S_ISSOCK + case AE_IFSOCK: + ret = (S_ISSOCK(mode)); + break; ++#endif + case AE_IFCHR: + ret = (S_ISCHR(mode)); + break; +@@ -3605,7 +3607,7 @@ + tstamp.atime.tv_sec = atime; + tstamp.mtime.tv_sec = mtime; + tstamp.ctime.tv_sec = ctime; +-#if defined (__hpux) && defined (__ia64) ++#if defined (__hpux) && ( defined (__ia64) || defined (__hppa) ) + tstamp.atime.tv_nsec = atime_nsec; + tstamp.mtime.tv_nsec = mtime_nsec; + tstamp.ctime.tv_nsec = ctime_nsec; +@@ -3788,7 +3790,7 @@ + * permissions on symlinks, so a failure here has no + * impact. + */ +- if (lchmod(a->name, mode) != 0) { ++ if (lchmod(a->name, (mode_t)mode) != 0) { + switch (errno) { + case ENOTSUP: + case ENOSYS: +@@ -3803,7 +3805,8 @@ + break; + default: + archive_set_error(&a->archive, errno, +- "Can't set permissions to 0%o", (int)mode); ++ "Can't set permissions to 0%o", ++ (unsigned int)mode); + r = ARCHIVE_WARN; + } + } +@@ -3817,16 +3820,16 @@ + */ + #ifdef HAVE_FCHMOD + if (a->fd >= 0) +- r2 = fchmod(a->fd, mode); ++ r2 = fchmod(a->fd, (mode_t)mode); + else + #endif + /* If this platform lacks fchmod(), then + * we'll just use chmod(). */ +- r2 = chmod(a->name, mode); ++ r2 = chmod(a->name, (mode_t)mode); + + if (r2 != 0) { + archive_set_error(&a->archive, errno, +- "Can't set permissions to 0%o", (int)mode); ++ "Can't set permissions to 0%o", (unsigned int)mode); + r = ARCHIVE_WARN; + } + } +--- contrib/libarchive/libarchive/archive_write_open_filename.c.orig ++++ contrib/libarchive/libarchive/archive_write_open_filename.c +@@ -118,7 +118,7 @@ + (const char *)filename); + else + archive_set_error(a, ARCHIVE_ERRNO_MISC, +- "Can't convert '%S' to MBS", ++ "Can't convert '%ls' to MBS", + (const wchar_t *)filename); + return (ARCHIVE_FAILED); + } +@@ -170,7 +170,7 @@ + else { + archive_mstring_get_wcs(a, &mine->filename, &wcs); + archive_set_error(a, errno, +- "Can't convert '%S' to MBS", wcs); ++ "Can't convert '%ls' to MBS", wcs); + } + return (ARCHIVE_FATAL); + } +@@ -181,7 +181,7 @@ + if (mbs != NULL) + archive_set_error(a, errno, "Failed to open '%s'", mbs); + else +- archive_set_error(a, errno, "Failed to open '%S'", wcs); ++ archive_set_error(a, errno, "Failed to open '%ls'", wcs); + return (ARCHIVE_FATAL); + } + +@@ -189,7 +189,7 @@ + if (mbs != NULL) + archive_set_error(a, errno, "Couldn't stat '%s'", mbs); + else +- archive_set_error(a, errno, "Couldn't stat '%S'", wcs); ++ archive_set_error(a, errno, "Couldn't stat '%ls'", wcs); + return (ARCHIVE_FATAL); + } + +--- contrib/libarchive/libarchive/archive_write_set_format_7zip.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_7zip.c +@@ -28,7 +28,12 @@ + #ifdef HAVE_ERRNO_H + #include <errno.h> + #endif ++#ifdef HAVE_STDLIB_H + #include <stdlib.h> ++#endif ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif + #ifdef HAVE_BZLIB_H + #include <bzlib.h> + #endif +@@ -38,6 +43,9 @@ + #ifdef HAVE_ZLIB_H + #include <zlib.h> + #endif ++#ifdef HAVE_ZSTD_H ++#include <zstd.h> ++#endif + + #include "archive.h" + #ifndef HAVE_ZLIB_H +@@ -50,6 +58,7 @@ + #include "archive_private.h" + #include "archive_rb.h" + #include "archive_string.h" ++#include "archive_time_private.h" + #include "archive_write_private.h" + #include "archive_write_set_format_private.h" + +@@ -63,6 +72,8 @@ + #define _7Z_BZIP2 0x040202 + #define _7Z_PPMD 0x030401 + ++#define _7Z_ZSTD 0x4F71101 /* Copied from https://github.com/mcmilk/7-Zip-zstd.git */ ++ + /* + * 7-Zip header property IDs. + */ +@@ -110,6 +121,9 @@ + // the attr field along with the unix permissions. + #define FILE_ATTRIBUTE_UNIX_EXTENSION 0x8000 + ++// Many systems define min or MIN, but not all. ++#define sevenzipmin(a,b) ((a) < (b) ? (a) : (b)) ++ + enum la_zaction { + ARCHIVE_Z_FINISH, + ARCHIVE_Z_RUN +@@ -209,7 +223,11 @@ + #define ENCODED_CRC32 2 + + unsigned opt_compression; ++ + int opt_compression_level; ++ int opt_zstd_compression_level; // This requires a different default value. ++ ++ int opt_threads; + + struct la_zstream stream; + struct coder coder; +@@ -285,12 +303,19 @@ + static int compression_end_lzma(struct archive *, struct la_zstream *); + #endif + static int compression_init_encoder_ppmd(struct archive *, +- struct la_zstream *, unsigned, uint32_t); ++ struct la_zstream *, uint8_t, uint32_t); + static int compression_code_ppmd(struct archive *, + struct la_zstream *, enum la_zaction); + static int compression_end_ppmd(struct archive *, struct la_zstream *); + static int _7z_compression_init_encoder(struct archive_write *, unsigned, + int); ++static int compression_init_encoder_zstd(struct archive *, ++ struct la_zstream *, int, int); ++#if defined(HAVE_ZSTD_H) ++static int compression_code_zstd(struct archive *, ++ struct la_zstream *, enum la_zaction); ++static int compression_end_zstd(struct archive *, struct la_zstream *); ++#endif + static int compression_code(struct archive *, + struct la_zstream *, enum la_zaction); + static int compression_end(struct archive *, +@@ -301,6 +326,21 @@ + static int make_streamsInfo(struct archive_write *, uint64_t, uint64_t, + uint64_t, int, struct coder *, int, uint32_t); + ++static int ++string_to_number(const char *string, intmax_t *numberp) ++{ ++ char *end; ++ ++ if (string == NULL || *string == '\0') ++ return (ARCHIVE_WARN); ++ *numberp = strtoimax(string, &end, 10); ++ if (end == string || *end != '\0' || errno == EOVERFLOW) { ++ *numberp = 0; ++ return (ARCHIVE_WARN); ++ } ++ return (ARCHIVE_OK); ++} ++ + int + archive_write_set_format_7zip(struct archive *_a) + { +@@ -335,11 +375,24 @@ + zip->opt_compression = _7Z_BZIP2; + #elif defined(HAVE_ZLIB_H) + zip->opt_compression = _7Z_DEFLATE; ++#elif HAVE_ZSTD_H ++ zip->opt_compression = _7Z_ZSTD; + #else + zip->opt_compression = _7Z_COPY; + #endif ++ + zip->opt_compression_level = 6; + ++#ifdef ZSTD_CLEVEL_DEFAULT ++ // Zstandard compression needs a different default ++ // value than other encoders. ++ zip->opt_zstd_compression_level = ZSTD_CLEVEL_DEFAULT; ++#else ++ zip->opt_zstd_compression_level = 3; ++#endif ++ ++ zip->opt_threads = 1; ++ + a->format_data = zip; + + a->format_name = "7zip"; +@@ -397,6 +450,13 @@ + zip->opt_compression = _7Z_LZMA2; + #else + name = "lzma2"; ++#endif ++ else if (strcmp(value, "zstd") == 0 || ++ strcmp(value, "ZSTD") == 0) ++#if HAVE_ZSTD_H ++ zip->opt_compression = _7Z_ZSTD; ++#else ++ name = "zstd"; + #endif + else if (strcmp(value, "ppmd") == 0 || + strcmp(value, "PPMD") == 0 || +@@ -420,16 +480,68 @@ + return (ARCHIVE_OK); + } + if (strcmp(key, "compression-level") == 0) { +- if (value == NULL || +- !(value[0] >= '0' && value[0] <= '9') || +- value[1] != '\0') { +- archive_set_error(&(a->archive), +- ARCHIVE_ERRNO_MISC, +- "Illegal value `%s'", +- value); ++ if (value == NULL || *value == '\0') { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "Invalid compression-level option value `%s'", value); ++ return (ARCHIVE_FAILED); ++ } ++ ++ char *end = NULL; ++ long lvl = strtol(value, &end, 10); ++ if (end == NULL || *end != '\0') { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "parsing compression-level option value failed `%s'", value); ++ return (ARCHIVE_FAILED); ++ } ++ ++#if HAVE_ZSTD_H && HAVE_ZSTD_compressStream && HAVE_ZSTD_minCLevel ++ int min_level = sevenzipmin(0, ZSTD_minCLevel()); ++#else ++ const int min_level = 0; ++#endif ++ ++#if HAVE_ZSTD_H && HAVE_ZSTD_compressStream ++ int max_level = ZSTD_maxCLevel(); ++#else ++ const int max_level = 9; ++#endif ++ ++ if (lvl < min_level || lvl > max_level) { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "compression-level option value `%ld' out of range", lvl); + return (ARCHIVE_FAILED); + } +- zip->opt_compression_level = value[0] - '0'; ++ ++ // Note: we don't know here if this value is for zstd (negative to ~22), ++ // or zlib-style 0-9. If zstd is enabled but not in use, we will need to ++ // validate opt_compression_level before use. ++ zip->opt_compression_level = (int)lvl; ++ ++ zip->opt_zstd_compression_level = (int)lvl; ++ return (ARCHIVE_OK); ++ } ++ if (strcmp(key, "threads") == 0) { ++ intmax_t threads; ++ if (string_to_number(value, &threads) != ARCHIVE_OK) { ++ return (ARCHIVE_WARN); ++ } ++ if (threads < 0) { ++ return (ARCHIVE_WARN); ++ } ++ if (threads == 0) { ++#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN) ++ threads = sysconf(_SC_NPROCESSORS_ONLN); ++#elif !defined(__CYGWIN__) && defined(_WIN32_WINNT) && \ ++ _WIN32_WINNT >= 0x0601 /* _WIN32_WINNT_WIN7 */ ++ DWORD winCores = GetActiveProcessorCount( ++ ALL_PROCESSOR_GROUPS); ++ threads = (intmax_t)winCores; ++#else ++ threads = 1; ++#endif ++ } ++ ++ zip->opt_threads = (int)threads; + return (ARCHIVE_OK); + } + +@@ -495,8 +607,20 @@ + * Init compression. + */ + if ((zip->total_number_entry - zip->total_number_empty_entry) == 1) { +- r = _7z_compression_init_encoder(a, zip->opt_compression, +- zip->opt_compression_level); ++ ++ int level = zip->opt_compression_level; ++#if HAVE_ZSTD_H ++ if (zip->opt_compression == _7Z_ZSTD) { ++ level = zip->opt_zstd_compression_level; ++ } else if (level < 0 || level > 9) { ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "compression-level option value `%d' out of range 0-9", level); ++ file_free(file); ++ return (ARCHIVE_FATAL); ++ } ++#endif ++ ++ r = _7z_compression_init_encoder(a, zip->opt_compression, level); + if (r < 0) { + file_free(file); + return (ARCHIVE_FATAL); +@@ -785,8 +909,12 @@ + #else + header_compression = _7Z_COPY; + #endif +- r = _7z_compression_init_encoder(a, header_compression, +- zip->opt_compression_level); ++ ++ int level = zip->opt_compression_level; ++ if (level < 0) level = 0; ++ else if (level > 9) level = 9; ++ ++ r = _7z_compression_init_encoder(a, header_compression, level); + if (r < 0) + return (r); + zip->crc32flg = PRECODE_CRC32; +@@ -844,7 +972,7 @@ + header_offset = header_size = 0; + header_crc32 = 0; + } +- ++ + length = zip->temp_offset; + + /* +@@ -1164,20 +1292,6 @@ + return (ARCHIVE_OK); + } + +- +-#define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000) +-static uint64_t +-utcToFiletime(time_t t, long ns) +-{ +- uint64_t fileTime; +- +- fileTime = t; +- fileTime *= 10000000; +- fileTime += ns / 100; +- fileTime += EPOC_TIME; +- return (fileTime); +-} +- + static int + make_time(struct archive_write *a, uint8_t type, unsigned flg, int ti) + { +@@ -1249,7 +1363,6 @@ + if (r < 0) + return (r); + +- + /* + * Make Times. + */ +@@ -1257,7 +1370,7 @@ + for (;file != NULL; file = file->next) { + if ((file->flg & flg) == 0) + continue; +- archive_le64enc(filetime, utcToFiletime(file->times[ti].time, ++ archive_le64enc(filetime, unix_to_ntfs(file->times[ti].time, + file->times[ti].time_ns)); + r = (int)compress_out(a, filetime, 8, ARCHIVE_Z_RUN); + if (r < 0) +@@ -1504,7 +1617,7 @@ + return (memcmp(f1->utf16name, f2->utf16name, f1->name_len)); + return (f1->name_len > f2->name_len)?1:-1; + } +- ++ + static int + file_cmp_key(const struct archive_rb_node *n, const void *key) + { +@@ -1646,7 +1759,8 @@ + } + + #if !defined(HAVE_ZLIB_H) || !defined(HAVE_BZLIB_H) ||\ +- !defined(BZ_CONFIG_ERROR) || !defined(HAVE_LZMA_H) ++ !defined(BZ_CONFIG_ERROR) || !defined(HAVE_LZMA_H) ||\ ++ !(HAVE_ZSTD_H && HAVE_ZSTD_compressStream) + static int + compression_unsupported_encoder(struct archive *a, + struct la_zstream *lastrm, const char *name) +@@ -2159,7 +2273,7 @@ + + static int + compression_init_encoder_ppmd(struct archive *a, +- struct la_zstream *lastrm, unsigned maxOrder, uint32_t msize) ++ struct la_zstream *lastrm, uint8_t maxOrder, uint32_t msize) + { + struct ppmd_stream *strm; + uint8_t *props; +@@ -2279,6 +2393,117 @@ + return (ARCHIVE_OK); + } + ++#if HAVE_ZSTD_H && HAVE_ZSTD_compressStream ++static int ++compression_init_encoder_zstd(struct archive *a, struct la_zstream *lastrm, int level, int threads) ++{ ++ if (lastrm->valid) ++ compression_end(a, lastrm); ++ ++ ZSTD_CStream *strm = ZSTD_createCStream(); ++ if (strm == NULL) { ++ archive_set_error(a, ENOMEM, ++ "Can't allocate memory for zstd stream"); ++ return (ARCHIVE_FATAL); ++ } ++ ++ if (ZSTD_isError(ZSTD_initCStream(strm, level))) { ++ ZSTD_freeCStream(strm); ++ archive_set_error(a, ARCHIVE_ERRNO_MISC, ++ "Internal error initializing zstd compressor object"); ++ return (ARCHIVE_FATAL); ++ } ++ ++ ZSTD_CCtx_setParameter(strm, ZSTD_c_nbWorkers, threads); ++ ++ // p7zip-zstd fails to unpack archives that don't have prop_size 5. ++ // 7-Zip-zstd fails to unpack archives that don't have prop_size 3 or 5. ++ // So let's use 5... ++ lastrm->prop_size = 5; ++ lastrm->props = calloc(5, 1); ++ if (lastrm->props == NULL) { ++ ZSTD_freeCStream(strm); ++ archive_set_error(a, ARCHIVE_ERRNO_MISC, ++ "Internal error initializing zstd compressor properties"); ++ return (ARCHIVE_FATAL); ++ } ++ ++ // Refer to the DProps struct in 7-Zip-zstd's ZstdDecoder.h: ++ // https://github.com/mcmilk/7-Zip-zstd/blob/79b2c78e9e7735ddf90147129b75cf2797ff6522/CPP/7zip/Compress/ZstdDecoder.h#L34S ++ lastrm->props[0] = ZSTD_VERSION_MAJOR; ++ lastrm->props[1] = ZSTD_VERSION_MINOR; ++ lastrm->props[2] = level; ++ // lastrm->props[3] and lastrm->props[4] are reserved. Leave them as 0. ++ ++ lastrm->real_stream = strm; ++ lastrm->valid = 1; ++ lastrm->code = compression_code_zstd; ++ lastrm->end = compression_end_zstd; ++ ++ return (ARCHIVE_OK); ++} ++ ++static int ++compression_code_zstd(struct archive *a, ++ struct la_zstream *lastrm, enum la_zaction action) ++{ ++ ZSTD_CStream *strm = (ZSTD_CStream *)lastrm->real_stream; ++ ++ ZSTD_outBuffer out = { .dst = lastrm->next_out, .size = lastrm->avail_out, .pos = 0 }; ++ ZSTD_inBuffer in = { .src = lastrm->next_in, .size = lastrm->avail_in, .pos = 0 }; ++ ++ size_t zret; ++ ++ ZSTD_EndDirective mode = (action == ARCHIVE_Z_RUN) ? ZSTD_e_continue : ZSTD_e_end; ++ ++ zret = ZSTD_compressStream2(strm, &out, &in, mode); ++ if (ZSTD_isError(zret)) { ++ archive_set_error(a, ARCHIVE_ERRNO_MISC, ++ "zstd compression failed, ZSTD_compressStream2 returned: %s", ++ ZSTD_getErrorName(zret)); ++ return (ARCHIVE_FATAL); ++ } ++ ++ lastrm->next_in += in.pos; ++ lastrm->avail_in -= in.pos; ++ lastrm->total_in += in.pos; ++ ++ lastrm->next_out += out.pos; ++ lastrm->avail_out -= out.pos; ++ lastrm->total_out += out.pos; ++ ++ if (action == ARCHIVE_Z_FINISH && zret == 0) ++ return (ARCHIVE_EOF); // All done. ++ ++ return (ARCHIVE_OK); // More work to do. ++} ++ ++static int ++compression_end_zstd(struct archive *a, struct la_zstream *lastrm) ++{ ++ ZSTD_CStream *strm; ++ ++ (void)a; /* UNUSED */ ++ strm = (ZSTD_CStream *)lastrm->real_stream; ++ ZSTD_freeCStream(strm); ++ lastrm->valid = 0; ++ lastrm->real_stream = NULL; ++ return (ARCHIVE_OK); ++} ++ ++#else ++ ++static int ++compression_init_encoder_zstd(struct archive *a, struct la_zstream *lastrm, int level, int threads) ++{ ++ (void) level; /* UNUSED */ ++ (void) threads; /* UNUSED */ ++ if (lastrm->valid) ++ compression_end(a, lastrm); ++ return (compression_unsupported_encoder(a, lastrm, "zstd")); ++} ++#endif ++ + /* + * Universal compressor initializer. + */ +@@ -2316,6 +2541,11 @@ + &(a->archive), &(zip->stream), + PPMD7_DEFAULT_ORDER, PPMD7_DEFAULT_MEM_SIZE); + break; ++ case _7Z_ZSTD: ++ r = compression_init_encoder_zstd( ++ &(a->archive), &(zip->stream), ++ compression_level, zip->opt_threads); ++ break; + case _7Z_COPY: + default: + r = compression_init_encoder_copy( +@@ -2352,5 +2582,3 @@ + } + return (ARCHIVE_OK); + } +- +- +--- contrib/libarchive/libarchive/archive_write_set_format_gnutar.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_gnutar.c +@@ -153,7 +153,7 @@ + static int archive_write_gnutar_options(struct archive_write *, + const char *, const char *); + static int archive_format_gnutar_header(struct archive_write *, char h[512], +- struct archive_entry *, int tartype); ++ struct archive_entry *, char tartype); + static int archive_write_gnutar_header(struct archive_write *, + struct archive_entry *entry); + static ssize_t archive_write_gnutar_data(struct archive_write *a, const void *buff, +@@ -274,7 +274,7 @@ + { + char buff[512]; + int r, ret, ret2 = ARCHIVE_OK; +- int tartype; ++ char tartype; + struct gnutar *gnutar; + struct archive_string_conv *sconv; + struct archive_entry *entry_main; +@@ -504,7 +504,7 @@ + archive_entry_set_uname(temp, "root"); + archive_entry_set_gname(temp, "wheel"); + +- archive_entry_set_pathname(temp, "././@LongLink"); ++ archive_entry_set_pathname(temp, "././@LongName"); + archive_entry_set_size(temp, length); + ret = archive_format_gnutar_header(a, buff, temp, 'L'); + archive_entry_free(temp); +@@ -562,7 +562,7 @@ + + static int + archive_format_gnutar_header(struct archive_write *a, char h[512], +- struct archive_entry *entry, int tartype) ++ struct archive_entry *entry, char tartype) + { + unsigned int checksum; + int i, ret; +@@ -640,7 +640,7 @@ + if (format_number(archive_entry_uid(entry), h + GNUTAR_uid_offset, + GNUTAR_uid_size, GNUTAR_uid_max_size)) { + archive_set_error(&a->archive, ERANGE, +- "Numeric user ID %jd too large", ++ "Numeric user ID %jd too large for gnutar format", + (intmax_t)archive_entry_uid(entry)); + ret = ARCHIVE_FAILED; + } +@@ -649,7 +649,7 @@ + if (format_number(archive_entry_gid(entry), h + GNUTAR_gid_offset, + GNUTAR_gid_size, GNUTAR_gid_max_size)) { + archive_set_error(&a->archive, ERANGE, +- "Numeric group ID %jd too large", ++ "Numeric group ID %jd too large for gnutar format", + (intmax_t)archive_entry_gid(entry)); + ret = ARCHIVE_FAILED; + } +@@ -672,7 +672,7 @@ + h + GNUTAR_rdevmajor_offset, + GNUTAR_rdevmajor_size)) { + archive_set_error(&a->archive, ERANGE, +- "Major device number too large"); ++ "Major device number too large for gnutar format"); + ret = ARCHIVE_FAILED; + } + +@@ -680,7 +680,7 @@ + h + GNUTAR_rdevminor_offset, + GNUTAR_rdevminor_size)) { + archive_set_error(&a->archive, ERANGE, +- "Minor device number too large"); ++ "Minor device number too large for gnutar format"); + ret = ARCHIVE_FAILED; + } + } +--- contrib/libarchive/libarchive/archive_write_set_format_iso9660.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_iso9660.c +@@ -911,7 +911,7 @@ + static int iso9660_close(struct archive_write *); + static int iso9660_free(struct archive_write *); + +-static void get_system_identitier(char *, size_t); ++static void get_system_identifier(char *, size_t); + static void set_str(unsigned char *, const char *, size_t, char, + const char *); + static inline int joliet_allowed_char(unsigned char, unsigned char); +@@ -1167,7 +1167,12 @@ + iso9660->primary.rootent->parent = iso9660->primary.rootent; + iso9660->cur_dirent = iso9660->primary.rootent; + archive_string_init(&(iso9660->cur_dirstr)); +- archive_string_ensure(&(iso9660->cur_dirstr), 1); ++ if (archive_string_ensure(&(iso9660->cur_dirstr), 1) == NULL) { ++ free(iso9660); ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't allocate memory"); ++ return (ARCHIVE_FATAL); ++ } + iso9660->cur_dirstr.s[0] = 0; + iso9660->sconv_to_utf16be = NULL; + iso9660->sconv_from_utf16be = NULL; +@@ -2166,7 +2171,7 @@ + * Get the System Identifier + */ + static void +-get_system_identitier(char *system_id, size_t size) ++get_system_identifier(char *system_id, size_t size) + { + #if defined(HAVE_SYS_UTSNAME_H) + struct utsname u; +@@ -3872,7 +3877,7 @@ + /* Unused Field */ + set_unused_field_bp(bp, 8, 8); + /* System Identifier */ +- get_system_identitier(identifier, sizeof(identifier)); ++ get_system_identifier(identifier, sizeof(identifier)); + r = set_str_a_characters_bp(a, bp, 9, 40, identifier, vdc); + if (r != ARCHIVE_OK) + return (r); +@@ -4037,7 +4042,7 @@ + case KEY_HEX: + d = va_arg(ap, int); + archive_string_sprintf(info, "%c%s=%x", +- prefix, key, d); ++ prefix, key, (unsigned int)d); + break; + } + va_end(ap); +@@ -5666,9 +5671,15 @@ + * inserted. */ + iso9660->cur_dirent = dent; + archive_string_empty(&(iso9660->cur_dirstr)); +- archive_string_ensure(&(iso9660->cur_dirstr), ++ if (archive_string_ensure(&(iso9660->cur_dirstr), + archive_strlen(&(dent->file->parentdir)) + +- archive_strlen(&(dent->file->basename)) + 2); ++ archive_strlen(&(dent->file->basename)) + 2) == NULL) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't allocate memory"); ++ _isoent_free(isoent); ++ *isoentpp = NULL; ++ return (ARCHIVE_FATAL); ++ } + if (archive_strlen(&(dent->file->parentdir)) + + archive_strlen(&(dent->file->basename)) == 0) + iso9660->cur_dirstr.s[0] = 0; +--- contrib/libarchive/libarchive/archive_write_set_format_mtree.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_mtree.c +@@ -54,7 +54,7 @@ + int count; + }; + +-struct att_counter_set { ++struct attr_counter_set { + struct attr_counter *uid_list; + struct attr_counter *gid_list; + struct attr_counter *mode_list; +@@ -82,6 +82,7 @@ + struct reg_info { + int compute_sum; + uint32_t crc; ++ uint_least32_t mset_digest; + struct ae_digest digest; + }; + +@@ -141,7 +142,7 @@ + unsigned long fflags_set; + unsigned long fflags_clear; + } set; +- struct att_counter_set acs; ++ struct attr_counter_set acs; + int classic; + int depth; + +@@ -437,7 +438,7 @@ + { + struct archive_string setstr; + struct archive_string unsetstr; +- struct att_counter_set *acs; ++ struct attr_counter_set *acs; + int keys, oldkeys, effkeys; + + archive_string_init(&setstr); +@@ -638,7 +639,7 @@ + attr_counter_set_collect(struct mtree_writer *mtree, struct mtree_entry *me) + { + struct attr_counter *ac, *last; +- struct att_counter_set *acs = &mtree->acs; ++ struct attr_counter_set *acs = &mtree->acs; + int keys = mtree->keys; + + if (keys & (F_UNAME | F_UID)) { +@@ -714,7 +715,7 @@ + static void + attr_counter_set_free(struct mtree_writer *mtree) + { +- struct att_counter_set *acs = &mtree->acs; ++ struct attr_counter_set *acs = &mtree->acs; + + attr_counter_free(&acs->uid_list); + attr_counter_free(&acs->gid_list); +@@ -862,6 +863,50 @@ + free(me); + } + ++static void ++mtree_copy_ae_digests(struct reg_info *reg, struct archive_entry *entry, int compute_sum) ++{ ++ reg->compute_sum = compute_sum; ++ reg->mset_digest = entry->mset_digest; ++ ++ if ((reg->compute_sum & F_MD5) ++ && (reg->mset_digest & AE_MSET_DIGEST_MD5)) { ++ ++ memcpy(®->digest.md5, entry->digest.md5, ++ sizeof(reg->digest.md5)); ++ } ++ if ((reg->compute_sum & F_RMD160) ++ && (reg->mset_digest & AE_MSET_DIGEST_RMD160)) { ++ ++ memcpy(®->digest.rmd160, entry->digest.rmd160, ++ sizeof(reg->digest.rmd160)); ++ } ++ if ((reg->compute_sum & F_SHA1) ++ && (reg->mset_digest & AE_MSET_DIGEST_SHA1)) { ++ ++ memcpy(®->digest.sha1, entry->digest.sha1, ++ sizeof(reg->digest.sha1)); ++ } ++ if ((reg->compute_sum & F_SHA256) ++ && (reg->mset_digest & AE_MSET_DIGEST_SHA256)) { ++ ++ memcpy(®->digest.sha256, entry->digest.sha256, ++ sizeof(reg->digest.sha256)); ++ } ++ if ((reg->compute_sum & F_SHA384) ++ && (reg->mset_digest & AE_MSET_DIGEST_SHA384)) { ++ ++ memcpy(®->digest.sha384, entry->digest.sha384, ++ sizeof(reg->digest.sha384)); ++ } ++ if ((reg->compute_sum & F_SHA512) ++ && (reg->mset_digest & AE_MSET_DIGEST_SHA512)) { ++ ++ memcpy(®->digest.sha512, entry->digest.sha512, ++ sizeof(reg->digest.sha512)); ++ } ++} ++ + static int + archive_write_mtree_header(struct archive_write *a, + struct archive_entry *entry) +@@ -896,8 +941,12 @@ + /* If the current file is a regular file, we have to + * compute the sum of its content. + * Initialize a bunch of checksum context. */ +- if (mtree_entry->reg_info) ++ if (mtree_entry->reg_info) { + sum_init(mtree); ++ /* honor archive_entry_set_digest() calls. These values will be ++ * overwritten if archive_write_mtree_data() is called */ ++ mtree_copy_ae_digests(mtree_entry->reg_info, entry, mtree->compute_sum); ++ } + + return (r2); + } +@@ -1516,28 +1565,46 @@ + mtree->crc_len += n; + } + #ifdef ARCHIVE_HAS_MD5 +- if (mtree->compute_sum & F_MD5) ++ if (mtree->compute_sum & F_MD5) { + archive_md5_update(&mtree->md5ctx, buff, n); ++ mtree->mtree_entry->reg_info->mset_digest &= ++ ~AE_MSET_DIGEST_MD5; ++ } + #endif + #ifdef ARCHIVE_HAS_RMD160 +- if (mtree->compute_sum & F_RMD160) ++ if (mtree->compute_sum & F_RMD160) { + archive_rmd160_update(&mtree->rmd160ctx, buff, n); ++ mtree->mtree_entry->reg_info->mset_digest &= ++ ~AE_MSET_DIGEST_RMD160; ++ } + #endif + #ifdef ARCHIVE_HAS_SHA1 +- if (mtree->compute_sum & F_SHA1) ++ if (mtree->compute_sum & F_SHA1) { + archive_sha1_update(&mtree->sha1ctx, buff, n); ++ mtree->mtree_entry->reg_info->mset_digest &= ++ ~AE_MSET_DIGEST_SHA1; ++ } + #endif + #ifdef ARCHIVE_HAS_SHA256 +- if (mtree->compute_sum & F_SHA256) ++ if (mtree->compute_sum & F_SHA256) { + archive_sha256_update(&mtree->sha256ctx, buff, n); ++ mtree->mtree_entry->reg_info->mset_digest &= ++ ~AE_MSET_DIGEST_SHA256; ++ } + #endif + #ifdef ARCHIVE_HAS_SHA384 +- if (mtree->compute_sum & F_SHA384) ++ if (mtree->compute_sum & F_SHA384) { + archive_sha384_update(&mtree->sha384ctx, buff, n); ++ mtree->mtree_entry->reg_info->mset_digest &= ++ ~AE_MSET_DIGEST_SHA384; ++ } + #endif + #ifdef ARCHIVE_HAS_SHA512 +- if (mtree->compute_sum & F_SHA512) ++ if (mtree->compute_sum & F_SHA512) { + archive_sha512_update(&mtree->sha512ctx, buff, n); ++ mtree->mtree_entry->reg_info->mset_digest &= ++ ~AE_MSET_DIGEST_SHA512; ++ } + #endif + } + +@@ -1553,27 +1620,39 @@ + reg->crc = ~mtree->crc; + } + #ifdef ARCHIVE_HAS_MD5 +- if (mtree->compute_sum & F_MD5) ++ if ((mtree->compute_sum & F_MD5) ++ && !(reg->mset_digest & AE_MSET_DIGEST_MD5)) ++ + archive_md5_final(&mtree->md5ctx, reg->digest.md5); + #endif + #ifdef ARCHIVE_HAS_RMD160 +- if (mtree->compute_sum & F_RMD160) ++ if ((mtree->compute_sum & F_RMD160) ++ && !(reg->mset_digest & AE_MSET_DIGEST_RMD160)) ++ + archive_rmd160_final(&mtree->rmd160ctx, reg->digest.rmd160); + #endif + #ifdef ARCHIVE_HAS_SHA1 +- if (mtree->compute_sum & F_SHA1) ++ if ((mtree->compute_sum & F_SHA1) ++ && !(reg->mset_digest & AE_MSET_DIGEST_SHA1)) ++ + archive_sha1_final(&mtree->sha1ctx, reg->digest.sha1); + #endif + #ifdef ARCHIVE_HAS_SHA256 +- if (mtree->compute_sum & F_SHA256) ++ if ((mtree->compute_sum & F_SHA256) ++ && !(reg->mset_digest & AE_MSET_DIGEST_SHA256)) ++ + archive_sha256_final(&mtree->sha256ctx, reg->digest.sha256); + #endif + #ifdef ARCHIVE_HAS_SHA384 +- if (mtree->compute_sum & F_SHA384) ++ if ((mtree->compute_sum & F_SHA384) ++ && !(reg->mset_digest & AE_MSET_DIGEST_SHA384)) ++ + archive_sha384_final(&mtree->sha384ctx, reg->digest.sha384); + #endif + #ifdef ARCHIVE_HAS_SHA512 +- if (mtree->compute_sum & F_SHA512) ++ if ((mtree->compute_sum & F_SHA512) ++ && !(reg->mset_digest & AE_MSET_DIGEST_SHA512)) ++ + archive_sha512_final(&mtree->sha512ctx, reg->digest.sha512); + #endif + /* Save what types of sum are computed. */ +@@ -2130,9 +2209,13 @@ + * inserted. */ + mtree->cur_dirent = dent; + archive_string_empty(&(mtree->cur_dirstr)); +- archive_string_ensure(&(mtree->cur_dirstr), ++ if (archive_string_ensure(&(mtree->cur_dirstr), + archive_strlen(&(dent->parentdir)) + +- archive_strlen(&(dent->basename)) + 2); ++ archive_strlen(&(dent->basename)) + 2) == NULL) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't allocate memory"); ++ return (ARCHIVE_FATAL); ++ } + if (archive_strlen(&(dent->parentdir)) + + archive_strlen(&(dent->basename)) == 0) + mtree->cur_dirstr.s[0] = 0; +--- contrib/libarchive/libarchive/archive_write_set_format_pax.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_pax.c +@@ -1414,7 +1414,7 @@ + struct archive_entry *pax_attr_entry; + time_t s; + int64_t uid, gid; +- int mode; ++ __LA_MODE_T mode; + + pax_attr_entry = archive_entry_new2(&a->archive); + p = entry_name.s; +@@ -1571,7 +1571,7 @@ + const char *filename, *filename_end; + char *p; + int need_slash = 0; /* Was there a trailing slash? */ +- size_t suffix_length = 99; ++ size_t suffix_length = 98; /* 99 - 1 for trailing slash */ + size_t insert_length; + + /* Length of additional dir element to be added. */ +@@ -1623,7 +1623,7 @@ + /* Step 2: Locate the "prefix" section of the dirname, including + * trailing '/'. */ + prefix = src; +- prefix_end = prefix + 155; ++ prefix_end = prefix + 154 /* 155 - 1 for trailing / */; + if (prefix_end > filename) + prefix_end = filename; + while (prefix_end > prefix && *prefix_end != '/') +--- contrib/libarchive/libarchive/archive_write_set_format_xar.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_xar.c +@@ -34,6 +34,14 @@ + #include <stdlib.h> + #if HAVE_LIBXML_XMLWRITER_H + #include <libxml/xmlwriter.h> ++#if defined(LIBXML_VERSION) && LIBXML_VERSION >= 20703 ++#define XAR_WRITER_HAS_XML ++#endif /* LIBXML_VERSION */ ++#elif HAVE_XMLLITE_H ++#include <objidl.h> ++#include <initguid.h> ++#include <xmllite.h> ++#define XAR_WRITER_HAS_XML + #endif + #ifdef HAVE_BZLIB_H + #include <bzlib.h> +@@ -70,13 +78,12 @@ + * + */ + +-#if !(defined(HAVE_LIBXML_XMLWRITER_H) && defined(LIBXML_VERSION) &&\ +- LIBXML_VERSION >= 20703) ||\ ++#if !defined(XAR_WRITER_HAS_XML) ||\ + !defined(HAVE_ZLIB_H) || \ + !defined(ARCHIVE_HAS_MD5) || !defined(ARCHIVE_HAS_SHA1) + /* + * xar needs several external libraries. +- * o libxml2 ++ * o libxml2 or xmllite (on Windows) + * o openssl or MD5/SHA1 hash function + * o zlib + * o bzlib2 (option) +@@ -94,9 +101,26 @@ + + #else /* Support xar format */ + +-/*#define DEBUG_PRINT_TOC 1 */ ++struct xml_writer; ++static int xml_writer_create(struct xml_writer **pctx); ++static int xml_writer_start_document(struct xml_writer *ctx); ++static int xml_writer_end_document(struct xml_writer *ctx); ++static int xml_writer_set_indent(struct xml_writer *ctx, unsigned int indent); ++static int xml_writer_start_element(struct xml_writer *ctx, ++ const char *localName); ++static int xml_writer_write_attribute(struct xml_writer *ctx, const char *key, ++ const char *value); ++static int xml_writer_write_attributef(struct xml_writer *ctx, const char *key, ++ const char *format, ...); ++static int xml_writer_write_string(struct xml_writer *ctx, const char *string); ++static int xml_writer_write_base64(struct xml_writer* ctx, ++ const char *data, size_t start, size_t len); ++static int xml_writer_end_element(struct xml_writer *ctx); ++static int xml_writer_get_final_content_and_length(struct xml_writer *ctx, ++ const char **out, size_t *size); ++static int xml_writer_destroy(struct xml_writer *ctx); + +-#define BAD_CAST_CONST (const xmlChar *) ++/*#define DEBUG_PRINT_TOC 1 */ + + #define HEADER_MAGIC 0x78617221 + #define HEADER_SIZE 28 +@@ -807,50 +831,49 @@ + } + + static int +-xmlwrite_string_attr(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_string_attr(struct archive_write *a, struct xml_writer *writer, + const char *key, const char *value, + const char *attrkey, const char *attrvalue) + { + int r; + +- r = xmlTextWriterStartElement(writer, BAD_CAST_CONST(key)); ++ r = xml_writer_start_element(writer, key); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + if (attrkey != NULL && attrvalue != NULL) { +- r = xmlTextWriterWriteAttribute(writer, +- BAD_CAST_CONST(attrkey), BAD_CAST_CONST(attrvalue)); ++ r = xml_writer_write_attribute(writer, attrkey, attrvalue); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteAttribute() failed: %d", r); ++ "xml_writer_write_attribute() failed: %d", r); + return (ARCHIVE_FATAL); + } + } + if (value != NULL) { +- r = xmlTextWriterWriteString(writer, BAD_CAST_CONST(value)); ++ r = xml_writer_write_string(writer, value); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteString() failed: %d", r); ++ "xml_writer_write_string() failed: %d", r); + return (ARCHIVE_FATAL); + } + } +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + return (ARCHIVE_OK); + } + + static int +-xmlwrite_string(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_string(struct archive_write *a, struct xml_writer *writer, + const char *key, const char *value) + { + int r; +@@ -858,34 +881,34 @@ + if (value == NULL) + return (ARCHIVE_OK); + +- r = xmlTextWriterStartElement(writer, BAD_CAST_CONST(key)); ++ r = xml_writer_start_element(writer, key); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + if (value != NULL) { +- r = xmlTextWriterWriteString(writer, BAD_CAST_CONST(value)); ++ r = xml_writer_write_string(writer, value); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteString() failed: %d", r); ++ "xml_writer_write_string() failed: %d", r); + return (ARCHIVE_FATAL); + } + } +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + return (ARCHIVE_OK); + } + + static int +-xmlwrite_fstring(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_fstring(struct archive_write *a, struct xml_writer *writer, + const char *key, const char *fmt, ...) + { + struct xar *xar; +@@ -900,7 +923,7 @@ + } + + static int +-xmlwrite_time(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_time(struct archive_write *a, struct xml_writer *writer, + const char *key, time_t t, int z) + { + char timestr[100]; +@@ -922,7 +945,7 @@ + } + + static int +-xmlwrite_mode(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_mode(struct archive_write *a, struct xml_writer *writer, + const char *key, mode_t mode) + { + char ms[5]; +@@ -937,7 +960,7 @@ + } + + static int +-xmlwrite_sum(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_sum(struct archive_write *a, struct xml_writer *writer, + const char *key, struct chksumval *sum) + { + const char *algname; +@@ -971,7 +994,7 @@ + } + + static int +-xmlwrite_heap(struct archive_write *a, xmlTextWriterPtr writer, ++xmlwrite_heap(struct archive_write *a, struct xml_writer *writer, + struct heap_data *heap) + { + const char *encname; +@@ -1029,7 +1052,7 @@ + * Our implements records both <flags> and <ext2> if it's necessary. + */ + static int +-make_fflags_entry(struct archive_write *a, xmlTextWriterPtr writer, ++make_fflags_entry(struct archive_write *a, struct xml_writer *writer, + const char *element, const char *fflags_text) + { + static const struct flagentry { +@@ -1119,11 +1142,11 @@ + } while (p != NULL); + + if (n > 0) { +- r = xmlTextWriterStartElement(writer, BAD_CAST_CONST(element)); ++ r = xml_writer_start_element(writer, element); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + for (i = 0; i < n; i++) { +@@ -1133,29 +1156,59 @@ + return (r); + } + +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + } + return (ARCHIVE_OK); + } + ++/* ++ * This function determines whether a UTF-8 string contains ++ * only codepoints that are convertible to Latin-1. Strings ++ * beyond Latin-1 are stored base64-encoded in the XAR TOC. ++ */ + static int +-make_file_entry(struct archive_write *a, xmlTextWriterPtr writer, ++is_u8_zstring_latin1(const char *in) ++{ ++ unsigned int c; ++ while (*in) { ++ c = *in++; ++ if (c < 0x80) continue; ++ /* ++ * Filter out non-continuation, any continuation of 2-3 ++ * bytes, and any continuation of 1 byte whose high 3 bits ++ * are non-zero. Recall, 1-byte continuations can store 11 ++ * bits whereas Latin-1 codepoints are only 8 bits wide. ++ */ ++ if ((c & 0xFC) != 0xC0) ++ return (0); ++ c = *in++; ++ /* ++ * If we get any non-continuation byte (including 0x00!), ++ * the string is not valid UTF-8. ++ */ ++ if ((c & 0xC0) != 0x80) ++ return (0); /* invalid unicode */ ++ } ++ return (1); ++} ++ ++static int ++make_file_entry(struct archive_write *a, struct xml_writer *writer, + struct file *file) + { + struct xar *xar; + const char *filetype, *filelink, *fflags; + struct archive_string linkto; + struct heap_data *heap; +- unsigned char *tmp; + const char *p; + size_t len; +- int r, r2, l, ll; ++ int r, r2; + + xar = (struct xar *)a->format_data; + r2 = ARCHIVE_OK; +@@ -1163,44 +1216,35 @@ + /* + * Make a file name entry, "<name>". + */ +- l = ll = (int)archive_strlen(&(file->basename)); +- tmp = malloc(l); +- if (tmp == NULL) { +- archive_set_error(&a->archive, ENOMEM, +- "Can't allocate memory"); +- return (ARCHIVE_FATAL); +- } +- r = UTF8Toisolat1(tmp, &l, BAD_CAST(file->basename.s), &ll); +- free(tmp); +- if (r < 0) { +- r = xmlTextWriterStartElement(writer, BAD_CAST("name")); ++ if (!is_u8_zstring_latin1(file->basename.s)) { ++ r = xml_writer_start_element(writer, "name"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } +- r = xmlTextWriterWriteAttribute(writer, +- BAD_CAST("enctype"), BAD_CAST("base64")); ++ r = xml_writer_write_attribute(writer, ++ "enctype", "base64"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteAttribute() failed: %d", r); ++ "xml_writer_write_attribute() failed: %d", r); + return (ARCHIVE_FATAL); + } +- r = xmlTextWriterWriteBase64(writer, file->basename.s, ++ r = xml_writer_write_base64(writer, file->basename.s, + 0, (int)archive_strlen(&(file->basename))); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteBase64() failed: %d", r); ++ "xml_writer_write_base64() failed: %d", r); + return (ARCHIVE_FATAL); + } +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + } else { +@@ -1281,11 +1325,11 @@ + break; + case AE_IFCHR: + case AE_IFBLK: +- r = xmlTextWriterStartElement(writer, BAD_CAST("device")); ++ r = xml_writer_start_element(writer, "device"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + r = xmlwrite_fstring(a, writer, "major", +@@ -1296,11 +1340,11 @@ + "%d", archive_entry_rdevminor(file->entry)); + if (r < 0) + return (ARCHIVE_FATAL); +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + break; +@@ -1436,19 +1480,19 @@ + + archive_entry_xattr_next(file->entry, + &name, &value, &size); +- r = xmlTextWriterStartElement(writer, BAD_CAST("ea")); ++ r = xml_writer_start_element(writer, "ea"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } +- r = xmlTextWriterWriteFormatAttribute(writer, +- BAD_CAST("id"), "%d", heap->id); ++ r = xml_writer_write_attributef(writer, ++ "id", "%d", heap->id); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteAttribute() failed: %d", r); ++ "xml_writer_write_attributef() failed: %d", r); + return (ARCHIVE_FATAL); + } + r = xmlwrite_heap(a, writer, heap); +@@ -1458,11 +1502,11 @@ + if (r < 0) + return (ARCHIVE_FATAL); + +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + } +@@ -1471,11 +1515,11 @@ + * Make a file data entry, "<data>". + */ + if (file->data.length > 0) { +- r = xmlTextWriterStartElement(writer, BAD_CAST("data")); ++ r = xml_writer_start_element(writer, "data"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + +@@ -1483,21 +1527,21 @@ + if (r < 0) + return (ARCHIVE_FATAL); + +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + } + + if (archive_strlen(&file->script) > 0) { +- r = xmlTextWriterStartElement(writer, BAD_CAST("content")); ++ r = xml_writer_start_element(writer, "content"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + +@@ -1510,11 +1554,11 @@ + if (r < 0) + return (ARCHIVE_FATAL); + +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + return (ARCHIVE_FATAL); + } + } +@@ -1530,8 +1574,9 @@ + { + struct xar *xar; + struct file *np; +- xmlBufferPtr bp; +- xmlTextWriterPtr writer; ++ struct xml_writer *writer; ++ const char* content; ++ size_t use; + int algsize; + int r, ret; + +@@ -1543,51 +1588,43 @@ + * Initialize xml writer. + */ + writer = NULL; +- bp = xmlBufferCreate(); +- if (bp == NULL) { +- archive_set_error(&a->archive, ENOMEM, +- "xmlBufferCreate() " +- "couldn't create xml buffer"); +- goto exit_toc; +- } +- writer = xmlNewTextWriterMemory(bp, 0); +- if (writer == NULL) { ++ r = xml_writer_create(&writer); ++ if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlNewTextWriterMemory() " +- "couldn't create xml writer"); ++ "xml_writer_create() failed: %d", r); + goto exit_toc; + } +- r = xmlTextWriterStartDocument(writer, "1.0", "UTF-8", NULL); ++ r = xml_writer_set_indent(writer, 4); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartDocument() failed: %d", r); ++ "xml_writer_set_indent() failed: %d", r); + goto exit_toc; + } +- r = xmlTextWriterSetIndent(writer, 4); ++ r = xml_writer_start_document(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterSetIndent() failed: %d", r); ++ "xml_writer_start_document() failed: %d", r); + goto exit_toc; + } + + /* + * Start recording TOC + */ +- r = xmlTextWriterStartElement(writer, BAD_CAST("xar")); ++ r = xml_writer_start_element(writer, "xar"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + goto exit_toc; + } +- r = xmlTextWriterStartElement(writer, BAD_CAST("toc")); ++ r = xml_writer_start_element(writer, "toc"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartDocument() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + goto exit_toc; + } + +@@ -1606,19 +1643,19 @@ + /* + * Record TOC checksum + */ +- r = xmlTextWriterStartElement(writer, BAD_CAST("checksum")); ++ r = xml_writer_start_element(writer, "checksum"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() failed: %d", r); ++ "xml_writer_start_element() failed: %d", r); + goto exit_toc; + } +- r = xmlTextWriterWriteAttribute(writer, BAD_CAST("style"), +- BAD_CAST_CONST(getalgname(xar->opt_toc_sumalg))); ++ r = xml_writer_write_attribute(writer, "style", ++ getalgname(xar->opt_toc_sumalg)); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteAttribute() failed: %d", r); ++ "xml_writer_write_attribute() failed: %d", r); + goto exit_toc; + } + +@@ -1636,11 +1673,11 @@ + if (r < 0) + goto exit_toc; + +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() failed: %d", r); ++ "xml_writer_end_element() failed: %d", r); + goto exit_toc; + } + } +@@ -1656,32 +1693,32 @@ + if (np->dir && np->children.first != NULL) { + /* Enter to sub directories. */ + np = np->children.first; +- r = xmlTextWriterStartElement(writer, +- BAD_CAST("file")); ++ r = xml_writer_start_element(writer, ++ "file"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() " ++ "xml_writer_start_element() " + "failed: %d", r); + goto exit_toc; + } +- r = xmlTextWriterWriteFormatAttribute( +- writer, BAD_CAST("id"), "%d", np->id); ++ r = xml_writer_write_attributef( ++ writer, "id", "%d", np->id); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteAttribute() " ++ "xml_writer_write_attributef() " + "failed: %d", r); + goto exit_toc; + } + continue; + } + while (np != np->parent) { +- r = xmlTextWriterEndElement(writer); ++ r = xml_writer_end_element(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndElement() " ++ "xml_writer_end_element() " + "failed: %d", r); + goto exit_toc; + } +@@ -1690,21 +1727,21 @@ + np = np->parent; + } else { + np = np->chnext; +- r = xmlTextWriterStartElement(writer, +- BAD_CAST("file")); ++ r = xml_writer_start_element(writer, ++ "file"); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterStartElement() " ++ "xml_writer_start_element() " + "failed: %d", r); + goto exit_toc; + } +- r = xmlTextWriterWriteFormatAttribute( +- writer, BAD_CAST("id"), "%d", np->id); ++ r = xml_writer_write_attributef( ++ writer, "id", "%d", np->id); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterWriteAttribute() " ++ "xml_writer_write_attributef() " + "failed: %d", r); + goto exit_toc; + } +@@ -1713,31 +1750,40 @@ + } + } while (np != np->parent); + +- r = xmlTextWriterEndDocument(writer); ++ r = xml_writer_end_document(writer); + if (r < 0) { + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, +- "xmlTextWriterEndDocument() failed: %d", r); ++ "xml_writer_end_document() failed: %d", r); + goto exit_toc; + } ++ ++ r = xml_writer_get_final_content_and_length(writer, &content, &use); ++ if (r < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "xml_writer_get_final_content_and_length() failed: %d", r); ++ goto exit_toc; ++ } ++ + #if DEBUG_PRINT_TOC + fprintf(stderr, "\n---TOC-- %d bytes --\n%s\n", +- strlen((const char *)bp->content), bp->content); ++ (int)strlen(content), content); + #endif + + /* + * Compress the TOC and calculate the sum of the TOC. + */ + xar->toc.temp_offset = xar->temp_offset; +- xar->toc.size = bp->use; ++ xar->toc.size = (uint64_t)use; + checksum_init(&(xar->a_sumwrk), xar->opt_toc_sumalg); + + r = compression_init_encoder_gzip(&(a->archive), + &(xar->stream), 6, 1); + if (r != ARCHIVE_OK) + goto exit_toc; +- xar->stream.next_in = bp->content; +- xar->stream.avail_in = bp->use; ++ xar->stream.next_in = (const unsigned char *)content; ++ xar->stream.avail_in = use; + xar->stream.total_in = 0; + xar->stream.next_out = xar->wbuff; + xar->stream.avail_out = sizeof(xar->wbuff); +@@ -1768,9 +1814,7 @@ + ret = ARCHIVE_OK; + exit_toc: + if (writer) +- xmlFreeTextWriter(writer); +- if (bp) +- xmlBufferFree(bp); ++ xml_writer_destroy(writer); + + return (ret); + } +@@ -3251,4 +3295,404 @@ + } + } + ++#if HAVE_LIBXML_XMLWRITER_H ++ ++#define BAD_CAST_CONST (const xmlChar *) ++ ++struct xml_writer { ++ xmlTextWriterPtr writer; ++ xmlBufferPtr bp; ++ unsigned int indent; ++}; ++ ++static int ++xml_writer_create(struct xml_writer **pctx) ++{ ++ struct xml_writer *ctx = calloc(1, sizeof(struct xml_writer)); ++ if (ctx == NULL) { ++ return (-1); ++ } ++ ++ ctx->bp = xmlBufferCreate(); ++ if (ctx->bp == NULL) { ++ free(ctx); ++ return (-1); ++ } ++ ++ ctx->writer = xmlNewTextWriterMemory(ctx->bp, 0); ++ if (ctx->writer == NULL) { ++ xmlBufferFree(ctx->bp); ++ free(ctx); ++ return (-1); ++ } ++ ++ *pctx = ctx; ++ return (0); ++} ++ ++static int ++xml_writer_destroy(struct xml_writer *ctx) ++{ ++ xmlFreeTextWriter(ctx->writer); ++ xmlBufferFree(ctx->bp); ++ free(ctx); ++ return (0); ++} ++ ++static int ++xml_writer_start_document(struct xml_writer *ctx) ++{ ++ int r; ++ r = xmlTextWriterStartDocument(ctx->writer, "1.0", "UTF-8", NULL); ++ if (r < 0) { ++ return (r); ++ } ++ ++ r = xmlTextWriterSetIndent(ctx->writer, (int)ctx->indent); ++ return (r); ++} ++ ++static int ++xml_writer_end_document(struct xml_writer *ctx) ++{ ++ return (xmlTextWriterEndDocument(ctx->writer)); ++} ++ ++static int ++xml_writer_set_indent(struct xml_writer *ctx, unsigned int indent) ++{ ++ /* libxml2 only lets you set the indent after starting the document */ ++ ctx->indent = indent; ++ return (0); ++} ++ ++static int ++xml_writer_start_element(struct xml_writer *ctx, const char *localName) ++{ ++ return (xmlTextWriterStartElement(ctx->writer, ++ BAD_CAST_CONST(localName))); ++} ++ ++static int ++xml_writer_write_attribute(struct xml_writer *ctx, ++ const char *key, const char *value) ++{ ++ return (xmlTextWriterWriteAttribute(ctx->writer, ++ BAD_CAST_CONST(key), BAD_CAST_CONST(value))); ++} ++ ++static int ++xml_writer_write_attributef(struct xml_writer *ctx, ++ const char *key, const char *format, ...) ++{ ++ va_list ap; ++ int ret; ++ va_start(ap, format); ++ ret = xmlTextWriterWriteVFormatAttribute(ctx->writer, ++ BAD_CAST_CONST(key), format, ap); ++ va_end(ap); ++ return (ret); ++} ++ ++static int ++xml_writer_write_string(struct xml_writer *ctx, const char *string) ++{ ++ return (xmlTextWriterWriteString(ctx->writer, BAD_CAST_CONST(string))); ++} ++ ++static int ++xml_writer_write_base64(struct xml_writer* ctx, ++ const char *data, size_t start, size_t len) ++{ ++ return (xmlTextWriterWriteBase64(ctx->writer, data, ++ (int)start, (int)len)); ++} ++ ++static int ++xml_writer_end_element(struct xml_writer *ctx) ++{ ++ return (xmlTextWriterEndElement(ctx->writer)); ++} ++ ++static int ++xml_writer_get_final_content_and_length(struct xml_writer *ctx, ++ const char **out, size_t *size) ++{ ++ *out = (const char*)ctx->bp->content; ++ *size = (size_t)ctx->bp->use; ++ return (0); ++} ++ ++#elif HAVE_XMLLITE_H ++ ++struct xml_writer { ++ IXmlWriter *writer; ++ IStream *stream; ++ HGLOBAL global; ++}; ++ ++static int ++xml_writer_create(struct xml_writer **pctx) ++{ ++ struct xml_writer *ctx; ++ HRESULT hr; ++ ++ ctx = calloc(1, sizeof(struct xml_writer)); ++ if (ctx == NULL) { ++ return (E_OUTOFMEMORY); ++ } ++ ++ hr = CreateStreamOnHGlobal(NULL, TRUE, &ctx->stream); ++ if (FAILED(hr)) { ++ free(ctx); ++ return (hr); ++ } ++ ++ hr = CreateXmlWriter(&IID_IXmlWriter, (void **)&ctx->writer, NULL); ++ if (FAILED(hr)) { ++ ctx->stream->lpVtbl->Release(ctx->stream); ++ free(ctx); ++ return (hr); ++ } ++ ++ hr = ctx->writer->lpVtbl->SetOutput(ctx->writer, ++ (IUnknown *)ctx->stream); ++ if (FAILED(hr)) { ++ ctx->writer->lpVtbl->Release(ctx->writer); ++ ctx->stream->lpVtbl->Release(ctx->stream); ++ free(ctx); ++ return (hr); ++ } ++ ++ *pctx = ctx; ++ return (S_OK); ++} ++ ++static int ++xml_writer_destroy(struct xml_writer *ctx) ++{ ++ if (ctx->global) ++ GlobalUnlock(ctx->global); ++ ctx->writer->lpVtbl->Release(ctx->writer); /* Destroys only writer */ ++ ctx->stream->lpVtbl->Release(ctx->stream); /* Destroys stream, global */ ++ free(ctx); ++ return (S_OK); ++} ++ ++static int ++xml_writer_start_document(struct xml_writer *ctx) ++{ ++ return ctx->writer->lpVtbl->WriteStartDocument(ctx->writer, ++ XmlStandalone_Omit); ++} ++ ++static int ++xml_writer_end_document(struct xml_writer *ctx) ++{ ++ return ctx->writer->lpVtbl->WriteEndDocument(ctx->writer); ++} ++ ++static int ++xml_writer_set_indent(struct xml_writer *ctx, unsigned int indent) ++{ ++ /* Windows' xmllite does not support indent sizes; will always be 2 */ ++ (void)indent; ++ return ctx->writer->lpVtbl->SetProperty(ctx->writer, ++ XmlWriterProperty_Indent, (LONG_PTR)TRUE); ++} ++ ++static int ++xml_writer_start_element(struct xml_writer *ctx, const char *localName) ++{ ++ struct archive_wstring as; ++ HRESULT hr; ++ archive_string_init(&as); ++ if (archive_wstring_append_from_mbs(&as, localName, ++ strlen(localName))) { ++ hr = E_OUTOFMEMORY; ++ goto exit_hr; ++ } ++ hr = ctx->writer->lpVtbl->WriteStartElement(ctx->writer, NULL, ++ as.s, NULL); ++ ++exit_hr: ++ archive_wstring_free(&as); ++ return hr; ++} ++ ++static int ++xml_writer_write_attribute(struct xml_writer *ctx, ++ const char *key, const char *value) ++{ ++ struct archive_wstring ask, asv; ++ HRESULT hr; ++ archive_string_init(&ask); ++ archive_string_init(&asv); ++ if (archive_wstring_append_from_mbs(&ask, key, strlen(key))) { ++ hr = E_OUTOFMEMORY; ++ goto exit_hr; ++ } ++ if (archive_wstring_append_from_mbs(&asv, value, strlen(value))) { ++ hr = E_OUTOFMEMORY; ++ goto exit_hr; ++ } ++ hr = ctx->writer->lpVtbl->WriteAttributeString(ctx->writer, NULL, ++ ask.s, NULL, asv.s); ++ ++exit_hr: ++ archive_wstring_free(&asv); ++ archive_wstring_free(&ask); ++ return hr; ++} ++ ++static int ++xml_writer_write_attributef(struct xml_writer *ctx, ++ const char *key, const char *format, ...) ++{ ++ struct archive_wstring ask, asv; ++ struct archive_string asf; ++ HRESULT hr; ++ va_list ap; ++ ++ va_start(ap, format); ++ archive_string_init(&ask); ++ archive_string_init(&asv); ++ archive_string_init(&asf); ++ ++ if (archive_wstring_append_from_mbs(&ask, key, strlen(key))) { ++ hr = E_OUTOFMEMORY; ++ goto exit_hr; ++ } ++ ++ archive_string_vsprintf(&asf, format, ap); ++ if (archive_wstring_append_from_mbs(&asv, asf.s, asf.length)) { ++ hr = E_OUTOFMEMORY; ++ goto exit_hr; ++ } ++ ++ hr = ctx->writer->lpVtbl->WriteAttributeString(ctx->writer, NULL, ++ ask.s, NULL, asv.s); ++ ++exit_hr: ++ archive_string_free(&asf); ++ archive_wstring_free(&asv); ++ archive_wstring_free(&ask); ++ va_end(ap); ++ ++ return hr; ++} ++ ++static int ++xml_writer_write_string(struct xml_writer *ctx, const char *string) ++{ ++ struct archive_wstring as; ++ HRESULT hr; ++ archive_string_init(&as); ++ if (archive_wstring_append_from_mbs(&as, string, strlen(string))) { ++ hr = E_OUTOFMEMORY; ++ goto exit_hr; ++ } ++ hr = ctx->writer->lpVtbl->WriteString(ctx->writer, as.s); ++ ++exit_hr: ++ archive_wstring_free(&as); ++ return hr; ++} ++ ++static const wchar_t base64[] = { ++ L'A', L'B', L'C', L'D', L'E', L'F', L'G', L'H', ++ L'I', L'J', L'K', L'L', L'M', L'N', L'O', L'P', ++ L'Q', L'R', L'S', L'T', L'U', L'V', L'W', L'X', ++ L'Y', L'Z', L'a', L'b', L'c', L'd', L'e', L'f', ++ L'g', L'h', L'i', L'j', L'k', L'l', L'm', L'n', ++ L'o', L'p', L'q', L'r', L's', L't', L'u', L'v', ++ L'w', L'x', L'y', L'z', L'0', L'1', L'2', L'3', ++ L'4', L'5', L'6', L'7', L'8', L'9', L'+', L'/' ++}; ++ ++static void ++la_b64_wencode(struct archive_wstring *as, const unsigned char *p, size_t len) ++{ ++ int c; ++ ++ for (; len >= 3; p += 3, len -= 3) { ++ c = p[0] >> 2; ++ archive_wstrappend_wchar(as, base64[c]); ++ c = ((p[0] & 0x03) << 4) | ((p[1] & 0xf0) >> 4); ++ archive_wstrappend_wchar(as, base64[c]); ++ c = ((p[1] & 0x0f) << 2) | ((p[2] & 0xc0) >> 6); ++ archive_wstrappend_wchar(as, base64[c]); ++ c = p[2] & 0x3f; ++ archive_wstrappend_wchar(as, base64[c]); ++ } ++ if (len > 0) { ++ c = p[0] >> 2; ++ archive_wstrappend_wchar(as, base64[c]); ++ c = (p[0] & 0x03) << 4; ++ if (len == 1) { ++ archive_wstrappend_wchar(as, base64[c]); ++ archive_wstrappend_wchar(as, '='); ++ archive_wstrappend_wchar(as, '='); ++ } else { ++ c |= (p[1] & 0xf0) >> 4; ++ archive_wstrappend_wchar(as, base64[c]); ++ c = (p[1] & 0x0f) << 2; ++ archive_wstrappend_wchar(as, base64[c]); ++ archive_wstrappend_wchar(as, '='); ++ } ++ } ++} ++ ++static int ++xml_writer_write_base64(struct xml_writer* ctx, ++ const char *data, size_t start, size_t len) ++{ ++ struct archive_wstring as; ++ HRESULT hr; ++ archive_string_init(&as); ++ la_b64_wencode(&as, (const unsigned char *)data + start, len - start); ++ hr = ctx->writer->lpVtbl->WriteString(ctx->writer, as.s); ++ archive_wstring_free(&as); ++ return hr; ++} ++ ++static int ++xml_writer_end_element(struct xml_writer *ctx) ++{ ++ return ctx->writer->lpVtbl->WriteEndElement(ctx->writer); ++} ++ ++static int ++xml_writer_get_final_content_and_length(struct xml_writer *ctx, ++ const char **out, size_t *size) ++{ ++ HGLOBAL gbl; ++ HRESULT hr; ++ ++ hr = ctx->writer->lpVtbl->Flush(ctx->writer); ++ if (FAILED(hr)) { ++ return (hr); ++ } ++ ++ hr = GetHGlobalFromStream(ctx->stream, &gbl); ++ if (FAILED(hr)) { ++ return (hr); ++ } ++ ++ *out = (const char *)GlobalLock(gbl); ++ if (*out == NULL) { ++ hr = HRESULT_FROM_WIN32(GetLastError()); ++ return (hr); ++ } ++ ++ /* GlobalUnlock is called in ++ * xml_writer_destroy. ++ */ ++ *size = (size_t)GlobalSize(gbl); ++ ctx->global = gbl; ++ return (hr); ++} ++ ++#endif /* HAVE_LIBXML_XMLWRITER_H */ ++ + #endif /* Support xar format */ +--- contrib/libarchive/libarchive/archive_write_set_format_zip.c.orig ++++ contrib/libarchive/libarchive/archive_write_set_format_zip.c +@@ -43,9 +43,24 @@ + #ifdef HAVE_STRING_H + #include <string.h> + #endif ++#ifdef HAVE_LIMITS_H ++#include <limits.h> ++#endif ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif + #ifdef HAVE_ZLIB_H + #include <zlib.h> + #endif ++#ifdef HAVE_LZMA_H ++#include <lzma.h> ++#endif ++#ifdef HAVE_BZLIB_H ++#include <bzlib.h> ++#endif ++#ifdef HAVE_ZSTD_H ++#include <zstd.h> ++#endif + + #include "archive.h" + #include "archive_cryptor_private.h" +@@ -55,6 +70,7 @@ + #include "archive_hmac_private.h" + #include "archive_private.h" + #include "archive_random_private.h" ++#include "archive_time_private.h" + #include "archive_write_private.h" + #include "archive_write_set_format_private.h" + +@@ -62,8 +78,12 @@ + #include "archive_crc32.h" + #endif + +-#define ZIP_ENTRY_FLAG_ENCRYPTED (1<<0) +-#define ZIP_ENTRY_FLAG_LENGTH_AT_END (1<<3) ++#define ZIP_ENTRY_FLAG_ENCRYPTED (1 << 0) ++#define ZIP_ENTRY_FLAG_LZMA_EOPM (1 << 1) ++#define ZIP_ENTRY_FLAG_DEFLATE_MAX (1 << 1) /* i.e. compression levels 8 & 9 */ ++#define ZIP_ENTRY_FLAG_DEFLATE_FAST (1 << 2) /* i.e. compression levels 3 & 4 */ ++#define ZIP_ENTRY_FLAG_DEFLATE_SUPER_FAST (1 << 1) | (1 << 2) /* i.e. compression levels 1 & 2 */ ++#define ZIP_ENTRY_FLAG_LENGTH_AT_END (1 << 3) + #define ZIP_ENTRY_FLAG_UTF8_NAME (1 << 11) + + #define ZIP_4GB_MAX ARCHIVE_LITERAL_LL(0xffffffff) +@@ -72,7 +92,11 @@ + enum compression { + COMPRESSION_UNSPECIFIED = -1, + COMPRESSION_STORE = 0, +- COMPRESSION_DEFLATE = 8 ++ COMPRESSION_DEFLATE = 8, ++ COMPRESSION_BZIP2 = 12, ++ COMPRESSION_LZMA = 14, ++ COMPRESSION_ZSTD = 93, ++ COMPRESSION_XZ = 95 + }; + + #ifdef HAVE_ZLIB_H +@@ -119,7 +143,6 @@ + }; + + struct zip { +- + int64_t entry_offset; + int64_t entry_compressed_size; + int64_t entry_uncompressed_size; +@@ -155,17 +178,45 @@ + struct archive_string_conv *opt_sconv; + struct archive_string_conv *sconv_default; + enum compression requested_compression; +- int deflate_compression_level; ++ short compression_level; + int init_default_conversion; +- enum encryption encryption_type; ++ enum encryption encryption_type; ++ short threads; + + #define ZIP_FLAG_AVOID_ZIP64 1 + #define ZIP_FLAG_FORCE_ZIP64 2 + #define ZIP_FLAG_EXPERIMENT_xl 4 + int flags; +- ++#if defined(HAVE_LZMA_H) || defined(HAVE_ZLIB_H) || defined(HAVE_BZLIB_H) || defined(HAVE_ZSTD_H) ++ union { ++#ifdef HAVE_LZMA_H ++ /* ZIP's XZ format (id 95) is easy enough: copy Deflate, mutatis ++ * mutandis the library changes. ZIP's LZMA format (id 14), ++ * however, is rather more involved, starting here: it being a ++ * modified LZMA Alone format requires a bit more ++ * book-keeping. */ ++ struct { ++ char headers_to_write; ++ lzma_options_lzma options; ++ lzma_stream context; ++ } lzma; ++#endif + #ifdef HAVE_ZLIB_H +- z_stream stream; ++ z_stream deflate; ++#endif ++#ifdef HAVE_BZLIB_H ++ bz_stream bzip2; ++#endif ++#if defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream ++ struct { ++ /* Libzstd's init function gives a pointer to a memory area ++ * it manages rather than asking for memory to initialise. */ ++ ZSTD_CStream* context; ++ ZSTD_inBuffer in; ++ ZSTD_outBuffer out; ++ } zstd; ++#endif ++ } stream; + #endif + size_t len_buf; + unsigned char *buf; +@@ -184,7 +235,6 @@ + struct archive_entry *); + static int archive_write_zip_options(struct archive_write *, + const char *, const char *); +-static unsigned int dos_time(const time_t); + static size_t path_length(struct archive_entry *); + static int write_path(struct archive_entry *, struct archive_write *); + static void copy_path(struct archive_entry *, unsigned char *); +@@ -197,6 +247,44 @@ + static int init_winzip_aes_encryption(struct archive_write *); + static int is_winzip_aes_encryption_supported(int encryption); + ++#ifdef HAVE_LZMA_H ++/* ZIP's LZMA format requires the use of a alas not exposed in LibLZMA ++ * function to write the ZIP header. Given our internal version never ++ * fails, no need for a non-void return type. */ ++static void ++lzma_lzma_props_encode(const lzma_options_lzma* options, uint8_t* out) ++{ ++ out[0] = (options->pb * 5 + options->lp) * 9 + options->lc; ++ archive_le32enc(out + 1, options->dict_size); ++} ++#endif ++ ++#if defined(HAVE_LZMA_H) && !defined(HAVE_LZMA_STREAM_ENCODER_MT) ++/* Dummy mt declarations, to avoid spaghetti includes below. Defined with ++ * macros being renamed afterwards to shadow liblzma's types in order to ++ * avoid some compiler errors. */ ++#define lzma_stream_encoder_mt(str, opt) dummy_mt(str, opt) ++#define lzma_mt dummy_options ++ ++typedef struct { ++ void* filters; ++ uint32_t preset; ++ lzma_check check; ++ short threads; ++ char flags; ++ char block_size; ++ char timeout; ++} dummy_options; ++ ++static inline lzma_ret ++dummy_mt(lzma_stream* stream, const lzma_mt* options) ++{ ++ (void)stream; /* UNUSED */ ++ (void)options; /* UNUSED */ ++ return LZMA_PROG_ERROR; ++} ++#endif ++ + static unsigned char * + cd_alloc(struct zip *zip, size_t length) + { +@@ -274,26 +362,104 @@ + } else if (strcmp(val, "store") == 0) { + zip->requested_compression = COMPRESSION_STORE; + ret = ARCHIVE_OK; ++ } else if (strcmp(val, "bzip2") == 0) { ++#ifdef HAVE_BZLIB_H ++ zip->requested_compression = COMPRESSION_BZIP2; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "bzip2 compression not supported"); ++#endif ++ } else if (strcmp(val, "lzma") == 0) { ++#ifdef HAVE_LZMA_H ++ zip->requested_compression = COMPRESSION_LZMA; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "lzma compression not supported"); ++#endif ++ } else if (strcmp(val, "xz") == 0) { ++#ifdef HAVE_LZMA_H ++ zip->requested_compression = COMPRESSION_XZ; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "xz compression not supported"); ++#endif ++ } else if (strcmp(val, "zstd") == 0) { ++#if defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream ++ zip->requested_compression = COMPRESSION_ZSTD; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "zstd compression not supported"); ++#endif + } + return (ret); + } else if (strcmp(key, "compression-level") == 0) { +- if (val == NULL || !(val[0] >= '0' && val[0] <= '9') || val[1] != '\0') { +- return ARCHIVE_WARN; ++ char *endptr; ++ ++ if (val == NULL) ++ return (ARCHIVE_WARN); ++ errno = 0; ++ zip->compression_level = (short)strtoul(val, &endptr, 10); ++ if (errno != 0 || *endptr != '\0' || zip->compression_level < 0 || ++ zip->compression_level > 9) { ++ zip->compression_level = 6; // set to default ++ return (ARCHIVE_WARN); + } + +- if (val[0] == '0') { ++ if (zip->compression_level == 0) { + zip->requested_compression = COMPRESSION_STORE; + return ARCHIVE_OK; + } else { ++#if defined(HAVE_ZLIB_H) || defined(HAVE_LZMA_H) || defined(HAVE_BZLIB_H) || (defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream) ++ // Not forcing an already specified compression algorithm ++ if (zip->requested_compression == COMPRESSION_UNSPECIFIED) { + #ifdef HAVE_ZLIB_H +- zip->requested_compression = COMPRESSION_DEFLATE; +- zip->deflate_compression_level = val[0] - '0'; ++ zip->requested_compression = COMPRESSION_DEFLATE; ++#elif defined(HAVE_BZLIB_H) ++ zip->requested_compression = COMPRESSION_BZIP2; ++#elif defined(HAVE_LZMA_H) ++ // Arbitrarily choosing LZMA of the two LZMA methods ++ zip->requested_compression = COMPRESSION_LZMA; ++#else ++ zip->requested_compression = COMPRESSION_ZSTD; ++#endif ++ } + return ARCHIVE_OK; + #else + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "deflate compression not supported"); ++ "compression not supported"); ++#endif ++ } ++ } else if (strcmp(key, "threads") == 0) { ++ char *endptr; ++ ++ if (val == NULL) ++ return (ARCHIVE_FAILED); ++ errno = 0; ++ zip->threads = (short)strtoul(val, &endptr, 10); ++ if (errno != 0 || *endptr != '\0') { ++ zip->threads = 1; ++ archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC, ++ "Illegal value `%s'", val); ++ return (ARCHIVE_FAILED); ++ } ++ if (zip->threads == 0) { ++#ifdef HAVE_LZMA_STREAM_ENCODER_MT ++ zip->threads = lzma_cputhreads(); ++#elif defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN) ++ zip->threads = sysconf(_SC_NPROCESSORS_ONLN); ++#elif !defined(__CYGWIN__) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0601 ++ /* Windows 7 and up */ ++ DWORD activeProcs = GetActiveProcessorCount(ALL_PROCESSOR_GROUPS); ++ zip->threads = activeProcs <= SHRT_MAX ? (short)activeProcs : SHRT_MAX; ++#else ++ zip->threads = 1; + #endif + } ++ return (ARCHIVE_OK); + } else if (strcmp(key, "encryption") == 0) { + if (val == NULL) { + zip->encryption_type = ENCRYPTION_NONE; +@@ -305,8 +471,7 @@ + zip->encryption_type = ENCRYPTION_TRADITIONAL; + ret = ARCHIVE_OK; + } else { +- archive_set_error(&a->archive, +- ARCHIVE_ERRNO_MISC, ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "encryption not supported"); + } + } else if (strcmp(val, "aes128") == 0) { +@@ -315,8 +480,7 @@ + zip->encryption_type = ENCRYPTION_WINZIP_AES128; + ret = ARCHIVE_OK; + } else { +- archive_set_error(&a->archive, +- ARCHIVE_ERRNO_MISC, ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "encryption not supported"); + } + } else if (strcmp(val, "aes256") == 0) { +@@ -325,14 +489,12 @@ + zip->encryption_type = ENCRYPTION_WINZIP_AES256; + ret = ARCHIVE_OK; + } else { +- archive_set_error(&a->archive, +- ARCHIVE_ERRNO_MISC, ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "encryption not supported"); + } + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +- "%s: unknown encryption '%s'", +- a->format_name, val); ++ "%s: unknown encryption '%s'", a->format_name, val); + } + return (ret); + } else if (strcmp(key, "experimental") == 0) { +@@ -421,6 +583,118 @@ + return (ret); + } + ++int ++archive_write_zip_set_compression_bzip2(struct archive *_a) ++{ ++ struct archive_write *a = (struct archive_write *)_a; ++ int ret = ARCHIVE_FAILED; ++ ++ archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, ++ ARCHIVE_STATE_NEW | ARCHIVE_STATE_HEADER | ARCHIVE_STATE_DATA, ++ "archive_write_zip_set_compression_bzip2"); ++ if (a->archive.archive_format != ARCHIVE_FORMAT_ZIP) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Can only use archive_write_zip_set_compression_bzip2" ++ " with zip format"); ++ ret = ARCHIVE_FATAL; ++ } else { ++#ifdef HAVE_BZLIB_H ++ struct zip *zip = a->format_data; ++ zip->requested_compression = COMPRESSION_BZIP2; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "bzip2 compression not supported"); ++ ret = ARCHIVE_FAILED; ++#endif ++ } ++ return (ret); ++} ++ ++int ++archive_write_zip_set_compression_zstd(struct archive *_a) ++{ ++ struct archive_write *a = (struct archive_write *)_a; ++ int ret = ARCHIVE_FAILED; ++ ++ archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, ++ ARCHIVE_STATE_NEW | ARCHIVE_STATE_HEADER | ARCHIVE_STATE_DATA, ++ "archive_write_zip_set_compression_zstd"); ++ if (a->archive.archive_format != ARCHIVE_FORMAT_ZIP) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Can only use archive_write_zip_set_compression_zstd" ++ " with zip format"); ++ ret = ARCHIVE_FATAL; ++ } else { ++#if defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream ++ struct zip *zip = a->format_data; ++ zip->requested_compression = COMPRESSION_ZSTD; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "zstd compression not supported"); ++ ret = ARCHIVE_FAILED; ++#endif ++ } ++ return (ret); ++} ++ ++int ++archive_write_zip_set_compression_lzma(struct archive *_a) ++{ ++ struct archive_write *a = (struct archive_write *)_a; ++ int ret = ARCHIVE_FAILED; ++ ++ archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, ++ ARCHIVE_STATE_NEW | ARCHIVE_STATE_HEADER | ARCHIVE_STATE_DATA, ++ "archive_write_zip_set_compression_lzma"); ++ if (a->archive.archive_format != ARCHIVE_FORMAT_ZIP) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Can only use archive_write_zip_set_compression_lzma" ++ " with zip format"); ++ ret = ARCHIVE_FATAL; ++ } else { ++#ifdef HAVE_LZMA_H ++ struct zip *zip = a->format_data; ++ zip->requested_compression = COMPRESSION_LZMA; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "lzma compression not supported"); ++ ret = ARCHIVE_FAILED; ++#endif ++ } ++ return (ret); ++} ++ ++int ++archive_write_zip_set_compression_xz(struct archive *_a) ++{ ++ struct archive_write *a = (struct archive_write *)_a; ++ int ret = ARCHIVE_FAILED; ++ ++ archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, ++ ARCHIVE_STATE_NEW | ARCHIVE_STATE_HEADER | ARCHIVE_STATE_DATA, ++ "archive_write_zip_set_compression_xz"); ++ if (a->archive.archive_format != ARCHIVE_FORMAT_ZIP) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Can only use archive_write_zip_set_compression_xz" ++ " with zip format"); ++ ret = ARCHIVE_FATAL; ++ } else { ++#ifdef HAVE_LZMA_H ++ struct zip *zip = a->format_data; ++ zip->requested_compression = COMPRESSION_XZ; ++ ret = ARCHIVE_OK; ++#else ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "xz compression not supported"); ++ ret = ARCHIVE_FAILED; ++#endif ++ } ++ return (ret); ++} ++ + int + archive_write_zip_set_compression_store(struct archive *_a) + { +@@ -430,7 +704,7 @@ + + archive_check_magic(_a, ARCHIVE_WRITE_MAGIC, + ARCHIVE_STATE_NEW | ARCHIVE_STATE_HEADER | ARCHIVE_STATE_DATA, +- "archive_write_zip_set_compression_deflate"); ++ "archive_write_zip_set_compression_store"); + if (a->archive.archive_format != ARCHIVE_FORMAT_ZIP) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Can only use archive_write_zip_set_compression_store" +@@ -465,9 +739,14 @@ + + /* "Unspecified" lets us choose the appropriate compression. */ + zip->requested_compression = COMPRESSION_UNSPECIFIED; +-#ifdef HAVE_ZLIB_H +- zip->deflate_compression_level = Z_DEFAULT_COMPRESSION; +-#endif ++ /* Following the 7-zip write support's lead, setting the default ++ * compression level explicitly to 6 no matter what. */ ++ zip->compression_level = 6; ++ /* Following the xar write support's lead, the default number of ++ * threads is 1 (i.e. the xz compression, the only one caring about ++ * that, not being multi-threaded even if the multi-threaded encoder ++ * were available) */ ++ zip->threads = 1; + zip->crc32func = real_crc32; + + /* A buffer used for both compression and encryption. */ +@@ -529,7 +808,7 @@ + __archive_write_entry_filetype_unsupported( + &a->archive, entry, "zip"); + return ARCHIVE_FAILED; +- }; ++ } + + /* If we're not using Zip64, reject large files. */ + if (zip->flags & ZIP_FLAG_AVOID_ZIP64) { +@@ -552,7 +831,6 @@ + if (type != AE_IFREG) + archive_entry_set_size(entry, 0); + +- + /* Reset information from last entry. */ + zip->entry_offset = zip->written_bytes; + zip->entry_uncompressed_limit = INT64_MAX; +@@ -589,7 +867,6 @@ + } + } + +- + #if defined(_WIN32) && !defined(__CYGWIN__) + /* Make sure the path separators in pathname, hardlink and symlink + * are all slash '/', not the Windows path separator '\'. */ +@@ -685,13 +962,49 @@ + if (zip->entry_compression == COMPRESSION_UNSPECIFIED) { + zip->entry_compression = COMPRESSION_DEFAULT; + } +- if (zip->entry_compression == COMPRESSION_STORE) { ++ switch (zip->entry_compression) { ++ case COMPRESSION_STORE: + zip->entry_compressed_size = size; + zip->entry_uncompressed_size = size; + MIN_VERSION_NEEDED(10); +- } else { ++ break; ++ case COMPRESSION_ZSTD: ++ zip->entry_uncompressed_size = size; ++ MIN_VERSION_NEEDED(63); ++ break; ++ case COMPRESSION_LZMA: + zip->entry_uncompressed_size = size; ++ zip->entry_flags |= ZIP_ENTRY_FLAG_LZMA_EOPM; ++ MIN_VERSION_NEEDED(63); ++ break; ++ case COMPRESSION_XZ: ++ zip->entry_uncompressed_size = size; ++ MIN_VERSION_NEEDED(63); ++ break; ++ case COMPRESSION_BZIP2: ++ zip->entry_uncompressed_size = size; ++ MIN_VERSION_NEEDED(46); ++ break; ++ default: // i.e. deflate compression ++ zip->entry_uncompressed_size = size; ++ switch (zip->compression_level) { ++ case 1: ++ case 2: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_DEFLATE_SUPER_FAST; ++ break; ++ case 3: ++ case 4: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_DEFLATE_FAST; ++ break; ++ case 8: ++ case 9: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_DEFLATE_MAX; ++ break; ++ default: ++ break; ++ } + MIN_VERSION_NEEDED(20); ++ break; + } + + if (zip->entry_flags & ZIP_ENTRY_FLAG_ENCRYPTED) { +@@ -741,9 +1054,8 @@ + /* We don't know the size. Use the default + * compression unless specified otherwise. + */ +- + zip->entry_compression = zip->requested_compression; +- if(zip->entry_compression == COMPRESSION_UNSPECIFIED){ ++ if (zip->entry_compression == COMPRESSION_UNSPECIFIED) { + zip->entry_compression = COMPRESSION_DEFAULT; + } + +@@ -751,10 +1063,43 @@ + if ((zip->flags & ZIP_FLAG_AVOID_ZIP64) == 0) { + /* We might use zip64 extensions, so require 4.5 */ + MIN_VERSION_NEEDED(45); +- } else if (zip->entry_compression == COMPRESSION_STORE) { ++ } ++ switch (zip->entry_compression) { ++ case COMPRESSION_STORE: + MIN_VERSION_NEEDED(10); +- } else { ++ break; ++ case COMPRESSION_ZSTD: ++ MIN_VERSION_NEEDED(63); ++ break; ++ case COMPRESSION_LZMA: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_LZMA_EOPM; ++ MIN_VERSION_NEEDED(63); ++ break; ++ case COMPRESSION_XZ: ++ MIN_VERSION_NEEDED(63); ++ break; ++ case COMPRESSION_BZIP2: ++ MIN_VERSION_NEEDED(46); ++ break; ++ default: // i.e. deflate compression ++ switch (zip->compression_level) { ++ case 1: ++ case 2: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_DEFLATE_SUPER_FAST; ++ break; ++ case 3: ++ case 4: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_DEFLATE_FAST; ++ break; ++ case 8: ++ case 9: ++ zip->entry_flags |= ZIP_ENTRY_FLAG_DEFLATE_MAX; ++ break; ++ default: ++ break; ++ } + MIN_VERSION_NEEDED(20); ++ break; + } + + if (zip->entry_flags & ZIP_ENTRY_FLAG_ENCRYPTED) { +@@ -782,7 +1127,7 @@ + else + archive_le16enc(local_header + 8, zip->entry_compression); + archive_le32enc(local_header + 10, +- dos_time(archive_entry_mtime(zip->entry))); ++ unix_to_dos(archive_entry_mtime(zip->entry))); + if ((zip->entry_flags & ZIP_ENTRY_FLAG_LENGTH_AT_END) == 0) { + archive_le32enc(local_header + 14, zip->entry_crc32); + archive_le32enc(local_header + 18, (uint32_t)zip->entry_compressed_size); +@@ -813,7 +1158,7 @@ + else + archive_le16enc(zip->file_header + 10, zip->entry_compression); + archive_le32enc(zip->file_header + 12, +- dos_time(archive_entry_mtime(zip->entry))); ++ unix_to_dos(archive_entry_mtime(zip->entry))); + archive_le16enc(zip->file_header + 28, (uint16_t)filename_length); + /* Following Info-Zip, store mode in the "external attributes" field. */ + archive_le32enc(zip->file_header + 38, +@@ -983,21 +1328,147 @@ + zip->written_bytes += slink_size; + } + ++ switch (zip->entry_compression) { + #ifdef HAVE_ZLIB_H +- if (zip->entry_compression == COMPRESSION_DEFLATE) { +- zip->stream.zalloc = Z_NULL; +- zip->stream.zfree = Z_NULL; +- zip->stream.opaque = Z_NULL; +- zip->stream.next_out = zip->buf; +- zip->stream.avail_out = (uInt)zip->len_buf; +- if (deflateInit2(&zip->stream, zip->deflate_compression_level, ++ case COMPRESSION_DEFLATE: ++ zip->stream.deflate.zalloc = Z_NULL; ++ zip->stream.deflate.zfree = Z_NULL; ++ zip->stream.deflate.opaque = Z_NULL; ++ zip->stream.deflate.next_out = zip->buf; ++ zip->stream.deflate.avail_out = (uInt)zip->len_buf; ++ if (deflateInit2(&zip->stream.deflate, zip->compression_level, + Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY) != Z_OK) { + archive_set_error(&a->archive, ENOMEM, + "Can't init deflate compressor"); + return (ARCHIVE_FATAL); + } +- } ++ break; ++#endif ++#ifdef HAVE_BZLIB_H ++ case COMPRESSION_BZIP2: ++ memset(&zip->stream.bzip2, 0, sizeof(bz_stream)); ++ zip->stream.bzip2.next_out = (char*)zip->buf; ++ zip->stream.bzip2.avail_out = (unsigned int)zip->len_buf; ++ if (BZ2_bzCompressInit(&zip->stream.bzip2, zip->compression_level, 0, 0) != BZ_OK) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't init bzip2 compressor"); ++ return (ARCHIVE_FATAL); ++ } ++ break; ++#endif ++#if defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream ++ case COMPRESSION_ZSTD: ++ {/* Libzstd, contrary to many compression libraries, doesn't use ++ * zlib's 0 to 9 scale and its negative scale is way bigger than ++ * its positive one. So setting 1 as the lowest allowed compression ++ * level and rescaling to 2 to 9 to libzstd's positive scale. */ ++ int zstd_compression_level = zip->compression_level == 1 ++ ? ZSTD_minCLevel() // ZSTD_minCLevel is negative ! ++ : (zip->compression_level - 1) * ZSTD_maxCLevel() / 8; ++ zip->stream.zstd.context = ZSTD_createCStream(); ++ size_t zret = ZSTD_initCStream(zip->stream.zstd.context, zstd_compression_level); ++ if (ZSTD_isError(zret)) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't init zstd compressor"); ++ return (ARCHIVE_FATAL); ++ } ++ /* Asking for the multi-threaded compressor is a no-op in zstd if ++ * it's not supported, so no need to explicitly check for it */ ++ ZSTD_CCtx_setParameter(zip->stream.zstd.context, ZSTD_c_nbWorkers, zip->threads); ++ zip->stream.zstd.out.dst = zip->buf; ++ zip->stream.zstd.out.size = zip->len_buf; ++ zip->stream.zstd.out.pos = 0; ++ break;} ++#endif ++#ifdef HAVE_LZMA_H ++ case COMPRESSION_LZMA: ++ {/* Set compression level 9 as the no-holds barred one */ ++ uint32_t lzma_compression_level = zip->compression_level == 9 ++ ? LZMA_PRESET_EXTREME | zip->compression_level ++ : (uint32_t)zip->compression_level; ++ /* Forcibly setting up the encoder to use the LZMA1 variant, as ++ * it is the one LZMA Alone uses. */ ++ lzma_filter filters[2] = { ++ { ++ .id = LZMA_FILTER_LZMA1, ++ .options = &zip->stream.lzma.options ++ }, ++ { ++ .id = LZMA_VLI_UNKNOWN ++ } ++ }; ++ memset(&zip->stream.lzma.context, 0, sizeof(lzma_stream)); ++ lzma_lzma_preset(&zip->stream.lzma.options, lzma_compression_level); ++ zip->stream.lzma.headers_to_write = 1; ++ /* We'll be writing the headers ourselves, so using the raw ++ * encoder */ ++ if (lzma_raw_encoder(&zip->stream.lzma.context, filters) != LZMA_OK) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't init lzma compressor"); ++ return (ARCHIVE_FATAL); ++ } ++ zip->stream.lzma.context.next_out = zip->buf; ++ zip->stream.lzma.context.avail_out = (unsigned int)zip->len_buf; ++ break;} ++ case COMPRESSION_XZ: ++ {/* Set compression level 9 as the no-holds barred one */ ++ uint32_t lzma_compression_level = zip->compression_level == 9 ++ ? LZMA_PRESET_EXTREME | zip->compression_level ++ : (uint32_t)zip->compression_level; ++ lzma_ret retval; ++#ifndef HAVE_LZMA_STREAM_ENCODER_MT ++ /* Force the number of threads to one, and thus to a mono-threaded ++ * encoder in case we don't have the multi-threaded one */ ++ zip->threads = 1; + #endif ++ memset(&zip->stream.lzma.context, 0, sizeof(lzma_stream)); ++ /* The XZ check will be arbitrarily set to none: ZIP already has ++ * a CRC-32 check of its own */ ++ if (zip->threads == 1) { ++ /* XZ uses LZMA2. */ ++ lzma_filter filters[2] = { ++ { ++ .id = LZMA_FILTER_LZMA2, ++ .options = &zip->stream.lzma.options ++ }, ++ { ++ .id = LZMA_VLI_UNKNOWN ++ } ++ }; ++ /* Might as well use the lzma_options we already allocated, ++ * even if we'll never use it after the initialisation */ ++ lzma_lzma_preset(&zip->stream.lzma.options, lzma_compression_level); ++ /* 1 thread requested, so non multi-threaded encoder */ ++ retval = lzma_stream_encoder(&zip->stream.lzma.context, ++ filters, LZMA_CHECK_NONE); ++ } ++ else { ++ lzma_mt options = { ++ .flags = 0, ++ .block_size = 0, ++ .timeout = 0, ++ .filters = NULL, ++ .check = LZMA_CHECK_NONE, ++ .preset = lzma_compression_level, ++ .threads = zip->threads ++ }; ++ /* More than 1 thread requested, so multi-threaded encoder ++ * which always outputs XZ */ ++ retval = lzma_stream_encoder_mt(&zip->stream.lzma.context, ++ &options); ++ } ++ if (retval != LZMA_OK) { ++ archive_set_error(&a->archive, ENOMEM, ++ "Can't init xz compressor"); ++ return (ARCHIVE_FATAL); ++ } ++ zip->stream.lzma.context.next_out = zip->buf; ++ zip->stream.lzma.context.avail_out = (unsigned int)zip->len_buf; ++ break;} ++#endif ++ default: ++ break; ++ } + + return (ret2); + } +@@ -1082,15 +1553,15 @@ + zip->entry_compressed_written += s; + } + break; +-#if HAVE_ZLIB_H ++#ifdef HAVE_ZLIB_H + case COMPRESSION_DEFLATE: +- zip->stream.next_in = (unsigned char*)(uintptr_t)buff; +- zip->stream.avail_in = (uInt)s; ++ zip->stream.deflate.next_in = (unsigned char*)(uintptr_t)buff; ++ zip->stream.deflate.avail_in = (uInt)s; + do { +- ret = deflate(&zip->stream, Z_NO_FLUSH); ++ ret = deflate(&zip->stream.deflate, Z_NO_FLUSH); + if (ret == Z_STREAM_ERROR) + return (ARCHIVE_FATAL); +- if (zip->stream.avail_out == 0) { ++ if (zip->stream.deflate.avail_out == 0) { + if (zip->tctx_valid) { + trad_enc_encrypt_update(&zip->tctx, + zip->buf, zip->len_buf, +@@ -1116,13 +1587,223 @@ + return (ret); + zip->entry_compressed_written += zip->len_buf; + zip->written_bytes += zip->len_buf; +- zip->stream.next_out = zip->buf; +- zip->stream.avail_out = (uInt)zip->len_buf; ++ zip->stream.deflate.next_out = zip->buf; ++ zip->stream.deflate.avail_out = (uInt)zip->len_buf; + } +- } while (zip->stream.avail_in != 0); ++ } while (zip->stream.deflate.avail_in != 0); ++ break; ++#endif ++#if defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream ++ case COMPRESSION_ZSTD: ++ zip->stream.zstd.in.src = buff; ++ zip->stream.zstd.in.size = s; ++ zip->stream.zstd.in.pos = 0; ++ do { ++ size_t zret = ZSTD_compressStream(zip->stream.zstd.context, ++ &zip->stream.zstd.out, &zip->stream.zstd.in); ++ if (ZSTD_isError(zret)) ++ return (ARCHIVE_FATAL); ++ if (zip->stream.zstd.out.pos == zip->stream.zstd.out.size) { ++ if (zip->tctx_valid) { ++ trad_enc_encrypt_update(&zip->tctx, ++ zip->buf, zip->len_buf, ++ zip->buf, zip->len_buf); ++ } else if (zip->cctx_valid) { ++ size_t outl = zip->len_buf; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, ++ zip->buf, zip->len_buf, ++ zip->buf, &outl); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, zip->len_buf); ++ } ++ ret = __archive_write_output(a, zip->buf, ++ zip->len_buf); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += zip->len_buf; ++ zip->written_bytes += zip->len_buf; ++ zip->stream.zstd.out.dst = zip->buf; ++ zip->stream.zstd.out.size = zip->len_buf; ++ zip->stream.zstd.out.pos = 0; ++ } ++ } while (zip->stream.zstd.in.pos != zip->stream.zstd.in.size); ++ break; ++#endif ++#ifdef HAVE_BZLIB_H ++ case COMPRESSION_BZIP2: ++ zip->stream.bzip2.next_in = (char*)(uintptr_t)buff; ++ zip->stream.bzip2.avail_in = (unsigned int)s; ++ do { ++ ret = BZ2_bzCompress(&zip->stream.bzip2, BZ_RUN); ++ if (ret != BZ_RUN_OK) ++ return (ARCHIVE_FATAL); ++ if (zip->stream.bzip2.avail_out == 0) { ++ if (zip->tctx_valid) { ++ trad_enc_encrypt_update(&zip->tctx, ++ zip->buf, zip->len_buf, ++ zip->buf, zip->len_buf); ++ } else if (zip->cctx_valid) { ++ size_t outl = zip->len_buf; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, ++ zip->buf, zip->len_buf, ++ zip->buf, &outl); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, zip->len_buf); ++ } ++ ret = __archive_write_output(a, zip->buf, ++ zip->len_buf); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += zip->len_buf; ++ zip->written_bytes += zip->len_buf; ++ zip->stream.bzip2.next_out = (char*)zip->buf; ++ zip->stream.bzip2.avail_out = (unsigned int)zip->len_buf; ++ } ++ } while (zip->stream.bzip2.avail_in != 0); ++ break; ++#endif ++#ifdef HAVE_LZMA_H ++ case COMPRESSION_LZMA: ++ if (zip->stream.lzma.headers_to_write) { ++ /* LZMA Alone and ZIP's LZMA format (i.e. id 14) are almost ++ * the same. Here's an example of a structure of LZMA Alone: ++ * ++ * $ cat /bin/ls | lzma | xxd | head -n 1 ++ * 00000000: 5d00 0080 00ff ffff ffff ffff ff00 2814 ++ * ++ * 5 bytes 8 bytes n bytes ++ * <lzma_params><uncompressed_size><data...> ++ * ++ * lzma_params is a 5-byte blob that has to be decoded to ++ * extract parameters of this LZMA stream. The ++ * uncompressed_size field is an uint64_t value that contains ++ * information about the size of the uncompressed file, or ++ * UINT64_MAX if this value is unknown. The <data...> part is ++ * the actual LZMA-compressed data stream. ++ * ++ * Now here's the structure of ZIP's LZMA format: ++ * ++ * $ cat stream_inside_zipx | xxd | head -n 1 ++ * 00000000: 0914 0500 5d00 8000 0000 2814 .... .... ++ * ++ * 2byte 2byte 5 bytes n bytes ++ * <magic1><magic2><lzma_params><data...> ++ * ++ * This means that ZIP's LZMA format contains an additional ++ * magic1 and magic2 headers, the lzma_params field contains ++ * the same parameter set as in LZMA Alone, and the <data...> ++ * field is the same as in LZMA Alone as well. However, note ++ * that ZIP's format is missing the uncompressed_size field. ++ * ++ * So we need to write a raw LZMA stream, set up for LZMA1 ++ * (i.e. the algorithm variant LZMA Alone uses), which was ++ * done above in the initialisation but first we need to ++ * write ZIP's LZMA header, as if it were Stored data. Then ++ * we can use the raw stream as if it were any other. magic1 ++ * being version numbers and magic2 being lzma_params's size, ++ * they get written in without further ado but lzma_params ++ * requires to use other functions than the usual lzma_stream ++ * manipulating ones, hence the additional book-keeping ++ * required alongside the lzma_stream. ++ */ ++ uint8_t buf[9] = { LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, 5, 0 }; ++ lzma_lzma_props_encode(&zip->stream.lzma.options, buf + 4); ++ const size_t sh = 9; ++ if (zip->tctx_valid || zip->cctx_valid) { ++ uint8_t* header = buf; ++ const uint8_t * const rh = header + sh; ++ ++ while (header < rh) { ++ size_t l; ++ ++ if (zip->tctx_valid) { ++ l = trad_enc_encrypt_update(&zip->tctx, ++ header, rh - header, ++ zip->buf, zip->len_buf); ++ } else { ++ l = zip->len_buf; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, ++ header, rh - header, zip->buf, &l); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, l); ++ } ++ ret = __archive_write_output(a, zip->buf, l); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += l; ++ zip->written_bytes += l; ++ header += l; ++ } ++ } else { ++ ret = __archive_write_output(a, buf, sh); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->written_bytes += sh; ++ zip->entry_compressed_written += sh; ++ } ++ zip->stream.lzma.headers_to_write = 0; ++ } ++ /* FALLTHROUGH */ ++ case COMPRESSION_XZ: ++ zip->stream.lzma.context.next_in = (unsigned char*)(uintptr_t)buff; ++ zip->stream.lzma.context.avail_in = (unsigned int)s; ++ do { ++ ret = lzma_code(&zip->stream.lzma.context, LZMA_RUN); ++ if (ret == LZMA_MEM_ERROR) ++ return (ARCHIVE_FATAL); ++ if (zip->stream.lzma.context.avail_out == 0) { ++ if (zip->tctx_valid) { ++ trad_enc_encrypt_update(&zip->tctx, ++ zip->buf, zip->len_buf, ++ zip->buf, zip->len_buf); ++ } else if (zip->cctx_valid) { ++ size_t outl = zip->len_buf; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, ++ zip->buf, zip->len_buf, ++ zip->buf, &outl); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, zip->len_buf); ++ } ++ ret = __archive_write_output(a, zip->buf, ++ zip->len_buf); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += zip->len_buf; ++ zip->written_bytes += zip->len_buf; ++ zip->stream.lzma.context.next_out = zip->buf; ++ zip->stream.lzma.context.avail_out = (unsigned int)zip->len_buf; ++ } ++ } while (zip->stream.lzma.context.avail_in != 0); + break; + #endif +- + case COMPRESSION_UNSPECIFIED: + default: + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, +@@ -1135,7 +1816,6 @@ + zip->entry_crc32 = + zip->crc32func(zip->entry_crc32, buff, (unsigned)s); + return (s); +- + } + + static int +@@ -1143,16 +1823,20 @@ + { + struct zip *zip = a->format_data; + int ret; ++#if defined(HAVE_BZLIB_H) || (defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream) || HAVE_LZMA_H ++ char finishing; ++#endif + +-#if HAVE_ZLIB_H +- if (zip->entry_compression == COMPRESSION_DEFLATE) { ++ switch (zip->entry_compression) { ++#ifdef HAVE_ZLIB_H ++ case COMPRESSION_DEFLATE: + for (;;) { + size_t remainder; + +- ret = deflate(&zip->stream, Z_FINISH); ++ ret = deflate(&zip->stream.deflate, Z_FINISH); + if (ret == Z_STREAM_ERROR) + return (ARCHIVE_FATAL); +- remainder = zip->len_buf - zip->stream.avail_out; ++ remainder = zip->len_buf - zip->stream.deflate.avail_out; + if (zip->tctx_valid) { + trad_enc_encrypt_update(&zip->tctx, + zip->buf, remainder, zip->buf, remainder); +@@ -1175,14 +1859,145 @@ + return (ret); + zip->entry_compressed_written += remainder; + zip->written_bytes += remainder; +- zip->stream.next_out = zip->buf; +- if (zip->stream.avail_out != 0) ++ zip->stream.deflate.next_out = zip->buf; ++ if (zip->stream.deflate.avail_out != 0) + break; +- zip->stream.avail_out = (uInt)zip->len_buf; ++ zip->stream.deflate.avail_out = (uInt)zip->len_buf; + } +- deflateEnd(&zip->stream); +- } ++ deflateEnd(&zip->stream.deflate); ++ break; + #endif ++#ifdef HAVE_BZLIB_H ++ case COMPRESSION_BZIP2: ++ finishing = 1; ++ do { ++ size_t remainder; ++ ++ ret = BZ2_bzCompress(&zip->stream.bzip2, BZ_FINISH); ++ if (ret == BZ_STREAM_END) ++ finishing = 0; ++ else if (ret != BZ_RUN_OK && ret != BZ_FINISH_OK) ++ return (ARCHIVE_FATAL); ++ remainder = zip->len_buf - zip->stream.bzip2.avail_out; ++ if (zip->tctx_valid) { ++ trad_enc_encrypt_update(&zip->tctx, ++ zip->buf, remainder, zip->buf, remainder); ++ } else if (zip->cctx_valid) { ++ size_t outl = remainder; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, zip->buf, remainder, ++ zip->buf, &outl); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, remainder); ++ } ++ ret = __archive_write_output(a, zip->buf, remainder); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += remainder; ++ zip->written_bytes += remainder; ++ zip->stream.bzip2.next_out = (char*)zip->buf; ++ if (zip->stream.bzip2.avail_out != 0) ++ finishing = 0; ++ zip->stream.bzip2.avail_out = (unsigned int)zip->len_buf; ++ } while (finishing); ++ BZ2_bzCompressEnd(&zip->stream.bzip2); ++ break; ++#endif ++#if defined(HAVE_ZSTD_H) && HAVE_ZSTD_compressStream ++ case COMPRESSION_ZSTD: ++ finishing = 1; ++ do { ++ size_t remainder; ++ ++ size_t zret = ZSTD_endStream(zip->stream.zstd.context, &zip->stream.zstd.out); ++ if (zret == 0) ++ finishing = 0; ++ else if (ZSTD_isError(zret)) ++ return (ARCHIVE_FATAL); ++ remainder = zip->len_buf - (zip->stream.zstd.out.size - zip->stream.zstd.out.pos); ++ if (zip->tctx_valid) { ++ trad_enc_encrypt_update(&zip->tctx, ++ zip->buf, remainder, zip->buf, remainder); ++ } else if (zip->cctx_valid) { ++ size_t outl = remainder; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, zip->buf, remainder, ++ zip->buf, &outl); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, remainder); ++ } ++ ret = __archive_write_output(a, zip->buf, remainder); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += remainder; ++ zip->written_bytes += remainder; ++ zip->stream.zstd.out.dst = zip->buf; ++ if (zip->stream.zstd.out.pos != zip->stream.zstd.out.size) ++ finishing = 0; ++ zip->stream.zstd.out.size = zip->len_buf; ++ } while (finishing); ++ ZSTD_freeCStream(zip->stream.zstd.context); ++ break; ++#endif ++#ifdef HAVE_LZMA_H ++ /* XZ and LZMA share clean-up code */ ++ case COMPRESSION_LZMA: ++ case COMPRESSION_XZ: ++ finishing = 1; ++ do { ++ size_t remainder; ++ ++ ret = lzma_code(&zip->stream.lzma.context, LZMA_FINISH); ++ if (ret == LZMA_STREAM_END) ++ finishing = 0; ++ else if (ret == LZMA_MEM_ERROR) ++ return (ARCHIVE_FATAL); ++ remainder = zip->len_buf - zip->stream.lzma.context.avail_out; ++ if (zip->tctx_valid) { ++ trad_enc_encrypt_update(&zip->tctx, ++ zip->buf, remainder, zip->buf, remainder); ++ } else if (zip->cctx_valid) { ++ size_t outl = remainder; ++ ret = archive_encrypto_aes_ctr_update( ++ &zip->cctx, zip->buf, remainder, ++ zip->buf, &outl); ++ if (ret < 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_MISC, ++ "Failed to encrypt file"); ++ return (ARCHIVE_FAILED); ++ } ++ archive_hmac_sha1_update(&zip->hctx, ++ zip->buf, remainder); ++ } ++ ret = __archive_write_output(a, zip->buf, remainder); ++ if (ret != ARCHIVE_OK) ++ return (ret); ++ zip->entry_compressed_written += remainder; ++ zip->written_bytes += remainder; ++ zip->stream.lzma.context.next_out = zip->buf; ++ if (zip->stream.lzma.context.avail_out != 0) ++ finishing = 0; ++ zip->stream.lzma.context.avail_out = (unsigned int)zip->len_buf; ++ } while (finishing); ++ lzma_end(&zip->stream.lzma.context); ++ break; ++#endif ++ default: ++ break; ++ } + if (zip->hctx_valid) { + uint8_t hmac[20]; + size_t hmac_len = 20; +@@ -1366,7 +2181,6 @@ + if (ret != ARCHIVE_OK) + return (ARCHIVE_FATAL); + zip->written_bytes += 20; +- + } + + /* Format and write end of central directory. */ +@@ -1413,44 +2227,6 @@ + return (ARCHIVE_OK); + } + +-/* Convert into MSDOS-style date/time. */ +-static unsigned int +-dos_time(const time_t unix_time) +-{ +- struct tm *t; +- unsigned int dt; +-#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) +- struct tm tmbuf; +-#endif +- +-#if defined(HAVE_LOCALTIME_S) +- t = localtime_s(&tmbuf, &unix_time) ? NULL : &tmbuf; +-#elif defined(HAVE_LOCALTIME_R) +- t = localtime_r(&unix_time, &tmbuf); +-#else +- t = localtime(&unix_time); +-#endif +- +- /* MSDOS-style date/time is only between 1980-01-01 and 2107-12-31 */ +- if (t->tm_year < 1980 - 1900) +- /* Set minimum date/time '1980-01-01 00:00:00'. */ +- dt = 0x00210000U; +- else if (t->tm_year > 2107 - 1900) +- /* Set maximum date/time '2107-12-31 23:59:58'. */ +- dt = 0xff9fbf7dU; +- else { +- dt = 0; +- dt += ((t->tm_year - 80) & 0x7f) << 9; +- dt += ((t->tm_mon + 1) & 0x0f) << 5; +- dt += (t->tm_mday & 0x1f); +- dt <<= 16; +- dt += (t->tm_hour & 0x1f) << 11; +- dt += (t->tm_min & 0x3f) << 5; +- dt += (t->tm_sec & 0x3e) >> 1; /* Only counting every 2 seconds. */ +- } +- return dt; +-} +- + static size_t + path_length(struct archive_entry *entry) + { +@@ -1518,7 +2294,6 @@ + p[pathlen] = '/'; + } + +- + static struct archive_string_conv * + get_sconv(struct archive_write *a, struct zip *zip) + { +@@ -1576,7 +2351,6 @@ + static int + trad_enc_init(struct trad_enc_ctx *ctx, const char *pw, size_t pw_len) + { +- + ctx->keys[0] = 305419896L; + ctx->keys[1] = 591751049L; + ctx->keys[2] = 878082192L; +--- contrib/libarchive/libarchive/archive_write_set_options.3.orig ++++ contrib/libarchive/libarchive/archive_write_set_options.3 +@@ -263,7 +263,7 @@ + The value is interpreted as a decimal integer specifying the + number of threads for multi-threaded zstd compression. + If set to 0, zstd will attempt to detect and use the number +-of physical CPU cores. ++of active physical CPU cores. + .El + .It Format 7zip + .Bl -tag -compact -width indent +@@ -274,9 +274,10 @@ + .Dq deflate , + .Dq bzip2 , + .Dq lzma1 , +-.Dq lzma2 ++.Dq lzma2 , ++.Dq ppmd , + or +-.Dq ppmd ++.Dq zstd + to indicate how the following entries should be compressed. + The values + .Dq store +@@ -289,9 +290,16 @@ + The value is interpreted as a decimal integer specifying the + compression level. + Values between 0 and 9 are supported, with the exception of bzip2 +-which only supports values between 1 and 9. ++which only supports values between 1 and 9, and zstd which may ++support negative values depending on the library version and ++commonly used values 1 through 22. + The interpretation of the compression level depends on the chosen + compression method. ++.It Cm threads ++The value is interpreted as a decimal integer specifying the ++number of threads for multi-threaded compression (for compressors ++like zstd that support it). If set to 0, an attempt will be made ++to discover the number of CPU cores. + .El + .It Format bin + .Bl -tag -compact -width indent +@@ -632,9 +640,13 @@ + .Bl -tag -compact -width indent + .It Cm compression + The value is either +-.Dq store ++.Dq store , ++.Dq deflate , ++.Dq bzip2 , ++.Dq lzma , ++.Dq xz , + or +-.Dq deflate ++.Dq zstd + to indicate how the following entries should be compressed. + Note that this setting is ignored for directories, symbolic links, + and other special entries. +@@ -645,8 +657,23 @@ + A compression level of 0 switches the compression method to + .Dq store , + other values will enable +-.Dq deflate +-compression with the given level. ++.Dq deflate , ++.Dq bzip2 , ++.Dq lzma , ++or ++.Dq zstd ++compression (in order of priority, depending on what libraries ++are linked) with the given level. ++.It Cm threads ++The value is interpreted as a decimal integer specifying the ++number of threads to use for compression. ++It is supported only for ++.Dq xz ++or ++.Dq zstd ++compression and ignored for any other. ++A threads value of 0 is a special one requesting to detect and use as ++many threads as the number of active physical CPU cores. + .It Cm encryption + Enable encryption using traditional zip encryption. + .It Cm encryption Ns = Ns Ar type +--- contrib/libarchive/libarchive/libarchive-formats.5.orig ++++ contrib/libarchive/libarchive/libarchive-formats.5 +@@ -327,10 +327,26 @@ + Libarchive can read and write zip format archives that have + uncompressed entries and entries compressed with the + .Dq deflate ++, ++.Dq LZMA ++, ++.Dq XZ ++, ++.Dq BZIP2 ++and ++.Dq ZSTD ++algorithms. ++Libarchive can also read, but not write, zip format archives that ++have entries compressed with the ++.Dq PPMd + algorithm. + Other zip compression algorithms are not supported. +-It can extract jar archives, archives that use Zip64 extensions and +-self-extracting zip archives. ++The extensions supported by libarchive are Zip64, Libarchive's ++extensions to better support streaming, PKZIP's traditional ++ZIP encryption, Info-ZIP's Unix extra fields, extra time, and ++Unicode path, as well as WinZIP's AES encryption. ++It can extract jar archives, __MACOSX resource forks extension ++for OS X, and self-extracting zip archives. + Libarchive can use either of two different strategies for + reading Zip archives: + a streaming strategy which is fast and can handle extremely +--- contrib/libarchive/libarchive/test/read_open_memory.c.orig ++++ contrib/libarchive/libarchive/test/read_open_memory.c +@@ -167,7 +167,7 @@ + + (void)a; /* UNUSED */ + /* We can't skip by more than is available. */ +- if ((off_t)skip > (off_t)(mine->end - mine->p)) ++ if (skip > mine->end - mine->p) + skip = mine->end - mine->p; + /* Always do small skips by prime amounts. */ + if (skip > 71) +--- contrib/libarchive/libarchive/test/test_7zip_filename_encoding.c.orig ++++ contrib/libarchive/libarchive/test/test_7zip_filename_encoding.c +@@ -1,100 +1,100 @@ +-/*
+- * Copyright (c) 2003-2018
+- * All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without
+- * modification, are permitted provided that the following conditions
+- * are met:
+- * 1. Redistributions of source code must retain the above copyright
+- * notice, this list of conditions and the following disclaimer
+- * in this position and unchanged.
+- * 2. Redistributions in binary form must reproduce the above copyright
+- * notice, this list of conditions and the following disclaimer in the
+- * documentation and/or other materials provided with the distribution.
+- *
+- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+- */
+-#include "test.h"
+-
+-DEFINE_TEST(test_7zip_filename_encoding_UTF16_win)
+-{
+-#if !defined(_WIN32) || defined(__CYGWIN__)
+- skipping("This test is meant to verify unicode string handling"
+- " on Windows with UTF-16 names");
+- return;
+-#else
+- struct archive *a;
+- struct archive_entry *entry;
+- char buff[4096];
+- size_t used;
+-
+- /*
+- * Don't call setlocale because we're verifying that the '_w' functions
+- * work as expected
+- */
+-
+- a = archive_write_new();
+- assertEqualInt(ARCHIVE_OK, archive_write_set_format_7zip(a));
+- assertEqualInt(ARCHIVE_OK,
+- archive_write_open_memory(a, buff, sizeof(buff), &used));
+-
+- /* Part 1: file */
+- entry = archive_entry_new2(a);
+- archive_entry_copy_pathname_w(entry, L"\u8868.txt");
+- archive_entry_set_filetype(entry, AE_IFREG);
+- archive_entry_set_size(entry, 0);
+- assertEqualInt(ARCHIVE_OK, archive_write_header(a, entry));
+-
+- /* Part 2: directory */
+- archive_entry_clear(entry);
+- archive_entry_copy_pathname_w(entry, L"\u8868");
+- archive_entry_set_filetype(entry, AE_IFDIR);
+- archive_entry_set_size(entry, 0);
+- assertEqualInt(ARCHIVE_OK, archive_write_header(a, entry));
+-
+- /* Part 3: symlink */
+- archive_entry_clear(entry);
+- archive_entry_set_pathname(entry, "link.txt");
+- archive_entry_copy_symlink_w(entry, L"\u8868.txt");
+- archive_entry_set_filetype(entry, AE_IFLNK);
+- archive_entry_set_symlink_type(entry, AE_SYMLINK_TYPE_FILE);
+- archive_entry_set_size(entry, 0);
+- assertEqualInt(ARCHIVE_OK, archive_write_header(a, entry));
+-
+- /* NOTE: 7zip does not support hardlinks */
+-
+- archive_entry_free(entry);
+- assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+-
+- /* Ensure that the archive contents can be read properly */
+- /* NOTE: 7zip file contents are not in the order we wrote them! */
+- a = archive_read_new();
+- archive_read_support_format_all(a);
+- archive_read_support_filter_all(a);
+- assertEqualIntA(a, ARCHIVE_OK, read_open_memory_seek(a, buff, used, 7));
+-
+- /* Read part 3: symlink */
+- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry));
+- assertEqualWString(L"\u8868.txt", archive_entry_symlink_w(entry));
+-
+- /* Read part 1: file */
+- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry));
+- assertEqualWString(L"\u8868.txt", archive_entry_pathname_w(entry));
+-
+- /* Read part 2: directory */
+- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry));
+- /* NOTE: Trailing slash added automatically for us */
+- assertEqualWString(L"\u8868/", archive_entry_pathname_w(entry));
+-
+- archive_read_free(a);
+-#endif
+-} +\ No newline at end of file ++/* ++ * Copyright (c) 2003-2018 ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer ++ * in this position and unchanged. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++DEFINE_TEST(test_7zip_filename_encoding_UTF16_win) ++{ ++#if !defined(_WIN32) || defined(__CYGWIN__) ++ skipping("This test is meant to verify unicode string handling" ++ " on Windows with UTF-16 names"); ++ return; ++#else ++ struct archive *a; ++ struct archive_entry *entry; ++ char buff[4096]; ++ size_t used; ++ ++ /* ++ * Don't call setlocale because we're verifying that the '_w' functions ++ * work as expected ++ */ ++ ++ a = archive_write_new(); ++ assertEqualInt(ARCHIVE_OK, archive_write_set_format_7zip(a)); ++ assertEqualInt(ARCHIVE_OK, ++ archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ /* Part 1: file */ ++ entry = archive_entry_new2(a); ++ archive_entry_copy_pathname_w(entry, L"\u8868.txt"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 0); ++ assertEqualInt(ARCHIVE_OK, archive_write_header(a, entry)); ++ ++ /* Part 2: directory */ ++ archive_entry_clear(entry); ++ archive_entry_copy_pathname_w(entry, L"\u8868"); ++ archive_entry_set_filetype(entry, AE_IFDIR); ++ archive_entry_set_size(entry, 0); ++ assertEqualInt(ARCHIVE_OK, archive_write_header(a, entry)); ++ ++ /* Part 3: symlink */ ++ archive_entry_clear(entry); ++ archive_entry_set_pathname(entry, "link.txt"); ++ archive_entry_copy_symlink_w(entry, L"\u8868.txt"); ++ archive_entry_set_filetype(entry, AE_IFLNK); ++ archive_entry_set_symlink_type(entry, AE_SYMLINK_TYPE_FILE); ++ archive_entry_set_size(entry, 0); ++ assertEqualInt(ARCHIVE_OK, archive_write_header(a, entry)); ++ ++ /* NOTE: 7zip does not support hardlinks */ ++ ++ archive_entry_free(entry); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ ++ /* Ensure that the archive contents can be read properly */ ++ /* NOTE: 7zip file contents are not in the order we wrote them! */ ++ a = archive_read_new(); ++ archive_read_support_format_all(a); ++ archive_read_support_filter_all(a); ++ assertEqualIntA(a, ARCHIVE_OK, read_open_memory_seek(a, buff, used, 7)); ++ ++ /* Read part 3: symlink */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ assertEqualWString(L"\u8868.txt", archive_entry_symlink_w(entry)); ++ ++ /* Read part 1: file */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ assertEqualWString(L"\u8868.txt", archive_entry_pathname_w(entry)); ++ ++ /* Read part 2: directory */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ /* NOTE: Trailing slash added automatically for us */ ++ assertEqualWString(L"\u8868/", archive_entry_pathname_w(entry)); ++ ++ archive_read_free(a); ++#endif ++} +--- contrib/libarchive/libarchive/test/test_acl_pax.c.orig ++++ contrib/libarchive/libarchive/test/test_acl_pax.c +@@ -287,7 +287,7 @@ + failure("Basic ACLs shouldn't be stored as extended ACLs"); + assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Second item has a few ACLs */ +@@ -297,7 +297,7 @@ + assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0142); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Third item has pretty extensive ACLs */ +@@ -307,7 +307,7 @@ + assertEntryCompareAcls(ae, acls2, sizeof(acls2)/sizeof(acls2[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0543); + failure("Basic ACLs should set mode to 0543, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0543); + + /* Fourth item has no ACLs */ +@@ -315,7 +315,7 @@ + failure("Basic ACLs shouldn't be stored as extended ACLs"); + assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Close the archive. */ +--- contrib/libarchive/libarchive/test/test_acl_platform_nfs4.c.orig ++++ contrib/libarchive/libarchive/test/test_acl_platform_nfs4.c +@@ -424,7 +424,7 @@ + #if ARCHIVE_ACL_SUNOS_NFS4 || ARCHIVE_ACL_LIBRICHACL + if (flags & perms[i].machine) + #else +- if (acl_get_flag_np(opaque_fs, perms[i].machine)) ++ if (acl_get_flag_np(opaque_fs, (acl_flag_t)perms[i].machine)) + #endif + flagset |= perms[i].portable; + return flagset; +@@ -772,7 +772,8 @@ + failure(" ACL entry %d missing from %s: " + "type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s''\n", + marker[i], filename, +- myacls[marker[i]].type, myacls[marker[i]].permset, ++ (unsigned int)myacls[marker[i]].type, ++ (unsigned int)myacls[marker[i]].permset, + myacls[marker[i]].tag, myacls[marker[i]].qual, + myacls[marker[i]].name); + assert(0); /* Record this as a failure. */ +@@ -824,7 +825,7 @@ + + failure("ACL entry on file that shouldn't be there: " + "type=%#010x,permset=%#010x,tag=%d,qual=%d", +- type,permset,tag,qual); ++ (unsigned int)type, (unsigned int)permset, tag, qual); + assert(matched == 1); + } + +@@ -833,7 +834,8 @@ + failure(" ACL entry %d missing from %s: " + "type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s''\n", + marker[i], filename, +- myacls[marker[i]].type, myacls[marker[i]].permset, ++ (unsigned int)myacls[marker[i]].type, ++ (unsigned int)myacls[marker[i]].permset, + myacls[marker[i]].tag, myacls[marker[i]].qual, + myacls[marker[i]].name); + assert(0); /* Record this as a failure. */ +--- contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c.orig ++++ contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c +@@ -274,7 +274,8 @@ + for (i = 0; i < n; ++i) { + failure(" ACL entry missing from file: " + "type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s''\n", +- myacls[marker[i]].type, myacls[marker[i]].permset, ++ (unsigned int)myacls[marker[i]].type, ++ (unsigned int)myacls[marker[i]].permset, + myacls[marker[i]].tag, myacls[marker[i]].qual, + myacls[marker[i]].name); + assert(0); /* Record this as a failure. */ +--- contrib/libarchive/libarchive/test/test_acl_posix1e.c.orig ++++ contrib/libarchive/libarchive/test/test_acl_posix1e.c +@@ -119,7 +119,7 @@ + failure("Basic ACLs shouldn't be stored as extended ACLs"); + assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* With any extended ACL entry, we should read back a full set. */ +@@ -136,7 +136,7 @@ + assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0142); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + +@@ -146,7 +146,7 @@ + assertEntryCompareAcls(ae, acls2, sizeof(acls2)/sizeof(acls2[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0543); + failure("Basic ACLs should set mode to 0543, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0543); + + /* +@@ -157,7 +157,7 @@ + failure("Basic ACLs shouldn't be stored as extended ACLs"); + assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* +--- contrib/libarchive/libarchive/test/test_acl_text.c.orig ++++ contrib/libarchive/libarchive/test/test_acl_text.c +@@ -132,7 +132,7 @@ + ARCHIVE_ENTRY_ACL_EVERYONE, 0, "" }, + }; + +-const char* acltext[] = { ++static const char* acltext[] = { + "user::rwx\n" + "group::r-x\n" + "other::r-x\n" +--- contrib/libarchive/libarchive/test/test_archive_getdate.c.orig ++++ contrib/libarchive/libarchive/test/test_archive_getdate.c +@@ -1,88 +0,0 @@ +-/*- +- * Copyright (c) 2003-2007 Tim Kientzle +- * All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * +- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR +- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +-#include "test.h" +- +-#include <time.h> +- +-#define __LIBARCHIVE_BUILD 1 +-#include "archive_getdate.h" +- +-/* +- * Verify that the getdate() function works. +- */ +- +-#define get_date __archive_get_date +- +-DEFINE_TEST(test_archive_getdate) +-{ +- time_t now = time(NULL); +- +- assertEqualInt(get_date(now, "Jan 1, 1970 UTC"), 0); +- assertEqualInt(get_date(now, "7:12:18-0530 4 May 1983"), 420900138); +- assertEqualInt(get_date(now, "2004/01/29 513 mest"), 1075345980); +- assertEqualInt(get_date(now, "99/02/17 7pm utc"), 919278000); +- assertEqualInt(get_date(now, "02/17/99 7:11am est"), 919253460); +- assertEqualInt(get_date(now, "now - 2 hours"), +- get_date(now, "2 hours ago")); +- assertEqualInt(get_date(now, "2 hours ago"), +- get_date(now, "+2 hours ago")); +- assertEqualInt(get_date(now, "now - 2 hours"), +- get_date(now, "-2 hours")); +- /* It's important that we handle ctime() format. */ +- assertEqualInt(get_date(now, "Sun Feb 22 17:38:26 PST 2009"), +- 1235353106); +- /* Basic relative offsets. */ +- /* If we use the actual current time as the reference, then +- * these tests break around DST changes, so it's actually +- * important to use a specific reference time here. */ +- assertEqualInt(get_date(0, "tomorrow"), 24 * 60 * 60); +- assertEqualInt(get_date(0, "yesterday"), - 24 * 60 * 60); +- assertEqualInt(get_date(0, "now + 1 hour"), 60 * 60); +- assertEqualInt(get_date(0, "now + 1 hour + 1 minute"), 60 * 60 + 60); +- /* Repeat the above for a different start time. */ +- now = 1231113600; /* Jan 5, 2009 00:00 UTC */ +- assertEqualInt(get_date(0, "Jan 5, 2009 00:00 UTC"), now); +- assertEqualInt(get_date(now, "tomorrow"), now + 24 * 60 * 60); +- assertEqualInt(get_date(now, "yesterday"), now - 24 * 60 * 60); +- assertEqualInt(get_date(now, "now + 1 hour"), now + 60 * 60); +- assertEqualInt(get_date(now, "now + 1 hour + 1 minute"), +- now + 60 * 60 + 60); +- assertEqualInt(get_date(now, "tomorrow 5:16am UTC"), +- now + 24 * 60 * 60 + 5 * 60 * 60 + 16 * 60); +- assertEqualInt(get_date(now, "UTC 5:16am tomorrow"), +- now + 24 * 60 * 60 + 5 * 60 * 60 + 16 * 60); +- +- /* Jan 5, 2009 was a Monday. */ +- assertEqualInt(get_date(now, "monday UTC"), now); +- assertEqualInt(get_date(now, "sunday UTC"), now + 6 * 24 * 60 * 60); +- assertEqualInt(get_date(now, "tuesday UTC"), now + 24 * 60 * 60); +- /* "next tuesday" is one week after "tuesday" */ +- assertEqualInt(get_date(now, "UTC next tuesday"), +- now + 8 * 24 * 60 * 60); +- /* "last tuesday" is one week before "tuesday" */ +- assertEqualInt(get_date(now, "last tuesday UTC"), +- now - 6 * 24 * 60 * 60); +- /* TODO: Lots more tests here. */ +-} +--- contrib/libarchive/libarchive/test/test_archive_match_time.c.orig ++++ contrib/libarchive/libarchive/test/test_archive_match_time.c +@@ -25,8 +25,7 @@ + + #include "test.h" + +-#define __LIBARCHIVE_BUILD 1 +-#include "archive_getdate.h" ++#define parse_date archive_parse_date + + static void + test_newer_time(void) +@@ -102,27 +101,27 @@ + + /* Test1: Allow newer time. */ + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/2/1 0:0:1 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:1 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 1); + archive_entry_set_ctime(ae, t, 0); + failure("Its mtime should be excluded"); +@@ -143,20 +142,20 @@ + "1980/2/1 0:0:0 UTC")); + + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/2/1 0:0:1 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:1 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); +@@ -190,27 +189,27 @@ + + /* Test1: Allow newer time. */ + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/2/1 0:0:1 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:1 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 1); + archive_entry_set_ctime(ae, t, 0); + failure("Its mtime should be excluded"); +@@ -231,20 +230,20 @@ + L"1980/2/1 0:0:0 UTC")); + + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/2/1 0:0:1 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:1 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); +@@ -569,37 +568,37 @@ + ARCHIVE_MATCH_OLDER, "1980/2/1 0:0:0 UTC")); + + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_ctime(ae, t, 0); + failure("Its mtime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_ctime(ae, t, 0); + failure("Its ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); +@@ -612,20 +611,20 @@ + "1980/2/1 0:0:0 UTC")); + + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); +@@ -659,37 +658,37 @@ + ARCHIVE_MATCH_OLDER, L"1980/2/1 0:0:0 UTC")); + + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_ctime(ae, t, 0); + failure("Its mtime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); + assertEqualInt(1, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_ctime(ae, t, 0); + failure("Its ctime should be excluded"); + assertEqualInt(1, archive_match_time_excluded(m, ae)); +@@ -702,20 +701,20 @@ + L"1980/2/1 0:0:0 UTC")); + + archive_entry_copy_pathname(ae, "file1"); +- t = __archive_get_date(now, "1980/2/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/2/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); +- t = __archive_get_date(now, "1980/1/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/1/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should not be excluded"); + assertEqualInt(0, archive_match_time_excluded(m, ae)); + assertEqualInt(0, archive_match_excluded(m, ae)); + +- t = __archive_get_date(now, "1980/3/1 0:0:0 UTC"); ++ t = parse_date(now, "1980/3/1 0:0:0 UTC"); + archive_entry_set_mtime(ae, t, 0); + archive_entry_set_ctime(ae, t, 0); + failure("Both Its mtime and ctime should be excluded"); +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_archive_parse_date.c +@@ -0,0 +1,97 @@ ++/*- ++ * Copyright (c) 2003-2007 Tim Kientzle ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++#include <time.h> ++ ++/* ++ * Verify that the archive_parse_date() function works. ++ */ ++ ++#define get_date archive_parse_date ++ ++DEFINE_TEST(test_archive_parse_date) ++{ ++ time_t now = time(NULL); ++ ++ assertEqualInt(get_date(now, "Jan 1, 1970 UTC"), 0); ++ assertEqualInt(get_date(now, "7:12:18-0530 4 May 1983"), 420900138); ++ assertEqualInt(get_date(now, "2004/01/29 513 mest"), 1075345980); ++ assertEqualInt(get_date(now, "99/02/17 7pm utc"), 919278000); ++ assertEqualInt(get_date(now, "02/17/99 7:11am est"), 919253460); ++ assertEqualInt(get_date(now, "now - 2 hours"), ++ get_date(now, "2 hours ago")); ++ assertEqualInt(get_date(now, "2 hours ago"), ++ get_date(now, "+2 hours ago")); ++ assertEqualInt(get_date(now, "now - 2 hours"), ++ get_date(now, "-2 hours")); ++ /* It's important that we handle ctime() format. */ ++ assertEqualInt(get_date(now, "Sun Feb 22 17:38:26 PST 2009"), ++ 1235353106); ++ /* Basic relative offsets. */ ++ /* If we use the actual current time as the reference, then ++ * these tests break around DST changes, so it's actually ++ * important to use a specific reference time here. */ ++ assertEqualInt(get_date(0, "tomorrow"), 24 * 60 * 60); ++ assertEqualInt(get_date(0, "yesterday"), - 24 * 60 * 60); ++ assertEqualInt(get_date(0, "now + 1 hour"), 60 * 60); ++ assertEqualInt(get_date(0, "now + 1 hour + 1 minute"), 60 * 60 + 60); ++ /* Repeat the above for a different start time. */ ++ now = 1231113600; /* Jan 5, 2009 00:00 UTC */ ++ assertEqualInt(get_date(0, "Jan 5, 2009 00:00 UTC"), now); ++ assertEqualInt(get_date(now, "tomorrow"), now + 24 * 60 * 60); ++ assertEqualInt(get_date(now, "yesterday"), now - 24 * 60 * 60); ++ assertEqualInt(get_date(now, "now + 1 hour"), now + 60 * 60); ++ assertEqualInt(get_date(now, "now + 1 hour + 1 minute"), ++ now + 60 * 60 + 60); ++ assertEqualInt(get_date(now, "tomorrow 5:16am UTC"), ++ now + 24 * 60 * 60 + 5 * 60 * 60 + 16 * 60); ++ assertEqualInt(get_date(now, "UTC 5:16am tomorrow"), ++ now + 24 * 60 * 60 + 5 * 60 * 60 + 16 * 60); ++ ++ /* Jan 5, 2009 was a Monday. */ ++ assertEqualInt(get_date(now, "monday UTC"), now); ++ assertEqualInt(get_date(now, "sunday UTC"), now + 6 * 24 * 60 * 60); ++ assertEqualInt(get_date(now, "tuesday UTC"), now + 24 * 60 * 60); ++ /* "next tuesday" is one week after "tuesday" */ ++ assertEqualInt(get_date(now, "UTC next tuesday"), ++ now + 8 * 24 * 60 * 60); ++ /* "last tuesday" is one week before "tuesday" */ ++ assertEqualInt(get_date(now, "last tuesday UTC"), ++ now - 6 * 24 * 60 * 60); ++ ++ /* Unix epoch timestamps */ ++ assertEqualInt(get_date(now, "@0"), 0); ++ assertEqualInt(get_date(now, "@100"), 100); ++ assertEqualInt(get_date(now, "@+100"), 100); ++ ++ assertEqualInt(get_date(now, "@"), -1); ++ assertEqualInt(get_date(now, "@-"), -1); ++ assertEqualInt(get_date(now, "@+"), -1); ++ assertEqualInt(get_date(now, "@tenth"), -1); ++ assertEqualInt(get_date(now, "@100 tomorrow"), -1); ++ ++ /* TODO: Lots more tests here. */ ++} +--- contrib/libarchive/libarchive/test/test_archive_string_conversion.c.orig ++++ contrib/libarchive/libarchive/test/test_archive_string_conversion.c +@@ -91,7 +91,7 @@ + archive_be16enc(utf16+2, (uc & 0x3ff) + 0xDC00); + return (4); + } else { +- archive_be16enc(utf16, uc); ++ archive_be16enc(utf16, (uint16_t)uc); + return (2); + } + } +@@ -118,7 +118,7 @@ + archive_le16enc(utf16+2, (uc & 0x3ff) + 0xDC00); + return (4); + } else { +- archive_le16enc(utf16, uc); ++ archive_le16enc(utf16, (uint16_t)uc); + return (2); + } + } +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_compat_gtar_large.c +@@ -0,0 +1,224 @@ ++/*- ++ * Copyright (c) 2003-2024 Tim Kientzle ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++/* ++ * Verify reading a GNU tar pax format archive with >8GB entry. ++ * ++ * Sample data created with GNU tar 1.35: ++ * $ dd if=/dev/zero of=test.bin bs=1048576 count=8192 ++ * $ gnutar --format=posix -cvf test.tar test.bin ++ * $ hexdump -C -v test.tar | head -n 96 ++ */ ++ ++static const unsigned char test_compat_gtar_large_data[] = { ++ /* 00000000 */ 0x2e, 0x2f, 0x50, 0x61, 0x78, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x74, 0x65, 0x73, /* |./PaxHeaders/tes| */ ++ /* 00000010 */ 0x74, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |t.bin...........| */ ++ /* 00000020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000060 */ 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x36, 0x34, 0x34, 0x00, 0x30, 0x30, 0x30, 0x30, /* |....0000644.0000| */ ++ /* 00000070 */ 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, /* |000.0000000.0000| */ ++ /* 00000080 */ 0x30, 0x30, 0x30, 0x30, 0x31, 0x35, 0x35, 0x00, 0x31, 0x34, 0x37, 0x31, 0x31, 0x35, 0x36, 0x36, /* |0000155.14711566| */ ++ /* 00000090 */ 0x30, 0x31, 0x33, 0x00, 0x30, 0x31, 0x31, 0x37, 0x35, 0x33, 0x00, 0x20, 0x78, 0x00, 0x00, 0x00, /* |013.011753. x...| */ ++ /* 000000a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000000b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000000c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000000d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000000e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000000f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000100 */ 0x00, 0x75, 0x73, 0x74, 0x61, 0x72, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |.ustar.00.......| */ ++ /* 00000110 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000130 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000140 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000150 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000170 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000180 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000190 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000001a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000001b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000001c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000001d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000001e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000001f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000200 */ 0x31, 0x39, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x38, 0x35, 0x38, 0x39, 0x39, 0x33, 0x34, 0x35, /* |19 size=85899345| */ ++ /* 00000210 */ 0x39, 0x32, 0x0a, 0x33, 0x30, 0x20, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x3d, 0x31, 0x37, 0x33, 0x30, /* |92.30 mtime=1730| */ ++ /* 00000220 */ 0x36, 0x30, 0x34, 0x30, 0x34, 0x33, 0x2e, 0x30, 0x34, 0x36, 0x38, 0x33, 0x33, 0x30, 0x31, 0x31, /* |604043.046833011| */ ++ /* 00000230 */ 0x0a, 0x33, 0x30, 0x20, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x3d, 0x31, 0x37, 0x33, 0x30, 0x36, 0x30, /* |.30 atime=173060| */ ++ /* 00000240 */ 0x34, 0x30, 0x33, 0x39, 0x2e, 0x38, 0x30, 0x37, 0x30, 0x38, 0x31, 0x33, 0x31, 0x39, 0x0a, 0x33, /* |4039.807081319.3| */ ++ /* 00000250 */ 0x30, 0x20, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x3d, 0x31, 0x37, 0x33, 0x30, 0x36, 0x30, 0x34, 0x30, /* |0 ctime=17306040| */ ++ /* 00000260 */ 0x34, 0x33, 0x2e, 0x30, 0x34, 0x36, 0x38, 0x33, 0x33, 0x30, 0x31, 0x31, 0x0a, 0x00, 0x00, 0x00, /* |43.046833011....| */ ++ /* 00000270 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000280 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000290 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000002a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000002b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000002c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000002d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000002e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000002f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000300 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000310 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000320 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000330 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000340 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000350 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000360 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000370 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000380 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000390 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000003a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000003b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000003c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000003d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000003e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000003f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000400 */ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |test.bin........| */ ++ /* 00000410 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000420 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000430 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000440 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000450 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000460 */ 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x36, 0x34, 0x34, 0x00, 0x30, 0x30, 0x30, 0x30, /* |....0000644.0000| */ ++ /* 00000470 */ 0x37, 0x36, 0x35, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x32, 0x34, 0x00, 0x30, 0x30, 0x30, 0x30, /* |765.0000024.0000| */ ++ /* 00000480 */ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x31, 0x34, 0x37, 0x31, 0x31, 0x35, 0x36, 0x36, /* |0000000.14711566| */ ++ /* 00000490 */ 0x30, 0x31, 0x33, 0x00, 0x30, 0x31, 0x31, 0x32, 0x33, 0x35, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, /* |013.011235. 0...| */ ++ /* 000004a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000004b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000004c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000004d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000004e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000004f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000500 */ 0x00, 0x75, 0x73, 0x74, 0x61, 0x72, 0x00, 0x30, 0x30, 0x74, 0x69, 0x6d, 0x00, 0x00, 0x00, 0x00, /* |.ustar.00tim....| */ ++ /* 00000510 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000520 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x66, 0x66, 0x00, 0x00, /* |.........staff..| */ ++ /* 00000530 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000540 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000550 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000560 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000570 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000580 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 00000590 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000005a0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000005b0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000005c0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000005d0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000005e0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++ /* 000005f0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* |................| */ ++}; ++ ++/* ++ * Followed by 16777218 blocks, each consisting of 512 zeros: ++ * Entry is 8GB = 2^24 = 16777216 blocks ++ * Plus 2 zero blocks for end-of-archive ++ */ ++ ++struct my_reader { ++ const void *prefix; ++ int prefix_length; ++ int zero_blocks_remaining; ++ void *zero_block; ++}; ++ ++/* ++ * Custom reader returns first the prefix, then ++ * the expected number of zero blocks, then EOF. ++ */ ++static ssize_t ++myread(struct archive *a, void *client_data, const void **buff) ++{ ++ struct my_reader *reader = client_data; ++ (void)a; /* UNUSED */ ++ ++ if (reader->prefix != NULL) { ++ *buff = reader->prefix; ++ reader->prefix = NULL; ++ return reader->prefix_length; ++ } else if (reader->zero_blocks_remaining > 0) { ++ *buff = reader->zero_block; ++ reader->zero_blocks_remaining -= 1; ++ return 512; ++ } else { ++ return 0; ++ } ++} ++ ++/* ++ * test_compat_gtar_large verifies that we can read ++ * the archive encoded above. ++ */ ++DEFINE_TEST(test_compat_gtar_large) ++{ ++ struct archive *a; ++ struct archive_entry *ae; ++ struct my_reader reader = { ++ test_compat_gtar_large_data, ++ sizeof(test_compat_gtar_large_data), ++ 16777218, /* 2^24 + 2 ; See above */ ++ NULL ++ }; ++ int r; ++ ++ reader.zero_block = calloc(1, 512); ++ ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open(a, &reader, NULL, myread, NULL)); ++ ++ /* Read first entry. */ ++ assertEqualIntA(a, ARCHIVE_OK, r = archive_read_next_header(a, &ae)); ++ if (r != ARCHIVE_OK) { ++ archive_read_free(a); ++ return; ++ } ++ assertEqualString("test.bin", archive_entry_pathname(ae)); ++ assertEqualInt(1730604043, archive_entry_mtime(ae)); ++ assertEqualInt(501, archive_entry_uid(ae)); ++ assertEqualString("tim", archive_entry_uname(ae)); ++ assertEqualInt(20, archive_entry_gid(ae)); ++ assertEqualString("staff", archive_entry_gname(ae)); ++ assertEqualInt(0100644, archive_entry_mode(ae)); ++ assertEqualInt(8589934592LL, archive_entry_size(ae)); ++ ++ /* TODO: Read and verify contents: 8GB of zeros */ ++ ++ /* Verify the end-of-archive. */ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ /* Verify that the format detection worked. */ ++ assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); ++ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE); ++ ++ /* Verify that the reader actually read to the end of data */ ++ assertEqualInt(reader.zero_blocks_remaining, 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++ free(reader.zero_block); ++} +--- contrib/libarchive/libarchive/test/test_compat_solaris_tar_acl.c.orig ++++ contrib/libarchive/libarchive/test/test_compat_solaris_tar_acl.c +@@ -229,7 +229,7 @@ + assertEntryCompareAcls(ae, acls0, sizeof(acls0)/sizeof(acls0[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0644); + failure("Basic ACLs should set mode to 0644, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0644); + + /* Second item has default and access ACLs */ +@@ -239,7 +239,7 @@ + assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0750); + failure("Basic ACLs should set mode to 0750, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0750); + assertEqualInt(6, archive_entry_acl_reset(ae, + ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)); +--- contrib/libarchive/libarchive/test/test_compat_star_acl.c.orig ++++ contrib/libarchive/libarchive/test/test_compat_star_acl.c +@@ -251,7 +251,7 @@ + assertEntryCompareAcls(ae, acls0, sizeof(acls0)/sizeof(acls0[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0142); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Second item has pretty extensive ACLs */ +@@ -261,7 +261,7 @@ + assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]), + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0543); + failure("Basic ACLs should set mode to 0543, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0543); + + /* Third item has default ACLs */ +@@ -271,7 +271,7 @@ + assertEntryCompareAcls(ae, acls2, sizeof(acls2)/sizeof(acls2[0]), + ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, 0142); + failure("Basic ACLs should set mode to 0142, not %04o", +- archive_entry_mode(ae)&0777); ++ (unsigned int)archive_entry_mode(ae)&0777); + assert((archive_entry_mode(ae) & 0777) == 0142); + + /* Close the archive. */ +--- contrib/libarchive/libarchive/test/test_entry.c.orig ++++ contrib/libarchive/libarchive/test/test_entry.c +@@ -436,7 +436,7 @@ + archive_entry_fflags(e, &set, &clear); + assertEqualInt(UF_HIDDEN, set); + assertEqualInt(UF_NODUMP | UF_IMMUTABLE | UF_APPEND, clear); +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + archive_entry_copy_fflags_text_w(e, L"rdonly,hidden,nosystem"); + archive_entry_fflags(e, &set, &clear); + assertEqualInt(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN, set); +--- contrib/libarchive/libarchive/test/test_open_file.c.orig ++++ contrib/libarchive/libarchive/test/test_open_file.c +@@ -31,14 +31,14 @@ + struct archive *a; + FILE *f; + +- f = fopen("test.tar", "wb"); ++ f = fopen("test.7z", "wb"); + assert(f != NULL); + if (f == NULL) + return; + + /* Write an archive through this FILE *. */ + assert((a = archive_write_new()) != NULL); +- assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_7zip(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_write_open_FILE(a, f)); + +@@ -70,9 +70,10 @@ + fclose(f); + + /* +- * Now, read the data back. ++ * Now, read the data back. 7z requiring seeking, that also ++ * tests that the seeking support works. + */ +- f = fopen("test.tar", "rb"); ++ f = fopen("test.7z", "rb"); + assert(f != NULL); + if (f == NULL) + return; +--- contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c.orig ++++ contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c +@@ -39,7 +39,7 @@ + { + const char *fn = "fs_noatime"; + struct stat st; +-#if defined(_WIN32) && !defined(CYGWIN) ++#if defined(_WIN32) && !defined(__CYGWIN__) + char *buff = NULL; + char *ptr; + int r; +--- contrib/libarchive/libarchive/test/test_read_format_7zip.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_7zip.c +@@ -24,13 +24,16 @@ + */ + #include "test.h" + ++#if HAVE_LZMA_H ++#include <lzma.h> ++#endif ++ + #if defined(_WIN32) && !defined(__CYGWIN__) + #define close _close + #define open _open + #endif + + #define __LIBARCHIVE_BUILD +-#include <archive_crc32.h> + + /* + * Extract a non-encoded file. +@@ -402,7 +405,7 @@ + la_ssize_t bytes_read = archive_read_data(a, buff, sizeof(buff)); + assert(bytes_read >= 0); + if (bytes_read == 0) break; +- computed_crc = crc32(computed_crc, buff, bytes_read); ++ computed_crc = bitcrc32(computed_crc, buff, bytes_read); + } + assertEqualInt(computed_crc, expected_crc); + +@@ -929,6 +932,10 @@ + if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) { + skipping( + "7zip:zstd decoding is not supported on this platform"); ++ } else if (ARCHIVE_OK != archive_read_support_filter_xz(a)) { ++ // The directory header entries in the test file uses lzma. ++ skipping( ++ "7zip:lzma decoding is not supported on this platform"); + } else { + test_extract_all_files_zstd("test_read_format_7zip_zstd.7z"); + } +@@ -946,6 +953,10 @@ + if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) { + skipping( + "7zip:zstd decoding is not supported on this platform"); ++ } else if (ARCHIVE_OK != archive_read_support_filter_xz(a)) { ++ // The directory header entries in the test file uses lzma. ++ skipping( ++ "7zip:lzma decoding is not supported on this platform"); + } else { + test_extract_all_files_zstd("test_read_format_7zip_solid_zstd.7z"); + } +@@ -1063,7 +1074,7 @@ + assertEqualString("hw-gnueabihf", archive_entry_pathname(ae)); + assertEqualInt(sizeof(buff), archive_entry_size(ae)); + assertEqualInt(sizeof(buff), archive_read_data(a, buff, sizeof(buff))); +- computed_crc = crc32(computed_crc, buff, sizeof(buff)); ++ computed_crc = bitcrc32(computed_crc, buff, sizeof(buff)); + assertEqualInt(computed_crc, expected_crc); + + assertEqualInt(1, archive_file_count(a)); +@@ -1137,7 +1148,7 @@ + assertEqualString("hw-arm64", archive_entry_pathname(ae)); + assertEqualInt(sizeof(buff), archive_entry_size(ae)); + assertEqualInt(sizeof(buff), archive_read_data(a, buff, sizeof(buff))); +- computed_crc = crc32(computed_crc, buff, sizeof(buff)); ++ computed_crc = bitcrc32(computed_crc, buff, sizeof(buff)); + assertEqualInt(computed_crc, expected_crc); + + assertEqualInt(1, archive_file_count(a)); +@@ -1150,7 +1161,7 @@ + + DEFINE_TEST(test_read_format_7zip_lzma2_arm64) + { +-#ifdef HAVE_LZMA_FILTER_ARM64 ++#ifdef LZMA_FILTER_ARM64 + struct archive *a; + + assert((a = archive_read_new()) != NULL); +@@ -1260,6 +1271,97 @@ + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + } + ++DEFINE_TEST(test_read_format_7zip_sfx_pe) ++{ ++ /* ++ * This is a regular 7z SFX PE file ++ * created by 7z tool v22.01 on Windows 64-bit ++ */ ++ struct archive *a; ++ struct archive_entry *ae; ++ int bs = 10240; ++ char buff[32]; ++ const char reffile[] = "test_read_format_7zip_sfx_pe.exe"; ++ const char test_txt[] = "123"; ++ int size = sizeof(test_txt) - 1; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertA(0 == archive_read_support_filter_all(a)); ++ assertA(0 == archive_read_support_format_all(a)); ++ assertA(0 == archive_read_open_filename(a, reffile, bs)); ++ ++ assertA(0 == archive_read_next_header(a, &ae)); ++ assertEqualString("test.txt.txt", archive_entry_pathname(ae)); ++ ++ assertA(size == archive_read_data(a, buff, size)); ++ assertEqualMem(buff, test_txt, size); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ ++DEFINE_TEST(test_read_format_7zip_sfx_modified_pe) ++{ ++ /* ++ * This test simulates a modified 7z SFX PE ++ * the compressed data in the SFX file is still stored as PE overlay ++ * but the decompressor code is replaced ++ */ ++ struct archive *a; ++ struct archive_entry *ae; ++ int bs = 10240; ++ char buff[32]; ++ const char reffile[] = "test_read_format_7zip_sfx_modified_pe.exe"; ++ const char test_txt[] = "123"; ++ int size = sizeof(test_txt) - 1; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertA(0 == archive_read_support_filter_all(a)); ++ assertA(0 == archive_read_support_format_all(a)); ++ assertA(0 == archive_read_open_filename(a, reffile, bs)); ++ ++ assertA(0 == archive_read_next_header(a, &ae)); ++ assertEqualString("test.txt.txt", archive_entry_pathname(ae)); ++ ++ assertA(size == archive_read_data(a, buff, size)); ++ assertEqualMem(buff, test_txt, size); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ ++DEFINE_TEST(test_read_format_7zip_sfx_elf) ++{ ++ /* ++ * This is a regular 7z SFX ELF file ++ * created by 7z tool v16.02 on Ubuntu ++ */ ++ struct archive *a; ++ struct archive_entry *ae; ++ int bs = 10240; ++ char buff[32]; ++ const char reffile[] = "test_read_format_7zip_sfx_elf.elf"; ++ const char test_txt[] = "123"; ++ int size = sizeof(test_txt) - 1; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertA(0 == archive_read_support_filter_all(a)); ++ assertA(0 == archive_read_support_format_all(a)); ++ assertA(0 == archive_read_open_filename(a, reffile, bs)); ++ ++ assertA(0 == archive_read_next_header(a, &ae)); ++ assertEqualString("test.txt.txt", archive_entry_pathname(ae)); ++ ++ assertA(size == archive_read_data(a, buff, size)); ++ assertEqualMem(buff, test_txt, size); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ + DEFINE_TEST(test_read_format_7zip_extract_second) + { + struct archive *a; +@@ -1301,3 +1403,206 @@ + + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + } ++ ++#ifdef LZMA_FILTER_RISCV ++static void ++test_riscv_filter(const char *refname) ++{ ++ struct archive *a; ++ struct archive_entry *ae; ++ char buff[8488]; ++ uint32_t computed_crc = 0; ++ uint32_t expected_crc = 0xf7ed24e7; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ extract_reference_file(refname); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_read_open_filename(a, refname, 10240)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); ++ assertEqualInt((AE_IFREG | 0775), archive_entry_mode(ae)); ++ assertEqualString("hw-riscv64", archive_entry_pathname(ae)); ++ assertEqualInt(sizeof(buff), archive_entry_size(ae)); ++ assertEqualInt(sizeof(buff), archive_read_data(a, buff, sizeof(buff))); ++ ++ computed_crc = bitcrc32(computed_crc, buff, sizeof(buff)); ++ assertEqualInt(computed_crc, expected_crc); ++ ++ assertEqualInt(1, archive_file_count(a)); ++ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++#endif ++ ++DEFINE_TEST(test_read_format_7zip_lzma2_riscv) ++{ ++#ifdef LZMA_FILTER_RISCV ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) { ++ skipping("7zip:lzma decoding is not supported on this platform"); ++ } else { ++ test_riscv_filter("test_read_format_7zip_lzma2_riscv.7z"); ++ } ++#else ++ skipping("This version of liblzma does not support LZMA_FILTER_RISCV"); ++#endif ++} ++ ++static void ++test_sparc_filter(const char *refname) ++{ ++ struct archive *a; ++ struct archive_entry *ae; ++ size_t expected_entry_size = 1053016; ++ char *buff = malloc(expected_entry_size); ++ uint32_t computed_crc = 0; ++ uint32_t expected_crc = 0x6b5b364d; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ extract_reference_file(refname); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_read_open_filename(a, refname, 10240)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); ++ assertEqualInt((AE_IFREG | 0775), archive_entry_mode(ae)); ++ assertEqualString("hw-sparc64", archive_entry_pathname(ae)); ++ assertEqualInt(expected_entry_size, archive_entry_size(ae)); ++ assertEqualInt(expected_entry_size, archive_read_data(a, buff, expected_entry_size)); ++ ++ computed_crc = bitcrc32(computed_crc, buff, expected_entry_size); ++ assertEqualInt(computed_crc, expected_crc); ++ ++ assertEqualInt(1, archive_file_count(a)); ++ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++ ++ free(buff); ++} ++ ++DEFINE_TEST(test_read_format_7zip_lzma2_sparc) ++{ ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) { ++ skipping( ++ "7zip:lzma decoding is not supported on this platform"); ++ } else { ++ test_sparc_filter("test_read_format_7zip_lzma2_sparc.7z"); ++ } ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ ++DEFINE_TEST(test_read_format_7zip_zstd_sparc) ++{ ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) { ++ skipping( ++ "7zip:zstd decoding is not supported on this platform"); ++ } else { ++ test_sparc_filter("test_read_format_7zip_zstd_sparc.7z"); ++ } ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ ++static void ++test_powerpc_filter(const char *refname) ++{ ++ struct archive *a; ++ struct archive_entry *ae; ++ size_t expected_entry_size = 68340; ++ char *buff = malloc(expected_entry_size); ++ uint32_t computed_crc = 0; ++ uint32_t expected_crc = 0x71fb03c9; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ extract_reference_file(refname); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_read_open_filename(a, refname, 10240)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); ++ assertEqualInt((AE_IFREG | 0775), archive_entry_mode(ae)); ++ assertEqualString("hw-powerpc", archive_entry_pathname(ae)); ++ assertEqualInt(expected_entry_size, archive_entry_size(ae)); ++ assertEqualInt(expected_entry_size, archive_read_data(a, buff, expected_entry_size)); ++ ++ computed_crc = bitcrc32(computed_crc, buff, expected_entry_size); ++ assertEqualInt(computed_crc, expected_crc); ++ ++ assertEqualInt(1, archive_file_count(a)); ++ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++ ++ free(buff); ++} ++ ++DEFINE_TEST(test_read_format_7zip_deflate_powerpc) ++{ ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ if (ARCHIVE_OK != archive_read_support_filter_gzip(a)) { ++ skipping( ++ "7zip:deflate decoding is not supported on this platform"); ++ } else { ++ test_powerpc_filter("test_read_format_7zip_deflate_powerpc.7z"); ++ } ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ ++DEFINE_TEST(test_read_format_7zip_lzma2_powerpc) ++{ ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ ++ if (ARCHIVE_OK != archive_read_support_filter_gzip(a)) { ++ skipping( ++ "7zip:deflate decoding is not supported on this platform"); ++ } else { ++ test_powerpc_filter("test_read_format_7zip_lzma2_powerpc.7z"); ++ } ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_deflate_powerpc.7z.uu +@@ -0,0 +1,55 @@ ++begin 664 test_read_format_7zip_deflate_powerpc.7z ++M-WJ\KR<<``2:7;DH@`@```````!R`````````#:LFQ3LU$MK$U$4P/$SDZB1 ++M)#)*%$'1$0,JB&\D14M,?56J]8%N=)%6(QJ,5FW%(BD97XC@HN(#7(@K@QO! ++MA6Y%-R*"7\$GKMQTX4*P.IX[<Z>*%#_!_U=.YMZYY][<<S.=UM:=VQS7D0FN ++M%/33\23EZW6=.%-OZ]6T?)DN2V6^S-/>5'/'LZ'I?AR2MI'2_G[/AO;S)NR8 ++M8T.\*(PIHU'H1SQB/G]]]YPXM+M<8U7TO8[=I83B.7&H,1M3_^S!J7DVM+_% ++M1#)6&_JR1[_*]VSHO?E1_!G?*Y.PZWLZON^?_65,)/6M;-0/KVS45@P.K%AM ++M)MG[!7,NVWL/2->;^Z^F/4M_>]9U<U'OW8>;/KU\<LWF>&:^R;%2<:UQS7_. ++MSVS:3W+2+S[W/)YDK[.3QJSXXOW3WV:[R4J.GD7.K#=39(94=^RN#@[5ZJ>J ++MYP:/UN3TN:%!J5:ULB-ZN__L4/5D?_V4F+ZI<[ULW[FC:W-US8I5$ZVUZW3" ++ML9,#I^R$:ER%UN28OZB>)<F^\O6Z9^M=;>Y-O7OSJ:UY@X;YG<=TN!"UW6B[ ++MLVT[K6E).Z,Y4?OVHG"LF7';HXX4;KV43-<#F=)Z[;;+[\3=\.YG)E@0CJ\, ++M1"K/)=,MZ8N!YC4SJ?9ES2TM$J\WB(^EN2P[O'^1K#?S1QZY[=+$VBFSMI3? ++MBMN9-VN.O[[Z:/Q#MQYCG^8DL;'/<SM]SRT=D6+',BDVI\^579?$[]35M2_+ ++MITO4'UF6:O<&:?_O_-)US;_L[VE>F7.Z>66&AG/G?W/[[-YN?91<^8/G7B]+ ++MT>1LTISD++HEU=_ABV/JO:?C4<V:G]3<$X:!KO'!YA=UK?G-<G9XM"6YT0>2 ++MT;U)J3[%TS,[H^O(R.*>X8Z6^$%6TM%:7\/QD?Y#P[I6M)].K>?B"<VKQWNT ++M_?0__4S2__OLHOF!GL>),0ERX?>.$S].-Z>GVLWLP<+%&_H]?0<+R9Q)XS_/ ++MP:2_MRO.\:.-QL!R__S`V48M>LKFI<SS-]<\BV'XZYMYCX1AN$FOJY)GU[FP ++M3XNO./-R$Z^UN9ICW@>!_1<K:BS7^8_TVBV5&?[FF976`Z>27]B3RTKE?=X1 ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````````````````#PN]UJ ++M!Y$:BJ(WF5E===2L_R\,..`_C!\4Q,+9CQ_PA^X*-CXSF[@3G$G6)*.[%B*B ++MJ""B:*%6EEM:J+5@8R%BIZ4V%F*AH"(BCN?EW;CCD$8;FQPX\][)/;EY[[Z7 ++MO,F0(4.&#!DR9,B0(4.&#!DR9/C?,"AO&)1[B:X&K@0+!NFOT<Y$[`W:Q8;V ++M\QO:I6`>7`+]`^TRJ?W6SR\&:1/H=^&^16BG0#]#.QT<`F>`!CB?%'*&3A+R ++MMP3.`Z>""W'_0]E'*_-U@V5P&E@8E4FTUF>_U?J)^!C:EAPSVH_0'OT#D*^] ++M#C?`V^`=0S]?0CN/.K"KKV];<=50M>E%S>*&3>8FL[Q^2S.6&\]MW&R6-Z_F ++MRY0*U&60@!R1QMIFK;.^PCK'>H)UGO4SUET$R'JSGL+:8SV5]1CK;M9)OFFL ++M'[*>SOHUZQE*YXJL"URC-ZQG*MU58#V+=>*?S7H[:X,`N8]8][#^P7I.LAZL ++MY[+^R'I>K'5*XO-9)\]?P+K$>B$Q6,LZ:<3(4^L3FFZN=U%3]9Z#^:XC"37? ++M91W^E8@?)T!7\=70-]KT=GZ/$GV(QZ-I:CS'DOEJ:KZ7Y+O7YK^9U$=3]7G0 ++M_OR4\3Q"?:^QWR"@(_Y4[F..R_J\2.JKJ?J^2M:+U'J]E^\7Q^?)WP1SU%WK ++M#%V-H1CGTY8G]3:4+B7[8XY.,Z'7L#^);^W(MY,81:6'#%UU>_387^7]E>^) ++M]Y=V"O%5G&\A=)GWYV;D*T"?YO$D\0O\#N_F^&6.)_EOR?W.XYU!PT&TP?1) ++M"*OJBL@:H1$_$G6KZM1E*(R:)TZ8PV0[@3/BAI$3B*@AANN^YX2XQ_;%2-VO ++M6G5A1WX0"JLY1L-^8[3N1(YMEM,=XH3KN<(*`FM<.%X4C-.)P&HXPFXV&N.X ++MI4T).*,_K+4S&(T0.P]5]@V(@?W]0I`XW%\1O97#`^CV']U?V;>G#XY=^X?$ ++MP&XV[NX_1&+7W@.]E;WBP,Z=AP<&Q6"E=Z^\0]3=ZK`((RN(1,-RO1V[]N[I ++M[1,;S4V;23BV%5D4#QA.*9231IM1F#CC>8XT?(^S"&D-?5&S/+OND-AS``'; ++M]40S=&S"/&P8JF'(J>1#<6%P7Q_/)YXTD1F.-R*KBC8*5%M+>JZ'A1@ET_,C ++MQQSQFF:UZ=;M]:[-ERJ]>];+I8QC-2NLD6F/>\@7M\BB(J>=('1][P\A$`N< ++MNB6-W!NM1_*1+GXC9PR_LAR(^7%Q3*?&*U:S@TDE[TB63MW!?9G8:KC#>*J/ ++M7"H'JD$F-DX#BTQ_@Z7\?=/5&2-),XG!,8D5X%3VV1232C2)/"EL:?-=(?Y. ++MIOCZ<?Y^9=\$@>SK2GS,_>`,]CVCF'20U+FEL<<`CX`YY</9%I.&4N9Q3)[_ ++M[/,H)DUO>Z[./"G_+[!OC&)2N>.Y$F=EGWT3%),*[?-@?9'[O>KLE*02^^:W ++M^:YS_BGJ&R-)_2GUNSWIRQ4IIO:$)F&0PKW$I[ZQDK0N)=]]]NGJVRE)/2F^ ++MB39?D6+2LA3?XS;?=HI)@RD^.>998$Z=82#'&'GF<SYK<NHL!--]K^5<E:^% ++M1I(^\K7$UPV^!37V(2Y)1DJ^J[]]NNH!A91YO)OT(:[%GD4IO@]@-_M*I(&( ++MI>S33]PO$\"^M1V^A'K;U8-(_4#^U^9U3MZ/:6!NTI>7/W=3GMOSIZ]+>KYW ++M^GX!`00&``$)B(``!PL!``(#!`$(!`,#`@4!``S!]`K!]`H`"`H!R0/[<0`` ++M!0$9#P```````````````````!$7`&@`=P`M`'``;P!W`&4`<@!P`&,````9 ++;!``````4"@$`>7-\NFY9VP$5!@$`((#]@0`` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_7zip_extract_second.7z.uu.orig ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_extract_second.7z.uu +@@ -1,11 +1,11 @@ +-begin 644 test_read_format_7zip_extract_second.7z
+-M-WJ\KR<<``-N%=VX!@$````````B`````````*R\U.<`&`Q"DFIGO`[1,RO\
+-MN,RA7-QU1L&_]O_/$0MMLIEBUR3'BDX@M2C-5'VG./-4,5@W3Q@*__^7_,[H
+-MEO`DB'[ZI>@H2_E>/W.2G$$.P01-X!YN5";SS[3#7Z4Q1G/EF.0'^D*[S8&8
+-M[FV9DYX7,SA%^.Q\'?__P!@`````@3,'K@_4WV/Q0A7VLXG$X?GH4=5W^`UM
+-M$N_EX$)LE*?K$W5?WLP:X0T[Q%V^?A!0E\VZRBB,)(MO`C`LO[O!3(1YL)<:
+-MJ."`';WU;>GP5',%Z=6?*/H9*Z)&\*!2^<F\P&>,RV`R30UOBH8+5.;;2IKF
+-M0W://&'?"L?0L2!)`*]F30B0&/_'<4``%P9Z`0F`C``'"P$``2,#`0$%70``
+--@``,@*@*`6]FB2D`````
+-`
+-end
++begin 644 test_read_format_7zip_extract_second.7z ++M-WJ\KR<<``-N%=VX!@$````````B`````````*R\U.<`&`Q"DFIGO`[1,RO\ ++MN,RA7-QU1L&_]O_/$0MMLIEBUR3'BDX@M2C-5'VG./-4,5@W3Q@*__^7_,[H ++MEO`DB'[ZI>@H2_E>/W.2G$$.P01-X!YN5";SS[3#7Z4Q1G/EF.0'^D*[S8&8 ++M[FV9DYX7,SA%^.Q\'?__P!@`````@3,'K@_4WV/Q0A7VLXG$X?GH4=5W^`UM ++M$N_EX$)LE*?K$W5?WLP:X0T[Q%V^?A!0E\VZRBB,)(MO`C`LO[O!3(1YL)<: ++MJ."`';WU;>GP5',%Z=6?*/H9*Z)&\*!2^<F\P&>,RV`R30UOBH8+5.;;2IKF ++M0W://&'?"L?0L2!)`*]F30B0&/_'<4``%P9Z`0F`C``'"P$``2,#`0$%70`` ++-@``,@*@*`6]FB2D````` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_lzma2_powerpc.7z.uu +@@ -0,0 +1,48 @@ ++begin 664 libarchive/test/test_read_format_7zip_lzma2_powerpc.7z ++M-WJ\KR<<``3$^AU-00<```````!R`````````-SC-5?A"O,'.5T`/Y%%A&@T ++MB@D*0&*NI,NQR,0S-H]<P)GH(2EK<8Z0MK$AM$E59OS\=H@OROLA)AS9B@,; ++MLP*KP+U%[]E&XS;QR:/ENC4N1+/R(96Q6I#[E3/`3$Q5`FALIF=H*"':2L/' ++M6Z"WXQ;]<^H=K^'R\KTQ+9?W2V/<9+IHRM1;U$=>24V>HUJ)S8G8?UTBL>Q5 ++MG.4VRG`GX;NVN!)QZV9EE-86\EX/-AGSD8"!_9OCIVXS85?#W'27\3@+6C5[ ++MNF\X^*^Y;RXP>O=WDX`WFTS!C`ZZ+4=K-.AWX[@*@)]I$[S6<!?17>4O;XZL ++MAMD8<%,25+2ZFN6C=QD/7BQW"%!J\Q]5:/P\JOWIO1&Z)XJPAH]RU>Q=R:'" ++M1.D[?\\09!A4R'EED]]!$(`P\VJ>\*'QH^,1[W<'/KHPYR\>YQ>)7;$Q1$2Q ++MT;Y'@(N5GF.QDBD^[&@!Z7!)8T:A8G>LO#(-C]Q]RQ+RP8)+;A49<3:R@[<. ++M6QP1PPEA<]\\J&[Z4Q.3D4JF=[9(>PZ;PH1=9X$OB2+-JWD+(MY@9)+.RBE\ ++M-(YGOM"(P#:$I2]OP+Z`!T:_-7`>%UH]^X%9I;=?%F'`?%@SZGPK7U7P.NY1 ++MO^(M\S$TG0-!QBLO4NVWI'9=V=59:L$<)=R(B=><7E`EHU>+9U:<CU(9\*K. ++M6D2CXF,_C:6R8`-L7GKF7]P(T(^ALUD)R6ELY,^%2:_)$"[""8L^3I[898Y# ++M9WS:T9/R(.!D7*#1\>R60*?H+;L:IXHASE[EX="AL9^\TE8<]4<!CU4X:2Z+ ++M[>\'P<.8X63DC$%-'EF2+XYRU/NJEAQ8^I(QUY>=IH']H+>E?4H15L`[6A?? ++MYQ%.OP=9FA1\3D^6X28B!N^S0C/K(YJNUH-"Z();:A$'BXD)LNBZ4M;S-:$< ++MD?F)EG-N&&1W;@208KQ-ROM$$L^-"LM93&YH!3<9G"EL[^E+P!=UCPJ6MX8E ++MD_G.B!(=0CA`.\TB&<%GU8CS!`4F_T$*IV'T;,6>X1#"0<NE??L&V6Y&#HT- ++M%97*P/C@5DV5`'^L=W^58IVHDRQB;=OTD'ZN/`K#78)X1D^9CIJ-/'D;0P1E ++MKY!-^<`4Z'[O=;^.W84A4DT%'R#_>H?_EN"/R^EE'3BUH(JL&GR=V\DK6^W& ++MQ<J(&7&OL6=,DFT'<*D24G2[1*-NL/!ML@@>4&"6)M)";27.MU5=J:`5'\[Q ++MRGVNDF%%,496/=".O2\%0/:L/DYAK$@8N&Q-MB\(B,I&D44;Z$"5OEOZ&+[3 ++MP<6Y""AA;7[-PHA'VM!.P?%2&UY&RV1PV8A%_E\W>C?4AZ$."9483$_WT@>? ++MP</<'BQ,@D%3W4\BZ\?[]<XGTU[U`_;QT3;!E@SZL2&)D17$D*V_%%AO&CUL ++M17-W'YT>9Q@;):Q=!M6*6%B<=I/2O&&TR;`%8C,>AU);W2__21.`.E&3R*"# ++MF/E^)UDT^O^">DN`G0X?YMDA0(VD##Q!=#AJ2_GU(R]"BT\9=G]06IVXB*N> ++MD._HN.P#'34_+GN3+-R$,309TH/LS@S@U\MI$#2K3\^7&&MXU4$XN0"Q\X9" ++M@"<!9\,)5+F([FYW/6@S:C?HOQ!Y?&L^>F6:AQACT&WF>-H#X#L62S\<T8)1 ++M+K1AGJH**YUU!%29IJ+"<H4IQ7K:(N-Q`!2<'H4#_=E/I!I#`773!RC\'RB' ++M\N$?7?O*S)(@=/V(5STM2-]%OH'$!G3/%J+PF[*'Y/1S+OG3!A%HMYFJ&XI: ++M"^@2<.Y__Q$4G4QZ*TBDC!*0N=="8`[,+[LN*<\Z;F[>U$Z^I@#R%"^PAU[* ++M_S%['0[X>],*)X36#OJ=S>JW>URI18]C)/IPC>%O$O87NK;/*'LSFF`&O=<X ++M(Z@J6>UON5U$^V>E]4BYF!=EJ=>W>!L!))2)WXN[6.R9KY<G"Q3%10,2+3ML ++M3\X&=W$:X9<>6OYB_%D\LB@UJKV$X?$3X!__S,A$L(9TJ;'"/_KQD_`[B8%4 ++M@:*M>W7>7:^#T%>UD!F&2U9MH!,&+NCL8_C0R1,V,<09?&_#YQ,:=OX`P`>Z ++M$F2Q3)V#BA^O*^SVX_H(":;Y1R\E%.2")3UKK[GS4LK?/)MTMK9O,;C_&^1Z ++M]YV_L72P)(`*4@G2BS"T#+0MFF+[2@%^L.Y+G;/_G;O3U]9V>BO?AA(@YY1T ++M(PZ_RW(H!:>:2"-VPA#,?7A`^W<*16&L'FSQ0>S*^?^%4M.0J!D;_PJV@M9U ++MX^RVHWG(^4T*27L?-?N_,&Z9_L+B`5FC2$7OSN:!R!T>@:PS.!&G%]<=TRUW ++MO$"BL"1/8WVCYVY[)O0#BGT7+'4)(8$#PDBKX[G8`5IV^HOM);AWVK;N2=?O ++M6Z(82J?PP3)M":X^V\^4P/`JLI6D3E(0Y,&R?38!2J\A?)$FA9N-)=C.8TM7 ++M;NY.1S63C),^$)LC$@<'B:M(DW@!)1#8/",9(Z%V@<#;N=,QJ>GQ\7@6```! ++M!`8``0F'00`'"P$``B$A`0D$`P,"!0$`#,'T"L'T"@`("@')`_MQ```%`1D/ ++M````````````````````$1<`:`!W`"T`<`!O`'<`90!R`'``8P```!D$```` ++7`!0*`0!T7'CG;UG;`14&`0`@@/V!```` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_lzma2_riscv.7z.uu +@@ -0,0 +1,49 @@ ++begin 664 test_read_format_7zip_lzma2_riscv.7z ++M-WJ\KR<<``2#$,U9>P<```````!B`````````/NM+,3@(2<'<UT`/Y%%A&@] ++MB:;:BN&'>5VNZVMMC.M1:6A'_@4B7D:$-^A7OC]^75)8S5[+EBS'O"X%U.;J ++MIP3!?I?]\-&D<I[W\FS7H%CQ=S64L.1V)*HK)04LW0-JNI<=.3PVK;F>0*0_ ++M<V\,5LDA<">8\P?X^=GN)?^"&<Z(7B1X<'&:/SJ+0J)$B&)N.&:S/A(-AD>< ++M8F?3+:T?=0[F$8D0,>.@/W@?.H_*3R#+OM.JM\::8JT52"_:`"T^IFT#HJ&E ++MG?=B5!4EX?D"/N"[9<Z[5+N+<)0LE\OND5%%,T,44BGN4EMLLA"I^$I7$IV+ ++MRC=E$V@L)WV=`@B'<A%J<L$.K9S2?)#YBM^Q7(NIIH>/+^W956RS)T4MN<UB ++MP)4GP)(G^)1<;^<Z@,I\,OCBYD)[.(N/`O[U)^+[V"Q8N%U1U+H\NW8?%:`< ++MY2Y1[*7D52LG-J3L<$]Q8M:LFP\V<HF*RE,C<'\#E-&S"!.VAM0M]5Q:OU(G ++M0H#<"=B:T:Z@6IHC>,MPSU'BH$'6>.O!%>MM[Q1M\*?-:,ZA.LC4S*%X\>2A ++M`A!MM\`L.#S5]OZSD.^1E^WI&^?6F,*]*G."0CI6H8W.9"#Z_6ZN<@;G-2.= ++MT][M[&X3["?7[V$_E354K.RAM%W%]K=@-LG+<"*P\S=2`=&JS5Y(DY7CT!03 ++MHW%SJ900'-CH(?!5OE0H$4K#Z(2OI<]5&X]"W)0TM&W$$F3GQ;,]!=OAC50% ++M0^&+<+E;OMQ$NM:OT+PBPC.UIS`9V##GY2Q!&\VMUPK.(]I:2^O=\&*_+P2` ++MSQ;RDC)U?8.'V.H3CD<%HEJFBY@;9B.?>RSO`Z*LF3IYHBM#W"L')Q8P*'5$ ++MI:[H>M4CA0P,'R?M%_JJIKVCEK0L=U<&@>F8]L'_H<D3$%!X(*[J$=.4I\$) ++MZ4+8@&K[C_'/!,NRZDIQTUBY;`1.VB(P2V@OH-8*WS[>K6W*/B7\WE^E8NL5 ++M+I?\#G/4K>2*9==_\M[[L0]5+C",0H-Q]@"S>,%VY+S&9RV_!NCCNRF8KO6( ++M28T%N->@QV&8E^W3$.1)I=N?7?EJJSC9/2,Q6"RQ1D!EYW_2]['@E-]V66+= ++MX+Y:#/L9;[2A/3DB2BM[%M73D]L=*T8RO&7\@Z7?RP]2SH52\,/YJ[5R5U%+ ++M\C@I[JTT!7[J)502-;,3_4CD1LZ/[*M()M=BD%P8[$]0H=F[=E:3WCZZPVGS ++MD>(O_"VNIFCO<M9++E!B%*,42[@"LF>;2\>S;\4GE8,#'FKL+O'E999,FO+U ++M7<$4N)[FL%?263W@TVD]/=,)<[Z9USX_P:N+(U@S[()YQ\?5,[P*IF0`EX<@ ++M^.GX!Z\?!M76Q]9KJ.5J2VHC579C,X1RIE<60O#5%:<V"RF^XN`/<R7>9',_ ++M*B24>2\83;TIM&K.XR'DB*?&[E[<Q++R!H3&<O9=5OL4C[AO",AGU""X%#!6 ++MIL;XU*VN:&+B4S"V'H;$1!Z<TT(I;"/9OIT8_`B#3NHW+MP3Z\(K1&#J#:A@ ++MO!\X?WXWF4/AF7?*T3I6X<"YGJ.MD;/^Q-ZBZ==NROX#<!BSU]EO'M.6!^@< ++M_S1$0"C*.%PNJV=H_QJVP/61\U;(<B>R*%\:Q[[G[7`KF`F5F"GRR;%3/96U ++M:,#>O*5M0,2^<..K%T*'C#.7>S8QPK;]>GJ20ZB]&P#K+\XL)Z!%).]9:1]) ++MR\1H[/]I:U!ZX)^D+H-_B%48^]$&^>W09_2LD?(7X_,?`I%F(ZYPQVGI(><\ ++M)S;)H(Z3?+J.>U1-^.1=Y_!_[\AU;E=5CTIR`9EED2T]PYY@&97N0+EW$`C5 ++M50K)B)UG(Z5[<"$Y]:/>WF)'F4:'`\G^6@>.C_Q&S$7X(#A#:\HHDPNA3&Q[ ++MGN._G\F.-KJD/R9IWQ#JQ3DBJX.RC+-W#,%&5$-W^>:=^63U;.?UHG"+IEJ< ++MM^F2KMRWL)07J'E:JU:B@6KD-2X@J&32G>R<E;7'CEC6$2H&KWS)L!VW>_PV ++MSJ\"11HX4^R3--6FN`]3E9[S\+$U!X0VOR)N1;HN#Y_Y&M2WYN`X)<(>`&W0 ++M2SN#@M8>+=04++7&-!FD76*<Z[J@!BR_0MD;K<X+I2PU3P>=WO:L99[,FZL> ++MO#5R7EMF=ZWCA#?>]5C)I=_E1H^SDQX72:*)?L)AVKW"Z=S\8$7;;"1R0H51 ++M5I@-MLZ()+]B88&)P^C^S;8D62W$"V.Z-GU"DI\TBOGK&8BW*H4LOMG])),V ++MD\436(;$T\J.LQ[-]\&@2@!_UAZ\'\6,*A"R[6_QUV7%5=0M40X<0!#PYXZ' ++MZ":.-1>U'DD=JHOL]XD5B5K[/^D;$VQ6YD\E(L)O2SX*B?/\!KG%A>^4)"'P ++M9O\TIJ'OF%R%G7)H99X0_6_YDG$`RV4+ZNU**RUAOWUCW'6S(%)KCB&FT*J* ++M`&0U;``BUN4KQ<01(`"X)ED'5'57KXT,%'-!\.D71?[:@&6;[$X$SBATYB;" ++M7RH6L$VOJWCPADUR@>/DE]Y+FY'CP8*DV8XJO<;,.8,$EX:32RB_\T]13VFQ ++M<+#:+Z2/"T_B-````00&``$)AWL`!PL!``(A(0$#`0L!``RA**$H``@*`><D ++M[?<```4!&00`````$1<`:`!W`"T`<@!I`',`8P!V`#8`-````!D$`````!0* ++4`0!P^KPPPBC;`14&`0`@@/V!```` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_lzma2_sparc.7z.uu +@@ -0,0 +1,51 @@ ++begin 664 test_read_format_7zip_lzma2_sparc.7z ++M-WJ\KR<<``1(J^\JS`<```````!R`````````&XZ*<3P$5<'Q%T`/Y%%A&A$ ++M5%3B6Q&;I4I!>'?U2E@?=@^5X!K6EVT<$4NCHF?DMTN)_D0A*']W)L<TJ2I_ ++MC[>'Z%[C!D#%Y!:S#"T[CWFG]LXC']WLL'!9\"+`GHW+D/-^/!QXPGPB*2!. ++M&?09NH<7;YVN5R,.-)TZ,3Z02@1?D6E^K*PC3[:&6'/!,LVQ%I$W&4[9AN4H ++M(CO]U]07P);P2!)3%9:,R>I3?`MRC-]B-0Q"VZZ/O5-9%`@K-K4V1BV(]-<? ++MB\TWCC_L)DU\Z1>*\EV(]UK_[`!>/-93[9'<W).4(0&A2C"Y>TW>4C[PM_CL ++MD/O':;6X<Z1C#8J))5&J/0AN`<$^-$8@33UQJJO:!:I[=+7K%-)A0&=[5@;& ++MF1D",,4.^Z,W82`S5(*IH?>+-;Z,AK??'U1&%LC>HO773Q5J_0Y9--2OI+3= ++MQH<QT%#^$RLJ7@+:2'SZ88>_VD')4E65;)ZC;-27Z?WZ`QKO&#T#'A<1UYZ/ ++MQR<XW&LB4<73%NIV\ZNQ<:INP]CZS(L>6=`OU_Q@1`D`""M0F.^4JB]:>K3E ++M.L"=A%OKG9\4]`](:-9)`_U74PFQ?5]B:'LYYX"!(O`?Z)O;ZYGAX+NX/^TX ++M0K75$*-U`.[W!@/</_$2&VPHUYWWC^E2AWT:C&N&`,[@0`BKT5XKP6&$+49P ++M4-J:PUWC8>&3>#LK>&,$^-7LYGR.NW.]OR5ZUID9$)KF83C3_(T`VC:+$#)> ++M_J)O-N(.,D9*@##LJ#L6)@"0(S<!_?_41T"PEJ>IS23[971FJOCGB:F-@KH8 ++M^NW=UPME7UOPB-B1R-20(%:V"C(Z6^LP$9O9*_5KJD2/(NU"#J(66A;9L[:@ ++M:DQ*AA6U(]38*!(>D&:^#<2X.9/]B0Z[ER1POL6BS5EKD4]@6C465`N[(]*, ++M1]6:T99]16KXHV0E2G^R%J-\H(^K1V;-N5RH!KF8Z2U).4>YC.EJI#>:]WOP ++MU+8[3UBF4]5WKQ5W619%/BB*5WQ*JCJ19!*@4K]%=/7W0`@Z6-E1HN>[U7CE ++M]`%]W)W`!IA-F/W8K]60#\0E4_CUD38Q!:6P[F_!<$U'#-&1$:JM8!VZSK$G ++M&%Q9ANEF4EB^Z7:L6>3E6P4(^<?:K?S[4BMTS1Y;($+YW5,]^"ED"3N`RRIL ++MW[4[\,2]+E^J#SY+9D*0$P[_$)/X<7A67U'J^3;L!4C2Z0Q&=(]R7^X#'NM> ++M`YH,USJ&*2&?3ML,ADZAK_>3'O!:"CB($W22J.O\G$CE..,RWP:DJL#='-?Y ++M*2W,E'ZN]S``7)5/K;EZA>=GJO:77RNU+S"3#]V\A^_.YDJTUN'\D&V.:+'M ++MX;1P_8RY.GKK:U['95&:`LQT2+^G+9DJ.'SBT($]6)6X>4%8E6R>QI9F&#%( ++MB*1]Q80;B^[*-X?J+PGIHY#5CZ1N,Q'MEK5W?+BE2'R6^D2A:W!POR\V79;) ++MM,8D?C2](B[0)SW)<3]RNOH4SEX?06<'J[<&OJDWA_MH@C)87X.(@/:FHB[` ++M,`9=MXE'=<SBGE7'DP22EP:$ANJ#XM$GKCY,%+8IIMG[5O,=^6]OW,VXZ]SB ++M;EK9PBK0/"'=EC;8<1W>%I_EJ2UB:JTC;*.H\3]&GE^X"DQ2TM#53B$QR12B ++MEY?G$IQ57"8+OXW?3YF.%:61.T?Z->H2PWS!2AZ1IJY=:(*.UB?-JHMJ2<W^ ++M)+^N(5WND$^+Y_]>?(%&IW=*:VRA\'=*T'"ZH5?UCU_5-H\VD9?(PNF;GJ;Z ++MIL_*<K^5-T1J1+R+$.]/:\A^GJ&HU^R_'(?Y+T6J?\2M.Z`DS.8@0/*VBGH% ++MS\X4I)QSE73.S1/#7(U%289EF>^CQVY;0)8N:T3="V$US\M"[D)[YJ/YD;OG ++M@D+M+#Q3%@?=[)`;<YZ[[-W!O.&WABB4U717<+IC[8W(KL/E`$(G2"Z[8&_] ++M']:J@B$<"OW[1.*90!0C<MTS7)PR?AW#J;+K2=\T!BC[]<EF_5&B<!UILZTI ++M$%_N_X3:Y<^0GM0,TV\VTD?:3+\M>XS$B,2A*D?),85#?5^10N\2#"DKDL,, ++MA6NA6U>I0\:CP/E9,(`8^.8@7I94A`P5?74_%[NN#<4@18-TB>M\32JW*?&O ++M&=[=TN=VPE\@Y$8\&Z>Q>PAZ_GSR?Q/=.LDV\='/S7*`N*V0>BB"5_9JF?=, ++MB*\+@&D8[#W[^X*`ATPU[WRK">MUA3+YLZQ\?"F7!X.V0T9W4[?/_1+<+UZ? ++M:=0+KHF`W(I%SP1C%MDQJ^M*Y^5@TE1[83"SIQ_<'R'=AR4E7C5"EJ0YCT8D ++M4FI1(Y(H;#Y[A*;Y!Z7D=&&F^Z4ERQ>CQD$C;.GCY>JDTZPQ1?"4W0^D#T9` ++M)+,/HN?5_Y'H#_@M<,VE(0@(X\G3W(#_S4C>D-7S/E`Z3DS#+M**S]Y<CQK* ++M7NNNR7;GSLI6^0T"^KI3(+"LQFVF+,$GM^C)/YK.*$VH&FYHR$0U(QL^2"`7 ++M3XW<C-N6L_6EL+OL.K+VWQGF0$,V[1ARI4D1BST>Q%*N@9RMHM#M?<:\,=^D ++MA*_IR`W7;2OJK".[-`T'*-#209OXHBX0B%$P3#$5D+VE1/4$'J.D^9I[V+VH ++M&WN#Y"AO'3Q`6"T60J[ZCT,*T1(=4I;!&6+F4G!]D75J$F5>:'%?M'DE8&I@ ++MQ_L``00&``$)A\P`!PL!``(A(0$1!`,#"`4!``S06!'06!$`"`H!339;:P`` ++M!0$9#P```````````````````!$7`&@`=P`M`',`<`!A`'(`8P`V`#0````9 ++;!``````4"@$`@,:@07(HVP$5!@$`((#]@0`` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_sfx_elf.elf.uu +@@ -0,0 +1,9442 @@ ++begin 775 test_read_format_7zip_sfx_elf.elf ++M?T5,1@(!`0````````````,`/@`!````D`0!``````!``````````&!R!@`` ++M`````````$``.``.`$``(0`@``8````$````0`````````!``````````$`` ++M````````$`,````````0`P````````@``````````P````0```"4`P`````` ++M`)0#````````E`,````````<`````````!P``````````0`````````!```` ++M!````````````````````````````````````"B:````````*)H````````` ++M$`````````$````%`````*``````````H`````````"@````````/:@$```` ++M```]J`0````````0`````````0````0`````4`4```````!0!0```````%`% ++M``````"`U@```````(#6`````````!`````````!````!@````@V!@`````` ++M"#8&```````(-@8``````(@Z````````>)$`````````$`````````(````& ++M````N&H&``````"X:@8``````+AJ!@``````$`(````````0`@````````@` ++M````````!`````0```!0`P```````%`#````````4`,````````@```````` ++M`"``````````"``````````$````!````'`#````````<`,```````!P`P`` ++M`````"0`````````)``````````$``````````0````$````A"4&``````"$ ++M)08``````(0E!@``````_`````````#\``````````0`````````4^5T9`0` ++M``!0`P```````%`#````````4`,````````@`````````"``````````"``` ++M``````!0Y71D!````#![!0``````,'L%```````P>P4``````$P;```````` ++M3!L````````$`````````%'E=&0&```````````````````````````````` ++M`````````````````````````!``````````4N5T9`0````(-@8```````@V ++M!@``````"#8&``````#X.0```````/@Y`````````0`````````$````$``` ++M``4```!'3E4``H``P`0````!``````````0````4`````P```$=.50"0T\R# ++MH+X,<O84HIE,`])H6ZPRS"]L:6(V-"]L9"UL:6YU>"UX.#8M-C0N<V\N,@`" ++M````:P````$````&``````"!``````!K`````````-%ESFT````````````` ++M````````````````````````P0,``!(`````````````````````````LP,` ++M`!$`````````````````````````A0$``!(````````````````````````` ++MM@$``!(`````````````````````````]P(``!$````````````````````` ++M````"P,``!(`````````````````````````G@$``!(````````````````` ++M````````W@0``!(`````````````````````````D````!(````````````` ++M````````````;0(``!(`````````````````````````(@0``!(````````` ++M````````````````3@(``!(`````````````````````````KP$``!(````` ++M````````````````````X`$``!(`````````````````````````00(``!(` ++M````````````````````````]P$``!(`````````````````````````90(` ++M`!(`````````````````````````1P0``!(````````````````````````` ++M1P```!(`````````````````````````T@$``!(````````````````````` ++M````V0$``!(`````````````````````````C@,``!$````````````````` ++M````````5`(``!(`````````````````````````7@(``!(````````````` ++M````````````-`(``!(`````````````````````````'@(``!(````````` ++M````````````````W0(``!(`````````````````````````TP,``!$````` ++M````````````````````S`(``!(``````````````````````````0```!(` ++M````````````````````````:0```!(`````````````````````````M``` ++M`!(`````````````````````````!0,``!$````````````````````````` ++M<@$``!(`````````````````````````YP$``!(````````````````````` ++M````C@$``!(`````````````````````````U@(``!(````````````````` ++M````````Y`(``!(`````````````````````````[0```!(````````````` ++M````````````NP(``!(`````````````````````````+@(``!(````````` ++M````````````````WP(``!(`````````````````````````?`0``!(````` ++M````````````````````N0,``!(`````````````````````````C`(``!(` ++M````````````````````````(@```!(`````````````````````````DP(` ++M`!(`````````````````````````?P$``!(````````````````````````` ++M#`(``!(`````````````````````````P@```!(````````````````````` ++M````<P(``!(`````````````````````````Q0(``!(````````````````` ++M````````0@```!(`````````````````````````G@,``!(````````````` ++M````````````#0$``!(`````````````````````````[`(``!(````````` ++M````````````````'P$``!(`````````````````````````%0(``!(````` ++M````````````````````>0$``!(`````````````````````````M`(``!(` ++M````````````````````````G0(``!(`````````````````````````F`0` ++M`!$`````````````````````````=00``!(````````````````````````` ++M^0,``!$`````````````````````````)@(``!(````````````````````` ++M````,0$``!(`````````````````````````.P```!(````````````````` ++M````````_@(``!$`````````````````````````EP$``!(````````````` ++M````````````IP$``!(`````````````````````````S0$``!(````````` ++M````````````````@@0``!(`````````````````````````5@```!(````` ++M````````````````````^@```!(`````````````````````````?@```!(` ++M````````````````````````AP(``!(`````````````````````````>@(` ++M`!(`````````````````````````E@,``!$````````````````````````` ++MIP(``!(`````````````````````````,P```!(````````````````````` ++M````J00``!(`````````````````````````8`0``!(````````````````` ++M````````7`$``!(`````````````````````````N00``!$````````````` ++M`````````````P(``!(`````````````````````````IP```!(````````` ++M````````````````QP,``!(`````````````````````````\`$``!(````` ++M````````````````````.@(``!(`````````````````````````9`,``!$` ++M````````````````````````+@,``"``````````````````````````\P0` ++M`!(`````````````````````````$@,``!(````````````````````````` ++M\0(``!(`````````````````````````1P(``!(````````````````````` ++M````[P$``!(`````````````````````````30$``!(````````````````` ++M````````@`(``!(`````````````````````````'P,``"`````````````` ++M````````````-`0``"(`````````````````````````2@,``"`````````` ++M````````````````V````!(`````````````````````````;`(``!(````` ++M````````````````````<0$``!(`````````````````````````D`0``!(` ++M````````````````````````QP$``!(`````````````````````````$P`` ++M`"(``````````````````````````%]?;&EB8U]S=&%R=%]M86EN`%]?8WAA ++M7V9I;F%L:7IE`%]?<W1A8VM?8VAK7V9A:6P`;65M;6]V90!M86QL;V,`9G)E ++M90!P;W-I>%]M96UA;&EG;@!P=&AR96%D7VUU=&5X7VQO8VL`<'1H<F5A9%]M ++M=71E>%]U;FQO8VL`<'1H<F5A9%]C;VYD7W=A:70`<'1H<F5A9%]C;VYD7V)R ++M;V%D8V%S=`!?7VUE;6-P>5]C:&L`7U]W;65M8W!Y7V-H:P!P=&AR96%D7VUU ++M=&5X7V1E<W1R;WD`<'1H<F5A9%]C;VYD7V1E<W1R;WD`<'1H<F5A9%]J;VEN ++M`'!T:')E861?;75T97A?:6YI=`!P=&AR96%D7V-O;F1?:6YI=`!P=&AR96%D ++M7V%T=')?:6YI=`!P=&AR96%D7V%T=')?<V5T9&5T86-H<W1A=&4`<'1H<F5A ++M9%]C<F5A=&4`<'1H<F5A9%]A='1R7V1E<W1R;WD`=VUE;6-P>0!F<'5T8P!F ++M<'5T<P!M8G-T;W=C<P!W8W-T;VUB<P!S=')C;7``<W1R97)R;W(`;'-T870V ++M-`!S=')L96X`7U]E<G)N;U]L;V-A=&EO;@!C;&]S90!R96%D`&=E=&-W9`!M ++M96US970`;65M8VUP`&QS965K-C0`9G-T870V-`!F=')U;F-A=&4V-`!G971G ++M<F=I9`!G971P=W5I9`!T;W=U<'!E<@!S>7-C;VYF`'-Y<VEN9F\`8VAM;V0` ++M8VAO=VX`;W!E;C8T`&UK9&ER`')E;6]V90!R;61I<@!U=&EM96YS870`<F5N ++M86UE`'5N;&EN:P!F=W)I=&4`9F9L=7-H`&9G971C`&9E<G)O<@!F96]F`&9I ++M;&5N;P!T8V=E=&%T='(`=&-S971A='1R`&=E='1I;65O9F1A>0!W8W-C;7`` ++M<V5T;&]C86QE`'-I9VYA;`!L;V-A;'1I;64`9VUT:6UE`&UK=&EM90!?7V-X ++M85]A=&5X:70`=6UA<VL`<W1D;W5T`'-T9&5R<@!S=&1I;@!S=')S='(`=&EM ++M97-P96-?9V5T`%]?9VUO;E]S=&%R=%]?`%])5$U?9&5R96=I<W1E<E1-0VQO ++M;F5486)L90!?251-7W)E9VES=&5R5$U#;&]N951A8FQE`%]:5%9.,3!?7V-X ++M>&%B:78Q,C%?7W9M:5]C;&%S<U]T>7!E7VEN9F]%`%]:5$E02V,`7UI425!+ ++M=P!?7V-X85]C86QL7W1E<FUI;F%T90!?6E1):0!?6F1L4'9M`%]:;F%M`%]? ++M8WAA7W1H<F]W`%]:5%9.,3!?7V-X>&%B:78Q,3=?7V-L87-S7W1Y<&5?:6YF ++M;T4`7UI45DXQ,%]?8WAX86)I=C$R,%]?<VE?8VQA<W-?='EP95]I;F9O10!? ++M7V-X85]B96=I;E]C871C:`!?7V-X85]P=7)E7W9I<G1U86P`7U]C>&%?86QL ++M;V-A=&5?97AC97!T:6]N`%]?9WAX7W!E<G-O;F%L:71Y7W8P`%]:9&%0=@!? ++M6FYW;0!?7V-X85]R971H<F]W`%]:9&%0=FT`7UI425-T.6)A9%]A;&QO8P!? ++M7V-X85]E;F1?8V%T8V@`7UI45DXQ,%]?8WAX86)I=C$Q-E]?96YU;5]T>7!E ++M7VEN9F]%`%]?9V-C7W!E<G-O;F%L:71Y7W8P`%]5;G=I;F1?4F5S=6UE`&QI ++M8G-T9&,K*RYS;RXV`&QI8F=C8U]S+G-O+C$`;&EB8RYS;RXV`$=#0U\S+C`` ++M1T-#7S,N,RXQ`$=,24)#7S(N,38`1TQ)0D-?,BXS+C0`1TQ)0D-?,BXS,P!' ++M3$E"0U\R+C$T`$=,24)#7S(N-`!'3$E"0U\R+C,T`$=,24)#7S(N-@!'3$E" ++M0U\R+C,N,@!'3$E"0U\R+C(N-0!#6%A!0DE?,2XS+C$U`$-86$%"25\Q+C,N ++M.0!#6%A!0DE?,2XS`$=,24)#6%A?,RXT``````(``P`$``0`!``$``0`!0`& ++M``0``P`$``0`!``$``0`!``#``0`!``$``,`!P`$``0`!``$``,`!``(``0` ++M"0`$``H`!``$``0`!``(``0`!``$``(`"P`$``D`!``$``0`!``$``0`!``, ++M``8`!``$``0`!``$``0``@`"``,`!``$``0`!``$``T`!``#``0`!``&``0` ++M!``#``0`!``#``,`!``#``0`#@`#``T`!``#``$`#P`0``0`!``-``@`!``! ++M``,``0`&``0`!``+``0`!``````````!``(`$04``!`````P````4"9Y"P`` ++M#P`I!0``$````&%?)@D```4`,04````````!``D`'P4``!````"@````EI&6 ++M!@``$``[!0``$````'09:0D```X`1@4``!````"SD98&```-`%(%```0```` ++ME)&6!@``"@!=!0``$````!1I:0T```D`:`4``!````"TD98&```(`'(%```0 ++M````%FEI#0``!P!]!0``$````'(9:0D```8`AP4``!````!U&FD)```$`),% ++M`````````0`$``(%```0`````````/47_0H```P`GP4``!````!YT:\+```+ ++M`*T%```0````TZ]K!0```P"Z!0``$````'0ID@@```(`Q04````````(-@8` ++M``````@`````````<`4!```````0-@8```````@`````````H/,````````8 ++M-@8```````@`````````,`4!```````H-@8```````@`````````B%<&```` ++M```P-@8```````@`````````(#P!```````X-@8```````@`````````4#X! ++M``````!`-@8```````@`````````('8!``````!(-@8```````@````````` ++M$#("``````!0-@8```````@`````````0.P!``````!8-@8```````@````` ++M````H.P!``````!@-@8```````@`````````X.P!``````!H-@8```````@` ++M`````````.P!``````!P-@8```````@`````````(.P!``````!X-@8````` ++M``@``````````.T!``````"`-@8```````@`````````(.T!``````"0-@8` ++M``````@`````````B%<&``````"8-@8```````@`````````0#X!``````"@ ++M-@8```````@`````````L#X!``````"H-@8```````@`````````T"\"```` ++M``"P-@8```````@`````````<.P!``````#`-@8```````@`````````B%<& ++M``````#(-@8```````@`````````,#X!``````#0-@8```````@````````` ++MH#X!``````#8-@8```````@`````````D"T"``````#@-@8```````@````` ++M````P.P!``````#P-@8```````@`````````B%<&``````#X-@8```````@` ++M````````(#X!````````-P8```````@`````````D#X!```````(-P8````` ++M``@`````````4"L"```````0-P8```````@`````````\.P!```````@-P8` ++M``````@`````````B%<&```````H-P8```````@`````````$#X!```````P ++M-P8```````@`````````@#X!```````X-P8```````@`````````$"D"```` ++M``!`-P8```````@`````````$.P!``````!(-P8```````@`````````,.P! ++M``````!8-P8```````@`````````B%<&``````!@-P8```````@````````` ++M`#X!``````!H-P8```````@`````````<#X!``````!P-P8```````@````` ++M````D'H!``````!X-P8```````@`````````$.T!``````"(-P8```````@` ++M````````B%<&``````"0-P8```````@`````````\#T!``````"8-P8````` ++M``@`````````8#X!``````"@-P8```````@`````````4'@!``````"H-P8` ++M``````@`````````,.T!``````"X-P8```````@`````````,%@&``````#` ++M-P8```````@`````````P#@!``````#(-P8```````@`````````,#H!```` ++M``#0-P8```````@`````````\%0!``````#8-P8```````@`````````4#H! ++M``````#@-P8```````@`````````D#H!``````#H-P8```````@````````` ++MX#L!``````#X-P8```````@`````````,%@&````````.`8```````@````` ++M````<#D!```````(.`8```````@`````````0#H!```````0.`8```````@` ++M````````,%4!```````8.`8```````@``````````#P!```````H.`8````` ++M``@`````````T%@&```````P.`8```````@`````````D#0!```````X.`8` ++M``````@`````````4#8!``````!`.`8```````@`````````D%$!``````!( ++M.`8```````@`````````,.L!``````!0.`8```````@`````````P#8!```` ++M``!8.`8```````@`````````8#<!``````!@.`8```````@`````````P#<! ++M``````!H.`8```````@`````````H#8!``````!P.`8```````@````````` ++MH#@!``````"`.`8```````@`````````T%@&``````"(.`8```````@````` ++M````0#8!``````"0.`8```````@`````````D#8!``````"8.`8```````@` ++M````````0%0!``````"@.`8```````@`````````$#<!``````"H.`8````` ++M``@`````````D#<!``````"X.`8```````@`````````T%@&``````#`.`8` ++M``````@`````````,#8!``````#(.`8```````@`````````@#8!``````#0 ++M.`8```````@`````````D%,!``````#8.`8```````@`````````,#@!```` ++M``#H.`8```````@`````````T%@&``````#P.`8```````@`````````(#8! ++M``````#X.`8```````@`````````<#8!````````.08```````@````````` ++MX%(!```````(.08```````@`````````L#8!```````8.08```````@````` ++M````T%@&```````@.08```````@`````````$#8!```````H.08```````@` ++M````````8#8!```````P.08```````@`````````,%(!```````X.08````` ++M``@`````````L#@!``````!(.08```````@`````````8%D&``````!0.08` ++M``````@`````````$#(!``````!8.08```````@`````````D#,!``````!@ ++M.08```````@`````````$%$!``````!H.08```````@`````````\#,!```` ++M``!P.08```````@``````````#0!``````!X.08```````@`````````,#0! ++M``````"(.08```````@`````````8%D&``````"0.08```````@````````` ++MT#(!``````"8.08```````@`````````H#,!``````"@.08```````@````` ++M````4%$!``````"H.08```````@`````````8#0!``````"X.08```````@` ++M````````J%D&``````#`.08```````@`````````<#$!``````#(.08````` ++M``@``````````#(!``````#0.08```````@`````````T%`!``````#8.08` ++M``````@`````````L#,!``````#@.08```````@`````````P#,!``````#P ++M.08```````@`````````^%D&``````#X.08```````@`````````D#`!```` ++M````.@8```````@`````````(#$!```````(.@8```````@`````````D%`! ++M```````0.@8```````@`````````,#$!```````8.@8```````@````````` ++M0#$!```````H.@8```````@`````````N%H&```````P.@8```````@````` ++M````<"H!```````X.@8```````@`````````<"\!``````!`.@8```````@` ++M````````T$X!``````!(.@8```````@`````````(%H!``````!0.@8````` ++M``@`````````\"\!``````!8.@8```````@`````````$#`!``````!@.@8` ++M``````@`````````L"\!``````!H.@8```````@`````````T"\!``````!X ++M.@8```````@`````````N%H&``````"`.@8```````@`````````,"X!```` ++M``"(.@8```````@`````````H"\!``````"0.@8```````@`````````(%`! ++M``````"8.@8```````@``````````#`!``````"H.@8```````@````````` ++MN%H&``````"P.@8```````@`````````\"P!``````"X.@8```````@````` ++M````D"\!``````#`.@8```````@`````````L$\!``````#(.@8```````@` ++M````````4#`!``````#8.@8```````@`````````N%H&``````#@.@8````` ++M``@`````````L"L!``````#H.@8```````@`````````@"\!``````#P.@8` ++M``````@`````````0$\!``````#X.@8```````@`````````P"\!```````` ++M.P8```````@`````````X"\!```````0.P8```````@`````````2%L&```` ++M```8.P8```````@`````````T"D!```````@.P8```````@`````````8"H! ++M```````H.P8```````@`````````,$X!```````P.P8```````@````````` ++M@$P!``````!`.P8```````@`````````N%L&``````!(.P8```````@````` ++M````0"D!``````!0.P8```````@`````````P"D!``````!8.P8```````@` ++M````````D$T!``````!@.P8```````@``````````$L!``````!H.P8````` ++M``@`````````@`4!``````!P.P8```````@`````````,#@&``````!X.P8` ++M``````@`````````P#@&``````"`.P8```````@`````````,#H&``````"( ++M.P8```````@`````````L#H&``````"0.P8```````@`````````4#D&```` ++M``"8.P8```````@`````````P#<&``````"@.P8```````@`````````,#8& ++M``````"H.P8```````@`````````R#8&``````"P.P8```````@````````` ++M*#<&``````#(.P8```````@`````````\%L&``````#0.P8```````@````` ++M````,!$"``````#8.P8```````@``````````!("``````#@.P8```````@` ++M````````,%D"``````#H.P8```````@`````````X),"``````#P.P8````` ++M``@`````````\)0"````````/`8```````@`````````0%P&```````(/`8` ++M``````@`````````0`\"```````0/`8```````@`````````P`\"```````8 ++M/`8```````@`````````8"@"```````@/`8```````@`````````T`\"```` ++M```P/`8```````@`````````>%P&```````X/`8```````@`````````(`X" ++M``````!`/`8```````@`````````H`X"``````!(/`8```````@````````` ++M`"@"``````!0/`8```````@`````````L`X"``````!@/`8```````@````` ++M````R%P&``````!H/`8```````@`````````0`,"``````!P/`8```````@` ++M````````P`,"``````!X/`8```````@`````````X&L"``````"`/`8````` ++M``@`````````4',"``````"(/`8```````@`````````P&X"``````"0/`8` ++M``````@`````````L'0"``````"@/`8```````@`````````>%T&``````"H ++M/`8```````@`````````D``"``````"P/`8```````@`````````D`("```` ++M``"X/`8```````@`````````D&<"``````#`/`8```````@`````````4&P" ++M``````#(/`8```````@`````````@&T"``````#0/`8```````@````````` ++M$&X"``````#8/`8```````@`````````D&\"``````#@/`8```````@````` ++M````4'$"``````#H/`8```````@`````````$(X"``````#P/`8```````@` ++M````````,&\"````````/08```````@`````````>%T&```````(/08````` ++M``@`````````@`("```````0/08```````@`````````T`("```````8/08` ++M``````@``````````&L"```````@/08```````@`````````L&X"```````P ++M/08```````@`````````>%T&```````X/08```````@`````````<`("```` ++M``!`/08```````@`````````P`("``````!(/08```````@`````````(&H" ++M``````!0/08```````@`````````0'$"``````!@/08```````@````````` ++M>%T&``````!H/08```````@`````````8`("``````!P/08```````@````` ++M````L`("``````!X/08```````@`````````0&D"``````"`/08```````@` ++M````````X'("``````"0/08```````@`````````>%T&``````"8/08````` ++M``@`````````4`("``````"@/08```````@`````````H`("``````"H/08` ++M``````@`````````8&@"``````"P/08```````@`````````P)$"``````"X ++M/08```````@`````````\'("``````#(/08```````@`````````8%X&```` ++M``#0/08```````@`````````0`0"``````#8/08```````@`````````@/T! ++M``````#@/08```````@`````````L!,"``````#H/08```````@````````` ++MP(D"``````#P/08```````@`````````T`L"``````#X/08```````@````` ++M````8`L"````````/@8```````@`````````8`P"```````(/@8```````@` ++M````````\`P"```````0/@8```````@`````````,'T"```````8/@8````` ++M``@`````````$`D"```````@/@8```````@`````````H`D"```````H/@8` ++M``````@`````````P$X"```````P/@8```````@`````````\"0"```````X ++M/@8```````@`````````,`@"``````!`/@8```````@`````````4`@"```` ++M``!(/@8```````@`````````8`T"``````!0/@8```````@`````````D`T" ++M``````!8/@8```````@`````````P`T"``````!@/@8```````@````````` ++M\`T"``````!P/@8```````@`````````8%X&``````!X/@8```````@````` ++M````(`@"``````"`/@8```````@`````````,/X!``````"(/@8```````@` ++M`````````","``````"0/@8```````@`````````$`P"``````"@/@8````` ++M``@`````````8%X&``````"H/@8```````@`````````$`@"``````"P/@8` ++M``````@`````````(/X!``````"X/@8```````@`````````D"$"``````#` ++M/@8```````@`````````D`L"``````#0/@8```````@`````````8%X&```` ++M``#8/@8```````@```````````@"``````#@/@8```````@`````````$/X! ++M``````#H/@8```````@`````````("`"``````#P/@8```````@````````` ++ML`P"``````#X/@8```````@`````````,`T"```````(/P8```````@````` ++M````8%X&```````0/P8```````@`````````\`<"```````8/P8```````@` ++M`````````/X!```````@/P8```````@`````````P!X"```````H/P8````` ++M``@`````````P'\"```````X/P8```````@`````````8%X&``````!`/P8` ++M``````@`````````X`<"``````!(/P8```````@`````````\/T!``````!0 ++M/P8```````@`````````4!T"``````!8/P8```````@`````````8`D"```` ++M``!@/P8```````@`````````X`D"``````!P/P8```````@`````````8%X& ++M``````!X/P8```````@`````````T`<"``````"`/P8```````@````````` ++MX/T!``````"(/P8```````@`````````\!L"``````"0/P8```````@````` ++M````P$\"``````"@/P8```````@`````````8%X&``````"H/P8```````@` ++M````````P`<"``````"P/P8```````@`````````T/T!``````"X/P8````` ++M``@`````````D!H"``````#`/P8```````@`````````\"<"``````#0/P8` ++M``````@`````````8%X&``````#8/P8```````@`````````L`<"``````#@ ++M/P8```````@`````````P/T!``````#H/P8```````@`````````,!D"```` ++M``#P/P8```````@`````````0`@"``````#X/P8```````@`````````8`@" ++M```````(0`8```````@`````````8%X&```````00`8```````@````````` ++MH`<"```````80`8```````@`````````L/T!```````@0`8```````@````` ++M````T!<"```````H0`8```````@`````````@`T"```````X0`8```````@` ++M````````8%X&``````!`0`8```````@`````````D`<"``````!(0`8````` ++M``@`````````H/T!``````!00`8```````@`````````<!8"``````!80`8` ++M``````@`````````L`T"``````!@0`8```````@`````````X`T"``````!P ++M0`8```````@`````````8%X&``````!X0`8```````@`````````@`<"```` ++M``"`0`8```````@`````````D/T!``````"(0`8```````@`````````$!4" ++M``````"00`8```````@`````````$`X"``````"@0`8```````@````````` ++M6%\&``````"H0`8```````@`````````L/@!``````"P0`8```````@````` ++M````,/H!``````"X0`8```````@`````````4/H!``````#`0`8```````@` ++M````````(/P!``````#(0`8```````@`````````8/P!``````#00`8````` ++M``@`````````P/P!``````#80`8```````@`````````<$X"``````#@0`8` ++M``````@`````````T$L"``````#H0`8```````@`````````X$L"``````#X ++M0`8```````@`````````6%\&````````008```````@`````````</D!```` ++M```(008```````@`````````0/H!```````0008```````@`````````@/H! ++M```````8008```````@`````````(/T!```````@008```````@````````` ++ML$X"```````P008```````@`````````B%\&```````X008```````@````` ++M````L/@!``````!`008```````@`````````,/H!``````!(008```````@` ++M````````4/H!``````!0008```````@`````````(/P!``````!8008````` ++M``@`````````8/P!``````!@008```````@`````````P/P!``````!H008` ++M``````@`````````<$X"``````!P008```````@`````````D$L"``````!X ++M008```````@`````````H$L"``````"(008```````@`````````B%\&```` ++M``"0008```````@`````````</D!``````"8008```````@`````````0/H! ++M``````"@008```````@`````````@/H!``````"H008```````@````````` ++M(/T!``````"P008```````@`````````L$X"``````#`008```````@````` ++M````4&`&``````#(008```````@`````````4/4!``````#0008```````@` ++M````````</@!``````#8008```````@`````````$%4"``````#@008````` ++M``@`````````\%T"``````#H008```````@``````````/P!``````#P008` ++M``````@``````````%T"``````#X008```````@`````````D%("```````` ++M0@8```````@`````````T%,"```````(0@8```````@`````````L/H!```` ++M```80@8```````@`````````4&`&```````@0@8```````@`````````</<! ++M```````H0@8```````@`````````H/@!```````P0@8```````@````````` ++MT%<"```````X0@8```````@`````````X%T"``````!(0@8```````@````` ++M````4&`&``````!00@8```````@`````````4/8!``````!80@8```````@` ++M````````@/@!``````!@0@8```````@`````````<%8"``````!H0@8````` ++M``@`````````\/L!``````!X0@8```````@`````````B&`&``````"`0@8` ++M``````@`````````P.\!``````"(0@8```````@`````````L/0!``````"0 ++M0@8```````@`````````$$H"``````"80@8```````@`````````T(0"```` ++M``"@0@8```````@`````````\$P"``````"H0@8```````@`````````\/0! ++M``````"P0@8```````@`````````$/4!``````#`0@8```````@````````` ++MB&`&``````#(0@8```````@`````````</,!``````#00@8```````@````` ++M````X/0!``````#80@8```````@`````````,$L"``````#@0@8```````@` ++M````````8$X"``````#P0@8```````@`````````B&`&``````#X0@8````` ++M``@`````````,/(!````````0P8```````@`````````T/0!```````(0P8` ++M``````@`````````T$H"```````00P8```````@``````````/4!```````@ ++M0P8```````@`````````B&`&```````H0P8```````@`````````\/`!```` ++M```P0P8```````@`````````P/0!```````X0P8```````@`````````<$H" ++M``````!`0P8```````@`````````,/4!``````!00P8```````@````````` ++M\&`&``````!80P8```````@`````````0.T!``````!@0P8```````@````` ++M````\.X!``````!H0P8```````@`````````X$<"``````!P0P8```````@` ++M````````T(`"``````!X0P8```````@`````````$$P"``````"`0P8````` ++M``@`````````@.\!``````"(0P8```````@`````````H.\!``````"00P8` ++M``````@`````````0.\!``````"80P8```````@`````````8.\!``````"H ++M0P8```````@`````````\&`&``````"P0P8```````@`````````X.X!```` ++M``"X0P8```````@`````````,.\!``````#`0P8```````@`````````H$D" ++M``````#(0P8```````@`````````X$P"``````#80P8```````@````````` ++M\&`&``````#@0P8```````@`````````T.X!``````#H0P8```````@````` ++M````(.\!``````#P0P8```````@`````````,$D"``````#X0P8```````@` ++M````````D.\!```````(1`8```````@`````````\&`&```````01`8````` ++M``@`````````P.X!```````81`8```````@`````````$.\!```````@1`8` ++M``````@`````````P$@"```````H1`8```````@`````````L.\!```````X ++M1`8```````@`````````\&`&``````!`1`8```````@`````````L.X!```` ++M``!(1`8```````@``````````.\!``````!01`8```````@`````````4$@" ++M``````!81`8```````@`````````4.\!``````!@1`8```````@````````` ++M<.\!``````!P1`8```````@``````````#\!``````!X1`8```````@````` ++M````\#X!``````"`1`8```````@`````````P#X!``````"(1`8```````@` ++M````````X#X!``````"01`8```````@`````````T#T&``````"81`8````` ++M``@`````````J#X&``````"@1`8```````@`````````$#\&``````"H1`8` ++M``````@`````````>#\&``````"P1`8```````@`````````V#\&``````"X ++M1`8```````@`````````0$`&``````#`1`8```````@`````````,#8&```` ++M``#(1`8```````@`````````R#8&``````#01`8```````@`````````*#<& ++M``````#81`8```````@`````````@`4!``````#@1`8```````@````````` ++M(`P!``````#H1`8```````@`````````,'$!``````#P1`8```````@````` ++M````6$,&``````#X1`8```````@`````````X$,&````````108```````@` ++M````````@$(&```````(108```````@`````````^$(&```````0108````` ++M``@`````````>&$&```````8108```````@`````````R$$&```````@108` ++M``````@`````````.$$&```````H108```````@`````````J$`&```````P ++M108```````@`````````J#P&```````X108```````@`````````.#T&```` ++M``!(108```````@`````````:&(&``````!0108```````@`````````$,L# ++M``````!8108```````@`````````,,L#``````!@108```````@````````` ++M,!`$``````!H108```````@`````````P/0#``````!P108```````@````` ++M`````/4#``````!X108```````@`````````@/H#``````"`108```````@` ++M````````P/H#``````"0108```````@`````````@&(&``````"8108````` ++M``@`````````<,<#``````"@108```````@`````````L,H#``````"H108` ++M``````@`````````,/X#``````"P108```````@`````````,`\$``````"X ++M108```````@`````````L`\$``````#`108```````@`````````X.@#```` ++M``#(108```````@`````````D`D$``````#0108```````@`````````L.T# ++M``````#8108```````@`````````$.0#``````#@108```````@````````` ++MP.X#``````#H108```````@`````````8#0$``````#P108```````@````` ++M````$/`#``````#X108```````@`````````X/`#````````1@8```````@` ++M````````\,L#```````(1@8```````@``````````.@#```````01@8````` ++M``@``````````/D#```````81@8```````@`````````$/L#```````@1@8` ++M``````@`````````T/L#```````P1@8```````@`````````@&(&```````X ++M1@8```````@``````````/`#``````!`1@8```````@`````````L$,$```` ++M``!(1@8```````@`````````T/`#``````!01@8```````@`````````L/0# ++M``````!81@8```````@`````````$,P#``````!H1@8```````@````````` ++M@&(&``````!P1@8```````@`````````D,D#``````!X1@8```````@````` ++M````\,H#``````"`1@8```````@`````````(``$``````"(1@8```````@` ++M````````<.@#``````"81@8```````@`````````@&(&``````"@1@8````` ++M``@`````````<,@#``````"H1@8```````@`````````T,H#``````"P1@8` ++M``````@`````````(/\#``````"X1@8```````@`````````8/D#``````#( ++M1@8```````@`````````@&(&``````#01@8```````@`````````$,L#```` ++M``#81@8```````@`````````,,L#``````#@1@8```````@`````````,!`$ ++M``````#H1@8```````@`````````P/0#``````#P1@8```````@````````` ++M`/4#``````#X1@8```````@`````````H/P#````````1P8```````@````` ++M````8/T#```````01P8```````@`````````^&(&```````81P8```````@` ++M````````8"\#```````@1P8```````@`````````4#,#```````H1P8````` ++M``@`````````<(`#```````P1P8```````@`````````H$H#```````X1P8` ++M``````@`````````D#,#``````!`1P8```````@`````````T)T#``````!( ++M1P8```````@`````````P#8#``````!01P8```````@`````````H(<#```` ++M``!81P8```````@`````````0,(#``````!@1P8```````@`````````(#<# ++M``````!H1P8```````@`````````<#0#``````!X1P8```````@````````` ++M^&(&``````"`1P8```````@`````````4#(#``````"(1P8```````@````` ++M````@#,#``````"01P8```````@`````````P'0#``````"81P8```````@` ++M````````$,8#``````"H1P8```````@`````````^&(&``````"P1P8````` ++M``@`````````4#$#``````"X1P8```````@`````````<#,#``````#`1P8` ++M``````@``````````'`#``````#(1P8```````@`````````$#@#``````#8 ++M1P8```````@`````````^&(&``````#@1P8```````@`````````4#`#```` ++M``#H1P8```````@`````````8#,#``````#P1P8```````@`````````,&L# ++M``````#X1P8```````@`````````D#0#```````(2`8```````@````````` ++M8&,&```````02`8```````@`````````D)@"```````82`8```````@````` ++M````()D"```````@2`8```````@`````````D!T#```````H2`8```````@` ++M````````$+<"```````X2`8```````@`````````P&,&``````!`2`8````` ++M``@`````````\)8"``````!(2`8```````@`````````<)@"``````!02`8` ++M``````@`````````\+P"``````!82`8```````@``````````-$"``````!@ ++M2`8```````@`````````P+`"``````!H2`8```````@`````````H)D"```` ++M``!P2`8```````@`````````4,$"``````!X2`8```````@``````````!X# ++M``````"`2`8```````@`````````\*$"``````"(2`8```````@````````` ++ML)D"``````"02`8```````@`````````P)D"``````"82`8```````@````` ++M````L)D"``````"@2`8```````@`````````P)D"``````"H2`8```````@` ++M````````()H"``````"P2`8```````@`````````8)H"``````"X2`8````` ++M``@`````````L)D"``````#`2`8```````@`````````X)D"``````#02`8` ++M``````@`````````P&,&``````#82`8```````@`````````L)<"``````#@ ++M2`8```````@`````````@)@"``````#H2`8```````@`````````@+T"```` ++M``#P2`8```````@`````````0)H"``````#X2`8```````@`````````T)H" ++M````````208```````@`````````T)D"```````(208```````@````````` ++M`)H"```````8208```````@`````````&&0&```````@208```````@````` ++M````8)8"```````H208```````@`````````X)8"```````P208```````@` ++M````````\)P"```````X208```````@`````````T*<"``````!(208````` ++M``@`````````4&0&``````!0208```````@`````````\)4"``````!8208` ++M``````@`````````4)8"``````!@208```````@`````````8*<"``````!P ++M208```````@`````````B&0&``````!X208```````@`````````0)4"```` ++M``"`208```````@`````````P)4"``````"(208```````@`````````D)P" ++M``````"0208```````@`````````T)4"``````"@208```````@````````` ++MT&0&``````"H208```````@`````````L)("``````"P208```````@````` ++M````$),"``````"X208```````@`````````,),"``````#`208```````@` ++M````````\/`"``````#(208```````@`````````@/4"``````#0208````` ++M``@`````````8),"``````#8208```````@`````````0*X"``````#@208` ++M``````@`````````,*\"``````#H208```````@`````````0,<"``````#P ++M208```````@`````````P/D"``````#X208```````@`````````H),"```` ++M````2@8```````@``````````*P"```````(2@8```````@`````````X*T" ++M```````82@8```````@`````````T&0&```````@2@8```````@````````` ++MT*T"```````H2@8```````@`````````$*X"```````P2@8```````@````` ++M````</4"```````X2@8```````@`````````L/D"``````!`2@8```````@` ++M````````@),"``````!(2@8```````@`````````(*\"``````!02@8````` ++M``@`````````L+`"``````!82@8```````@`````````X,@"``````!@2@8` ++M``````@`````````(`H#``````!H2@8```````@`````````P),"``````!X ++M2@8```````@`````````.&4&``````"`2@8```````@`````````L*@"```` ++M``"(2@8```````@`````````T*L"``````"02@8```````@`````````$,X" ++M``````"@2@8```````@`````````Z&4&``````"H2@8```````@````````` ++MX"@#``````"P2@8```````@`````````$"\#``````"X2@8```````@````` ++M````L#T#``````#`2@8```````@`````````8$L#``````#(2@8```````@` ++M````````L$L#``````#02@8```````@`````````(%`#``````#82@8````` ++M``@`````````<(P#``````#@2@8```````@`````````0#P#``````#H2@8` ++M``````@`````````8#P#``````#P2@8```````@``````````$T#``````#X ++M2@8```````@`````````H$T#```````(2P8```````@`````````Z&4&```` ++M```02P8```````@`````````T"T#```````82P8```````@`````````4"\# ++M```````@2P8```````@`````````<$0#```````H2P8```````@````````` ++M,%,#```````P2P8```````@`````````()4#``````!`2P8```````@````` ++M````Z&4&``````!(2P8```````@`````````D"P#``````!02P8```````@` ++M````````0"\#``````!82P8```````@`````````P$(#``````!@2P8````` ++M``@`````````($T#``````!P2P8```````@`````````Z&4&``````!X2P8` ++M``````@`````````4"L#``````"`2P8```````@`````````,"\#``````"( ++M2P8```````@`````````$$$#``````"02P8```````@`````````4$\#```` ++M``"@2P8```````@`````````Z&4&``````"H2P8```````@`````````$"H# ++M``````"P2P8```````@`````````("\#``````"X2P8```````@````````` ++M8#\#``````#`2P8```````@`````````4#P#``````#(2P8```````@````` ++M````<#P#``````#82P8```````@`````````D&8&``````#@2P8```````@` ++M````````$!("``````#H2P8```````@`````````D!,"``````#P2P8````` ++M``@`````````4)T"``````#X2P8```````@`````````,`H#````````3`8` ++M``````@``````````)P"```````(3`8```````@`````````D)("```````0 ++M3`8```````@`````````L*8"```````83`8```````@`````````0+$"```` ++M```@3`8```````@`````````0*$"```````H3`8```````@``````````)(" ++M```````P3`8```````@`````````$)("```````X3`8```````@````````` ++M`)("``````!`3`8```````@`````````4)("``````!(3`8```````@````` ++M````4.X"``````!83`8```````@`````````D&8&``````!@3`8```````@` ++M````````T!("``````!H3`8```````@`````````H!,"``````!P3`8````` ++M``@`````````,)X"``````!X3`8```````@`````````X/`"``````"`3`8` ++M``````@`````````X$L&``````"(3`8```````@`````````J$D&``````"0 ++M3`8```````@`````````,#@&``````"83`8```````@`````````P#@&```` ++M``"@3`8```````@`````````0$@&``````"H3`8```````@`````````J$H& ++M``````"P3`8```````@`````````2$L&``````"X3`8```````@````````` ++M&$<&``````#`3`8```````@`````````L$<&``````#(3`8```````@````` ++M````F$4&``````#03`8```````@`````````<$8&``````#@3`8```````@` ++M````````B&<&``````#H3`8```````@`````````(#D#``````#P3`8````` ++M``@`````````$#L#``````#X3`8```````@`````````($8#````````308` ++M``````@`````````H(H#```````(308```````@`````````,(L#```````0 ++M308```````@`````````L(L#```````@308```````@`````````B&<&```` ++M```H308```````@`````````$#H#```````P308```````@`````````(#L# ++M```````X308```````@`````````8$@#``````!`308```````@````````` ++M$(P#``````!0308```````@`````````T&<&``````!8308```````@````` ++M````T`,"``````!@308```````@`````````,`0"``````!H308```````@` ++M````````L"0"``````!P308```````@``````````'0"``````"`308````` ++M``@`````````"&@&``````"(308```````@`````````@"@#``````"0308` ++M``````@`````````T"@#``````"8308```````@`````````@#P#``````"H ++M308```````@`````````0&@&``````"P308```````@`````````D!`"```` ++M``"X308```````@`````````(!$"``````#`308```````@`````````T"@" ++M``````#(308```````@`````````T$\"``````#0308```````@````````` ++MJ$H&``````#8308```````@`````````2$L&``````#@308```````@````` ++M````Z$P&``````#H308```````@`````````T&@&``````#P308```````@` ++M````````0$@&``````#X308```````@`````````&$<&````````3@8````` ++M``@`````````L$<&```````(3@8```````@`````````F$4&```````03@8` ++M``````@`````````<$8&```````@3@8```````@`````````\UD%```````X ++M3@8```````@`````````]5D%``````!03@8```````@`````````L5L%```` ++M``!H3@8```````@`````````M%L%``````"`3@8```````@`````````MEL% ++M``````"83@8```````@`````````N%L%``````#`3@8```````@````````` ++M-UD%``````#(3@8```````@`````````1ED%``````#03@8```````@````` ++M`````&4%``````#83@8```````@`````````NEL%``````#@3@8```````@` ++M````````UUL%``````#H3@8```````@`````````]%L%``````#P3@8````` ++M``@`````````.&4%``````#X3@8```````@`````````#EP%````````3P8` ++M``````@`````````(5P%```````(3P8```````@`````````!%D%```````0 ++M3P8```````@`````````-5P%```````@3P8```````@`````````ME<%```` ++M```H3P8```````@`````````2%X%```````P3P8```````@`````````&&`% ++M```````X3P8```````@`````````1EH%``````!`3P8```````@````````` ++M"%X%``````!(3P8```````@`````````/UP%``````!03P8```````@````` ++M````25P%``````!83P8```````@`````````*5\%``````!@3P8```````@` ++M````````4%P%``````!H3P8```````@`````````7%P%``````!P3P8````` ++M``@`````````9UP%``````!X3P8```````@`````````;UP%``````"`3P8` ++M``````@`````````>%P%``````"(3P8```````@`````````@5P%``````"0 ++M3P8```````@`````````AUP%``````"83P8```````@`````````D5P%```` ++M``"@3P8```````@`````````FUP%``````"H3P8```````@`````````J%P% ++M``````"P3P8```````@`````````M%P%``````"X3P8```````@````````` ++MQ%P%``````#`3P8```````@`````````2ET%``````#(3P8```````@````` ++M````R%P%``````#03P8```````@`````````\E@%``````#83P8```````@` ++M````````S5P%``````#@3P8```````@`````````U5P%``````#H3P8````` ++M``@`````````X5P%``````#P3P8```````@`````````YEP%``````#X3P8` ++M``````@`````````[%P%````````4`8```````@`````````WUX%```````( ++M4`8```````@`````````\EP%```````04`8```````@`````````^UP%```` ++M```84`8```````@`````````!UT%```````@4`8```````@`````````#UT% ++M```````H4`8```````@`````````%5T%```````P4`8```````@````````` ++M'5T%```````X4`8```````@`````````)%T%``````!`4`8```````@````` ++M````2UH%``````!(4`8```````@`````````,%T%``````!04`8```````@` ++M````````-ET%``````!84`8```````@`````````/5T%``````!@4`8````` ++M``@`````````15T%``````!H4`8```````@`````````3UT%``````!P4`8` ++M``````@`````````5ET%``````!X4`8```````@`````````85T%``````"` ++M4`8```````@`````````MEX%``````"(4`8```````@`````````95T%```` ++M``"04`8```````@`````````<ET%``````"84`8```````@`````````>UT% ++M``````"@4`8```````@`````````BUT%``````"H4`8```````@````````` ++M15\%``````"P4`8```````@`````````FUT%``````"X4`8```````@````` ++M````IET%``````#`4`8```````@`````````NET%``````#(4`8```````@` ++M````````QET%``````#04`8```````@`````````RUT%``````#84`8````` ++M``@`````````.5P%``````#@4`8```````@`````````V5T%``````#H4`8` ++M``````@`````````Y%T%``````#P4`8```````@`````````[UT%``````#X ++M4`8```````@`````````_%T%````````408```````@``````````EX%```` ++M```(408```````@`````````#5X%```````0408```````@`````````%EX% ++M```````8408```````@`````````(EX%```````@408```````@````````` ++M,UX%```````H408```````@`````````-UX%```````P408```````@````` ++M````/UX%```````X408```````@`````````1%X%``````!`408```````@` ++M````````2EX%``````!(408```````@`````````4EX%``````!0408````` ++M``@`````````'5L%``````!8408```````@`````````'5L%``````!@408` ++M``````@`````````75X%``````!H408```````@`````````9EX%``````!P ++M408```````@`````````>%X%``````!X408```````@`````````;EX%```` ++M``"`408```````@`````````@%X%``````"(408```````@`````````EUX% ++M``````"0408```````@`````````I%X%``````"8408```````@````````` ++ML%X%``````"@408```````@`````````Q%X%``````"H408```````@````` ++M````T5X%``````"P408```````@`````````V5X%``````"X408```````@` ++M````````YUX%``````#`408```````@`````````\5X%``````#(408````` ++M``@`````````8&4%``````#0408```````@`````````!5\%``````#8408` ++M``````@`````````4EH%``````#@408```````@`````````&U\%``````#H ++M408```````@`````````U%T%``````#P408```````@`````````+E\%```` ++M``#X408```````@`````````.%\%````````4@8```````@`````````/E\% ++M```````(4@8```````@`````````2%\%```````04@8```````@````````` ++M4E\%```````84@8```````@`````````6U\%```````@4@8```````@````` ++M````95\%```````H4@8```````@`````````<5\%```````P4@8```````@` ++M````````>%\%```````X4@8```````@`````````B5\%``````!`4@8````` ++M``@`````````D5\%``````!(4@8```````@`````````FE\%``````!04@8` ++M``````@`````````IU\%``````!84@8```````@`````````M%\%``````!@ ++M4@8```````@`````````OE\%``````!H4@8```````@`````````F$4&```` ++M``!P4@8```````@`````````<$8&``````!X4@8```````@`````````0$@& ++M``````"`4@8```````@`````````X&D&``````"(4@8```````@````````` ++M>&D&``````"H4@8```````@`````````B'`&``````"P4@8```````@````` ++M`````6`%``````"X4@8```````@``````````6`%``````#04@8```````@` ++M`````````&4#```````04P8```````@`````````^ED%```````84P8````` ++M``@`````````_5\%```````P4P8```````@`````````(*,"``````!@4P8` ++M``````@``````````&8"``````!X4P8```````@`````````!&`%``````"@ ++M4P8```````@`````````4%`"``````"X4P8```````@`````````"F`%```` ++M``#@4P8```````@`````````0$<"``````#X4P8```````@`````````#V`% ++M```````@5`8```````@`````````D$8"```````X5`8```````@````````` ++M%&`%``````!@5`8```````@`````````D%@!``````!X5`8```````@````` ++M````&F`%``````"@5`8```````@`````````(%@!``````"H5`8```````@` ++M````````(%@!``````"X5`8```````@`````````(&`%``````#@5`8````` ++M``@`````````T%<!``````#X5`8```````@`````````)6`%```````@508` ++M``````@`````````@%<!```````X508```````@`````````*V`%``````!@ ++M508```````@`````````0%8!``````!X508```````@`````````,6`%```` ++M``"(508```````@`````````@%8!``````"@508```````@`````````-6`% ++M``````"P508```````@`````````P%8!``````#(508```````@````````` ++M.F`%``````#8508```````@``````````%<!``````#P508```````@````` ++M````/F`%````````5@8```````@`````````0%<!```````85@8```````@` ++M````````0V`%``````!`5@8```````@``````````%8!``````!85@8````` ++M``@`````````26`%``````"`5@8```````@`````````<%4!``````"85@8` ++M``````@`````````36`%``````"P5@8```````@`````````@&H&``````"X ++M5@8```````@`````````X`("``````#`5@8```````@`````````,`,"```` ++M``#(5@8```````@`````````<"0"``````#05@8```````@`````````\&P" ++M``````#85@8```````@`````````,#8&``````#@5@8```````@````````` ++MR#8&``````#H5@8```````@`````````*#<&``````#P5@8```````@````` ++M````J$D&``````#X5@8```````@`````````T#T&````````5P8```````@` ++M````````J#X&```````(5P8```````@`````````$#\&```````05P8````` ++M``@`````````>#\&```````85P8```````@`````````V#\&```````@5P8` ++M``````@`````````0$`&```````H5P8```````@`````````F$4&```````P ++M5P8```````@`````````<$8&```````X5P8```````@`````````0$@&```` ++M``!`5P8```````@`````````J$H&``````!(5P8```````@`````````2$L& ++M``````!05P8```````@`````````X$L&``````!@5P8```````@````````` ++M8%`%``````!H5P8```````@`````````@%L&``````!X5P8```````@````` ++M````@%`%``````"`5P8```````@`````````@%L&``````"05P8```````@` ++M````````H%`%``````"@5P8```````@`````````N%@&``````"P5P8````` ++M``@`````````2%D&``````#`5P8```````@`````````B%H&``````#05P8` ++M``````@`````````B%@&``````#@5P8```````@`````````6%H&``````#P ++M5P8```````@`````````<%<&````````6`8```````@`````````6%<&```` ++M```06`8```````@`````````D%L&```````H6`8```````@`````````P%`% ++M```````X6`8```````@`````````X%`%``````!(6`8```````@````````` ++MX%D&``````!86`8```````@`````````2%D&``````!H6`8```````@````` ++M````D%L&``````!X6`8```````@`````````(%@&``````"06`8```````@` ++M`````````%$%``````"86`8```````@`````````@%L&``````"H6`8````` ++M``@`````````,%$%``````"P6`8```````@`````````@%L&``````#`6`8` ++M``````@`````````4%$%``````#(6`8```````@`````````@%L&``````#8 ++M6`8```````@`````````<%$%``````#H6`8```````@`````````N%@&```` ++M``#X6`8```````@`````````H%@&```````(608```````@`````````H%L& ++M```````8608```````@`````````B%H&```````H608```````@````````` ++MB%@&```````X608```````@`````````D%L&``````!0608```````@````` ++M````H%$%``````!8608```````@`````````@%L&``````!H608```````@` ++M````````T%$%``````!X608```````@`````````X%D&``````"(608````` ++M``@`````````2%D&``````"8608```````@`````````D%L&``````"P608` ++M``````@`````````\%$%``````#`608```````@`````````X%D&``````#0 ++M608```````@`````````D%L&``````#H608```````@`````````$%(%```` ++M``#P608```````@`````````@%L&````````6@8```````@`````````,%(% ++M```````06@8```````@`````````X%D&```````@6@8```````@````````` ++MD%L&```````X6@8```````@`````````4%(%``````!(6@8```````@````` ++M````@%(%``````!06@8```````@`````````,%H&``````!@6@8```````@` ++M````````L%(%``````!H6@8```````@`````````@%L&``````!X6@8````` ++M``@`````````X%(%``````"`6@8```````@`````````@%L&``````"06@8` ++M``````@`````````$%,%``````"86@8```````@`````````@%L&``````"H ++M6@8```````@`````````,%,%``````"P6@8```````@`````````@%L&```` ++M``#`6@8```````@`````````4%,%``````#06@8```````@`````````H%H& ++M``````#@6@8```````@`````````B%H&``````#P6@8```````@````````` ++M<%H&````````6P8```````@`````````6%H&```````06P8```````@````` ++M````D%L&```````@6P8```````@`````````0%H&```````X6P8```````@` ++M````````<%,%``````!`6P8```````@`````````@%L&``````!06P8````` ++M``@`````````D%,%``````!@6P8```````@`````````,%L&``````!P6P8` ++M``````@`````````D%L&``````"(6P8```````@`````````J%,%``````"8 ++M6P8```````@`````````P%,%``````"H6P8```````@`````````T%,%```` ++M``"P6P8```````@`````````@%L&``````#`6P8```````@`````````\%,% ++M``````#06P8```````@`````````H%L&``````#@6P8```````@````````` ++MD%L&``````#X6P8```````@`````````J&@%```````(7`8```````@````` ++M````8%T&```````87`8```````@`````````D%L&```````P7`8```````@` ++M````````P&@%```````X7`8```````@`````````@%L&``````!(7`8````` ++M``@`````````X&@%``````!87`8```````@`````````*%P&``````!H7`8` ++M``````@`````````D%L&``````"`7`8```````@``````````&D%``````"0 ++M7`8```````@`````````H%L&``````"@7`8```````@`````````D%L&```` ++M``"X7`8```````@`````````(&D%``````#`7`8```````@`````````,%L& ++M``````#07`8```````@`````````,&D%``````#@7`8```````@````````` ++ML%P&``````#P7`8```````@`````````D%L&```````(708```````@````` ++M````4&D%```````0708```````@`````````@%L&```````@708```````@` ++M````````<&D%```````H708```````@`````````@%L&```````X708````` ++M``@`````````D&D%``````!`708```````@`````````@%L&``````!0708` ++M``````@`````````L&D%``````!8708```````@`````````@%L&``````!H ++M708```````@`````````R&D%``````!P708```````@`````````H%L&```` ++M``"`708```````@`````````X&D%``````"0708```````@`````````8%T& ++M``````"@708```````@`````````2%T&``````"P708```````@````````` ++M,%T&``````#`708```````@`````````&%T&``````#0708```````@````` ++M`````%T&``````#@708```````@`````````D%L&``````#X708```````@` ++M````````\&D%```````(7@8```````@`````````$&H%```````07@8````` ++M``@`````````@%L&```````@7@8```````@`````````,&H%```````H7@8` ++M``````@`````````@%L&```````X7@8```````@`````````4&H%``````!` ++M7@8```````@`````````@%L&``````!07@8```````@`````````<&H%```` ++M``!87@8```````@`````````@%L&``````!H7@8```````@`````````D&H% ++M``````!X7@8```````@`````````N%@&``````"(7@8```````@````````` ++M2%X&``````"87@8```````@`````````,%X&``````"H7@8```````@````` ++M````H%@&``````"X7@8```````@`````````H%L&``````#(7@8```````@` ++M````````&%X&``````#87@8```````@`````````,%L&``````#H7@8````` ++M``@``````````%X&``````#X7@8```````@`````````6%H&```````(7P8` ++M``````@`````````X%\&```````87P8```````@`````````<%\&```````H ++M7P8```````@`````````2%D&```````X7P8```````@`````````D%L&```` ++M``!(7P8```````@`````````\%T&``````!@7P8```````@`````````H&H% ++M``````!H7P8```````@`````````B%\&``````!X7P8```````@````````` ++MP&H%``````"`7P8```````@`````````@%L&``````"07P8```````@````` ++M````X&H%``````"@7P8```````@`````````X%D&``````"P7P8```````@` ++M````````<%\&``````#`7P8```````@`````````D%L&``````#87P8````` ++M``@``````````&L%``````#H7P8```````@`````````(&L%``````#P7P8` ++M``````@`````````@%L&````````8`8```````@`````````0&L%```````0 ++M8`8```````@`````````X%D&```````@8`8```````@`````````X%\&```` ++M```P8`8```````@`````````D%L&``````!`8`8```````@`````````T%\& ++M``````!88`8```````@`````````8&L%``````!H8`8```````@````````` ++M^%\&``````!X8`8```````@`````````2%D&``````"08`8```````@````` ++M````@&L%``````"@8`8```````@`````````N%@&``````"P8`8```````@` ++M````````2%D&``````#`8`8```````@`````````B%H&``````#08`8````` ++M``@`````````B%@&``````#@8`8```````@`````````D%L&``````#X8`8` ++M``````@`````````H&L%```````(808```````@`````````N%@&```````8 ++M808```````@`````````2%D&```````H808```````@`````````B%H&```` ++M```X808```````@`````````B%@&``````!(808```````@`````````6%H& ++M``````!8808```````@`````````D%L&``````!P808```````@````````` ++M^%\&``````"0808```````@`````````\%T"``````"8808```````@````` ++M`````/P!``````"@808```````@``````````%T"``````#`808```````@` ++M````````^%\&``````#@808```````@`````````X%T"``````#P808````` ++M``@`````````\&T%````````8@8```````@`````````(&X%```````(8@8` ++M``````@`````````@%L&```````88@8```````@`````````4&X%```````H ++M8@8```````@`````````@&X%```````P8@8```````@`````````<&4&```` ++M``!`8@8```````@`````````H&X%``````!(8@8```````@`````````@%L& ++M``````!88@8```````@`````````T&X%``````!@8@8```````@````````` ++M<&4&``````!P8@8```````@`````````\&X%``````!X8@8```````@````` ++M````Z&$&``````"(8@8```````@`````````$&\%``````"88@8```````@` ++M````````(&(&``````"H8@8```````@`````````$&(&``````"X8@8````` ++M``@`````````^&$&``````#(8@8```````@`````````B&4&``````#88@8` ++M``````@`````````:&(&``````#H8@8```````@`````````D%L&```````` ++M8P8```````@`````````,&\%```````08P8```````@`````````4&(&```` ++M```@8P8```````@`````````.&(&```````P8P8```````@`````````B&4& ++M``````!`8P8```````@`````````*%P&``````!08P8```````@````````` ++MD%L&``````!H8P8```````@`````````8&\%``````!X8P8```````@````` ++M````,%L&``````"(8P8```````@`````````D%L&``````"@8P8```````@` ++M````````H&\%``````"P8P8```````@`````````P&\%``````"X8P8````` ++M``@`````````@%L&``````#(8P8```````@`````````X&\%``````#88P8` ++M``````@`````````>&8&``````#H8P8```````@`````````J&,&``````#X ++M8P8```````@`````````D%L&```````(9`8```````@`````````F&,&```` ++M```@9`8```````@``````````'`%```````P9`8```````@`````````H%L& ++M``````!`9`8```````@`````````D%L&``````!89`8```````@````````` ++M0'`%``````!H9`8```````@`````````@%L&``````!X9`8```````@````` ++M````D%L&``````"09`8```````@`````````<'`%``````"@9`8```````@` ++M````````*%P&``````"P9`8```````@`````````D%L&``````#(9`8````` ++M``@`````````D'`%``````#89`8```````@`````````L'`%``````#H9`8` ++M``````@`````````@%L&``````#X9`8```````@`````````P&0&```````( ++M908```````@`````````D%L&```````@908```````@`````````T'`%```` ++M```P908```````@`````````Z'`%``````!`908```````@``````````'$% ++M``````!0908```````@`````````&&4&``````!@908```````@````````` ++M*&4&``````!X908```````@`````````('$%``````"`908```````@````` ++M````@%L&``````"0908```````@`````````,'$%``````"8908```````@` ++M````````@%L&``````"H908```````@`````````8'$%``````"P908````` ++M``@`````````@%L&``````#`908```````@`````````@'$%``````#(908` ++M``````@`````````@%L&``````#8908```````@`````````H'$%``````#@ ++M908```````@`````````@%L&``````#P908```````@`````````P'$%```` ++M````9@8```````@`````````T&4&```````09@8```````@`````````N&4& ++M```````@9@8```````@`````````H&4&```````P9@8```````@````````` ++MB&4&``````!`9@8```````@`````````<&4&``````!09@8```````@````` ++M````D%L&``````!H9@8```````@`````````X'$%``````!P9@8```````@` ++M````````@%L&``````"`9@8```````@`````````^'$%``````"(9@8````` ++M``@`````````@%L&``````"89@8```````@`````````$'(%``````"H9@8` ++M``````@`````````>&8&``````"X9@8```````@`````````8&8&``````#( ++M9@8```````@`````````D%L&``````#@9@8```````@`````````@&T%```` ++M``#P9@8```````@`````````P&T%``````#X9@8```````@`````````V&8& ++M```````(9P8```````@`````````P&0&```````@9P8```````@````````` ++MP*,"``````!H9P8```````@`````````*&4&``````"09P8```````@````` ++M````4'0%``````"@9P8```````@`````````8%T&``````"P9P8```````@` ++M````````2%T&``````#`9P8```````@`````````D%L&``````#89P8````` ++M``@`````````<'0%``````#H9P8```````@`````````,%L&``````#X9P8` ++M``````@`````````D%L&```````0:`8```````@`````````B'0%```````@ ++M:`8```````@`````````@%L&```````P:`8```````@`````````D%L&```` ++M``!(:`8```````@`````````H'0%``````!8:`8```````@`````````,%L& ++M``````!H:`8```````@`````````D%L&``````"`:`8```````@````````` ++MJ&,&``````#(:`8```````@`````````>&8&``````!`:08```````@````` ++M````B&4&``````!P:08```````@`````````^&$&``````"@:08```````@` ++M````````$&(&``````#8:08```````@`````````(&(&```````P:@8````` ++M``@`````````>'@%``````!`:@8```````@`````````B'@%``````!0:@8` ++M``````@`````````H'@%``````!@:@8```````@`````````P'@%``````!P ++M:@8```````@`````````X'@%``````!X:@8```````@`````````.&H&```` ++M``"(:@8```````@``````````'H%``````"8:@8```````@`````````H%L& ++M``````"H:@8```````@`````````D%L&```````(<`8```````@````````` ++M"'`&```````H<`8```````@``````````$(!```````P<`8```````@````` ++M````V&8&```````X<`8```````@`````````Z&8&``````!`<`8```````@` ++M````````6&H&``````!(<`8```````@`````````:&H&``````!0<`8````` ++M``@`````````*&H&``````!8<`8```````@`````````.&H&``````!@<`8` ++M``````@`````````2&H&``````!85P8```````$```!`````$`````````!P ++M5P8```````$```!`````$`````````"(6`8```````$```!`````$``````` ++M``"@6`8```````$```!`````$`````````"X6`8```````$```!`````$``` ++M``````!(608```````$```!`````$`````````#@608```````$```!````` ++M$`````````!`6@8```````$```!`````$`````````!86@8```````$```!` ++M````$`````````!P6@8```````$```!`````$`````````"(6@8```````$` ++M``!`````$`````````"@6@8```````$```!`````$``````````P6P8````` ++M``$```!`````$`````````"@6P8```````$```!`````$``````````H7`8` ++M``````$```!`````$`````````"P7`8```````$```!`````$``````````` ++M708```````$```!`````$``````````8708```````$```!`````$``````` ++M```P708```````$```!`````$`````````!(708```````$```!`````$``` ++M``````!@708```````$```!`````$```````````7@8```````$```!````` ++M$``````````87@8```````$```!`````$``````````P7@8```````$```!` ++M````$`````````!(7@8```````$```!`````$`````````!87P8```````$` ++M``!`````$`````````!P7P8```````$```!`````$`````````#@7P8````` ++M``$```!`````$`````````#X808```````$```!`````$``````````@8@8` ++M``````$```!`````$``````````X8@8```````$```!`````$`````````!0 ++M8@8```````$```!`````$`````````!H8@8```````$```!`````$``````` ++M``"H8P8```````$```!`````$`````````!P908```````$```!`````$``` ++M``````"(908```````$```!`````$`````````"@908```````$```!````` ++M$`````````"X908```````$```!`````$`````````#0908```````$```!` ++M````$`````````!@9@8```````$```!`````$`````````!X9@8```````$` ++M``!`````$`````````#H9@8```````$```!`````$`````````!H:@8````` ++M``$```!`````$`````````"(5P8```````$```!:````$``````````P6`8` ++M``````$```!:````$`````````#06`8```````$```!:````$`````````!@ ++M608```````$```!:````$`````````"H608```````$```!:````$``````` ++M``#X608```````$```!:````$`````````"X6@8```````$```!:````$``` ++M``````!(6P8```````$```!:````$`````````"X6P8```````$```!:```` ++M$`````````#P6P8```````$```!:````$`````````!`7`8```````$```!: ++M````$`````````!X7`8```````$```!:````$`````````#(7`8```````$` ++M``!:````$`````````!X708```````$```!:````$`````````!@7@8````` ++M``$```!:````$`````````"(7P8```````$```!:````$`````````#X7P8` ++M``````$```!:````$`````````!08`8```````$```!:````$`````````"( ++M8`8```````$```!:````$`````````#P8`8```````$```!:````$``````` ++M``"`8@8```````$```!:````$`````````#X8@8```````$```!:````$``` ++M``````!@8P8```````$```!:````$`````````#`8P8```````$```!:```` ++M$``````````89`8```````$```!:````$`````````!09`8```````$```!: ++M````$`````````"(9`8```````$```!:````$`````````#09`8```````$` ++M``!:````$``````````X908```````$```!:````$`````````#H908````` ++M``$```!:````$`````````"09@8```````$```!:````$`````````"(9P8` ++M``````$```!:````$`````````#09P8```````$```!:````$``````````( ++M:`8```````$```!:````$`````````!`:`8```````$```!:````$``````` ++M``"`:@8```````$```!:````$``````````@6`8```````$````<````$``` ++M```````P6@8```````$````<````$`````````"`6P8```````$````<```` ++M$`````````"06P8```````$````<````$`````````#P708```````$````< ++M````$`````````#07P8```````$````<````$`````````#H808```````$` ++M```<````$``````````08@8```````$````<````$`````````"88P8````` ++M``$````<````$`````````#`9`8```````$````<````$``````````8908` ++M``````$````<````$``````````H908```````$````<````$`````````#8 ++M9@8```````$````<````$``````````H:@8```````$````<````$``````` ++M```X:@8```````$````<````$`````````!8:@8```````$````<````$``` ++M``````!X808```````$```!D``````````````"`808```````$```!D```` ++M``````````"(808```````$```!D``````````````#(808```````$```!D ++M``````````````#0808```````$```!D``````````````#8808```````$` ++M``!D```````````````H9P8```````$```!D```````````````P9P8````` ++M``$```!D```````````````X9P8```````$```!D``````````````!`9P8` ++M``````$```!D``````````````!(9P8```````$```!D``````````````!0 ++M9P8```````$```!D``````````````!89P8```````$```!D```````````` ++M``"`9P8```````$```!D``````````````"(:`8```````$```!D```````` ++M``````"0:`8```````$```!D``````````````"8:`8```````$```!D```` ++M``````````"@:`8```````$```!D``````````````"H:`8```````$```!D ++M``````````````"P:`8```````$```!D``````````````"X:`8```````$` ++M``!D``````````````#0:`8```````$```!D``````````````#8:`8````` ++M``$```!D``````````````#@:`8```````$```!D``````````````#H:`8` ++M``````$```!D``````````````#P:`8```````$```!D``````````````#X ++M:`8```````$```!D````````````````:08```````$```!D```````````` ++M```(:08```````$```!D```````````````0:08```````$```!D```````` ++M```````8:08```````$```!D```````````````@:08```````$```!D```` ++M```````````H:08```````$```!D```````````````P:08```````$```!D ++M``````````````!(:08```````$```!D``````````````!0:08```````$` ++M``!D``````````````!8:08```````$```!D``````````````!@:08````` ++M``$```!D``````````````!X:08```````$```!D``````````````"`:08` ++M``````$```!D``````````````"(:08```````$```!D``````````````"0 ++M:08```````$```!D``````````````"H:08```````$```!D```````````` ++M``"P:08```````$```!D``````````````"X:08```````$```!D```````` ++M``````#`:08```````$```!D``````````````#(:08```````$```!D```` ++M``````````#@:08```````$```!D``````````````#H:08```````$```!D ++M``````````````#P:08```````$```!D``````````````#X:08```````$` ++M``!D````````````````:@8```````$```!D```````````````(:@8````` ++M``$```!D```````````````0:@8```````$```!D```````````````8:@8` ++M``````$```!D```````````````@:@8```````$```!D``````````````!( ++M:@8```````$```!4````$`````````"@;P8```````8````"```````````` ++M``"`<`8```````$````"``````````````"H;P8```````8````%```````` ++M``````"P;P8```````8```!K``````````````"X;P8```````8````6```` ++M``````````!H<`8```````$````6``````````````#`;P8```````8````> ++M``````````````#(;P8```````8````A``````````````#0;P8```````8` ++M``!$``````````````#8;P8```````8```!;``````````````#@;P8````` ++M``8```!C``````````````#H;P8```````8```!E```````````````8<`8` ++M``````$````(```````````````@<`8```````$```!2``````````````!P ++M<`8```````$```!.``````````````!X<`8```````$````^```````````` ++M``#@;`8```````<````!``````````````#H;`8```````<````#```````` ++M``````#P;`8```````<````$``````````````#X;`8```````<````&```` ++M````````````;08```````<````'```````````````(;08```````<````) ++M```````````````0;08```````<````*```````````````8;08```````<` ++M```+```````````````@;08```````<````,```````````````H;08````` ++M``<````-```````````````P;08```````<````.```````````````X;08` ++M``````<````/``````````````!`;08```````<````0``````````````!( ++M;08```````<````1``````````````!0;08```````<````2```````````` ++M``!8;08```````<````3``````````````!@;08```````<````4```````` ++M``````!H;08```````<````5``````````````!P;08```````<````7```` ++M``````````!X;08```````<````8``````````````"`;08```````<````9 ++M``````````````"(;08```````<````:``````````````"0;08```````<` ++M```;``````````````"8;08```````<````=``````````````"@;08````` ++M``<````?``````````````"H;08```````<````@``````````````"P;08` ++M``````<````B``````````````"X;08```````<````C``````````````#` ++M;08```````<````D``````````````#(;08```````<````E```````````` ++M``#0;08```````<````F``````````````#8;08```````<````G```````` ++M``````#@;08```````<````H``````````````#H;08```````<````I```` ++M``````````#P;08```````<````J``````````````#X;08```````<````K ++M````````````````;@8```````<````L```````````````(;@8```````<` ++M```M```````````````0;@8```````<````N```````````````8;@8````` ++M``<````O```````````````@;@8```````<````P```````````````H;@8` ++M``````<````Q```````````````P;@8```````<````R```````````````X ++M;@8```````<````S``````````````!`;@8```````<````T```````````` ++M``!(;@8```````<````U``````````````!0;@8```````<````V```````` ++M``````!8;@8```````<````W``````````````!@;@8```````<````X```` ++M``````````!H;@8```````<````Y``````````````!P;@8```````<````Z ++M``````````````!X;@8```````<````[``````````````"`;@8```````<` ++M```\``````````````"(;@8```````<````]``````````````"0;@8````` ++M``<````_``````````````"8;@8```````<```!!``````````````"@;@8` ++M``````<```!"``````````````"H;@8```````<```!#``````````````"P ++M;@8```````<```!%``````````````"X;@8```````<```!&```````````` ++M``#`;@8```````<```!'``````````````#(;@8```````<```!(```````` ++M``````#0;@8```````<```!)``````````````#8;@8```````<```!*```` ++M``````````#@;@8```````<```!+``````````````#H;@8```````<```!, ++M``````````````#P;@8```````<```!-``````````````#X;@8```````<` ++M``!/````````````````;P8```````<```!0```````````````(;P8````` ++M``<```!1```````````````0;P8```````<```!3```````````````8;P8` ++M``````<```!5```````````````@;P8```````<```!6```````````````H ++M;P8```````<```!7```````````````P;P8```````<```!8```````````` ++M```X;P8```````<```!9``````````````!`;P8```````<```!<```````` ++M``````!(;P8```````<```!=``````````````!0;P8```````<```!>```` ++M``````````!8;P8```````<```!?``````````````!@;P8```````<```!@ ++M``````````````!H;P8```````<```!A``````````````!P;P8```````<` ++M``!B``````````````!X;P8```````<```!F``````````````"`;P8````` ++M``<```!G``````````````"(;P8```````<```!H``````````````"0;P8` ++M``````<```!I``````````````"8;P8```````<```!J```````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````/,/'OI(@^P(2(L%T<\%`$B%P'0"_]!(@\0(PP``````_S6J ++MS`4`_R6LS`4`#Q]``/\EJLP%`&@`````Z>#_____):+,!0!H`0```.G0____ ++M_R6:S`4`:`(```#IP/____\EDLP%`&@#````Z;#_____)8K,!0!H!````.F@ ++M_____R6"S`4`:`4```#ID/____\E>LP%`&@&````Z8#_____)7+,!0!H!P`` ++M`.EP_____R5JS`4`:`@```#I8/____\E8LP%`&@)````Z5#_____)5K,!0!H ++M"@```.E`_____R52S`4`:`L```#I,/____\E2LP%`&@,````Z2#_____)4+, ++M!0!H#0```.D0_____R4ZS`4`:`X```#I`/____\E,LP%`&@/````Z?#^____ ++M)2K,!0!H$````.G@_O___R4BS`4`:!$```#IT/[___\E&LP%`&@2````Z<#^ ++M____)1+,!0!H$P```.FP_O___R4*S`4`:!0```#IH/[___\E`LP%`&@5```` ++MZ9#^____)?K+!0!H%@```.F`_O___R7RRP4`:!<```#I</[___\EZLL%`&@8 ++M````Z6#^____)>++!0!H&0```.E0_O___R7:RP4`:!H```#I0/[___\ETLL% ++M`&@;````Z3#^____)<K+!0!H'````.D@_O___R7"RP4`:!T```#I$/[___\E ++MNLL%`&@>````Z0#^____);++!0!H'P```.GP_?___R6JRP4`:"````#IX/W_ ++M__\EHLL%`&@A````Z=#]____)9K+!0!H(@```.G`_?___R62RP4`:",```#I ++ML/W___\EBLL%`&@D````Z:#]____)8++!0!H)0```.F0_?___R5ZRP4`:"8` ++M``#I@/W___\E<LL%`&@G````Z7#]____)6K+!0!H*````.E@_?___R5BRP4` ++M:"D```#I4/W___\E6LL%`&@J````Z4#]____)5++!0!H*P```.DP_?___R5* ++MRP4`:"P```#I(/W___\E0LL%`&@M````Z1#]____)3K+!0!H+@```.D`_?__ ++M_R4RRP4`:"\```#I\/S___\E*LL%`&@P````Z>#\____)2++!0!H,0```.G0 ++M_/___R4:RP4`:#(```#IP/S___\E$LL%`&@S````Z;#\____)0K+!0!H-``` ++M`.F@_/___R4"RP4`:#4```#ID/S___\E^LH%`&@V````Z8#\____)?+*!0!H ++M-P```.EP_/___R7JR@4`:#@```#I8/S___\EXLH%`&@Y````Z5#\____)=K* ++M!0!H.@```.E`_/___R72R@4`:#L```#I,/S___\ERLH%`&@\````Z2#\____ ++M)<+*!0!H/0```.D0_/___R6ZR@4`:#X```#I`/S___\ELLH%`&@_````Z?#[ ++M____):K*!0!H0````.G@^____R6BR@4`:$$```#IT/O___\EFLH%`&A"```` ++MZ<#[____)9+*!0!H0P```.FP^____R6*R@4`:$0```#IH/O___\E@LH%`&A% ++M````Z9#[____)7K*!0!H1@```.F`^____R5RR@4`:$<```#I</O___\E:LH% ++M`&A(````Z6#[____)6+*!0!H20```.E0^____R5:R@4`:$H```#I0/O___\E ++M4LH%`&A+````Z3#[____)4K*!0!H3````.D@^____R5"R@4`:$T```#I$/O_ ++M__\E.LH%`&A.````Z0#[____)3+*!0!H3P```.GP^O___R4JR@4`:%````#I ++MX/K___\E(LH%`&A1````Z=#Z____)1K*!0!H4@```.G`^O___R42R@4`:%,` ++M``#IL/K___\E"LH%`&A4````Z:#Z____)0+*!0!H50```.F0^O___R7ZR04` ++M:%8```#I@/K___\E\LD%`&A7````Z7#Z____)?K)!0!FD```````````\P\> ++M^E6_!````$B)Y>@^^___2(LUQ\D%`#'2QP#E!P``2(G'Z-?^___S#Q[Z2(7_ ++M>0G&!BU(]]](_\:X_____T@YQW\%Z=8%`0#I`=X#`)!5OP0```!(B>7H\OK_ ++M_TB+-7O)!0`QTL<`K"DS`4B)Q^B+_O__D%6_!````$B)Y>C,^O__2(LU5<D% ++M`#'2QP"L*3,!2(G'Z&7^__^05;\$````2(GEZ*;Z__](BS4OR04`,=+'`*PI ++M,P%(B<?H/_[__Y#H.?___TR)Y[X0````Z-S[__](B=_H5/[__^@?____OA`` ++M``!(B=_HPOO__TF+/"1(A?]T!>C4_/__3(GGOA@```#HI_O__TR)[^@?_O__ ++MD+\$````Z#3Z__](BS6]R`4`,=+'`*PI,P%(B<?HS?W__TB+.TB%_W0%Z)#\ ++M__](BWW02(7_=`7H@OS__TB+1>AD2"L$)2@```!U"$R)Y^C+_?__Z&;[__]( ++MBT7(9$@K!"4H````=2;H@O[__[X0````3(GOZ"7[__]-A?9U1DB+1<AD2"L$ ++M)2@```!T0>@L^___\P\>^DB)P^O>2(M%R&1(*P0E*````'7CZ#_^__^^$``` ++M`$R)_^CB^O__Z[M,BW6PZ[5,B??H\OO__^NP2(G?Z$C]___S#Q[Z5;\$```` ++M2(GEZ%;Y__](BS7?QP4`,=+'`*PI,P%(B<?H[_S__Y!52(GEZ,W___](BT78 ++M9$@K!"4H````=07HN?___^B<^O__2(L[2(7_=`7HC_O__TR)Y^CG_/__Z)K_ ++M__]%B70D"$/&!"\`OP0```#H[OC__TB+-7?'!0`QTL<`YF(T`4B)Q^B'_/__ ++MD$B+?;!(A?]T!>A(^___2(M]P$B%_W0%Z#K[__](BT789$@K!"4H````=0A( ++MB=_H@_S__^@>^O__2(M]L$B%_W0%Z!#[__](BWW`2(7_=`7H`OO__TB+1=AD ++M2"L$)2@```!U"$B)W^A+_/__Z.;Y__](BWW`2(7_=`7HV/K__TB+?=!(A?]T ++M!>C*^O__2(M%Z&1(*P0E*````'4(2(G?Z!/\___HKOG__TB+?<!(A?]T!>B@ ++M^O__2(M]T$B%_W0%Z)+Z__](BT7H9$@K!"4H````=0A(B=_HV_O__^AV^?__ ++M3(MUH$R)[^AJ^O__387V=`A,B??H7?K__TR)Y^A5^O__2(M%R&1(*P0E*``` ++M`'4(2(G?Z)[[___H.?G__TB+?9B^$````.@+^?__387M=`A,B>_H'OK__TB+ ++M1<AD2"L$)2@```!U)DB)W^AG^___3(MML.O6\P\>^DB)P^O-2(M%R&1(*P0E ++M*````'0%Z.3X___H#_S__TB+1<AD2"L$)2@```!UY^C[^___2(G?OA````!, ++MB>/HF_C__^N.D.CC^___3(G_OD@```#HAOC__TB)W^C^^O__3(GGZ`8``0!( ++MBT7(9$@K!"4H````=3I(B=_HW_K__[X0````3(GGZ%+X__](BWVP2(7_=`7H ++M9/G__TB+1<AD2"L$)2@```!U#4B)W^BM^O__Z$CX___H0_C__TR+;:!-A>UT ++M"$R)[^@R^?__28L\)$B%_W0%Z"3Y__](BT7(9$@K!"4H````=0A(B=_H;?K_ ++M_^@(^/__\P\>^E6_!````$B)Y>AV]O__2(LU_\0%`#'2QP`!````2(G'Z`_Z ++M__^0\P\>^E5(B>532(G[48L_@___=!/HU?K__XG",<"%TG4(QP/_____L`%: ++M6UW#2(M]L$B%_W0%Z*/X__](BWV@2(7_=`7HE?C__TB+1<AD2"L$)2@```!U ++M>TB)W^C>^?__2(M]L$R+;9!(A?]T!>AL^/__2(-]@`!T"4B+?8#H7/C__TV% ++M[70(3(GOZ$_X__](BT7(9$@K!"4H````=1)(B=_HF/G__TB+1:!(B46`Z\+H ++M*??__TB+?;!(A?]T!>@;^/__2(M]H$B%_W2[Z`WX___KM.@&]___2(M]L$B% ++M_W21Z/CW___KBDB+?;!(A?]TTNCH]___Z\M(BWVP2(7_=,+HV/?__^N[2(M] ++ML$R+;9!(A?\/A&G____HP/?__^E?____3(MMD.E6____\P\>^E6_"````$B) ++MY>@@]?__2(LUP<,%`#'22(G'2(T%H:L$`$B)!^BU^/__D/,/'OI(BS](A?]T ++M#%5(BP=(B>7_4!!=P\.0Z)7Y__],B>>^2````.@X]O__2(G?Z+#X___H6_3_ ++M_^@V^/__N`X`!X#IUK`!`$B+1<AD2"L$)2@```!U.N@@_O__\P\>^DB)P^L( ++M3(GGZ(?V__](C3W`!P8`0;P.``>`Z"7U__](B=_H#?3__^CH]___Z82S`0#H ++M[O7__S'`28E$)#!(BT789$@K!"4H````=07HR_W__^C.]?__\P\>^KY(```` ++M3(GG28G%Z)KU__^^H````$B)W^B-]?__2(M%V&1(*P0E*````'4(3(GOZ/;W ++M___HD?7__Y#S#Q[Z2(L_2(7_=`Q52(L'2(GE_U`07</#2(N=$/___TB%VW0( ++M2(G?Z&/V__](B[T@____2(7_=`7H4O;__TB+1<AD2"L$)2@```!U"$R)Y^B; ++M]___Z#;U__](B[T`____2(7_=+KH)?;__^NSD$B+N]````!(A?]T!>@1]O__ ++M2(U[+.@J_?__3(GGZ&#W___S#Q[Z2(L_2(7_=`Q52(L'2(GE_U`07</#D$B+ ++M1=AD2"L$)2@```!U!>@@_O__Z,WT__^02(G?OE````#HG_3__TR)]^@7]___ ++MD.C__?__D.B[\O__Z);V__^X#@`'@.DQ`P(`28M%`$R)[_]0$$F+!"1,B>?_ ++M4!!(BWV@Z._^__](B=_HA_+__^AB]O__N0X`!X#IR`4"`$R)_^C0_O__2(M% ++MR&1(*P0E*````'4(2(G?Z*GV___H1/3___,/'OI52(GE4TB)^U%(BW]82(7_ ++M=`7H*?7__TB+>TA(A?]T!>@;]?__2(M[.$B%_W0%Z`WU__](BWL@2(7_=`7H ++M__3__TB+>Q!(A?]T!>CQ]/__2(L[2(7_=`A:6UWIX?3__UA;7<.0\P\>^E5( ++MB>532(G[44B+?Q!(A?]T!>C!]/__2(L[2(7_=`A:6UWIL?3__UA;7<.0\P\> ++M^DB+/TB%_W0,54B+!TB)Y?]0$%W#P_,/'OI5OP$```!(B>7H`?+__S'22(TU ++MP+<%`$B)Q^B@]?__\P\>^E6_`0```$B)Y>C>\?__,=)(C36MMP4`2(G'Z'WU ++M__^0Z+3___^02(M%R&1(*P0E*````'49Z)____](BT7(9$@K!"4H````=0KH ++MKO___^@9\___Z!3S___H?/___Y#H.?;__^@T]O__Z"_V___H*O;__^@E]O__ ++MZ"#V___H^_#__\>#7`$```5``(!(BUWXR>G']/__D.@!]O__Z#G____H-/__ ++M_^CR]?__2(M%R&1(*P0E*`````^%/`$``.C:]?__\P\>^DB+O=C]__])B<1) ++MB=7HY`\"`$B-O<#^___HV`\"`$B#O2#^__\`=`Q(B[T@_O__Z'+S__](@[WX ++M_?__`'0,2(N]^/W__^A<\___2(.]`/[__P!T#$B+O0#^___H1O/__TB+O2C^ ++M___H7O[__TB+O8#^__](A?]T!>@I\___2(V]</[__TV)YDR-I5#^___H"0X` ++M`$B-A6#^__](B84(_O__2(N]"/[__^CO#0``3(GG38GTZ#X/`@!(B[T0_O__ ++MZ.+R__],B>=,B>A(@_@"#X26````2(/X`P^$.@,``$F)_$B-O0#____HN?S_ ++M_TB-O4#^___H`?[__TB+A3C^__](B[TH_O__2(F%X/[__^@C#0(`3(GGZ)OO ++M__],B?_HL_\!`.AN\___0;X.``>`Z1\C`@#H;O'__TB+1<AD2"L$)2@```!U ++M'NC'_?__Z,+]___H4/'___,/'OI)B<1)B=7I^_[__^@\\?__Z$?O__]!QH<& ++M`@```>@:\___Z<XG`@!(BT7(9$@K!"4H````=1GH0?3__TB+1<AD2"L$)2@` ++M``!U"N@M]/__Z/CP___H\_#___,/'OI)B<1)B=7I4/[__TB+1<AD2"L$)2@` ++M```/A5H"``#H.?W___,/'OI)B<3I^_[__TB+1<AD2"L$)2@```!U).@9_?__ ++M2(M%R&1(*P0E*`````^%:`(``$R-I5#^___H^OS__^B(\/__2(M%R&1(*P0E ++M*````'4=Z.'\__](BT7(9$@K!"4H````#X7%````Z,G\___H5_#__TB+1<AD ++M2"L$)2@````/A4(!``#HS_S__TB+1<AD2"L$)2@````/A04"``#HE/S__TB+ ++M1<AD2"L$)2@```!U!>A#\___Z`[P__](BX6P_O__2(F%(/[__^EG_?__2(N% ++MD/[__TB)A0#^___I5/W__TB+A:#^__](B87X_?__Z4']__](B[W8_?__Z!D- ++M`@#I,/W__TB+1<AD2"L$)2@```!U%.@=_/__\P\>^DF)QDF)U>F<_?__Z)SO ++M___HE^____,/'OI)B<9)B=5,C:50_O__Z8C]__](BT7(9$@K!"4H````=75( ++MC85@_O__3(VE4/[__TB)A0C^___HQ?O__TB+1<AD2"L$)2@```!U!>C4^___ ++MZ#_O__](BT7(9$@K!"4H````=2E(C85@_O__3(VE4/[__TB)A0C^___H@_O_ ++M__,/'OI(B<=(B=#I*_W__^@"[___Z/WN___H^.[___,/'OI(B<?H_.S__^C7 ++M\/__Z63]___S#Q[Z28G$28G5Z4O\__](BT7(9$@K!"4H````#X64````Z+/V ++M__](BT7(9$@K!"4H````=07H%/O__^BB[O__2(M%R&1(*P0E*````'5QZ/OZ ++M___HF>S__T'&AP("```!Z&SP___I("4"`.AR[O__2(M%R&1(*P0E*````'4% ++MZ.[Z___H6>[__TB+1<AD2"L$)2@```!U%.BR^O__\P\>^DF)Q$F)U>E(_/__ ++MZ#'N___H+.[__^@G[O__Z"+N___H'>[__Y!(BT7(9$@K!"4H````=37H./'_ ++M__,/'OI(C7V@2(G#Z/CX__](C7V8Z&OW__](B=_H]^O__^C2[___N`X`!X#I ++MQSD"`.C3[?__D.C]\/__D.CW\/__Z/+P__](BT7(9$@K!"4H````=07HWO#_ ++M_^BI[?__2(M]B$B%_W0&2(L'_U`02(M]@$B%_W0&2(L'_U`02(M%R&1(*P0E ++M*````'4(2(G?Z-3O___H;^W__Y!(BWV@2(7_=`7H8.[__TB+O7#___](A?]T ++M!>A/[O__2(N]8/___TB%_W0%Z#[N__](B[U0____2(7_=`7H+>[__TB+O4#_ ++M__](A?]T!>@<[O__3(NE*/___TV%Y'0I28L$)$B-%>6.`@!(BT`02#G0#X7. ++M````08-L)"`!38UT)/@/A,<```!(B=]!O`X`!X#HZ>K__^C$[O__Z6=7`@!( ++MBT7(9$@K!"4H````=07HZ^___^BV[/__\P\>^DB+O0C___](B</HH_?__TV% ++M]G1%3(GWZ);M___K.TB+1<AD2"L$)2@```!U5NBP[___2(M%R&1(*P0E*``` ++M`'4]Z)SO___S#Q[Z2(N]&/___TB)P^A9]___2(M]L$B%_W0%Z$OM__](BWV@ ++M2(7_#X3>_O__Z#GM___IU/[__^@O[/__Z"KL__],B>?_T.DY____2(T%F90% ++M`$6+K"0(`0``\P]^!2&6!0!F2`]NV$B#P&A)B[PD``$``&8/;,-F2`]NX$B# ++MP#!!#Q%$)/CS#WX%_94%`$F)1"089@]LQ$$/$40D"$6%[71#08U%_TR+/,=) ++MB<5-A?]TZTF+?Q!(A?]T!>BK[/__28L_2(7_=`9(BP?_4!!,B?^^,````.AP ++MZ___28N\)``!``#KN$B%_W0%Z'SL__])B[PD\````$B%_W0%Z&KL__])BWPD ++M>$B%_W0%Z%OL__])BWPD:$B%_W0%Z$SL__])BWPD2$B%_W0%Z#WL__])BWPD ++M.$B%_W0%Z"[L__]%BVPD,$F+?"0H187M=#%!C47_3(L\QTF)Q4V%_W3K28L_ ++M2(7_=`7H`NS__TR)_[X0````Z-7J__])BWPD*.O*2(7_=`7HY.O__[XH`0`` ++M3(GWZ+?J___IZ_W__TB+?9!(A?]T!>C$Z___2(M]@$B%_P^%'/[__^E9_O__ ++M2(M%R&1(*P0E*````'4%Z,[M___HF>K__TB+?9!,BW6`2(7_#X3E_?__Z(/K ++M___IV_W___,/'OI(B</I&?[__TR)_^@:,`$`Z3C]__^02(N],/___TB%_P^% ++M'00``$R)Y^A<Z/__@WLP``^$@@(``(![&@`/A9$"``"^`0```$B)W^A;_`$` ++M08G'A<!TV.@/[/__Z2UK`@!!C4;_3(L\QTF)QDV%_W0@28L_2(7_#X5*!0`` ++M3(G_OA````#HT>G__TB+NZ@```!%A?9URTB%_P^%]00``$B+NY@```!(A?\/ ++MA>\$``!(B[N(````2(7_#X7I!```2(M[>$B%_P^%Y@0``$B+>W!(A?\/A>,$ ++M``!,BWMH387_#X2^````28L'2(T5&T<#`$B+0!!(.=`/A=0$``!!@Z\@`0`` ++M`4V-=_`/A94```!F#V^U\/[__V8/;[W@_O__2(T%E8T%`$F+OU@!``!)B4<0 ++M00\1=_!!#Q$_2(7_#X6B!```28N_2`$``$B%_P^%G`0``$F+OS@!``!(A?\/ ++MA98$``!)B[\H`0``2(7_#X60!```28N_$`$``$B-!;J+!0!)B4<02(7_#X5_ ++M!```28U_&.@40`,`OL@!``!,B??HM^C__TB+6UA(A=L/A+<```!(BP-(C15@ ++M1`,`2(M`$$@YT`^%$P0``(.K,`$```$/A9,```!F#V^M\/[__V8/;[7@_O__ ++M2(T%SXP%`$B+NV@!``!(B4,@#Q$K#Q%S$$B%_P^%$`0``$B+NU@!``!(A?\/ ++MA0H$``!(B[M(`0``2(7_#X4$!```2(N[.`$``$B%_P^%_@,``$B+NR`!``!( ++MC07VB@4`2(E#($B%_P^%[0,``$B->RCH4#\#`+[(`0``2(G?Z//G__^^"`(` ++M`$R)[^CFY___2(U]P.B-P0$`2(V]2/___^BM\___2(N]V/[__TB+!_]0$$B- ++MO2#___]!OPX`!X#HXET"`$R)Y^C:Y?__Z+7I___I3&0"`$B+1<AD2"L$)2@` ++M``!U!>@<Z?__Z*?G__^^`@```$B)W^@ZW@$`Z6K]___S#Q[Z28G$Z'GI__]( ++MC;TH____Z-'S__](C;T(____Z.'Q__](C042BP4`2(N=$/____,/?AV3D04` ++M\P]^)9.1!0!F2`]NZ$B#P&AF2`]N\&8/;-UF#VSF#RF=\/[__P\II>#^__]( ++MA=L/A"#___](BP-(C15,N0(`2(M`$$@YT`^%S@```(-K&`%,C6OX#X7[_O__ ++M2(T%ZHL%`$B+N^`!``#S#WX%$Y$%`&9(#V[X2(/`8&8/;,=F2`]NZ`\10_CS ++M#WX%_9`%`&8/;,4/$4,(2(7_=`7HN^?__TR+L[`!``!(C15];`$`28L&2(M` ++M$$@YT`^$G````$R)]__01(NSJ`$``$B+NZ`!``!%A?8/A,4```!!C4;_3(L\ ++MQTF)QDV%_W3G28M_.$B%_W0%Z&/G__],B?^^2````.@VYO__2(N[H`$``.O# ++M\P\>^DF)Q.FX_O__2(G?_]#I,?[__XN%//___S'VC5`!2,'B`NC3Y/__2(N] ++M,/___S'`B84X____2(7_#X2W^___Z`;G___IK?O__T&#;@@!#X5>____28M^ ++M&$B-!6-_!0!)B09(A?]T!DB+!_]0$$F+?A!(A?]T!DB+!_]0$+XX````3(GW ++MZ*'E___I)/___TB%_W0%Z++F__]$B[.(`0``2(N[@`$``$6%]G0S08U&_TR+ ++M/,=)B<9-A?]TZTF+/TB%_W0%Z(+F__],B?^^$````.A5Y?__2(N[@`$``.O( ++M2(7_=`7H8N;__TB+NW@!``!(A?]T!DB+!_]0$$B+NV`!``!(A?]T!>@_YO__ ++M2(N[6`$``$B%_W0&2(L'_U`02(N[(`$``$B%_W0%Z!SF__](B[L(`0``2(7_ ++M=`7H"^;__TB+N\````!(A?]T!>CZY?__1(NSL````$B+NZ@```#I_?K__^CB ++MY?__Z0'[___HV.7__^D'^___Z,[E___I#?O__^C$Y?__Z1#[__](BP?_4!#I ++M$OO__^BOY?__Z:SZ__],B?__T.G)^___2(G?_]#I@_S__^B1Y?__Z53[___H ++MA^7__^E:^___Z'WE___I8/O__^ASY?__Z6;[___H:>7__^EW^___Z%_E___I ++MYOO__^A5Y?__Z>S[___H2^7__^GR^___Z$'E___I^/O__^@WY?__Z0G\___H ++M/>+__^@8YO__N`X`!X#I(8T"`.@IXO__Z`3F__^X#@`'@.E=C0(`\P\>^E5( ++MB>5!54%428G\4U&+7PA)BSPDA=MT+(U#_TR++,=(B<--A>UTZ4F+?0!(A?]T ++M!>C1Y/__OA````!,B>_HI./__^O,2(7_=`Q:6T%<05U=Z;'D__]86T%<05U= ++MPY#S#Q[Z54B)Y4%505132(G[442+9QA(BWL0187D="Y!C40D_TR++,=)B<1- ++MA>UTYDF+?0!(A?]T!>AKY/__OA````!,B>_H/N/__^O)2(7_=`7H4N3__TB+ ++M.TB%_W0,6EM!7$%=7>D^Y/__6%M!7$%=7<-,B>_H@N___TB)W^@VX?__NPX` ++M!X#H#.7__^G$C@(`2(M]P$B%_W0%Z`GD__](BT789$@K!"4H````=2U(B=_H ++M4N7__TB+?<!(A?]T!>CDX___2(M%V&1(*P0E*````'4-2(G?Z"WE___HR.+_ ++M_^C#XO__D$B+1>AD2"L$)2@```!U.NC\Z___\P\>^DB)PTB+?=!(A?]T!>B9 ++MX___2(U]P.A`*`$`2(G?Z)C@___H<^3__[@.``>`Z5>0`@#H=.+__TB+1>AD ++M2"L$)2@```!U!>BNZ___Z%OB___S#Q[Z2(G#Z[GS#Q[Z54B)Y5-(B?M12(M_ ++M*$B%_W0%Z#?C__](BWL82(7_=`A:6UWI)N/__UA;7<-(BWVP2(7_=`7H%./_ ++M_TB+1<AD2"L$)2@```!U5TB)W^A=Y/__2(M]L$B%_W0%Z._B__](BT7(9$@K ++M!"4H````=2U(B=_H..3__TB+?;!(A?]T!>C*XO__2(M%R&1(*P0E*````'42 ++M2(G?Z!/D___HKN'__^BIX?__Z*3A___S#Q[Z5;\$````2(GEZ!+@__](BS6; ++MK@4`,=+'`)].`@!(B<?HJ^/__Y#HI>3__^C=[?__2(M%R&1(*P0E*````'5$ ++MZ(SD__](BT7(9$@K!"4H````=2OHM>W___,/'OI,B>=(B</HB?X!`$B+1<AD ++M2"L$)2@```!U$DB)W^B"X___Z!WA___H&.'__^@3X?__D.@]Y/__D)#S#Q[Z ++M2(G#2(V],/___^B(N@$`2(V]N/[__^BH[/__2(N]$/[__^@$[?__2(N]@/[_ ++M_TB%_W0%Z,_A__](BWVX2(7_=`7HP>'__TB+?:!(A?]T!>BSX?__2(M]F$B% ++M_W0%Z*7A__](BWV02(7_=`7HE^'__TB+?8A(A?]T!>B)X?__2(M]@$B%_W0% ++MZ'OA__](B[UX____2(7_=`7H:N'__TB+O7#___](A?]T!>A9X?__2(N]8/__ ++M_TB%_W0%Z$CA__](B[U0____2(7_=`7H-^'__TB+O4C___](A?]T!>@FX?__ ++M2(M%R&1(*P0E*````'4(2(G?Z&_B___H"N#__TB+1<AD2"L$)2@```!U&>AC ++M[/__2(M%R&1(*P0E*````'4>Z$_L___HW=___TB+1<AD2"L$)2@```!U(NCY ++MXO__Z,3?___S#Q[Z28G$2(L#2(G?3(GC_U`0Z:C^___HI]___TB->TCH'O@! ++M`$B->T#HE>K__[XH`@``2(G?Z&C?__](BT7H9$@K!"4H````=0A,B??HT>'_ ++M_^ALW___2(N[$`$``$B%_W0%Z%O@__](B[O(````2(7_=`7H2N#__TR)YTV) ++M[.B7^___2(N[D````$B%_W0%Z"[@__](B[N`````2(7_=`7H'>#__TB->WCH ++M:.O__TR+:W!-A>UT*DF+10!(C160/`,`2(M`$$@YT`^%X0```$&#K2`!```! ++M38UU\`^$V0```$B+>V#HN"D$`$R)Y^@PX?__2(N[N`$``$B+!_]0$$2+L[`! ++M``!(B[NH`0``187V=#1!C4;_3(L\QTF)QDV%_W3K28M_.$B%_W0%Z)+?__], ++MB?^^2````.AEWO__2(N[J`$``.O'2(7_=`7H<M___TB-NX@!``#HUN4``$B- ++MNX`!``#HRNC__TB+NV@!``!(A?]T!>A)W___2(V[8`$``.BMZ/__2(N[*`$` ++M`$B%_W0%Z"S?__](B[L0`0``2(7_#X3!_O__Z!??___IM_[__TR)[__0Z2?_ ++M__](C06I@04`28N]6`$``/,/?@5JB04`9D@/;MA(@\!H9@]LPV9(#V[@2(/` ++M,$$/$47P\P]^!4^)!0!)B4409@]LQ$$/$44`2(7_=`7HN-[__TF+O4@!``!( ++MA?]T!>BGWO__28N].`$``$B%_W0%Z);>__])B[TH`0``2(7_=`7HA=[__TF+ ++MO1`!``!(C04W@`4`28E%$$B%_W0%Z&G>__])C7T8Z)`T`P"^R`$``$R)]^@S ++MW?__Z6W^__](BWVP2(7_=`7H0-[__TB+?:!(A?]T!>@RWO__2(M%R&1(*P0E ++M*````'4(2(G?Z'O?___H%MW__TB+?:!(A?]T!>@(WO__2(M%V&1(*P0E*``` ++M`'4(2(G?Z%'?___H[-S__^CWVO__Z-+>__^X#@`'@.F8P@(`O@@!``!,B??H ++MJ]S__TB+1<AD2"L$)2@```!U($B)W^@4W___2(U]P.BKY___2(M%R&1(*P0E ++M*````'3@Z)?<__^02(M%R&1(*P0E*````'5*Z++?__](BWV02(7_=`7H=-W_ ++M_TB+O7#___](A?]T!>ACW?__2(M]@$B%_W0%Z%7=__](B=]!OPX`!X#H5]K_ ++M_^@RWO__Z2K+`@#H.-S___,/'OI(B<-(BWV@2(7_=`7H(]W__TB+?9!(A?]T ++MIDB+!_]0$.N>3(G_Z`KG___KE$B+1<AD2"L$)2@```!U%.@DW___OA````!, ++MB??HQ]O__^NTZ.#;__](C;UH____Z-3F___KH;X(`0``3(GWZ*7;___KDDB+ ++M1<AD2"L$)2@```!U&>C?WO__2(M%R&1(*P0E*````'4DZ,O>___HEMO__TR) ++M]^B.YO__OC````!,B??H8=O__^E+____Z'?;__](BWVP2(7_=`7H:=S__TB+ ++M1<AD2"L$)2@```!U+4B)W^BRW?__2(M]L$B%_W0%Z$3<__](BT7(9$@K!"4H ++M````=0U(B=_HC=W__^@HV___Z"/;__^02(M%R&1(*P0E*````'5(Z";@__], ++MB?_HMB`!`$B+1<AD2"L$)2@```!U)TB)W^A/W?__3(G_Z)<@`0!(BT7(9$@K ++M!"4H````=1)(B=_H,-W__^C+VO__Z,;:___HP=K__Y!!O@5``(#I6O$"`$B+ ++M1<AD2"L$)2@```!U#NC1W?__\P\>^DB)P^MKZ)/:__](C;U@_O__Z*GB__]( ++MB[U`_O__2(7_=`7H=MO__TB+O1C___](A?]T'>AEV___ZQ9)C7T0Z'SB__^^ ++M:````$R)[^@MVO__2(N],/[__TB%_W0XZ#S;___K,;Y(````3(GOZ`W:__], ++MB??H)=O__TB+O6#^__](A?\/A8(```!(C;U0_O__Z'GA``!(B[T@_O__2(7_ ++M=`7H^-K__TB-O1#^___H7.3__TB)W^CTU___0;P.``>`Z,G;___I7-8"`/,/ ++M'OI(C;U0_O__2(G#Z./A__](B[V8_O__2(7_#X2!`0``Z*S:__^+O6#^__^# ++M__\/A!;____HJ-S__^D,____Z([:___I=/___[X0````3(GOZ%S9__](B[U0 ++M_O__2(7_#X1C____Z&?:___I6?___TB+O;#^__](A?\/A>C^___I`/___[X0 ++M````3(GOZ"#9__](B[VP_O__2(7_#X0X____Z"O:___I+O___TB+O6#^__]( ++MA?]T!>@5VO__2(N]4/[__TB%_P^$C_[__^@`VO__Z87^__](B[VP_O__2(7_ ++M#X3&_O__Z.;9___IO/[__TB+1<AD2"L$)2@```!U#NC]V___\P\>^DB)P^N$ ++MZ+_8__],B??HM]G__^D\_O__2(N]8/[__TB%_W0%Z*'9__](B[U0_O__2(7_ ++M#X0*_O__Z(S9___I`/[__TB+1<AD2"L$)2@```!U!>AKX/__Z&[8__](B[T@ ++M_O__2(7_#X1F_O__Z%G9___I7/[__TB+O9C^__](A?\/A9/^___ID_[__TF+ ++M10!,B>__4!#IX_W__XN]8/[__^F(_O__D%5(B>532(G[44B+?RA(A?]T!>@- ++MV?__2(M[&$B%_W0(6EM=Z?S8__]86UW#2(M]H$B%_W0%Z.K8__](BT7(9$@K ++M!"4H````=0A(B=_H,]K__^C.U___2(N],/___TB%_W0%Z+W8__](BT7(9$@K ++M!"4H````=0A(B=_H!MK__^BAU___2(L%@NP%`$B%P'0.54B+.$B)Y>C9U___ ++M7</#54B)Y4%428G\4^C6____2(L=4.P%`$B%VW0P2(L+N@(```"^`0```$B- ++M/7"-!`#H,MK__TB+,TR)Y^AGU___2(G?6T%<7>E+]```6T%<7<-(BWL82(7_ ++M=`7H*-C__TR)]^B`V?__Z#/<__^02(M]L$B%_W0%Z`S8__](B=_HA-?__TB+ ++M?9!(A?]T!>CVU___3(GOZ`[6__](BT789$@K!"4H````=0A(B=_H-]G__^C2 ++MUO__2(N],/___TB%_W0%Z,'7__](BT7(9$@K!"4H````=0A(B=_H"MG__^BE ++MUO__D$R)Y^B\U?__2(G?NPX`!X#HG]3__^AZV/__Z3$M`P!,B>?HG=7__TB) ++MW[L.``>`Z(#4___H6]C__^ER+0,`2(M]D$B%_W5(3(GGZ%77__](BWV@2(7_ ++M=`7H1]?__TV%[70(3(GOZ#K7__](BWV`2(7_=`7H+-?__TB+1<AD2"L$)2@` ++M``!U#TB)W^AUV/__Z!#7___KL>@)UO__2(M%R&1(*P0E*````'4%Z"79___H ++M\-7__TB+1<AD2"L$)2@```!U;>@,V?__\P\>^DB)PTB+O5#____HR=;__TB# ++MO6#___\`=`Q(B[U@____Z+/6__](@[U8____`'0,2(N]6/___^B=UO__2(M] ++MD$B%_W0%Z(_6__](BT7(9$@K!"4H````#X6(````2(G?Z-37___H;]7__TB+ ++M1:!(B858____ZZ_S#Q[Z2(G#2(N]:/___^C_&@$`3(GOZ%T+``!(@[U0____ ++M``^$</___^E?____Z#_3___H&M?__T&_#@`'@.FY3`,`\P\>^DB)PT4Q[>O$ ++M,?](B;U@____Z\%(BT7(9$@K!"4H````=0KH4//__^COU/__Z.K4__],BZUP ++M____Z9?^__](BT7(9$@K!"4H````=0[H)O/___,/'OKI8____^B\U/__2(M] ++ML$B%_P^$:/[__^BJU?__Z5[^__^02(N[Z````$B%_W0%Z)/5__](C;N8```` ++MZ#7R__](BWM(2(7_=`7H>=7__TB+>SA(A?]T!>AKU?__2(M[*$B%_W0%Z%W5 ++M__](BWL8Z%0*``!(BWL0Z&<7``!(C7L(Z$+?__](BSOH4`H``$R)Y^B2UO__ ++M2(N[L````$B%_W2?Z"'5___KF$B+?<!(A?]T!>@1U?__2(M]L$B%_W0%Z`/5 ++M__](BT789$@K!"4H````=0A(B=_H3-;__^CGT___3(N]8/___TV%_W0(3(G_ ++MZ-/4__](B[UP____2(7_=`7HPM3__TB%VW0(2(G?Z+74__](BT7(9$@K!"4H ++M````=0A,B>?H_M7__^B9T___2(N=4/___^O.3(GWZ#@9`0!(BT7(9$@K!"4H ++M````=0A(B=_HT=7__^ALT___2(M]P$B%_W0%Z%[4__](BT789$@K!"4H```` ++M=0A(B=_HI]7__^A"T___2(M%@$B%P'0)2(UX_.B@T___2(M%R&1(*P0E*``` ++M``^%O@```$B)W^AUU?__2(M]@$B%_W0%Z`?4__](BT7(9$@K!"4H````=4!( ++MB=_H4-7__TB+O4C____HE!@!`$B+A7C___](A<!T"4B->/SH/]/__TB+1<AD ++M2"L$)2@```!U#4B)W^@8U?__Z+/2___HKM+__TB+?8!(A?]T!>B@T___2(M% ++MR&1(*P0E*````'4M2(G?Z.G4__](BWV`2(7_=`7H>]/__TB+1<AD2"L$)2@` ++M``!U$DB)W^C$U/__Z%_2___H6M+__^A5TO__OP0```#HR]#__T2)($B)QTB+ ++M1<AD2"L$)2@````/A=\````QTDB--?&9!0#H5-3__TB+1<AD2"L$)2@```!U ++M'^A`U?__\P\>^DF)Q$B+O=#^__](A?]T..CXTO__ZS'H\='__TB+1<AD2"L$ ++M)2@````/A88```!,C3V'Y@4`Z`+5__^^$````$B)W^BET?__3(GG3(T]:^8% ++M`.C&S___Z$$'`P"Z%@```$B+#57F!0"^`0```$B-/5&*!`#H=-3__TR)_^B< ++M[@``OP0```#H`M#__\<`!P```$B)QTB+1<AD2"L$)2@````/A1T!```QTDB- ++M-169!0#HB-/__^A3T?__Z$[1___S#Q[Z28G$2(N]\/W__TB%_P^%C````$B+ ++MO6C]___H6_H"`$B)W^@#'`0`2(V]>/W__^BGJ@$`2(N](/W__TR)X^AXV``` ++M2(N]&/W__^ALV```2(N]@/W__TB%_W0%Z.O1__](B[V0_?__2(7_=`7HVM'_ ++M_TF)W$B-G2#^__](C;TX_O__Z*0%`P!(B=],B>/H20,#`.M_\P\>^DB)Q^GP ++M_O__Z*;1___I:O___TB+O;#^__](A?]U0$B-O9C^___H^=<``$B+O:#]__]( ++MA?]T!>AXT?__2(N]$/W__^C<UP``2(M%R&1(*P0E*````'4/2(G?Z+72___H ++M4-'__^NYZ$G0___H1-#___,/'OI(B</H*-+__TB-O9#^___H'-@``.NA\P\> ++M^DF)Q.G[_O__2(N]T/[__TB%_P^$]_[__^@)T?__Z>W^__](B[W0_O__2(7_ ++M=`7H\]#__TB-A<#]__](B84@_?__Z<G^___S#Q[Z2(G#2(N]:/W__^@]UP`` ++M2(N]4/[__TB%_W0%Z+S0__](B[TP_?__Z"#7``#IK_[__TB)W[X0````3(GC ++MZ'O/__](B[W0_O__2(7_=,+HBM#__^N[2(M%R&1(*P0E*````'4.Z*32___S ++M#Q[Z2(G#Z]#H9L___TB+.TB%_W0%Z%G0__](B=^^6````$R)X^@IS___Z7?_ ++M__](BT7(9$@K!"4H````=07H8-+__^@KS___2(L[2(7_#X63````OB````!( ++MB=_H\L[__TF+?2A(A?]T!>@$T/__28M]&$B%_W5YOC@```!,B>_HSL[__XN= ++M`/___TB+O?C^__^%VP^$I0```(U#_TR++,=(B<--A>UTZ4F+?1!(A?]T!>B\ ++MS___28M]`$B%_W0%Z*[/__],B>^^(````.B!SO__2(N]^/[__^NW\P\>^DB) ++MP^F__O__Z(?/___I8____^A]S___ZX!(BT7(9$@K!"4H````=3-(C870_O__ ++M2(F%:/W__^B)T?__OA````!,B??H+,[__TB-A=#^__](B85H_?__Z6#^___H ++M-,[__TB%_W0%Z"K/__](B[WH_O__2(7_#X3W_/__Z!7/___I[?S__[\(```` ++MZ(;,__](B<=(C058A@0`2(D'2(M%R&1(*P0E*````'4A2(LU"YL%`#'22(V= ++M(/[__^@%T/__\P\>^DF)Q.GY_/__Z,3-__](B=^^$````$R)X^B4S?__2(N] ++MT/[__TB%_P^$+/W__^B?SO__Z2+]___S#Q[Z2(G#Z]U(BT7(9$@K!"4H```` ++M=23HK=#__TB)W^AUSO__2(M%R&1(*P0E*````'4-3(GGZ+[/___H6<W__^A4 ++MS?__2(N]T/[__TB%_P^$2/S__^@_SO__Z3[\___S#Q[Z2(G#Z3+\__^_"``` ++M`.BDR___2(G'2(T%AH4$`$B)!TB+1<AD2"L$)2@```!U#DB+-2F:!0`QTN@J ++MS___Z/7,___S#Q[Z2(G#Z?[[__^_"````.A?R___2(G'2(T%,84$`$B)!TB+ ++M1<AD2"L$)2@```!U#DB+->29!0`QTNCESO__Z+#,__^^$````$B)W^B#S/__ ++MZ97Z__](B[W0_O__2(7_#X2^^___Z(G-___IM/O__TB+O3#]___H.'X"`$B+ ++MO0#^__](A?\/A"'[___H8\W__^D7^___2(N]`/___TB%_P^$(_O__^A)S?__ ++MZ1G[__](B[M8`0``2(7_=`7H,\W__TB+NT@!``!(A?]T!>@BS?__2(N[.`$` ++M`$B%_W4:3(GOZ/XC`P"^R`$``$B)W^CAR___Z=GZ___H]\S__^O?3(GWZ!TC ++M`P#KW4R)YTV)[.B\\___2(N[J````$B%_W0%Z,_,__](B[N8````2(7_=`7H ++MOLS__TB+NX@```!(A?]T!>BMS/__2(M[>$B%_W0%Z)_,__],B??H<_/__^N' ++M28L\)$B%_W5ZOB````!,B>?H7\O__TB+O6#^__](A?]T!>ANS/__2(N]4/[_ ++M_TB%_W5:2(N],/W__^C&T@``2(N]*/W__^BZT@``2(.]8/W__P!T#$B+O6#] ++M___H-,S__TB#O4C]__\`28G<#X0U_/__2(N]2/W__^@7S/__Z23\___H#<S_ ++M_^E\____Z`/,___KGTB+1<AD2"L$)2@```!U->@=SO__OP0```#H8\G__\<` ++M`4``@$B)QTB+1<AD2"L$)2@```!U$S'22(TUBI(%`.CMS/__Z+C*___HL\K_ ++M__,/'OI)B<3IN?O__TB+1<AD2"L$)2@```!U!>C#S?__Z([*__](BX7P_?__ ++M2(F%8/W__^DQ____2(N%X/W__TB)A4C]___I*/___TB+O5#^__](A?\/A/;^ ++M___H4\O__^GL_O__\P\>^DB)P^G#_O__Z*K6___HR-;__TB+.TB%_W0%Z"O+ ++M__](BWW02(7_=`7H'<O__TB+1>AD2"L$)2@```!U"$R)Y^AFS/__Z`'*__^0 ++M\P\>^DB%_W0,54B+!TB)Y?]0$%W#P_,/'OI(A?]T#%5(BP=(B>7_4!!=P\-( ++MBT7(9$@K!"4H````#X6@````Z.S,__](BT7(9$@K!"4H````=07HV,S__^BC ++MR?__3(GOZ+_5__](BT7(9$@K!"4H````=31(B=_HY,O___,/'OI(BWV@2(G# ++M2(7_=`7H;\K__TB+1<AD2"L$)2@```!U1$B)W^BXR___Z%/)__](BT7(9$@K ++M!"4H````=1GH;\S__TB+1<AD2"L$)2@```!U"NB8U?__Z";)___H(<G__^@< ++MR?__Z!?)__](BT7(9$@K!"4H````=1WH,\S__TB+1<AD2"L$)2@````/A;P" ++M``#H>]7__^CFR/__2(M%R&1(*P0E*````'4=Z&+5__](BT7(9$@K!"4H```` ++M#X5D`0``Z$K5___HM<C__TB+1<AD2"L$)2@````/A7@"``#H+=7__TB+1<AD ++M2"L$)2@```!U&>CVU/__2(M%R&1(*P0E*````'4*Z`75___H<,C__^AKR/__ ++M2(M%R&1(*P0E*````'4=Z.?4__](BT7(9$@K!"4H````#X4;`0``Z,_4___H ++M.LC__TB+1<AD2"L$)2@```!U'>BVU/__2(M%R&1(*P0E*`````^%"`(``.B> ++MU/__Z`G(__](BT7(9$@K!"4H````=5_HA=3___,/'OI(B<-(@[TX____`'0, ++M2(N]./___^C8R/__2(.]6/___P!T#$B+O5C____HPLC__TB+O>C^___H!N4! ++M`$B+1<AD2"L$)2@````/A;$```!(B=_H^\G__^B6Q___2(M%R&1(*P0E*``` ++M`'4=Z._3__](BT7(9$@K!"4H````#X5``0``Z)K*___H9<?__^CPT___Z%O' ++M___H5L?__TB+1<AD2"L$)2@```!U&>C2T___2(M%R&1(*P0E*````'4/Z+[3 ++M___H*<?__^@DQ___Z!_'__](BT7(9$@K!"4H````=1GHF]/__TB+1<AD2"L$ ++M)2@```!U..B'T___Z/+&___H[<;__TB+1<AD2"L$)2@```!U%>A&T___2(M% ++MH$B)A3C____IV_[__^C$QO__Z+_&__](BT7(9$@K!"4H````=1WH.]/__TB+ ++M1<AD2"L$)2@````/A8@```#H(]/__^B.QO__2(M%R&1(*P0E*````'49Z.?2 ++M__](BT7(9$@K!"4H````=4;H]M+__^AAQO__2(M%R&1(*P0E*````'49Z-W2 ++M__](BT7(9$@K!"4H````=3CHIM+__^@TQO__Z"_&___H*L;__^@EQO__Z"#& ++M__](BT602(F%6/___^DB_O__Z`O&___H!L;__^@!QO__D$B+1<AD2"L$)2@` ++M```/A?,```#H&,G__T4QY$4Q]D6%Y'1/08U$)/]-BRS&28G$387M=.I)BWT` ++M2(7_=`9(BP?_4!"^"````$R)[^B0Q?__Z\Q%,<E%,?9$B8WP_O__28M%`$R) ++M[_]0$$2+I?#^___KK$V%]@^%D````$B+O0#____H-='__TB#O<#^__\`=`Q( ++MB[W`_O__Z&/&__]-A?]T"$R)_^A6QO__2(.]J/[__P!T.TB+A:C^__](BW#X ++M28GT2(FU"/___TG!Y`5.C2P@3#FMJ/[__W5Y2(N]J/[__TF-="0(2(/O".@1 ++MR/__2(M%R&1(*P0E*````'4:2(G?Z%K'___H]<3__TR)]^CMQ?__Z6/____H ++MX\3___,/'OI)B<1(A=MT"$B)W^C/Q?__2(.]\/[__P!,B>,/A#G___](B[WP ++M_O__Z++%___I*/___TF+?>A)@^T@2(7_#X1M____Z)?%___I8____TB+1<AD ++M2"L$)2@```!U!>@.T?__Z'G$__](BT7(9$@K!"4H````=2KHTM#__TB+1<AD ++M2"L$)2@```!U$>CAT/__\P\>^DB)P^DT____Z$#$___H.\3___,/'OI(B</I ++MV?[___,/'OKK\DB+1<AD2"L$)2@```!U!>BET/__Z!#$__](BT7(9$@K!"4H ++M````=1GHC-#__TB+1<AD2"L$)2@```!U"NAXT/__Z./#___HWL/___,/'OKK ++MH?,/'OKKF_,/'OI(B</I8_[__TB+1<AD2"L$)2@```!U%NCBQO__2(N]0/__ ++M_^CVE@,`Z1S^___HG,/__TB+1<AD2"L$)2@```!U(.BXQO__2(N]0/___TB% ++M_P^$\_W__TB+!_]0$.GH_?__Z&C#___S#Q[Z2(N]"/___TB)P^C1S/__Z:_] ++M__](B[U`____2(7_#X2[_?__2(L'_U`0Z;#]__]-A>1T"DF+!"1,B>?_4!!( ++M@[W@_O__``^$=_W__TB+O>#^___H#,3__^EF_?__2(N]0/___^C;DP,`Z7'] ++M__](B[U`____2(7_="*+5_PQ]H/B_.B-P?__2(N%0/___TB%P'0)2(UX_.@X ++MP___2(N]&/___TB%_P^$,_W__TB+!_]0$.DH_?__2(N%Z/[__S'22(E0>$B+ ++M!"4`````#PM(BT7(9$@K!"4H````=2'HLL7___,/'OI(B[U`____2(G#2(7_ ++M#X6T_?__Z>'\___H8<+__TB+`TB)WTR)X_]0$$R+I4C___]-A>1T'$F+!"1( ++MC15^;@``2(M`$$@YT'5[08-L)"`!='I(B[U`____2(7_#X28_/__2(L'_U`0 ++MZ8W\__](BT7(9$@K!"4H````=1](C85@____2(F%`/___^@@Q?__\P\>^DB) ++MP^EU_/__Z-_!__](BT7(9$@K!"4H````=1'H6\[___,/'OI(B</I.OS__^BZ ++MP?__3(GG_]#KAD4Q[4N+?"PH28/%".@2PO__28/]*'7LOB@#``!,B>?H;\'_ ++M_^E=____2(M%R&1(*P0E*`````^%10$``$B-A6#___](B84`____Z)3$__]( ++MBT7(9$@K!"4H````#X76````2(V%8/___TB)A0#____H;L3__TB+1<AD2"L$ ++M)2@```!U!>BZS?__Z"7!___HL,W___,/'OKIX/S__^@2P?__2(M%R&1(*P0E ++M*````'4=Z([-__](BT7(9$@K!"4H````#X6^````Z%/-___HX<#__S'_2(F] ++MP/[__[\$````Z$Z____'`&@#,P%(B<=(BT7(9$@K!"4H````=6=(BS6_C04` ++M,=+HV,+__TB+1<AD2"L$)2@```!U(^@DS?__2(M%R&1(*P0E*````'4%Z!#- ++M___H>\#__^AVP/__Z''`___S#Q[ZZ3'\__](BT7(9$@K!"4H````=07HY,S_ ++M_^A/P/__Z$K`___S#Q[Z2(G#Z2W[___S#Q[Z2(G#Z;GZ___H+<#__^@HP/__ ++M\P\>^NGH^___Z$K#__],B>>^&````.CMO___2(G?Z&7"__](BT7(9$@K!"4H ++M````=07H"<7__^CLO___2(M%R&1(*P0E*````'5%Z/#$__](BT7(9$@K!"4H ++M````=3'HW,3___,/'OI(BWVP2(G#2(7_=`7HK\#__TB+1<AD2"L$)2@```!U ++M"$B)W^CXP?__Z).___^_!````.@)OO__QP"L*3,!2(G'2(M%R&1(*P0E*``` ++M`'4F2(LU>HP%`#'2Z)/!__](BT7(9$@K!"4H````#X6\`0``Z'O"___H1K__ ++M_TB+1<AD2"L$)2@````/A1H"``#HBMW___,/'OI(B[V`_O__28G$Z!O`__]( ++MA=MT"$B)W^@.P/__3(GC2(M]N$B%_W0%Z/V___](B[V8_O__Z/&___](B[TP ++M____2(7_=`7HX+___TB+O2#___](A?]T!>C/O___2(N]$/___TB%_W0%Z+Z_ ++M__](C;T`____Z"+&``!(@[W8_O__`'0,2(N]V/[__^B<O___2(M%R&1(*P0E ++M*````'5"2(G?Z.7`__](B=],B>/H>K___TB+O5#___](A?]T!>AIO___2(N] ++M0/___TB%_P^%HP```#')2(F-V/[__^EK____Z$:^__](B[U0____2(7_=`7H ++M-;___TB)W^@MO___3(GC,=)(B978_O__Z1____]%,<!,B878_O__Z1S___]( ++MB[U0____2(7_=`7H_+[__TB%VW7"Z\A(BT7(9$@K!"4H````=2OH$<'__TB+ ++MG4#___](B[U0____2(7_=-+HR;[__^O+\P\>^DB)P^F^_O__Z+:]___HL;[_ ++M_^E3____\P\>^DB+O<#^__](B</H\=G__^F7_O__Z(^]__](B=^^$````$R) ++MX^A?O?__Z7W^__]%,>U,B:W8_O__Z:W^___S#Q[Z2(N]P/[__TB)P^@(`P$` ++M3(GGZ*"<`@!,B>?HZ'0"`#'`28E$)"CI/_[__T4QY$R)I=C^___I7O[__TB+ ++M1<AD2"L$)2@```!U"NA)P/__Z!2]___H#[W__Y!(BWW`2(7_=`7H`+[__TB+ ++M1=AD2"L$)2@```!U"$B)W^A)O___Z.2\___S#Q[Z2(7_#X2+````54B-%;_7 ++M`0!(B>5!5%-(BP=(B?M(BT`02#G0=6?_3PAU9/,/?@55<04`2(T%[F(%`$R- ++M9_AF2`]NR&8/;,$/$4?X3(GGZ+W*`0!(B[L(`@``2(7_=`7H?+W__TB->T#H ++M\]0!`$B+>SA(A?]T!DB+!_]0$%M,B>>^*`(``$%<7>DSO/___]!;05Q=P\.^ ++M"`$``$R)[TR-O2#^___H%[S__TB-O>C[___HI\7__TB-O>#[___H'\?__TR) ++M_^@W@@(`2(.]$/O__P!T#$B+O1#[___H`;W__TB+O0#\__](A?\/A<\```!( ++MC;W0^___Z'77`0!(B[V@_/__2(7_#X6]````2(N]&/O__^B);0(`2(N]@/O_ ++M_^A-@P(`2(N]B/W__TB%_P^%GP```$B-O<#[___HL3$"`$B#O3#[__\`=`Q( ++MB[TP^___Z(N\__](@[V0^___`'0,2(N]D/O__^AUO/__2(M%R&1(*P0E*``` ++M`'5B2(G?Z+Z]__](B[VP_/__2(7_=`7H3;S__TB+O3#\__](A?]T!>@\O/__ ++M2(N](/S__TB%_P^$]?[__^@GO/__Z>O^___H';S__^DG____Z!.\___I.?__ ++M_^@)O/__Z5?____H_[K__TB+O;#\__](A?]T!>CNN___3(V](/[__^FK_O__ ++M2(N](/[__TB%_W0%Z-&[__](B[VP_/__2(7_=`7HP+O__TB+O3#\__](A?\/ ++MA,O^___HJ[O__^G!_O__2(M%R&1(*P0E*````'4%Z,*]___HC;K__[X0`0`` ++M3(GGZ&"Z__](B[T0_?__2(7_=`7H;[O__TB+O2#\__](A?\/A>0```!,B?_H ++M=X`"`$B+O<#Z___H2\7__TB+O<CZ___HN\/__TR+K=C[__]-A>T/A!C^__]) ++MBT4`2(T5Q+4!`$B+0!!(.=`/A6<$``!!@VT(`4V-9?@/A?']___S#WX%P&X% ++M`$B-!<EC!0!)BWTP9D@/;OAF#VS'00\11?A(A?]T!>C=NO__28M]($B%_W0% ++MZ,^Z__]%BW4828M]$$6%]@^$/`0``$&-1O],BSS'28G&387_=.=)BS](A?]T ++M!DB+!_]0$$R)_[X(````Z'.Y__])BWT0Z\:^$`$``$R)Y^A@N?__Z5S]___H ++M=KK__^D2____2(M%R&1(*P0E*````'4%Z(V\___H6+G__TB+O=#^__](A?]T ++M).A'NO__ZQU(B[T(____2(7_=`7H-+K__TB-O;C^___HUM;__TB+O6C^__]( ++MA?]T!>@7NO__2(N]6/[__TB%_W0%Z`:Z__](B[U(_O__2(7_=`7H];G__TB+ ++MO3C^___HZ>[__TB+O3#^___H^?O__TB-O2C^___HT</__TB+O2#^___HV^[_ ++M_^EI_O__2(N]T/[__TB%_W0%Z*^Y__](B[UH_O__2(7_=`7HGKG__TB+O5C^ ++M__](A?]T!>B-N?__2(N]2/[__TB%_W0%Z'RY__](B[TX_O__Z'#N__](B[TP ++M_O__Z(#[__](C;TH_O__Z%C#__](B[T@_O__Z&+N___I,/S___,/'OI(B</I ++MN_W__TB+O0C___](A?]T!>@JN?__2(V]N/[__^C,U?__Z6K___](B[WX_?__ ++M2(7_=`7H"+G__TB+O=#]__](A?]T!>CWN/__2(V]L/W__^A;OP``1(NEJ/W_ ++M_TB+O:#]__]%A>1T-D&-1"3_3(LLQTF)Q$V%[73J3(GOZ-]]`@!,B>^^$`$` ++M`.B2M___2(N]H/W__^O,2(N](/[__TB%_P^$W/O__^B4N/__Z=+[___S#Q[Z ++M2(G#2(N](/[__TB%_W0%Z'>X__](B[VP_/__2(7_#X10^___Z&*X___I1OO_ ++M_TB+A9C[__](B[B`````2(7_=`7H1;C__TB+A9C[__](BWAP2(7_=`7H,+C_ ++M_TB+A9C[__](BWA02(7_=`7H&[C__TB+A9C[__](BWA`2(7_=`7H!KC__TB+ ++MG9C[__](C7LPZ&:^``!(B=^^*`$``$R)X^C&MO__2(V%H/W__TB)A8#[___I ++M[OK__TB+A1#\__](B840^___2(N](/[__TB%_W0%Z+2W__](C86@_?__2(F% ++M@/O__^F*^O__2(N]\/K__[X(`@``Z'"V___IZOK__TB-A:#]__](B86`^___ ++MZ6OZ__](B[V@_?__2(7_=`7H9[?__TB+O8C^__](A?\/A,SZ___H4K?__^G" ++M^O__\P\>^DB)P^O=2(M%R&1(*P0E*````'4,3(V](/[__^A9N?__Z"2V___S ++M#Q[Z2(G#Z?GY__^^$````$R)[^CKM?__Z7[^__],B[6P_/__387V=!Y)BP9( ++MC14@5@(`2(M`$$@YT'4P08-N&`%-C6[P='9(BYV8^___Z7'[__](BT7(9$@K ++M!"4H````=07H[+C__^BWM?__3(GW_]#KU$R)[__0Z8_Y__](B[WP^___2(7_ ++M=`7HE;;__TB-A:#]__](B86`^___Z;GY__](A?]T!>AXMO__OE````!,B>?H ++M2[7__^E/^?__9@]OO>#Z__](C05O7@4`18NF``$``$F)1A!)B[[X````00\1 ++M?O!F#V^]T/K__T$/$3Y%A>1T0T&-1"3_2(L<QTF)Q$B%VW3J2(M[$$B%_W0% ++MZ!"V__](BSM(A?]T!DB+!_]0$$B)W[XP````Z-6T__])B[[X````Z[A(A?]T ++M!>CBM?__28N^Z````$B%_W0%Z-&U__])BWYP2(7_=`7HP[7__TF+?F!(A?]T ++M!>BUM?__28M^0$B%_W0%Z*>U__])BWXP2(7_=`7HF;7__T6+9BA)BWX@187D ++M=#%!C40D_TB+',=)B<1(A=MTZDB+.TB%_W0%Z&ZU__](B=^^$````.A!M/__ ++M28M^(.O*2(7_=`7H4;7__[XH`0``3(GOZ"2T___I8_[__TB+?;!(A?]T!>@Q ++MM?__2(M]F.C8^0``2(M%R&1(*P0E*````'4(2(G?Z'&V___H#+3__V8N#Q^$ ++M``````!FD/,/'OI5,<")P4B)Y5,/HEM=PV8N#Q^$```````/'T``\P\>^HL% ++M1L4%`(/X/W<4C5`!B14XQ04`2(T5,<,%`$B)/,+#9BX/'X0``````&:0\P\> ++M^E5(C05DR`4`2(GE05=!5D%508G]OP(```!!5%-(C1WIZ`(`2(/L2&1,BS0E ++M*````$R)=<A)B?9(B05.R`4`2(G>2(T%%,@%`$B)!47(!0#HN+/__TB#^/\/ ++MA)D```!(B=Z_#P```$F)Q.B>L___2(G#2(/X_W1)3(GV1(GOZ%I4`P!!B<5, ++MB>:_`@```.AZL___2(G>OP\```#H;;/__TB+1<AD2"L$)2@```!U.$B#Q$A$ ++MB>A;05Q!74%>05]=P[\(````Z&*Q__](B<=(C07X=`0`2(D'2(M%R&1(*P0E ++M*````'0WZ,&R___S#Q[Z2(G'2(G0ZS2_"````.@KL?__2(G'2(T%F70$`$B) ++M!TB+1<AD2"L$)2@```!UR4B+-;!_!0`QTNBQM/__2(/H`4B#^`AW$4B-%3"( ++M!`!(8P2"2`'0/O_@Z'&P__](C3UM:P0`Z,_:___H0+3__T&]`@```.D>____ ++MZ%"P__](@ST8QP4``$F)Q70C2(T])6L$`.BAVO__2(L]`,<%`$R)[NAXV0`` ++M2(G'Z"#/``#H^[/__^NY\P\>^DF)Q>L32(M]D$B%_W0%Z/*R___HW;/__TR) ++MYK\"````Z$"R__](B=Z_#P```.@SLO__2(M%R&1(*P0E*`````^%^O[__TR) ++M[^@8M/__\P\>^DF)Q>N]Z+JO__](@SV"Q@4``$F)Q72-2(T]CVH$`.@+VO__ ++M3(LU:L8%`$R)[TF+-NB?L?__3(GWZ(?.``#I8O___^A]K___28G%BP`]#@`' ++M@`^%TP$``$B-/9YS!`!!O0@```#HQ=G__^@VL___Z1K^___H3*___TB#/13& ++M!0``28G%#X0;____2(T]'6H$`.B9V?__28MU`$B+/?3%!0#H;]@``.GR_O__ ++MZ!6O__]$BRCH7-G__TR+-=;%!0!-A?9TIDF+#KH2````3(U]H+X!````2(T] ++MV6D$`.BTL___26/]3(G^Z"*T__])BS9,B?_HWK#__TR)]^C&S0``Z6;____S ++M#Q[ZZ?3^___HLZ[__TB-/>1R!`!!O0@```#H"]G__^A\LO__Z6#]___HDJ[_ ++M_TB#/5K%!0``1(LP#X2/````Z,O8__],BRU%Q04`NA(```!,C7V@O@$```!( ++MC3U0:00`28M-`.@GL___26/^3(G^Z)6S__])BW4`3(G_Z%"P__],B>_H.,T` ++M`.D3_O__Z"ZN__](C3WF:`0`28G%Z(G8__](BSWHQ`4`2(7_=!%)BW4`Z%K7 ++M``!(B<?H`LT``.C=L?__0;T'````Z;O\___HS;'__T4Q[>FN_/__\P\>^DF) ++MQ>M@Z->M__](@SV?Q`4``$F)Q0^$IOW__TB-/:AH!`#H)-C__TR+-8/$!0!) ++MBWT`28LVZ+>O__],B??HG\P``.EZ_?__/01``(!U(4B-/5]H!`!!O?\```#H ++MZ]?__^DA_O__Z%>Q___I=?W__TB#/3K$!0``=$)(C3U#:`0`Z,;7__]!BW4` ++M2(U]D$R+-1W$!0#HR.@``$B+=9!,B??HC-8``$B)Q^@TS```2(M]D$B%_W0% ++MZ!:P__]!O0(```#IP/W___,/'OKI3OW___,/'OI)B<7I]OS__V8/'T0``/,/ ++M'OI5,?9(B>5!5D%53(TMZ\`%`$%43(GO3(TE1WP%`%-(@>S0````Z%*P__], ++MB>Y,C2TH@0$`3(GB3(GOZ"VN__^+!??`!0"`+9A\!0`!@_A'=S:)PDB-#0+! ++M!0!(C1V;7@4`2(D<T8U0`8D5SL`%`(/Z2'042(T=XEX%`(/``DB)'-&)!;7` ++M!0`QP$B--<Q\!0!(C0W%8`0`#Q]$```/MA0!B`062(/``4@]``$``'7M0;@; ++M````2(T-H&`$`$B-%1G#!0!F00]NR$&X_P```$B--8=\!0!F#W#)``\IC6#_ ++M__]F00]NR$&X`0$!`68/<,D`#RE-T&9!#V[(0;C^`0``9@]PR0`/*8TP____ ++M9D$/;LA!N(````!F#W#)``\IC2#___]F00]NR$B-!2U]!0!F#W#)`$B-N0`! ++M```/*8T0____9BX/'X0``````&8/;PEF#^_`2(/!$$B#PD!F10_OTDB#QA!( ++M@\!`9D0/;[5@____9@]OT68/;_%F#V#09@]H\&8/[\`/*95P____9D0/;\IF ++M10]OWF8/;[UP____#RFU4/___V8/;YU0____9D0/8<AF#VGX9D4/;^%F10]O ++M^69$#V_'9@]IV&8/;_YF#V_S9D$/;]AF#V'X9@]R\P%F00]R]`%F#V_O9@]O ++MTV8/[]MF10_OW&8/9-EF#W+U`68/;^9F#W+T`69!#W+W$&9%#V_H9D$/<O40 ++M9@]OPV8/[]MF#V389@]OR&8/8,MF#VC#9D0/9=%F#V_99D$/8=IF00]IRF9% ++M#V_69D0/[])F1`_;VV9!#]_<9D0/V]%F#]_*9D$/Z]MF00_KRF9%#^_29D0/ ++M;^!F1`]ET&9%#V_>9D0/[]UF10]AXF9!#VG"9D4/;]%F10_;W&9!#W+R"&9! ++M#V_49D0/;V709@_?U69!#V_N9D4/Z]=F00_;W&8/[^QF00_KTV8/V^AF#]_$ ++M9@]OXV9!#^_A9D0/;]YF#^O%9D$/<O,09@]O[&9!#]O,1`\I7:!F1`]OW68/ ++M;^%F00_;U&9!#W+S&&9!#^_@9D$/V\1F1`_KVV9$#V_D9D4/;_5F10_KTV9% ++M#V_<9@]OXD0/*67`1`\I4L!F10]OT&9!#W+S&&8/[^=F00]R\@AF1`_KV0\I ++M9;!F1`]O[V9%#^O69D$/<O409@]OX&9%#^O39D0/;UVP9@_OYD0/*5+09D0/ ++M;]=F00]R\@AF00]R\QAF1`_KVF9%#^O59D4/Z]-F1`]OW$0/*5+@9D0/;]9F ++M00]R\QAF00]R\@AF1`_K5:!F1`_KV&9%#^O31`\I4O!F10]OT69!#W+R&&9% ++M#V_B9D4/;]!F00]R\AAF10_K_&9%#^OA9D4/;]IF1`]OUV9!#W+R&&9%#^OS ++M9D4/Z]A$#RE5D&9$#V_69D0/ZVV09@_K?9!F00]R\AA$#RE5@&9$#V_39@_K ++M=8!F00]R\@AF1`_KU69%#^O79D0/;_EF00]R]PA$#RF2P`,``&9%#V_79D0/ ++M;WW`9D4/Z]=F10]OSV9%#^O69D0/;W6P9D$/<O$(1`\IDM`#``!F1`]OTF9! ++M#W+R"&9%#V_&9D4/Z]9F00]R\`AF10_KU69$#V]MH&9$#^MM@$0/*9+@`P`` ++M9D0/;]!F00]R\@AF1`_KU&9%#^O59D0/;^UF00]R]0A$#RF2\`,``&8/<O40 ++M9D4/;]5F1`]OZV9!#W+U$&8/<O,89D4/Z]5F10]O[V9$#V_Y9D$/<O<09@]R ++M\1AF10_KU&9%#^O/1`\IDL`'``!F10_KRV9$#V_:9D$/<O,01`\IBM`'``!F ++M#W+R&&9%#^O#9D0/;]QF00]R\PAF#W+T$&9!#^OX9D0/;\`/*;K@!P``9D$/ ++M;_MF00]R\!!F#W+P&&9!#^OX9@_K]P\ILO`'``!F1`]O9=!F1`]OC3#___]F ++M1`]OA7#___]F1`]OO1#___]F1`]OE2#___]F10]OV69%#]789D4/Y,%F00]O ++M^&9%#V_#9D$/;_-F1`]AQV8/:?=F#^__9D$/Z]AF#^O.9@]OM5#___]F#^O= ++M#RF:P`L``&9!#V_=9@]R\Q!F#^O+#RF*T`L``&9!#V_)9@_5SF8/;^EF#V_. ++M9@_O]F9!#^3)9@]OW69%#^_)9@]AV68/:>EF#^O39D$/;]YF#^O%9D0/;[5@ ++M____9@]R\Q!F#^O$9@_KTP\I@O`+```/*9+@"P``9@]O1O!F#V_09@]OR&8/ ++M8-9F#VC.9D0/;]IF#VG79@]OV0\I59!F#^_29@]ISV8/8=]F#V30#RE=@&9$ ++M#V'?9@]O?8!$#RE=P&9$#V]%P&9!#V_>9@]O=9`/*8UP____9@_OR68/<O<! ++M9@]OI7#___]F#V3*9@]OPF8/;^]F00]R\`%F#W+V`68/[_]F00_OV&8/<O0! ++M9@]@P68/:-%F#V7X9@]OR&8/8<]F#VG'9@_O_V8/V]EF#V7Z9D$/W\AF#^O+ ++M9D$/;]YF#^_>9@_;V&8/W\9F#V_R9@]A]V8/Z\-F#VG79@]OWF9!#V_V9D$/ ++M;_YF#^_U9@_;\V8/W]UF#V_I9D0/;^MF#W+U`69!#V_>9@_OW&9$#^ON9@]O ++M\&8/V]IF#]_49D$/V^I$#RFM4/___V9$#V_:9@]R]@%F#^_]9D0/Z]MF#V_> ++M9D$/;_=F#]OQ9D$/V]IF00]OU40/*9U`____9D$/=O%F#W+R`69!#V_C9D$/ ++MV])F#W+T`69!#]OB9@_;[F8/W_=F00]O^68/Z_5F00]O[V8/V^AF1`]OQF9! ++M#V_V9D$/=NEF#^_S9@_;W68/W^YF#^OK9D$/;]UF1`]O[V9!#]O?9D0/;\UF ++M00]O[F8/=M]F#^_J9@_;TV8/W]UF00]O[F8/Z]IF00]OTV8/[^QF00_;UV8/ ++M;_-F10]OWF8/=M=F#W+V`69!#V_Y9@]R]P%F00_;\F9!#]OZ9@_;XF8/W]5F ++M00]OZF8/Z]1F00]OX&8/<O0!9D$/V^)F1`]OTF9!#W+R`69$#^_<9D0/V]5F ++M00]O[V9!#]OH9D$/=NUF#]OE9D$/W^MF10]OWF8/Z^QF00]OYV9$#^_?9D$/ ++MV^%F00]VY68/V_QF00_?XV9%#V_>9@_KYV9!#V__9D0/[]YF#]O[9D0/V_IF ++M10_O\F9!#W;]9@_;]V9!#]_[9D0/;UW`9@_K_F9!#V_W9D4/;_QF00]V]69$ ++M#]O]9@_OWV9%#^_[9D0/;YU0____9D0/V]9F00_?]F9$#V]U@&9$#^_?9D$/ ++MZ_)F10]OU&9$#]O49D0/[U609@_OUD0/*56P9D4/;]1F1`_;UV9%#^_R9D4/ ++M;]1$#REUH&9%#V_T9D0/;^%F10_;VF9$#^_E9D0/[UV`9D0/V_9F10]O[&9$ ++M#V_@9D$/[^AF1`_OY&9%#]OJ9D0/[VW`9D4/V^)F1`_O99!F00_OX69$#^^U ++M</___V8/[\UF#^_$9D0/;Y5`____9D0/[]9F#V]UT&9$#]M5T&9$#^^5</__ ++M_V9$#V_.9@]O_F9$#V_&9D0/V\UF#]O[9@]O;=!F1`_O3<!F#]OR9D0/V\1F ++M1`_O19!F#^^=4/___V8/[Y5`____9@_;S68/V\5F00]OX68/[WV`9@_;W68/ ++MV]5F00]O[68/<O489@]R]!!F#^^U</___V8/Z^5F00]O[V8/<O4(9@_KZ68/ ++MZ^5F00]O[`\I8,!F00]OX&8/<O489@]R]!!F#^OE9@]O;;!F#W+U"&8/Z^AF ++M#^OE9D$/;^L/*6#09@]OYV8/<O489@]R]!!F#^OE9@]O;:!F#W+U"&8/Z^MF ++M#^OE9D$/;^H/*6#@9@]OYF8/<O489@]R]!!F#^OE9D$/;^YF#W+U"&8/Z^IF ++M#^OE9D$/;^D/*6#P9@]OX68/<O489@]R]`AF#^OE9D$/;^]F#W+U$&9!#^OM ++M9@_KY69!#V_H#RF@P`,``&8/;^!F#W+U&&8/<O0(9@_KY68/;VVP9@]R]1!F ++M00_K[&8/Z^5F#V_O#RF@T`,``&8/;^-F#W+U&&8/<O0(9@_KY68/;VV@9@]R ++M]1!F00_KZV8/Z^5F#V_N#RF@X`,``&8/;^)F#W+U&&8/<O0(9@_KY69!#V_N ++M9@]R]1!F00_KZF8/Z^5F#V_I#RF@\`,``&9!#V_E9@]R]1!F#W+T"&9!#W+U ++M$&8/Z^5F#W+Q&&9!#V_O9@]R]1AF00_KSV9!#^OI9D$/<O$(9@_KY68/;^AF ++M10_KS68/<O409@]R\!AF#^M%L`\IH,`'``!F00]OY&9!#W+T$&9$#^O)9@]R ++M]`A$#RF(P`L``&8/Z^5F#V]ML&8/<O489D$/Z^AF00]R\`AF#^OE9@]OZV9% ++M#^O$9@]R]1!F#W+S&&9$#^O`#RF@T`<``&9!#V_C1`\I@-`+``!F00]R\Q!F ++M#W+T"&8/Z^5F#V]MH&8/<O489@_K[V8/<O<(9@_KY68/;^IF00_K^P\IH.`' ++M``!F00]OXF8/<O409@]R]`AF00]R\A!F#^OE9@]R\AAF00]O[F8/<O489D$/ ++MZ]9F#^ON9@]R]@AF#^OE9D$/Z_(/*:#P!P``9@_K7:!F#^OR#RFP\`L``&8/ ++MZ_L/*;C@"P``2#GY#X7@\___O@$```!%,?:)\$2)\0^B@>$````"2(T%%"0` ++M``^%[P(``$B-/2=2!0!(B07(L@4`3(TU^;(%`.AD[?__3(GB2(TUNK(%`$B- ++M/;-S`0!(QP6HL@4`(````$C'!:6R!0``````2,<%HK(%``````#HC:#__S'V ++M3(GWZ).B__],B>),B?9,B>_H=:#__TB-/?Y1!0#H">W__TB-/3)2!0#H_>S_ ++M_TB-/692!0#H\>S__TB-/9I2!0#HY>S__TB-/<Y2!0#HV>S__TB-!8)3!0`Q ++M]HL5&K(%`$B-B,@```!(C3T,L`4`@_H_=PZ)UH/"`4B)!/>^`0```$B#P"A( ++M.<AUY$"$]G0&B17EL04`2(T]_E(%`.B)[/__2(T]LE(%`.A][/__2(T]!E0% ++M`.AQ[/__2(T].E0%`.AE[/__,?_HOJ+__XG']]`E_P$``(D%'[(%`.BJHO__ ++M2(L%.VT%`$B+%5QM!0#&!<^T!0``QP7'M`4`_____TB+`$B+$L8%R+0%``#' ++M!<"T!0#_____2(D%G;0%``^W!=YC!`!(B16?M`4`9HD%D+0%`&:)!9FT!0!( ++MBP4";04`QP68M`4`_____TB+`$B)!8:T!0#HL>O__X/X!@^'`@$``$B-!1$_ ++M``"[!````$B-%05_!0!F#V\%_6($`$B)!1YM!0!F#V[3NP$```!(B==(B=!F ++M#V[K2(VR``0``&8/<-(`9@]P[0!FD&8/;\BY"````&8/_L(/'P!F#V_Q9@]R ++MT0%F#]OU9@]OWF8/<O,$9@_ZWF8/<O,#9@_ZWF8/<O,%9@_ZWF8/<O,"9@_^ ++MWF8/;^-F#W+T"F8/^N-F#V_<9@]R\P-F#_[>9@]R\P5F#^_+@^D!=:,/*0A( ++M@\`02#GP=8=(C350J@4`9F8N#Q^$```````/'T0``(L"2(/"!`^VR,'H"#,$ ++MCXF"_`,``$@Y\G7F2('$T````%M!7$%=05Y=PS'VN`<```")\0^BB=^!YP`` ++M`"`/A.7^__^X`0```(GQ#Z*`Y0(/A-/^__](C04D(P0`Z<[^__^)\$2)\0^B ++MB<C!Z1O!Z!PAR*@!=$1$B?$/`=")PL'H`M'J(<*`X@%T,.A!ZO__@_@&=B:X ++M!P```$2)\0^BB=[!Z0G![@4ASD"`Y@%T#$B-!1LJ!`#IN/S__TB-!=\G!`#I ++MK/S__V8N#Q^$``````#S#Q[Z,>U)B=%>2(GB2(/D\%!413'`,<E(C3TQZO__ ++M_Q4+:P4`]&8N#Q^$``````!(C3W):P4`2(T%PFL%`$@Y^'052(L%_FH%`$B% ++MP'0)_^`/'X``````PP\?@`````!(C3V9:P4`2(TUDFL%`$@I_DB)\$CY70,2(L]MFH%`.A9H/__Z&3____&!5UK!0`! ++M7<,/'P###Q^``````/,/'OKI=____P\?@`````#S#Q[Z5;@(````2(GE055! ++M5$&\`0```%-(@^P(BT\82(M7($G3Y$DYQ$P/0N!,.>)S7DB)TX/C!TB-!#-, ++M`>!(.?!R3$B+5Q!)B?U(B<9(B=?_$DB)P4B%P'0U28MU($@I\TJ-'"-)]]Q( ++MC0083"'@2(T$,$B)PDB#XOA(B4KX2(/$"%M!7$%=7<-F#Q]$``!(@\0(,<!; ++M05Q!75W##Q\`\P\>^DB%]G072(M_$$B#YOA(BW;X_V<(#Q^$``````##9F8N ++M#Q^$```````/'T``\P\>^DB#YOQ(B?E(`?Z->OPIST@Y\74RZ:0```!F9BX/ ++M'X0```````\?A```````C10/P>H"*=`E____`PT```"4B4'\2#G.='>+`4B# ++MP02-D````&R!^O___P-VTHV0````<('B````GW79!0``$'"I``#@`'7-08G` ++MB<*#X!_!ZAI!@^#@00G0C10/P>H)@^+X02G01(G"0<'@&H'B__\?`('J```0 ++M`('BX/__``G01`G`#0```)")0?Q(.<YUB4B)\,-F9BX/'X0``````/,/'OI( ++M@^;\@\($2(GX2`'^*?I(.?=R'\,/'X``````2#GQ<T.`>`?K2(U("'022(G( ++M2#GQ<RJ`>`/K2(U(!'7?BT'\C3P*P>\"*?@E____``T```#KB4'\2(G(2#GQ ++M<M;#9@\?1```2(G(PP\?0`#S#Q[Z2(/F_DF)^$B#_@)V2DR-3#?^*?H/MD\! ++M3(U'`NLQ9@\?1```#[9'`X/Q""'!@?GW````=RI-.<AS'0^V3P6#\`A(@\<$ ++M28/`!"'(//=W#4PYSW+028GX3(G`PY!)B?A!#[=`_D$/MPA)C7@"@>'_!P`` ++MP>`+"<B-##K1Z2G(B<%F#0#XP>D+9D&)`&:!X?\'9H')`/!F08E(_DPYSP^" ++M<?___^NO#Q^``````/,/'OI(@^;P@^H00;D``$LS3(T$-\'J`^L?9@\?1``` ++M#[8/1(G(2(/'$(/"`H/A'M/HB<�-U#TDY^'7B3(G`PV8/'T0``(G(2(U$ ++M@.Q(`<=F9BX/'X0```````\?`(MW`8L'2(/'!=/NT^A$C98```#V)>````!! ++M@>(````>1`G0=2N)\('*``#`_X'F``#@_B7__Q\!*=`E__\__P4``.``)?__ ++M'P$)\-/@B4?\@\$!@^$#=:CI?/___P\?`/,/'OI(B?A(@_X$=P/#9I"#P@1( ++MC70W_$F)R(LY08G308G"02G#2#GP#X.>`0``54B)Y5.+"('QZ.CHZ/;!_G1? ++M2(/`!/;%_@^$\@```,'O`DF)P??!``#^`'1,@?G___\!#X?%````2#G&#X)? ++M`0``BQB_!````(V+`````8'Y____`0^&W@```$@Y\`^#H0```(L(@?'HZ.CH ++M]L'^=:%(@\`#3(U(_TF-0?^%_W2X2#G&#X(9`0``B?G1Z8/_!'<N@_\#="F) ++MST$/MGPY_X/'`8'G_@```'0608M9_XV[`````8'_____`0^&H````(G/@\\$ ++MZY-F#Q^$``````"+"$B)QTB#P`2!\>CHZ.CVP?YT//;%_G0[]\$``/X`=#>! ++M^?___P$/ACO___](.?!RSC'_08DX2(M=^,G##Q\`T>_I7?___V8/'X0````` ++M`$B-1P-(@^@!2(/H`>D'____#Q^``````$2)URG7`?DIP4B#P`2!X?___P&! ++MZ0````&)2/SKIV8N#Q^$``````!!C1P#P>$#*=^)^-/H@\`!J/YU$+@``0`` ++MT^"-2/\Q^8G/*=^!Y____P%)C4$#@>\````!08EY_^E@____B3G#,?](@^@! ++MZ5G___\/'T0``(,_!4B)^@^'+`$``(L'2(T-2T4$`$AC!(%(`<@^_^"00`^V ++M]@MW"+@%````@\8!B7<(]D<$0`^%P````+@&````PV8/'T0``$"`_N`/A^8` ++M``"X.0```$#VYHG'9L'O"4&)^(GW0XT$P"G'N,W___]!]N!FP>@*C0R`B$(2 ++M0`^VQT$IR$$/ML@!R(/X!`^'I0```$"(>A!$B$(1ZY\/'P#&1P8`N`@```!` ++MB'<$0(3V=$IX;$"`_@%T5D"`_@)U>(!_!>!T<K@!````PP\?0`!`#[;VN`(` ++M``#!Y@@)=PS#0`^V]@MW#+@#````@\8!@'\$`(EW#`^)0/___\,/'P!`#[;V ++MN`0```#!Y@B)=PC#QD<%P.NP9BX/'X0``````$`Z=P5R$L'F$,9'!0"!Y@`` ++M'P")=PSKCK@)````PV:0\P\>^E5(B=%(B>5!5T&)]T%6055!5%-(B?M(@^Q8 ++M1(L*QT(<`````$6%R0^$G0```$N-!'](P>`'2(T4!X"Z""4````/A)X&``!+ ++MC01_0;C@````9@_OP$C!X`=(C10#QX)X)````````&9$B80#?20``,>"A"0` ++M``````!(QX*P)````````,>"["0```````!(QX0#R"0```````#'@N0D```4 ++M`0``2,>$`R`E````````2(V$`R`E```/$4`(#Q%`&,>"2"4```````!(BW-0 ++MB[N$````0;T!````2(EUH(7_=!=(BX.(````2"N#8`$``$@YQ@^#DP4``$B+ ++M01!,BTV@,?9(QT$0`````$B)19A+C01_28G#2(E%L$G!XP=*C80;>"0``$D! ++MVTB)1;A!B[MX)```2(M!"$TKB[`D``!(B460@_\)#X2S`0``,?9(BT603(ME ++MF$R)?<!(QT6H`````$F)WTB)\TC'18@`````2(E=R$4QTDR)^TF)SX/_"`^$ ++M*@8``$V%R74)187M#X18`P``C5?Z@_H!#X;,````33G4#X2K!0``2(M]N`^V ++M,$R-<`%)@\(!Z/_\__]!B8-X)```B<>#^`$/A-T!``!-A<D/A00!``!,B?E( ++MBW7(3(M]P(/X"`^%"P,``+@!````20'R2XT4?TC!X@=,B5$02(NT$R@E``!( ++M@WVH`$C'Q]S___\/E<)(#Z/'0`^2QR'Z26G_@`$``$@!WX"_?B0````/A8T% ++M``"$T@^%[`(``$P!UHF')"4``$B)MR@E``!(B[>P)```2(EUJ(/X`P^%FP4` ++M`#'2Z1\!``"0387)#X1W`@``3(GA3"G108"[?"0````/B%L!``!(A<D/A,($ ++M``!!BY.$)```3#G*2(G720]'T4@YRD@/1]%)`9.P)```*==(`=!)`=))*=%! ++MB;N$)```]]\9_X/G!T&)NW@D``#IL/[__V8/'T0``(/X!@^$]P(``$R)\(/_ ++M"0^%C/[__TB+=<A,B?E,BWW`3`'62XT$?TC!X`=(`=C'@'@D```)````2(EQ ++M$("X?B0````/A$<$``!(`;`H)0``BY"$)```QX`D)0```````$B+@+`D``!( ++MB46H,<#'01P#````A=(/A$$$``"#^`$/A#@$``!(BW6H2(M%H$@I\$@YT$@/ ++M1\*Z`P```$@!QDB)=:A(BT6H2``$``$B+=:A+C01_2,'@!TB)<2A(B;0# ++M,"4``.FO`@``#Q]$``!(BT6P2,'@!P^VA`-\)```/`$/A)$````\WP^'B0`` ++M`$V%R0^$%P$``$R)\.G#_?__#Q^``````$B+=;!(P>8'2`'>QH9^)````4B% ++MR0^%C0$``(N6@"0``(72#X5'`P``2(M-P$B-%$E(P>('2`':BXJ$)```3#G) ++M2(G/20]'R4@!BK`D```ISTDIR8FZA"0``(7_#X4V`@``QX)X)````````.DQ ++M_?__3(GY28G?2(M=R$F+D[`D``!,`=-(B5D02(72#X3V````2('Z_S\```^& ++MX0```$B+1;!(B=Y,B?M,BWW`2,'@!T@!V$B+D"@E``#'@"0E```%````2(N` ++ML"0``$@!\DB)1:A+C01_2(/J`4B#[@''01P"````2,'@!TB)<1!(B90#*"4` ++M`+H"````Z9O^__\/'X0``````$R)^4B+=<A,BWW`2XT$?TD!\D&#Y0%(P>`' ++M3(E1$$B+M`,H)0``183M#X3U`@``2(-]J``/A'T"``!F#Q]$``!+C01_2(MU ++MJ$C!X`=(`=A(B;"P)```2(MUB$B+D"@E``#'@"0E```%````2`'RZ5C___\/ ++M'T0``$B)5:A(B5V(3(MEF$B+19!,BTV@22G<2`'822G1Z>K[__]F#Q]$``"# ++M_P8/A!<!``!(BW7`2(TT=DC!Y@=(`=Z+EH`D``!(.<I(B==(#T?1B?E(`=!) ++M`=(IT8F.@"0```^$0_[__XN^>"0``.D3_?__#Q^``````$B+1;!,B?E)B=]( ++MBUW(28MW4$C!X`=,`=-,`?A(B5D02(N0L"0``$2+B(0D``!(*=9,.<X/@U;_ ++M__](@WVH`$B)WDR)^TR+?<`/A0'___](`[`H)0``2XT$?[H!````2,'@!T@! ++MV$B)L"@E``")N"0E``#'01P!````2XT$?TC!X`>)E`,@)0``2(/$6%M!7$%= ++M05Y!7UW##Q^$``````"+NG@D``#I8?S__P\?1```B[.`````13'M2(E%H(7V ++M00^5Q>E5^O__#Q^$``````#'AG@D```'````@#@`#X36_O__28GP2(MUR$R) ++M^4R+?<!!@ZB`)````4F-=#(!Z2#\__\/'T0``&GV0`D``$B-/0OS___S#WX% ++M2R@%`,:"""4```%(QX*@)````````&9(#V[/2,>"D"0```````!F#VS!@>:` ++M#P``#Q&$`U`E``#'@F@E```,````B?!(B8)P)0``2(M#&$B)@F`E``#I]OC_ ++M_P\?0`!,B?E(BW7(3(M]P+@#````Z8CZ__\/'P!(`;`H)0``N@,```#'@"0E ++M````````2(N`L"0``,=!'`,```!(B46HZ>;[__^Z`P```.G<^___3`'6OP(` ++M``#I@O[__TR)^4B+=<A,BWW`N`$```#I+/K__X32#X5?_?__2(MQ$(N7A"0` ++M`(F')"4``$@!MR@E``!(B[>P)```2(EUJ(/X`P^%4?O__S'2Z8O[___'01P# ++M````N@,```#I;_O__[@"````Z>[Y__]FD%6X_____TF)T4V+`4B)Y4%7059! ++M54%44P^V3P)$BV=`BU]8T^!,BU<01(MO.(G!BU<\]]%$(>'!X02-!`M%#[>\ ++M0@#^__],C30`08']____`'<<13';3#G&#X/\````#[8&P>((0<'E"$B#Q@$) ++MPD2)Z,'H"T$/K\<YP@^#[P```$F!PH`"``!(@W]``'11#[9/`4&[_____T0/ ++MMB],BW<80=/C1(GI0??312'C3(MG*$'3XTF-3"3_387D#X1>`P``10^V)`ZY ++M"````$0IZ4'3[$4!XT.-#%O!X0A-C11*@_L&#X<7`@``OP$```#K#X/'`2G( ++M*<J!__\```!W/XGY10^W'$H]____`'<83#G&#X/8`0``#[8.P>((P>`(2(/& ++M`0G*B<$!_\'I"T$/K\LYRG.\B<B!__\```!VP4&[`0```#W___\`=PU,.<8/ ++M@YH!``!(@\8!28DQ6T2)V$%<05U!7D%?7<,/'X``````2(/#$$$IQ2G"2(T$ ++M&T$/MQQ:08']____`'<813';3#G&<\@/MC[!X@A!P>4(2(/&`0GZ1(GOP>\+ ++M#Z_[.?H/@]P!``!)C9H`^O__0;L"````13'M1`^W(X'_____`'<83#G&#X,5 ++M`0``#[8&P>((P><(2(/&`0G"B?C!Z`M!#Z_$.<(/@]<```!(C1Q+13'V0;P( ++M````OP$```#K#P\?`(/'`2G(*<I$.>=S/(GY1`^W/$L]____`'<83#G&#X.[ ++M````#[8.P>((P>`(2(/&`0G*B<$!_\'I"T$/K\\YRG._B<A$.>=RQ$&#_0,/ ++MA^+^__]%*>:Y`P```$&-'#Z_`0```#G+#T?9P>,&@\-`ZQ`IR"G*@\<!@_\_ ++M#X?0`@``B?E(`=E%#[<D2CW___\`=Q1,.<9S2`^V#L'B",'@"$B#Q@$)RHG! ++M`?_!Z0M!#Z_,.<ISO(G(Z[\/'X0``````"G'1`^W8Q`IPH'_____``^':@$` ++M`$PYQ@^"4@$``$4QVUM!7$2)V$%=05Y!7UW#D$R+7RB+3TA,BV<83(G;2"G+ ++M23G+#X(6`0``00^V'!R_`0```$&[``$``.L5#Q]``$4QXXG(@?__````#X?] ++M_?__`=M%B=Q!C0P[02'<1`'AB<E%#[<L2CW___\`=Q1,.<9SBP^V#L'B",'@ ++M"$B#Q@$)RHG!`?_!Z0M!#Z_-.<IRKRG(*<J#QP%%B>/KJ`\?`$$I_4$/MUP" ++M&"GZ08']____`'<<13';3#G&#X.K_?__#[8^P>((0<'E"$B#Q@$)^D2)[\'O ++M"P^O^SGZ#X.O````0P^WG#(`]/__@?____\`=QM%,=M,.<8/@VW]__\/M@;! ++MX@C!YPA(@\8!"<*)^,'H"P^OPSG"#X-#`0``0;L#````Z2S]__\/'X0````` ++M`$B+3R!(@^D!Z97\__\/'P!(`U\@Z>'^__\/'X``````#[8&P>((P><(2(/& ++M`0G"B?C!Z`M!#Z_$.<(/@]````!(C5Q+$$&^"````$&\"````.F0_?__9BX/ ++M'X0``````$$I_4$/MUP","GZ08']____`'<<13';3#G&#X.[_/__#[8^P>(( ++M0<'E"$B#Q@$)^D2)[\'O"P^O^SGZ<E-!*?U!#[=$`D@I^D&!_?___P!W'$4Q ++MVTPYQ@^#?OS__P^V/L'B"$'!Y0A(@\8!"?I$B>_![PL/K_@Y^G(602G]*?I$ ++MB>]F9BX/'X0```````\?`$F-F@#V__]!NP,```!!O0P```#IG/S__P\?A``` ++M````*<<IPD&^$````$&\``$``$B!PP`"``")^.FX_/__9I`IQRG"Z[IF+@\? ++MA```````@^]`@_\##X;8^___B?G1Z8/_#7=T@^<!@^D!@\\"T^=-C91Z`//_ ++M_T&\`0```+L!````ZQ0/'P!$`>.)^(/I`0^$GOO__T6)[(G?10^W+'H]____ ++M`'<83#G&#X,N_?__#[8^P>((P>`(2(/&`0GZB<?![PM!#Z_]1XTL)#GZ<K@I ++M^"GZ1`'KZ[2->?L/'T``/?___P!W&$PYQ@^#[OS__P^V#L'B",'@"$B#Q@$) ++MRM'HB=$IP<'I'X/I`2'!*<J#[P%US+D$````Z5K___]FD(G)B=),BT=`2(GX ++M#[:,#X@````/MI07B````"G*C0Q)P>$"2`'QB=8/MK0WKP```$0/MHPWB``` ++M`$$YT70MC7;_@^H!1`^VC#>(````1"G*0XT\24B#PDS!YP)$BPR02`'/1(D/ ++M3"G'B3R02(/&3(L4L(D13"G!B0RPPP\?1```54F)^D&)\TB)Y4%505132(/L ++M&&1(BQ0E*````$B)5=B+5SB%T@^$L````$&-0P'K+V9F+@\?A```````9F8N ++M#Q^$``````!F#Q^$``````!(@\`!08N4@BP!``"%TG57B<:#^"9UZ4,/MH0: ++MB````$F+4F`QVT&#:C@!C01`2(G122M*6,'@`CG(<PI(B=-(*<-)B5I@2(M% ++MV&1(*P0E*`````^%@0(``$B#Q!A(B=A;05Q!75W#B=-)`UI`B?!$B=F+$TR) ++MUT&)E((P`0``B?)(B=[HI_[__^N[QT<X_P```$B+1TA(.T=0=`I!O`$```!F ++M1(D@13')#Q^``````$.+A(HP`0``0P^VO`J(````0\>$BC`!````````A<!T ++M*HG638M"0(G"ZP</'T0``(G*B=`QVTP!P(L(B7`$B=9FB1AFB7@"A<EUY4F# ++MP0%)@_DF=:N)5=2%T@^$I0$``$V+0D!(C4W4ZQ!F#Q]$``")$872#X2)```` ++MB=9,`<8/MWX"BU8$A?]TYDB-!'](C0R&#[=!`@'X9H,Y`'12ZU=F9BX/'X0` ++M`````&9F+@\?A```````9F8N#Q^$``````!F9BX/'X0```````\?0``Q_V:) ++M1@)FB7D"B<%(C0Q)2(T,C@^W>0(!^&:#.0!U!SW__P``=ME(C4X$A=(/A7?_ ++M__]$BTW49@\?A```````187)#X3L````1(G*3`'"#[=:`D2+2@2%VW3E@?N` ++M````=G:-BW____]!B[+$`0``2(G0P>D'08G-2XU\;0--B>Q(P><)2`'79F8N ++M#Q^$``````!F9BX/'X0``````&:02(G!B3!(!0`&``!,*<&)SD@Y^'7K08F* ++MQ`$``$2)X4N-1&T`P>$'2,'@"??92(V4`@`&``"-7`N`B=A!#[:,`J\```!! ++M#[:T"H@````YWG0JC4G_C4/_00^VO`J(````*?A(C31_2(/`3$B--+)!BSR" ++MB3Y,*<9!B32"2(U!3$&+#(*)"DPIPD&)%()%A<D/A13___]$B=A(@\!,08L4 ++M@H72#X03_?__28M:0$@!TXL308D4@NEL_?__Z'&$__^054B)Y4%7059!54%4 ++M4TB![#@"``!(BQ]D3(LL)2@```!,B6W(28G]2(M_$$2+=P)!BU48A=(/A6T! ++M``!(BX7`_?__2(F%P/W__XM#"$V+94"%P'4HZ?$!```/'X``````BT@"03G. ++M=4A(B835P/W__XM#"(U*`87`=$N)RDF-'`0/MS-(C4,"9H/^`733BT,$#[8/ ++M3`'@.@ATQF8/'T0``$B#P`8X"'7XBT@"03G.=+B)R$P!X(72#X1C`0``#[<P ++MB=%(B<-$B?!!@\8!10^V/`1F@_X!#X1F`0``BT,$3`'@1#HX=!-F+@\?A``` ++M````2(/`!D0X.'7W#[90`0^W0P*#Z@$I\"G0B<:-!!(YQ@^#H````(U$,/\Q ++MT@'V]_:-4`),C87`_?__C4'_38M-2$F-#,#K2F8N#Q^$``````!(@^@,28E% ++M4+X!````2(G'3"GC1(AX`F:),$B+,4PIYXA0`T2)<`2)6`B)?@)(C7'X3#G! ++M#X2F````2(GQ2(G#28M%4$PYR'6W08N%,`$``(7`=#1,`>"+,$&)M3`!``#K ++MIF8/'T0``$B)^+H!````Z8W^__^-!)(YQ@^2PH/"`>E=____#Q\`,?9,B>], ++MB86@_?__3(F-J/W__TB)C;#]__^(E;_]___HX_K__P^VE;_]__](BXVP_?__ ++M2(7`3(N-J/W__TR+A:#]__\/A3;___]F9BX/'X0```````\?`$B+5<AD2"L4 ++M)2@```!U)4B!Q#@"``!;05Q!74%>05]=PP^V4P/IV/[__P^W,XG1Z7'^___H ++M%X+__P\?@`````!52(GE05=!5D%5051)B?Q32(/L*$R++TR+=T!(BT\008M= ++M!$0/MD$!28G93`'S2#G+#X2`````3(U1^@^W001$BQE(B<Y-B==$B$6W22G? ++M9HE%R$BXJZJJJJJJJBI)T>]$B4VX3`^O^$2)7;Q,B57`20^Z]S]*C02]```` ++M`$N-5'\#22G'2`'230'_2"G62HT\.>A9@___3(M5P$2+7;P/MT7(1`^V1;=+ ++MC0P71(M-N$2)&6:)001!BT0D&$4/MUT",?],B77(00^W=0!%*<.%P$`/E<>- ++M1OY!`?A(C41``T'1Z$6-4`),C01!1(A1`>L49F8N#Q^$```````/'T``3#G! ++M='`/ME$'#[9!`4B#P09!*=,!^M'JB%$!00'2.=!SWD0/MCEF#VY!`DB)R.L: ++M9F8N#Q^$```````/'T0``$0/MG#[03G6<QM$BW#Z2(/H!D2)<`9$#[=P!&9$ ++MB7`*2#G#==M$B#B(4`%F#WY``DPYP760@'D!`$R+=<@/A=(````QP&9F+@\? ++MA```````2(/I!H/``8!Y`0!T\XGR@\8!00'#*<+1[F9!B54`@_H!#X3````` ++M@\(!T>HYU@^$D0```$$/MK0TKP```(G000^VA`2O````.<9T>8G!2(/!3$&+ ++M/(R%_P^$Y````(GX@^H!3`'P2(U44@-$BP!%B02,08E]!$B-/)!(B=IF9BX/ ++M'X0```````\?A```````BPI(@\`,2(/"#(E(](M*^(E(^(M*_(E(_$@Y^'7B ++MB?!(@\!,08L4A(D308M=!$6)#(1,`?-%`=I!T>M%*=IF18E5`DF)7"002(/$ ++M*%M!7$%=05Y!7UW##[9#`0\?1```@\`!0='KT>A!@_L!=_*+$TF#Q0*)]D&) ++M50`/MU,$08A%`69!B54$38EL)!!!#[:$-*\```!(@\!,08L4A(D318D,A$B# ++MQ"A;05Q!74%>05]=PXGRB<%(B=Y,B>?H#_?__T&+701,`?/I:/___P\?`/,/ ++M'OI5B=!!B=-)B?C!Z`.#P`-(B>5!5T%6055!5%.)TTB-5Q#!ZP*)!T&)V87; ++M=#!*C3R-`````#'`9F8N#Q^$``````!F+@\?A```````BPP&08E,`!!(@\`$ ++M2#GX=>]+C0Q)08/[&T*+1(K\OP$```!,C52*<$$/E\4QR4&\&P```$B--04Q ++M!`#K7@\?`(G!1`^V^,'I$$8/MCP^#[;)1`^V-`Z)P0^VQ$'!YQC!Z1@/M@0& ++M#[8,#D'!Y@@Q^`'_P>$01`GY"<B)V40)\/?'``$``$$/1?PS`H/I`4*)!(I( ++M@\($23G2=%R%R72A@_D$=>5%A.UTX(G!1`^V^,'I$$8/MCP^#[;)1`^V-`Z) ++MP0^VQ,'I&`^V!`8/M@P.0<'F$,'@",'A&$0)^0G!1(GP"<@S`KD#````0HD$ ++MBDB#P@1).=)UJ$&#^^QT;T&-0Q-)C4@@2(T]-#`$`$V-1(`D2(TU*$T%``\? ++MA```````BP%(@\$$B<)$#[;(#[;<P>@0P>H81@^V#`\/ML`/MA07#[8$!XN4 ++ME@`,``!",Q2.1`^V#!]",Y2.``0``#.4A@`(``")4?Q,.<%UM%M!7$%=05Y! ++M7UW#9@\?A```````\P\>^E5(B>5!5T%6055!5%-(B7V82(EUH$B)58!(A=(/ ++MA,,#``"+!TR-/9%,!0")1;!F9BX/'X0```````\?`$B+=9B+1;!(BWV@BU80 ++MB464BP]$BT<$C035!````$B-=(802(GXB4VPBW\(1(M(#/,/;P"-0O](]]`S ++M#D0S1@1(P>`%B<LS?@A$,TX,2`'P2(E%J.FX````#Q^``````$&-@P`"``!$ ++MBUW`08'!``,``(''``$``$&!P``"``!#BQR7,QY!@<0``P``0S,<CT&!PP`! ++M``!!,QR_0XL\AT$S'(=#BP2W,T8$0S,$IT,S!)\QQXM%O$&)^$&+/(>+1;0S ++M?@@%``,``$$S/(>+1;@%``$``$$S/(=!C84``@``03,\AXM%R$6+#(>-@0`# ++M``!$,TX,13,,AXM%Q`4``0``13,,AXM%S`4``@``13,,AP^VPTB#[B")^46) ++MRD&+%(=$B<`S5A#!Z1C!Z!B!P0`#``!!P>H8!0`#``!!@<(``P``03,4AT2) ++MR`^VQ$$SE(<`!```B?C!Z!`/ML!!,Y2'``@``$$/ML!!BP2',T8403,$CP^V ++MST$SA(\`!```1(G)10^VR<'I$$>+#(]$,TX<#[;)03.$CP`(``!`#[;/08G& ++M1(G`08L,CS-.&`^VQ$,S#)=!B=K!ZQA!,XR'``0``(GX@<,``P``0<'J$`^V ++M_$2)\$4S#)]%#[;2P>@81(G+0<'H$$2)=<Q!B<$/ML9#,XR7``@``$4/ML") ++M1<"+1<Q!B<Q$#[;I03.<OP`$``!$B6V\1`^VTD&)U4,SG(<`"```08G(#[;$ ++M1`^V=<Q!P>@0B46XB=@/MO]%#[;808G8#[;;0<'H$$'![!B)7<@/MMW!Z!C! ++MZAB)7<1%#[;`B46TBT7,0<'M$$4/MNW!Z!`/MLB)3<R)T4B+5:A(.=8/A=K] ++M__](C1WS2`4`1(E=C$2+7<!"#[8$(T(/MA0S1(E5J$2+5;0/M@P+B7V01(GO ++MP>`81(MMO$2)38@)PD(/M@0;1(M-N,'A&,'@"`G00@^V%`-$BT8$P>(0"=!" ++M#[84*T&)PT(/M@031(M5J,'@&$8/MA03"<)"#[8$"T2+38C!X`A&#[8,"PG0 ++M#[84.XM]R$'!X1@/MCP[10G*1(M-D,'B$`G0BU8("<^+3<1&#[8,"P^V#`M! ++MP>$(10G1P>$("?F+?<P/MCP[P><0"?F+?@Q$BU6,1@^V%!.+790S'DB+=:!! ++MP>(010G*03':2(M=F$2)%D0S0P1%,=A$B48$,U,(,<)(B?")5@@S>PPQSTB# ++MP!!(@VV``8E^#$B)1:`/$0,/A5?\__];05Q!74%>05]=PV9F+@\?A``````` ++MD/,/'OI(QP(`````,<!(C0V<*P0`9F8N#Q^$``````"01`^V!`%$.`0&=15( ++M@\`!2(/X$'7K2(DZ,<"#1P@!PY`QP$B-#5<K!`!$#[8,`40X#`9U(69F+@\? ++MA```````D$B#P`%(@_@0=,M$#[8,`40X#`9TZ[@"0`"`PY`/'T``\P\>^HM' ++M"(/``8E'",-FD/,/'OI(QP(`````,<!(C0T,*P0`9F8N#Q^$``````!F9BX/ ++M'X0``````&8/'T0``$0/M@0!1#@$!G452(/``4B#^!!UZTB).C'`@T<(`<.0 ++M,<!(C0VG*@0`1`^V#`%$.`P&=2%F9BX/'X0``````)!(@\`!2(/X$'3+1`^V ++M#`%$.`P&=.NX`D``@,.0#Q]``/,/'OJ+1PB#P`&)1PC#9I#S#Q[Z2,<"```` ++M`$B)\3'`2(TU:2H$`&9F+@\?A```````9F8N#Q^$```````/'P!$#[8$!D0X ++M!`%U'4B#P`%(@_@0=>M(B?A(B0(QP(-'(`'#9@\?1```,<!(C37?*00`1`^V ++M#`9$.`P!=1D/'T``2(/``4B#^!!TRT0/M@P&1#@,`73K,<!(C36B*00`9I!$ ++M#[84!D0X%`%U'4B#P`%(@_@0=>M(C4<(2(D",<"#1R`!PP\?1```,<!(C35? ++M*00`9F8N#Q^$```````/'T``1`^V'`9$.!P!=1-(@\`!2(/X$'7K2(U'$.E: ++M____,<!(C349*00`9F8N#Q^$``````!F9BX/'X0```````\?`$0/MAP&1#@< ++M`7432(/``4B#^!!UZTB-1QCI&O___[@"0`"`PV9F+@\?A```````D/,/'OI( ++MQP(`````2(GQ,<!(C34I*00`9F8N#Q^$``````!F9BX/'X0```````\?`$0/ ++MM@0&1#@$`74=2(/``4B#^!!UZTB-1^A(B0(QP(-'"`'##Q]$```QP$B--9\H ++M!`!$#[8,!D0X#`%U&0\?0`!(@\`!2(/X$'3+1`^V#`9$.`P!=.LQP$B--6(H ++M!`!FD$0/MA0&1#@4`74=2(/``4B#^!!UZTB-1_!(B0(QP(-'"`'##Q]$```Q ++MP$B--1\H!`!F9BX/'X0```````\?0`!$#[8<!D0X'`%U$TB#P`%(@_@0=>M( ++MC4?XZ5O___\QP$B--=DG!`!F9BX/'X0``````&9F+@\?A```````#Q\`1`^V ++M'`9$.!P!=1)(@\`!2(/X$'7K2(GXZ1S___^X`D``@,-F9BX/'X0``````&:0 ++M\P\>^DC'`@````!(B?$QP$B-->DG!`!F9BX/'X0``````&9F+@\?A``````` ++M#Q\`1`^V!`9$.`0!=1U(@\`!2(/X$'7K2(U'\$B)`C'`@T<0`<,/'T0``#'` ++M2(TU7R<$`$0/M@P&1#@,`749#Q]``$B#P`%(@_@0=,M$#[8,!D0X#`%TZS'` ++M2(TU(B<$`&:01`^V%`9$.!0!=1U(@\`!2(/X$'7K2(U'^$B)`C'`@T<0`<,/ ++M'T0``#'`2(TUWR8$`&9F+@\?A```````#Q]``$0/MAP&1#@<`7422(/``4B# ++M^!!UZTB)^.E<____,<!(C36:)@0`9F8N#Q^$``````!F9BX/'X0```````\? ++M0`!$#[8<!D0X'`%U$TB#P`%(@_@0=>M(C4<(Z1O___^X`D``@,-F9BX/'X0` ++M`````)#S#Q[Z2,<"`````$B)\3'`2(TUJ28$`&9F+@\?A```````9F8N#Q^$ ++M```````/'P!$#[8$!D0X!`%U'4B#P`%(@_@0=>M(C4?X2(D",<"#1Q@!PP\? ++M1```,<!(C34?)@0`1`^V#`9$.`P!=1D/'T``2(/``4B#^!!TRT0/M@P&1#@, ++M`73K,<!(C37B)00`9I!$#[84!D0X%`%U'4B#P`%(@_@0=>M(B?A(B0(QP(-' ++M&`'#9@\?1```,<!(C36?)00`9F8N#Q^$```````/'T``1`^V'`9$.!P!=1-( ++M@\`!2(/X$'7K2(U'".E;____,<!(C359)00`9F8N#Q^$``````!F9BX/'X0` ++M``````\?`$0/MAP&1#@<`7432(/``4B#^!!UZTB-1Q#I&____[@"0`"`PV9F ++M+@\?A```````D/,/'OJ+1R"#P`&)1R##9I#S#Q[ZBT<(@\`!B4<(PV:0\P\> ++M^HM'$(/``8E'$,-FD/,/'OJ+1QB#P`&)1QC#9I#S#Q[ZB?8QP(E4MV3##Q\` ++M\P\>^HGV,<")5+=,PY!FD/,/'OJ)5W0QP,-F#Q]$``#S#Q[ZB5=<,<##9@\? ++M1```\P\>^H7V#Y6'(`,``#'`P_,/'OJ%]@^5AQ@#```QP,/S#Q[ZB?9)B=!( ++MC0SWBY2WB````$B+@9@```!(*=!(BY'8````2"N1N````$@IT$F)`#'`PV9F ++M+@\?A```````\P\>^HGV28G02(T,]XM4MWA(BX&(````2"G02(N1R````$@K ++MD:@```!(*=!)B0`QP,-F9BX/'X0```````\?`/,/'OI(QP(`````,<!(C0U, ++M)`0`9F8N#Q^$``````!F9BX/'X0``````&8/'T0``$0/M@0!1#@$!G452(/` ++M`4B#^!!UZTB).C'`@T<(`<.0,<!(C0V'(P0`1`^V#`%$.`P&=2%F9BX/'X0` ++M`````)!(@\`!2(/X$'3+1`^V#`%$.`P&=.NX`D``@,.0#Q]``/,/'OJ+1PB# ++MP`&)1PC#9I#S#Q[Z2,='#``````QP,.0\P\>^E5(C4\02(GE051)B?2)UE-( ++MB?N+5PQ,B>?_4QA,*>`!0PQ;05Q=PY`/'T``\P\>^DC'`@`````QP$B-#6PC ++M!`!F9BX/'X0``````&9F+@\?A```````9@\?1```1`^V!`%$.`0&=15(@\`! ++M2(/X$'7K2(DZ,<"#1P@!PY`QP$B-#:<B!`!$#[8,`40X#`9U(69F+@\?A``` ++M````D$B#P`%(@_@0=,M$#[8,`40X#`9TZ[@"0`"`PY`/'T``\P\>^HM'"(/` ++M`8E'",-FD/,/'OI(QP(`````,<!(C0W,(@0`9F8N#Q^$``````!F9BX/'X0` ++M`````&8/'T0``$0/M@0!1#@$!G4=2(/``4B#^!!UZTB)^$B)`C'`@T<0`<-F ++M#Q]$```QP$B-#?\A!`!$#[8,`40X#`9U&0\?0`!(@\`!2(/X$'3+1`^V#`%$ ++M.`P&=.LQP$B-#<(A!`!FD$0/MA0!1#@4!G4=2(/``4B#^!!UZTB-1PA(B0(Q ++MP(-'$`'##Q]$``"X`D``@,-FD/,/'OI(QP(`````,<!(C0T,(@0`9F8N#Q^$ ++M``````!F9BX/'X0``````&8/'T0``$0/M@0!1#@$!G4=2(/``4B#^!!UZTB- ++M1_A(B0(QP(-'"`'##Q]$```QP$B-#3\A!`!$#[8,`40X#`9U&0\?0`!(@\`! ++M2(/X$'3+1`^V#`%$.`P&=.LQP$B-#0(A!`!FD$0/MA0!1#@4!G4=2(/``4B# ++M^!!UZTB)^$B)`C'`@T<(`<-F#Q]$``"X`D``@,-FD/,/'OJ+1Q"#P`&)1Q## ++M9I#S#Q[ZBT<(@\`!B4<(PV:0\P\>^L='#``````QP,-FD/,/'OI52(GE051) ++MB?2)UE-(B?N+5PQ,B>?_4Q!,*>`!0PQ;05Q=PY`/'X0``````/,/'OJ+1QB) ++M1Q0QP,.09I#S#Q[Z54B)Y4%428GTB=932(G[BU<43(GG_U,@3"G@`4,46T%< ++M7<.0#Q^$``````#S#Q[ZA=)T#H/Z!'43BQ:)T"-'''4*B5<8,<###Q]``+@! ++M0`"`PV8N#Q^$``````#S#Q[ZA=)T#H/Z!'43BQ:)T"-'%'4*B5<0,<###Q]` ++M`+@!0`"`PV8N#Q^$``````#S#Q[Z2,<"`````$B)\3'`2(G62(T51B`$`&9F ++M+@\?A```````9F8N#Q^$``````!$#[8$`40X!`)U'4B#P`%(@_@0=>M(B?A( ++MB08QP(-'*`'#9@\?1```,<!(C15?'P0`1`^V#`)$.`P!=1D/'T``2(/``4B# ++M^!!TRT0/M@P"1#@,`73K,<!(C14B'P0`9I!$#[84`D0X%`%U'4B#P`%(@_@0 ++M=>M(C4<(2(D&,<"#1R@!PP\?1```,<!(C16/'P0`9F8N#Q^$```````/'T`` ++M1`^V'`)$.!P!=1-(@\`!2(/X$'7K2(U'$.E:____,<!(C149'P0`9F8N#Q^$ ++M``````!F9BX/'X0```````\?`$0/MAP"1#@<`7432(/``4B#^!!UZTB-1QCI ++M&O___S'`2(T5:1X$`&9F+@\?A```````9F8N#Q^$```````/'P!$#[8<`D0X ++M'`%U$TB#P`%(@_@0=>M(C4<@Z=K^__^X`D``@,-F9BX/'X0``````)#S#Q[Z ++M2(/O(.ES_O__#Q\`\P\>^DB#[QCI8_[__P\?`/,/'OI(@^\0Z5/^__\/'P#S ++M#Q[Z2(/O".E#_O__D&:0\P\>^HM'*(/``8E'*,-FD/,/'OJ+1PB#P`&)1PC# ++M9I#S#Q[ZBT<0@\`!B4<0PV:0\P\>^HM'&(/``8E'&,-FD/,/'OJ+1R"#P`&) ++M1R##9I#S#Q[Z,<##9@\?A```````\P\>^C'`PY`/'X0``````/,/'OI52(GE ++M051)B?Q32(GS2(7V=`E(BP9(B??_4`A)BWPD.$B%_W0&2(L'_U`028E<)#@Q ++MP$G'1"1``````%M!7%W#9F8N#Q^$``````"0\P\>^E5(B>5!5$F)_%-(B?-( ++MA?9T"4B+!DB)]_]0"$F+?"0P2(7_=`9(BP?_4!!)B5PD,#'`2<=$)#@````` ++M6T%<7<-F9BX/'X0``````)#S#Q[Z54B)Y5-(B?M(@^P(2(M_.$B%_W0.2(L' ++M_U`02,=#.`````!(BUWX,<#)PY#S#Q[Z54B)Y5-(B?M(@^P(2(M_,$B%_W0. ++M2(L'_U`02,=#,`````!(BUWX,<#)PY#S#Q[Z54B)Y4%44TB)^TB#[!!(BW\X ++M9$R+)"4H````3(EEZ$F)S$B-3>3'1>0`````2(L'_U`8BTWD2`%+0$V%Y'0$ ++M08D,)$B+5>AD2"L4)2@```!U"4B#Q!!;05Q=P^AL:O__9F8N#Q^$``````"0 ++M\P\>^E5(B>5!5%-(B?M(@^P02(M_*&1,BR0E*````$R)9>A)B<Q(C4WDQT7D ++M`````$B+!_]0&(M-Y$@!2S!-A>1T!$&)#"1(BU7H9$@K%"4H````=0E(@\00 ++M6T%<7</H_&G__V9F+@\?A```````D/,/'OI(BT=`2(D&,<##9I#S#Q[Z2(M' ++M($B)!C'`PV:0\P\>^DC'`@`````QP$B-#1P<!`!F9BX/'X0``````)!$#[8$ ++M`40X!`9U'4B#P`%(@_@0=>M(B?A(B0(QP(-'$`'#9@\?1```,<!(C0U?&P0` ++M1`^V#`%$.`P&=1D/'T``2(/``4B#^!!TRT0/M@P!1#@,!G3K,<!(C0TB&P0` ++M9I!$#[84`40X%`9U'4B#P`%(@_@0=>M(C4<(2(D",<"#1Q`!PP\?1```N`)` ++M`(##9I#S#Q[Z2,<"`````#'`2(T-;!L$`&9F+@\?A```````9F8N#Q^$```` ++M``!F#Q]$``!$#[8$`40X!`9U'4B#P`%(@_@0=>M(C4?X2(D",<"#1P@!PP\? ++M1```,<!(C0V?&@0`1`^V#`%$.`P&=1D/'T``2(/``4B#^!!TRT0/M@P!1#@, ++M!G3K,<!(C0UB&@0`9I!$#[84`40X%`9U'4B#P`%(@_@0=>M(B?A(B0(QP(-' ++M"`'#9@\?1```N`)``(##9I#S#Q[ZBT<0@\`!B4<0PV:0\P\>^HM'"(/``8E' ++M",-FD/,/'OI(QT<8`````$B)^$B-?R!(QX?P`````````$B#Y_@I^(V(&`$` ++M`#'`P>D#\TBKPY!F9BX/'X0``````)#S#Q[Z08G138G(387)#X0M`0``1(M7 ++M%$B)\4B-5QA*C30.38G333G*#X*R````53'`2(GE05139F8N#Q^$``````!F ++M9BX/'X0```````\?`$&)PD8/MA021``4`4F)PDB#P`%).<%UZ$6-2@%,B<M% ++M.<MT.DGWTD&#ZP$QP$>-)!-.C10/9F8N#Q^$``````!!#[9,`AB(3`<82(G! ++M2(/``4PYX77J02G;2HU4&@%(B?<QP$PIST@I_@\?@``````/M@P'B`P"2(/` ++M`4@YQG7P6T2)P$%<7<,/'X0``````$6-2O\QP&8N#Q^$```````/MCP"0``\ ++M`4B)QTB#P`%,.<]U[$R)UTJ-1`D!2/??D$B)P4PIT0^V"0`(2(/``4@YQG7L ++M2`'W,<!(*?X/'T``#[8,!X@,`DB#P`%(.<9U\$2)P,-F9BX/'X0``````)#S ++M#Q[Z@_H!=0\/M@:#P`&)1Q0QP,,/'P"X5P`'@,-FD/,/'OJ#^@%U#P^V!H/` ++M`8E'##'`PP\?`+A7``>`PV:0\P\>^DC'`@````!(B?$QP$B)UDB-%;88!`!F ++M#Q]$``!$#[8$`40X!`)U'4B#P`%(@_@0=>M(B?A(B08QP(-'.`'#9@\?1``` ++M,<!(C17?%P0`1`^V#`)$.`P!=1D/'T``2(/``4B#^!!TRT0/M@P"1#@,`73K ++M,<!(C17"%P0`9I!$#[84`D0X%`%U'4B#P`%(@_@0=>M(C4<(2(D&,<"#1S@! ++MPP\?1```,<!(C17/%P0`9F8N#Q^$```````/'T``1`^V'`)$.!P!=1-(@\`! ++M2(/X$'7K2(U'$.E:____,<!(C14I%P0`9F8N#Q^$``````!F9BX/'X0````` ++M``\?`$0/MAP"1#@<`7432(/``4B#^!!UZTB-1QCI&O___S'`2(T5.1<$`&9F ++M+@\?A```````9F8N#Q^$```````/'P!$#[8<`D0X'`%U$TB#P`%(@_@0=>M( ++MC4<@Z=K^__\QP$B-%9D6!`!F9BX/'X0``````&9F+@\?A```````#Q\`1`^V ++M'`)$.!P!=1-(@\`!2(/X$'7K2(U'*.F:_O__,<!(C15)%@0`1`^V'`)$.!P! ++M=1-(@\`!2(/X$'7K2(U',.ES_O__N`)``(###Q]$``#S#Q[Z2(/O,.DC_O__ ++M#Q\`\P\>^DB#[RCI$_[__P\?`/,/'OI(@^\@Z0/^__\/'P#S#Q[Z2(/O&.GS ++M_?__#Q\`\P\>^DB#[Q#IX_W__P\?`/,/'OI(@^\(Z=/]__^09I#S#Q[ZBT<X ++M@\`!B4<XPV:0\P\>^HM'"(/``8E'",-FD/,/'OJ+1Q"#P`&)1Q##9I#S#Q[Z ++MBT<8@\`!B4<8PV:0\P\>^HM'((/``8E'(,-FD/,/'OJ+1RB#P`&)1RC#9I#S ++M#Q[ZBT<P@\`!B4<PPV:0\P\>^DB)]TB%]G0,Z>]D__\/'X``````,<###Q]$ ++M``#S#Q[Z2(GWZ11D__\/'T``\P\>^DB)]^D$9/__#Q]``/,/'OI52(GE2(/L ++M$&1(BQ0E*````$B)5?A(B?)(C7WPOH````#H]F'__X7`=1I(BT7P2(M5^&1( ++M*Q0E*````'4+R<,/'T0``#'`Z^;H/V/__V9F+@\?A```````#Q]``/,/'OJ) ++M^$B#YOQ(B?E(`?XIT(UX!$@Y\70X9@\?1```BP%(@\$$C9"X___^@>+\```# ++M=1D/R(G"B?@IR`'0)?___P,-````2`_(B4'\2#G.=<Y(B?##9BX/'X0````` ++M`/,/'OI(B?E(@^;\B=>)R$B-%#$I^(UP!$@YT7159F8N#Q^$``````!F9BX/ ++M'X0``````&9F+@\?A```````9I"+`4B#P00/R,'``@7___\`J0,``/YU%@'P ++M*<@E____`2W___\`P<@"#\B)0?Q(.<IUSDB)T,-F+@\?A```````\P\>^DB# ++MYOY(B?E(@_X&#X;+````2(U\-_HIRD@Y^7(NZ;H```!F+@\?A```````C;!_ ++M____]\:`#0``#X2V````2(/!`D@Y^0^#D0````^W`8/P$`^WP(/``:AW=!H/ ++MMT$"@_`0#[?`@\`!J'=U>$B#P0)(.?ES9Z@(=+.+,:F`#@``#X7>````08GP ++M+0@Q``!!P>@;P>`218G!08/A'40YR'-#BT$$1(T,"D'!X`=(@\$(#\A$*<A$ ++MC8@`"```#Z3P%$&!X0#P__^)0?Q'C40(%T2)0?A(.?D/@F____](B<C##Q]` ++M`$B#P03I5?___P\?@`````!$#[=!`L'F!8/H$8'F```>`"7_#P``00_(0<'H ++M#T0)QD2-!`I(@\$$1"G&08GP08'@`/`/`$0)P$&)\$'!X`M!@>````"`1`G` ++M08GPP>8)0<'@%('F```0`$&!X```X']$"<`)QHEQ_.GA_O__#Q\`1(M!!,'@ ++M"$6-2/U$,<BI`X`/`'032(/!!NG`_O__9BX/'X0``````$2)P('F`/#__T'! ++MZ!1(@\$(P>`,1`G<!``")<?R)0?CIC_[__V8/'X0``````/,/'OI52(GE ++M05=!5D%505132('L>`$``$B)O8#^__](B95X_O__9$B+!"4H````2(E%R#'` ++M2(72#X0V`P``BT<$BQ>)A:S^__^+1PB)E9#^__^)A:C^__^+1PR)A:3^__^+ ++M1Q")A:#^__^+1Q2)A9S^__^+1QB)A9C^__^+1QR)A93^__](C87`_O__2(F% ++M</[__TB-A<3^__](B85H_O__2(GP9F8N#Q^$``````"0B[VL_O__1(N5E/[_ ++M_T4QVT2+C9C^__^+G9S^__]!B?Y(B[UP_O__1(NEH/[__T2+K:3^__]$B[VH ++M_O__2(F]N/[__T2+A9#^___K%@\?0`!!B=E%B?=$B>-%B<9!B?Q!B?!$B>%$ ++MB>9(C17A$@0`0HL\&,'."\')!C'Q1(GF#\_!Q@<Q\4*+-!I(BY6X_O__`?Y" ++MB3P:28/#!`'QB=Y$,<Y$(>9$,<X!\42)QD0!T46)PL'.`D'!R@U"C3PI18G% ++M1#'618G"12'U0<'""D0QUD6)PD4)\D4A^D4)ZD6)_40!UD6)R@'.28/[0`^% ++M7____XN5_/[__T2)O;3^__^)\4R-+8D2!`!$B:6X_O__1(N]^/[__T6)](F5 ++ML/[__T2+G<#^__](B86(_O__3(N5:/[__^L@#Q\`B86P_O__BYVX_O__18G$ ++M08G(B;VX_O__B=%$B?=$B=Y$B?I%BQI$B?C!P@_!P`TQT$6)WD2)VD'![PI! ++MP<X'P<(.1#'X00-"($0Q\D6)WD&)ST'![@-$,?)$B[6T_O__1(FEM/[__P'0 ++MB?H!\(G^P<H+P<X&08E"/#'RB?[!Q@<Q\HNUN/[__S'>(?XQW@'R00-5`(G. ++M`<+!S@)!`=&)RL'*#44!SC'RB<[!Q@HQ\HG.1`G&1"'F12''28/%!$F#P@1$ ++M"?Y$B[VP_O__`?)(C35#$@0`1`'*08G923GU#X4<____`960_O__2(N5@/[_ ++M_T6)X8NUD/[__P&-K/[__TB)T40!A:C^__]$BZ6X_O__B3*+M:S^__]$`8VD ++M_O__2(N%B/[__XER!(N5J/[__P&]G/[__XN]G/[__TB#P$")40B+E:3^__]$ ++M`;6@_O__1`&EF/[__XE1#(N5H/[__XEY%(N]F/[__XE1$(EY&`&=E/[__XN= ++ME/[__TB#K7C^__\!B5D<#X4\_?__2(M%R&1(*P0E*````'422('$>`$``%M! ++M7$%=05Y!7UW#Z/9<__]F#Q]$``#S#Q[Z54B)Y4%6055!B?5!5%-+C5QM`$C! ++MXP=(`?M(@[LH)0````^$)`$``$B+LQ`E``!)B?Q(A?9T+TB+BS`E``!(.8L8 ++M)0``<UQ(BP=(B<?_4`A(QX,0)0```````$C'@Q@E````````2XU<;0!)BP0D ++M2,'C!TP!XTB)QTB+LS`E``#_$$B)QDB%P`^$W@```$B+BS`E``!(B8,0)0`` ++M2(F+&"4``$N-5&T`2,'B!TF-!!1(B;"@)```28VT%%`E``!(B8BH)```QH`) ++M)0```4$/MDPD8+@$````@/DH=V.[_____W0/B<O0Z8/C`8/!"X/+`M/C38VT ++M%(@D``!(B?$QTKX$````3(GWZ/\]`P"%P'5;N@0```!F08D62XU4;0!(P>(' ++M20'40<:$)(HD````0<:$)(LD````08F<)(PD``!;05Q!74%>7<,/'P#'@T@E ++M```!````N`$```!;05Q!74%>7<,/'X0``````%NX`@```$%<05U!7EW#9I!5 ++M2(GE4TB)^TB#[`B+3T2%R74:2(M'*(M/!"M/0$B)]T@IQT@!R$@Y^4@/0O!( ++MB=_H:^X#`(M31(72=0N+4P0Y4T!R`XE31$B+7?C)PP\?`%5F2`]NQF9(#V[* ++M9@]LP4B)Y4%53(UO($%44TB)^TR)[TB#[!@/*470Z')<___S#V]3$&8/;T70 ++M1(MC"&8/U,(/$4,0187D=2M(BP-(A<!T(P\2V&9(#W[&2(G'9D@/?MK_$(7` ++M="G'0P@*````0;P*````3(GOZ,19__](@\081(G@6T%<05U=PV8/'T0``$2+ ++M8PCKWF8N#Q^$``````#S#Q[Z58GV2(T$=DC!X`=(B>5!5T%628G^B==!54P! ++M\$%44TB#[!A(BU482(M-$$B+F$`E``!,BZ`0)0``QP$`````QP(!````A?\/ ++MA/8```"+B"`E``!(B[`X)0``20&V$`(``(E-S(N(2"4``(7)=2Z+N"0E``"# ++MY_N#_P%U($@YF#`E```/A8L```!(.[`H)0``#X5^````9@\?1```28M&<,<" ++M`````$B%P'1I38VN,`(``.LD#Q^$``````!-`?Q,*?MT:#'2,?9,B>_HC/[_ ++M_X7`=45)BT9PN@````%,B>9(B<=(.=-(#T;328G7_Q!)`8:0````23G'=,%( ++M@\08N`D```!;05Q!74%>05]=PP\?1```N`L```!(@\086T%<05U!7D%?7<,/ ++M'T``1(M]S#'`2(M-$$&#Y_U!@_\!#Y7`B0%(@\08,<!;05Q!74%>05]=PP\? ++MA```````569(#V[*9D@/;L9F#VS!2(GE059,C;?@````055)B<U!5$V)Q%-( ++MB?M,B?=(@^P0#RE%T.AG6O__9@]O1=#S#V^3T````(N3R````&8/U,(/$8/0 ++M````A=)U)4B+@\````!(A<!T&0\2V&9(#W[&2(G'9D@/?MK_$(7`=5,/'P"+ ++M@[````"%P'0)3#FKN````'(M0<<$)`````"+F\@```!,B??HEU?__TB#Q!") ++MV%M!7$%=05Y=PP\?A```````0<<$)`$```"+F\@```#KT<>#R`````H```#K ++MI`\?0`#S#Q[Z54B)Y4%6055,C6]`051,C6<84TB)^V8/'T0``$R)Y^B86?__ ++MA<!T#^LJ9I!,B>9,B>_HI5G__XM3$(72=.Z+0PR%P'4'QT,0`````$R)Y^@( ++M5___@+OH`````'4_2(L#3(VS@````$B)W_]0$$R)]^A'6?__A<!UH\=#>`$` ++M``!(C;NH````Z*!5__],B??HR%;__^N&9@\?1```6S'`05Q!74%>7<.0#Q]` ++M`/,/'OI52(GE05=)B<]!5D%528GU0513B=-(@^P83(MG$$B%R70&QP$````` ++MA=MT'$&`O"31`````'4=08N$)-0````YPP]'V(7;=7PQP.G[````#Q]$``!- ++MC70D$$R)]^BK6/__A<`/A=,```!!BTPD"(7)=1])C40D.$B)1<B02(M]R$R) ++M]NBD6/__08M4)`B%TG3K08M$)`2%P'4)0<=$)`@`````3(GWZ`%6__^%P`^% ++MB0```$'&A"31`````.EV____#Q\`08G>28NT)-@```!,B>],B?+H\E7__TT! ++MM"38````30&T).````!-A?]T`T&)'T$IG"34````#X5(____0<:$)-$````! ++M28U<)'A(B=_H]E?__X7`#X4J____08M$)&R#P`%!.40D<',O2(G?Z'=5__\Q ++MP.L1#Q\`#[?0@<H```"(A<`/3\)(@\086T%<05U!7D%?7<,/'P!!B40D;$F- ++MO"2@````Z`Y4___KO69F+@\?A```````D/,/'OI52(GE05=!5D%528G-051! ++MB=132(/L"$B+7Q!(A<ET!L<!`````$6%Y`^$G@```("[T`````!T%$B#Q`BX ++M$```(%M!7$%=05Y!7UW#2(FSV````$R-<Q!$B:/4````3(GWZ"97__^%P'1Z ++M3(US>$R)]^@65___A<!U,HM#;(7`=1U,C;N@````#Q]``$R)]DR)_^@55___ ++MBT-LA<!T[H/H`4R)]XE#;.B`5/__1"NCU````'4/QH/0`````>EW____#Q\` ++M387M=`1%B64`2(/$"#'`6T%<05U!7D%?7<-F#Q]$``#'0P@!````2(U[..@( ++M4___3(GWZ#!4___I:?___Y!F+@\?A```````\P\>^E5(B>5!5D%50513BT<( ++M1(U@_T2)9PA%A>1T$5M$B>!!7$%=05Y=PP\?1```3(MO$$B-!7WM!`!(B?M( ++MB0=-C75X3(GWZ#-6__^%P'4508M%;(/``D$Y17!S(DR)]^BZ4___2(G?OA@` ++M``#H;53__UM$B>!!7$%=05Y=PY!!B45L28V]H````.A@4O__Z\QF9BX/'X0` ++M``````\?`/,/'OI52(GE059!54%44XM'"$2-8/]$B6<(187D=!%;1(G@05Q! ++M74%>7<,/'T0``$R+;Q!(C06M[`0`2(G[2(D'2<>%V`````````!-C7400<>% ++MU`````````!,B??H?57__X7`=1E!QT4(`0```$F-?3CHV%'__TR)]^@`4___ ++M2(G?OA@```#HLU/__UM$B>!!7$%=05Y=PY!F#Q]$``#S#Q[Z54B)Y4%6055! ++M5%.+1R!$C6C_1(EO($6%[7016T2)Z$%<05U!7EW##Q]$``!)B?Q(C5\H3(UW ++M4$B+.TB#PPCHZ5/__TPY\W7O3(GGOB@#``#H1U/__UM$B>A!7$%=05Y=PV9F ++M+@\?A```````\P\>^E5(B>5!5D%50513BT<(1(UH_T2);PA%A>UT$5M$B>A! ++M7$%=05Y=PP\?1```28G\2(U?$$R-=SA(BSM(@\,(Z'E3__]).=YU[TF-?"3H ++MOB@#``#HU5+__UM$B>A!7$%=05Y=PV8/'X0``````/,/'OI52(GE059!54%4 ++M4XM'$$2-:/]$B6\0187M=!%;1(GH05Q!74%>7<,/'T0``$F)_$B-7QA,C7=` ++M2(L[2(/#".@)4___23G>=>])C7PD\+XH`P``Z&52__];1(GH05Q!74%>7<-F ++M#Q^$``````#S#Q[Z54B)Y4%6055!5%.+1QA$C6C_1(EO&$6%[7016T2)Z$%< ++M05U!7EW##Q]$``!)B?Q(C5\@3(UW2$B+.TB#PPCHF5+__TDYWG7O28U\)/B^ ++M*`,``.CU4?__6T2)Z$%<05U!7EW#D`\?A```````\P\>^E5(B>532(/L"(M? ++M"(/K`70+B5\(B=A(BUWXR<.^(````.BV4?__B=A(BUWXR<-F9BX/'X0````` ++M``\?`/,/'OI52(GE4TB#[`B+7PB#ZP%T"XE?"(G82(M=^,G#OA@```#H=E'_ ++M_XG82(M=^,G#9F8N#Q^$```````/'P#S#Q[Z54B)Y5-(@^P(BU\0@^L!=`N) ++M7Q")V$B+7?C)P[XH````Z#91__^)V$B+7?C)PV9F+@\?A```````#Q\`\P\> ++M^E5(B>532(/L"(M?"(/K`70+B5\(B=A(BUWXR<-(@^\(OB@```#H\E#__XG8 ++M2(M=^,G#9BX/'X0``````/,/'OI52(GE0513BT<H1(U@_T2)9RA%A>1T#42) ++MX%M!7%W##Q]$``#S#WX%L.D$`$B-!<'F!`!(B?MF2`]NR$B#P&AF#VS!9D@/ ++M;M!(@\`P#Q$'\P]^!8WI!`!(B4<@9@]LP@\11Q!(BW\PZ`!1__](BWLX2(7_ ++M=`9(BP?_4!!(B=^^2````.A44/__1(G@6T%<7<-F9BX/'X0``````)#S#Q[Z ++M54B)Y4%505132(/L"(M'"$2-8/]$B6<(187D=`](@\0(1(G@6T%<05U=PY#S ++M#WX%".D$`$B-!1GF!`!(B?M,C6_@9D@/;LA(@\!H9@]LP69(#V[02(/`,`\1 ++M1^#S#WX%X.@$`$B)!V8/;,(/$4?P2(M_$.A44/__2(M[&$B%_W0&2(L'_U`0 ++M3(GOOD@```#HJ$___TB#Q`A$B>!;05Q!75W#9BX/'X0``````/,/'OI52(GE ++M055!5%-(@^P(BT<01(U@_T2)9Q!%A>1T#TB#Q`A$B>!;05Q!75W#D/,/?@58 ++MZ`0`2(T%:>4$`$B)^TR-;^AF2`]NR$B#P&AF#VS!9D@/;M!(@\`P#Q%'Z/,/ ++M?@4PZ`0`2(E'"&8/;,(/$4?X2(M_&.BC3___2(M[($B%_W0&2(L'_U`03(GO ++MOD@```#H]T[__TB#Q`A$B>!;05Q!75W#9@\?A```````\P\>^E5(B>5!54%4 ++M4TB#[`B+1QA$C6#_1(EG&$6%Y'0/2(/$"$2)X%M!7$%=7<.0\P]^!:CG!`!( ++MC06YY`0`2(G[3(UO\&9(#V[(2(/`:&8/;,%F2`]NT$B#P#`/$4?P\P]^!8#G ++M!`!(B4<09@]LP@\1!TB+?R#H]$[__TB+>RA(A?]T!DB+!_]0$$R)[[Y(```` ++MZ$A.__](@\0(1(G@6T%<05U=PV8N#Q^$``````#S#Q[Z54B)Y4%505132(/L ++M"(M'($2-8/]$B6<@187D=`](@\0(1(G@6T%<05U=PY#S#WX%^.8$`$B-!0GD ++M!`!(B?M,C6_X9D@/;LA(@\!H9@]LP69(#V[02(/`,`\11_CS#WX%T.8$`$B) ++M1QAF#VS"#Q%'"$B+?RCH0T[__TB+>S!(A?]T!DB+!_]0$$R)[[Y(````Z)=- ++M__](@\0(1(G@6T%<05U=PY`/'X0``````/,/'OI52(GE4TB#[`B+7Q"#ZP%T ++M"XE?$(G82(M=^,G#OA@!``#H5DW__XG82(M=^,G#9F8N#Q^$```````/'P#S ++M#Q[Z54B)Y5-(@^P(BU\(@^L!=`N)7PB)V$B+7?C)PTB#[PB^&`$``.@23?__ ++MB=A(BUWXR<-F+@\?A```````\P\>^E6_*`,``$B)Y>C>3/__9@_OP+D```0` ++M2(T5[N0$``\10$AF2`]NRDB#PF`/$4`H9D@/;M(/$4`X#Q%`5&8/;L%F#W#` ++M``\10&3S#WX%N^4$`,=`(`````!F#VS!QT!T```$``\1`/,/?@6FY00`QH`@ ++M`P```&8/;,(/$4`07<-F9BX/'X0``````&:0\P\>^E6_(````$B)Y>A.3/__ ++M2(T5W^,$`$B-#>"R__](B1!(QT`(`````,=`$`````!(B4@87<,/'X0````` ++M`/,/'OI5OQ@```!(B>7H#DS__TB-%6?C!`!(C0T`Z?__2(D02,=`"`````!( ++MB4@07<-F9BX/'X0```````\?0`#S#Q[Z5;\8````2(GEZ,Y+__](C14GXP0` ++M2(T-H+'__TB)$$C'0`@`````2(E($%W#9F8N#Q^$```````/'T``\P\>^E6_ ++M&````$B)Y>B.2___2(T5Y^($`$B-#4"P__](B1!(QT`(`````$B)2!!=PV9F ++M+@\?A```````#Q]``/,/'OI5OQ@```!(B>7H3DO__TB-%:?B!`!(C0UPL/__ ++M2(D02,=`"`````!(B4@07<-F9BX/'X0```````\?0`#S#Q[Z5;\8````2(GE ++MZ`Y+__](C15GX@0`2(T-8.C__TB)$$C'0`@`````2(E($%W#9F8N#Q^$```` ++M```/'T``\P\>^E6_*````$B)Y>C.2O__2(T5]^$$`/,/?@7OXP0`2(T-J*[_ ++M_V9(#V[*2(E((&8/;,$/$0!F#V\%$`X$``\10!!=PV8N#Q^$``````#S#Q[Z ++M5;\H````2(GEZ'Y*__](C16GX00`\P]^!9_C!`!(C0U(Z/__9D@/;LI(B4@@ ++M9@]LP0\1`&8/;P70#00`#Q%`$%W#9BX/'X0``````/,/'OI5OT@```!(B>7H ++M+DK__TB-%4_@!`#S#WX%+^,$`&9(#V[*2(/":,=`*`````!F#VS!9D@/;M)( ++MC4HP2,=`0``````/$0#S#WX%!^,$`$B)2"!F#VS"#Q%`$&8/[\`/$4`P7<-F ++M#Q^$``````#S#Q[Z5;\8`0``2(GEZ+Y)__^Y(P```/,/?@7IX@0`2(G",<!( ++MB=?S2*M(BP4G#00`2(E"$$B-!33?!`!F2`]NR$B)T&8/;,$/$0)=PY!FD%5( ++MB>5!5T2-?@%!5D%5051!B?132(G[3(G_2(/L".@M1___3(LSBU,(3(GY2(G' ++M28G%3(GV2(/"`>B22___3(GWZ&I*__],B2M$B6,,2(/$"%M!7$%=05Y!7UW# ++M#Q]``%5(B>5!5D%508GU051$C68!4TG!Y`)(B?M,B>?HST;__TB+,TR)X4F) ++MQHM#"$C!Z0),B?>-4`'H1$C__TB+.TB%_W0%Z`=*__],B3-$B6L,6T%<05U! ++M7EW##Q^``````%5(B>5!54%428G\4TB)\TB#[`B+!T2++H7`=#R#^"IT/X/X ++M/W0:1#GH=!HQP$B#Q`A;05Q!75W##Q^$``````!%A>UTYDF#Q`1!BP0D2(/# ++M!$2+*X7`=<1%A>T/E,#KS4F-?"0$2(G>Z)/___^$P'6\187M==/KM0\?A``` ++M````\P\>^E5(B>5!5T%6055!5%-(@>R(````2(FU:/___TR)A5C___],B4V` ++M9$R+#"4H````3(E-R$R+31B#^00/A1T,``"#?1`!#X43#```3(E-F$B)^TF) ++MU44Q]DR-9;#K*`\?@`````!(BT6P2(7`=&E*B41S*$:)?#-028/&!$F#_A0/ ++MA(````!&BWPS9+@$````2HM\<RA!@^?\03G'1`]"^$B%_W051CM\,U!TS.@L ++M2/__2L=$<R@`````0L=$,U``````1(GZOH````!,B>?H*D;__X7`=(['18P. ++M``>`2(M%R&1(*P0E*`````^%>0L``(M%C$B!Q(@```!;05Q!74%>05]=P_,/ ++M;T,H2(V+'`$``$R+39C'@Q@!````````BQ6[]`,`2(G(2(VS(`,```\1@[@` ++M```/$8/8````\P]O0S@/$8/(````#Q&#Z````&8/[\`/$4-X#Q&#B`````\1 ++M@Y@````/$8.H````9@]O!5<*!``/$8,(`0``B1!(@\`,B5#XB5#\2#GP=>_S ++M#WY#2$B-?<`Q]C'`2,=%N`````!F#VS`QT6,`````$C'19``````2(E]F$R) ++MK5#___\/$8/X````@_X%#X>?`@``9F8N#Q^$``````"0QX,(`0``"0```(N3 ++M&`$``'4YZ6$(``!F#Q^$``````!,C4<!P>((@\8!3(F#T`````^V/XFS%`$` ++M``GZB9,8`0``@_X%#X0M"```@_X!=0B%T@^%:`@``$B+N]````!(.[OP```` ++M=;C'@P@!```#````N@,```"X`P```$R-+,-(B[UH____3(TT@TF+=2A-BY6X ++M````3(L\QS'`28FUN````$F)M=@```!%BYZ(````38G<187;=!D/'X`````` ++M00^V/`)`B#P&2(/``4PYV'7N08MV>(7V#X7T````C4+_2(F=</___TR)\TV) ++M_HE5B$&)QTB)C7C___],B8U@____ZR0/'T``B=%!`=1)`8V8````A<!U-T&# ++M_`-W>D&#_P$/A]0'``"+4U!)BP9$B>9,B?=(BTV820-U*$0IXHE5P/]0&(M5 ++MP(E#>(72=;E)B=Z+58A(BXUX____2(N=</___TR+C6#___]%A>1T8X/J`8/Z ++M`7=41(GB@^(#08F6B````$&#_`-W/H7`=41!QT9X`0```.LZBU6(28G>2(N- ++M>/___TB+G7#___],BXU@____@^H!@_H!=Q!$B>*#X@-!B9:(````02G430&E ++MV````(N#"`$``$2+9(-X2(M\PRA(.;S#V`````^$90@``$6%Y'0-BT6,A<!$ ++M#T7@1(EEC$V%R71W2(M]D$B+@_@```!(*T-(2`'X2(G"2"M5N$B!^O___P!V ++M54B)1;A,B<](BW682`.#L````$B+D_````!(B8UP____2"N3T````$R)C7C_ ++M__](*=!(C56X2(E%P$F+`?]0&$R+C7C___](BXUP____A<`/A2$#``"+LQ0! ++M``"+@Q`!``"#_@4/AFW]__^+DP@!``"-<O^#_@$/ATL%``")T$B--,-(B[ZX ++M````2#N^V`````^$O?W__TB-1P1(B8:X````BX,,`0``2(NS^````(U0!(L' ++MB9,,`0``#\@IT+H$````2#FS``$``'4<Z4<'```/'X``````P>@(2#FS``$` ++M``^$@`4``(/"`4B#Q@&(1O^#^@AUX4B)L_@```"+DQ0!```/'T``@?K___\` ++M=SQ(B[/0````2#NS\`````^$HP8``,'B"(N[&`$``(F3%`$``$B-5@%(B9/0 ++M````#[86P><("?J)DQ@!``!(B[/8````2(N3N````$B+N_@```!,BX,``0`` ++M28GR22GX22G233G030]'PDF#X/Q)`=!,.<(/A:\"``!).?!U3>GV!```9@\? ++M1```00^V$,'@&$B#QP$)T(A7_X/"&('B_@````^$`00``(V0@/__\(/Z#P^& ++M\@,``$B+L]@```!)@\`!3#GN!```2#F[``$``'6U,=)).?`/E<+!X@-, ++MB<9(B;OX````2"NSN````(F3"`$```&S#`$``$R)@[@```")@Q`!``"#^@,/ ++MAC`%``!(BW-(2(N3^````$@I\@^%UP,``(M38$B+?8!(B=!(A?]T'$B+/TB% ++M_W042(L_3(M]D$PI_T@YUP]"QT@/0M=(B;/X````2`'62(FS``$``(7`#X5A ++M_?__3(NM4/___XM5C(72#X5.^O__@+L@`P````^$0?K__XN#&`$``(7`#X4- ++M!```]X,(`0``]____P^%_0,``$B+18!(A<!T%4B+`$B%P'0-2(M-D$@Y"`^% ++MWP,``$V%[71$,<!)BW1%`$B%]G0NBXP#B````$B+E$.8````2"G*2(N,0]@` ++M``!(*XQ#N````$@IRD@Y%@^%H`,``$B#P`1(@_@0=;Y(@[N@`````'4?2(N% ++M:/___S'22(U-P$B-=:](BW@(2(L'_U`8A<!U,4B#NZ@`````#X6%^?__2(N% ++M:/___S'22(U-P$B-=:](BW@02(L'_U`8A<`/A&+Y__^)18SI6OG__V8/'X0` ++M`````$2-D(#___!!@_H/#X;/````1`^V4@'!X!A(C7<"1`G01(A7`4&#PAA! ++M@>+^````#X2K````1(V0@/__\$&#^@\/AIH```!$#[92`L'@&$B-=P-$"=!$ ++MB%<"08/"&$&!XOX```!T>D2-D(#___!!@_H/=FT/MG(#P>`82(/'!`GP0(AW ++M_X/&&('F_@````^$C0$``(VP@/__\(/^#P^&?@$``$B#P@1).=`/A)$"``!$ ++M#[82P>`82(UW`40)T$2(%T&#PAA!@>+^````#X4O____9F8N#Q^$```````/ ++M'T``23G0#X1.`@``C5`708G`1(N;%`$``$B)]\'J!D'!Z!A$BZ,8`0``2"N[ ++M^````(/B`4&#P`%(`;NX`````[L,`0``]]I(B;/X````1"'"08G`B;L,`0`` ++M0<'H!4&#X`%$`<),C2Q11(G:10^W50#!Z@M!#Z_218G003G4#X*7````02G3 ++M02G4C5!70<'J!<'J!D4IT$2)FQ0!``"#X@%$B:,8`0``C4(!9D6)10!,C13# ++M2(G"38N"N````$T[@M@````/A,<!``!!BP"#QP1)@\`$38F"N`````_(B;L, ++M`0``*?A(B[L``0``2(GZ2"GR2(/Z`P^&]@$``(D&2(/&!(N3%`$``,'H&$B) ++ML_@```#IB_O__P\?`+X`"```B9,4`0``1"G6P>X%1`'69D&)=0#I:OO__V8N ++M#Q^$``````!(B?[IN/[__P\?A```````2(G^Z;'^__\/'X0``````(UR_(/^ ++M`P^'*OO__TB+L_@```!(.;,``0``#X4`^___B9,(`0``B8,0`0``#Q]``$B+ ++M<TA(BY/X````2"GR#X0I_/__2(N%6/___T@!59!,B8UP____2(LX2(F->/__ ++M_^A[&P$`A<`/A4+]__](BW-(3(N-</___TB+C7C____IZ?O__P\?0`"#^O]T ++M0\>#%`$``/_____IFOK__P\?0`!(B;/X````B9,(`0``B8,0`0``Z7C___\/ ++M'X0``````#'2Z5_[__]F#Q^$``````!(BW-(3(NS^````$R+K5#___])*?8/ ++MA2D!``#'18P!````Z1KV__](B?=F#Q]$``!(B[/8````Z;3Z__](BXUX____ ++M2(N=</___TR+C6#___]%A>0/A;'X___IL_C__XF#"`$``$&!^____P`/ATKW ++M__](B[/0````2#NS\`````^$-O?__XN[&`$``$B-1@%!P>,(1(F;%`$``$B) ++M@]`````/M@;!YP@)^(F#&`$``(/Z`P^'T/K__XG0Z?SV__](A=)T+D&)P(@& ++M0<'H"$B#^@%T%42(1@%!B<!!P>@02(/Z`P^$Q0```$2+FQ0!``!$B<"#P@2) ++M@Q`!``!(B;OX````B9,(`0``08'[____``^'<_K__TB+L]````!(.;/P```` ++M#X5<____Z5KZ___'@P@!```#````B8,0`0``Z6[V__]!O`$```!(BX58____ ++M3(GR2(LXZ+09`0"%P`^%>_O__TP!=9!%A>0/A'?Z__]$B66,Z<?T__]F#Q]$ ++M``#'@P@!```$````B8,0`0``Z?3Y__](BW-(3(NS^````$R+K5#___])*?9T ++MO.N<1(A&`L'H&$2+FQ0!``#I,O___\=%C%<`!X#I=/3__^C^.___9F8N#Q^$ ++M```````/'P#S#Q[Z54B)Y4%44X"_N`````!(B?MU.4B+LZ@```!(A?9T%$B+ ++M`TB)Q_]0"$C'@Z@`````````2,>#L`````````!;05Q=PV8/'X0``````$R- ++M9PA(B[?8````3(GG_U,02(NSZ````$R)YTC'@]@`````````_U,0QH.X```` ++M`$C'@^@`````````ZXH/'P#S#Q[Z54B)Y4%728GW2(G.059!54%428G44TB) ++M^TB#[$A$B46T9$R++"4H````3(EMR$R+*4C'`0````!!QP$`````BU=<@?H2 ++M`0``#X;&````@?H4`0``#X<R`P``BT=D387M#X2K!```B<%(`?GK069F+@\? ++MA```````9F8N#Q^$``````!F#Q^$``````!)@\0!@\`!2(/!`8E#9$$/MGPD ++M_T"(>6=(@P8!28/M`70%@_@$=MF`>V@`#X7Q`0``@_@$#X93!```BT-I2(-[ ++M0``/R(E#/'4+/?_[_[\/A\X!``#'0SC_____QT-D`````('Z%`$```^$-@0` ++M`,=#7``````QTDB)=;A,B4VHZQ4/'X``````#X0C`@``2(E-N$R)3:A(BT,H ++MA=(/A,8```!,B?F)UD@IP4@Y\0^#'0(``(7)#X2M````B=:)RBG.BWM$BTM` ++MA?]U$T2+0P1%B<)!*<I$.=)R!$2)0T1$BUM(`=%,BU,@B7-<B4M`1(UR_TB) ++MP4B-<`%,BT,83"G920'V32G:ZSQF9BX/'X0``````&9F+@\?A```````9F8N ++M#Q^$``````!F9BX/'X0``````&9F+@\?A```````D$B#Q@%,.=A)C10"2`]# ++MT4B#P0%!#[84$$&(%`!(B?!,.?9UW$B)<RA,.?@/@M\```"+2UR%R0^%9`$` ++M`(MS/(7V#X3B`P``BU6TA=(/A.4#``!$BT-D0;H!````187`#X7+`@``2XT$ ++M+$B-5<!,B>9(B=]$B%6@2(E%P.C`JO__1`^V5:"%P`^$P@,``$R+=<!-*>9! ++M@_X4#X>L````@_@"=`E%A-(/A3(#``!,B6,P3(GB3(G^2(G?36/VZ%_=__]( ++MBTLP2(G*3"GB23G6=7I(BWVX2`$7A<!T?<=#7``"``"X`0```$B+5<AD2"L4 ++M)2@````/A<T#``!(@\1(6T%<05U!7D%?7<,/'X``````1(M#9$6%P`^%PP`` ++M`$F#_1,/AC4"``!,B6,P2XU4+.Q,B?Y(B=_HY=S__TB+2S!(B<I,*>)).=5S ++MAL=#7/\!``#K>0\?1```22G528G,BU-<@?H2`0``#X7I_?__3(M-J$2+0SRX ++M`0```$6%P`^$SP$``.E:____#Q^$```````Q]NGJ_?__9@\?A```````BT6T ++M3(M-J(7`#X26`@``0<<!`@```.DG____#Q]$``"!^O\!```/A1;___^X"P`` ++M`.D1____9BX/'X0``````$4QVT&#^!,/APP!``!,B>!/C10L18G&,<GK*`\? ++M1```#[8P1(GR@\$!08U^`4B#P`%`B'03:$&#_A,/A-````!!B?Y).<)UV$R- ++M4VA$B?!(C57`2(G?3`'03(G6B4V81(E%G$2(7;-,B56@2(E%P.CLJ/__3(M5 ++MH$0/MEVSA<!$BT6<BTV8#X0X`@``3(MUP$TIUD4YQ@^"SO[__X/X`G0)183; ++M#X4``@``3(E3,$R)TDR)_DB)WTR)5:#H@-O__TB+4S!,BU6@B<&+0V1,*=)% ++MA?9X9DUC]DDYU@^%B?[__TB)UD@IQDP!Z$@IT$D!]$F)Q4B+1;A(`3#'0V0` ++M````A<D/A'7^___I[?W__V:0183;#X73`0``3(US:$R)_DB)WTR)<S!,B?+H ++M$=O__TB+4S")P8M#9$PI\DB#^A0/AR7^__](.<)SE^D;_O__D$&#^!,/A^$` ++M``!!NP$```#IJ/[__X7`#X6:^___N`,```!!B0$QP.F+_?__13'2Z0']__\/ ++MMDL!N@`#```""[\`!``$T^)(BT,(9@]NQX'"P`<``&8/<,``2,'J`TC!X@1( ++MC0P"@^(0=!8/$0!(@\`02#G!=!IF+@\?A```````#Q$`2(/`(`\10/!(.<%U ++M\+@!````QT-8`````&8/;L!F#W#```\10TCI4/O__TB+=;A$B?=,BTVH,<!( ++M`3Y$B7-D187V=!)!#[84!(A4`VA(@\`!2#GX=>ZZ`@```+@!````08D1Z<S\ ++M__]%B<9!NP$```#I__W__TR+3:BX!````.D;____3(M-J+@"````Z0W___^X ++M`@```.D#____2(MUN$R+3:A)@_T3#X?I_/__3`$N,<!$B6MD387M=!)!#[84 ++M!(A4`VA(@\`!3#GH=>ZZ`P```#'`ZXE(BW6X1(GP3(M-J$0IP$@!!D2)<V3I ++M9?___TB+=;A,BTVH08/^$P^'E/S__T2)<V2Z`P```$@!#NE,____Z,0T__]! ++MOA0```#I4?W__V8/'X0``````/,/'OI52(GE05=!5D%505132(G[2(/L.$B+ ++M`61,BS0E*````$R)=<A-B<Y(QP$`````2(E%N$''`0````"+!X/X"71W08/P ++M`4F)]4F)UTF)S$2)1;2#^`@/A)("```/MDVT@^$!3(M3.$TYZD$/E,&$R70) ++M183)#X6#`@``C7#Z28L4)(/^`79G2#E5N`^$C0(``$B#P@%(B=])B10D00^V ++M-^A9G/__B0.#^`@/A/X```!%A,D/A/4```!!QP8`````N`$```#'`PD```!( ++MBU7(9$@K%"4H````#X5=`@``2(/$.%M!7$%=05Y!7UW#D$R+3;A,B>Y!N`$` ++M``!,*=9)*=&+4PQ,B4W`2#G6<P9(B?)%,<`/MG,$0(3V#XBF````387)#X3U ++M`0``@_@,`0``3#G*<Q!(B57`2(72#X1U____28G12(M[*$R)RDR)_HA- ++MLTR)3:A,`=?HCC+__XM35$R+3:A,`4LXBT-0A=(/MDVS=0^+4Q2)UBG&23GQ ++M<@.)4U1$`<A-`<^)0U"+0PQ-`0PD1"G(B4,,]]@9P(/@!XD#Z;K^__\/'T0` ++M`$F#QP&#^`D/A9C^___I^?[__V8/'T0``(/X!@^$MP```(M#"$PYR`^"FP`` ++M`$J--!)(C4W`3(GZ38GQ2(U[$$R)5:CH6/?__TR+5:CS#WY#"(G!2(M%P$D! ++M!"1(BU,XBW,(9@]NR$D!QTPITF8/;M)F#V+*9@_ZP68/UD,(A<D/A8;^__]! ++MBPZ#^0,/A.T```!("=!U'8/Y!`^%;/[__V9(#W[`2(7`#X5>_O__QP,````` ++M0<<&`````(L#Z4/___\/'X``````2(E%P.E<____#Q^``````,=#;!,!``#' ++M0W0`````0(#^WW9T2,=#4`````#'0VP4`0``BT,(QP,'````3#G(#X,@____ ++MZ[F0QT-L$P$``,=#=`````!`@/X!#X5<_O__2,=#4`````#'0VP4`0``Z4C^ ++M__\/'T``0<<&`0```#'`Z<_]__]FD$''!@(````QP.F__?__9I!`@/Z?=I7K ++MC`\?A```````0<<&`P```#'`Z9_]__\YQ@^$A?W__S'`Z9#]___H;C'__V9F ++M+@\?A```````#Q\`\P\>^E5(B>5!5TF)ST%638G.055)B?U!5$&)]%-+C0QD ++M2,'A!TB-!`](@^Q(2(NP."4``$R+51!D3(L<)2@```!,B5W(3(M=&$F),4G' ++M`@````!!QP,!````@+@))0````^%"0$``$N-!&1%,<!(C4W`3(E5H$C!X`=, ++MC4V\3(E=F$F-7`4`3(E]P(N[)"4``$B+LS`E``"#Y_N#_P&)?:Q)C;P%>"0` ++M`$$/E,#H_OO__TB+DS@E``!(BTW`B8-()0``3(M5H$@!RDB)DS@E``!)B19( ++MBY.P)```2(F30"4``$F)$H7`=11,.?E,BUV8="Z#?:P!=5BX"P```$B+5<AD ++M2"L4)2@````/A;@```!(@\1(6T%<05U!7D%?7<.0@WVL`4''`P````!U(TB+ ++MLS@E``!(.;,H)0``=<!(.Y,P)0``=;)!QP,!````ZZZ02XT,9$C!X0=).Y0- ++M,"4``'6;0<<#`0```.N2#Q]$``#'@'@D````````ON````!FB;0/?20``,>` ++MA"0```````!(QX"P)````````,>`["0```````!(QX0/R"0```````#'@.0D ++M```4`0``QH`))0```.F?_O__Z),O__\/'P#S#Q[Z54B)Y4%7059!O@0```!! ++M54%44TB#["B#^@0/AAP!```/MA:`^N`/AQ`!``"X.0```$2+?@%(B4W`28G] ++M]N)!B<1F0<'L"42)XXT$VRG"N,W____VXT0/MN)$B>:)PF;!Z@J-!)*)VBG" ++MB%7(Z#L1`P!!B<:%P`^%$`$``$&!_____S\/ME7(2(M-P`^'PP```$&!____ ++M/P`/A_X```!(Q\8`\/__0;C_#P``N``0``!!.<=!#T/'08G!B<!)`<!)(?!) ++MBW4823G`20]#P$F)QTB%]G0&23E%('0ZB%6_2(G/1(E-P$B)3<C_40A(BTW( ++M2<=%&`````!,B?Y(B<__$4B+3<A$BTW`2(7`28E%&`^V5;]T5[G-____B=A- ++MB7T@]N%%B4T$9L'H"H/@!\'@"`G0P>`(1`G@08E%`$B#Q"A$B?!;05Q!74%> ++M05]=PV8/'T0``$C'Q@``P/]!N/__/P#I1?___V8/'T0``$F+=0A(B<__40A) ++MQT4(`````&9F+@\?A```````#Q\`0;X"````ZZ@/'X0``````$C'Q@``\/]! ++MN/__#P#I_?[__V9F+@\?A```````#Q\`\P\>^E5(B>5!5%-(@^P0BW<P9$B+ ++M'"4H````2(E=Z$B)^X7V#X6&````BU,XA=)T&<=#.`````!(C7M(Z,\M__]( ++MC7MPZ%8P__^+@Z````"%P'4<2(M%Z&1(*P0E*`````^%Z0```$B#Q!!;05Q= ++MP\>#H`````````!(C;NP````Z(HM__](BT7H9$@K!"4H````#X6W````2(/$ ++M$$B-N]@```!;05Q=Z?,O__\/'P!,C:.P````3(GGZ)$N__^%P'1=3(UC2$R) ++MY^B!+O__A<!T+8M+,(7)#X1,____2(M[*$B-=>#H=2S__\=#,`````!(QT,H ++M`````.DK____D,=#0`$```!(C7MPZ+`J__],B>?HV"O__^NY9@\?1```QX.H ++M`````0```$B-N]@```#HBBK__TR)YTR-8TCHKBO__TR)Y^@&+O__A<!UA>NP ++MZ'LL__^09BX/'X0``````/,/'OI52(GE05=!5D%505132(/L&(M'.$2-</]$ ++MB7<X187V=!M(@\081(GP6T%<05U!7D%?7<-F#Q^$``````!(C04QP`0`3(MG ++M0$F)_?,/?@4JQ00`9D@/;LA(@\!@9@]LP69(#V[02(/`:`\1!V9(#V[82(/` ++M,/,/?@4(Q00`2(E',&8/;,(/$4<0\P]^!?S$!`!F#VS##Q%'($V%Y`^$Q@`` ++M`$R)Y^C3[___08N$)&@!``"%P`^%P````$F-G"10)0``38V\)%!5``#K'69F ++M+@\?A```````9@\?1```2('#@`$``$PY^W0N@'NX`'3N2(NS0/___TB)W_]3 ++M",9#N`!(@<.``0``2,>#P/W__P````!,.?MUTDF-G"00)0``38V\)!!5``!F ++M#Q]$``!(BS-(A?9T&4F+!"1(B<?_4`A(QP,`````2,=#"`````!(@<.``0`` ++M3#G[==-)BT0D&$R)YDB)Q_]0"+YP````3(GOZ-@J___IJ/[__TF-A"1X)``` ++M38V\)'@"``!!QX0DL`$```$```!(B47(#Q\`3(G_Z/C\__])BU\02(7;="=) ++MQT<0``````\?@`````!)BP=(B=Y(BQM(BT`@2(G'_U`(2(7;=>A(BT7(28'' ++M$`$``$DYQW6X28NT).@!``!(A?9T&DF+A"20`0``2(G'_U`(2<>$).@!```` ++M````28V\)%`"``#HE"K__T''A"1H`0```````.F0_O__#Q\`\P\>^E5(B>5! ++M5T%6055!5%-(@^P8BT<(1(UH_T2);PA%A>UT&TB#Q!A$B>A;05Q!74%>05]= ++MPV8/'X0``````$B-1]!,BV<0\P]^!0##!`!(B47(2(T%[;T$`&9(#V[(2(/` ++M8&8/;,%F2`]NT$B#P&@/$4?09D@/;MA(@\`P\P]^!=+"!`!(B0=F#VS"#Q%' ++MX/,/?@7'P@0`9@]LPP\11_!-A>0/A-$```!,B>?HGNW__T&+A"1H`0``A<`/ ++MA<P```!)C9PD4"4``$V-M"1050``ZRAF9BX/'X0``````&9F+@\?A``````` ++M9@\?1```2('#@`$``$PY\W0N@'NX`'3N2(NS0/___TB)W_]3",9#N`!(@<.` ++M`0``2,>#P/W__P````!,.?-UTDF-G"00)0``38VT)!!5``!F#Q]$``!(BS-( ++MA?9T&4F+!"1(B<?_4`A(QP,`````2,=#"`````!(@<.``0``3#GS==-)BT0D ++M&$R)YDB)Q_]0"$B+?<B^<````.B7*/__Z9?^__]-C;PD>`(``$V-M"1X)``` ++M0<>$)+`!```!````9@\?1```3(G_Z+CZ__])BU\02(7;="=)QT<0``````\? ++M@`````!)BP=(B=Y(BQM(BT`@2(G'_U`(2(7;=>A)@<<0`0``33GW=;Q)B[0D ++MZ`$``$B%]G0:28N$))`!``!(B<?_4`A)QX0DZ`$```````!)C;PD4`(``.A8 ++M*/__0<>$)&@!````````Z8G^__\/'X``````\P\>^E5(B>5!5T%6055!5%-( ++M@^P8BT<01(UH_T2);Q!%A>UT&TB#Q!A$B>A;05Q!74%>05]=PV8/'X0````` ++M`$B-1]A,BV<8\P]^!<#`!`!(B47(2(T%K;L$`&9(#V[(2(/`8&8/;,%F2`]N ++MT$B#P&@/$4?89D@/;MA(@\`P\P]^!9+`!`!(B4<(9@]LP@\11^CS#WX%AL`$ ++M`&8/;,,/$4?X387D#X30````3(GGZ%WK__]!BX0D:`$``(7`#X7+````28V< ++M)%`E``!-C;0D4%4``.LG9F8N#Q^$``````!F9BX/'X0```````\?1```2('# ++M@`$``$PY\W0N@'NX`'3N2(NS0/___TB)W_]3",9#N`!(@<.``0``2,>#P/W_ ++M_P````!,.?-UTDF-G"00)0``38VT)!!5``!F#Q]$``!(BS-(A?9T&4F+!"1( ++MB<?_4`A(QP,`````2,=#"`````!(@<.``0``3#GS==-)BT0D&$R)YDB)Q_]0 ++M"$B+?<B^<````.A7)O__Z9?^__]-C;PD>`(``$V-M"1X)```0<>$)+`!```! ++M````9@\?1```3(G_Z'CX__])BU\02(7;="=)QT<0``````\?@`````!)BP=( ++MB=Y(BQM(BT`@2(G'_U`(2(7;=>A)@<<0`0``33GW=;Q)B[0DZ`$``$B%]G0: ++M28N$))`!``!(B<?_4`A)QX0DZ`$```````!)C;PD4`(``.@8)O__0<>$)&@! ++M````````Z8K^__\/'X``````\P\>^E5)B?I(C;\X`0``NJNJJJI$B=!(B>5( ++M@^QX2,='^`````!(QX>(`````````$B#Y_@I^&8/;Q7QZ`,`C8C(`0``,<#! ++MZ0/S2*M!QT(X`````$''0B``````18M*-$F+>D!!BT(\18M:)$D/K]%(C0P' ++M18G818E:&$F)2EA,`<E!]]!(P>HF2(G.:])42"G608/[#$&[\____T4/0\-, ++M`<A)B7)@3(V>``8``$@IT$F)<A!(*?YF00]N\$B-5`<"3(U!]$@!^&8/<,;@ ++MOP0```!-B4)09D$/UD(L9D0/;L]F20]NP+\(````9D0/;L=F#VS`38E:2+\, ++M````00\1`F8/;O^_$````&9%#W#)`,=!]``!`0%F#V[WO_\`_P!F10]PP`#' ++M0?P`````9@]NWV8/</\`9@]P]@")<?A(C;(`!@``9@]PVP!F#V_"9@]ORF8/ ++M;^I(@\)@9D0/;])F#V_@9@_^[TB#P&!F10_^T69!#_[(9D$/8<)F00]IXF8/ ++M_M9F1`]OT&8/8<1F1`]IU&8/;^%F#V'-9@]IY68/;^EF00]APF8/:>QF#V', ++M9@_;PV8/8<UF#]O+9@]GP68/?L&(2*`/*47P#[9-\8A(I@\I1>`/MDWBB$BL ++M#RE%T`^V3=.(2+(/*47`#[9-Q(A(N`\I1;`/MDVUB$B^#RE%H`^V3::(2,0/ ++M*460#[9-EXA(R@\I18`/MDV(B$C0#RF%</___P^VC7G___^(2-8/*85@____ ++M#[:-:O___XA(W`\IA5#___\/MHU;____B$CB#RF%0/___P^VC4S___^(2.@/ ++M*84P____#[:-/?___XA([@\IA2#___\/MHTN____B$CT#RF%$/___P^VC1__ ++M___&0*$!B$CZQD"G`<9`K0'&0+,!QD"Y`<9`OP'&0,4!QD#+`<9`T0'&0-<! ++MQD#=`<9`XP'&0.D!QD#O`<9`]0'&0/L!QT*@`````,="I@````#'0JP````` ++MQT*R`````,="N`````#'0KX`````QT+$`````,="R@````#'0M``````QT+6 ++M`````,="W`````#'0N(`````QT+H`````,="[@````#'0O0`````QT+Z```` ++M`$@YU@^%_?W__TV-FAP*``"_`@```$R-#<[6`P!!N`!````/'X0``````$F# ++MZX`Q]DR)V0\?@`````!!#[<$<3'2]_=$B<(IPDB-08!FB1!(@\`@9HE0\$@Y ++MP77P2(/&`4B#P0)(@_X(=="#QP&!_X(```!UM4F-@MP#``"Z4````+D#!``` ++MO@,$``!FB1"_`P0``$&X`P0``&:)2`)!N0,$``!!NP,$``!FB7`&N0,$``"^ ++M`P0``$B#P$!FB7C*OP,$``!F1(E`SD&X`P0``&:)4,1FB5#(9HE0S&:)4-!F ++MB5#49HE0V&:)4-QFB5#@9HE0Y&:)4.AFB5#L9HE0\&:)4/1FB5#X9HE0_(/" ++M*&9$B4C20;D#!```9D2)6-9!NP,$``!FB4C:N0,$``!FB7#>O@,$``!FB7CB ++MOP,$``!F1(E`YD&X`P0``&9$B4CJ9D2)6.YFB4CR9HEP]F:)>/IF1(E`_F:! ++M^C@$#X41____0<>"V`,`````!T#)PV9F+@\?A```````9I!52(GE05=!5DF) ++M_D%505132(/L2$B+7Q"`>P$>=PY(BP>+4`B%T@^%!`(``$&+1AB%P`^$Z`,` ++M`$F+1E@/MA-,C6`!B!!-B69833MF8`^#F`0``$F+3A!-BWY`3(GBBT$"3"GZ ++MB57,A<`/A8$!``!)BP9)BUX(B5$"2(G'1"GX3`'X9D@/;L!F#VS`00\1!D@Y ++M^P^$K0,```^V40&X`0```$0/MP=)B<U-B?$IT`^W5P)%B<8!T#'21"G`08/X ++M`TF)^`^7PHG!B57`ZS8/'T``13'2.<)!#Y+"P>(".=`/D\"#Q@,/ML!!C40" ++M`6:)<P*(1P&+6PA,`?M,.<,/A$,#```/MQ-!B=1F@_H!#X2F`0``]L(!=2!! ++MB=)!T>I$B=!!#[:T`:\```!!.K0!L`````^%"0(``(M[!(TTE0`````/MT," ++M03GVC335`````$$/D\(YQD`/D\8!TD`/MO9$(=9$.?*#T`"--'!!#[?$00^V ++M50%$BUW,08/$`4B-!$!%#[95`$B-/$>-1@8/K\),`?^-%`Y$B!=$C1129D2) ++M(P'`1(E?`D>-'!)$.=@/@AW___]$C1S213'D1#G808G300^3Q$'!X@)$.=!! ++M#Y/"0<'C!$$ITT4/MM)$.=A!@]K_0XU$%`0!QNG__O__#Q\`.<(/@PD#``!! ++MBUX828L^C5/_28M>"$&)5AB%T@^%;?[__S'22#G[B47,#Y7"22G438EF6.E6 ++M_O__#Q^``````$B+1T!(`<)F@SH!#X3=`@``BTH$2`'(#[8+.`@/A.,"``!F ++M9BX/'X0```````\?`$B)QDB#P`8X"'7U#[9X`4`Z?@%R(D2+2/I$BT`"1(D( ++M1`^W2/YF1(E(!$B)\(@.0(A^`42)1@)`@/]R#X>+_?__@\<"0(AX`6:#0@(" ++MZ7K]__]F#Q]$``!!BX$P`0``A<`/A9$!``!!#[:!B````$F+<5"-%$!)BT%( ++MP>("2"G&.=8/@H@!``!(`<))B5%(2(7`#X3P`0``#[9[`@^V<P-)B<)-*?I` ++MB#B+>P2)\HEX`D2)UT2)4P1`@/X=#X?F````1(T4-@'2B%`!BW7`00-Q'$0! ++MUNDQ_O__9@\?1```0`^VQD2-6`&)1;A)C7-,3(G?08L$L87`#X4Z`0``0P^V ++MA!F(````38M94(TT0$F+04C!Y@))*<-!.?,/@B\!``!(`<9)B7%(2(7`#X17 ++M`0``BW,$2(E%J$F-/#=)B?-!C7+_2(E]L$B-='8#3(T4L$B)QF9F+@\?A``` ++M````9I"+!TB#Q@Q(@\<,B4;TBT?XB4;XBT?\B4;\3#G6=>*+=;A(BT6H3(M5 ++ML$B#QDQ,*?A!BSRQ08DZB<=%B1RQB4,$Z37]__\/'P"Z>````$&Z>````.D0 ++M____#Q^$``````!,B??H6)C__V9(#V[`9@]LP$$/$09(A<`/A*T```!)*T9` ++MB4,"2(/$2%M!7$%=05Y!7UW##Q]``$P!^(L008F1,`$``.F/_O__#Q^````` ++M`$R)SS'V3(E%J(E-L$R)3;CHRY3__TR+1:B+3;!,BTVXZ5K^__\/'P!,`?B+ ++M.$&)/+'IZ_[__V8N#Q^$``````")_DR)STR)19B)3:1$B57(B56H3(E-L.B$ ++ME/__3(M%F(M-I$2+5<B+5:A,BTVPZ:7^__\/'T0``$V)SDB#Q$A,B?=;05Q! ++M74%>05]=Z2_V__],B?=(B4W`Z'.7__](A<!TV4B+3<!$*?CIVOS__P^V0@,\ ++M'P^'`OO__X/``8A"`^GW^O__#[9X`>E9_?__9I#S#Q[Z54B)Y4%7059!54%4 ++M4TB!["@!``!,BS],BV]`9$B+'"4H````2(E=R$B)^XM':$2+=VQ!#[</9H/Y ++M`0^$=`$``$&+5P1%#[='`DD!U3'218G!0??P,=*)0VB)QD2)\$$/MGT!]_9! ++MB?J)PBGZ#XA:!0``@^D!QT,@`````$V)[$B-#$E-C5Q-`.L;9F8N#Q^$```` ++M```/'X``````33G<#X1W!```38GB00^V3"0'28/$!HG7*<IYY"GX#Z_.#Z_& ++MB4MH02G&1(ES;('Y____`'=!2(M#>$R)E;C^__]!P>8(2(G'_Q!,BY6X_O__ ++M#[;`00G&BT-H1(ES;,'@"#W___\`B4-H#X8R!@``3(L[10^W3P),B6,000^V ++M5"0!08/!!$4/MBPD9D6)3P*)T$$/MDPD^X/"!(/`!$&(1"0!.=%S.4&+="3Z ++M08M,)`)%B&PD^D&(1"3[08DT)$$/MW0D_D&)3"3\9D&)="0$38G43(E3$(/Z ++M?`^'*08``(M3&(72#X4&!0``08M$)`)(`T-`2#E#6`^#\P0``&9(#V[`9@]L ++MP`\1`T$/ML7I<@$``&8/'T0``$&+5PB+>RQ!#[9W`T$/MU05`$&)^4'!^1I( ++M@^X!1`^VA!/'`0``2(M3$$!(P>8&1`-+(`^V"D$/ME<"P>H$P>D%@\(, ++M@\$&@^(0@^$(1`'*B4LH`<J)P40!PL'I#HG23(V$,@@%``!"#[=40PP/K\J- ++M<B#![@<I\D$YS@^"9`0``&9"B51##$$ISBG(P>H*#[:4$\@#``!$B7-L2(U- ++MP&8/=L")0VB)4QQ(C97`_O__#RD"2(/"0`\I0M`/*4+@#RE"\$@YT77H00^V ++M5P+'0R``````QH05P/[__P`]____`'='2(M#>$2+:VQ(B<=!P>4(_Q!$#[;@ ++MBT-H10GLP>`(1(EC;(E#:#W___\`=QM(BT-X0<'D"$B)Q_\0P6-H"`^VP$$) ++MQ$2)8VQ(BP.+>QA$#[<0C5<!ZR%F9BX/'X0``````)!,BT-`C4H!3`'`#[<X ++M9D$Y^G4]B<J+0`B%P'7DB5,8N/____](BU7(9$@K%"4H````#X45!@``2('$ ++M*`$``%M!7$%=05Y!7UW##Q^``````$2+8`2)4QA$#[?_2(GY@^$!08GY30'$ ++M2/?908/A`4$/MA0D10^V;"0!@^$&2(D#0??93`'A1`^VM!7`_O__B)6X_O__ ++M1(GZT>I%(>Z#Z@%%#[;V2(U44@-%(?%,C1R19F8N#Q^$``````!F9BX/'X0` ++M`````&9F+@\?A```````9F8N#Q^$```````/'T0```^V$0^V<09(@\$,#[:4 ++M%<#^__\/MK0UP/[__R)1]4`B<?L/MM)`#[;V`?)!`=%,.=EUS4&!_P`!```/ ++MA!`#```/MW`"0XT,OT4/M])$B?I!C0Q/1"G2BT`(.<Y`#Y+&,<E$.=)!#[<$ ++M``^2P4`/MO9(P>$"1"GX2(T,<8MS*$@!\3G"#Y+`#[;`2,'@`DB-#(@/MH03 ++MQP(``$C!X`9,C;P!W`,``$D!WT$/MP=!#[9/`HG"T^@IPHG!@_@!9D&)%X/1 ++M`(M#:$&--`DQTD2+4VSW]C'208G#B4-H1(G00??S1#G(#X(+`P``.?`/@_D" ++M``!%#Z_+1(G8#[?_#Z_!2(T4?TF-#%1%*<I$B5-LB4-H9D$!-V9F+@\?A``` ++M````D$$/MA0D28/$!L:$%<#^__\`3#GA=>KI?/W__P\?1```1#G`#X.A`@`` ++M*?AF#W;`C10(B?!(C4W`#Z_"02G&1(G`*=!(BU,01(ES;`^OQHE#:`^V$L'J ++M!8/"!H/B"(E3*$B-E<#^__\/*0)(@\)`#RE"T`\I0N`/*4+P2#G1=>A!#[84 ++M),:$%<#^__\`9F8N#Q^$``````!F#Q^$``````!!#[9-`$$/ME4&28/%#,:$ ++M#<#^__\`QH05P/[__P!-.>5RW>G/_/__#Q^$```````/K_>)<VB!_O___P!W ++M/DB+0WA!P>8(2(G'_Q`/ML!!"<:+0VA$B7-LP>`(B4-H/?___P`/AG\!``!, ++MBSM!#[9]`44/MT<"08GZ18G!C00_3(EK$$4/MF4`03G`#Y+`08/!!$&#P@2# ++MQP0/ML`!0RR)0R!F18E/`D6(50&#_WP/AR,!``"+2QB%R0^%O````$&+10)( ++M`T-`2#E#6`^#J@```&9(#V[`9@]LP`\1`T$/ML3IGOS__V8N#Q^$``````!( ++MB=_H*/3__^D,^___#Q\`9H/J@&9"B51##(E+:('Y____`'<B2(M#>$'!Y@A( ++MB<?_$$R+:T"+>RS!8V@(#[;`00G&1(ES;$$/ME<#28U'`D&+3P2#QP%%#[9G ++M`DB)0Q")T,=#(`$```#WT(E[+,#H!P'008A'`XM#&(7`=0U)`<U,.6M8#X*> ++M````2(G?Z)WS___I5?___P\?A```````3(V[V`,``+D!````Z6+]__](BT-X ++M3(F5N/[__T'!Y@A(B<?_$$R+.TR+E;C^___!8V@(#[;`00G&10^W3P)$B7-L ++MZ:#Y__](B=_H(9+__TR+:Q#IS/[__TB+0WA!P>8(2(G'_Q#!8V@(#[;`00G& ++M1(ES;.EA_O__2(G?Z/"1__],BV,0Z<;Y__]F20]NQ68/;,`/$0/IL_[__[C^ ++M____Z5#[__^)QP^VM;C^__])C50D!D0I]P^(6@$``&9F+@\?A```````9F8N ++M#Q^$``````!F9BX/'X0``````&9F+@\?A```````9@\?A```````#[8*1`^V ++M:@%)B=1(@\(&1`^VM`W`_O__2(G.B?E%(>Y%#[;V1"GW>==$`?!!#[;518G6 ++M*<@IT$$/K\-!*<9$B=@/K\)$B7-LB4-H/?___P!W5DB+0WA!P>8(2(G'_Q!% ++MB?(/ML!!"<*+0VA$B5-L18G5P>`(B4-H/?___P!W&TB+0WA!P>4(2(G'_Q#! ++M8V@(#[;`00G%1(EK;$$/ME0D`4$/MC0D08G500^V3P*`^09W'4&`;P,!=1:- ++M00%F0=$G08A'`K@#````T^!!B$<#BT,P08/%!(/"!$R)8Q")0RQ(BP-F@T`" ++M!$6(;"0!@_I\=QM(B=]`B+6X_O__Z)_Q__\/MH6X_O__Z??Y__](B=]`B+6X ++M_O__Z&20__\/MK6X_O__Z\V)P>G]_O__Z%\2__]F9BX/'X0```````\?0`#S ++M#Q[Z2(T-M?$$`.D@F@,`\P\>^E5(B>5!5%.+!TB)^X7`=40Q]DB-?Q#HL1/_ ++M_X7`=`U;05Q=PP\?A```````,?9(C7LXZ)42__^%P'7DQT,(`````$C'`P$` ++M``!;05Q=PV8/'T0``$R-9Q!,B>?H7!/__X7`=;O'0P@`````3(GG6T%<7>GE ++M$/__#Q]$``#S#Q[Z54B)Y4%7059!54%44TB![#@!``!D3(LT)2@```!,B77( ++M28G^28U&2$V++DB)A0#___])C49P2(F%L/[__TV)[TB+O0#____H\!+__X7` ++M#X4H!```18M.0$6%R74B2(N=`/___TR+I;#^__^03(GG2(G>Z.42__]!BWY` ++MA?]T[46+1CQ%A<!U"$''1D``````2(N]`/___^A`$/__A<`/A=@#``!!BT=` ++MB87T_O__A<`/A4P+``!)BT](,=(Q]DR)_TB-00%(B8WX_O__28E'2$B-A4S_ ++M__])B<!(B87@_O__Z+:W__^)PH7`#X7,!```BX5,____B87T_O__A<`/A#@& ++M```QR3'`2(F%6/___TB)A6#___^)C;C^__^)C?#^__^)C2C___^)C<C^__^) ++MC?3^__\/'X0``````,>%(/___P`````QV\>%Z/[__P````!(QX78_O__```` ++M`$C'A0C___\`````2,>%P/[__P````!(QX70_O__`````,>%./___P$```!( ++MQX40____`````$C'A3#___\`````38VFL````(F5&/___TR)Y^B)$?__A<`/ ++MA<$"``!!BX:H````BY48____38VNV````(7`=26)E1C___\/'P!,B>9,B>_H ++M=1'__T&+AJ@```"%P'3JBY48____08N&I````(7`=0M!QX:H`````````$R) ++MYXF5&/___^C`#O__A<`/A5@"``#'A53___\!````18MO0$6%[0^%QPD``$&+ ++M1VB+E1C___^%P`^$MP,``$2+I2#___^+C2C____'A4S___\!````187D=$%( ++MQX58____`````#'2,?9(QX5@____`````$B+A3#___](*=I)C;_`````B8T8 ++M____2"G&Z/JS__^+C1C___^)PHNU./___XN]*/___X7V#Y3`00^4Q`^VP(F% ++M4/___X7_#X2,````28M'*$B+0!B%TG44@^$!=`^+E4S___]%,>V%TD$/E,5, ++MC8U4____2(V54/___T&+=@A)BW\P3(N%P/[__TB+C=#^__]!442+C?#^__]2 ++M1(GJ_]!!78G"6(72#X64`P``BX4X____"X50____B84H____#X0T"```QX4H ++M____`````&8N#Q^$``````!$BYU4____187;#X0(`@``1(N5(/___T&+CZP` ++M``!%A=)T)(72=2"+G>C^__]!BT=H"X5,____"=@)R`N%*/___P^$T0$``(7) ++M=0M!BT8(08F'J````$B#O1#___\`#X64`0``183D#X6+`0``1(N%4/___T6% ++MP'5G08M^"(7_#X0A"```0<='0`$```!)C9]0`0``2(G?Z$0/__^%P`^%?``` ++M`$''AT@!```!````28V_>`$``.B5"___2(G?08G$Z+H,__^%P'56187D#X01 ++M_/__1(GBZTH/'X0``````$F-G[@!``!(B=_H\0[__X7`=2U!QX>P`0```0`` ++M`$F-O^`!``#H1@O__TB)WT&)Q.AK#/__A<`/A`\'```/'P")PDF+'HM#1(7` ++M=0.)4T3'0T`!````3(VC4`$``$R)YXF5./___^B5#O__BY4X____A<`/A!4' ++M``!,C:.X`0``B94X____3(GGZ'(.__^+E3C___^%P`^$Q`8``(72#XX3!P`` ++M1`^WZDR-H^````!!@<T```"(3(GGB94X____Z#P.__^+L\@```"+E3C___^% ++M]G4'1(FKR````$R)YXF5./___^BW"___2&.%./___TB+5<AD2"L4)2@````/ ++MA6`3``!(C6786T%<05U!7D%?7<-F#Q]$``!(BX4(____@\$!28E&&$B+A1#_ ++M__])B48@08F/K````$2+C3C___]%A<D/A47^__],BZW8_O__28V=L````$B) ++MW^BB#?__A<`/A=K^__]!QX6H`````0```$F-O=@```#I6?[__P\?`$C'A5C_ ++M__\`````2,>%8/___P````#'A;C^__\`````QX7P_O__`````,>%*/___P`` ++M``#'A<C^__\`````Z3W[__\/'T0``(N%Z/[__X7`=!%!QT=H`0```$&)1V2# ++M^`)T?8N%]/[__XN-*/___X7`=`Y!QT=H`0```#')08E'6$2+G;C^__]%A=MU ++M8T2+E<C^__]%A=)T$D''1V@!````,<E!QT=4`0```$2+C2#___]%A<D/A#/\ ++M__]$BX5,____187`#X7B^___2(NU6/___TB+E6#____IZ?O__V:0BX7T_O__ ++MA<!T!D&)1UAFD$''1V@!````,<E!QT=0`0```.N)#Q]``$''1V@!````38VO ++MX````$R)[XF5,/___^A;#/__08N?L````(N5,/___X7;="I(BX7X_O__23N' ++MN````'(:3(GOB94P____Z,P)__^+E3#____I0?S__Y!(BX7X_O__0<>'L``` ++M``$```!)B8>X````Z\L/'T0``$&+AY@```!)BX^(````22N/@````(F%./__ ++M_TF+1A!)B<U(B848____2(7`#X32!```2(/`($4QY$C'A<C^__\`````2(F% ++MZ/[__TB%R0^$<`P``&9F+@\?A```````D$F+AX````!)BU=X3(GK3(FM$/__ ++M_TR)K0C___](C40"($B)A3#___\QP$V%Y$&+=@A)BW\P#Y3`2(F=</___XF% ++M8/___TB+A3#____'18`!````2(F%:/___XN%./___XF%>/___TB-A6#___]( ++MB84@____2(G"28M'*/\0BT6`1(N%?/___XF%V/[__T&#^`$/A$<$``!(BY5P ++M____387M#X5Y`0``BX4X____1`G`#X77"0``2#G:#X5[!@``2(N%&/___TR+ ++M&,>%*/___P$```!%,>U-A=L/A+$!``!-BR])C4,@28M_$$B)A3#___]-A>T/ ++MA$$+``!,BZ4P____3(F]./___S';38GO3(FUT/[__TR+K2#___]-B>9,B9WH ++M_O__28G\ZQ1F#Q]$``!(A<ET,4V%_P^$P@$``$R)O6#___],B?9,B>I,B>=! ++M_Q0D2(N-8/___T@!RTD!SDDISX7`=,I,B[TX____2(NU"/___XG"2`&=$/__ ++M_TB#O1C___\`2`]$\TF+!TD!GY````!,BYWH_O__3(NUT/[__TB)M0C___]( ++M.<-T"T''AY@````!````A=(/A(0!``!!B5=@2(NUR/[__T''AY@````!```` ++MQX4X____`0```$@YM1#___\/A7H!``!(BX4P____3(NE&/___T4Q[4R)G1C_ ++M__](B87H_O__2(N%$/___TB)A<C^___I"?[__Y!(B[4P____2(N]Z/[__T2) ++MA=#^__](B94H____Z!\'__^+A3C___]$BX70_O__2(N5*/___TD!EX````!$ ++M"<`/A6P*``!(.=H/A<P$``!(BX48____9@_OP$R+&$$/$8>`````Z4#^__\/ ++M'X``````QX4X____`````$F+1R!)BQ](B<=(C7,@_Q!)B<-(A<`/A#H*``!( ++MQP``````2(N%&/___TB%P`^$XP```$R)&$F-0R!(B87H_O__387M#X0R"0`` ++M3(NE&/___TR)G1C____I"?W__V8/'X0``````$R+O3C___](`9T0____2(.] ++M&/___P!,BYWH_O__3(NUT/[__TF+!P^$10$``$D!GY````!(.=AT"T''AY@` ++M```!````2#G8#Y7`#[;`B84X____2(NUR/[__T@YM1#___\/A(;^__],BX7@ ++M_O__,=(Q]DR)_TB+C?C^__],B9T@____Z'BM__^)PH7`#X7+"@``B[5,____ ++M3(N=(/___X7V#X1&_O__Z5,)```/'T``28U#($V)7A!(B87H_O__387M#X01 ++M#0``3(F=&/___T4QY.DI_/__9@\?A```````38VOX````.E+^___187D#X18 ++M^/__Z9GX__]F#Q]$``#'@[`!```!````2(V[X`$``.CZ`___3(GGZ"(%__^+ ++ME3C___^%T@^/&/G__^LIQX-(`0```0```$B-NW@!``#HS`/__TR)Y^CT!/__ ++MBY4X____Z<+X__],C:/@````08G5Z?#X__])BP9(8T!$Z1[Y__])`9^0```` ++M2#G8=`M!QX>8`````0```$@YV$B)G0C___\/E<`/ML")A3C____IK_[__\>% ++MV/[__P````#'A2C___\`````2,>%"/___P````!(QX7(_O__`````$C'A1#_ ++M__\`````Z;S]__]-A>T/A4D#``#'A?#^__\`````9@_OP#';QX4@____```` ++M`,>%N/[__P````!(QX7`_O__`````$C'A=#^__\`````QX4H____`0```,>% ++M./___P$```#'A<C^__\!````00\1AX````!)C8?@````2(G'2(F%J/[__^A# ++M!O__08N/L````$&+E\@```"%R0^$+0(``$B+A?C^__]).8>X````#X,9`@`` ++M2(N]J/[__XF5./___\>%3/___P$```#HG0/__XN5./___X72#X76`0``A-L/ ++MA-,*``!(QX58____`````$C'A6#___\`````2,>%V/[__P````#'A3C___\! ++M````38MN$$B-A6#___\QVTR-I5C___],C8U4____2(F%(/___TB+C0C___], ++MB>Y,B:7H_O__38G]2(N%6/___TC'A3#___\`````3(NE$/___TF)]TR)C1C_ ++M___K%9!)BU4`3(GA38L_2"G!2#G12`]'RD@!R$4QP$&+=@A)BWTP2(F%6/__ ++M_TPYX$F+12A)C5<@QX54____`0```$R+C>C^__]!#Y3`_[48_____[4@____ ++M_U`07D&)P5^%P`^%/@,``(N55/___X72#X45`P``2(N%6/___TPYX`^$!0,` ++M`$B+O3#___](BY5@____2(G&2"G^2"G:2(GW2`G7#X1:____3(N%X/[__TB+ ++MC?C^__],B>]$B8V\_O__Z/VI__]$BXV\_O__A<`/A4$%``"+A4S___^%P`^% ++MJ`(``$B+A5C___](BYU@____2(F%,/___^D&____QX6X_O__`````+H+```` ++MQX7P_O__`````,>%R/[__P````#'A2#___\`````2,>%P/[__P````!(QX70 ++M_O__`````,>%*/___P$````QP$B)A5C___](B85@____Z1`)```/'T``2(N] ++MJ/[__XF5,/___\>%3/___P````#HA`'__XN5,/___X72=<&$VP^$1P@``$F+ ++M1RA!BW8(28M_,/]0"(F%Z/[__X7`=&E(QX58____`````#'2,=M(QX5@____ ++M`````,>%(/___P````!(QX78_O__`````,>%./___P$```!(QX4P____```` ++M`.G2\?__2(NU,/___TB+O>C^__](B=KH&@'__^F<_/__#Q]$``!$BZ4X____ ++MQX4@____`0```$6%Y`^%-0$``$&+1W!!.T=L<Q!$BY78_O__1872#X6Z`0`` ++M08M>"$2-:P%!.<4/@^\```!$B>A(B<)(P>($2`'02,'@!$F)Q$B-@`@!``!( ++MB84P____28V<)%`!``!,`?M(B=_HU@+__X7`#X4.]/__3(GH2XV\)W@!``!( ++MP>`$3`'H2,'@!$''A`=(`0```0```.@7__[_2(G?B84X____08G%Z#8`__^% ++MP`^%SO/__T6%[0^%[P8``$B+A3#___]$BX4@____2,>%6/___P````!(QX5@ ++M____`````$P!^$B)A=C^__]%A<`/A9+\___'A?3^__\`````,=(QV\>%(/__ ++M_P````#'A>C^__\`````2,>%,/___P````#I?O#__[M0`0``13'D13'M2,>% ++M,/___P@!``#I(/___TC'A5C___\`````2,>%8/___P````!(QX78_O__```` ++M`.D?_/__#Q\`1(F-Z/[__TV)[S'2QX4@____`0```.D?\/__2(N]J/[__XF% ++MZ/[__TV)[^BH`?__08N-L````(7)="!(BX7X_O__23N%N````'(02(N]J/[_ ++M_^@A__[_,=+KL4B+A?C^__]!QX>P`````0```$F)A[@```#KU4B)PDC!X@1( ++M`=!(P>`$28V\!Z@!``!(B</HA.W__T&)Q87`#X39`@``00^WQ0T```"(187M ++M1`]/Z$&+1W"#^`$/A&H$``!!B4=LZ??]__]!@_@##X3,````2#G:#X1;`0`` ++M28M'>$B)A=#^__](A<`/A)0$``!(B=A(BXT0____2(N]T/[__TG'AX`````` ++M````2"G02(NU,/___TF)AX@```!(*=E(@\<@2(T<$4@!UDB)PDB)G1#____H ++M8O[^_TV%Y`^$>`(``,>%\/[__P````#'A3C___\`````QX7(_O__`````+L! ++M````QX6X_O__`````$C'A<#^__\`````2,>%T/[__P````#'A2C___\!```` ++MQX4@____`0```.GD^?__2#G:#X2%````2(N%,/___T@!T$B)A=#^__](B=A( ++M*=!(B87`_O__,<!-A>T/E<")A?#^__](BX40____2`'02"G82(F%$/___TV% ++MY`^$+0,``,>%R/[__P````"[`0```,>%N/[__P````#'A2C___\!````QX4@ ++M____`0```,>%./___P$```#I5OG__\>%./___P$```#'A?#^__\`````9@_O ++MP$$/$8>`````Z07___]-BR])BW\02(F%,/___TB-A6#___](B84@____387M ++M#X6_]/__,<`QVT@YV`^5P`^VP(F%./___^D`]___1(F-Z/[__TV)[XG"Z7#] ++M__]-BR])BW\0QX4H____`````,>%V/[__P````!-A>T/A$H#``!(BX7H_O__ ++M3(N=&/___TC'A0C___\`````2,>%$/___P````!(B84P____2(V%8/___TC' ++MA1C___\`````2(F%(/___^DI]/__08/X`P^$B/[__T@YV@^$%____TB)E1#_ ++M___I#O[__\>%./___P$```"Z`0```,>%\/[__P`````QV\>%(/___P````#' ++MA<C^__\`````B96X_O__2,>%P/[__P````!(QX70_O__`````.D'^/__28V\ ++M'T`!``#HD^K__T&)Q87`#X4/_?__28T$'T2+B#@!``!(B84X____187)='I! ++MBT=P@\`!08E'<.D%^___2(N%</___[L!````QX7P_O__`````$C'A=#^__\` ++M````2(F%"/___\>%./___P````#'A<C^__\`````QX6X_O__`````$C'A<#^ ++M__\`````QX4H____`0```,>%(/___P$```#I7O?__TR-99!,B>?HV_S^_T&) ++MQ87`#X5G_/__,?9,B>?H-OW^_T&)Q87`#X6P`0``28V,'P@!``!)C;P?,`$` ++M`$R)YDB-%3'J___HG/[^_T&)Q87`#X6&`0``2(N%./___TR)Y\>`.`$```$` ++M``#HR/W^_^D2____2,>%6/___P`````QVTC'A6#___\`````QX6X_O__```` ++M`,>%\/[__P````#'A<C^__\`````QX4@____`````,>%Z/[__P````!(QX78 ++M_O__`````$C'A<#^__\`````2,>%T/[__P````#'A3C___\!````2,>%,/__ ++M_P````#I(.O__TB)E0C____IQ_S__TC'A5C___\`````,=(QVTC'A6#___\` ++M````QX4@____`````,>%Z/[__P````!$B:WT_O__2,>%V/[__P````#'A3C_ ++M__\!````2,>%,/___P````#INNK__TF+1R!)BS=(B<=(@\8@_Q!(B870_O__ ++M2(7`=!!)B4=X2(N5</___^E`^___QX7P_O__`````+L!````2,>%P/[__P`` ++M``#'A<C^__\`````QX4H____`0```,>%(/___P$```#'A3C___\!````QX6X ++M_O__`0```.F"]?__3(GGZ%/\_O_IE?K__TB)A3#___],BYT8____2,>%$/__ ++M_P````!(QX48____`````#'`,=M(QX4(____`````.DZ\___BY4X____Z<WL ++M__^%T@^%:O?__XN=./___X7;#X0_^/__1(N=(/___TC'A5C___\`````2,>% ++M8/___P````!%A=L/A63Y___'A?3^__\`````,=O'A2#___\`````QX7H_O__ ++M`````$C'A=C^__\`````2,>%,/___P````#I=NG__X72#X7S]O__,<!(B858 ++M____2(F%8/___S'`B87T_O__,<!%,>TQV\>%./___P$```!(B878_O__,<!$ ++MB:WH_O__2(F%,/___^DIZ?__38LO28M_$$B)A3#___](C85@____2(F%(/__ ++M_TV%[0^%_.___^GH_O__Z!CY_O\/'X0``````/,/'OI52(GE059!54%44XGS ++M@?O\__\_=U=$C32=`````$F)_$6-;@A,B>_H$/K^_TB%P'0[1(DP2(UX!$V% ++MY'0228U-_$2)\DR)YNC@^O[_2(G'QP2?`````$B)^%M!7$%=05Y=PV8N#Q^$ ++M```````Q_UM!7$B)^$%=05Y=PV:0\P\>^E5(B>5!54F)_4%44TB#[`B+1PA( ++MBS^%P'1$C5C_2,'C`V9F+@\?A```````3(LD'TV%Y'0?28L\)$B%_W0%Z$GY ++M_O],B>>^$````.@<^/[_28M]`$B#ZPA(@_OX=<Y(A?]T#%I;05Q!75WI'?G^ ++M_UA;05Q!75W#D`\?0`#S#Q[Z54B)Y4%628G^055!5%-(BP=(A<`/A(P```!( ++MBU#X2(T44DR-+-!,.>AT8I!!BT7X28/M&(7`#X27````C5C_28M]"$C!XP,/ ++M'T0``$R+)!]-A>1T'TF+/"1(A?]T!>BI^/[_3(GGOA````#H?/?^_TF+?0A( ++M@^L(2(/[^'7.2(7_=`7HA/C^_TTY+G6?28M%^$F-??A(C01`2(TTQ0@```#H ++M9OK^_TF+?C!(A?]T!>A8^/[_28M^($B%_W0%Z$KX_O];28U^"$%<05U!7EWI ++MJ?[__TF+?0CKI9!FD/,/'OI52(GE055)B?U!5%-(@^P(BT<(A<!T1XU8_TC! ++MXP-F9BX/'X0```````\?`$F+10!,BR08387D=!M)BSPD2(7_=`7HY??^_[X0 ++M````3(GGZ+CV_O](@^L(2(/[^'7.0<=%"`````!(@\0(6T%<05U=PV9F+@\? ++MA```````\P\>^E6)^DR-3@%(B>5(@^P@9$R+%"4H````3(E5^$F)\H/_"7<A ++M@\(P08@20<8!`$B+1?AD2"L$)2@```!U>\E,B<C##Q\`,?],C47@0;O-S,S, ++M9F8N#Q^$``````"0B=")T4B#QP%)#Z_#2,'H(XTT@`'V*?&#P3!!B`PXB=&) ++MPH/Y8W?9@\(P28T$.$&($DR)RF9F+@\?A```````D`^V"$B#Z`%(@\(!B$K_ ++M3#G`=>U)`?GI<O___^CP]?[_\P\>^DF)^C')#[8\#D&+%(J)^#G7=#6#^G]_ ++M442-2K]$C4>_08/Y&78V08#X&7<]@\`@#[;`.<)U,TB#P0$/MCP.08L4BHGX ++M.==URTB#P0&%_W6UN`$```##9@\?1```@\(@08#X&7;'.==TS3'`P_,/'OJ+ ++M5PB^_O__/XG0T>B-1!`0@^#P@^@!.?`/1O`YT+C^__\_#T+P.?(/@\_X_O_I ++MFJO__V8N#Q^$``````#S#Q[Z54B)Y4%718G'059)B?Y!54F)]4%428G,4XG3 ++M0HT\`V8/;L](@\<!2(/L&$G'!@````!F#W#!X&8/UD7(Z)OR_O_S#WY%R$B) ++MVDR)[DF)!DB)QV9!#]9&".@?]/[_2(/$&$&-5P%,B>9(B<=(`=];05Q!74%> ++M05]=Z?_S_O^09F8N#Q^$```````/'P#S#Q[Z54B)Y5-(B?M(@^P(2,<'```` ++M`+\$````Z"_R_O](BQ70MP,`2(D#2(E3",8``$B#Q`A;7<.09@\?1```\P\> ++M^E5(B>5!5DF)_D%5051)B?13,=N`/@!T%P\?0`"->P%!@#P\`$B)^W7S03E^ ++M#'(M38LN08E>"#'2#Q]``$$/M@P408A,%0!(@\(!A,EU[EM,B?!!7$%=05Y= ++MPV:02(/'`>BG\?[_28L^28G%2(7_=`7H]_3^_TV)+D&)7@SKM&9F+@\?A``` ++M````#Q\`\P\>^E5(B>5!5D%5051)B?Q32#G^=#A$BW8(28GU1#EW#'(\2(L? ++M18ET)`A)BT4`,=)F9BX/'X0```````\?``^V#!"(#!-(@\(!A,EU\5M,B>!! ++M7$%=05Y=PP\?1```1(GW2(/'`>@4\?[_28L\)$B)PTB%_W0%Z&/T_O])B1PD ++M18ET)`SKGP\?A```````\P\>^HM7"+[^__\_B=#1Z(U$$!"#X/"#Z`$Y\`]& ++M\#G0N/[__S\/0O`Y\@^#Q?;^_^G*J?__9BX/'X0``````/,/'OJ+3PB+1PPI ++MR#GP<TB-!#&)PM'JC50"$+C^__\_@^+P@^H!.<(/1L(YRKK^__\_#T+".<$/ ++M@Y_V_O^)PBG*.?(/@I/V_O^-</_I;ZG__P\?@`````##D&8/'T0``/,/'OI5 ++M2(GE059!54F)U4%428G\4TB#[!"+0@A(QP<`````.<8/1_")\V8/;LY,C32= ++M!````&8/<,'@3(GW9@_61=CH"/#^__,/?D7828MU`$B)VDF)!"1(B<=F00_6 ++M1"0(Z#GU_O])BP0D0L=$,/P`````2(/$$%M!7$%=05Y=PY!F9BX/'X0````` ++M``\?`/,/'OI52(GE4TB)^TB#[`A(QP<`````OQ````#HG^_^_TB+%4"U`P!( ++MB0-(B5,(QP``````2(/$"%M=PP\?0`#S#Q[Z54B)Y4%528G]05132(GS2(/L ++M&(LVA?9T<S'`9F8N#Q^$``````!F#Q]$``"-4`&+#)-(B=!(C3R5`````(7) ++M=>M$C6(!2(/'!$G'10``````9@]NR&8/<,'@9@_61=CH&._^__,/?D783(GB ++M2(G>28E%`$B)QV9!#]9%"$B#Q!A;05Q!75WI0?3^_Y"_!````$&\`0```#'` ++MZZZ0\P\>^E5(B>5!5TF)_T%6055!5%-(@^P8@#X`#X2/````28GU,=MF+@\? ++MA```````1(UC`4.`?"4``$R)XW7Q2<<'`````&9!#V[,3HTTI00```!F#W#! ++MX$R)]V8/UD7(Z'ON_O_S#WY%R$F)!V9!#]9'"$6%Y'0J,=)F9BX/'X0````` ++M`&9F+@\?A```````00^V3!4`B0R02(/"`4DYU'7N2HU$,/SK(P\?@`````!( ++MQP<`````OP0```#H'^[^_TG'1P@`````28D'QP``````2(/$&%M!7$%=05Y! ++M7UW#D&9F+@\?A```````#Q\`\P\>^E5(B>5!5$F)_%-(B?-(@^P0BT8(2,<' ++M`````&9(#V[(2(T\A00```!F#W#!X&8/UD7HZ+7M_O_S#WY%Z$B+,TF)!"1( ++MB<>+0PAF00_61"0(2(/$$%N-4`%!7%WIW/+^_V9F+@\?A```````D/,/'OI5 ++M2(GE05=!5D%528GU05132(G[2(/L&(M'##E'"'50/?[__W\/AZ3S_O]!B<2Z ++M____?T'![`(IPD&#Q`%!.=1$#T?B18T\!$V)_$G!YP-,B?_H)NW^_XM3"$B+ ++M,TF)QH72=49(A?9U6$R),T2)8PR_$````.@S[_[_3(GN2(G'28G$Z`7___^+ ++M2PB-40%(B<B)4PA(BQ-,B23*2(/$&%M!7$%=05Y!7UW#2,'B`TR)^4B)QTB) ++M=<CH0/'^_TB+=<A(B??H%/#^_^N>\P\>^DB)P^G]\O[_9@\?1```54B-1RA( ++M@\<X2(GE05=)B==!5D%505132(/L&$"$]D@/1,=(B<9(B47`BT`,.48(=5H] ++M_O__?P^'S_+^_XG#NO___W_!ZP(IPH/#`3G3#T?:1(TL`TR)ZTG!Y0-,B>_H ++M/.S^_TB+=<!)B<2+1@A,BS:%P`^%SP```$V%]@^%W````$B+1<!,B2")6`R_ ++M&````.@Z[O[_08M?"$C'``````!)B<1(QT`(`````(7;=3!!BT<02(M-P$&) ++M1"00BT$(C5`!B5$(2(L13(DDPDB#Q!A;05Q!74%>05]=PP\?0`")V$C!X`-( ++MB<=(B47(Z*[K_O])B00D13'M08E<)`QFD$F+![\0````3HLT*.B_[?[_3(GV ++M2(G'2(G#Z)']__]!BT0D"$F#Q0B-4`%!B50D"$F+%"1(B1S"3#EMR'7"Z6W_ ++M__\/'T0``$B-%,4`````3(GI3(GV3(GGZ,+O_O],B??HFN[^_^D7____\P\> ++M^DF)Q>FG\?[_\P\>^DF)Q>F.\?[_D&9F+@\?A```````D/,/'OI52(GE05=! ++M5D%528G]051)B?13,=M(@^P(BQ:%T@^$D0```&9F+@\?A```````9F8N#Q^$ ++M```````/'P"-0P&)VDB-/(4`````2(G#08L$A(7`=>A$C7H"03E=#'(N38MU ++M`$&)70A,B?I,B>9,B??HZ._^_TB#Q`A,B>A;05Q!74%>05]=PV8/'T0``$B# ++MQP3H=^K^_TF+?0!)B<9(A?]T!>C&[?[_38EU`$&)70SKL@\?0`!,BS=!OP$` ++M``#KHY!F9BX/'X0``````)#S#Q[Z54B)Y4%6055!5%-(B?M(.?YT)$2+;@A) ++MB?1$.6\,<BQ,BS=$B6L(28LT)$&-50%,B??H5>_^_TB)V%M!7$%=05Y=PV8/ ++M'X0``````$2)Z$B-/(4$````Z.#I_O](BSM)B<9(A?]T!>@P[?[_3(DS1(EK ++M#.NND&8/'T0``/,/'OI52(GE05=!5D%528GU051!B=132(G[2(/L"#E7#'-E ++M@?K^__\_#X<S\/[_08G62HT\M00```#H@>G^_TB+.TF)QTB%_W0%Z-'L_O], ++MB3M$B6,,3(GR3(GN3(G_Z*SN_O](BP-"QP2P`````$2)8PA(@\0(6T%<05U! ++M7D%?7<-F#Q]$``"%TG4%13'VZ]-,BS]!B=;KO9!F#Q]$``#S#Q[Z54B)Y4%7 ++M059!54%428GT4TB)^TB#[`A(A?9T8$2+;OQ!P>T"18UU`40Y;PQR)DR+/T2) ++M:PA(@\0(3(GR3(GF6TR)_T%<05U!7D%?7>D;[O[_#Q\`2HT\M0````#HN^C^ ++M_TB+.TF)QTB%_W0%Z`OL_O],B3M$B6L,Z[=FD$R+/T&^`0```$4Q[>NG9I#S ++M#Q[ZBPJ%R0^$H@```%6)\$B)Y4%728G_059!54F)U4%44S';2(/L&`\?@``` ++M``!$C6,!0XM4I0!,B>.%TG7P187D=%)$B>9,B?^)1<SHC??__T2+=<RZ`0`` ++M`$F+#TR)\$G!Y@(IPD0!X$J--#%!`U<(B<!(P>("2(T\@>A.[/[_28L_3(GB ++M3(GN3`'WZ$WM_O]%`6<(2(/$&%M!7$%=05Y!7UW#9BX/'X0``````,.09F8N ++M#Q^$```````/'P#S#Q[Z58GP2(GE0513B=.+5PB--!B)T2G!.?(/0MF%VW4. ++M6T%<7<-F#Q^$``````!(BS>-#`.#P@%)B?PIRDB-#(Y(C3R&2,'B`DB)SNB^ ++MZ_[_02E<)`A;05Q=PP\?0`!(BS>+!H7`#X1O`0``54B)Y4%528G]051%,>13 ++M2(/L".LH9F8N#Q^$``````!F9BX/'X0```````\?A```````08G4BP0>A<!T ++M9D&-3"0!2(G*2(T<C0````"#^"YUX46%Y'0+08U$)/^#/(8O==&+!(Z#^"YT ++M28/X+W0$A<!UP$6%Y`^$AP```$&-7"3_N@(```!)B=Q(P>,"1(GF3(GOZ/O^ ++M__])BW4`BP0>A<!UFK@!````2(/$"%M!7$%=7<-!C40D`HL,ADB)QX/Y+W0( ++MA<D/A6C___]%C40D_D&!^/W__W]W'T2)XDECP$6)P$B#Z@-,*<*#/(8O=21( ++M@^@!2#G"=?$QP.NL#Q^``````#';@_@!&=*#P@+I>____Y"#Z`%(F(/X_W02 ++M@SR&+TB-4/]T'$B)T(/X_W7NA<ET-4&-?"0#,=M%,>3K$P\?0`!!B<0IQXG` ++M2(T<A0````")^D2)YDR)[^@T_O__28MU`.G._O__,=M%,>3KX[@!````PV9F ++M+@\?A```````#Q\`\P\>^E5(B>5!5%-,C6702(/L,&1(BQPE*````$B)7>A( ++MB?M,B>?H-?;__[\$````2,<#`````.BDY?[_2(L51:L#`$B)`TR)YDB)W\8` ++M`$B-3<](B5,(,=+HTA,#`$B+?=!(A?]T!>C4Z/[_2(M%Z&1(*P0E*````'4, ++M2(/$,$B)V%M!7%W#Z+3G_O_S#Q[Z28G$Z0OL_O_S#Q[Z28G$Z0SL_O]F9BX/ ++M'X0``````)#S#Q[Z54F)^$B)Y4%7059)B?Y!54%44TB#[%B+1@AD3(LD)2@` ++M``!,B67(28GTC5C_2,'C`X7`=#P/'X``````28L$)$R++!A-A>UT&TF+?0!( ++MA?]T!>@UZ/[_OA````!,B>_H".?^_TB#ZPA(@_OX=<Y-B?!!QT0D"`````!! ++MBU@(A=MU*DB+1<AD2"L$)2@````/A5@#``!(@\186T%<05U!7D%?7<,/'X0` ++M`````+\0````3(E%J$4Q[>AOY/[_08G93(M%J#';QP``````28G&2(U%L$G! ++MX0)(B4680;H#````ZRQF#Q^$``````!$.=,/A&\!``"-4P%)@\4$18D\GD'' ++M!)8`````B=--.<UT+4F+`$:+/"A!@_\@=="%VW5<,=MF+@\?A```````28/% ++M!$TYS77:#Q^``````(7;#X6X`0``387V#X0U____2(M%R&1(*P0E*`````^% ++MC0(``$B#Q%A,B?=;05Q!74%>05]=Z1;G_O]F#Q]$``!!BT0D#$$Y1"0(=70] ++M_O__?P^'D^K^_XG"N?___W],B46(P>H"*<%$B560@\(!3(E-H#G*#T?11(T\ ++M`D2)?:A)P><#3(G_Z&7C_O])B<-!BT0D"$F+-"1,BTV@1(M5D(7`3(M%B`^% ++ML````$B%]@^%W0```(M%J$V)'"1!B40D#+\0````3(E%D$2)5:A,B4V@Z$KE ++M_O]$BU6H2(UUL$B)QTR)=;")7;A)B<=$B56\Z`SU__]!BT0D"$2+5:@QVTR+ ++M3:!,BT60C5`!08E4)`A)BQ0D3(D\PD''!@````#IS?[__P\?1```2(M]F$R) ++M1:!,B4VH3(EUL(E=N(E=O.B]\?__3(MUL(M=N$2+5;Q,BT6@3(M-J.E>_O__ ++M3(G?2(T4Q0````!,B?E,B46`1(E5B$R)39!(B76@Z/+F_O](BW6@3(M-D$2+ ++M58A,BT6`28G#2(GW3(E%@$R)78A$B5603(E-H.BGY?[_3(M%@$R+78A$BU60 ++M3(M-H.GV_O__9I!!BT0D#$$Y1"0(=5P]_O__?P^'5NG^_XG"N?___W]$B56H ++MP>H"*<&#P@$YR@]'T0'0B<!,C3S%`````$F)Q4R)_^CJX?[_28G`08M$)`A) ++MBS0D1(M5J(7`=51(A?9U=4V)!"1%B6PD#+\0````1(E5J.CJX_[_1(M5J$B- ++M=;!(B<=,B76PB5VX28G%1(E5O.BL\___08M$)`B-4`%!B50D"$F+%"1,B2S" ++MZ9K]__],B<=(C13%`````$R)^42)5:!(B76HZ.?E_O](BW6H1(M5H$F)P$B) ++M]TR)1:!$B56HZ*SD_O],BT6@1(M5J.EN____Z)KC_O_S#Q[ZZ6GH_O_S#Q[Z ++M2(G#Z3/H_O_S#Q[Z2(G#Z6KH_O_S#Q[Z2(G#Z6WH_O^09F8N#Q^$``````"0 ++M\P\>^D2+1PB+1PQ$*<`Y\'-.08T$,(GROO[__S^)P='IC4P!$+C^__\_@^'P ++M@^D!.<$/1L%$.<$/0_!!.?`/@U[H_O^)\$0IP#G0#X)1Z/[_Z5J9__]F+@\? ++MA```````PV9F+@\?A```````#Q]``/,/'OI52(GE4TB)^TB#[`A(BS>_"@`` ++M`.BCX_[_2(/$"$B)V%M=PY`/'X0``````/,/'OJ`?PH`BU8(28GX=`:`?PD` ++M=!)(BS9!#[9X".E-P`(`#Q]$``!,BPZ%TG3G,<DQP&9F+@\?A```````9I!) ++MC3R!BQ>#^B]T14B)^.L,BU`$2(/`!(/Z+W0,A=)U\(M6".NQ#Q\`2"GX2,'X ++M`HG"A<!XZP'12&/!@\$!0<<$@5P```"+5@B)R#G1<K+KAC'2Z^%F9BX/'X0` ++M`````)#S#Q[Z54B)\$B)Y4%44TB)^TB#[$!(P>@@9$B+#"4H````2(E-Z$B) ++M\0^$HP```$FYS<S,S,S,S,PQ_TR-1=!F9BX/'X0``````&8/'T0``$B)R$B# ++MQP%)]^%(B<A(P>H#2(TTDD@!]D@I\(/`,$&(!#A(B<A(B=%(@_AC=]*#P3!) ++MC00X2(U5L8A-L`\?0``/M@A(@^@!2(/"`8A*_TDYP'7MQD0]L0!,C66P2(LS ++M3(GGZ(GA_O](BT7H9$@K!"4H````=1Q(@\1`2(G86T%<7<-,C66PB<],B>;H ++MD.K__^O*Z#GA_O]F#Q^$``````#S#Q[Z54B)Y4%6055!5%-(@^P@2(L?9$R+ ++M+"4H````3(EMV$F)]<='"`````#'`P````"+=@B%]@^$,0$``(`]:ZX$``!) ++MB?P/A4(!``!,C70V`D0Y=PP/@F,!``!)BW4`3(GR2(G?Z'3>_O](@_C_#X3* ++M````38LL)$&)1"0(B<!!QT2%``````!!BT4`A<`/A-D```!,B>XQV^L6#Q\` ++MBT8$2(/&!$B#PP&%P`^$O````"T```$`/?__#P!WX4B-?<#HB.[__TB+?<!- ++MBP0DBP=(C7<$A<!U0^DQ`0``D$B-2P%).<X/A",!``#!Z@HE_P,``('"`-@` ++M``4`W```08E4G0!(@\8$08E$C0!(C5D!BT;\A<`/A/,```!).=X/A.H```"- ++MD```__^!^O__#P!VK$B)V>O,#Q^``````$F+=0`QT@^V!H3`=!<QR9"#P@&) ++M!(N)T0^V!`Z$P'7P2(T<B\<#`````$&)5"0(2(M%V&1(*P0E*`````^%O0`` ++M`$B#Q"!;05Q!74%>7<.02(M%V&1(*P0E*`````^%G````$F+?0!(@\0@3(GB ++M6T%<05U!7EWI50H#``\?1```08'^_O__/P^'KN3^_T2)\$B-/(4$````Z//< ++M_O])BSPDQP``````2(G#2(7_=`7H/.#^_TF)'"1%B70D#$''1"0(`````.E2 ++M_O__#Q]$``!!B5PD"(G;0<<$F`````!(BT789$@K!"4H````=1%(@\0@6T%< ++M05U!7EWI\=_^_^CLWO[_9F8N#Q^$``````"0\P\>^E5(B>5!5$F)]%-(B?M( ++MQP<`````OQ````#H7MS^_TB+%?^A`P!,B>9(B=](B0-(B5,(,=+'``````#H ++M;?W__TB)V%M!7%W#\P\>^DF)Q.GMX_[_9@\?A```````\P\>^E5(B>532(G[ ++M2(/L"(`_``^$1`$``#'`#Q]$``"->`&`/#L`2(GX=?1(@\<!Z.O;_O](B<<Q ++MP&8/'T0```^V%`.(%`=(@\`!A-)U\8`_`+L!````='1(B?JX0P```$B-#;N; ++M`P`/MC)(@\(!2(/!`4`X\`^$A````$2-1K]$C4B_08#X&0^&H@```$&`^1D/ ++MAK@```!(B?JX4````$B-#5F2`P`/MC)(@\(!2(/!`4`X\'191(U.OT2-0+]! ++M@/D9=AM!@/@9=AXQV^BNWO[_B=A(BUWXR<-F#Q]$``"#QB!!@/@9=P.#P"!` ++M.,9UV@^V`>NQ9BX/'X0``````(3`=!`/M@'I7/___P\?0`"$P'7=Z&?>_O^[ ++M`0```(G82(M=^,G#9BX/'X0``````$&`^1D/AE[___^#QB!`./!TPNE1____ ++M9@\?A```````@\`@0#C&=*SI.____[\!````Z<G^__]F#Q^$``````#S#Q[Z ++M54B)Y4%7059!54%428GT4TB#[!A(BP;'1@@`````Q@``BU\(2(L/2,'C`DB- ++M-!E(P?L"2#GQ#X0!!```08G128GX2(G*18G+08'C``(``.M3#Q\`187;=!!! ++MB<)!@^*`08'Z@.\``'0S08G"08'B`/C__T&!^@#8```/A%0!```]__\```^& ++M<0$``#W__Q\`#X<F`@``2(/#`V:02#G^=!Y(B?J+`DB->@2#^']V[3W_!P`` ++M=YY(@\,!2#G^=>)!B=Y!.5PD#`^"3P(``$V+/"1!B=U%B<I,B?I!@>$``0`` ++M08'B``(```\?0`"+`4R-002)QX/X?P^&#P$``#W_!P``#X84`0``1872=!1! ++MB<-!@^.`08'[@.\```^$ZP```$&)PT&!XP#X__]!@?L`V```#X0$`0``/?__ ++M```/AED!```]__\?``^'?@$``,'H$KD2````@^@0B`)(@\(!9F8N#Q^$```` ++M``!F9BX/'X0```````\?@`````"#Z0:)^$B#P@'3Z(/@/X/`@(A"_X7)=>A, ++MB<$/'T0``$@Y\0^%1____TF+!"1,*?I%B70D"$+&!"@`2#G3#X6=`@``2(/$ ++M&%M!7$%=05Y!7UW#9@\?1```/?_;``!W(4@Y_G0<BT($+0#<```]_P,```^' ++ML0$``$B->@@/'T0``$B#PP+IE_[__P\?@`````"(`DR)P4B#P@'KA0\?1``` ++MB<&#X#](@\("P>D&@\"`@^E`B$+_B$K^3(G!Z6#___\]_]L``'<?23GP=!J+ ++M>01!B?M!@>,`_/__08'[`-P```^$:@$``$6%R0^%(0$``(G!@^`_O^W____! ++MZ0:#P("#X3^#P8"(2@%(@\(#3(G!0(AZ_8A"_^D%____#Q]$``")P8G'@^`_ ++MP>D&P>\,@\"`@^$_@^\@@\&`Z\H/'T0``#W___\#=RE(@\,$Z=#]__\]____ ++M`W<QP>@8N1@```"#Z`CI=O[__V8/'X0``````$B-4P5(@\,#A<!(#TG:Z9W] ++M__\/'T0``(7`#XBH````P>@>N1X```"#Z`3I/?[__X'[_O__/P^'7=_^_T&) ++MW42)3<1)C7T!3(E%R.APU_[_28L\)$R+1<C&``!$BTW$28G'2(7_=`WHM-K^ ++M_T2+3<1,BT7(28L(08M`"$V)/"1%B70D#$''1"0(`````$B--(%(.?$/A4[] ++M___I_][^_Y"XO?___[F_____O^_____IX?[__P\?0`!(@\,"Z?3\__\/'X`` ++M````N1(```"X\/___[_]_P``Z9']__\/'T``1(V8`"C__X'O`-P``$B#P0A( ++M@\($0<'C"F8/;@67A@,`00G[08V#```!`$6)V$'!ZP:)QX/@/T'!Z`Q!@^,_ ++MP>`(08/`$,'O$D0)V$&#X#]`#[;_P>`(1`G`P>`("?AF#V[(9@_\R&8/?DK\ ++MZ5_]__]!QT0D"`````!)BP0DQ@``2(/$&%M!7$%=05Y!7UW#Z3/>_O^09BX/ ++M'X0``````/,/'OI52(GE055!5$R-;;!32(G[OP0```!(@^Q(9$R+)"4H```` ++M3(EEV$F)]$C'1<``````Z`;6_O](BQ6GFP,`3(GOQ@``2(E%P$B)5<A,B>;H ++M:>;__XM3#(/Z_W1A@?KI_0``=&E(C4VO2(U]P$R)[N@9!`,`2(M]P$B+,^@] ++MV/[_2(M]L$B%_W0%Z`_9_O](BWW`2(7_=`7H`=G^_TB+1=AD2"L$)2@```!U ++M-4B#Q$A(B=A;05Q!75W##Q]``+H!````ZZ!F#Q^$``````!(C77`N@`"``!, ++MB>_HK_K__^N4Z+C7_O_S#Q[Z2(G#Z5;=_O_S#Q[Z2(G#Z5C=_O_S#Q[Z54B) ++MY4%505132(G[OQ````!(@^Q(9$R+)"4H````3(EEV$F)]$C'1<``````Z`K5 ++M_O],BRVKF@,`OP0```!(QT6P`````,<``````$B)1<!,B6W(Z./4_O_&``!, ++MB>9,B6VX3(UMP$R)[TB)1;#HB>K__TR)[DB)W^A>]/__BU,,@_K_=%Z!^NG] ++M``!T7DB-3:](C7VP3(GNZ.X"`P!(BWVP2(LSZ!+7_O](BWVP2(7_=`7HY-?^ ++M_TB+?<!(A?]T!>C6U_[_2(M%V&1(*P0E*````'4J2(/$2%M!7$%=7<,/'T`` ++MN@$```#KHY!(C76PN@`"``!,B>_HC_G__^N?Z)C6_O_S#Q[Z2(G#Z6[<_O_S ++M#Q[Z2(G#Z7#<_O_S#Q[Z54B)Y4%44TR-9=!(@^Q`9$B+'"4H````2(E=Z$B) ++M^TR)Y^AUY/__3(GF2(G?Z(KS__^_!````$C'1<``````Z-C3_O](BQ5YF0,` ++M2(E%P,8``$B)5<B+4PR#^O]T7H'ZZ?T``'1F2(U-OTB-?<!,B>;H]@$#`$B+ ++M?<!(BS/H&M;^_TB+?<!(A?]T!>CLUO[_2(M]T$B%_W0%Z-[6_O](BT7H9$@K ++M!"4H````=3)(@\1`6T%<7<-F#Q]$``"Z`0```.NC9@\?A```````2(UUP+H` ++M`@``3(GGZ(_X___KE^B8U?[_\P\>^DB)P^FFV_[_\P\>^DB)P^FHV_[_\P\> ++M^E5(B>5!5%-,C6702(/L0&1(BQPE*````$B)7>A(B?M,B>?H!>7__XM5V$B+ ++M==`/MGL(Z/6R`@"_!````$C'1<``````Z-/2_O](BQ5TF`,`2(E%P,8``$B) ++M5<B+4PR#^O]T68'ZZ?T``'1A2(U-OTB-?<!,B>;H\0`#`$B+?<!(BS/H%=7^ ++M_TB+?<!(A?]T!>CGU?[_2(M]T$B%_W0%Z-G5_O](BT7H9$@K!"4H````=2U( ++M@\1`6T%<7<.0N@$```#KJ&8/'X0``````$B-=<"Z``(``$R)Y^B/]___ZYSH ++MF-3^__,/'OI(B</IWMK^__,/'OI(B</IX-K^__,/'OI52(GE05=!5D%50513 ++M2(/L6&1(BSPE*````$B)?<B_$````.CTT?[_OP0```#'``````!)B<3HX='^ ++M_\8``+\$````28G&QT6L`P```.C*T?[_Q@``28G%2(U%H$4Q_TB)19!(C46P ++MNX````#'19@#````2(E%B`\?1```08D<)$B+!?67`P"Z``(``$B+=9!(BWV( ++M3(EEL$''1"0$`````$B)1;A,B76@1(E]J.BZ]O__@WV8#$R+=:!!QD4``$2+ ++M?:@/A>,```"Z#````$R)YDR)[^@#T_[_2(/X_P^$N0```(G"B<!!QD0%``!$ ++M.?IT6DR)[S';Z(#4_O]-A?9T%69F+@\?A```````,=M,B??H9M3^_TR)Y^A> ++MU/[_2(M%R&1(*P0E*`````^%G0```$B#Q%B)V%M!7$%=05Y!7UW#9BX/'X0` ++M`````$R)[DR)]^AEU/[_A<!T$4R)[^@9U/[_ZZ</'X``````B=C'19@,```` ++MP>@"C5P8`8'[_\\```^&]/[__TR)[[L!````Z.?3_O_I=/___V:00<9%```Q ++MTNE%____#Q]``+\-````Z&;0_O_&``!,B>](B468Z+?3_O],BVV8Z?O^___H ++MJ=+^__,/'OI(B</I.-G^__,/'OI(B</I']G^__,/'OI(B</I*-G^__,/'OI( ++MB</I`]G^_V8/'X0``````/,/'OJ+!XL62(/'!$B#Q@0YT'0\A<!T2(72=%2# ++M^"]T%X/Z+W0R.=`/G<`/ML"-1`#_PP\?1```@_HO=,<QP(72#Y[`C40`_\,/ ++M'X``````A<!UL,,/'P#!^!^#R`'#D+C_____PV8N#Q^$``````"X`0```,-F ++M+@\?A```````54B)^$B#P#A(B>5!5TF)UTB-5RA!5D%505132(/L*$"$]D@/ ++M1<*+4`B%T@^$30$``$R+"$&)RXG+38T4T4R)^DV+*46$VW1IBTH(18MU"$&) ++MST4I]P^(9@$``$&`?1(`#X5S`0``00^V11"$P`^%'`$``$6%_P^%)0$``$$/ ++MMD41A,`/A!@!``!%,<!%A?9U3+@!````2(/$*%M!7$%=05Y!7UW#28/!"$TY ++MRG3H38LI00^V11*$P'3K18MU"$2+>@A%*?</B#T!``!%,<!!@'T0`'4#13'_ ++M187V=+1,B57`18GT3(E-N$2(7<M$B7W,38GOB5VT2(G3#Q^``````$4/ME\3 ++M3(L3,<E-BP_K%Y#HZX?__X3`=#!(@\$!23G,#X2J````08T$"$&)S4F+%,)) ++MBP3)2(LR2(LX183;==#H._[__X7`=-!%.?4/A#____^+1<Q!@\`!03G`?J)( ++MB=I,BU7`3(M-N$0/MEW+BUVT28/!"$TYR@^%PO[__S'`2(/$*%M!7$%=05Y! ++M7UW#00^V11&$P`^%@````$6%_W7028/!"$TYT0^$Z/[__TV+*4&)ST6+=0A% ++M*?</B9K^__])@\$(33G1=>0QP.NR9I!!@\4!Z7#___]!#[9%$83`#X7E_O__ ++M187_=+9!@^\!13'`08!]$``/A=O^__]%,<!%,?_IT/[__TF#P0A-.=$/A9G^ ++M__^)V.EZ_O__18GXZ;3^__]F9BX/'X0``````)#S#Q[Z54B)Y4%7059!54%4 ++M4TB#[$A(B7VHBT8(C5C_9$R+/"4H````3(E]R$F)]TC!XP.%P'0Z9@\?A``` ++M````28L'3(LL&$V%[70;28M]`$B%_W0%Z&;0_O^^$````$R)[^@YS_[_2(/K ++M"$B#^_AUSTB+1:A!QT<(`````(M8"(7;=2Q(BT7(9$@K!"4H````#X5M`@`` ++M2(/$2%M!7$%=05Y!7UW#9BX/'X0``````+\0````13'DZ*/,_O\QR4F)Q4B+ ++M!3^2`P!!QT4``````$B)1;A(BT6H2(LP2(U%L$B)1:#K%F8N#Q^$``````!) ++M@\0!.=@/@]4```!"@SRF+T6)YD&-1"0!=>5$B>)(BWV@2(TTCDR);;`IRNA_ ++MXO__3(MML$&+1PQ!.4<(=5D]_O__?P^'I]7^_XG"N?___W_!Z@(IP8/"`3G* ++M#T?1`=")19A(P>`#2(G'2(E%D.C]R_[_28G"08M'"$F+-X7`#X4S`0``2(7V ++M#X5)`0``BT6838D708E'#+\0````Z/[-_O](BW6@2(G'2(E%F.C.W?__08M' ++M"$B+39A)@\0!C5`!08E7"$F+%TB)#,)(BT6H08U.`4B+,(G(.=@/@BO___^) ++MVDB+?:!(C32.3(EML"G*Z+KA__],BVVP08M'#$$Y1PAU5#W^__]_#X?)U/[_ ++MB<.Z____?\'K`BG"@\,!.=,/1]I$C20#3(GC2<'D`TR)Y^@ZR_[_28G&08M' ++M"$F+-X7`#X6D````2(7V#X6V````38DW08E?#+\0````Z#[-_O](BW6@2(G' ++M2(G#Z`_=__]!BT<(C5`!08E7"$F+%TB)',)-A>T/A`C^__](BT7(9$@K!"4H ++M````=7E(@\1(3(GO6T%<05U!7D%?7>D?SO[_#Q^``````$B+39!,B==(C13% ++M`````$B)=9#H(,_^_TB+=9!)B<)(B?=,B560Z.W-_O],BU60Z:+^__](C13% ++M`````$R)X4R)]TB)=:CH[<[^_TB+=:A(B??HP<W^_^D]____Z+?,_O_S#Q[Z ++M2(G#Z7+3_O_S#Q[Z2(G#Z9C3_O_S#Q[ZZ9G3_O_S#Q[Z2(G#Z8/3_O_S#Q[Z ++M28G$Z;/3_O]F9BX/'X0```````\?`/,/'OI52(GE4TB)^TB#[`A(BQ:+1@A( ++MC32"ZPT/'T``2(/N!(,^+W072#GR=?)(B=_H6MK__TB)V$B+7?C)PY!(*=9( ++MP?X"C48!2(TT@NO>\P\>^E5(B>5!5T%6055!5$F)_%-(B=-(@^P8BT((B77, ++M@_@!#X;&````3(L:@'H3`$&)S4V+,W0(A<D/A=\```!!BT0D((E%P(7`#X2) ++M`@``38L.38M$)!@QR42+5<#K%`\?@`````!(@\$!23G*#X3K````38L\R$R) ++MSDF+?PCH*_G__X7`==^%R0^(SP```$V%]G0=28L^2(7_=`7H?<S^_[X0```` ++M3(GWZ%#+_O],BQN+0PA)C7,(3(G?C5#_2,'B`^@WS?[_@VL(`0^V=<Q(B=I( ++M@\0808U-_TR)_UM!7$%=05Y!7UWI$O___V:0A<!T"H!Z$P`/A6`!```/MG7, ++M2(/$&$B)VDR)YUM!7$%=05Y!7UWI!=S__P\?1```08M6"$F+!H72#X02____ ++M2(T,D&9F+@\?A```````9I"+$(/Z*G2W@_H_=+)(@\`$2#G!=>OIY_[__V8/ ++M'T0``$&+1"0DBW7`.<9U7X'^_O__?P^'\-'^_XG"N?___W_!Z@(IP8/"`3G* ++M#T?1`=")P$F)QTC!X`-(B<=(B47`Z!W(_O])BW0D&$F)P$&+1"0@A<`/A>X` ++M``!(A?8/A00!``!-B40D&$6)?"0DOT@```#H&\K^_V8/[\"_$`````\1`$F) ++MQ^C7Q_[_28E'"$R)]DF-?PA(BQ5MC0,`QP``````08M$)"!)B5<0C5`!2<=' ++M&`````!!B50D($F+5"082<='(`````!)QT<H`````$G'1S``````2<='.``` ++M``!)QT=``````$R)/,)-B2?H+=W__TR+&TV+,^DS_O__2(L"2(L02(L"BU(( ++MA=)T+TB-#)!F9BX/'X0```````\?`(L0@_HJ#X1S_O__@_H_#X1J_O__2(/` ++M!$@YR'7CQD,3`.E8_O__2(M-P$R)QTB-%,4`````2(EUP.B"R_[_2(MUP$F) ++MP$B)]TR)1<#H3\K^_TR+1<#IY_[__T&+1"0DA<`/A>3^___IC/[___,/'OI( ++MB</I==#^_P\?A```````\P\>^E5(B>5!5T%6055)B?U!5%-(B?-(@^Q(2(E- ++MH&1(BP0E*````$B)1<@QP`^VPDB)\C'VB<&)19SH\/;__X3`#X78`0``1(MC ++M"$&#_`$/AHH!``!(BP-%BT4@2(L`187`#X1W`0``3(L(38M5&$4Q_^L0#Q\` ++M28/'`4TY^`^$6P$``$N+!/I,B<Y(BW@(Z!OV__^%P'7?187_#X@^`0``1(G@ ++M2,=%L`````!(P>`#2,=%N`````!(B<=(B460Z/O%_O](B46P13'V1(EEO$B+ ++M`[\0````2HLT,$B)=:CH"\C^_TB+=:A(B<=)B<3HW-?__XM%N$B+3;!)@\8( ++MC5`!B56X2(T4Q0````!,B23!3#EUD'6Y2(M]L$R+)TV%Y'0M28L\)$B%_W0% ++MZ._(_O^^$````$R)Y^C"Q_[_BT6X2(M]L(UP_TB-%/4`````2(U'"$R-9;!( ++MB<;HH,G^_TF+11A(BTV@3(GFBU6<@VVX`4J+//CHA?[__XG"2(M]L(M%N(32 ++M#X6D````A<!T042-8/])P>0##Q^$``````!.BS0G387V=!Y)BSY(A?]T!>AJ ++MR/[_3(GWOA````#H/<?^_TB+?;!)@^P(28/\^'7/2(7_=`KH1<C^_P\?1``` ++MBTV<2(G:O@$```!,B>_H/?7__TB+7:"(`TB+5<AD2"L4)2@```!U=DB#Q$A; ++M05Q!74%>05]=PV8/'X0``````$B+1:#&``"X`0```.O+9I"%P'0^C5C_2,'C ++M`P\?1```3(LD'TV%Y'0?28L\)$B%_W0%Z,G'_O],B>>^$````.B<QO[_2(M] ++ML$B#ZPA(@_OX=<Y(A?]TL.BDQ_[_ZZGHG<;^__,/'OI(B</I\\W^__,/'OI( ++MB</I!L[^__,/'OI(B</I!\[^_V8/'X0``````/,/'OI52(GE05=!5D%5051) ++MB?Q32(/L2&1,BSPE*````$R)?<A!B?=(QP<`````OQ````#HU\/^_TB+%7B) ++M`P"_!````$F)!"1)B50D",<``````.BWP_[_QT6L`P```$F)Q42)_\8``$&! ++M_P$``X`/A)H#``!!@?\"``.`#XT%`0``08'_!$``@`^$H`,``$&!_P5``(`/ ++MC9,"``!!@?\!0`"`#X0N`0``3(TU[X,#`$&!_P)``(`/A8P"``!(C46@,=)( ++MB468,=MF#Q]$``"-0P%!@#P&`$B)PW7S2(M]F(G>3(EMH(E5J.@AXO__BW6H ++M3(MMH#'`2(GW3`'N9I!!#[84!H@4!DB#P`&$TG7P`?M(BW68,=),B>=,B6V@ ++MB5VHZ!GD__]-A>UT"$R)[^@\QO[_08M$)`B%P`^$'P(``(/X`70:28L4)(U( ++M_X,\B@H/A.\"``!F#Q^$``````!(BT7(9$@K!"4H````#X7S`@``2(/$2$R) ++MX%M!7$%=05Y!7UW##Q\`08'_#@`'@`^$6P(``$&!_U<`!X!T2DB-1:!,C36E ++M>0,`,=)(B46808'_$0$$@`^$#/___T2)^&8QP#T```"(=2M!#[??B=_K+P\? ++M@`````!,C36)>0,`Z=K^__\/'T``3(TU28(#`.G*_O__187_#XA-`0``1(G[ ++MZ$O"_O\Q]DB-%>AX`P!)B<9F9BX/'X0```````\?0`"-1@&`/`(`2(G&=?1( ++MC7V@3(EMH,=%J`````!(B7V8B464Z,G@__^+1:B+=91(C16B>`,`28G`2`-% ++MH`\?1```#[8Z2(/"`4B#P`%`B'C_0(3_=>Q(BWV800'PO@H```!$B46HZ(?@ ++M__],BVV@BW6HB=],`>[H)LW__TPIZ(G#387V#X1J_O__,=M(C35,>`,`9F8N ++M#Q^$```````/'T``C5,!@#P6`$B)TW7T2(M]F(G6B46HZ#;@__^+1:A,BVV@ ++M2(T5%7@#`$B)QTP!Z&9F+@\?A```````#Q^```````^V,DB#P@%(@\`!0(AP ++M_T"$]G7L08`^`(T4.P^%I_W__S';Z;7]__\/'X0``````$B-1:!,C37B=P,` ++MN@````!(B468#X1^_?__3(GOZ![$_O]F9BX/'X0```````\?`$B-7;!(C46W ++MZSEF9BX/'X0``````&9F+@\?A```````9F8N#Q^$``````!F9BX/'X0````` ++M`&8N#Q^$``````!(B=!$B?E!P>\$@^$/C7$PC5$W@_D)#T;6B!!(C5#_2#G# ++M==Q(C36P>P,`3(GGQD6X`.C)H`(`2(G>3(GGZ+Z@`@#I>?W__V8/'X0````` ++M`$B-1:!,C35U@`,`,=)(B468Z<+\__]F+@\?A```````2(U%H$R--1UW`P`Q ++MTDB)19CIHOS__V8N#Q^$``````!(C46@3(TUQG8#`#'22(E%F.F"_/__C4C^ ++M2(T4BH,Z#0^%"OW__T&)3"0(QP(`````Z?K\___H!<+^__,/'OI(B</IMLG^ ++M__,/'OI(B</IJLG^__,/'OI(B</IK\G^__,/'OI(B</IDLG^__,/'OI(B</I ++MBLG^__,/'OI(B</I>LG^_Y!F9BX/'X0``````)#S#Q[Z5;D2````2(GE051) ++MB?132(VU4/___TB)^TB)]TB![*````!D2(L$)2@```!(B47H,<#S2*M,B>>$ ++MTG4PZ+O"_O^%P'0P,<!(BU7H9$@K%"4H````#X47`0``2('$H````%M!7%W# ++M9@\?1```Z'O#_O^%P'70BX5H____,=*)P8'A`/```('Y`$```'0$2(M5@/,/ ++M;T6XB4-(3(GG2(N%8/___TB)$P\10PCS#V]%J$B)0U!(BX5L____#Q%#*/,/ ++M;T682(E#6$B+A7C___\/$4,89@]OA5#___](B4-@#Q%#..CUOO[_2(7`=$)) ++MC50$_TDYU'0X@'K_+TB-0O]U*>MF9F8N#Q^$``````!F9BX/'X0```````\? ++M0`"`>/\O2(U0_W1&2(G023G$=>Y(C7MH3(GFZ`+,__^+0W"%P'0-2(M3:(G! ++M@'P*_R]T#K@!````Z>_^__\/'T``@^@!B4-PQ@0"`.OF2(G0D$F)Q.N]Z#;` ++M_O]F#Q]$``#S#Q[Z54B)Y>CCO?[_BP"%P'00#[?078'*````B(7`#T_"P[@% ++M0`"`7<-F#Q]$``#S#Q[Z5;@``$``BS](.<)(#T?02(GEZ$7!_O]=PP\?`/,/ ++M'OJ+1PB%P'0,2(L7B<&`?`K_+W4)PP\?A```````.T<,=!N#P`'&!`HOB<'& ++M!`H`B4<(PV8N#Q^$``````!52(GE2(/L$$B)??CH#\K__TB+??B+3PA(BQ=( ++MB<C&!`HO@\`!B<'&!`H`B4<(R</S#Q[Z54B)Y4%728G_2(G7059!54%44TB) ++M\TB#[&AD3(LD)2@```!,B67(28G4Z,W*__^`.R\/A.0!``"_$````.C*O/[_ ++MQP``````28G%387_#X3X`@``3(UUL$R)_DR)]^CYF0(`2(L%2H(#`$R)]DR) ++M;9!(B85X____2(E%F$B-19!(B<=(B46(Z$#2__](BWVP3(MMD$2+?9B+59Q( ++MA?]T"XE5@.C$O_[_BU6`187_=#5$B?A!@WR%_"](C0R%`````'0B03G7#X1\ ++M`P``0<=$#0`O````08U'`4''1(4``````$F)QT&#?0`OOQ````!(QT6@```` ++M``^418#H#+S^_TB)1:!(B[UX____QP``````#[9%@$B)?:A)C72%`$B-1:!( ++MB<=(B;5X____2(E%B.C'T/__2(G>3(GWZ!R9`@!(BWV(3(GVZ`"=`@!(BWVP ++M2(7_=`7H$K_^_TB+?8CH.=3__XG#A,`/A)0````/MD6`1#GX<PU(BX5X____ ++MQP``````3(GN3(GWZ)[5__],B?9,B>?H\\G__TB+?;!(A?]T!>C%OO[_2(MU ++MH$R)]^AYU?__BW6X3(GGZ$[:__](BW6P08M,)`@QP$D##"1F9BX/'X0````` ++M``\?0``/MA0&B!0!2(/``832=?%(BWVPBT6X00%$)`A(A?]T!>AKOO[_2(M] ++MH$B%_W0%Z%V^_O],B>_H5;[^_^L^#Q\`#[93`4B->P&$TG0J,<!F9BX/'X0` ++M``````\?@`````")QH/``8G1B<(/MA07@/DN="Z$TG7JNP$```!(BT7(9$@K ++M!"4H````#X4&`@``2(/$:(G86T%<05U!7D%?7<.0A?9T"8U._X`\#R]UQ832 ++M=!^`^B]T&H#Z+G6EC4X"#[8,#X3)=`J`^2]UE0\?1```2(U=H$B)_DB)W^BA ++MEP(`2(G?Z-G2__^$P'1J08-\)`@!=A%!QT0D"`$```!)BP0DQD`!`$B+=:!( ++MC7VPZ#_4__^+=;A,B>?H%-G__TB+=;!!BTPD"#'`20,,)`\?1```#[84!H@4 ++M`4B#P`&$TG7Q2(M]L(M%N$$!1"0(2(7_=`7H.[W^_TB+?:!(A?\/A!3____H ++M*;W^_^D*____#Q]``+\$````Z+:Y_O])B<9(BP54?P,`,?8Q_T'&!@!(B85X ++M____2(E%J.B4NO[_28G'2(7`=0],B?<QV^CBO/[_Z8#^__](C46@3(G^3(EU ++MH$B)QTB)18CH5L?__TB+1:!,B?](B46`Z":\_O^_$````$C'1;``````Z$2Y ++M_O_'``````!,C76P2(MUB#'22(N->/___TR)]TB)1;!(B4VXZ$W:__](BX5X ++M____3(GV3(EMD$B)19A(C4602(G'2(E%B.B[SO__2(M]L$R+;9!$BWV8BU6< ++M2(7_=!&)E73____H/+S^_XN5=/___TB+?8!(A?\/A5W\___I8_S__TB+?8A, ++MB6V01(E]F$2)?9SHO\?__XM-F$R+;9!)B<](P>$"Z5S\___H][K^__,/'OI( ++MB</I2,/^__,/'OI(B</I<\/^__,/'OI(B</IJL/^__,/'OI(B</IC\/^__,/ ++M'OI(B</IH,/^__,/'OI(B</I,</^__,/'OI(B</IG</^__,/'OI(B</IH</^ ++M__,/'OI(B</II</^__,/'OI(B</I*,/^__,/'OI(B</IG</^__,/'OI(B</I ++MML+^__,/'OI(B</IH,/^_Y!F+@\?A```````\P\>^@^W!V:#^`=V"8U0]F:# ++M^C9W"L-F#Q^$``````!F@_@(=?!(BW\(2(7_=.=(@^\$Z8BZ_O\/'X0````` ++M`/,/'OI52(GE4TB)^TB#[`@/MP=F@_@'=@F-4/9F@_HV=QY(QP,`````,<!( ++MQT,(`````$B+7?C)PP\?@`````!F@_@(==Q(BW\(2(7_=--(@^\$Z"BZ_O_K ++MR&8/'T0``/,/'OI52(GE05=)B?]!5DB-1<1)B=9!54%44TB#[$AD3(LL)2@` ++M``!,B6W(38G%2(E%N$F)\$R);:!(A<D/A)T```!(BP%)*T=`2#W__P$`#X>* ++M````08G%A<`/A$4!``!,B76P,=M-B<1(B4VHZQH!TX7`=7J%T@^$"@$``('[ ++M__\!``^')@$``$F+!"1%B>['1<0`````B=Y!*=Y(BTVX20-W,$R)YT2)\O]0 ++M&(M5Q$$YUG.ZN`5``(!(BU7(9$@K%"4H````#X5Q`0``2(/$2%M!7$%=05Y! ++M7UW##Q\`0;T```(`Z7;___\/'T0``$R+=;!(BTVHB<)-B>"%VW0)387V=0I) ++M`5]`B=#KK6:03(GP13'M38G^B56P3(E%J$6)[$F)QTB)39CK)@\?0`")T4$! ++MU$D!3D"%P`^%>O___X72#X1M____03G<#X/.````28L'08G=QT7$`````$2) ++MYD4IY4B+3;A)`W8P3(G_1(GJ_U`8BU7$03G5<[+I,____P\?1```3(MUL$B+ ++M3:B)PDV)X(7;=`U-A?8/A6[___])`5]`,<#I#O___P\?`$R+=;!(BTVHB<)- ++MB>!-A?8/A4K___^)V$D!1T"!^P```@!UTDB+?:!(A?\/A%G^__]!]T=`__\_ ++M``^%2_[__TB+!TF-=T!(B4VH3(E%L$B)\O]0&$R+1;!(BTVHA<`/A";^___I ++MHO[__P\?@`````"+5;!,B?A,BT6H38GW2(M-F$F)QH72=)2)T.E\_O__Z&RW ++M_O]F9BX/'X0``````)#S#Q[Z54R)P4B)Y4%528G5051)B?132(G[2(/L*$B# ++M?S``9$R+!"4H````3(E%V$V)R'0T2,=#0`````!(BT789$@K!"4H````=7]( ++M@\0H3(GJ3(GF2(G?6T%<05U=Z4W]__\/'T0``$B-?="Z```"`+Z`````3(E% ++MP$B)3<CH;;7^_TB+3<A,BT7`A<!U,4B+1=!(B4,P2(7`=9A(BT789$@K!"4H ++M````=1](@\0HN`X`!X!;05Q!75W##Q]$``!(QT,P`````.O2Z)&V_O^0\P\> ++M^HE76#'`PV8/'T0``/,/'OJ)5S@QP,-F#Q]$``#S#Q[ZB5=<,<##9@\?1``` ++M\P\>^HE7/#'`PV8/'T0``/,/'OJ#^@%U%P^V!CPH=Q"(1U`QP,-F+@\?A``` ++M````N`%``(##9BX/'X0``````/,/'OJ#^@%U%P^V!CPH=Q"(1T@QP,-F+@\? ++MA```````N`%``(##9BX/'X0``````/,/'OHQP(7V#Y7`B4=4,<##9F8N#Q^$ ++M```````/'T``\P\>^C'`A?8/E<")1T0QP,.09F8N#Q^$```````/'P#S#Q[Z ++M2(M'2$B)!C'`PV:0\P\>^DB+1S!(B08QP,-FD/,/'OJ)=V0QP,-F#Q]$``#S ++M#Q[ZB7<\,<##9@\?1```\P\>^DB)=V@QP,,/'T0``/,/'OI(B7<X,<##D`\? ++M0`#S#Q[Z2,<"`````$B)\3'`2(G62(T5EF<#`&8/'T0``$0/M@0!1#@$`G4= ++M2(/``4B#^!!UZTB)^$B)!C'`@T<H`<-F#Q]$```QP$B-%;]F`P!$#[8,`D0X ++M#`%U&0\?0`!(@\`!2(/X$'3+1`^V#`)$.`P!=.LQP$B-%:)F`P!FD$0/MA0" ++M1#@4`74=2(/``4B#^!!UZTB-1PA(B08QP(-'*`'##Q]$```QP$B-%:]F`P!F ++M9BX/'X0```````\?0`!$#[8<`D0X'`%U$TB#P`%(@_@0=>M(C4<0Z5K___\Q ++MP$B-%0EF`P!F9BX/'X0``````&9F+@\?A```````#Q\`1`^V'`)$.!P!=1-( ++M@\`!2(/X$'7K2(U'&.D:____,<!(C1499@,`9F8N#Q^$``````!F9BX/'X0` ++M``````\?`$0/MAP"1#@<`7432(/``4B#^!!UZTB-1R#IVO[__[@"0`"`PV9F ++M+@\?A```````D/,/'OI(@^\@Z8/^__\/'P#S#Q[Z2(/O&.ES_O__#Q\`\P\> ++M^DB#[Q#I8_[__P\?`/,/'OI(@^\(Z5/^__^09I#S#Q[ZBT<H@\`!B4<HPV:0 ++M\P\>^HM'"(/``8E'",-FD/,/'OJ+1Q"#P`&)1Q##9I#S#Q[ZBT<8@\`!B4<8 ++MPV:0\P\>^HM'((/``8E'(,-FD/,/'OJ)5S@QP,-F#Q]$``#S#Q[ZB5<8,<## ++M9@\?1```\P\>^HE7,#'`PV8/'T0``/,/'OJ)5Q`QP,-F#Q]$``#S#Q[ZA?8/ ++ME4<L,<###Q\`\P\>^H7V#Y5''#'`PY!FD/,/'OI(BT=82(D&,<##9I#S#Q[Z ++M2(M'0$B)!C'`PV:0\P\>^DC'`@````!(B?$QP$B--1EE`P!F#Q^$``````!$ ++M#[8$!D0X!`%U'4B#P`%(@_@0=>M(B?A(B0(QP(-'(`'#9@\?1```,<!(C34_ ++M9`,`1`^V#`9$.`P!=1D/'T``2(/``4B#^!!TRT0/M@P&1#@,`73K,<!(C34B ++M9`,`9I!$#[84!D0X%`%U'4B#P`%(@_@0=>M(C4<(2(D",<"#1R`!PP\?1``` ++M,<!(C34O9`,`9F8N#Q^$```````/'T``1`^V'`9$.!P!=1-(@\`!2(/X$'7K ++M2(U'$.E:____,<!(C36)8P,`9F8N#Q^$``````!F9BX/'X0```````\?`$0/ ++MMAP&1#@<`7432(/``4B#^!!UZTB-1QCI&O___[@"0`"`PV9F+@\?A``````` ++MD/,/'OI(QP(`````2(GQ,<!(C37I8P,`9F8N#Q^$``````!F9BX/'X0````` ++M``\?`$0/M@0&1#@$`74=2(/``4B#^!!UZTB-1^A(B0(QP(-'"`'##Q]$```Q ++MP$B--?]B`P!$#[8,!D0X#`%U&0\?0`!(@\`!2(/X$'3+1`^V#`9$.`P!=.LQ ++MP$B-->)B`P!FD$0/MA0&1#@4`74=2(/``4B#^!!UZTB-1_!(B0(QP(-'"`'# ++M#Q]$```QP$B-->]B`P!F9BX/'X0```````\?0`!$#[8<!D0X'`%U$TB#P`%( ++M@_@0=>M(C4?XZ5O___\QP$B--4EB`P!F9BX/'X0``````&9F+@\?A``````` ++M#Q\`1`^V'`9$.!P!=1)(@\`!2(/X$'7K2(GXZ1S___^X`D``@,-F9BX/'X0` ++M`````&:0\P\>^DC'`@````!(B?$QP$B--:EB`P!F9BX/'X0``````&9F+@\? ++MA```````#Q\`1`^V!`9$.`0!=1U(@\`!2(/X$'7K2(U'\$B)`C'`@T<0`<,/ ++M'T0``#'`2(TUOV$#`$0/M@P&1#@,`749#Q]``$B#P`%(@_@0=,M$#[8,!D0X ++M#`%TZS'`2(TUHF$#`&:01`^V%`9$.!0!=1U(@\`!2(/X$'7K2(U'^$B)`C'` ++M@T<0`<,/'T0``#'`2(TUKV$#`&9F+@\?A```````#Q]``$0/MAP&1#@<`742 ++M2(/``4B#^!!UZTB)^.E<____,<!(C34*80,`9F8N#Q^$``````!F9BX/'X0` ++M``````\?0`!$#[8<!D0X'`%U$TB#P`%(@_@0=>M(C4<(Z1O___^X`D``@,-F ++M9BX/'X0``````)#S#Q[Z2,<"`````$B)\3'`2(TU:6$#`&9F+@\?A``````` ++M9F8N#Q^$```````/'P!$#[8$!D0X!`%U'4B#P`%(@_@0=>M(C4?X2(D",<"# ++M1Q@!PP\?1```,<!(C35_8`,`1`^V#`9$.`P!=1D/'T``2(/``4B#^!!TRT0/ ++MM@P&1#@,`73K,<!(C35B8`,`9I!$#[84!D0X%`%U'4B#P`%(@_@0=>M(B?A( ++MB0(QP(-'&`'#9@\?1```,<!(C35O8`,`9F8N#Q^$```````/'T``1`^V'`9$ ++M.!P!=1-(@\`!2(/X$'7K2(U'".E;____,<!(C37)7P,`9F8N#Q^$``````!F ++M9BX/'X0```````\?`$0/MAP&1#@<`7432(/``4B#^!!UZTB-1Q#I&____[@" ++M0`"`PV9F+@\?A```````D/,/'OJ+1R"#P`&)1R##9I#S#Q[ZBT<(@\`!B4<( ++MPV:0\P\>^HM'$(/``8E'$,-FD/,/'OJ+1QB#P`&)1QC#9I#S#Q[ZA?8/E8>1 ++M2@``,<##\P\>^H7V#Y6'@4H``#'`P_,/'OI(BT<X2"M'2$@#1V!(B08QP,-F ++M+@\?A```````\P\>^DB+1R!(*T<P2`-'2$B)!C'`PV8N#Q^$``````#S#Q[Z ++M2,<"`````#'`2(T-C%\#`&9F+@\?A```````9F8N#Q^$``````!F#Q]$``!$ ++M#[8$`40X!`9U'4B#P`%(@_@0=>M(B?A(B0(QP(-'$`'#9@\?1```,<!(C0V_ ++M7@,`1`^V#`%$.`P&=1D/'T``2(/``4B#^!!TRT0/M@P!1#@,!G3K,<!(C0W" ++M=@,`9I!$#[84`40X%`9U'4B#P`%(@_@0=>M(C4<(2(D",<"#1Q`!PP\?1``` ++M,<!(C0U/7@,`9F8N#Q^$```````/'T``1`^V'`%$.!P&=1M(@\`!2(/X$'7K ++M2(V'F````$B)`C'`@T<0`<.X`D``@,,/'T``\P\>^DC'`@`````QP$B-#8Q> ++M`P!F9BX/'X0``````&9F+@\?A```````9@\?1```1`^V!`%$.`0&=25(@\`! ++M2(/X$'7K2(V':/___TB)`C'`@X=X____`<,/'X``````,<!(C0VW70,`1`^V ++M#`%$.`P&=3%F9BX/'X0``````&9F+@\?A```````9@\?1```2(/``4B#^!!T ++MJT0/M@P!1#@,!G3K,<!(C0VB=0,`9I!$#[84`40X%`9U)4B#P`%(@_@0=>M( ++MC8=P____2(D",<"#AWC___\!PP\?@``````QP$B-#2==`P`/'X``````1`^V ++M'`%$.!P&=1I(@\`!2(/X$'7K2(GX2(D",<"#AWC___\!P[@"0`"`PP\?1``` ++M\P\>^DC'`@`````QP$B-#6Q=`P!F9BX/'X0``````&9F+@\?A```````9@\? ++M1```1`^V!`%$.`0&=1U(@\`!2(/X$'7K2(U'^$B)`C'`@T<(`<,/'T0``#'` ++M2(T-GUP#`$0/M@P!1#@,!G49#Q]``$B#P`%(@_@0=,M$#[8,`40X#`9TZS'` ++M2(T-HG0#`&:01`^V%`%$.!0&=1U(@\`!2(/X$'7K2(GX2(D",<"#1P@!PV8/ ++M'T0``#'`2(T-+UP#`&9F+@\?A```````#Q]``$0/MAP!1#@<!G4;2(/``4B# ++M^!!UZTB-AY````!(B0(QP(-'"`'#N`)``(###Q]``/,/'OJ+1Q"#P`&)1Q## ++M9I#S#Q[ZBX=X____@\`!B8=X____PV9F+@\?A```````D/,/'OJ+1PB#P`&) ++M1PC#9I#S#Q[Z2,<"`````#'`2(T-+%P#`&9F+@\?A```````9F8N#Q^$```` ++M``!F#Q]$``!$#[8$`40X!`9U'4B#P`%(@_@0=>M(B?A(B0(QP(-'$`'#9@\? ++M1```,<!(C0U?6P,`1`^V#`%$.`P&=1D/'T``2(/``4B#^!!TRT0/M@P!1#@, ++M!G3K,<!(C0U2<P,`9I!$#[84`40X%`9U'4B#P`%(@_@0=>M(C4<(2(D",<"# ++M1Q`!PP\?1```N`)``(##9I#S#Q[Z2,<"`````#'`2(T-;%L#`&9F+@\?A``` ++M````9F8N#Q^$``````!F#Q]$``!$#[8$`40X!`9U'4B#P`%(@_@0=>M(C4?X ++M2(D",<"#1P@!PP\?1```,<!(C0V?6@,`1`^V#`%$.`P&=1D/'T``2(/``4B# ++M^!!TRT0/M@P!1#@,!G3K,<!(C0V2<@,`9I!$#[84`40X%`9U'4B#P`%(@_@0 ++M=>M(B?A(B0(QP(-'"`'#9@\?1```N`)``(##9I#S#Q[ZBT<0@\`!B4<0PV:0 ++M\P\>^HM'"(/``8E'",-FD/,/'OI52(GE4TB#[`B+1Q"-6/^)7Q"%VW4&2(L' ++M_U!`B=A(BUWXR<,/'X0``````/,/'OI52(GE4TB#[`B+1PB-6/^)7PB%VW4. ++M2(M'^$B-5_A(B=?_4$")V$B+7?C)P_,/'OI(B?EF#^_`B==(QT$P`````,>! ++MB``````````/$4$X#Q%!>(72#X3D````#[8&B<)!B<"#XC]!@^`_B5$P/#\/ ++MAM<```"#_P$/A-,```!$#[9.`0^VT$&)T\'J!D2)R$'!ZP>#X@&#X`]!P>D$ ++M10'+`<)!C403`CGX#X6B````1(E9-$R-3@)%A=MT/$6)VC'`9F8N#Q^$```` ++M``!F9BX/'X0```````\?1```#[9\!@)`B'P!.$B#P`%).<)U[4&-0_]-C4P! ++M`872=#,QP&9F+@\?A```````9F8N#Q^$```````/'X0``````$$/MC0!0(AT ++M`7A(@\`!2#G"=>U(N/___P$```"`3`^CP',8,<##9BX/'X0``````(/_`73N ++MN%<`!X##N`%``(##9F8N#Q^$```````/'T``\P\>^DB![Y@```#IL/[___,/ ++M'OI(B[^0````2(L'_V`@D&9F+@\?A```````#Q\`\P\>^HM7.$B+1S#'1QP` ++M````@'\4`(D0BU<\B5`$BU=`B5`(BU=$B5`,=`,QP,.X`4``@,.09BX/'X0` ++M`````/,/'OHQP(!_%`!T1%5(B>53B=-(@^P(@_H/=AQ(B?G!Z@1(BW\P_U$@ ++MB=A(BUWXR8/@\,,/'T``,<"%TDB+7?C)#Y7`P>`$PP\?A```````PY!F9BX/ ++M'X0```````\?`/,/'OKVP@=U1XU"\(/X$'<_54B)Y5-(B?M(@^P(BT<8.=!T ++M!(7`=1=(BT,P2(UX$/]3*,9#%`$QP$B+7?C)P[A7``>`Z_-F+@\?A``````` ++MN%<`!X##9BX/'X0``````/,/'OKVP@=U1XU"\(/X$'<_54B)Y5-(B?M(@^P( ++MBT<0.<)T!(7`=1=(BT,H2(UX$/]3(,9##`$QP$B+7?C)P[A7``>`Z_-F+@\? ++MA```````N%<`!X##9BX/'X0``````/,/'OJ+1V"#P`&)1V##9I#S#Q[ZBT<( ++M@\`!B4<(PV:0\P\>^HM'$(/``8E'$,-FD/,/'OJ+1QB#P`&)1QC#9I#S#Q[Z ++MBT<@@\`!B4<@PV:0\P\>^HM'*(/``8E'*,-FD/,/'OJ+1S"#P`&)1S##9I#S ++M#Q[ZBT<X@\`!B4<XPV:0\P\>^HM'0(/``8E'0,-FD/,/'OJ+1TB#P`&)1TC# ++M9I#S#Q[ZBT=0@\`!B4=0PV:0\P\>^HM'6(/``8E'6,-FD/,/'OI52(GE0513 ++M2(G[2(U-Y$B#[!!(BP)(BW\(9$R+)"4H````3(EEZ$F)U+H```"`2#G02`]' ++MPHG"B47D2(L'_U`8BU7DB4,028D4)$@!4QB%P'4:2(M5Z&1(*Q0E*````'5U ++M2(/$$%M!7%W#9I`]#@`'@'19/0\`!X!](CT!0`"`=#,]!$``@`^4P`^VP(U$ ++M``CKP&8N#Q^$```````]5P`'@'09@_@!N@@````/1<+KH@\?0`"X!````.N7 ++MD+@%````ZX]F#Q^$``````"X`@```.E\____Z'&C_O^0\P\>^E5(B=!(B>53 ++M2(G[2(/L&$B+?PA(B57@2(/X_[@`````2(EUZ$B-=>A(BQ=(BTH82(U5X$@/ ++M1-!(@WWH_W4",?;_T8E#$#U7``>`=%`]6``'@'P9A<!T#8/X`0^5P`^VP(U$ ++MP`%(BUWXR<-FD#T!0`"`=!D]#@`'@$B+7?C)#Y7`#[;`C03%`@```,.02(M= ++M^+@$````R<,/'T0``$B+7?BX!0```,G##Q]$``#S#Q[Z54B)Y5-(@^P82(M' ++M"&1(BQPE*````$B)7>A(B?M(.T<0="E(C5`!2(E3"`^V`$B+5>AD2"L4)2@` ++M``!U>DB+7?C)PV8/'X0``````(![.`!U6HM#/(7`=5-(BWLHBU,@2(U-Y$B+ ++M<QA(BP?_4!A(BU,(B4,\2(M#&$@IPD@!4S"+5>1F2`]NP$B)T4@!PF9(#V[* ++M9@]LP0\10PB%R76$9F8N#Q^$``````!FD,9#.`$QP.EW____Z`"B_O_S#Q[Z ++M2,<"`````$B)\3'`2(G62(T51E0#`&9F+@\?A```````9F8N#Q^$``````!$ ++M#[8$`40X!`)U'4B#P`%(@_@0=>M(B?A(B08QP(-'*`'#9@\?1```,<!(C16/ ++M:P,`1`^V#`)$.`P!=1D/'T``2(/``4B#^!!TRT0/M@P"1#@,`73K,<!(C17" ++M4P,`1`^V%`)$.!0!=2QF9BX/'X0``````&9F+@\?A```````D$B#P`%(@_@0 ++M=(M$#[84`D0X%`%TZS'`2(T5$FL#`&:01`^V'`)$.!P!=1-(@\`!2(/X$'7K ++M2(U'".E:____,<!(C179:@,`9F8N#Q^$``````!F9BX/'X0```````\?`$0/ ++MMAP"1#@<`7432(/``4B#^!!UZTB-1Q#I&O___S'`2(T5B6H#`&9F+@\?A``` ++M````9F8N#Q^$```````/'P!$#[8<`D0X'`%U$TB#P`%(@_@0=>M(C4<8Z=K^ ++M__\QP$B-%3EJ`P!F9BX/'X0``````&9F+@\?A```````#Q\`1`^V'`)$.!P! ++M=1-(@\`!2(/X$'7K2(U'(.F:_O__N`)``(##9F8N#Q^$``````"0\P\>^DB# ++M[R#I,_[__P\?`/,/'OI(@^\8Z2/^__\/'P#S#Q[Z2(/O$.D3_O__#Q\`\P\> ++M^DB#[PCI`_[__Y!FD/,/'OJ+1RB#P`&)1RC#9I#S#Q[ZBT<(@\`!B4<(PV:0 ++M\P\>^HM'$(/``8E'$,-FD/,/'OJ+1QB#P`&)1QC#9I#S#Q[ZBT<@@\`!B4<@ ++MPV:0\P\>^DC'`@`````QP$B-#?Q1`P!F9BX/'X0``````)!$#[8$`40X!`9U ++M%4B#P`%(@_@0=>M(B3HQP(-'"`'#D+@"0`"`PV8N#Q^$``````#S#Q[ZBT<( ++M@\`!B4<(PV:0\P\>^DC'`@`````QP$B-#9Q1`P!F9BX/'X0``````)!$#[8$ ++M`40X!`9U%4B#P`%(@_@0=>M(B3HQP(-'"`'#D#'`2(T-IV@#`$0/M@P!1#@, ++M!G4A9F8N#Q^$``````"02(/``4B#^!!TRT0/M@P!1#@,!G3KN`)``(##D`\? ++M0`#S#Q[ZBT<(@\`!B4<(PV:0\P\>^DC'`@`````QP$B-#0Q1`P!F9BX/'X0` ++M`````&9F+@\?A```````9@\?1```1`^V!`%$.`0&=15(@\`!2(/X$'7K2(DZ ++M,<"#1P@!PY"X`D``@,-F+@\?A```````\P\>^HM'"(/``8E'",-FD/,/'OI5 ++M2(GQ,<!(B>5!5$F)U%-(B?M(QP(`````2(T5C%`#`&9F+@\?A```````9F8N ++M#Q^$``````!F#Q]$```/MC0"0#@T`74F2(/``4B#^!!U[$B)V$F)!"0QP(-# ++M8`%;05Q=PV8N#Q^$```````QP$B-%9=/`P`/MCP!0#@\`G4Q9F8N#Q^$```` ++M``!F9BX/'X0```````\?@`````!(@\`!2(/X$'2J#[8\`4`X/`)T[#'`2(T5 ++M(V<#``\?``^V/`%`.#P"=19(@\`!2(/X$'7L2(U#".EZ____#Q\`,<!(C17G ++M9@,`9F8N#Q^$``````!F9BX/'X0``````)`/MCP"0#@\`7432(/``4B#^!!U ++M[$B-0Q#I.O___S'`2(T5VDX#`&9F+@\?A```````9F8N#Q^$```````/'T`` ++M#[8\`D`X/`%U$TB#P`%(@_@0=>Q(C4,8Z?K^__\QP$B-%3I/`P!F9BX/'X0` ++M`````&9F+@\?A```````#Q]```^V/`)`.#P!=1-(@\`!2(/X$'7L2(U#(.FZ ++M_O__,<!(C14:9@,`9F8N#Q^$``````!F9BX/'X0```````\?0``/MCP"0#@\ ++M`7432(/``4B#^!!U[$B-0RCI>O[__S'`2(T5JDX#``^V/`)`.#P!=1-(@\`! ++M2(/X$'7L2(U#,.E4_O__,<!(C16D90,`#[8\`D`X/`%U$TB#P`%(@_@0=>Q( ++MC4,XZ2[^__\QP$B-%0Y.`P`/MCP"0#@\`7432(/``4B#^!!U[$B-0T#I"/[_ ++M_S'`2(TU"&8#``^V/`9`.#P!=1U(@\`!2(/X$'7L2(.[L`````!T.4B-0TCI ++MV/W__S'`2(TUR&4#``^V/`9`.#P!=3E(@\`!2(/X$'7L2(.[N`````!T54B- ++M0U#IJ/W__TB+N\@```!(C9.P````2(L'_Q"%P'2PZ9;]__\QP$B--4Q-`P`/ ++MMCP&0#@\`74Y2(/``4B#^!!U[$B#N\``````="](C4-8Z5S]__](B[O(```` ++M2(V3N````$B+!_\0A<!TE.E*_?__N`)``(#I0/W__TB+N\@```!(C9/````` ++M2(L'_Q"%P'2ZZ23]__\/'P#S#Q[Z2(/O6.FS_/__#Q\`\P\>^DB#[U#IH_S_ ++M_P\?`/,/'OI(@^](Z9/\__\/'P#S#Q[Z2(/O0.F#_/__#Q\`\P\>^DB#[SCI ++M<_S__P\?`/,/'OI(@^\PZ6/\__\/'P#S#Q[Z2(/O*.E3_/__#Q\`\P\>^DB# ++M[R#I0_S__P\?`/,/'OI(@^\8Z3/\__\/'P#S#Q[Z2(/O$.DC_/__#Q\`\P\> ++M^DB#[PCI$_S__Y!FD/,/'OJ)5W0QP,-F#Q]$``#S#Q[ZB5<T,<##9@\?1``` ++M\P\>^HE7>#'`PV8/'T0``/,/'OJ)5S@QP,-F#Q]$``!52(GE059!54%44TB) ++M^TB+O\@```!(BP?_4!A!B<6%P'0.6T2)Z$%<05U!7EW#9I"+0W1$BV-X2(MS ++M:$$YQ$0/1^"X`!```$&!Y`#P__]!.<1$#T+@2(7V=`9$.V-P=,),C369.P0` ++M3(GWZ!$V__]$B>9,B??H%C;__TB)0VA(A<!T$$2)8W!$B>A;05Q!74%>7<-! ++MO0X`!X#KAY`/'T``\P\>^E5(B>5!5$F)_%-(B?-(A?9T"4B+!DB)]_]0"$F+ ++MO"28````2(7_=`9(BP?_4!!)B9PDF````#'`6T%<7<-F9BX/'X0```````\? ++M0`#S#Q[Z54B)Y4%428G\4TB)\TB%]G0)2(L&2(GW_U`(28M\)'!(A?]T!DB+ ++M!_]0$$F)7"1P,<!;05Q=PY`/'T``\P\>^E5(B>532(G[2(/L"$B+OY@```!( ++MA?]T$4B+!_]0$$C'@Y@`````````2(M=^#'`R<-F9BX/'X0``````/,/'OI5 ++M2(GE4TB)^TB#[`A(BW]P2(7_=`Y(BP?_4!!(QT-P`````$B+7?@QP,G#D%5( ++MB>5!5%-(@^P09$B+'"4H````2(E=Z$B)^XN_J````(7_#X2O````3(UEY.LP ++MD(N+I````(N[J````$@!DX@````!T2G7B8ND````B;NH````A<!U:87_#X2! ++M````@'M]`'0?2(N#@````(GZ2"N#B````$@YT',*B<>%P`^$O````$B+@Y@` ++M``")^HNSI````$R)X<=%Y`````!(`W-H3(L`2(G'0?]0&(M5Y(72#X5Z____ ++MA<"Z!4``@`]$PDB+5>AD2"L4)2@```!U>TB#Q!!;05Q=PXN+I````&:0A<ET ++M4$2+@Z````!(BW-H02G(2(GP*?%$B<=(`?=%A<!T(69F+@\?A```````#Q\` ++MC10!2(/``0^V%!:(4/](.?AU[42)@Z````#'@Z0`````````,<#IA?___P\? ++M1```N!```"#I=O___^@QE_[_D/,/'OI(QX>@`````````&8/[\#'AZ@````` ++M````QD=]``\1AX````#IX_S__P\?`/,/'OK&1VT`9@_OP$B#[Q!(QX>@```` ++M`````,>'J``````````/$8>`````Z:_\__^09F8N#Q^$```````/'P#S#Q[Z ++M9@_OP,9'?0!(QX>@`````````,>'J``````````/$8>`````2(7V=`Y(BP;& ++M1WT!2(F'@````.E@_/__\P\>^F8/[\#&1W4`2(U'^$C'AY@`````````QX>@ ++M``````````\11WA(A?9T"TB+%L9'=0%(B5=X2(G'Z1_\__^09F8N#Q^$```` ++M```/'P#S#Q[Z54B)Y4%428G\4TB)\TB%]G0)2(L&2(GW_U`(28N\))````!( ++MA?]T!DB+!_]0$$F)G"20````,<!;05Q=PV9F+@\?A```````#Q]``/,/'OI5 ++M2(GE051)B?Q32(GS2(7V=`E(BP9(B??_4`A)BWPD>$B%_W0&2(L'_U`028E< ++M)'@QP%M!7%W#D`\?0`#S#Q[Z54B)Y5-(B?M(@^P(2(N_D````$B%_W012(L' ++M_U`02,>#D`````````!(BUWX,<#)PV9F+@\?A```````\P\>^E5(B>532(G[ ++M2(/L"$B+?WA(A?]T#DB+!_]0$$C'0W@`````2(M=^#'`R<.0\P\>^DB+O[`` ++M``!(BP?_8!AF9BX/'X0```````\?0`#S#Q[Z2(M_:$B+!_]@&&:0\P\>^DB+ ++MO[@```!(BP?_8!AF9BX/'X0```````\?0`#S#Q[Z2(M_:$B+!_]@&&:0\P\> ++M^DB+O[@```!(BP?_8"!F9BX/'X0```````\?0`#S#Q[Z2(M_:$B+!_]@(&:0 ++M\P\>^DB+O\````!(BP?_8!AF9BX/'X0```````\?0`#S#Q[Z2(M_:$B+!_]@ ++M&&:0\P\>^DC'`@`````QP$B-#;Q&`P!F9BX/'X0``````)!$#[8$`40X!`9U ++M%4B#P`%(@_@0=>M(B3HQP(-'"`'#D#'`2(T-=T8#`$0/M@P!1#@,!G4A9F8N ++M#Q^$``````"02(/``4B#^!!TRT0/M@P!1#@,!G3KN`)``(##D`\?0`#S#Q[Z ++MBT<(@\`!B4<(PV:0\P\>^E5(B>5!5%-(@^P02(M'&$@K1R!D3(LD)2@```!, ++MB67H28G,B=''1>0`````2#G(#T+0,<"%TG0<2(G[2(M_$$B-3>1(BP?_4!B+ ++M3>1(`4L@A<ET*$V%Y'0'BU7D08D4)$B+5>AD2"L4)2@```!U$TB#Q!!;05Q= ++MPP\?0`#&0R@!Z]+H59/^_Y`/'T``\P\>^DC'`@`````QP$B-#9Q%`P!F9BX/ ++M'X0``````)!$#[8$`40X!`9U%4B#P`%(@_@0=>M(B3HQP(-'"`'#D#'`2(T- ++M5UP#`$0/M@P!1#@,!G4A9F8N#Q^$``````"02(/``4B#^!!TRT0/M@P!1#@, ++M!G3KN`)``(##D`\?0`#S#Q[ZBT<(@\`!B4<(PV:0\P\>^E5(B>532(/L*$B+ ++M3RA(BT<P9$B+'"4H````2(E=Z$B)^TB)3>!(B4782(7V=`=(`PY(B4W@2(72 ++M=`=(`P)(B478@'L,`'0;2(M[&$B%_W022(L'2(U5V$B-=>#_4!B%P'4(,<"` ++M>PT`=1I(BU7H9$@K%"4H````=31(BUWXR<,/'T0``$B+>Q!(BT,@2(UUV$@! ++M1>!(`4782(L'@'L.`$B+0"!T!$B-=>#_T.N]Z`J2_O]F+@\?A```````\P\> ++M^DC'`@`````QP$B-#4Q$`P!F9BX/'X0``````&9F+@\?A```````9@\?1``` ++M1`^V!`%$.`0&=15(@\`!2(/X$'7K2(DZ,<"#1P@!PY`QP$B-#>=#`P!$#[8, ++M`40X#`9U(69F+@\?A```````D$B#P`%(@_@0=,M$#[8,`40X#`9TZ[@"0`"` ++MPY`/'T``\P\>^HM'"(/``8E'",-FD/,/'OI(QP(`````,<!(C0VL0P,`9F8N ++M#Q^$``````!F9BX/'X0``````&8/'T0``$0/M@0!1#@$!G452(/``4B#^!!U ++MZTB).C'`@T<(`<.0,<!(C0U70P,`1`^V#`%$.`P&=2%F9BX/'X0``````)!( ++M@\`!2(/X$'3+1`^V#`%$.`P&=.LQP$B-#<):`P!$#[84`40X%`9U+&9F+@\? ++MA```````9F8N#Q^$``````"02(/``4B#^!!TBT0/MA0!1#@4!G3KN`)``(## ++MD`\?0`#S#Q[ZBT<(@\`!B4<(PV:0\P\>^DC'`@`````QP$B-#<Q"`P!F9BX/ ++M'X0``````&9F+@\?A```````9@\?1```1`^V!`%$.`0&=1U(@\`!2(/X$'7K ++M2(GX2(D",<"#1Q`!PV8/'T0``#'`2(T-7UD#`$0/M@P!1#@,!G49#Q]``$B# ++MP`%(@_@0=,M$#[8,`40X#`9TZS'`2(T-(ED#`&:01`^V%`%$.!0&=1U(@\`! ++M2(/X$'7K2(U'"$B)`C'`@T<0`<,/'T0``+@"0`"`PV:0\P\>^DC'`@`````Q ++MP$B-#0Q"`P!F9BX/'X0``````&9F+@\?A```````9@\?1```1`^V!`%$.`0& ++M=1U(@\`!2(/X$'7K2(U'^$B)`C'`@T<(`<,/'T0``#'`2(T-GU@#`$0/M@P! ++M1#@,!G49#Q]``$B#P`%(@_@0=,M$#[8,`40X#`9TZS'`2(T-8E@#`&:01`^V ++M%`%$.!0&=1U(@\`!2(/X$'7K2(GX2(D",<"#1P@!PV8/'T0``+@"0`"`PV:0 ++M\P\>^HM'$(/``8E'$,-FD/,/'OJ+1PB#P`&)1PC#9I#S#Q[Z54B)Y4%44XM' ++M8$2-8/]$B6=@187D=`U$B>!;05Q=PP\?1```2(T%F2H$`$B)^_,/?@6F,`0` ++M9D@/;LA(@\!@9@]LP69(#V[02(/`:`\1!V9(#V[82(/`:/,/?@6$,`0`9D@/ ++M;N!(@\!H9@]LPF9(#V[H2(/`:`\11Q!F2`]N\/,/?@5E,`0`9@]LPP\11R#S ++M#WX%73`$`&8/;,0/$4<P\P]^!54P!`!F#VS%#Q%'0/,/?@5-,`0`9@]LQ@\1 ++M1U!(B[_(````2(7_=`9(BP?_4!!(B[O`````2(7_=`9(BP?_4!!(B[NX```` ++M2(7_=`9(BP?_4!!(B[NP````2(7_=`9(BP?_4!!(B[N8````2(7_=`9(BP?_ ++M4!!(B[N0````2(7_=`9(BP?_4!!(BW-H2(T]AB\$`.@!*O__2(G?OM````#H ++M=(W^_T2)X%M!7%W#9F8N#Q^$``````"0\P\>^E5(B>5!54%44TB#[`B+1PA$ ++MC6#_1(EG"$6%Y'0/2(/$"$2)X%M!7$%=7<.02(T%,2D$`$B)^TR-;ZCS#WX% ++M.B\$`&9(#V[(2(/`8&8/;,%F2`]NT$B#P&@/$4>H9D@/;MA(@\!H\P]^!1<O ++M!`!F2`]NX$B#P&AF#VS"9D@/;NA(@\!H#Q%'N&9(#V[P\P]^!?@N!`!F#VS# ++M#Q%'R/,/?@7P+@0`9@]LQ`\11]CS#WX%Z"X$`&8/;,4/$4?H\P]^!>`N!`!F ++M#VS&#Q%'^$B+?W!(A?]T!DB+!_]0$$B+>VA(A?]T!DB+!_]0$$B+>V!(A?]T ++M!DB+!_]0$$B+>UA(A?]T!DB+!_]0$$B+>T!(A?]T!DB+!_]0$$B+>SA(A?]T ++M!DB+!_]0$$B+<Q!(C3TK+@0`Z*8H__],B>^^T````.@9C/[_2(/$"$2)X%M! ++M7$%=7<-F9BX/'X0``````/,/'OI52(GE055!5%-(@^P(BT<01(U@_T2)9Q!% ++MA>1T#TB#Q`A$B>!;05Q!75W#D$B-!=$G!`!(B?M,C6^P\P]^!=HM!`!F2`]N ++MR$B#P&!F#VS!9D@/;M!(@\!H#Q%'L&9(#V[82(/`:/,/?@6W+00`9D@/;N!( ++M@\!H9@]LPF9(#V[H2(/`:`\11\!F2`]N\/,/?@68+00`9@]LPP\11]#S#WX% ++MD"T$`&8/;,0/$4?@\P]^!8@M!`!F#VS%#Q%'\/,/?@6`+00`9@]LQ@\1!TB+ ++M?WA(A?]T!DB+!_]0$$B+>W!(A?]T!DB+!_]0$$B+>VA(A?]T!DB+!_]0$$B+ ++M>V!(A?]T!DB+!_]0$$B+>TA(A?]T!DB+!_]0$$B+>T!(A?]T!DB+!_]0$$B+ ++M<QA(C3W,+`0`Z$<G__],B>^^T````.BZBO[_2(/$"$2)X%M!7$%=7<-F9BX/ ++M'X0``````)#S#Q[Z54B)Y4%505132(/L"(M'&$2-8/]$B6<8187D=`](@\0( ++M1(G@6T%<05U=PY!(C05Q)@0`2(G[3(UON/,/?@5Z+`0`9D@/;LA(@\!@9@]L ++MP69(#V[02(/`:`\11[AF2`]NV$B#P&CS#WX%5RP$`&9(#V[@2(/`:&8/;,)F ++M2`]NZ$B#P&@/$4?(9D@/;O#S#WX%."P$`&8/;,,/$4?8\P]^!3`L!`!F#VS$ ++M#Q%'Z/,/?@4H+`0`9@]LQ0\11_CS#WX%("P$`&8/;,8/$4<(2(N_@````$B% ++M_W0&2(L'_U`02(M[>$B%_W0&2(L'_U`02(M[<$B%_W0&2(L'_U`02(M[:$B% ++M_W0&2(L'_U`02(M[4$B%_W0&2(L'_U`02(M[2$B%_W0&2(L'_U`02(MS($B- ++M/6@K!`#HXR7__TR)[[[0````Z%:)_O](@\0(1(G@6T%<05U=PP\?A``````` ++M\P\>^E5(B>5!54%44TB#[`B+1R!$C6#_1(EG($6%Y'0/2(/$"$2)X%M!7$%= ++M7<.02(T%$24$`$B)^TR-;\#S#WX%&BL$`&9(#V[(2(/`8&8/;,%F2`]NT$B# ++MP&@/$4?`9D@/;MA(@\!H\P]^!?<J!`!F2`]NX$B#P&AF#VS"9D@/;NA(@\!H ++M#Q%'T&9(#V[P\P]^!=@J!`!F#VS##Q%'X/,/?@70*@0`9@]LQ`\11_#S#WX% ++MR"H$`&8/;,4/$0?S#WX%P2H$`&8/;,8/$4<02(N_B````$B%_W0&2(L'_U`0 ++M2(N[@````$B%_W0&2(L'_U`02(M[>$B%_W0&2(L'_U`02(M[<$B%_W0&2(L' ++M_U`02(M[6$B%_W0&2(L'_U`02(M[4$B%_W0&2(L'_U`02(MS*$B-/08J!`#H ++M@23__TR)[[[0````Z/2'_O](@\0(1(G@6T%<05U=PV8/'T0``/,/'OI52(GE ++M055!5%-(@^P(BT<H1(U@_T2)9RA%A>1T#TB#Q`A$B>!;05Q!75W#D$B-!;$C ++M!`!(B?M,C6_(\P]^!;HI!`!F2`]NR$B#P&!F#VS!9D@/;M!(@\!H#Q%'R&9( ++M#V[82(/`:/,/?@67*00`9D@/;N!(@\!H9@]LPF9(#V[H2(/`:`\11]AF2`]N ++M\/,/?@5X*00`9@]LPP\11^CS#WX%<"D$`&8/;,0/$4?X\P]^!6@I!`!F#VS% ++M#Q%'"/,/?@5@*00`9@]LQ@\11QA(B[^0````2(7_=`9(BP?_4!!(B[N(```` ++M2(7_=`9(BP?_4!!(B[N`````2(7_=`9(BP?_4!!(BWMX2(7_=`9(BP?_4!!( ++MBWM@2(7_=`9(BP?_4!!(BWM82(7_=`9(BP?_4!!(BW,P2(T]HB@$`.@=(___ ++M3(GOOM````#HD(;^_TB#Q`A$B>!;05Q!75W#9I#S#Q[Z54B)Y4%505132(/L ++M"(M',$2-8/]$B6<P187D=`](@\0(1(G@6T%<05U=PY!(C051(@0`2(G[3(UO ++MT/,/?@5:*`0`9D@/;LA(@\!@9@]LP69(#V[02(/`:`\11]!F2`]NV$B#P&CS ++M#WX%-R@$`&9(#V[@2(/`:&8/;,)F2`]NZ$B#P&@/$4?@9D@/;O#S#WX%&"@$ ++M`&8/;,,/$4?P\P]^!1`H!`!F#VS$#Q$'\P]^!0DH!`!F#VS%#Q%'$/,/?@4! ++M*`0`9@]LQ@\11R!(B[^8````2(7_=`9(BP?_4!!(B[N0````2(7_=`9(BP?_ ++M4!!(B[N(````2(7_=`9(BP?_4!!(B[N`````2(7_=`9(BP?_4!!(BWMH2(7_ ++M=`9(BP?_4!!(BWM@2(7_=`9(BP?_4!!(BW,X2(T]0"<$`.B[(?__3(GOOM`` ++M``#H+H7^_TB#Q`A$B>!;05Q!75W#\P\>^E5(B>5!54%44TB#[`B+1SA$C6#_ ++M1(EG.$6%Y'0/2(/$"$2)X%M!7$%=7<.02(T%\2`$`$B)^TR-;]CS#WX%^B8$ ++M`&9(#V[(2(/`8&8/;,%F2`]NT$B#P&@/$4?89D@/;MA(@\!H\P]^!=<F!`!F ++M2`]NX$B#P&AF#VS"9D@/;NA(@\!H#Q%'Z&9(#V[P\P]^!;@F!`!F#VS##Q%' ++M^/,/?@6P)@0`9@]LQ`\11PCS#WX%J"8$`&8/;,4/$4<8\P]^!:`F!`!F#VS& ++M#Q%'*$B+OZ````!(A?]T!DB+!_]0$$B+NY@```!(A?]T!DB+!_]0$$B+NY`` ++M``!(A?]T!DB+!_]0$$B+NX@```!(A?]T!DB+!_]0$$B+>W!(A?]T!DB+!_]0 ++M$$B+>VA(A?]T!DB+!_]0$$B+<T!(C3W?)00`Z%H@__],B>^^T````.C-@_[_ ++M2(/$"$2)X%M!7$%=7<-F9BX/'X0```````\?0`#S#Q[Z54B)Y4%505132(/L ++M"(M'0$2-8/]$B6=`187D=`](@\0(1(G@6T%<05U=PY!(C06!'P0`2(G[3(UO ++MX/,/?@6*)00`9D@/;LA(@\!@9@]LP69(#V[02(/`:`\11^!F2`]NV$B#P&CS ++M#WX%9R4$`&9(#V[@2(/`:&8/;,)F2`]NZ$B#P&@/$4?P9D@/;O#S#WX%2"4$ ++M`&8/;,,/$0?S#WX%024$`&8/;,0/$4<0\P]^!3DE!`!F#VS%#Q%'(/,/?@4Q ++M)00`9@]LQ@\11S!(B[^H````2(7_=`9(BP?_4!!(B[N@````2(7_=`9(BP?_ ++M4!!(B[N8````2(7_=`9(BP?_4!!(B[N0````2(7_=`9(BP?_4!!(BWMX2(7_ ++M=`9(BP?_4!!(BWMP2(7_=`9(BP?_4!!(BW-(2(T]<"0$`.CK'O__3(GOOM`` ++M``#H7H+^_TB#Q`A$B>!;05Q!75W#\P\>^E5(B>5!54%44TB#[`B+1TA$C6#_ ++M1(EG2$6%Y'0/2(/$"$2)X%M!7$%=7<.02(T%(1X$`$B)^TR-;^CS#WX%*B0$ ++M`&9(#V[(2(/`8&8/;,%F2`]NT$B#P&@/$4?H9D@/;MA(@\!H\P]^!0<D!`!F ++M2`]NX$B#P&AF#VS"9D@/;NA(@\!H#Q%'^&9(#V[P\P]^!>@C!`!F#VS##Q%' ++M"/,/?@7@(P0`9@]LQ`\11QCS#WX%V",$`&8/;,4/$4<H\P]^!=`C!`!F#VS& ++M#Q%'.$B+O[````!(A?]T!DB+!_]0$$B+NZ@```!(A?]T!DB+!_]0$$B+NZ`` ++M``!(A?]T!DB+!_]0$$B+NY@```!(A?]T!DB+!_]0$$B+NX````!(A?]T!DB+ ++M!_]0$$B+>WA(A?]T!DB+!_]0$$B+<U!(C3T,(P0`Z(<=__],B>^^T````.CZ ++M@/[_2(/$"$2)X%M!7$%=7<-F9BX/'X0``````)#S#Q[Z54B)Y4%505132(/L ++M"(M'4$2-8/]$B6=0187D=`](@\0(1(G@6T%<05U=PY!(C06Q'`0`2(G[3(UO ++M\/,/?@6Z(@0`9D@/;LA(@\!@9@]LP69(#V[02(/`:`\11_!F2`]NV$B#P&CS ++M#WX%ER($`&9(#V[@2(/`:&8/;,)F2`]NZ$B#P&@/$0=F2`]N\/,/?@5Y(@0` ++M9@]LPP\11Q#S#WX%<2($`&8/;,0/$4<@\P]^!6DB!`!F#VS%#Q%',/,/?@5A ++M(@0`9@]LQ@\11T!(B[^X````2(7_=`9(BP?_4!!(B[NP````2(7_=`9(BP?_ ++M4!!(B[NH````2(7_=`9(BP?_4!!(B[N@````2(7_=`9(BP?_4!!(B[N(```` ++M2(7_=`9(BP?_4!!(B[N`````2(7_=`9(BP?_4!!(BW-82(T]FB$$`.@5'/__ ++M3(GOOM````#HB'_^_TB#Q`A$B>!;05Q!75W#9BX/'X0``````/,/'OI52(GE ++M055!5%-(@^P(BT=81(U@_T2)9UA%A>1T#TB#Q`A$B>!;05Q!75W#D$B-!4$; ++M!`!(B?M,C6_X\P]^!4HA!`!F2`]NR$B#P&!F#VS!9D@/;M!(@\!H#Q%'^&9( ++M#V[82(/`:/,/?@4G(00`9D@/;N!(@\!H9@]LPF9(#V[H2(/`:`\11PAF2`]N ++M\/,/?@4((00`9@]LPP\11QCS#WX%`"$$`&8/;,0/$4<H\P]^!?@@!`!F#VS% ++M#Q%'./,/?@7P(`0`9@]LQ@\11TA(B[_`````2(7_=`9(BP?_4!!(B[NX```` ++M2(7_=`9(BP?_4!!(B[NP````2(7_=`9(BP?_4!!(B[NH````2(7_=`9(BP?_ ++M4!!(B[N0````2(7_=`9(BP?_4!!(B[N(````2(7_=`9(BP?_4!!(BW-@2(T] ++M*2`$`.BD&O__3(GOOM````#H%W[^_TB#Q`A$B>!;05Q!75W#D`\?A``````` ++M\P\>^E5(B>532(/L"(M?"(/K`70+B5\(B=A(BUWXR<.^$````.C6??[_B=A( ++MBUWXR<-F9BX/'X0```````\?`/,/'OI52(GE4TB#[`B+7PB#ZP%T"XE?"(G8 ++M2(M=^,G#OA@```#HEGW^_XG82(M=^,G#9F8N#Q^$```````/'P#S#Q[Z54B) ++MY4%505132(/L&&1(BQPE*````$B)7=A(B?MF9BX/'X0```````\?0`!(B=_H ++MZ.3__T&)Q(7`=4>+DZ````"%T@^$TP```$B+N\@```!(BW-H2(L'_U`@B[N@ ++M````B8.H````08G$A<!U/XF[J````$B)W^BAY/__08G$A<!TN4B+1=AD2"L$ ++M)2@````/A5X"``!(@\081(G@6T%<05U=PV8/'X0``````#G'#X-X____.4-P ++M#X(2`@``@'M\``^$%P(``"GX,?9(`WMHC5#_2(/"`>AQ>_[_2(N[R````$B+ ++M<VA$B>)$B:.@````2(L'_U`@B8.H````.X.@````#X0D____0;P%0`"`Z6__ ++M__]F#Q^$``````!(B[N8````2,=%T`````!(C5702(TUQD4#`$B+!_\02(M] ++MT$B%_P^$.O___TB+!TB-%:H!``!(BT`82#G0#X5F`0``2(/O..B4_O__08G$ ++M2(M=T$B%VP^$"O___TB+`TB-%1KT__](BT`02#G0#X4L`0``@VLH`0^%Z?[_ ++M_TB-!>07!`!(B[N0````3(UKR/,/?@7I'00`9D@/;LA(@\!@9@]LP69(#V[0 ++M2(/`:`\10\AF2`]NV$B#P&CS#WX%QAT$`&9(#V[@2(/`:&8/;,)F2`]NZ$B# ++MP&@/$4/89D@/;O#S#WX%IQT$`&8/;,,/$4/H\P]^!9\=!`!F#VS$#Q%#^/,/ ++M?@67'00`9@]LQ0\10PCS#WX%CQT$`&8/;,8/$4,82(7_=`9(BP?_4!!(B[N( ++M````2(7_=`9(BP?_4!!(B[N`````2(7_=`9(BP?_4!!(BWMX2(7_=`9(BP?_ ++M4!!(BWM@2(7_=`9(BP?_4!!(BWM82(7_=`9(BP?_4!!(BW,P2(T]V!P$`.A3 ++M%___OM````!,B>_HQGK^_^G'_?__2(G?_]#IO?W____008G$Z9S^___'@Z@` ++M````````Z2K^___'@Z@`````````0;P!````Z8_]___HI'K^_P\?0`#S#Q[Z ++M2(/O..GS_/__D&:0\P\>^E5(B>5!5%.+1PA$C6#_1(EG"$6%Y'0-1(G@6T%< ++M7<,/'T0``$B-!0D4!`!(B?M(B0=(BW\02(7_=`9(BP?_4!!(B=^^,````.@? ++M>O[_1(G@6T%<7<.09@\?1```\P\>^E5(B>5!5%.+1PA$C6#_1(EG"$6%Y'0- ++M1(G@6T%<7<,/'T0``$B-!7D3!`!(B?M(B0=(BW\82(7_=`9(BP?_4!!(BWL0 ++M2(7_=`9(BP?_4!!(B=^^.````.BP>?[_1(G@6T%<7<,/'X0``````/,/'OI5 ++M2(GE4TB#[`B+7PB#ZP%T"XE?"(G82(M=^,G#OB@```#H=GG^_XG82(M=^,G# ++M9F8N#Q^$```````/'P#S#Q[Z54B)Y4%7059!54%44TB#[!B+1QA$C6C_1(EO ++M&$6%[70;2(/$&$2)Z%M!7$%=05Y!7UW#9@\?A```````2(U'X$R+9R#S#WX% ++M8!L$`$B)1<A(C04M#00`9D@/;LA(@\!@9@]LP69(#V[02(/`:`\11^!F2`]N ++MV$B#P##S#WX%,AL$`$B)1Q!F#VS"#Q%'\/,/?@4F&P0`9@]LPP\1!TV%Y`^$ ++MT0```$R)Y^C>//__08N$)&@!``"%P`^%S````$F-G"10)0``38VT)%!5``#K ++M*&9F+@\?A```````9F8N#Q^$``````!F#Q]$``!(@<.``0``3#GS="Z`>[@` ++M=.Y(B[-`____2(G?_U,(QD.X`$B!PX`!``!(QX/`_?__`````$PY\W7228V< ++M)!`E``!-C;0D$%4``&8/'T0``$B+,TB%]G0928L$)$B)Q_]0"$C'`P````!( ++MQT,(`````$B!PX`!``!,.?-UTTF+1"083(GF2(G'_U`(2(M]R+YP````Z-=W ++M_O_IE_[__TV-O"1X`@``38VT)'@D``!!QX0DL`$```$```!F#Q]$``!,B?_H ++M^$G__TF+7Q!(A=MT)TG'1Q``````#Q^``````$F+!TB)WDB+&TB+0"!(B<?_ ++M4`A(A=MUZ$F!QQ`!``!-.?=UO$F+M"3H`0``2(7V=!I)BX0DD`$``$B)Q_]0 ++M"$G'A"3H`0```````$F-O"10`@``Z)AW_O]!QX0D:`$```````#IB?[__P\? ++M@`````#S#Q[Z54B)Y4%7059!54%44TB#[!B+1R!$C6C_1(EO($6%[70;2(/$ ++M&$2)Z%M!7$%=05Y!7UW#9@\?A```````2(U'Z$R+9RCS#WX%(!D$`$B)1<A( ++MC07M"@0`9D@/;LA(@\!@9@]LP69(#V[02(/`:`\11^AF2`]NV$B#P##S#WX% ++M\A@$`$B)1QAF#VS"#Q%'^/,/?@7F&`0`9@]LPP\11PA-A>0/A-````!,B>?H ++MG3K__T&+A"1H`0``A<`/A<L```!)C9PD4"4``$V-M"1050``ZR=F9BX/'X0` ++M`````&9F+@\?A```````#Q]$``!(@<.``0``3#GS="Z`>[@`=.Y(B[-`____ ++M2(G?_U,(QD.X`$B!PX`!``!(QX/`_?__`````$PY\W7228V<)!`E``!-C;0D ++M$%4``&8/'T0``$B+,TB%]G0928L$)$B)Q_]0"$C'`P````!(QT,(`````$B! ++MPX`!``!,.?-UTTF+1"083(GF2(G'_U`(2(M]R+YP````Z)=U_O_IE_[__TV- ++MO"1X`@``38VT)'@D``!!QX0DL`$```$```!F#Q]$``!,B?_HN$?__TF+7Q!( ++MA=MT)TG'1Q``````#Q^``````$F+!TB)WDB+&TB+0"!(B<?_4`A(A=MUZ$F! ++MQQ`!``!-.?=UO$F+M"3H`0``2(7V=!I)BX0DD`$``$B)Q_]0"$G'A"3H`0`` ++M`````$F-O"10`@``Z%AU_O]!QX0D:`$```````#IBO[__P\?@`````#S#Q[Z ++M54B)Y4%7059!54%44TB#[!B+1RA$C6C_1(EO*$6%[70;2(/$&$2)Z%M!7$%= ++M05Y!7UW#9@\?A```````2(U'\$R+9S#S#WX%X!8$`$B)1<A(C06M"`0`9D@/ ++M;LA(@\!@9@]LP69(#V[02(/`:`\11_!F2`]NV$B#P##S#WX%LA8$`$B)1R!F ++M#VS"#Q$'\P]^!:<6!`!F#VS##Q%'$$V%Y`^$T0```$R)Y^A>./__08N$)&@! ++M``"%P`^%S````$F-G"10)0``38VT)%!5``#K*&9F+@\?A```````9F8N#Q^$ ++M``````!F#Q]$``!(@<.``0``3#GS="Z`>[@`=.Y(B[-`____2(G?_U,(QD.X ++M`$B!PX`!``!(QX/`_?__`````$PY\W7228V<)!`E``!-C;0D$%4``&8/'T0` ++M`$B+,TB%]G0928L$)$B)Q_]0"$C'`P````!(QT,(`````$B!PX`!``!,.?-U ++MTTF+1"083(GF2(G'_U`(2(M]R+YP````Z%=S_O_IE_[__TV-O"1X`@``38VT ++M)'@D``!!QX0DL`$```$```!F#Q]$``!,B?_H>$7__TF+7Q!(A=MT)TG'1Q`` ++M````#Q^``````$F+!TB)WDB+&TB+0"!(B<?_4`A(A=MUZ$F!QQ`!``!-.?=U ++MO$F+M"3H`0``2(7V=!I)BX0DD`$``$B)Q_]0"$G'A"3H`0```````$F-O"10 ++M`@``Z!AS_O]!QX0D:`$```````#IB?[__P\?@`````#S#Q[Z54B)Y4%7059! ++M54%44TB#[!B+1S!$C6C_1(EO,$6%[70;2(/$&$2)Z%M!7$%=05Y!7UW#9@\? ++MA```````2(U'^$R+9SCS#WX%H!0$`$B)1<A(C05M!@0`9D@/;LA(@\!@9@]L ++MP69(#V[02(/`:`\11_AF2`]NV$B#P##S#WX%<A0$`$B)1RAF#VS"#Q%'"/,/ ++M?@5F%`0`9@]LPP\11QA-A>0/A-````!,B>?H'3;__T&+A"1H`0``A<`/A<L` ++M``!)C9PD4"4``$V-M"1050``ZR=F9BX/'X0``````&9F+@\?A```````#Q]$ ++M``!(@<.``0``3#GS="Z`>[@`=.Y(B[-`____2(G?_U,(QD.X`$B!PX`!``!( ++MQX/`_?__`````$PY\W7228V<)!`E``!-C;0D$%4``&8/'T0``$B+,TB%]G09 ++M28L$)$B)Q_]0"$C'`P````!(QT,(`````$B!PX`!``!,.?-UTTF+1"083(GF ++M2(G'_U`(2(M]R+YP````Z!=Q_O_IE_[__TV-O"1X`@``38VT)'@D``!!QX0D ++ML`$```$```!F#Q]$``!,B?_H.$/__TF+7Q!(A=MT)TG'1Q``````#Q^````` ++M`$F+!TB)WDB+&TB+0"!(B<?_4`A(A=MUZ$F!QQ`!``!-.?=UO$F+M"3H`0`` ++M2(7V=!I)BX0DD`$``$B)Q_]0"$G'A"3H`0```````$F-O"10`@``Z-AP_O]! ++MQX0D:`$```````#IBO[__Y!F#Q]$``#S#Q[Z54F)TDB)Y4%7059(C85@____ ++M055F2`]N\$F)]4%44TB-78!F2`]NTV8/;-9(@>P8`0``2(F]X/[__TR+9T!( ++MB8W(_O__3(F%T/[__V1,BSPE*````$R)?<A-B<](QT=(`````$V%Y`^$YP@` ++M`$B+A>#^__]F#^_)\P]^0%B+2&"+>&0/MG!09@]BP87)=`B%_P^%&0@``,>% ++MV/[__P$```!!N````!&Y````$$B-!7G+__]-A?],B6V(2(E%@$B-!:=-``!( ++MB85@____2(T%.<S__TB)A4#___](C85`____3(F]2/___TP/1?A(BX7@_O__ ++M2,=%F`````#'19``````3(F5:/___\>%</___P````!(QX5X____`````,>% ++M4/___P````!`@/XH#X<_"0``BY78_O__2(.]T/[__P"+0%1!B'0D8$&)5"1` ++M2<=$)$@```0`28E,)%!-B40D6$V)?"1X2<>$)(@`````````00\11"0P00\1 ++M5"1H#X3="```2(N-T/[__T''A"2$`````0```$B+$4F)E"2(````9@_OP(.] ++MV/[__P%!B80D@````$G'A"2@`````````$$/$80DD`````^$4@,``$R)YTV- ++MK"1P`0``Z*TR__]!BY0D:`$``&8/[\!)QX0D8`$```````"%T@^$PP\``$F- ++M1"0(28M,)$A(C35\$?__\P]^!;00!`!F2`]N_DF)A"20`0``3(U-H$B--<P3 ++M__](B84@____08M$)$!F#VS'9D@/;OY-B;PDB`$``+X@````08F$)'@!```Y ++M\$F)G"2``0``#T?&38F,))@!``!-B:0DH`$``$F)C"1P`0``#RE%H/,/?@5) ++M$`0`9@]LQP\I1;!F#V\%,3$#`$G'A"00`@```````$$/$80DP`$``&8/[\!) ++MQX0DN`$```$```!!QX0D"`(```````!!QX0D(`(```````!)QX0D*`(``/__ ++M__])QX0D``(```````!)QX0DT`$```````!!QX0DV`$```````!)QX0D&`(` ++M``````!!B80DW`$``$''A"3@`0```````$$/$80D\`$``$D[C"2H`0``#X3E ++M#```38VT)(@"``!)C9PDB"0``&9F+@\?A```````9I!-BSY-A?]T(4G'!@`` ++M``"028M&\$R)_DV+/TB+0"!(B<?_4`A-A?]UYTF!QA`!``!,.?-URTF+M"3H ++M`0``2(7V=!I)BX0DD`$``$B)Q_]0"$G'A"3H`0```````$F+A"1P`0``38N\ ++M)(@!``!)B80DJ`$``$&+A"3@`0``2(G#28G&C4@!2,'C!$@!PTC!XP1(C8,( ++M`0``2(V[J`$``$B)A1C___]-B;PD,`(``&8/[\!,`>]!QX0D.`(```````!) ++MQX0DL`$```````!!B8PDX`$``$$/$80D0`(``.C^6?__08G#A<`/A/H+``!% ++MA=M^"T4/M]M!@<L```"(08N$),P!``!%B9PDR`$``(7`#X7Z"0``\T$/?H0D ++M$`(``(N%4/___[H!````2(N=X/[__XE38$B+G>#^__]F#]9#2(7`=5R+A7#_ ++M__^%P'52BT60A<!T!D&#^PAT146%VP^%TP4``$B+A>#^__^+0%2%P'0N2(N= ++MR/[__TB%VP^$%`<``+@!````9D@/?L%(.0L/A`$'``!F9BX/'X0``````$B+ ++M5<AD2"L4)2@````/A2@/``!(@<08`0``6T%<05U!7D%?7<-!@+PDN``````/ ++MA'H%``#'A=S^__\`````38U$)`A`@/XH#X2I!0``B?!`T.Z#X`&-3@N#R`+3 ++MX(G"B<8/MLS!Z!C!ZA!`B'7$28V\)-````!(C77#B$W%3(G!B%7&N@4```#& ++M1<,$B$7'Z%P[__]!B<.%P`^%H0X``$F+M"2H````2(7V=`])BT0D,$DYA"2P ++M````=$))BP0D2(G'_U`(28L$)$F+="0P2<>$)+``````````2(G'_Q!)B80D ++MJ````$B%P`^$'`X``$F+1"0P28F$)+````!(C8TT____3(U-H#';13'_\T$/ ++M;[PDD````$F-A"3`````2(F-$/___T&^X````$F-C"1P`0``2(F%&/___S'` ++M0<>$),``````````9D6)M"3%````0<>$),P`````````2<>$)/@````````` ++M0<>$)#0!````````2<>$)!`!````````0<>$)"P!```4`0``2,>%./___P`` ++M``!(QX4@____`````$B)C<#^__],B8T(____#RF]\/[__^FC`0``9I!(BXT@ ++M____2"G82(T\&4F+M"3P````28M4)#A-B[0D^````$6+E"2$````28GP28T, ++M%TTI^$PYPD@/0O%%,<!)B?5-*?5%A=)T+DF+E"2(````22N4))````!).=5R ++M&46+C"2`````13'`28TT%DF)U46%R4$/E<!(B?I(BXT(____2(N]&/___TB) ++M1:!,BXT0____Z'<T__])BY0D^````$F+O"20````B<%%BX0DA````$B+1:!( ++MB=9)`80DF````$PI]D@!PT@!]TF)O"20````187`=`]%,<!).[PDB````$$/ ++MD\"%R0^%D00``$@)\`^$B`0``(.]-/___P$/A'L$``!!B[PD@````(7_=0I! ++M]L`!#X5E!```3#GN#X.#!@``28M,)'A(A<ET;/-!#V^,))````!F#V_!9@_[ ++MA?#^__]F#V_09@]SV@AF#^O"9D@/?L!(/?__/P!V/`\2Z69(#W[*2(G/9D@/ ++M?N[_$?-!#WZ$))@```!!B<6%P`^%&0P``/-!#WZ<))````!F#VS8#RF=\/[_ ++M_TB+A3C___](.<,/A5;^__]$BZW<_O__187M#X7&`@``08N$)*````")A=S^ ++M__^%P`^$H`0``$B+A3C___](BXT@____QX7<_O__`````$@IV$B-/!GI&O[_ ++M_TF[```%$`(```!(BT!H2;@````0`0```$BY``````$```!`@/XH=%J)\HGQ ++M0;@````0@^(!T.F#P0N#R@+3XDB-#)4`````3#G!20]'R$&X```0`$PYPDD/ ++M0M!(.=%(#T+*2('!__\/`$B!X0``\/])B<A)P>@$20'(38V<"```!0`QTDGW ++M\XGZ2#G0#T+XN`$```"%_P]%QXF%V/[__^E8]___3(TU$0D$`+YX5```#RF5 ++M(/___TR)]TB)E1C____H-@/__V8/;Y4@____3(N5&/___TB%P$F)Q`^$B`(` ++M`$B-!<0(!`!-B70D&/,/?@4?"00`28V4)`A5``!)B00D2(T%5,K^_T''1"0@ ++M!P```&9(#V[P28V$)`@E``!)QT0D*`````!F#VS&2<>$)*@`````````2<>$ ++M)+``````````0<:$)+@`````0<>$)&@!````````00\11"0(9F8N#Q^$```` ++M``!F9BX/'X0```````\?A```````Q@``2`6``0``2,>`B/[__P````!(QX"0 ++M_O__`````$@YPG7<2(N%X/[__TR)8$#I#?;__T''A"2$`````````.DP]___ ++M2,=`2`````!!NP0```!(C15&*@,`1(G82&,$@D@!T#[_X$&#^Q%VYD6%V[@% ++M0`"`00](P^E2^O__0<:$)+@````!28U$)`A)QX0DZ`````````!)QX0DV``` ++M``````#'A=S^__\`````2(F%(/___TR+A2#___]`@/XH#X57^O__N/____^Z ++M_____[G_____OO_____I6_K__TF+G"1P`0``3(MR$$@YV4@/1ME(*=E(B9TX ++M____2(E*($B%VP^%EP<```\?@`````!%BYPD'`(``$6%VP^$KP(``$&+E"08 ++M`@``2(G02,'@!$@!T$C!X`1)B<5(A=MT,4V--`1)BX0DD`$``$F+MH@"``!( ++MB<=(BQ[_4`A)@[Z8`@```$F)GH@"```/A"0"``!(BX7`_O__2HV4*`@!``!( ++MBT(82(M*($B%P`^$3____TR+<A!(*<%(QT(8`````$B)2B!)C5X@2(F%./__ ++M_TB)G2#___\QV^G4^O__N`$```#I"OG__TB+G=#^__\QP$B%VP^$^/C__TB+ ++M`T@YA7C___\/E<`/ML#IX_C__TB+A>#^__](QT!``````+@.``>`Z<KX__^X ++M`4``@.G`^/__0;T!````28M$)'!,*?I)B[0DZ````$2)A>C^__^)C>S^__], ++M`?Y(B94`____2(G'_Q!(BY4`____38N\)/@```!)B[0D\````(N-[/[__T@Y ++MPD2+A>C^__]T)?-!#WZ$))@```!).?</A.H```"+A5#___]!NPD```#I\0`` ++M`)!).?=U#TG'A"3X`````````$4Q_T6%[0^$!_O___-!#WZ$))@```!%B>N% ++MR0^%Y@8``(N%-/___T&+E"2`````@_@!#X1)!@``A=)U"D&#X`$/A6<&``"# ++M^`,/A,L&``"+A5#____IA0````\?1```28N$)+````!)B[0DJ````$B-E3C_ ++M__](B84X____28M$)&A(B;4@____2(G'_Q!!B80DI````(G"2(N%./___TB% ++MP'0$A=)T#$''A"2@`````0```$B+O2#___\QV^D[^?__#Q]$``"+A5#___]! ++MNPD```!)QX0D^`````````"#O=C^__\!#X37]O__,=+IQO;__TB%VW0G2<>& ++MB`(```````!)BX9X`@``2(G>2(L;2(M`($B)Q_]0"$B%VW7D08.L)!P"```! ++M#X4,!0``D$F+E"3P`0``28N$)/@!``!)B[0DZ`$``$@IT`^$?`0``$B-7!8@ ++M9@_OP$B)A3C___](B9T@____00\1A"3P`0``2(7;#X6'!0``2,>%./___P`` ++M```QVTC'A2#___\`````Z1/Z__]%,>WIU_W__T6+G"0X`@``\T$/?H0D$`(` ++M`$6%VP^%]?7__TV-K"00)0``28V<)!!5``!F00]NC"0(`@``9D$/;KPDT`$` ++M`&9!#]:$))@```!F#V+/9D$/UHPDH````&8N#Q^$``````!)BW4`2(7V=!I) ++MBP0D2(G'_U`(2<=%``````!)QT4(`````$F!Q8`!``!).=UUT4F+M"3H`0`` ++M2(7V="Q)BX0D^`$``$DYA"3P`0``=1I)BX0DD`$``$B)Q_]0"$G'A"3H`0`` ++M`````$V-M"2(`@``,=MF9BX/'X0```````\?`$&+A"3@`0``.=AR'T&+E"08 ++M`@``B=DIT"G1`=@YTP]#P4$[A"0<`@``<B]-BRY-A>UT)TG'!@````!F#Q]$ ++M``!)BT;P3(GN38MM`$B+0"!(B<?_4`A-A>UUYH/#`4F!QA`!``"#^R!UET6+ ++MO"0<`@``QX7<_O__`0```$6%_W4<28N$)/@!``!).80D\`$```^5P`^VP(F% ++MW/[__T&`O"2X`````$$/MG0D8`^$Y`(``$"`_B@/AMKZ__^+A5#___\QTD&[ ++M!````/-!#WZ$))@```#I8O3__[^H`0``,=NY`0```$4Q]DC'A1C___\(`0`` ++MZ;[S__])C;P=0`$``.CL3?__08G#A<`/A>[S__]-C;P=N`$``$R)_^B18?[_ ++M08G#A<`/A=/S__]$B?))C;P=X`$``$B)T$C!X`1(`=!(P>`$38TT!$''AB`# ++M```!````Z,E=_O],B?^)A1#____HZU[^_T&)PX7`#X6-\___BX40____1(N= ++M$/___X7`#X5X\___38V\'5`!``!,B?_H&V'^_T&)PX7`#X5=\___0<>&N`(` ++M``$```!)C;P=>`$``.AH7?[_3(G_B</HCE[^_T&)PX7`#X4P\___A=L/A0X# ++M``!(B[T8____3`'OZ(Q-__])B<9(A<!T0DV-K"1X`@``28V<)'@D``!!QX0D ++MS`$```````!,B>])@<40`0``Z$DQ__],.>MU[$6)\T6%]@^/VO+__P^%W_+_ ++M_T&+A"3``0``A<`/A!("``!!BX0DS`$``(7`#X71_/__18N<)#@"``#S00]^ ++MA"00`@``187;#X7&\O__18N<)-`!``#IN?+__T''A"1H`0```0```#')28V$ ++M)'@"``!)QX0D<`$`````!`!!QX0D>`$```````!)QX0DZ`$```````!!QX0D ++M'`(```````!)QX0DH`$```````!)QX0DJ`$```````!!#Q&$)/`!``!!#Q&$ ++M)(`!``!!#Q&$))`!``"0B4@(@\$!2`40`0``3(FH\/[__TC'@`#___\````` ++MQX`H____`````,=`D`````!(QX`8____`````,>`(/___P````"#^2!UMTF- ++MO"10`@``,?;H>%_^_^EF[___2,>%./___P````!(A?8/A)G[__])BX0DD`$` ++M`$B)Q_]0"$G'A"3H`0```````.EZ^___28U&($B)A2#___](B=@QV^G;\___ ++M2<>$).@`````````2<>$)-@`````````0<:$)+@````!Z?;\__]!BX0D&`(` ++M`(/``4$[A"3@`0``#X0#`0``B<%(B<I(P>($2`'*2,'B!$B!P@@!``!!B80D ++M&`(``$B+A<#^__](`<+I7?C__X72="A!BY0DA````(72=!R+A5#___])BYPD ++MD````$DYG"2(````#X4R^O__18N<)*0```#IE?G__[A7``>`Z6OQ__^X!$`` ++M@.EA\?__D$&+A"3(`0``A<`/A=[]__]!BX0DQ`$``(7`#X7._?__0<>$),P! ++M````````Z<W]__\QV^GH\O__@_D&=`Z+A5#___]!B<OIQ?G__XN54/___T6+ ++MG"2D````B="Z!@```$6%VT0/1-KII/G___-!#WZ$))@```"+A5#___]!NP(` ++M``#IB?G__[H(`0``,<#I"/___T&)V^D2\/__Z$!<_O_S00]^A"28````BX50 ++M____B<)!@_LT^?__ZY.+E5#___]!B<.)T$&#_08/A3WY___I>?___P\? ++MA```````\P\>^E6_<````$B)Y>B^6_[_2(T5[^\#`+\```"`\P]^!0K^`P!F ++M2`]NRDB#PF!(O@$````!````QT`X`````&8/;,%F2`]NTDB#PFA(QT!````` ++M``\1`&9(#V[:2(U*,/,/?@7/_0,`2(L5F!\#`$B)2#!F#VS"2,=`2``````/ ++M$4`0\P]^!;3]`P#&0%#_9@]LP\=`5`````!(B5!82(EP8$B)>&@/$4`@7<,/ ++M'P#S#Q[Z5;_H````2(GEZ`Y;_O](C157_`,`\P]^!8_]`P!F2`]NRDB#PF#' ++M0"@`````9@]LP69(#V[22(U*,#'2#Q$`\P]^!6W]`P!(B4@@9@]LPF:)4"P/ ++M$4`09@]O!6T>`P#&0"X`2,=`2`````!(QT!8`````$C'0$``````2,>`@``` ++M``````!(QT!P``````\10#!=PP\?A```````\P\>^E5(B>5!54%44TB#[`B+ ++M1RA$C6#_1(EG*$6%Y'4[2(MW<$R-+63\`P!(B?M,B>_HV?;^_TB+LX````!, ++MB>_HRO;^_TB+>TCHT5K^_[[H````2(G?Z#1:_O](@\0(1(G@6T%<05U=PV8/ ++M'T0``/,/'OI52(GE055!5%-(@^P(BT<(1(U@_T2)9PA%A>1U.4B+=U!,C2WT ++M^P,`2(G[3(GOZ&GV_O](BW-@3(GOZ%WV_O](BWLHZ&1:_O](C7O@ON@```#H ++MQEG^_TB#Q`A$B>!;05Q!75W##Q^$``````#S#Q[Z54B)Y4%505132(/L"(M' ++M$$2-8/]$B6<0187D=3E(BW=83(TMA/L#`$B)^TR)[^CY]?[_2(MS:$R)[^CM ++M]?[_2(M[,.CT6?[_2(U[Z+[H````Z%99_O](@\0(1(G@6T%<05U=PP\?A``` ++M````\P\>^E5(B>5!54%44TB#[`B+1QA$C6#_1(EG&$6%Y'4Y2(MW8$R-+13[ ++M`P!(B?M,B>_HB?7^_TB+<W!,B>_H??7^_TB+>SCHA%G^_TB->_"^Z````.CF ++M6/[_2(/$"$2)X%M!7$%=7<,/'X0``````/,/'OI52(GE055!5%-(@^P(BT<@ ++M1(U@_T2)9R!%A>1U.4B+=VA,C2VD^@,`2(G[3(GOZ!GU_O](BW-X3(GOZ`WU ++M_O](BWM`Z!19_O](C7OXON@```#H=EC^_TB#Q`A$B>!;05Q!75W##Q^$```` ++M``#S#Q[Z54B)Y4%44XM'($2-8/]$B6<@187D=35(B?M(BW\HZ,E8_O](B[.P ++M````2(T]*_H#`.BF]/[_2(M[2.BM6/[_OK!*``!(B=_H$%C^_T2)X%M!7%W# ++M#Q^$``````#S#Q[Z54B)Y4%44XM'"$2-8/]$B6<(187D=39(B?M(BW\0Z&E8 ++M_O](B[.8````2(T]R_D#`.A&]/[_2(M[,.A-6/[_2(U[Z+ZP2@``Z*]7_O]$ ++MB>!;05Q=PP\?@`````#S#Q[Z54B)Y4%44XM'$$2-8/]$B6<0187D=39(B?M( ++MBW\8Z`E8_O](B[.@````2(T]:_D#`.CF\_[_2(M[..CM5_[_2(U[\+ZP2@`` ++MZ$]7_O]$B>!;05Q=PP\?@`````#S#Q[Z54B)Y4%44XM'&$2-8/]$B6<8187D ++M=39(B?M(BW\@Z*E7_O](B[.H````2(T]"_D#`.B&\_[_2(M[0.B-5_[_2(U[ ++M^+ZP2@``Z.]6_O]$B>!;05Q=PY!F#Q]$``#S#Q[Z2(M_,.EC5_[_D&:0\P\> ++M^E5(B>532(G[2(/L"$B+?S#H1U?^_TB)WTB+7?B^2````,GII5;^_Y`/'T`` ++M\P\>^DB+?S#I(U?^_Y!FD/,/'OI52(GE4TB)^TB#[`A(BW\PZ`=7_O](B=]( ++MBUWXOD@```#)Z656_O^0#Q]``/,/'OI52(T-5/@#`$B)Y4%505132(G[2(/' ++M:$B#[`CHS";__X/X!0^'DP```(G`2(T5:B`#`$2+)()%A>1T$4B#Q`A$B>!; ++M05Q!75W##Q\`2(M[2,9#+0%(A?]T"(M#-#E#.'3:Z(96_O^+>SC'0S0````` ++M28G]2(7_="3H+U?^_TB)0TA(A<!T'D2):S1(@\0(1(G@6T%<05U=PP\?0`!( ++MQT-(`````$B#Q`A!O`X`!X!;1(G@05Q!75W##Q]``$&\!4``@.ET____#Q]$ ++M``#S#Q[Z2(/O".DC____D&:0\P\>^E5(B>5!54%44TB#[!AD2(L$)2@```!( ++MB478,<"#^@0/AC<!```/M@9(B?N(AY!*``"#Z`)$BV8!/#X/APP!``!!C80D ++M`/C__SW;]___#X?Y````2(M_2$B%_W0)@7M0```0`'1%Z*)5_O](C7W0N@`` ++M$`"^@````.BO4_[_A<`/A9\```!(BT70QT-0```0`&9(#V[`2(E#2&8/;,`/ ++M$4,X2(7`#X21````2(NSL````$B%]G0)1#NCI````'1&3(TMMO8#`$R)[^@N ++M\?[_1(G@3(GOQX.D`````````/?8@^`#B8.L````08TT!.@:\?[_2(F#L``` ++M`$B%P'0]1(FCI````#'`2(M5V&1(*Q0E*````'5-2(/$&%M!7$%=7<,/'P!( ++MQT-(`````&8/[\#'0U```!``#Q%#.+@.``>`Z\5F+@\?A```````N`%``(#K ++MM&8/'X0``````+A7``>`ZZ3H-%3^_P\?0`#S#Q[Z2(/O".F#_O__D&:0\P\> ++M^H/Z$'4Q2(M&"$B+%L=''`````!(B4=`2(M',$B)5SB)$(M7/(E0!(M70(E0 ++M"(M71(E0##'`P[A7``>`P_,/'OI(@^\(Z[9F#Q]$``#S#Q[Z54B)Y4%7059) ++MB<Y!54F)]4%408G44TB)^TB#[!A(A<ET"L<!``````\?0`!%A>0/A*\```!( ++MB=_H#[O__X7`#X6)````B[N@````BU-P.==T1BGZ3(GN1#GB00]'U$@#>VA! ++MB=>)TDB)5<A%*?SHF5+^_TB+5<A)`=5-A?9T`T4!/HM3<$0#NZ````!$B;N@ ++M````03G7=91(B[O(````2(MS:$B+!_]0((F#J````(7`=#$Y@Z`````/@VW_ ++M___'@Z@`````````N`5``(!(@\086T%<05U!7D%?7<,/'X``````2(/$&#'` ++M6T%<05U!7D%?7<,/'X``````\P\>^DB#[S#I\_[__Y!FD/,/'OI52(GE055) ++MB<V)T4%428G\4TB)RTB#[`A(BW\@28M$)!A(*?A(.<A(#T;82(7;=21-A>UT ++M"$''10``````A=)U,S'`2(/$"%M!7$%=7<-F#Q]$``!)`WPD$$B)VNB;4?[_ ++M20%<)"!-A>UTUD&)70#KT`\?`+@%0`"`Z\B0\P\>^E6_L$H``$B)Y>C^4?[_ ++M,<DQTO,/?@62]`,`QT`@`````$B)QTB-!4GR`P!F2`]NR$B#P&!(QT<H```` ++M`&8/;,%F2`]NT$C'1T@`````2(T%**___P\1!_,/?@55]`,`9HF/D4H``$C' ++MA[``````````9@]LPDB)1S`QP`\11Q!F9BX/'X0``````&9F+@\?A``````` ++M9F8N#Q^$``````!F9BX/'X0``````)!(@_@+#X9.`0``#[;(B=:#P@1IR0$! ++M`0&)C#<@`0``B)0'^````$B#P`%(@_@F=="X``(``+X&!@8&QH="`@``!+H` ++M`0``QH<Z`P```F8/;L:Y`P```$B^!@8&!@8&!@9FB8<X`@``9@]PP`!(N`0$ ++M!`0$!`0$2(F'.@(``$B-ASL#``!FB9<X`P``N@$````/$8<C`P``#Q&'0P(` ++M`$B)MS`#``!(C;<X!```#Q&'4P(```\1AV,"```/$8=S`@``#Q&'@P(```\1 ++MAY,"```/$8>C`@``#Q&'LP(```\1A\,"```/$8?3`@``#Q&'XP(```\1A_," ++M```/$8<#`P``#Q&'$P,``&9F+@\?A```````9F8N#Q^$```````/'P"("(/J ++M`74&C5'_@\$!2(/``4@YQG7J9@]O!>(3`P!(C4<P2(F'Z````$B)^`\1AS@$ ++M``!=PP\?`(G!B=9!B<#!Z0),C8PW(`$``(UQ`3')08G*@\$!1X@$$3GQ<O(! ++M\HB4!_@```!(@\`!Z7'^__^0\P\>^E5(C06T[P,`2(GE055)B?U!5%-(@^P( ++M2(F'F````/,/?@56\@,`2(T%!P\$`&9(#V[09@]LP@\1!TB+OY````!(A?]T ++M!DB+!_]0$$F+55!(A=(/A<P```!)BWU(9@_OP$G'13``````00\113A!#Q%% ++M6$$/$45H2(7_=`7H>U#^_T&+12A)BWT@A<!T;T2-8/])P>0#ZT4/'T0``$B+ ++M>QAF#^_)2,<#``````\12P@/$4LH#Q%+.$B%_W0%Z#M0_O](B=^^2````.@. ++M3_[_28M]($F#[`A)@_SX="!*BQPG2(7;=.U(BU,@2(72=*Y(BWL8,?;HLTW^ ++M_^NAD$B%_W032(/$"%M!7$%=7>GL3_[_#Q]``$B#Q`A;05Q!75W##Q]$``!) ++MBWU(,?;H?4W^_^DD____#Q^$``````#S#Q[Z54B-!73N`P!(B>5!54F)_4%4 ++M4TB#[`A(B8>8````\P]^!1;Q`P!(C07'#00`9D@/;M!F#VS"#Q$'2(N_D``` ++M`$B%_W0&2(L'_U`028M54$B%T@^%S````$F+?4AF#^_`2<=%,`````!!#Q%% ++M.$$/$45800\116A(A?]T!>@[3_[_08M%*$F+?2"%P'1O1(U@_TG!Y`/K10\? ++M1```2(M[&&8/[\E(QP,`````#Q%+"`\12R@/$4LX2(7_=`7H^T[^_TB)W[Y( ++M````Z,Y-_O])BWT@28/L"$F#_/AT($J+'"=(A=MT[4B+4R!(A=)TKDB+>Q@Q ++M]NAS3/[_ZZ&02(7_=`7HMD[^_TB#Q`A,B>^^H````%M!7$%=7>E_3?[_#Q^` ++M`````$F+?4@Q]N@]3/[_Z23___\/'X0``````/,/'OI52(GE059!54%44XM' ++M$$2-</]$B7<0187V=!%;1(GP05Q!74%>7<,/'T0``$B-!0GM`P!)B?WS#WX% ++MON\#`$B)AY@```!(C05H#`0`9D@/;M!F#VS"#Q$'2(N_D````$B%_W0&2(L' ++M_U`028M54$B%T@^%S0```$F+?4AF#^_`2<=%,`````!!#Q%%.$$/$45800\1 ++M16A(A?]T!>C<3?[_08M%*$F+?2"%P'1P1(U@_TG!Y`/K1F8/'T0``$B+>QAF ++M#^_)2,<#``````\12P@/$4LH#Q%+.$B%_W0%Z)M-_O](B=^^2````.AN3/[_ ++M28M]($F#[`A)@_SX="!*BQPG2(7;=.U(BU,@2(72=*Y(BWL8,?;H$TO^_^NA ++MD$B%_W0%Z%9-_O],B>^^H````.@I3/[_6T2)\$%<05U!7EW##Q]$``!)BWU( ++M,?;HW4K^_^DC____#Q^$``````#S#Q[Z54B)Y4%7059!54%44TB#[`B+AWC_ ++M__]$C6C_1(FO>/___T6%[7052(/$"$2)Z%M!7$%=05Y!7UW##Q\`2(T%F>L# ++M`$F)__,/?@5.[@,`3(VW:/___TB)!TB-!?4*!`!F2`]NT&8/;,(/$8=H____ ++M2(M_^$B%_W0&2(L'_U`028M7N$B%T@^%P0```$F+?[!F#^_`2<='F`````!! ++M#Q%'H$$/$4?`00\11]!(A?]T!>AH3/[_08M'D$F+?XB%P'1L1(U@_TG!Y`/K ++M0F:02(M[&&8/[\E(QP,`````#Q%+"`\12R@/$4LX2(7_=`7H*TS^_TB)W[Y( ++M````Z/Y*_O])BW^(28/L"$F#_/AT($J+'"=(A=MT[4B+4R!(A=)TKDB+>Q@Q ++M]NBC2?[_ZZ&02(7_=`7HYDO^_[Z@````3(GWZ+E*_O_IW_[__P\?0`!)BW^P ++M,?;H=4G^_^DO____\P\>^E5(B>5!5T%6055!5%-(@^P(BT<(1(UH_T2);PA% ++MA>UT&TB#Q`A$B>A;05Q!74%>05]=PV8/'X0``````$B-!3GJ`P!)B?],C7?X ++M\P]^!>KL`P!(B8>0````2(T%E`D$`&9(#V[09@]LP@\11_A(B[^(````2(7_ ++M=`9(BP?_4!!)BU=(2(72#X7`````28M_0&8/[\!)QT<H`````$$/$4<P00\1 ++M1U!!#Q%'8$B%_W0%Z`=+_O]!BT<@28M_&(7`=&M$C6#_2<'D`^M!D$B+>QAF ++M#^_)2,<#``````\12P@/$4LH#Q%+.$B%_W0%Z,M*_O](B=^^2````.B>2?[_ ++M28M_&$F#[`A)@_SX="!*BQPG2(7;=.U(BU,@2(72=*Y(BWL8,?;H0TC^_^NA ++MD$B%_W0%Z(9*_O^^H````$R)]^A92?[_Z=G^__\/'T``28M_0#'VZ!5(_O_I ++M,/____,/'OI52(GE059!54%44XM'"$2-</]$B7<(187V=!%;1(GP05Q!74%> ++M7<,/'T0``$B-!6GB`P!)B?U(B0>+1S!(BW\HA<!T.XU8_TC!XP.03(LD'TV% ++MY'0@28L\)$B%_W0&2(L'_U`03(GGOB````#HRTC^_TF+?2A(@^L(2(/[^'7- ++M2(7_=`7HTTG^_TF+?2!(A?]T!DB+!_]0$$R)[[XX````Z)=(_O];1(GP05Q! ++M74%>7<.09BX/'X0``````%5(B>5!5T%6055!5%-(@^P81(MW$$6%]G122(M/ ++M"$R+/DF)^$F)]$4Q[68/'T0``$J+'.E,.SMU*D&+5"0$A=)T/DB#P@BX"``` ++M`.L,#Q\`2(/``4@YT'0G#[8\`T$X/`1T[4F#Q0%-.>YUQ$B#Q!@QP%M!7$%= ++M05Y!7UW##Q\`28M4)"!(.U,@==A(B4W(2(72=!Y(BW,828M\)!A,B47`Z#I& ++M_O],BT7`2(M-R(7`=;%(C7,H28U\)"BZ(````$R)1<CHMTG^_T6%[4R+1<AU ++M%$B#Q!BX`0```%M!7$%=05Y!7UW#28MP"$J-%.T`````2(U^"$J+'.[H@4G^ ++M_TR+1<A)BT`(2(D8Z\8/'T``54B)Y4%7059!54F)]4%44TB)^TB#[!B+1Q`[ ++M!P^#[@```#M#%'5:/?[__W\/A_10_O]!B<2Z____?T'![`(IPD&#Q`%!.=1$ ++M#T?B18T\!$V)_$G!YP-,B?_HTD3^_XM3$$B+<PA)B<:%T@^%0`$``$B%]@^% ++M3@$``$R)<PA$B6,4OT@```#HU4;^__-!#V]%"$V+=2!)B<1)BT4`2<=$)!@` ++M````28D$)$G'1"0@`````$$/$40D"$V%]@^%OP```/-!#V]%*$B+<PB+4Q!! ++M#Q%$)"CS00]O13A(C7X(2,'B`T$/$40D..B#2/[_2(M#"$R)((-#$`%(@\08 ++M6T%<05U!7D%?7<-F#Q^$``````!(BT\(B<),BV31^$V%Y'1+28M4)"!(A=(/ ++MA:H```!)BWPD&&8/[\!)QP0D`````$$/$40D"$$/$40D*$$/$40D.$B%_W0% ++MZ#5'_O^^2````$R)Y^@(1O[_BT,0@^@!B4,0Z:S^__]F+@\?A```````3(GW ++MZ*A#_O])B40D&$F+=1A(B<=,B?%,B?+H$4C^_TV)="0@Z1C___\/'X`````` ++M2,'B`TR)^4B)QTB)=<CH[4?^_TB+=<A(B??HP4;^_^FE_O__#Q]``$F+?"08 ++M,?;H7$3^_^E%____\P\>^DB)P^DV3_[_D&8N#Q^$``````#S#Q[Z54B)Y4%5 ++M28GU051!B=132(G[2(/L"$B+5U!(A=)U74V%Y'40,<!(@\0(6T%<05U=PP\? ++M`$B+?TA(A?]T%>A*1O[_2,=#2`````!(QT-0`````$R)Y^C20O[_2(E#2$B) ++MQTR)8U!,B>),B>[H7$3^_^NR9BX/'X0``````$B+?T@Q]NBU0_[_3#MC4'4/ ++M387D=))(BWM(Z\T/'T``2(M[2$B%_W0-Z.)%_O](QT-(`````$C'0U`````` ++M387D#X1A____ZXWS#Q[Z2(G'Z6M._O]F9BX/'X0``````/,/'OI(@^\(Z1/_ ++M__^09I#S#Q[Z54B)Y4%7059!54%44TB#['AD2(L<)2@```!(B5W(2(G[2(T] ++M)%8$`.CO1?[_3(US,$B->QA,B?9(B7V83(EUJ.BW^___A,`/A<\```!,B?9( ++MC3W%500`Z*#[__^$P`^%5@(``$2+6S!$BU,T3(M[4$&#^S\/A5("``!%B=1% ++MA=)T&$B-<SA(C7M83(GB1(E5H.CF1?[_1(M5H$V%_W122(M+2+H?````08U" ++M`4T!YT0ITDJ-="("3"GAZQ-F9BX/'X0```````\?1```2(G0#[94`?^(5`-7 ++M3#GX=`E(C5`!2#GR=>9!B<1-B>*#^"!T%+H@````2HU\(U@Q]D0ITNA'0O[_ ++M2(MUJ$B+?9CH^OO__V8N#Q^$``````!$BST)500`187_=&=(BPWU5`0`3(M# ++M,$4Q]DF)S4R)^4V)QV9F+@\?A```````9I!/BV3U`$T[/"1U+XM3-(72#X3Z ++M````,<#K$V8/'T0``$B#P`%(.<(/A.,```!!#[9T!`A`.'0#.'3F28/&`4PY ++M\76]2(MUJ$B-/8)4!`#H;?O__TB-/:94!`#H$4+^_TB+NY````!(C56X2,=% ++MN`````!(C377#`,`2(L'_Q!!B<2%P'5-2(M]N$B%_P^$DP0``$B+!TB-<UBZ ++M(````/]0&$&)Q(7`=2I(BWVX2(US>+H0````2(L'_U`@08G$A<!U$$B+NY`` ++M``!(BP?_4!A!B<1(BWVX2(7_=`9(BP?_4!!(BT7(9$@K!"4H````#X6K!0`` ++M2(/$>$2)X%M!7$%=05Y!7UW#9BX/'X0``````$B+4U!).U0D(`^%&____TB) ++M3:!(A=)T&DF+="082(M[2.A:0/[_2(M-H(7`#X7X_O__187V#X0(____2HT4 ++M]0````!)C7T(3(GNZ-%#_O](BP5R4P0`3(D@Z>7^__](BW6H2(M]F.A%^O__ ++MZ=/^__^X!@```$6-0@A(C7W`OH````!!.<-/C2PX1(E=@$$/1L-$B56(B<&X ++M`0```-/@08G!B46430^OS4N-E&F`````3(E-H.@70/[_A<`/A4-+_O],BV7` ++M387D#X0V2_[_1(M5B$R+3:!-C;0D@````$B-<SA,B?=,B=),B8UX____3(E5 ++MH.B(0/[_3(M5H$B+<TA,B?I+C3P6Z'1`_O]+C40N^$2+78!F#V\%PP0#`$C' ++M``````!,BXUX____2(E%B$B+!:(.!`!%A=M!#RE$)"!F#V\%J00#`$F)!"1) ++MC40D($G'1"0(`````$B)A6#___]!#RE$)#`/A/0#``!!OP$```!$B5V@3(GQ ++M3(E-@$B)G7C___]$B?M$BWV4#Q]$``!,`>E,B>I,B?:#PP%(B<_HW#_^_TB) ++MP4$YWW7D1(M=H$R+38!(BYUX____28MT)`BX`0```$2)V44Q_]/@B46`28U$ ++M)$!(B85H____#Q]``(M-E$B+58A$B?A!`<\/'P")`H/``4P!ZD0Y^'+S387) ++M#X2_````B?"Z0````$P!SH/@/TF)="0(*<*)UDDY\0^"R`$``$R)=:!-B<J% ++MP`^%4@$``$R)TDR)C7#___](BW6@3(F5>/___TB+O6#___](P>H&0?\4)$R+ ++ME7C___],BXUP____3(G2@^(_=%)(BT6@28/BP$B+O6C___],`=!(B<:#^@@/ ++M@Y0!```QP/;"!'0)BP:)![@$````]L("=`Y$#[<4!F9$B10'2(/``H/B`70, ++M#[84!H@4!P\?1```28MT)`B+18!!.<</@@____^#YC^)\HU&`4'&1!1`@(/X ++M.`^']`$``+HX````1(UV04V-?"1`*<)-`>:)T#'V@_H(#X.2`0``]L($#X5I ++M`@``A=(/A2T"``!)BT0D"$B+O6#___],B?Y(P>`#2(G"#\A!B40D?$C!ZB`/ ++MRD&)5"1XN@$```!!_Q0D,<!!BU0$)$&+3`0@#\H/R8E4`UR)3`-82(/`"$B# ++M^"!UX$R)Y^@\/_[_2(MUJ$B+?9CH+_?__^DZ^___2(N-:/___TDI\D@!R(/Z ++M"`^#L@```/;"!`^%P@$``(72#X5Y`0``28T$-DR)E7#___](B[5H____N@$` ++M``!,B8UX____2(N]8/___TB)1:!!_Q0D3(N5</___TR+C7C____I1_[__TB+ ++MC6C___],B<I,B?9,B4V@2(T\`>AY/?[_28MT)`A,BTV@Z;#^__]!O`5``(#I ++ML?O__T&)TC'V08/B^(GQ3(N%:/___X/&"$B+/`A)B3P(1#G6<N=)C3PP2`'& ++MZ3[^__])BSY-B?-(B3A)BWPV^$B)?##X2(UX"$B#Y_A(*?@!PDDIPX/B^(/Z ++M"`^",/___XG1,<"#X?B)PH/`"$V+!!-,B007.<AR[^D3____28U."$G'!@`` ++M``!)QT06^`````!(@^'X22G.0HT$,H/@^(/X"`^"5/[__X/@^#'2B=>#P@A( ++MB30Y.<)R\^D]_O__@_A`=""Z/P```(U&08G13`'@*?%T#S'2B=:#P@'&!#`` ++M.<IR\TV-?"1`2(N]8/___[H!````38G^3(G^0?\4)+HX````Z=7]__]!#[8^ ++M@^("0(@X#X1W_O__00^W5#;^9HE4,/[I9_[__T'&!@#VP@(/A,;]__\QP&9! ++MB406_NFY_?__,?;I6?S__T&+%HD008M4-OR)5##\Z3/^__]!QP8`````0<=$ ++M!OP`````Z8K]___HK#S^__,/'OKI?T;^__,/'OI(B</I>$;^_P\?@`````#S ++M#Q[Z54B)Y4%505132(/L&&1(BSPE*````$B)?=B_H````.@X//[_9@_OP+]( ++M````#Q%`*&8/[\!(B<,/$4`X#Q%`>/,/?@7,W@,`QT`0`````,=`&!````!( ++MQT`@`````$C'0$@`````2,=`4`````#'@(@`````````2,>`D`````````!( ++MC062VP,`9D@/;LA(@\`P2(F#F````&8/;,$/$0/HMCO^_\=`$`````!)B<1( ++MC7W0NC`!``#S#WX%6]X#`$B-!<3:`P!!QD0D%`"^@````$''1"08(````&9( ++M#V[09@]LPD$/$00DZ"TZ_O^%P`^%IT7^_TB+1=!)B40D,$B%P`^$G$7^_TB- ++M!>S9`P!F#^_`3(GG9D@/;MA(C05)O/[_00\11"0X\P]^!?/=`P!)B40D*$B+ ++M!<=,!`!F#VS#28E$)"!!#Q$$).C<DO__3(FCD````$B+1=AD2"L$)2@```!U ++M#DB#Q!A(B=A;05Q!75W#Z!,[_O_S#Q[Z28G%Z4U%_O^09@\?1```\P\>^E5( ++MB>5!5%.+1RA$C6#_1(EG*$6%Y'0-1(G@6T%<7<,/'T0``$B-!4G5`P!(B?OS ++M#WX%9MT#`&9(#V[(2(/`8&8/;,%F2`]NT$B#P#`/$0?S#WX%3=T#`$B)1R!F ++M#VS"#Q%'$$B+O_@```!(A?]T$$B+!TB+DP`!``!(B=[_4`A(B[O@````2(7_ ++M=`7H;#O^_TB+N]````!(A?]T!>A;._[_BWLL@___=`7H7CW^_TB)W[X(`0`` ++MZ"$Z_O]$B>!;05Q=PV8/'X0``````/,/'OI52(GE055!5%-(@^P(BT<(1(U@ ++M_T2)9PA%A>1T#TB#Q`A$B>!;05Q!75W#D$B-!7'4`P!(B?M,C6_@\P]^!8K< ++M`P!F2`]NR$B#P&!F#VS!9D@/;M!(@\`P#Q%'X/,/?@5PW`,`2(D'9@]LP@\1 ++M1_!(B[_8````2(7_=!!(BP=(BY/@````3(GN_U`(2(N[P````$B%_W0%Z)`Z ++M_O](B[NP````2(7_=`7H?SK^_XM[#(/__W0%Z((\_O],B>^^"`$``.A%.?[_ ++M2(/$"$2)X%M!7$%=7<,/'X``````\P\>^E5(B>5!54%44TB#[`B+1Q!$C6#_ ++M1(EG$$6%Y'0/2(/$"$2)X%M!7$%=7<.02(T%D=,#`$B)^TR-;^CS#WX%JML# ++M`&9(#V[(2(/`8&8/;,%F2`]NT$B#P#`/$4?H\P]^!9#;`P!(B4<(9@]LP@\1 ++M1_A(B[_@````2(7_=!!(BP=(BY/H````3(GN_U`(2(N[R````$B%_W0%Z*\Y ++M_O](B[NX````2(7_=`7HGCG^_XM[%(/__W0%Z*$[_O],B>^^"`$``.AD./[_ ++M2(/$"$2)X%M!7$%=7<-F#Q]$``#S#Q[Z54B)Y4%505132(/L"(M'&$2-8/]$ ++MB6<8187D=`](@\0(1(G@6T%<05U=PY!(C06QT@,`2(G[3(UO\/,/?@7*V@,` ++M9D@/;LA(@\!@9@]LP69(#V[02(/`,`\11_#S#WX%L-H#`$B)1Q!F#VS"#Q$' ++M2(N_Z````$B%_W002(L'2(N3\````$R)[O]0"$B+N]````!(A?]T!>C0./[_ ++M2(N[P````$B%_W0%Z+\X_O^+>QR#__]T!>C".O[_3(GOO@@!``#HA3?^_TB# ++MQ`A$B>!;05Q!75W##Q^``````/,/'OI52(GE055!5%-(@^P(BT<@1(U@_T2) ++M9R!%A>1T#TB#Q`A$B>!;05Q!75W#D$B-!='1`P!(B?M,C6_X\P]^!>K9`P!F ++M2`]NR$B#P&!F#VS!9D@/;M!(@\`P#Q%'^/,/?@70V0,`2(E'&&8/;,(/$4<( ++M2(N_\````$B%_W002(L'2(N3^````$R)[O]0"$B+N]@```!(A?]T!>CO-_[_ ++M2(N[R````$B%_W0%Z-XW_O^+>R2#__]T!>CA.?[_3(GOO@@!``#HI#;^_TB# ++MQ`A$B>!;05Q!75W#9@\?1```\P\>^E5(B>5!5%.+1PA$C6#_1(EG"$6%Y'0- ++M1(G@6T%<7<,/'T0``$B-!5G0`P!(B?M(B0=(BW](2(7_=`7H;3?^_XM[$(/_ ++M_W0%Z'`Y_O](B=^^:````.@S-O[_1(G@6T%<7<.09BX/'X0``````/,/'OI5 ++MB=)(B>5!5$F)_%-(A<ET*\<!`````$B-?RQ(B<OH&7;__TB#^/]T(HD#,<!; ++M05Q=PV8N#Q^$``````!(C7\LZ/=U__](@_C_=>#HK#/^_TF+O"3X````BP!( ++MA?]T'4B+#TF+M"0``0``B<+_$5M!7%W#9@\?A```````A<!T$`^WT('*```` ++MB(7`#T_"ZYVX!4``@.N6D`\?0`#S#Q[Z54B)Y4%628G.055)B?5!5%-(A<ET ++M!L<!`````$&)U.L/#Q\`Z#,S_O^+`(/X!'4L3(GB3(GN,?_HOS;^_TB)PTB% ++MP'C?387V=`-!B1XQP%M!7$%=05Y=PP\?0`!(@_O_=>.%P'07#[?06T%<@<H` ++M``"(A<!!74%>#T_"7<.X!4``@.O+#Q^$``````#S#Q[Z54B)Y4%505132(/L ++M"(/Z`G=J28G\BW\L2(G+Z#PT_O](@_C_=!Y(A=MT`TB)`T4Q[4B#Q`A$B>A; ++M05Q!75W##Q]$``#H@S+^_T2+*$6%[70S00^WQ0T```"(187M1`]/Z$B%VW3+ ++M08M\)"RZ`0```#'VZ.4S_O](B0/KM4&]`0`#@.NM0;T%0`"`Z]7S#Q[Z5;H! ++M````2(GE059!54%428GT4TB)^XM_+$C'!@`````Q]NBE,_[_2(/X_W0_BWLL ++MN@(````Q]DF)Q>B-,_[_BWLL,=),B>Y)B<;H?3/^_TV)-"0QP$F#_O]T$5M! ++M7$%=05Y=PP\?A```````Z,LQ_O^+`(7`=!</M]!;05R!R@```(B%P$%=05X/ ++M3\)=P[@%0`"`Z\8/'X``````\P\>^DB#[PCI4____Y!FD/,/'OJ#^@)W5U5( ++MB>532(G+2(/L"(M_$.@#,_[_2(/X_W052(7;=`-(B0,QP$B+7?C)PP\?1``` ++MZ%,Q_O^+`(7`=",/M]!(BUWXR8'*````B(7`#T_"PV8/'X0``````+@!``.` ++MP[@%0`"`Z\"09I#S#Q[Z54B-=SA(B>532(G[2(/L"(M_+.CD-?[_A<`/E(/R ++M````=0E(BUWXR<,/'P#HZS#^_XL`A<!T%`^WT$B+7?C)@<H```"(A<`/3\+# ++MN`5``(#KT68N#Q^$``````#S#Q[Z54F)TDB)Y4%728G/059-B<9!54V)S4%4 ++M28GT4TB)^TB#[!B`O_(`````#X0<`0``387D=`A(BT-H28D$)$V%TG0Z2(N3 ++MJ````$BXP_4H7(_"]2A(N0"1$+8"````2`.+H````$AIR8"6F`!(P>H"2/?B ++M2,'J`D@!T4F)"DV%_W0Z2(N3B````$BXP_4H7(_"]2A(N0"1$+8"````2`.+ ++M@````$AIR8"6F`!(P>H"2/?B2,'J`D@!T4F)#TV%]G0Z2(N3F````$BXP_4H ++M7(_"]2A(N0"1$+8"````2`.+D````$AIR8"6F`!(P>H"2/?B2,'J`D@!T4F) ++M#DV%[70TBT-0N1````")PH'B`/```('Z`$```+H@````#T31B=&#R0&HD@]$ ++MT<'@$`G0@,R`08E%`#'`2(/$&%M!7$%=05Y!7UW##Q^$``````!(C7<XBW\L ++M2(E5R.A`-/[_3(M5R(7`#Y2#\@````^$P?[__^A(+_[_BP"%P'0=#[?0@<H` ++M``"(A<`/3\)(@\086T%<05U!7D%?7<.X!4``@.N79F8N#Q^$```````/'P#S ++M#Q[Z2(/O$.E#_O__D&:0\P\>^E5(B>5!5$F)]%.`O_(`````2(G[=1M(C7<X ++MBW\LZ+HS_O^%P`^4@_(````/A2L!``#S#WY#:(M+4$&Z(````$B^`)$0M@(` ++M``!(O\/U*%R/PO4H#Q9#.$$/$00D2(M#0$B+DZ@```!)QT0D&`````!,BXN@ ++M````28E$)!!(BT-(08E$)"")R"4`\```/0!```"X$````$0/1-!$B="#R`'V ++MP9)$#T302,'J`DD!\4UIR8"6F`!(B=#!X1!(]^=(BX.`````1`G1@,V`2`'P ++M2`.SD````&8/;L%(P>H"3&G`@):8`$D!T4B+DX@```!(:?:`EI@`3(G)9D$/ ++M;ME(P>H"2,'I(&8/8L-(B=!F2`]NR4CWYTC!Z@))C0002(N3F````&8/;M!( ++MP>@@2,'J`D&)1"0T9@]BRDB)T&8/;,%(]^=!#Q%$)"0QP$C!Z@)(`=9)B70D ++M.%M!7%W#D.B;+?[_BP"%P'03#[?06T%<@<H```"(A<!=#T_"P[@%0`"`Z]5F ++M9BX/'X0``````/,/'OI(@^\8Z6/^__\/'P#S#Q[Z54B-=QA(B>532(G[2(/L ++M"(M_#.@D,O[_A<`/E(/2````=0E(BUWXR<,/'P#H*RW^_XL`A<!T%`^WT$B+ ++M7?C)@<H```"(A<`/3\+#N`5``(#KT68N#Q^$``````#S#Q[Z54B)Y4%728GW ++M059)B?Y!54%428G,4TB#[`A(A<ET!L<!`````(G313'MZPUT3DD!QTD!Q4@I ++MPW1#N@``0`!!BWX03(G^2#G32`]&T^CK+/[_2(7`>=9-`6Y@387D=`1%B2PD ++M,=)(@_C_=!E(@\0(B=!;05Q!74%>05]=PTR)Z.O5#Q\`Z',L_O^+$(72=`\/ ++MM\(-````B(72#T_0Z\VZ!4``@.O&D&8/'T0``/,/'OI52(GE05=)B?]!5DF) ++MSD%528GU05132(/L"$B%R70&QP$`````08G4ZPYFD.@;+/[_BP"#^`1U/$R) ++MXDR)[K\!````Z$0L_O](B<-(A<!XW$D!7Q!-A?9T`T&)'C'`2(/$"%M!7$%= ++M05Y!7UW##Q^``````$B#^_]UUH7`=!T/M]"!R@```(B%P`]/PDB#Q`A;05Q! ++M74%>05]=P[@%0`"`Z[QF+@\?A```````\P\>^E6+?Q!(B>7H,"S^_X7`=0Q= ++MPV8N#Q^$``````#H>RO^_XL`A<!T$`^WT%V!R@```(B%P`]/PL.X!4``@%W# ++M9F8N#Q^$```````/'P#S#Q[ZZ<<M_O^09@\?1```\P\>^E5(B>5!54F)_4%4 ++M4TB#[`B+1Q!(BW\(A<!T<42-8/])P>0#ZT</'X``````2(M[&&8/[\!(QP,` ++M````#Q%#"`\10R@/$4,X2(7_=`7H*R[^_TB)W[Y(````Z/XL_O])BWT(28/L ++M"$F#_/AT($J+'"=(A=MT[4B+4R!(A=)TKDB+>Q@Q]NBC*_[_ZZ&02(7_=!-( ++M@\0(6T%<05U=Z=PM_O\/'T``2(/$"%M!7$%=7<-F9BX/'X0``````&:0\P\> ++M^E5(B>5!5T%6055!5%-(@>SX````BT\(2(F]Z/[__V8/;LED2(L4)2@```!( ++MB57(2(L79@]PP>!F2`]^PX7)#X1!!```2(UY_TB-!#H/MC!)B<1`@/XN=2/I ++M(`0``&9F+@\?A```````#Q]``$F#[`%!@#PD+@^$QP,``$PYXG7L0;S_____ ++M0(#^+W4=Z:8#``!F9BX/'X0``````$B#Z`&`."\/A(X#``!(.<)U[D&]____ ++M_TC'A2#___\`````2(UY`>B4*?[_2(F=*/___S'22(N=Z/[__TB)A2#___]( ++MBS-F+@\?A```````#[8,%H@,$$B#P@&$R77QOP0```#H5RG^_\8``$B)PT&- ++M10''A1S___\#````1#G@#XTH`P``1(GF1#NE*/___W,22(N%(/___T2)I2C_ ++M___&!#``2(N%Z/[__TB-O1#___](B9T0____QX48____`````$@#,.CE-O__ ++MBX48____2(N=$/___XF%_/[__XN%*/___SF%+/___P^$V@(``$B+C2#___^- ++M4`&_!````,8$`5^)T,8$`0")E2C___](QX4`____`````.BA*/[_2(L5"N\" ++M`$B-M0#___](B84`____0;\```!`2(FU\/[__T&^`0```$B)E0C____&``"X ++M`P```&8N#Q^$``````"+E2C___]'C20^0='L.=`/@N,!``!,BZT`____2(N% ++M(/___XF5"/___S'2#Q]$```/M@P008A,%0!(@\(!A,EU[TR+K?#^__^^"@`` ++M`$R)[^@+1___B[4(____1(GG2`.U`/___^BF,___B[7\_O__3(GO2"N%`/__ ++M_XF%"/___^C;1O__BXT(____,<!(`XT`____9F8N#Q^$``````"0#[84`X@4 ++M`4B#P`&$TG7Q3(VM,/___XN%_/[__[D2`````84(____3(GO,<!(BY4`____ ++M3(GN\TBK2(G7Z"\K_O^%P'4;18UT)`%%.?=T&8N%#/___^D&____9@\?1``` ++M18GG13GW=>=,B[WH_O__2(VU(/___TR)_^C"-?__O@H```!,B?_H-4;__T&+ ++M=PA$B?=)`S?HUC+__TDK!XNU_/[__TR)_T&)1PCH$4;__T&+3P@QP$D##P\? ++MA```````#[84`X@4`4B#P`&$TG7Q2(N%Z/[__XNU_/[__[D2````3(GO`7`( ++M2(L0,<!,B>[S2*M(B=?H=BK^_TB+O0#___^%P$$/E<1(A?]T!>@/*O[_2(G? ++MZ`<J_O](B[T@____2(7_=`7H]BG^_TB+1<AD2"L$)2@````/A;T```!(@<3X ++M````1(G@6T%<05U!7D%?7<-F#Q]$``")UXF5^/[__TB#QP'H5R;^_TB+O0#_ ++M__^+E?C^__])B<5(A?]T"^B=*?[_BY7X_O__3(FM`/___XF5#/___^GA_?__ ++M08G%02G5Z7+\__]!*=3I//S__\>%_/[__P````"+A2C___\YA2S___\/A2;] ++M__](C;T@____Z,HR__^+A2C____I#_W__T&)_.DD_/__0;S_____0;W_____ ++MZ1[\___H(2C^__,/'OI)B<3IGC+^__,/'OI)B<3IIC+^__,/'OI)B<3IC3+^ ++M__,/'OI)B<3INS+^_Y#S#Q[Z54B-!5S"`P#S#WX%?,H#`&9(#V[(2(/`8&8/ ++M;,%F2`]NT$B#P#!(B>5!5%-(B?L/$0?S#WX%6LH#`,='*`````!(B4<@9@]L ++MPL='+/_____&1S``2,>'R`````````!(QX?0``````````\11Q"_$````.@4 ++M)?[_3(LE?>L"`+\0````2(F#T````,<``````$R)H]@```!(QX/@```````` ++M`.CD)/[_2(F#X````$R)H^@```#'``````#'@_``````````2,>#^``````` ++M``!(QX,``0```````%M!7%W#\P\>^DF)Q.GN,?[_\P\>^DF)Q.G1,?[_D&:0 ++M\P\>^E5(B>5!54&)U4%428GT4TB)^TB#[`A(BW\82(7_=`Y(BP?_4!!(QT,8 ++M`````$V%Y'0*28L$)$R)Y_]0"$B+>Q!(A?]T!DB+!_]0$$F+!"1,B6,02(U3 ++M&$R)YTB--=OO`@#_$$2(:PY(@\0(6T%<05U=PV8N#Q^$``````#S#Q[Z2(L_ ++M2(7_=`Q52(L'2(GE_U`07</##Q^``````/,/'OI52(GQN@(````Q]DB)Y4%4 ++M4TB+!TB)^_]0(#'),=(Q]D&)Q$B+`TB)W_]0($6%Y%M!#T7$05Q=PP\?0`#S ++M#Q[Z54B)Y4%7059!54%44TB#[!AD2(L<)2@```!(B5W(2(L:2,<"`````$B% ++MVW1G28G_28GU3(UEQ$F)UNL)A=)T,$B%VW1/N@```(!)BP=,B>Y,B>%(.=-, ++MB?](#T;3_U`8BU7$20$620'52"G3A<!TS$B+5<AD2"L4)2@```!U&4B#Q!A; ++M05Q!74%>05]=PV8/'T0``#'`Z]CH;R7^_Y!F9BX/'X0```````\?`/,/'OI5 ++M2(GE05=)B?=!5D%508G505132(G[2(/L&&1,BR0E*````$R)9<A)B<Q(A<ET ++M"$''!"0`````187M#X2&````BX.H````A<`/A:8```!$BX.@````B[ND```` ++M3(UUP$B+4VA,B<&%_P^%[@$``(M#<$B+NY````!*C30"3(GR*<A(B47`Z,+^ ++M__^+DZ`````#5<")DZ````"%P'4K2(N[R````$B+<VA(BP?_4""+DZ````") ++M@Z@```"%P'4NA=(/A;8````QP$B+5<AD2"L4)2@````/A9X!``!(@\086T%< ++M05U!7D%?7<-FD#G"#X*8````03G%1`]'Z(![?0!%B>YT&4B+@X````!(*X.( ++M````3#GP1`]"Z$P/0O"+LZ0```!,B?)(`W-H3(G_Z&HC_O]F00]NW?,/?H.D ++M````3`&SB````&8/<,O@9@]OT68/_M!F#_K!\P\0PF8/UH.D````387D#X1: ++M____18DL).E1____#Q^``````(F3J````(G0Z6O___\/'P`Y0W`/@M````"` ++M>WP`#X30````2(MS:&8/'X0``````(G1@\(!Q@0.`#G0=?-(B[O(````B<)( ++MBW-HB8.@````2(L/_U$@B8.H````B<*+@Z`````YP@^%?0```(7`#X4$____ ++MBXND````2(M3:(7)=0Y%,<#I:/[__V8/'T0``(G/]]E!B<A(B=`IUTZ-#`)F ++M9BX/'X0```````\?1```C30'2(/``0^V-#)`B'#_3#G(=>Q(BU-HB8N@```` ++MQX.D`````````.D5_O__#Q\`*?E!B<AUK>O?N`5``(#I6?[__[@!````Z4_^ ++M___HWB+^_V9F+@\?A```````#Q\`\P\>^DB#[R#I8_W__P\?`/,/'OI52(GE ++M059!54%44TB#[!!D2(L$)2@```!(B478,<!(A=)T:4F)_DF)]4R-9=1(B=/K ++M$V8N#Q^$``````"%TG142(7;=$>Z````@$F+!DR)[DR)X4@YTTR)]T@/1M/_ ++M4!B+5=1)`=5(*=.%P'3/2(M5V&1(*Q0E*````'4?2(/$$%M!7$%=05Y=PP\? ++M`#'`Z]T/'T``N`5``(#KTN@<(O[_9F8N#Q^$``````"0\P\>^E5(B>5!5$F) ++MU%-(B?M(BW\(2(7_=";H,?___S'2B4,0A<!U!TP!8QA,B>);2(G005Q=PV8/ ++M'X0``````,=#$`````#KWY!F#Q]$``#S#Q[Z54B)Y4%7059!54%44TB#['A( ++MB;5X____2(E5@&1,BRPE*````$R);<A-B<U,BT](387)#X2M`P``387`9@_O ++MP$B)^TF)S$C'1T``````#Y5'+@\11U!T!TF+`$B)1U!$#[93+4C'0V`````` ++MQT,\`````$C'@Y``````````QX/,`````````$C'@Z@`````````QX/$```` ++M%`$``$6$T@^$-@,``$B-3;1(C76X,?]$B%612(E-H$B-2V@QTC'`2(EUF$B- ++M<T1%,?](B4VH2(FU</___XE]E$R)I6C____IW0````\?@``````/$N!F2`]^ ++MYD@[<U`/@I$!``"%R0^%'@(``$B%P`^$'0(``$&#^0$/A`L"``!%B<-!@_D# ++M#X1[`0``9@\?1```2(NS@````$B+?8!,*?I$B$621(E-B$P!_HE-C$2(79/H ++MJ_W__TR+NY````!,.[N(````1`^V79.+38Q$BTV(1`^V19)U#DC'@Y`````` ++M````13'_A<`/A<0!``!%A-L/A>L!``!-A>UT(DB+0UA(C5-@2(UUP$R)[TB) ++M1<!)BT4`_U`8A<`/A90!``"+0T"+4T1,BTM(.=!U"XM-E(7)#X0;`0``2(NS ++MB````(M+,$R+LY````!)B?!)C3P/32GX3#G!2`]"]T4QP$F)]$TI](![+@!T ++M&4B+2U!(*TM@23G,<@Q$#[9#+$F--`Y)B<PIPDB+?:B)T4F-%`%,BTV@2(E- ++MN$B+39CH).3^_XM30$2+3;2)P4B+1;CS#V];6&9!#V[!1`^V0RX!PF8/;LI( ++MBY.0````9@]BP4B)UV8/UD,\9D@/;L!,*?=F2`]NUV8/;,)F#]3##Q%#6$6$ ++MP`^%7?[__X7)=2E(A<!T-$4QVT&#^0%T&T6)V$4QVTPYYP^"X?[__^EW_O__ ++M#Q^``````$0/MEV113'`Z6/^__\/'P!(A?]!#Y3#08/Y`0^4P$4QP$$(PP^% ++M1O[__^NY#Q]``$B+O7C___^+4S1,B<Y(QT-``````$B+C7#___](BP?_4!B+ ++M4T1,BTM(B464BT-`Z;'^__\/'T``18G#Z0#^__](A?]!#Y3#08/Y`0^4P$$( ++MPP^$UOW__T6)V.GA_?__D(G'2(M%R&1(*P0E*`````^%CP```$B#Q'B)^%M! ++M7$%=05Y!7UW#9BX/'X0``````(M]E$R+I6C___^%R75208/Y`70V08/Y`W1& ++M183`=$&`>RP!=09!@_D$=36%_W6C387D=)Z`>RP`=)@Q_TB+0UA).00D0`^5 ++MQ^N(@'LL`'3;@'LN`'352(M#8$@Y0U!TR[\!````Z6C___^_5P`'@.E>____ ++MZ,<=_O^09@\?1```\P\>^E5(B>5!5TF)_T%628GV055!5%-,B<-(@^Q(2(E5 ++MF$R+9RA(B4V09$R++"4H````3(EMR$V)S4V%Y`^$'00``$B%VTV)=UA!#Y6' ++MDDH``'0*2(L#28F'H$H``$G'AZA*````````2<>'E$H```````!(QT6@```` ++M``\?0`!!BX>82@``@_@"#X08`P``@_@##X3G`@``A<`/A1\!``!)BT=(2<=' ++M8`````!!QD=H`$F)1SA)B4=`2(L%%^$"`$''1VP`````28F'V````$F+A^@` ++M``!(B<?_$(3`#X4<`P``18NWW````+L$````28N'Z````$'!Y@A(B<?_$`^V ++MP$$)QD6)M]P```"#ZP%UWD&#_O\/A.0"``!!@']H`'1M08M?;+@!````28N7 ++MJ$H``$''AYA*```#````28MW*(7;#T382(M%H$&)GY1*``!(*<)(BWV8Z*+Y ++M__^%P`]%V$B+1<AD2"L$)2@````/A70#``!(@\1(B=A;05Q!74%>05]=PV8/ ++M'X0``````$$/MH>02@``38UW<$''AYA*```!````3(GW08F'E````.A*]O[_ ++M9BX/'X0``````$&`OY)*````NP```0!T&K@```$`28N?H$H``$DKGZA*``!( ++M.<-(#T?828T$'$B)1:A).<0/A+4!``!,B>--C7=PZQ4/'T0``(3)=1V(`TB# ++MPP%(.5VH=%A,B??H\/_^_T$/MD]HA<!YWTB)VDPIXDD#EZA*``!)B9>H2@`` ++MA,D/A8L!``"%P'E*@_C_#X12`@``28MW*$B+!6/?`@!)B8>42@``2(M%H$@I ++MPND5`0``2(M=J$F+EZA*``!,*>-(`=I!@']H`$F)EZA*```/A3T!``!(BTV@ ++M28MW*$B)T$@IR$&`OY%*````28GT=")!@+^22@```'0823F7H$H```^$RP$` ++M`&9F+@\?A```````2(M]F$B)PDR)YN@A^/__B<.%P`^%>O[__T&#OYA*```" ++M#X0Q`0``387M="U)BT<X22M'2$B-=<!,B>])`T=@28V7J$H``$B)1<!)BT4` ++M_U`8A<`/A:@!``!)BX>H2@``08"_DDH```!(B46@=`U).X>@2@``#X/=```` ++M08N?E$H``$V+9RB%VP^$(OW__TB+?9@QTDR)YNB4]___A<`/1=CI[?W__V8N ++M#Q^$```````QTDR)YDB+?9CH<O?__XG#A<`/A<O]__^[`0```.G!_?__9@\? ++M1```,<#I(?___T&`?V@`28N7J$H```^$TO[__V9F+@\?A```````#Q]``$&+ ++M7VRX`0```$F+=RA!QX>82@```P```(7;#T382(M%H$&)GY1*``!(*<+I5?W_ ++M_TB+!;G=`@!)BY>H2@``28MW*$F)AY1*``!(BT6@2"G"Z6#___\/'P!!@+^1 ++M2@````^$+?W__TB#?9``#X0B_?__2(MUD#';28M'.$DK1TA)`T=@2#L&#Y7# ++MZ07]__]FD$B-?;BZ```!`+Z`````Z-T7_O^%P'5A3(MEN$V)9RA-A>0/A;O[ ++M___K5F8/'T0``$&+C]P```"%R0^%M_W__^DL_O__08N'W````(7`#X6?_?__ ++M2(MUH$B)T$V+9RA!QX>82@```@```$@I\.G__?__B</IB_S__TG'1R@````` ++MNPX`!X#I>?S__^C1&/[_D/,/'OI52(GE05=!5DF)_D%505132(/L:$B)M7#_ ++M__](B56`3(E%F$R)38AD2(L$)2@```!(B47(,<#H<7[__T&)Q(7`#X4#`P`` ++M13'_,=M%,<!(@WV8`$2)9:!$B<!%B?Q-B?=(QT6X`````$&)WDC'A7C___\` ++M````#X30`0``2(M-F$B+$4@Y5;@/@R@#``"$P`^$!0(``$6%]@^$%P,``$4Y ++MY@^$&@,``,=%I`````!%B?6(1:CK$F8/'T0``$0YZ`^$:P,``$&)Q$F+O\@` ++M``!)BW=H1(GK18GF1"GC2(L'B=I,`?;_4"")PH7`#X1]`@``0HT$(#G3<\.+ ++M3:1-B?")PTF+=V@/MD6H18GNA<D/A9$"``!!@']\``^$;P(``$&+?W!$*><Y ++MUT$/D\5!(,4/A%D"```/'X``````1(GP08/&`<8$!@!$.?-U\$F+O\@```") ++M5:A,`<9(BP?_4""+5:@YP@^%V0$``$F+=VA!B=Q(BT6808G83(G"2(7`=`Y( ++MBQ!(*U6X3#G"20]'T$B+?8!,B4602(E5J.AM]/__A<`/A0D"``"+1:1(BU6H ++M2`%5N(7`#X4!`@``183M3(M%D`^$+0$``$0Y\P^$Y0$``$&`?WP`#X3_`0`` ++MC4/_1#G@#X-<`0``02G<02G>28M_:$2)\DJ--`?HKQC^_TB#?8@`=#I(BT6X ++M2(N->/___TB)PD@IRDB!^O__/P!V($B+?8A(B85X____2(UUN$B)\DB+!_]0 ++M&(7`#X5R`0``2(-]F`!$B>@/A3#^__^$P'1*187V#X1<`0``13GF#X5%_O__ ++M1(GRQT6D`````$&)Q42)\TF+=VA)B=#I$/___V8/'T0``$B+19A(A<!T#4B+ ++M`$@Y1;@/@QL!``!!BT=P2(N]</___TB-5<!$B?9)`W=H1"GP2(E%P.@`\/__ ++M1`-UP$4Y=W")P8E%I`^5P(7)#Y7""=!%A?8/A-\```!%.>8/A``!``"(1:A% ++MB?7IV/W__P\?0`"-0_]$.>!S1T$IW$$IW@^%Y?[__TB#?8@`#X1Q____2(M% ++MN$B+C7C___](B<)(*<I(@?K__S\`#X?M_O__,<!(@WV8``^%/OW__^E7____ ++M0;P%0`"`2(M%R&1(*P0E*`````^%SP```$B#Q&A$B>!;05Q!74%>05]=PP^V ++M1:A%B>Z#?:0`#X29````28MW:$&)Q42)X^GC_?__1(GC13'M@^/`A,!T8D4/ ++MMF]\183M=5A!B<5$B>/IP?W__T&)Q.N41(MEH.N.1(MEI.N(QT6D`````$6) ++M\$&)Q42)\TF+=VCIJ?W__T&\`0```.ED____BU6DA=)U'83`=1E$B?-)BW=H ++M13'M@^/`QT6D`````.EH_?__28MW:$&)Q42)\^E9_?__1(GC@^/`A,!UYTF+ ++M=VA%,>WKTNB<%/[_#[9%J$6)[D6)[.DV____D&9F+@\?A```````D/,/'OI5 ++M2(GE055!5$F)_%.)\TB#["B`O_(`````9$R++"4H````3(EMV$F)U0^$W0`` ++M`(US^4C'1<``````2,=%R`````"#_E]W=4B-%<;8`@!(8P2R2`'0/O_@28NT ++M))@```!(N0"1$+8"````20.,))````!(B?)(:<F`EI@`13'22+C#]2A<C\+U ++M*$C!Z@+'1<!``!D`2/?B9D2)5<9(P>H"2(T$DD@!T4B-!(!(B4W(2,'@`D@I ++MQF:)=<1FD&9!@WT```^%A````&8/;T7`QT7``````$$/$44`2(U]P.A*6?__ ++M,<!(BU789$@K%"4H````#X6O`@``2(/$*%M!7$%=7<-F+@\?A```````2(UW ++M.(M_+.@$%O[_A<!!#Y2$)/(````/A`;____H#A'^_XL`A<`/A&0"```/M]"! ++MR@```(B%P`]/PNN<#Q]``$R)[^@86?__A<`/B6S____I>/___TF+1"1HNQ4` ++M``!FB5W`2(E%R.E$____08M$)%`E`+```#T`(```#X4O____28M$)&"_$P`` ++M`&:)?<`/MM!(P>@,,,`)T(E%R.D.____08M$)%`E`+```#T`(```#X7Y_O__ ++M28M$)&!!N!,```!F1(E%P$B)PDC!Z"!(P>H()0#P__^!XO\/```)T(E%R.G) ++M_O__08"\)/``````#X2Z_O__08M$)%BY$P```&:)3<")1<CII/[__T&`O"3P ++M``````^$E?[__T&+1"14OA,```!FB77`B47(Z7_^__]!BT0D4$&Y$P```&9$ ++MB4W`B47(Z6?^__]!@+PD\0`````/A%C^__]!B[0DZ````$&+?"18A?9T#D$Y ++MO"3,````#X3!````Z`04_O_I+_[__TBY`)$0M@(```!)B[0DB````$D#C"2` ++M````Z<;]__](N0"1$+8"````28NT)*@```!)`XPDH````.FG_?__08M$)%"Y ++M$````$&[$P```&9$B5W`B<*!X@#P``"!^@!```"Z(`````]$T8G1@\D!J)(/ ++M1-'!X!`)T(#,@(E%R.FL_?__08"\)/$`````#X2=_?__08NT)-@```!!BWPD ++M5(7V=`I!.;PDR````'0RZ&T1_O_I>/W__TF+O"3@````N`@```!FB47`Z!(8 ++M__](B47(2(7`#X55_?__Z2H<_O])B[PDT````+H(````9HE5P.CJ%___2(E% ++MR$B%P`^%+?W__^D"'/[_#Q^$``````"X!4``@.D^_?__Z-$0_O^0\P\>^DB# ++M[R#I0_S__V8N#Q^$``````!F+@\?A```````9BX/'X0``````&8N#Q^$```` ++M``!F+@\?A```````D/,/'OK'!@(````QP,.09I#S#Q[Z@_X!=R^)]DB-!>?@ ++M`@`/M@0PB0%(C0UQX`(`#[8$`69!B0`QP$C'`@````###Q^``````+A7``>` ++MPV:0\P\>^H/^`7<OB?9(C04NX`(`#[8$,(D!2(T-,>`"``^V!`%F08D`,<!( ++MQP(`````PP\?@`````"X5P`'@,-FD/,/'OJ+5R`QP(72#Y7`B08QP,.09F8N ++M#Q^$``````"0\P\>^DC'`@`````QP$B-#2S"`@!F9BX/'X0``````&9F+@\? ++MA```````9@\?1```1`^V!`%$.`0&=1U(@\`!2(/X$'7K2(DZ,<"#AY`````! ++MPV8/'T0``+@"0`"`PV:0\P\>^HN'D````(/``8F'D````,-F9BX/'X0````` ++M`)#S#Q[Z54B)Y5-(@^P(BX>0````C5C_B9^0````A=MU!DB+!_]08(G82(M= ++M^,G#9I#S#Q[Z2(N'J````(GV2(L$\$@%\````,,/'X0``````/,/'OI(BX>@ ++M````B?9(BP3P2`7P````PP\?A```````\P\>^DB+AY@```")]DB+!/!(BX#@ ++M````PP\?@`````#S#Q[Z2(N'D````(GV2(L$\$B+@.````##D&8/'T0``/,/ ++M'OI528GP2(GE05=)B<]!5DF)_D%505132(/L&(E5S$B%R70&QP$`````BWW, ++M,<"%_P^$Q````$V+;A!-.VX8#X.V````08M&#$&+3C`Q]DV+3BCK'68/'X0` ++M`````$B+4PA,`>)).=5R)(UP`8T$#M'HB<))BQS13(MC$$TYY7/=B<'KZ&8/ ++M'X0``````$R)[D&)1@Q,*>9(.7,8="5(BSLQTDR)1<!(C4L82(L'_U`@A<!U ++M1DB+4PB+?<Q,BT7`3`'B3"GJB?A(.<)S!8E5S(G72(L#B?I(C4W,3(G&3(L( ++M2(G'0?]1&(M5S$D!5A!(`5,8387_=`-!B1=(@\086T%<05U!7D%?7<,/'T`` ++M\P\>^H/Z`70W@_H"=!*%TG02N`$``X###Q^$``````!(`W<82(7V>!U(B7<0 ++M2(7)=`-(B3$QP,,/'X0``````$@#=Q#KWKB#``>`PP\?0`#S#Q[Z2,<"```` ++M`#'`2(T-G+\"`&9F+@\?A```````D$0/M@0!1#@$!G452(/``4B#^!!UZTB) ++M.C'`@T<(`<.0,<!(C0U7U@(`1`^V#`%$.`P&=2%F9BX/'X0``````)!(@\`! ++M2(/X$'3+1`^V#`%$.`P&=.NX`D``@,.0#Q]``/,/'OJ+1PB#P`&)1PC#9I#S ++M#Q[Z2(M_$#'V2(L'2(M`&/_@D&9F+@\?A```````D/,/'OI(QP(`````,<!( ++MC0WLO@(`9F8N#Q^$``````!F9BX/'X0``````&8/'T0``$0/M@0!1#@$!G45 ++M2(/``4B#^!!UZTB).C'`@T<(`<.0N`)``(##9BX/'X0``````/,/'OJ+1PB# ++MP`&)1PC#9I#S#Q[Z2,<"`````#'`2(T-?+X"`&9F+@\?A```````D$0/M@0! ++M1#@$!G452(/``4B#^!!UZTB).C'`@T<(`<.0,<!(C0TWO@(`1`^V#`%$.`P& ++M=2%F9BX/'X0``````)!(@\`!2(/X$'3+1`^V#`%$.`P&=.NX`D``@,.0#Q]` ++M`/,/'OJ+1PB#P`&)1PC#9I#S#Q[Z2,<"`````#'`2(T-[+T"`&9F+@\?A``` ++M````9F8N#Q^$``````!F#Q]$``!$#[8$`40X!`9U'4B#P`%(@_@0=>M(B?A( ++MB0(QP(-'$`'#9@\?1```,<!(C0U_U`(`1`^V#`%$.`P&=1D/'T``2(/``4B# ++M^!!TRT0/M@P!1#@,!G3K,<!(C0W"V@(`9I!$#[84`40X%`9U'4B#P`%(@_@0 ++M=>M(C4<(2(D",<"#1Q`!PP\?1```N`)``(##9I#S#Q[Z2,<"`````#'`2(T- ++M++T"`&9F+@\?A```````9F8N#Q^$``````!F#Q]$``!$#[8$`40X!`9U'4B# ++MP`%(@_@0=>M(C4?X2(D",<"#1P@!PP\?1```,<!(C0V_TP(`1`^V#`%$.`P& ++M=1D/'T``2(/``4B#^!!TRT0/M@P!1#@,!G3K,<!(C0T"V@(`9I!$#[84`40X ++M%`9U'4B#P`%(@_@0=>M(B?A(B0(QP(-'"`'#9@\?1```N`)``(##9I#S#Q[Z ++MBT<0@\`!B4<0PV:0\P\>^HM'"(/``8E'",-FD/,/'OI(QP(`````,<!(C0U, ++MO`(`9F8N#Q^$``````!F9BX/'X0``````&8/'T0``$0/M@0!1#@$!G452(/` ++M`4B#^!!UZTB).C'`@T<(`<.0,<!(C0WGNP(`1`^V#`%$.`P&=2%F9BX/'X0` ++M`````)!(@\`!2(/X$'3+1`^V#`%$.`P&=.NX`D``@,.0#Q]``/,/'OJ+1PB# ++MP`&)1PC#9I!52(GE051!B?132(G[2(M_$$B%_W0.2(L'_U`02,=#$`````!( ++MBU,HBT,TQD,:`$B%TG0L.0)T($B+>T"#P`%$B>:)0S1;2(L'05Q=2(M`./_@ ++M9@\?1```2(/"!$B)4RB#:S`!Z])F+@\?A```````\P\>^HN'V````(D&,<## ++MD/,/'OK'!@`````QP,.09I#S#Q[ZN`%``(##9@\?1```\P\>^L<&`````#'` ++MPY!FD/,/'OI(QP(`````,<#'`3X```##9F8N#Q^$``````"0\P\>^DC'`@`` ++M```QP,<!/@```,-F9BX/'X0``````)#S#Q[ZQP$`````,<#'`O_____#9F8N ++M#Q^$``````!FD/,/'OK'`0`````QP,<"_____\.09F8N#Q^$``````"0\P\> ++M^DC'`0````!(B<A!QP``````0<<!`````(/Z`W0',<###Q]``$B+EZ`!``!( ++MA=)T[4B+CY`!``!(A<ETX8GW@\8!2(L\^DB+%/)(*?I(`=)(@?K___]_=\5( ++MC0QY2(D(08D00<<!40```.NRD/,/'OI(QP$`````2(G(0<<``````$''`0`` ++M``"#^@-T!S'`PP\?0`!(BY>8`0``2(72=.U(BX^(`0``2(7)=.&)]X/&`4B+ ++M//I(BQ3R2"GZ2`'22('Z____?W?%2(T,>4B)"$&)$$''`5$```#KLI!(B?!( ++M.?=R+<,/'X``````@/IZ=%N`^KQT9H#ZKW1Q@/HG='R`^AP/A(,```!(B<]( ++M.<=S.@^V5P5(C4\&@/HW=<X/ME<'2(G/@/J\=>*`?P*O==R`?P0<==:`?P,G ++M=="`/WIURX!__S=UQ4B-1__##[97!DB#QP7KSV8/'T0``$B#QP2`?P*O=:;K ++MR`\?0``/ME<$2(/'`^NO9@\?1```#[97`TB#QP+KGV8/'T0```^V5P)(@\<! ++MZX]F#Q]$``#S#Q[Z54B)Y4%528G]05132(/L"$B+1SA(QT=(`````,='0``` ++M``#'``````"+1R"%P'0_C5C_2,'C`P\?1```28M%&$R+)!A-A>1T'$F+/"1( ++MA?]T!DB+!_]0$+X(````3(GGZ`<&_O](@^L(2(/[^'7-0<=%(``````QP$'' ++M13``````2(/$"%M!7$%=7</S#Q[Z54B)Y4%44XM'"$2-8/]$B6<(187D=`U$ ++MB>!;05Q=PP\?1```2(T%N:P#`$B)^TB)!TB+?Q!(A?]T!DB+!_]0$$B)W[X8 ++M````Z(\%_O]$B>!;05Q=PY!F#Q]$``#S#Q[Z54B)Y4%44XM'"$2-8/]$B6<( ++M187D=`U$B>!;05Q=PP\?1```2(T%`:P#`$B)^TB)!TB+?R!(A?]T!DB+!_]0 ++M$$B)W[XH````Z"\%_O]$B>!;05Q=PY!F#Q]$``#S#Q[Z54B)Y4%6055!5%.+ ++M1Q!$C7#_1(EW$$6%]G016T2)\$%<05U!7EW##Q]$``#S#WX%^*X#`$B-!=&N ++M`P!)B?UF2`]NR&8/;,$/$0=(BW\X2(7_=`7HY`7^_TF+?2A(A?]T!>C6!?[_ ++M08M%($F+?1B%P'0]C5C_2,'C`P\?`$R+)!]-A>1T($F+/"1(A?]T!DB+!_]0 ++M$$R)Y[X(````Z'L$_O])BWT82(/K"$B#^_AUS4B%_W0%Z(,%_O],B>^^4``` ++M`.A6!/[_6T2)\$%<05U!7EW#9BX/'X0``````/,/'OI52(GE05=!5D%50513 ++M2(/L"(M'"$2-:/]$B6\(187M=!M(@\0(1(GH6T%<05U!7D%?7<-F#Q^$```` ++M``#S#WX%"*X#`$B-!>&M`P!)B?],C7?X9D@/;LAF#VS!#Q%'^$B+?S!(A?]T ++M!>CO!/[_28M_($B%_W0%Z.$$_O]!BT<828M_$(7`=$B-6/](P>,#9F8N#Q^$ ++M```````/'P!,BR0?387D="!)BSPD2(7_=`9(BP?_4!!,B>>^"````.A[`_[_ ++M28M_$$B#ZPA(@_OX=<U(A?]T!>B#!/[_OE````!,B??H5@/^_^DV____D%4Q ++MP$B)Y5-(B?M(@^P(QH>^`0```,>'N`$```````!FB8>\`0``QP<`````2(M_ ++M"$B%_W0%Z#8$_O](BWLP2,=#"`````#'0P0`````QT,8`````,=#*`````!( ++MA?]T!>@+!/[_2(M[.$C'0S``````2(7_=`7H]0/^_TB+>T!(QT,X`````$B% ++M_W0%Z-\#_O](BWM(2,=#0`````!(A?]T!>C)`_[_2(M[4$C'0T@`````2(7_ ++M=`7HLP/^_TB+>UA(QT-0`````$B%_W0%Z)T#_O](BWM@2,=#6`````!(A?]T ++M#>B'`_[_2,=#8`````!(B[M(`0``2,=#:`````!(A?]T$.AF`_[_2,>#2`$` ++M``````!(B[M8`0``2,>#4`$```````!(A?]T!>@_`_[_2(N[F`$``&8/[\!( ++MQX-8`0```````,>#D`````````#'@Z``````````QX.P`````````,>#P``` ++M``````#'@]``````````QX/@`````````,>#\`````````#'@P`!```````` ++MQX,0`0```````,>#(`$```````#'@S`!````````QX-``0```````,>#D`$` ++M```````/$8-H`0``#Q&#>`$``$B%_W0%Z(\"_O](B[N@`0``2,>#F`$````` ++M``!(A?]T!>AS`O[_2,>#H`$```````!F#^_`#Q&#J`$``$B+7?C)PY!F#Q]$ ++M``#S#Q[Z54B)Y4%44TB)TTB#[!!(QT7H`````(/^+'1Y=R^#_@%T"X/^)W5E ++MBT<@B47H9H,[`$&\$P```'0L2(G?Z/M&__^%P'D@ZS$/'T0``(/^3W4[2(M' ++M2$B)1>A!O!4```!F@SL`==0QP&9$B67@9HE%XF8/;T7@#Q$#2(/$$#'`6T%< ++M7<-F#Q^$``````!%,>3KS@\?`(M7,$4QY(72=,%(BT<H2(L`2(E%Z.NND/,/ ++M'OI52(GE05132(G32(/L$$C'1>@`````@_Y(#X3-````@_Y==&B#_D</A;<` ++M```/MH\``@``#[:7`@(```^VAP8"``"#\0$!T@^VR<'@"`G*#[:/`P(``,'A ++M!0G*"=")1>A!O!,```!F@SL`=64QP&9$B67@9HE%XF8/;T7@,<`/$0-(@\00 ++M6T%<7<-FD("_`@(```!U)X"_`P(```!U'H"_!`(```!U%44QY("_!@(```!T ++MLV8/'X0``````+K_____9H,[`$&\"P```&:)5>ATFTB)W^BS1?__A<!YC^NB ++M#Q]$``!%,>3I>O___X"_!`(````/MI<%`@``=1B$TG3DN``!``")1>CI4___ ++M_P\?@`````"`^@$9P##`!0(!``#KXV8N#Q^$``````#S#Q[Z5;]0````2(GE ++M0593Z"O__?]F#^_`OQ`````/$4`02(G##Q%`0$B-!1"I`P#S#WX%**D#`&9( ++M#V[(2,=#(`````!(QT,H`````&8/;,%(QT,P`````$C'0S@`````#Q$#Z*?\ ++M_?](BQ40PP(`2(E#.,<``````$B)V$B)4T!;05Y=P_,/'OI)B<;I$@K^_V9F ++M+@\?A```````#Q\`\P\>^E5(C4<(2(GE059!54%428GT4TB)^T@YQG1=1(MN ++M"$0Y;Q0/@Z0"``!(BW\(2(7_=`7HEO_]_TC'0Q``````18GN2,=#"`````!) ++MP>8"3(GWZ!?\_?]F00]NS4B)0PAF#W#!X&8/UD,028LT)$R)\DB)Q^B5_?W_ ++M28U4)!!(C4,82#G"=%]%BVPD&$0Y:R0/@Q@"``!(BWL82(7_=`7H*O_]_TC' ++M0R``````18GN2,=#&`````!)P>8#3(GWZ*O[_?]F00]NU4B)0QAF#W#"X&8/ ++MUD,@28MT)!!,B?)(B<?H*/W]_TF-5"0@2(U#*$@YPG1?18ML)"A$.6LT#X.+ ++M`0``2(M[*$B%_W0%Z+W^_?](QT,P`````$6)[DC'0R@`````2<'F`DR)]^@^ ++M^_W_9D$/;MU(B4,H9@]PP^!F#]9#,$F+="0@3(GR2(G'Z+O\_?]!BT0D,$F- ++M5"0XB4,X2(U#0$@YPG1?18ML)$!$.6M,#X/V````2(M[0$B%_W0%Z$C^_?]( ++MQT-(`````$6)[DC'0T``````2<'F`DR)]^C)^OW_9D$/;N5(B4-`9@]PQ.!F ++M#]9#2$F+="0X3(GR2(G'Z$;\_?])C50D2$B-0U!(.<)T6T6+;"101#EK7'-M ++M2(M[4$B%_W0%Z-_]_?](QT-8`````$6)[DC'0U``````2<'F`DR)]^A@^OW_ ++M9D$/;NU(B4-09@]PQ>!F#]9#6$F+="1(3(GR2(G'Z-W[_?_'0V@`````,<#' ++M@X0`````````6T%<05U!7EW#D$2):UA%A>UTVDB+0U!.C32M`````.N\9@\? ++MA```````1(EK2$6%[0^$3?___TB+0T!.C32M`````.DL____9I!$B6LP187M ++M#X2X_O__2(M#*$Z--*T`````Z9?^__]FD$2):R!%A>T/A"O^__](BT,83HTT ++M[0````#I"O[__V:01(EO$$6%[0^$GOW__TB+1PA.C32M`````.E^_?__9I#S ++M#Q[Z54B)Y4%505132(G+2(/L"(/Z`W1G@^H'@_H!=W],BV=(0;T5````9H,[ ++M`'4?,<!F1(DK9HE#`DR)8PA(@\0(,<!;05Q!75W##Q]``$B)W^AX0?__A<!Y ++MU69!@_T'=MQ!@^T*9D&#_39VT4V%Y'3,28U\)/SHT_O]_^O`D(MW0$B+?SCH ++M1`+__TF)Q$B%P`^$D@;^_T&]"````.N+13'D13'MZX,/'X0``````/,/'OI5 ++M2(GE0513BT<(1(U@_T2)9PA%A>1T#42)X%M!7%W##Q]$``!(C07!H0,`2(G[ ++M2(U_($B)1^#H,?O]_TB+>Q!(A?]T!DB+!_]0$$B)W[Y(````Z+7Z_?]$B>!; ++M05Q=PY!F9BX/'X0``````)#S#Q[Z54B)Y4%708G7059!54%44TB)^TB#["A( ++MBT<02(EUN$R-8"!D3(LL)2@```!,B6W(28G-3(GGZ`'\_?](BT,02(MS&$@[ ++M<!AT(4B+>!`QR3'22(L'_U`@08G&A<!U2DB+0Q!(BU,82(E0&$B+>!!(BW6X ++M2(U-Q$2)^L=%Q`````!(BP?_4!A(BW,008G&BT7$2(G!2`-#&$B)0QA(B488 ++M387M=`1!B4T`3(GGZ"SY_?](BT7(9$@K!"4H````=1)(@\0H1(GP6T%<05U! ++M7D%?7</HYOG]_V8/'T0``/,/'OI52(T%Q*$#`$B)Y4%6055!5%-(@^P01(M' ++M"&1(BQPE*````$B)7=A(B?M(B0?&A^@````!187`#X67`@``B[O@````A?\/ ++MA5D"``"+@W@!``!(B[MP`0``A<!T1D2-8/])P>0##Q^$``````!.BRPG387M ++M="-)BWT`2(7_=`9(BP?_4!!,B>^^"````.@K^?W_2(N[<`$``$F#[`A)@_SX ++M=<I(A?]T!>@P^OW_BX-H`0``2(N[8`$``(7`=$5$C6#_2<'D`P\?@`````!. ++MBRPG387M="-)BWT`2(7_=`9(BP?_4!!,B>^^"````.C+^/W_2(N[8`$``$F# ++M[`A)@_SX=<I(A?]T!>C0^?W_2(N[2`$``$B%_W0%Z+_Y_?](B[LX`0``2(7_ ++M=`7HKOG]_XMS"$B-!82]`P#&@^@````!2(D#A?8/A2(!``"+B^````"%R0^% ++M_````(M#<(7`=!_'0W``````2(V[@````.BJ^/W_2(V[J````.@N^_W_BU,( ++MA=)T&<=#"`````!(C7L8Z(?X_?](C7M`Z`[[_?](B[LH`0``2(7_=`7H+?G] ++M_TB+NQ@!``!(A?]T!>@<^?W_3(NK^````$V%[70?28M%`$B-%46D_O](BT`0 ++M2#G0#X4H`0``08-M(`%T.4B+N_````!(A?]T!DB+!_]0$$B+1=AD2"L$)2@` ++M```/A08!``!(@\006T%<05U!7EW##Q^``````$V-92A-C75028L\)$F#Q`CH ++M$_C]_TTYYG7NOB@#``!,B>_H<??]_^N>#Q^``````$B+N]@```!(C770Z`CW ++M_?_I[_[__P\?`$R-8QA,B>?HY/C]_X7`#X7*_O__QT,0`0```$B->T#H//7] ++M_TR)Y^AD]OW_Z:W^__\/'X``````2(N[V````$B-==#HN/;]_\>#X``````` ++M``!(QX/8`````````.E]_?__9@\?1```3(UC&$R)Y^A\^/W_A<`/A57]___' ++M0Q`!````2(U[0.C4]/W_3(GGZ/SU_?_I./W__P\?@`````!,B>__T.G5_O__ ++MZ,'V_?^0\P\>^E5(B>532(G[2(/L".C+_/__2(G?2(M=^+Z``0``R>EY]OW_ ++MD`\?A```````\P\>^E5(C044G@,`\P]^!72@`P!F2`]NR&8/;,%(B>5!5D%5 ++M28G]0513BX>P````#Q$'2(N_J````(7`=&*-6/],C36(____2,'C`^LE9I#H ++M6_S__TR)Y[Z``0``Z`[V_?])B[VH````2(/K"$B#^_AT+4R+)!]-A>1T[4F+ ++M!"1,B>=(BT`(3#GP=,3_T$B#ZPA)B[VH````2(/[^'74D$B%_W0%Z.;V_?]! ++MBX6@````28N]F````(7`='Q$C6#_2<'D`V9F+@\?A```````D$J+'"=(A=MT ++M58M3:(72=!S'0V@`````2(U[>.C@]?W_2(V[H````.AD^/W_BP.%P'08QP,` ++M````2(U[$.B_]?W_2(U[..A&^/W_2(G?ON@```#H2?7]_TF+O9@```!)@^P( ++M28/\^'682(7_=`7H3O;]_TF+?7A(C07#N0,`28E%"$B%_W0%Z#7V_?])BWUH ++M2(7_=`7H)_;]_TF+?5A(A?]T!>@9]OW_28M]2$B%_W0%Z`OV_?])BWTP2(7_ ++M=`7H_?7]_TF+?2!(A?]T!>CO]?W_28M]$$B%_W066T%<05U!7EWIV?7]_V8/ ++M'X0``````%M!7$%=05Y=PP\?@`````#S#Q[Z2(/O".DC_O__D&:0\P\>^E5( ++MB>532(G[2(/L".@+_O__2(G?2(M=^+ZX````R>EI]/W_9@\?A```````\P\> ++M^E5(B>532(U?^$B)WTB#[`CHU_W__TB)WTB+7?B^N````,GI-?3]_Y`/'T`` ++M\P\>^D2+1T!`A/8/A94```!,BX^H````1(G`28L4P8.Z``$```%U?DR+5V@/ ++M'T``08`\`@!T;TB+5TB+3SB+%(*%R70=2(MW,#'`ZPP/'P!(@\`!2#G!=`D[ ++M%(9U\H7`>42+3RB%R71%2(MW(#'`ZQAF9BX/'X0```````\?0`!(@\`!2#G! ++M="4[%,9U\H7`>!R+1,8$28L4P4F)P(.Z``$```%TBD2)AXP```##5;\$```` ++M2(GEZ!3R_?](BS6=P`,`,=+'`,5W,P%(B<?HK?7]_V9F+@\?A```````9I#S ++M#Q[Z2(/O".D3____D&:0\P\>^HN/H````(7)#X1A`0``54B)Y4%713'_059! ++M54%428G\4TB#[`A$#[<MJ\,"`&9F+@\?A```````#Q]``$F+A"28````2HL< ++M^(L3A=)T5DR-<Q!,B??H@O3]_X7`=2['0P@`````3(GWZ`_R_?^%P`^.[P`` ++M``^WP`T```"(2(/$"%M!7$%=05Y!7UW#?^=(@\0(6T%<05U!7D%?7<,/'X`` ++M````,?9(C7L0Z#WT_?^%P'79,?9(C7LXZ"[S_?^%P'7*2(L%L[8"`,=#"``` ++M``!(B0.+0VB%P'122(L%B[8"`$B)0VQF1(FKT````$F#QP''@]0````````` ++M2,>#V`````````!(QX/@`````````$4[O"2@````#X(=____,<#I5____V8/ ++M'T0``#'V2(U[>.BU\_W_A<!UJC'V2(V[H````.BC\OW_A<!UF$B+!1BV`@#' ++M0V@!````2(E#;.N$#Q\`#X1I____Z0[___\QP,-F+@\?A```````\P\>^DB# ++M[PCI<_[__Y!FD/,/'OI52(GE4TB)^TB#[`A(BW]`2(7_=`Y(BP?_4!!(QT-` ++M`````$B->TCH,.[__TB+NQ`"```QP&:)@P@"``!(A?]T'HN#'`(``#'VC5`! ++M2,'B`N@G\/W_QX,8`@```````#'`2(M=^,G#\P\>^DB)Q^FI_/W_D`\?A``` ++M````\P\>^E5(B>5!5T%6055!5%-(@^Q(9$R+)"4H````3(EER$&)S#')A=(/ ++MA($"``!(B?N#^O]T&+E7``>`@_H!#X5K`@``BQ:%T@^%80(``$F+`$B+<TA, ++MB46H3(G'_U`8B<&%P`^%1@(``$R+1:A%,>U%A>1(C56X00^5Q4C'1;@````` ++M,?9)BP!$B>E(B56@3(G'_U`HB<&%P`^%^`$``$6%Y$R+1:AU"TB#?;@`#X3\ ++M`0``28L`3(E%J$2)[DR)Q_]0,(G!A<`/A<H!``"_2````.A(\/W_28G$2(T% ++M9H8#`+\X````\P]^!6&:`P!)QT0D0`````!F2`]NR$B#P&AF#VS!9D@/;M!( ++M@\`P0<=$)"@!````00\1!"3S#WX%-)H#`$F)1"0@9@]LPD$/$40D$&8/[\!! ++M#Q%$)##HWN_]_TF)Q4B-!7R)`P!,BT6H,=))B44`N`$!``!F#^_`3(GO9D&) ++M10Q,B<9)QT4P`````$''10@!````00\111!!#Q%%($R)19CHT\C__TR+19A% ++M,?]%,?9,B7VH3(E%D.M$#Q^``````$F#?"0P``^$)`$``$V)Z#')3(G:3(G^ ++M2<=$)$``````3(GGZ-`U__^%P`^%0`$``$F+="1`2`%UJ$&#Q@'S#WY%J#'2 ++M,?9,B>]F#VS`00\112CHD5S__X7`#X41`0``1#MS(`^$#P$``$B+4QA$B?`Q ++MR3'V2(L$PC'23(LX28L'3(G__U`@A<`/A>(```!)BP0D2(T]KS?__TR+7;A( ++MBT`82#GX#X16____38GI13'`,<E,B=I,B?Y,B>?_T.EF____9@\?1```2<=$ ++M)#``````N0X`!X!)BT4`B4VH3(GO_U`028L$)$R)Y_]0$(M-J$B+?;A(A?]T ++M#TB+!XE-J/]0$(M-J`\?`$B+1<AD2"L$)2@````/A9(```!(@\1(B<A;05Q! ++M74%>05]=PP\?0`!(C7W`N@```@"^@````$R)79CH\>S]_TR+79B%P`^%=?__ ++M_TB+1<!)B40D,$B%P`^%I_[__^EG____9@\?1```B<'I7____Y!(BWVX3(M% ++MD$B%_W062(L'3(E%J/]0$$C'1;@`````3(M%J$F+`#'V3(G'_U`XB<'I*?__ ++M_^CV[?W_\P\>^DB)P^EB^?W_\P\>^DB)P^E"^?W_\P\>^DB)P^E`^?W_9I!5 ++M2(GE05=!5D%505132(G[2(/L&$B+5SB+?S1D2(L$)2@```!(B47(B?!(BTLH ++M28G^2(G^2<'F!$P#LH@```!(A<D/A-@```!!O0(````[.0^$R@```$B+>T!, ++MC7W`2,=%P`````!$B>E,B?I(BP?_4"A!B<2%P'0W2(M]P$B%_W0&2(L'_U`0 ++M2(M%R&1(*P0E*`````^%'0$``$B#Q!A$B>!;05Q!74%>05]=PP\?`$R+9<!- ++MA>1T"DF+!"1,B>?_4`A(BWL02(7_=`9(BP?_4!`/MD,93(EC$,=#'/____^$ ++MP'0)00^V1@Z$P'5ZB$,;28L&QD,:`4B)0R!%A>UU!TB#?<``='!(BWM`1(GN ++M2(L'_U`P08G$Z5S___\/'P"`>Q@`0;T!````#X4F____A,!T?#NR0`$``',4 ++M2(N".`$``$4Q[8`\.``/A0;___]%#[9N#4&#]0%%#[;MZ?3^__]F#Q]$``!! ++M#[9/P`>EY____#Q\`2(M3.(M#-#N"0`$``',12(N2.`$``(`\`@`/A7#_ ++M__]%#[9N#4&#]0%%#[;M10'MZ5O___\/'P!%,>WIGO[__^@3[/W_\P\>^DB) ++MP^F?]_W_D&8/'T0``%5(B>532(G[2(/L".M?9I!(BU,XBT,T,?9(P>`$2`." ++MB````$B#.`!U3$B)W^C^_?__B<:%P'4^@'L;`'0A2(M3.(M#-$C!X`1(`X*( ++M````BU,<]](Y4`AT!;X#````2(G?Z#GB__^)QH7`=0F+0S"%P'6<,?9(BUWX ++MB?#)PV:0\P\>^E5(B>5!5T%6055!B=5!5%-(B?M(@^PH2(EUN&1,BS0E*``` ++M`$R)=<A)B<Y(A<ET!T''!@````!%A>T/A((```"`>QH`#X2B````3(MC($2) ++MZ$B+>Q!,.>`/MD,;10]"Y42)9<1!@?P``!``=@B$P`^%/P$``$4Q_TB%_W0< ++M2(L'1(GB2(MUN$B-3<3_4!A$BV7$08G'#[9#&X3`#X7S````387V=`-%`29$ ++MB>)(*5,@=')%A?]U#HM-Q(7)#X6Z````13'_2(M%R&1(*P0E*`````^%"P$` ++M`$B#Q"A$B?A;05Q!74%>05]=PV:02(G?Z(C^__]!B<>%P'7*BT,PA<`/A,X` ++M```Q]DB)W^B<_/__08G'A<`/A"7____KJ`\?@``````Q]H![&P!T(4B+>SB+ ++M0S1(P>`$2`.'B````(M['/?7.7@(=`6^`P```$B)WTB)5;#HP^#__X7`=11( ++MB=_H%_[__TB+5;"%P`^$0?___T&)Q^E,____#Q\`2`%5N$4IY0^%M_[__^DT ++M____9@\?1```1(GBBWL<2(MUN.B)U_[_1(MEQ(E#'.GR_O__#Q]$``#'1<0` ++M`!``0;P``!``N@``$`!%,?](A?\/A:O^___KP\9#2`%!OQ```"#IXO[__^B4 ++MZ?W_#Q]``/,/'OH[=P@/@X,```!(BP>)]D@!\(`X`'5V54B)Y4%7059!54%4 ++M4TB#[!A,BV\028M5`,8``4F+13A$BS2RBQRP187V=#1%BV4H00'>38GG187_ ++M=$-)BU4@,<#K#`\?`$B#P`%).<1T+SD<@G7RA<!X)H/#`4$YWG7?2(/$&+@! ++M````6T%<05U!7D%?7<-FD#'`PP\?1```08M5&(72=$A)BTT0,<#K$0\?A``` ++M````2(/``4@YT'0O.QS!=?*%P'@FBW3!!$B)?<CH,?___TB+?<B$P'01@\,! ++M03G>#X5M____ZY4/'P!(@\08,<!;05Q!74%>05]=PY!F#Q]$``#S#Q[Z58GP ++M2(GE055!5$F)_%-(@^P(2(M70(L<@DB+5PB+!()$C2P#A<!T/@\?0`!!BU0D ++M,(72=$=)BTPD*#'`ZQ=F9BX/'X0```````\?`$B#P`%(.<)T)SD<@77RA<!X ++M'H/#`4$YW77&2(/$"+@!````6T%<05U=PV8/'T0``$&+5"0@A=)T8TF+3"08 ++M,<#K%V9F+@\?A```````#Q\`2(/``4@YT'1#.1S!=?*%P'@ZBT3!!$F+5"1@ ++M@#P"`$B)QG44,<!(@\0(6T%<05U=PP\?@`````!,B>?H(/___X3`#X5Z____ ++M,<#KVK\$````Z!KF_?](BS6CM`,`,=+'`,5W,P%(B<?HL^G]_Y!FD/,/'OI5 ++M2(GE4TB)^TB#[`A(B[^@`0``2(7_=`7H7^C]_TB+NY@!``!(A?]T!>A.Z/W_ ++M2(N[B`$``$B%_W0%Z#WH_?](B[M8`0``2(7_=`7H+.C]_TB+NT@!``!(A?]T ++M!>@;Z/W_2(N[.`$``$B%_W0%Z`KH_?](B[LH`0``2(7_=`7H^>?]_TB+NQ@! ++M``!(A?]T!>CHY_W_2(N["`$``$B%_W0%Z-?G_?](B[OX````2(7_=`7HQN?] ++M_TB+N^@```!(A?]T!>BUY_W_2(N[V````$B%_W0%Z*3G_?](B[O(````2(7_ ++M=`7HD^?]_TB+N[@```!(A?]T!>B"Y_W_2(N[J````$B%_W0%Z''G_?](B[N8 ++M````2(7_=`7H8.?]_TB+NX@```!(A?]T!>A/Y_W_2(M[>$B%_W0%Z$'G_?]( ++MBWM@2(7_=`7H,^?]_TB+>UA(A?]T!>@EY_W_2(M[4$B%_W0%Z!?G_?](BWM( ++M2(7_=`7H">?]_TB+>T!(A?]T!>C[YOW_2(M[.$B%_W0%Z.WF_?](BWLP2(7_ ++M=`7HW^;]_TB+>R!(A?]T!>C1YOW_2(M[$$B%_W0%Z,/F_?](BWL(2(7_=`I( ++MBUWXR>FPYOW_2(M=^,G#9BX/'X0``````/,/'OI52(GE0513BT<01(U@_T2) ++M9Q!%A>1T#42)X%M!7%W##Q]$``#S#WX%@(\#`$B-!;&+`P!(B?MF2`]NR&8/ ++M;,$/$0?HA?/__TB+NQ`"``!(A?]T!>A$YOW_2(U[2.B[_?__2(M[0$B%_W0& ++M2(L'_U`02(G?OB@"``#H_^3]_T2)X%M!7%W##Q^``````/,/'OI52(GE055! ++M5%-(@^P(BT<(1(U@_T2)9PA%A>1T#TB#Q`A$B>!;05Q!75W#D/,/?@7HC@,` ++M2(T%&8L#`$R-;_A(B?MF2`]NR&8/;,$/$4?X3(GOZ.7R__](B[L(`@``2(7_ ++M=`7HI.7]_TB->T#H&_W__TB+>SA(A?]T!DB+!_]0$$R)[[XH`@``Z%_D_?]( ++M@\0(1(G@6T%<05U=PY#S#Q[Z54B)Y4%505132(/L"$B+'TB%VW0=2(L#2(T5 ++M;7\``$B+0!!(.=`/A7@!``"#:R@!=!)(@\0(6T%<05U=PP\?@`````!(C06A ++MC`,`2(N["`$``/,/?@4JC@,`9D@/;LA(@\!H9@]LP69(#V[02(/`,`\1`_,/ ++M?@41C@,`2(E#((N#$`$``&8/;,(/$4,0A<!T3T2-8/])P>0##Q\`3HLL)TV% ++M[70Q28M]$$B%_W0%Z+GD_?])BWT`2(7_=`9(BP?_4!!,B>^^,````.A]X_W_ ++M2(N["`$``$F#[`A)@_SX=;Q(A?]T!>B"Y/W_2(N[^````$B%_W0%Z''D_?]( ++MB[N`````2(7_=`7H8.3]_TB+>W!(A?]T!>A2Y/W_2(M[4$B%_W0%Z$3D_?]( ++MBWM`2(7_=`7H-N3]_XM#.$B+>S"%P'0]1(U@_TG!Y`,/'P!.BRPG387M=!]) ++MBWT`2(7_=`7H">3]_TR)[[X0````Z-SB_?](BWLP28/L"$F#_/AUSDB%_W0% ++MZ.3C_?](@\0(2(G?OB@!``!;05Q!75WIK>+]_P\?1```2(G?_]!(@\0(6T%< ++M05U=PP\?A```````\P\>^H!_"`!T44B+!TB+4'!(BW(02#ER"'0$QD!X`8M( ++M"`^V=PF-4?^)4`B%TG0G@^D"2(T,24C!X0-,C40($$R)0'!`A/9T#DB-%%)( ++MBU30($@!5`@@QD<(`,,/'T``\P\>^E5(B>5!5%-(BT\(2(MW$$F)R$DI\`^$ ++MY>[]_TR+%TB)^DF-!#(/MCA`A/]Y;TF#^`$/A,GN_?]$#[9(`4`/MM](@\`" ++M@^=`#X2@````20'*OP$```!!O(````!).<(/A)SN_?]$#[8`1(T<_0````!( ++M@\`!1(G92=/@C4\!30G!@_\'=#=%B>!!T^A$A<-T1(G/23G"=<WI9.[]_T0/ ++MML^_`0```$@!_DR)R$B)<A!;05Q=PP\?A```````OPD```!,B<A(`?Y(B7(0 ++M6T%<7<,/'T``08/H`4&-2PB#QP)!(=A$B<!(T^!)"<'KN+\"````N0@```!! ++MN#\```#KX)!F9BX/'X0``````)#S#Q[Z54B)Y4%7059!54%428G\4XG32(/L ++M.`^W`61,BRPE*````$R);<A)B<UF@_@'=@V-4/9F@_HV#X>8````08GW2<=% ++M``````!,B?A)QT4(`````$C!X`1)`X0DT````$B)PHU#_8/X&G=#2(T-'*L" ++M`$AC!(%(`<@^_^!FD$F+A"3H`0``0HL$N(/X_P^%>P,``#'`9@\?A``````` ++MO@L```!F08E%"&9!B74`D#'`2(M5R&1(*Q0E*`````^%IP0``$B#Q#A;05Q! ++M74%>05]=PP\?0`!F@_@(#X5>____28M%"$B%P`^$4?___TB->/R)=:CHM>#] ++M_XMUJ.D]____#Q]$``!,B>^)=:CH'2;__TF+A"2@`0``2(7`=)!)BY0DD`$` ++M`$B%TG2#BW6H3HL\^(U.`4B+',A,*?M(@?O_/P``#X=E____1(UC_T&!_/S_ ++M_S\/A_,#``!&C32E`````$B)5:A!C7X(Z/_@_?](A<`/A-4#``!(C4@$N@@` ++M``!$B3!F08E5`$B+5:A"QP2A`````$F)30A*C31Z,=)F9BX/'X0```````\? ++M0``/MPQ6B4R0!$B#P@%(.=-U[^GJ_O__9BX/'X0```````^V0@U!O`L```!F ++M18EE`/?89D&)10CIQ?[__P\?1```2(L"NQ4```!F08E=`$F)10CIJO[__V8N ++M#Q^$``````!)BX0DZ`$``$*+!+B#^/\/A!`#``!)BY0DX`$``$B-#(4````` ++M.S2"#X5R_O__28NT))````!)BU0D4$&[%0```(M\#@2+#(9(BP3Z2"L$RF9% ++MB5T`28E%".E"_O__9I!!.[0D:`$```^#,O[__TF+A"1@`0``0H`\.``/A!_^ ++M__])BX0D<`$``$&X$P```$*+!+AF18E%`$&)10CI__W__P\?@`````!!.[0D ++MZ`````^#ZOW__TF+A"3@````0H`\.``/A-?]__])BX0D\````$J+!/A!QT4` ++M0``7`$F)10CINOW__V8N#Q^$``````!!.[0D"`$```^#HOW__TF+A"0``0`` ++M0H`\.``/A(_]__])BX0D$`$``$J+!/A!QT4`0``7`$F)10CI<OW__V:003NT ++M)"@!```/@V+]__])BX0D(`$``$*`/#@`#X1/_?__28N$)#`!``!*BP3X0<=% ++M`$``%P!)B44(Z3+]__]FD(!Z#@`/A";]__^+0@B_$P```&9!B7T`08E%".D0 ++M_?__03NT)$@!```/@P+]__])BX0D0`$``$*`/#@`#X3O_/__28N$)%`!``!! ++MN14```!*BP3X9D6)30!)B44(Z<_\__\/'X``````,<!!.[0DB`$```^#J/S_ ++M_TF+A"2``0``0@^V!#CWV.F4_/__#Q]``$F+C"2@````B<*#P`%-B[0DJ``` ++M`$C'1<``````NP```(!(BQ313(L$P4B-1;!(B<=(B46H22G020'63(EUL$V) ++MQ$R)1;CHE?K__TB+3<!(.=@/@Z;I_?]!B<>%P`^$(OS__V9F+@\?A``````` ++M9I!,.>$/@W'I_?]!#[8\#DR-40&)^$&)^8/@#T�\/A(P```"#Z`%)C70. ++M`DN-%!9(`<8QP&9F+@\?A```````9F8N#Q^$```````/'T0```^V"DC!X`A( ++M@\(!2`G(2#G6=>U%#[;)2XT,$4@]`0?Q!G12@^<@=1!!@^\!=8(QP.F;^___ ++M#Q\`2(M]J$B)3<#HV_G__TB+3<!(.=@/@^SH_?](`<'KT68/'X0``````$R) ++MT>N^0;H5````9D6)50#I:_O__[C_____Z5'[__^X#@`'@+D*````28E%"+@. ++M``>`9D&)30#I1OO__^C/V_W_D&9F+@\?A```````#Q\`\P\>^E5(B>5!54%4 ++M28GT4TB)^TB#[`CK-P\?@`````!(A<`/A(/H_?],BVMP3(GOZ#OY__])BTT0 ++M28M5"$@IRD@YP@^"8^C]_T@!R$F)11!(BWMPZ!?Y__]).<1UPDB#Q`A;05Q! ++M75W#D&8/'T0``/,/'OI5B?9(B>5!5D%5051)B<Q32(N'J````$B+'/`QP$2( ++M@P0!``!(A=)T"DB+`DB-DP@!``!(B9,0`0``1(NS``$``$B)@P@!``#'@R`! ++M````````1#FS)`$```^#-0$``$6%]@^(V^?]_TB+NQ@!``!(A?]T!>C3V_W_ ++M2,>#&`$```````!$B??'@R0!````````2,'G`^A2V/W_1(FS)`$``$2+JP`! ++M``!(B8,8`0``1(FS(`$``,>#,`$```````!$.:LT`0``#X._````187M#XAH ++MY_W_2(N[*`$``$B%_W0%Z&7;_?](QX,H`0```````$2)[\>#-`$```````!( ++MP><#Z.37_?]$B:LT`0``1(N#``$``$B)@R@!``!$B:LP`0``187`=%E,BXLH ++M`0``2<'@`S'`ZR0/'T``28L4!#'V2(72=`9(BS)(B<I(@\`(2(DQ2(D73#G` ++M="9(BXL8`0``28T\`4@!P4V%Y'7-,=(Q]DB#P`A(B3%(B1=,.<!UVEM!7$%= ++M05Y=PY!%B>CKC`\?`$6)]>D3____\P\>^E6)]DB)Y4%6055!5$F)S%-(BX>@ ++M````2(L<\#'`1(B#!`$``$B%TG0*2(L"2(V3"`$``$B)DQ`!``!$B[,``0`` ++M2(F#"`$``,>#(`$```````!$.;,D`0``#X,U`0``187V#XA%YOW_2(N[&`$` ++M`$B%_W0%Z#/:_?](QX,8`0```````$2)]\>#)`$```````!(P><#Z++6_?]$ ++MB;,D`0``1(NK``$``$B)@Q@!``!$B;,@`0``QX,P`0```````$0YJS0!```/ ++M@[\```!%A>T/B-+E_?](B[LH`0``2(7_=`7HQ=G]_TC'@R@!````````1(GO ++MQX,T`0```````$C!YP/H1-;]_T2)JS0!``!$BX,``0``2(F#*`$``$2)JS`! ++M``!%A<!T64R+BR@!``!)P>`#,<#K)`\?0`!)BQ0$,?9(A=)T!DB+,DB)RDB# ++MP`A(B3%(B1=,.<!T)DB+BQ@!``!)C3P!2`'!387D=<TQTC'V2(/`"$B),4B) ++M%TPYP'7:6T%<05U!7EW#D$6)Z.N,#Q\`18GUZ1/___]52(GE05=!5D%5051) ++MB?132(G[2(/L"$0/MH]8`0``BX=$`0``QX=``0```````$2+MP`!``!%A,D/ ++MA-$```!!O0$```"%P'5(0;\(````0;T!````2(N[.`$``$B%_W0%Z*K8_?]( ++MQX,X`0```````$R)_\>#1`$```````#H+=7]_T2)JT0!``!(B8,X`0``QX-0 ++M`0```````$0YLU0!```/@Y@```!%A?8/B&7D_?]%B?=)P><#2(N[2`$``$B% ++M_W0%Z$?8_?](QX-(`0```````$R)_\>#5`$```````#HRM3]_T2)LU0!``!$ ++M#[:+6`$``$B)@T@!``!(B[LX`0``28G"187M=4OIH@```$0Y\`^#QP$``$6% ++M]@^(^>/]_T6)]T6)]4&^`0```$G!YP/I'O___V8/'X0``````$0/MHM8`0`` ++M3(N32`$``$B+NS@!``"+@T`!```QTD6-1`4`9F8N#Q^$``````!F9BX/'X0` ++M``````\?@`````!(BXM@`0``2(L,$4B#P@A(BS&)P8/``4B-#,](B3%!.<!U ++MW42)@T`!``!(B3%%A?9T.XN#4`$``#'218T$!F:02(N+<`$``$B+#!%(@\(( ++M2(LQB<&#P`%)C0S*2(DQ03G`==U$B8-0`0``2(DQ2(N#\````$B+DR@!``!( ++MA<`/A!0!``!(BPA,BP),BUD82(N+$`$``$6$R74)2(G*3(G!28G02(LW28L2 ++M38GA2(G'0?_3BXMH`0``B8-<`0``13'DQX-``0```````,>#4`$```````"% ++MR70V#Q^``````$B+@V`!``!.BRS@28M]`$B%_W0.2(L'_U`02<=%``````!) ++M@\0!1#NC:`$``'+1BY-X`0``13'DA=)T,P\?0`!(BX-P`0``3HLLX$F+?0!( ++MA?]T#DB+!_]0$$G'10``````28/$`40[HW@!``!RT4B-9=A;05Q!74%>05]= ++MPV:0QX=0`0```````(N'5`$``(7`='1,BY=(`0``2(N_.`$``$6%]G1U18GU ++M0;X!````Z4'^__\/'P!,BYOX````28L#2(M`&$6$R74M3(V+$`$``$B)UD%4 ++M2(GR38G02(G^059,B=]$B>G_T%Y?Z>'^__\/'X``````2(VS$`$``$F)T>O1 ++M#Q]``$6)]4&_"````$&^`0```.D\_?__13'M0;X!````Z2C^__]F#Q]$``#S ++M#Q[Z53'V2(GE4TB)^TB#[`CH6?S__TB+7?C)P_,/'OI(B<?I9^']_P\?@``` ++M``#S#Q[Z54B)Y4%428G\4XGSQT<(`````$B+/T$Y7"0,<W](A?]T!>@EU?W_ ++M2<<$)`````")WT''1"0,`````.BMT?W_08E<)`PQR4F)!"1(B<=!B5PD"(/[ ++M"')5B=A(QP<`````2,=$!_@`````2(U'"$B#X/A(*<<!^X/C^(/["'(2@^/X ++M,=*)UH/""$B)##`YVG+S6T%<7<,/'X``````08E<)`B%VW3K,<F#^PASJ_;# ++M!'45A=MTV\8'`/;#`G33,<!FB40?_NO*QP<`````QT0?_`````#KNF8/'T0` ++M`/,/'OI52(GE059!B?9!54F)U4%428G\4\=""``````Y<@P/@I````!(BP*) ++M\T&)=0B%]G1P2(T,&#'_,=)`A/]U;DF+5"1P2(MR$$@[<@@/@TK@_?](BSI, ++MC48!3(E"$`^V%#>)UD#`[@=`B#!(C7`!2#GQ="^)UDB#P`)`P.X&@^8!0(AP ++M_T@YP709OB````")]T#0[T"$\@^5`$B#P`%(.<AUF%M!7$%=05Y=PV:0B?[K ++MW0\?0`"%]@^(VM_]_TB+.DB%_W0%Z*/3_?])QT4``````$2)\T''10P````` ++M2(G?Z"C0_?]%B74,28E%`$6)=0CI//___Y!F#Q]$``#S#Q[Z54B)Y4%6055) ++MB?U!5%-(B?-$BW8(QT88`````$0Y=AQR:D2)=AA(BT80187V=$Y(BSY%B?0Q ++MTNL/#Q\`B0R02(/"`4PYXG0U,<F`/!<`=.Q)BW5P2(M.$$R-001,.48(#X(Z ++MW_W_3(L.08L,"4R)1A")#)!(@\(!3#GB=<M;05Q!74%>7<-F#Q]$``!%A?8/ ++MB!#?_?](BWX02(7_=`7HR=+]_TC'0Q``````18GTQT,<`````$J-/*4````` ++MZ$K/_?]$B7,<2(L[2(E#$$2)<QCI7____V8/'T0``/,/'OI52(GE05=)B?]! ++M5D%528GU05132(G+2('L"`(``$B)E3#^__](B8TX_O__9$B+!"4H````2(E% ++MR#'`Z'W?__](A=L/A"0%``!(B[4X_O__2(T-MET``$B+!DF)]$B+4`A(.<H/ ++MA7,%``"#1B@!2,>%0/[__P````!(BP!(C15:5P``2#G0#X5I!0``,<!(C16X ++MH`(`2(T-T:`"`)`/MAP!.!P"#X73!```2(/``4B#^!!UZ4B+A3C^__],B:5` ++M_O__@T`H`4F+10#&1<`!2(U-@#'V0<:'``(```"Z`0```$R)[TC'A0#___\` ++M````QX4(____`````$C'1;@`````QH5X____`/]0($&)QH7`=3-)BT4`,?9( ++MC4V(N@(```!,B>__4"`QR3'22(MU@$&)QDF+10!,B>__4"!%A?8/A"`"``!( ++MB[T`____2(7_=`9(BP?_4!!(B[U`_O__2(7_=`9(BP?_4!!,BZTX_O__387M ++M#X3``0``28M%`$B-%2EK``!(BT`02#G0#X4T!```08M%*(F%,/[__X/H`4&) ++M12@/A9$!``!(C05>>`,`28N]"`$``/,/?@7G>0,`9D@/;M!(@\!H9@]LPF9( ++M#V[82(/`,$$/$44`\P]^!<QY`P!)B44@08N%$`$``&8/;,-!#Q%%$(7`=%=$ ++MC6#_2<'D`V9F+@\?A```````D$J+'"=(A=MT,$B+>Q!(A?]T!>AIT/W_2(L[ ++M2(7_=`9(BP?_4!!(B=^^,````.@NS_W_28N]"`$``$F#[`A)@_SX=;U(A?]T ++M!>@ST/W_2(N%./[__TB+N/@```!(A?]T!>@;T/W_2(N%./[__TB+N(````!( ++MA?]T!>@#T/W_2(N%./[__TB+>'!(A?]T!>CNS_W_2(N%./[__TB+>%!(A?]T ++M!>C9S_W_2(N%./[__TB+>$!(A?]T!>C$S_W_3(NM./[__T&+13A)BWTPA<!T ++M0D2-8/])P>0#9@\?A```````2HL<)TB%VW0>2(L[2(7_=`7HBL_]_TB)W[X0 ++M````Z%W._?])BWTP28/L"$F#_/AUSTB%_W0%Z&7/_?](B[TX_O__OB@!``#H ++M-,[]_TB+1<AD2"L$)2@````/A><0``!(C6781(GP6T%<05U!7D%?7<,/'X`` ++M````A<`/A6(%``!(C87@_O__2(UUF$R)[TC'A>#^__\@````2(G"2(F%*/[_ ++M_^CHI___08G&A<`/A:7]__](@[W@_O__(`^%B`0``(!]FKQU28!]FZ]U0X!] ++MG1QU/8!]G"=U-X!]F7IU,8!]F#=U*TB-=:2Z%````+______Z%B[_O_WT#E% ++MH`^$W`(``&9F+@\?A```````9I!(@[TP_O__`'012(N%,/[__TB#.``/A!X$ ++M``!(C;U(_O__NB"```"^@````.COR_W_A<`/A83>_?],BZ5(_O__387D#X1T ++MWOW_\P]O19A)C40D($C'A2#^__\`````2(F%&/[__T$/*00D\P]O1:A$B;4( ++M_O__3(F]`/[__T$/*40D$$B+C2#^__](BX4P_O__2(/Y`1G2@^+@@<(`@``` ++M2(7`=!Y(BP!(B840_O__2"G(B=%(.<AS"HG"A<`/A$4*``!)BT4`2(N-*/[_ ++M_TR)[\>%X/[__P````!(B[48_O___U`8A<`/A4X*``"+M>#^__^%]@^$#0H` ++M`#';08GPZS5F#Q]$``!)B<=(C7`,NA0```"______^@BNO[_32GG1(G[]]!! ++M.48(#X1``0``1(N%X/[__TF-?!P!2XUT!`'H^L3__TF)QD@Y\'*Z2XTT!+H@ ++M````3(GG3`&%(/[__^@*SOW_Z1C___\/'T0``$C'A4#^__\`````Z4G[__\Q ++MP$B-#?>;`@!F9BX/'X0``````&9F+@\?A```````D`^V-`%`.#0"=6Y(@\`! ++M2(/X$'7L2(N%./[__TR-8`CI\_K__P\?0`!(B[TX_O___]#I9OW__V8N#Q^$ ++M``````!(BYTX_O__2(G?_])(BP/I??K__P\?0`!(B[TX_O__2(V50/[__TB- ++M-4.;`@#_T.FU^O__#Q]``#'`2(T-/YL"`&9F+@\?A```````9F8N#Q^$```` ++M``!F#Q^$```````/MAP!.!P"#X63`@``2(/``4B#^!!UZ4B+A3C^__],C6`0 ++MZ5#Z__]F#Q^$``````!,B?%-B?A(BX4@_O__,=+S#V\!2`-%@$6)P$R)[TJ- ++M-`!)BT4`1(NU"/[__P\119CS#V]!$$R+O0#^__\QR4B)=8!(@\8@#Q%%J/]0 ++M($R)YXG#Z#G+_?^%VP^%\@<``$F+10!,B>__4`A(B[T`____2(7_=`9(BP?_ ++M4!!(BX5`_O__0<:'``(```%,B:T`____2(F%,/[__TF-1TA(B<=(B84@_O__ ++MZ`7'__](BU6`#[=%GDF)E[`!``!F08F'J`$``(3`#X7V````2(MUI$R+9:Q( ++M@\(@2+@`````````0$F)E[@!``"+7;1(B?%!QH<``@```$G'A_@!```@```` ++M2,'I/TPYX`^2P`C(#X6N````2,=%N"````!-A>0/A<T````/MH5X____2(7V ++M#X6E````A=L/A9T```!!QH<``@```4G'A_`!```@````A,`/A2,%``!)BT4` ++M3(GO_U`(28M_0$B%_W0&2(L'_U`02(N]`/___TV);T!(A?]T!DB+!_]0$$B+ ++MO4#^__](A?]T!DB+!_]0$$B+A3C^__](B[TH_O__2(F%X/[__^C_Y/__Z1;[ ++M__]F+@\?A```````@+UX____`'470;X!````Z03Y__\/'T``A,!T[0\?0`!! ++MQH<"`@```>O?9@\?1```00^VAP0"``!*C0PF2(EUD(/P`4&(AP`"``!)C40D ++M($B)1;A(C4$@28F'^`$``$B+18A(*=!(.<@/@E@$``!(B[T`____,<FZ`0`` ++M`$B+!_]0((7`=#J`O7C___\`=`A!QH<"`@```3T!0`"`#X3Q$P``08G&Z6[X ++M__]F#Q]$``!(BX4X_O__3(U@&.G']___3(GGZ#C&_?](BY4H_O__2(N]`/__ ++M_TB)QDB)A1#^__],B:7@_O__Z&2B__^%P`^%I04``$P[I>#^__\/A>0%``!( ++MB[40_O__3(GBO______H^[7^__?0.<,/A8;9_?]!@+\$`@```'4(0<:'`0(` ++M``%(C84`____,<E(B848_O__2(F%4/[__XN%"/___V:)C5C^__^#^`0/A#[8 ++M_?](BXT8_O__C5`!2(T$0,:%6/[__P%(P>`#B94(____2(U\`1!(BXT0_O__ ++M3(FD!1C___],C:50_O__2,>$!2#___\`````2(F,!1#___](C85@_O__2(F] ++M</___TC'A6#^__\`````2,>%:/[__P````!(B84(_O__Z#3E__])C8\0`@`` ++M2(F-`/[__TF-CPD"``!(B8WX_?__28V/"`(``$B)C?#]__](@_@!#X06`0`` ++M2(/X%P^%!]C]_TB-A6#^__])B[>X`0``3(N-\/W__TF-E\@!``!(B84(_O__ ++M3(N%,/[__TB)P4R-I5#^____M0#^__](B[T8_O___[7X_?__Z'J"``")PUA: ++MA=L/A6\#``"+A6C^__^%P`^$Y@0``(/X`0^%*];]_TR-I5#^__],B>?H&.3_ ++M_TB+A6#^__](BP!,BQ!,BT@(Z`+D__](BX48_O__2(F%4/[__XN%"/___X/X ++M!`^$(=;]_XU0`4B+C1C^__](C01`2,'@`XF5"/___TB-?`$03(F4!1#___], ++MB8P%&/___TC'A`4@____`````+@!````2(F]</___V:)A5C^___H]./__TB# ++M^`$/A;+5_?](BT6X0<:'``(```%,C:50_O__2(N]</___TF)A_`!``!(C85@ ++M_O__2(F%"/[__^BVX___28G$2(/X`@^$RP8``$C'A7#^__\`````2,>%>/[_ ++M_P````!)@_P##X1`!@``2,>%@/[__P````!(QX6(_O__`````$C'A>#^__\` ++M````2,>%Z/[__P````!(QX7P_O__`````$C'A?C^__\`````28/\!`^$D@4` ++M`$F#_`4/A)4#``!)B[_@`0``08M?3$B%_W0%Z&[&_?])QX?@`0```````$B- ++M/)T`````Z/;"_?])B[_H`0``28F'X`$``$&+G]@```!(A?]T!>@WQOW_2<>' ++MZ`$```````!(C3R=`````.B_POW_28F'Z`$``$B)QD&+A]@```"%P`^$I0<` ++M`$F+A]````!%,<`QR4B->`PQP.LBA-(/A*X"``#'!O____^#P0%(@\<02(/& ++M!$$[C]@```!S4`^V%X/R`46%P'33B0:$TG7;38M/>(G"08/``44[!)%RRX/` ++M`44QP.O#0<:'`@(```'IT/K__X"]>/___P!!QH<#`@```0^%1?O__^DI^___ ++M187`=`M!QH<"`@```8/``4$[1TQS,HG"28N_X`$``$F+=WA(P>("B0P71(L$ ++M%D6%P'0(0<:'`@(```&#P`%(@\($03M'3'+?387D=1%(BX5P____2(M($$@Y ++M2`AT"$'&AP4"```!2(N]\/[__TB%_W0%Z`G%_?](B[W@_O__2(7_=`7H^,3] ++M_TB+O8#^__](A?]T!>CGQ/W_,=N+A7C^__](B[UP_O__A<!T2XF=,/[__X/H ++M`4R-),4`````2HL<)TB%VW0A2(L[2(7_=`7HK<3]_TB)W[X0````Z(##_?]( ++MB[UP_O__28/L"$F#_/AUS(N=,/[__TB%_W0%Z'_$_?^+A6C^__](B[U@_O__ ++MA<!T6(F=,/[__X/H`4R-),4`````9F8N#Q^$``````!FD$J+'"=(A=MT(4B+ ++M.TB%_W0%Z#K$_?](B=^^$````.@-P_W_2(N]8/[__TF#[`A)@_SX=<R+G3#^ ++M__](A?]T!>@,Q/W_2(V]4/[__^A0X/__2(N]$/[__^CTP_W_@+UX____`'0( ++M0<:'`@(```&!^P%``(`/A&74_?^%VP^$!?G__T&)WNE_\O__2(N]$/[__XF% ++M,/[__^BUP_W_@+UX____`(N%,/[__W0(0<:'`@(```$]`4``@`^%U?G__^D< ++MU/W_9@\?1```3(GGZ/#"_?_I)/G__TB+O1#^___H;\/]_X"]>/___P`/A`OY ++M__]!QH<"`@```>G^^/__3(GGB84P_O__Z+?"_?^+A3#^___I?OG__T$[1TP/ ++M@W,-``")PDV+E^`!``!-BT]X2,'B`NL1@\`!2(/"!$$[1TP/@U0-``!!B0P2 ++M18L<$46%VW3BB0;I/_W__TB+O6#^___IV/[__TB+O7#____HDM___TB)A3#^ ++M__](/?___W\/AW?2_?^+A3#^__]!BY_<`0``B84(_O__03F?V`$```^$?0,` ++M`$&+A]@!``!-BZ?0`0``C5`!08F7V`$``$G'!,0)````.=H/A.("``!!BX?8 ++M`0``1(N5,/[__XU0`4&)E]@!``!)QP3$!@```$6%TG0-@[WH_O__``^%LP@` ++M`,>%G/[__P````#'A:S^__\`````QX6\_O__`````,>%\/W__P````!(QX4@ ++M_O__`````,>%Z/W__P````!(QX7X_?__`````,>%X/W__P````!(QX4`_O__ ++M`````,>%Y/W__P````!(B[UP____Z)+>__](B870_?__2(N]</___TB%P`^$ ++MFP,``.AVWO__2(G!2(N%</___TB+>!!(BU`(2"GZ2#G*#X)/TOW_2(LP2(N% ++M&/[__T4QR69$B8W(_O__2(F%P/[__XN%"/___X/X!`^$V]']_XU0`4B+G1C^ ++M__](`?Y!N`$!``")E0C___](C11`2,'B`V9$B87(_O__2(U\$Q!(B;05$/__ ++M_TB)C!48____2,>$%2#___\`````2(N5T/W__TB)O7#___](@?H```!`#X?# ++M`@``@^H.@_H+#X>W`@``2(T]P8H"`$AC%)=(`?H^_^),BXTH_O__2(N-(/[_ ++M_TF-E\`!``!(C;5P_O__2(N]&/[__TR-A8#^___H?*(!`/-!#V^'N`$``$B+ ++MO7#___]F#V_(9@]SV0AF#]3!9D$/UH?``0``Z%'=__])B<3I#/K__TF+M[@! ++M``#_M0#^__](C8UP_O__28V7R`$``$R+C?#]____M?C]__],BX4P_O__2(N] ++M&/[__^C>>@``05N)PT%<A<`/A6O[__])BX>X`0``20&'R`$``$B+O7#____H ++MYMS__TF)Q.E5^?__2(V%8/[__TB)P^LU2(F="/[__TB)O>C]___HO]S__TB+ ++MO>C]__](BT\02(M7"$@IRD@YP@^"<\_]_T@!R$B)1Q!(B[UP____2(F="/[_ ++M_TR-I5#^___H@]S__TB+O7#___](A<!UI4B-A6#^__],C:50_O__2(F%"/[_ ++M_^A=W/__28G$Z:SX__^!^_[__W\/A]?+_?^)V+K___]_P>@"*=J#P`$YT`]' ++MP@'82(T<Q0````")A2#^__](B=_H#;S]_TF)Q$&+A]@!``!)B[?0`0``A<`/ ++MA8\```!(A?8/A:<```"+C2#^__]-B:?0`0``08F/W`$``.FR_/__@?O^__]_ ++M#X?_S?W_B=BZ____?\'H`BG:@\`!.=`/1\*-#`-(B<M(P>$#2(G/2(F-(/[_ ++M_^B9N_W_28G$08N'V`$``$F+M]`!``!(BXT@_O__A<!U34B%]G5F38FGT`$` ++M`$&)G]P!``#I'?S__TB-%,4`````2(G93(GG2(FU`/[__^C+O_W_2(NU`/[_ ++M_TB)]^B<OOW_08N'V`$``.E%____2(T4Q0````!,B>=(B;4@_O__Z)F__?]( ++MB[4@_O__2(GWZ&J^_?]!BX?8`0``ZXDQR>GJ^/__Z%6]_?](:\`80<:'!0(` ++M``%(B8P%(/___TB-O<#^___HA=K__^E"_/__Z-O:__^+C>3]__])B<2+A3#^ ++M__\IR#N%B/[__P^%M\S]_XNU\/W__TB+O2#^___H_)D!`(F%&/[__X7`=&4Q ++MP$&)AX@!``"+A3#^__]!.8>,`0``<T!)B[^``0``2(7_=`7HR;W]_S'`2(N= ++M,/[__TF)AX`!```QP$&)AXP!``!(B=_H2+K]_TF)AX`!``!!B9^,`0``BX4P ++M_O__08F'B`$``#'`08F'V````(N%,/[__T$YA]P````/@Z\!``!)B[_0```` ++M2(7_=`7H8+W]_S';,<!)B9_0````2(N=,/[__T&)A]P```!(B=](P><$Z-NY ++M_?])B8?0````08F?W````$&)G]@```"+G3#^__],BY6`_O__,=),B:4P_O__ ++M1(N-Z/[__TR+A>#^__\QR4B+O?#^__])BX?0````3(NET/W__^F&````2(NU ++M`/[__T*`/"8`#X2*````1(N=Z/W__\9`#``Q]D0YVG,.3(N=^/W__XG600^V ++M-#-$BYWP_?__@_8!0(AP#3'V1#G:<PY,BYT@_O__B=9!#[8T,T4QV\9`#@"# ++MP@%,B1A$BYT8_O__187;=`M-BY^``0``0X@T(TF#Q`%(@\`03#GC=%"+M>#] ++M___'0`@`````03GT#X)D____#[<U8W\"`&:)<`R)SDV+'/),B1A$.<ER"\9` ++M#@"#P0$Q]NNB10^V'#!$B%@.183;=.N+-+>)<`CKXTR+I3#^__](@[T@_O__ ++M`'0,2(N](/[__^CSN_W_2(N%^/W__TB%P'0(2(G'Z-^[_?](BX4`_O__2(7` ++M#X1,]?__2(G'Z,>[_?_I/_7__TB+A3#^__]!B8?8````A<`/A8;^___KH4B+ ++MA0#^__^+M0C^__](C960_O__2(N]&/[__TB)A9#^__^+A>#]__^)A9C^___H ++M!^?__XN%F/[__TB+O9#^__^)QDB)O0#^__^)A>#]___H5I<!`#'2B87D_?__ ++MB97P_?__B97H_?__08N7W`$``$$YE]@!```/A`D"``!!BX?8`0``C5`!2(N- ++MT/W__T&)E]@!``!)BY?0`0``2(D,PDB+A7#___](BT@02#E("`^$M?S__^D- ++MR?W_2(N%(/[__XNUY/W__TB-E;#^__](B[T8_O__2(F%L/[__XN%\/W__XF% ++MN/[__^A.YO__2(N%L/[__TB)A2#^__^+A;C^__^)A?#]___I7?___TAKP!@Q ++MTDB#Z#!(`>CK'$R-1P%,B8!0____@#P^`'0'QH5X____`4B#P@%(.=$/A&#_ ++M__](B[A0____2#G/<L_IFLC]_XN-"/[__TB+O1C^__])C9=``0``2(VU</[_ ++M_^B*;P``Z?/^__](BYT8_O__38VG8`$``(NU"/[__TR)XDB)W^AV;@``2(V% ++MT/[__TB)WDB-E7#^__](B9T8_O__2(G'2(F%V/W__TB)PV;'A=C^__\``.BS ++MC@$`2(N]&/[__TR)YNADYO__2(G?Z!S6___IA?[__XN-"/[__TB+O1C^__]) ++MC9<@`0``2(VU</[__^CW;@``Z6#^__]!.Y?<`0``#X0N`0``08N'V`$``(U0 ++M`4&)E]@!``!)QP3$"@```.DB]___2(N%^/W__XNUY/W__TB-E:#^__](B[T8 ++M_O__2(F%H/[__XN%Z/W__XF%J/[__^C4Y/__2(N%H/[__TB)A?C]__^+A:C^ ++M__^)A>C]___IX_W__X'Z_O__?P^'],;]_XG0N?___W_!Z`(IT8/``3G(#T?! ++MC0P0B<M(P>$#2(G/2(F-V/W__^B-M?W_28G$08N'V`$``$F+M]`!``!(BXW8 ++M_?__A<`/A6\"``!(A?8/A80"``!-B:?0`0``08F?W`$``.F*_?__BXT(_O__ ++M2(N]&/[__TF-E^````!(C;5P_O__Z.%M``#I2OW__XN-"/[__TB+O1C^__]) ++MC9<``0``2(VU</[__^B\;0``Z27]__^!^O[__W\/ATK&_?^)T+G___]_P>@" ++M*=&#P`$YR`]'P0'02(T<Q0````")A2#^__](B=_HS[3]_TF)Q$&+A]@!``!) ++MB[?0`0``A<`/A>H!``!(A?8/A0("``"+C2#^__]-B:?0`0``08F/W`$``.EF ++M_O__2(V%T/[__TB+M1C^__](C95P_O__9L>%V/[__P``2(G'2(F%V/W__^B7 ++MC`$`3(NE</___TF+OY`!``!)BT0D$$F+3"0(2"G!2(G+23N/F`$```^$-`$` ++M`$B%_W0.Z)*W_?\Q_TF)OY`!```Q]DF)MY@!``!(A=L/A<````"+A0C^__]) ++MB[^@`0``1(U@`4B%_W0%Z%RW_?\QR4J-/.4`````28F/H`$``.CFL_W_28F' ++MH`$``$B)P3'_,<"+E0C^__\YUW-02(G>38N'D`$``$@IQDC1[@^$*@$``#'2 ++M20'`ZPU(@\(!2#G6#X06`0``9D&#/%``=>M(.?(/A`4!``!(B<9(C410`DC1 ++M[DB)-/E(@\<!ZZ9(B<)(T>I(B13Y2#G#=`?&A7C___\!2(N]V/W__^@,T___ ++MZ77[__](B=_H3[/]_TR+I7#___])B8>0`0``2(G'28F?F`$``$F+1"0028M4 ++M)`A(*<)(.=H/@A/$_?])`P0D2(G:2(G&Z+*T_?])`5PD$.GQ_O__2(7)=>+I ++MY_[__TB-%,4`````3(GG2(FUV/W__^AGM_W_2(NUV/W__TB)]^@XMOW_08N' ++MV`$``.EH_?__2(T4Q0````!(B=E,B>=(B;4`_O__Z#*W_?](B[4`_O__2(GW ++MZ`.V_?]!BX?8`0``Z>K]___S#Q[ZZ4C"_?](BT7(9$@K!"4H````#X2!P_W_ ++MZ8'#_?_S#Q[ZZ07$_?_I5L;]__,/'OKIT,/]_^E[Q/W_Z7;$_?_S#Q[Z28G$ ++M28G5Z9C$_?_S#Q[Z28G$28G5Z9S$_?_S#Q[Z28G$28G5Z:#$_?_S#Q[Z28G$ ++M28G5Z:3$_?_S#Q[ZZ<3$_?_S#Q[Z28G$28G5Z3C"_?_S#Q[ZZ4;%_?_S#Q[Z ++MZ0/#_?_S#Q[ZZ6C%_?]F#Q]$``#S#Q[Z54B)Y4%7059!54%44TB#[%A(B56` ++M9$B+!"4H````2(E%R+A7``>`A?9T*4B+5<AD2"L4)2@````/A3("``!(@\18 ++M6T%<05U!7D%?7<,/'X``````2,<"`````$F)_K\X````Z*2S_?](B<-(C04* ++M30,`9@_OP$4QY$B)`T&+1B!(QT,P`````$B)79C'0P@!````#Q%#((7`=7GI ++MS`$```\?0`!(A?8/A3`!``!,B4,H1(EK-+\@````Z$VS_?](BWV@28G%2(DX ++M2(7_=`9(BP?_4`A(BT6X\P]O1:A)B448BT,P00\110B-4`&)4S!(BU,H3(DL ++MPDB+?:!(A?]T!DB+!_]0$$F#Q`%%.V8@#X/H````28M&&$C'1:``````9@_O ++MR4Z-/.4`````2,=%N`````!*BP3@#Q%-J$R+*$V%[70928M%`$R)[_]0"$B+ ++M?:!(A?]T!DB+!_]0$$F+1BA,B6V@2HL$.$B)1:B+0S0Y0S`/A3S___\]_O__ ++M?P^'G,3]_T&)Q;K___]_0<'M`BG"08/%`4$YU40/1^I%C7P%`$V)_4G!YP-, ++MB?_H*[#]_XM3,$B+<RA)B<"%T@^$X?[__TC!X@-,B?E(B<=(B76(Z(:T_?]( ++MBW6(28G`2(GW3(E%B.A3L_W_3(M%B.F[_O__9BX/'X0``````(M3,(72=&E( ++MBT,H,<E(C3309F8N#Q^$``````!F9BX/'X0``````&8/'X0``````$B+$$B# ++MP`A(B4H02`-*"$C'0A@`````2#G&=>1(BT6`2(E+&$C'0Q``````2(D8,<#' ++M0PP`````Z<+]__\/'P`QR>O8Z,>Q_?_S#Q[ZZ;K#_?_S#Q[Z2(G'Z<;#_?]F ++MD/,/'OI(@^\(Z6/]__^09I#S#Q[Z54B-1Q!(B>5!5T%6055!5$F)]%-(B?M( ++M@^P82#G&=%U$BVX(1#EO'`^#+@0``$B+?Q!(A?]T!>A@LOW_2,=#&`````!% ++MB>Y(QT,0`````$G!Y@),B??HX:[]_V9!#V[-2(E#$&8/<,'@9@_60QA)BS0D ++M3(GR2(G'Z%^P_?])C50D$$B-0R!(.<)T7T6+;"081#EK+`^#H@,``$B+>R!( ++MA?]T!>CTL?W_2,=#*`````!%B>Y(QT,@`````$G!Y@-,B??H=:[]_V9!#V[5 ++M2(E#(&8/<,+@9@_60RA)BW0D$$R)\DB)Q^CRK_W_28U4)"!(C4,P2#G"=%]% ++MBVPD*$0Y:SP/@Q4#``!(BWLP2(7_=`7HA[']_TC'0S@`````18GN2,=#,``` ++M``!)P>8"3(GWZ`BN_?]F00]NW4B)0S!F#W##X&8/UD,X28MT)"!,B?)(B<?H ++MA:_]_T&+1"0P28U4)#B)0T!(C4-(2#G"=%]%BVPD0$0Y:U0/@X`"``!(BWM( ++M2(7_=`7H$K']_TC'0U``````18GN2,=#2`````!)P>8"3(GWZ).M_?]F00]N ++MY4B)0TAF#W#$X&8/UD-028MT)#A,B?)(B<?H$*_]_TF-5"1(2(U#6$@YPG1? ++M18ML)%!$.6MD#X/K`0``2(M[6$B%_W0%Z*6P_?](QT-@`````$6)[DC'0U@` ++M````2<'F`DR)]^@FK?W_9D$/;NU(B4-89@]PQ>!F#]9#8$F+="1(3(GR2(G' ++MZ*.N_?^+@Z````#'0W``````QX.,`````````$2-:/])P>4#A<!T=$B+@Y@` ++M``!.BR0H387D=%I!BU0D:(72="!!QT0D:`````!)C7PD>.A4K_W_28V\)*`` ++M``#HU[']_T&+!"2%P'0<0<<$)`````!)C7PD$.@MK_W_28U\)#CHL[']_[[H ++M````3(GGZ+:N_?])@^T(28/]^'6,BTLH,=)%,>W'@Z``````````A<EU6.G1 ++M````D$B%]@^%LP```$R)LY@```!$B:.D````O^@```!!@\4!Z%NN_?^+BZ`` ++M``!(B[.8````QP``````C5$!QT!H`````(F3H````$B)!,Y$.VLH<WXYDZ0` ++M``!UO8'Z_O__?P^'>,#]_XG0N?___W_!Z`(IT8/``3G(#T?!1(T\$$V)_$G! ++MYP-,B?_HPZO]_XN3H````$B+LY@```!)B<:%T@^$6____TC!X@-,B?E(B<=( ++MB77(Z!BP_?](BW7(2(GWZ.RN_?_I0/___P\?@`````!(@\08,<!;05Q!74%> ++M05]=PP\?@`````!$B6M@187M#X18_O__2(M#6$Z--*T`````Z3?^__]F+@\? ++MA```````1(EK4$6%[0^$P_W__TB+0TA.C32M`````.FB_?__9I!$B6LX187M ++M#X0N_?__2(M#,$Z--*T`````Z0W]__]FD$2):RA%A>T/A*'\__](BT,@3HTT ++M[0````#I@/S__V:01(EO&$6%[0^$%/S__TB+1Q!.C32M`````.GT^___9I#S ++M#Q[Z2(/O".ES^___D&:0\P\>^E5(B>5!5T%6055)B?5!5$F)_%-(@^P81`^V ++M=A&+5W`[5W0/A-0"``!,BW]HC4(!08E$)'!%B#0708N4)(````!%#[9U$$$[ ++ME"2$````#X0Y`@``38M\)'B-0@%!B80D@````$&+A"2T````18@T%T$YA"2P ++M````=68]_O__?P^'P;[]_XG#NO___W_!ZP(IPH/#`3G3#T?:1(T\`TR)^TG! ++MYP-,B?_H`:K]_T&+E"2P````28NT)*@```!)B<:%T@^%S@(``$B%]@^%W`(` ++M`$V)M"2H````08F<)+0```"_@`$``.CSJ_W_9@_OP,:`!`$```!(B<-(QX`8 ++M`0```````$C'@"`!````````2,>`*`$```````!(QX`P`0```````,=`"``` ++M``#'0'``````2,>`V`````````#'@.``````````#Q&`\````$B-!:A3`P!( ++MB0-!BX0DL````$C'@S@!````````C5`!2,>#0`$```````!!B90DL````$F+ ++ME"2H````2,>#2`$```````!(QX-0`0```````,:#6`$```!(QX-@`0`````` ++M`$C'@V@!````````2,>#<`$```````!(QX-X`0```````$B)',)!BT4438MU ++M`(F#``$``$V%]G0)28L&3(GW_U`(2(N[\````$B%_W0&2(L'_U`03(FS\``` ++M`$V+=0A-A?9T'$F+!DB-%<\W_O](BT`(2#G0#X7R`0``08-&(`%,B[OX```` ++M387_="))BQ=(C0T'5_[_2(M2$$@YR@^%N@$``$&#;R`!#X3_````00^VA"2( ++M````3(FS^````(B#6`$``$B#Q!A;05Q!74%>05]=PV8N#Q^$``````"!^O[_ ++M_W\/AZB\_?^)T[C___]_P>L"*="#PP$YPP]'V(T,$TB)STB)3<A(B<OH[J?] ++M_TF+="1X2(M-R$&+E"2`````28G'A=(/A0H!``!(A?8/A1$!``!-B7PD>$&) ++MG"2$````Z6/]__\/'X``````@?K^__]_#X<XO/W_B=.X____?\'K`BG0@\,! ++M.<,/1]B-#!-(B<](B4W(2(G+Z'ZG_?]!BU0D<$F+="1H2(M-R$F)QX72=7E( ++MA?8/A8````!-B7PD:$&)7"1TZ='\__^028U'4$V-;RA(B47(28M]`$F#Q0CH ++M!ZK]_TB+1<A).<5UZKXH`P``3(G_Z&&I_?_IS?[__P\?0`!(P>(#3(GY2(G' ++M2(EUR.B%J_W_2(MUR$B)]^A9JOW_Z1?]__\/'T``2(G'2(EUR.ADJ_W_2(MU ++MR$B)]^@XJOW_08M4)'#I;O___V8/'T0``$B)QTB)=<CH/*O]_TB+=<A(B??H ++M$*K]_T&+E"2`````Z=K^__\/'P!,B?__TNE'_O__9@\?1```3(GW_]#I"?[_ ++M_V8/'T0``/,/'OI(@^\(Z</[__^09I#S#Q[Z54F)^4B)Y4%7059!54F)_4%4 ++M4S';2('LJ````$B)M4C___]$BY>P````2(F50/___TB)C3C___],B84P____ ++M9$B+!"4H````2(E%R#'`0<8``$6%T@^$,P,``)!)BX6H````08"]B`````!, ++MBS3828M%$(L$F(F%</___T&+AF@!```/A,L%``!!OP$```"%P'1R2(F=>/__ ++M_T2-8/],B>A-B?5)P>0#28G&D$F+A6`!``!*BQP@2(7;=!M(BSM(A?]T!DB+ ++M!_]0$+X(````2(G?Z-6G_?])@^P(28/\^'7+3(GP38GN2(N=>/___T''AF@! ++M````````28G%187_#X0%`0``,<!(B9UH____13'D3(FM8/___XG#18G]ZV@/ ++M'T0``$F+OF`!``!(A?]T$TR)C7C____HD*C]_TR+C7C___]-B8Y@`0``08F> ++M;`$``+\(````08/$`>@]I_W_08N6:`$``$F+CF`!``!(QP``````C5H!08F> ++M:`$``$B)!-%%.>QT=4$YGFP!``!UP8'[_O__?P^';KG]_XG8NO___W_!Z`(I ++MVH/``3G0#T?"1(T\`TR)^TG!YP-,B?_HJ:3]_T&+EF@!``!)B<&%T@^$3___ ++M_TF+MF`!``!(P>(#3(GY2(G'Z`&I_?])B<'I,?___V8/'X0``````$B+G6C_ ++M__],BZU@____08N&>`$``(7`=$Q$C6#_2<'D`V9F+@\?A```````#Q]``$F+ ++MAG`!``!.BSP@387_=!M)BS](A?]T!DB+!_]0$+X(````3(G_Z%6F_?])@^P( ++M28/\^'7+B[5P____0<>&>`$```````"%]@^$``$``#'`2(F=:/___T4QY$R) ++MK6#___^)PTV)]42+M7#____K9)!)B[UP`0``2(7_=!-,B8UX____Z!BG_?], ++MBXUX____38F-<`$``$&)G7P!``"_"````$&#Q`'HQ:7]_T&+E7@!``!)BXUP ++M`0``2,<``````(U:`4&)G7@!``!(B03113GT=&U!.9U\`0``=<&!^_[__W\/ ++MA_:W_?^)V+K___]_P>@"*=J#P`$YT`]'PD2-/`-,B?M)P><#3(G_Z#&C_?]! ++MBY5X`0``28G!A=(/A$____])B[5P`0``2,'B`TR)^4B)Q^B)I_W_28G!Z3'_ ++M__^02(N=:/___TR+K6#___](@\,!03N=L`````^"T?S__TV)Z46+02A%A<`/ ++MA!$#``!(QX5X____`````$B-18!(B850____Z3\"``!F#Q]$``#'A5S___\` ++M````B=9%,<!(B?I)B[F8````3(TTU0````!,B8U@____3(LD#TF+B:@```"_ ++M&````$B+%-%(BY)P`0``2(L$`DB)A7#___](C03U`````$B)A6C___](BP3Q ++M2(N`8`$``$Z++`#H;Z3]_\=`"`````!(B<-(C05&/0,`2(G?2(D#3(EC$/\5 ++M/CT#`$F+?0!,BXU@____2(7_=`U(BP?_4!!,BXU@____28E=`+\8````3(F- ++M8/___^@<I/W_QT`(`````$F)Q4B-!<,\`P!,B>])B44`38EE$/\5NCP#`$B+ ++MA7#___],BXU@____2(LX2(7_=`U(BP?_4!!,BXU@____2(N%</___TB+M6C_ ++M__],B2A)BX&H````2,=%@`````!(QT6(`````$B+!#!(B[CP````2(7_#X2; ++M`0``2(L'3(F-</___TB--:I5`@!(BY50_____Q!,BXUP____28N!J````$J+ ++M!#!(B[CP````2(7_#X1/`0``2(L'3(F-</___TB-58A(C35J50(`_Q!(BWV` ++M2(M%B$R+C7#___](A?\/A!`!``!(A<!T5TB+!XNU7/___[H```@`_U`82(M] ++MB+H```@`1(G^2(L'_U`@2(M%B$B+?8!,BXUP____2(7`=!M(BQ!,B8UP____ ++M2(G'_U(02(M]@$R+C7#___](A?]T%$B+!TR)C7#_____4!!,BXUP____2(.% ++M>/___P%(BX5X____03M!*`^#MP```$B+A7C___])BW%82(T,Q0````!)BT$@ ++M2`'(BSA(B?J+/+Y)BW%(*Q2^08G7BU`$1(GX2,'@`T&`N8@`````#X6#_?__ ++M1(F]7/___TF)P$B)_C'`13'_Z7[]__\/'T``A<`/A%T(``!$B[UP____QX5P ++M____`0```.DA^O__9BX/'X0``````$B%P`^%(____^E2____9I!(B[CX```` ++MZ:7^__\/'T``2(NX^````.E9_O__#Q]``$&+44!)BX&H````08"YB`````!( ++MBP30#X3!!P``2(NU2/___TB+@&`!``!(BQY,BR!(A=MT%TB+`TR)C7C___]( ++MB=__4`A,BXUX____28L\)$B%_W042(L'3(F->/____]0$$R+C7C___])B1PD ++M08M).#';A<D/A*<```!,B[5`____38G,ZT,/'X0``````$B+EG`!``!-BSS> ++M3(LLPDV%_W0)28L'3(G__U`(28M]`$B%_W0&2(L'_U`038E]`$B#PP%!.UPD ++M.'-528M$)#!)BU0D6(L,F(L4BDB)R$F+C"2H````2(LTT4F+3"1(*P2108"\ ++M)(@`````=9-(BXU(____2(N68`$``$R+/-E,BRS"387_=8SKDV8/'T0``$V) ++MX4&+D;````!!BX&,````13'D38G-A=(/A#("``"01#G@#X1W`0``28N%J``` ++M`$Z+-.!%BWX(187_=&-)C5X82(G?Z#>B_?]!B<>%P`^$_`4``&9F+@\?A``` ++M````D$$/M\<-````B$6%_T0/3_A(BT7(9$@K!"4H````#X7H!P``2('$J``` ++M`$2)^%M!7$%=05Y!7UW##Q^$``````!)C7X8,?;HY:']_T&)QX7`=:Y)C7Y` ++M,?;HTZ#]_T&)QX7`=9Q!BUYP0<=&$`````!)QT8(`0```(7;#X27!0``28V> ++M@````$B)W^B1H?W_08G'A<`/A6;___]!QT9X`````$B)W^@6G_W_08G'A<`/ ++MA4O___]%BY[@````0<:&Z`````!%A=MU9TB-79!(B=_H>Z#]_T&)QX7`#X4@ ++M____,?9(B=_HUJ#]_T&)QX7`#X6+!0``28V^V````$R)\4B-%5I'_O](B=[H ++M0J+]_T&)QX7`#X5G!0``0<>&X`````$```!(B=_H=*']_P\?0`!!BX6,```` ++M9@\?A```````08N5L````$F#Q`%!.=0/@FS^__]-B>F%T@^$D@```$4Q[4V) ++MS&9F+@\?A```````1#GH=&M)BX0DJ````$J+'.C&@^@`````3(US&$R)]^B, ++MH/W_08G'A<`/A6'^___'0Q`!````2(U[0.CAG/W_3(GWB</H!Y[]_T&)QX7` ++M#X4\_O__A=L/A1P&``!!BX0DC````&9F+@\?A```````D$F#Q0%%.ZPDL``` ++M`'*"38GA28N1J````$B+M3C___],B8UX____2(L\PNB!QO__3(N->/___T6+ ++MD;````!%A=(/A+H%``!%,?]%,>1$B;UX____38G/9BX/'X0``````$4YIXP` ++M``!T<$F+AZ@```!*BQS@3(VK@````$R)[^B]G_W_A<!U042+0WA,C;.H```` ++M187`=1MF#Q^$``````!,B>Y,B??HM9_]_XMS>(7V=.Z+>W2%_W4'QT-X```` ++M`$R)[^@8G?W_B[5X____A?8/1<:)A7C___]!BX>P````28/$`4$YQ`^"<___ ++M_TV)^42+O7C___]%A?\/A2#]__^%P`^$^`0``$F+L:@```!(C13&2(GW2(GP ++M9F8N#Q^$``````!F9BX/'X0``````)!(BPA$B[E<`0``08'_!$``@`^$Z?S_ ++M_TB#P`A(.<)UX$B)\&9F+@\?A```````9F8N#Q^$```````/'X``````2(L( ++M1(NY7`$``$&!_PX`!X`/A*G\__](@\`(2#G"=>!(B?!F9BX/'X0``````&:0 ++M2(L(1(NY7`$``$6%_W0<08'_$```('0308/_`70-08'_!4``@`^%9?S__TB# ++MP`A(.<)US$B)\$B+"$2+N5P!``!!@_\!#X1%_/__2(/`"$@YPG7C2(L'1(NX ++M7`$``$6%_W0-08'_$```(`^%(/S__TB#QPA(.?IUVTR)C7C___\QVTR--7<D ++M_O],C2603@(`Z:(```!!BXTP`0``A<ET>4F+A2@!``!(@S@`=&Q(BP=(QT6` ++M`````$B-58!(C37]30(`_Q!(BWV`2(7_=$M(BP=(C76(_U`8A<`/A9`#``!( ++MBT6(2(/X_W0@28N5&`$``$@[`G,408"]!`$```!T"DB+A3#____&``%(BWV` ++M2(7_=`9(BP?_4!!(BX5X____2(/#`3N8L`````^#,`,``$B+L*@```!,BRS> ++M28N]\````$B%_P^%2O___TF+M?@```!(A?9TPDB+%DC'18``````2(GP3(L" ++M33GP#X7*`@``,=)(C3W&30(`#[8,%T$X#!0/A80"``!(@\(!2(/Z$'7H2(E% ++M@(-&(`%!BY4P`0``A=(/A*L!``!%,?_K8D2)^DB-/-"+=)!X2(N7B````$@I ++M\DB+M\@```!(*[>H````2"GR2(E5B$B#^O]T(4F+M1@!``!*.Q0&<Q1!@+T$ ++M`0```'0*2(NU,/___\8&`4F#QP%%.[TP`0``#X,[`0``28N5*`$``$2)_DZ- ++M!/T`````2H,\^@!TUDB+$$B-#:TH_O],BTH823G)#X1N____3(F%</___TB- ++M58A(B<=!_]%,BX5P____B<)(BT6`A=(/A4H!``!(BU6(Z6G___^00<=&$``` ++M``!(B=_HP)G]_T&)QX7`#X7U^?__08M><(7;#X5I^O__28V^@````#'VZ`N< ++M_?]!B<>%P`^%T/G__TF-OJ@````Q]NCRFOW_08G'A<`/A;?Y__]!QT9X```` ++M`$G'1G`!````Z5?Z__](B[5`____2(N`<`$``$B+'DR+($B%VP^%._C__^E- ++M^/__2(G?Z!B<_?_I<_G__XN]</___X7_=!9$B[UP____QX5P____`0```.DL ++M\O__08N&>`$``,>%</___P$```"%P`^%(_/__^F#\___2(7`#X3%_?__2(L0 ++M2(T-XD;^_TB+4A!(.<H/A24!``"#:!`!#X6D_?__3(UH&$R->$!)BWT`28/% ++M"$B)A7#____H_YG]_TTY[TB+A7#___]UX$B->/"^*`,``.A5F?W_Z6G]__]! ++MB==(A<`/A-3X__](BQ!(C0UZ1O[_2(M2$$@YR@^%QP```(-H$`$/A;/X__]( ++MC5@83(U@0$F)Q4B+.TB#PPCHG)G]_TPYXW7O28U]\+XH`P``Z/F8_?_IA/C_ ++M_S'`2(T5&TL"``^V#`)!.`P$=1-(@\`!2(/X$'7L2(U&".E@_?__2(U&$.E7 ++M_?__2(U5@$B--=I*`@!(B<=!_]!(BT6`2(7`#X3`_/__Z3S]__]FD$4Q_^DH ++M^/__08G?Z1#X__](BWV`08G'2(7_#X00^/__2(L'_U`0Z07X___HD)C]_TB) ++MQ__2Z7_\__](B<?_TNGL]___\P\>^DB)P^G'JOW_\P\>^DB#[PCID^___Y!F ++MD/,/'OI52(GE05=!5DF)]D%528G]05132('L^````&1(BQPE*````$B)7<A( ++MB<OHG9'__TB%VP^$!0,``$B+`TB-%6H>``!(B=Y(QX4H____`````$B+`$@Y ++MT`^%P`(``#'`2(T-YV<"`$B-%=!G`@`/MCP"0#@\`0^%T@(``$B#P`%(@_@0 ++M=>B#0R@!2(FU*/___TC'A4#___\`````OQ````#H6)7]_TB+O2C____'```` ++M``!(C15$2```3(U]H$C'1:``````2(L-H5L"`$B)A4#___](BP=(QT6H```` ++M`$B+0!A(B8U(____2#G0#X6#`@``2(/O"$R)^KX$````Z.I$``!!B<1%A>1U ++M$6:#?:`(0;P!````#X1Q`@``3(G_Z.G<_O](B[U`____2(7_#X0I`@``Z"28 ++M_?](BYTH____2(7;#X2D`0``2(L#2(T5ZC@``$B+0!!(.=`/A=T#``"#:R`! ++M#X5S`0``2(T%;#\#`$B+NP`!``!,C7OX\P]^!?%``P!F2`]NR$B#P&AF#VS! ++M9D@/;M!(@\`P#Q%#^/,/?@770`,`2(E#&(N#"`$``&8/;,(/$4,(A<!T742) ++MI1C___]$C7#_2<'F`V:03HLD-TV%Y'0R28M\)!!(A?]T!>AXE_W_28L\)$B% ++M_W0&2(L'_U`03(GGOC````#H/);]_TB+NP`!``!)@^X(28/^^'6[1(NE&/__ ++M_TB%_W0%Z#J7_?](B[OP````2(7_=`7H*9?]_TB+>WA(A?]T!>@;E_W_2(M[ ++M:$B%_W0%Z`V7_?](BWM(2(7_=`7H_Y;]_TB+>SA(A?]T!>CQEOW_BT,P2(M[ ++M*(7`=$]$B:48____1(UP_TG!Y@,/'X``````3HLD-TV%Y'0?28L\)$B%_W0% ++MZ+F6_?],B>>^$````.B,E?W_2(M[*$F#[@A)@_[X=<Y$BZ48____2(7_=`7H ++MC9;]_[XH`0``3(G_Z&"5_?]%A>1T$V9F+@\?A```````3(GOZ-B.__](BT7( ++M9$@K!"4H````#X6["@``2('$^````$2)X%M!7$%=05Y!7UW#2(V5*/___TB- ++M-2)E`@!(B=__T$B#O2C___\`#X52_?__0;P!````ZZ</'X``````2(US".DO ++M_?__#Q^``````$B+G2C___](A=L/A=S]___I>____P\?`$R)^KX$````_]!! ++MB<3I?_W__V8/'T0``$R-I4#___](BW6H3(GGZ$VG_O],B?_H9=K^_XN%2/__ ++M_TB+E4#___^%P'0P2(T$@NL79F8N#Q^$```````/'P!(.<(/A'<!``!(@^@$ ++M@S@N=>Y(*=!(P?@"@\`!2(V]4/___TR)XHG&B848____Z*VA_O^+A1C___]( ++MBY5`____3(VE8/___TR)YTR)I1C___](C32"Z%:B_O](C;UP____3(GFZ->C ++M_O](BY5P____BP*%P'0C9BX/'X0``````(UPOXU(((/^&@]"P4B#P@2)0OR+ ++M`H7`=>>_$````$C'1:``````Z(61_?](BPWN5P(`QP``````OQ````!(B46@ ++M2(E-J$C'1;``````Z%Z1_?])B<!(B46PB[UX____2(L%NE<"`$''``````!( ++MB46X@_\!#X>-````0;P!````3(G'Z(B4_?](BWV@2(7_=`7H>I3]_TB+O7#_ ++M__](A?]T!>AIE/W_2(N]8/___TB%_W0%Z%B4_?](B[U0____2(7_=`7H1Y3] ++M_TB+O4#___](A?]T!>@VE/W_2(N=*/___TB%VP^%$OS__^FA_?__D$B)W__0 ++MZ9;]__]F#Q]$```QP.F5_O__3(N5</___XGX28U$@OB+$(/Z80^%@0```$B- ++M%0M(`@!F9BX/'X0``````&9F+@\?A```````#Q\`#[9R`4B#P`1(@\(!B?$[ ++M,`^%)/___X3)=>:-5_]!O`(```"#_P)U(>LK9F8N#Q^$``````!F9BX/'X0` ++M`````$&#Q`%$.>=T#(G01"G@08,\@F%TZ\:%]/[__P'IA````(/Z,`^%T/[_ ++M_TB)P4B-%<I/`@!F9BX/'X0``````)!$#[9*`4B#P01(@\(!1(G.1#L)#X4$ ++M!@``0(3V=>*-5_]!O`(```"#_P)U'>LP9F8N#Q^$```````/'X``````08/$ ++M`40YYW05B=!$*>!!@SR",'3K1#GG#X5<_O__QH7T_O__`(G^2(U%@$B+E1C_ ++M__]$*>9(B<=(B87X_O__Z!R?_O](C4601(M%B$B+38"+E5C___](B[50____ ++M2(G'2(F%&/___^@D<@$`2(NU&/___TR)_^CUI/[_2(M]D$B%_W0%Z(>2_?]( ++MBWV`2(7_=`7H>9+]_XN%:/___TB+E6#___]%B>%,*<A(C32"2(U%L$B)QTB) ++MA>#^___HWZ/^_P^VA?3^__^(1<"+A5C___^%P`^%1@4``$F-?3A(C37,2`(` ++MZ-=P`0!(C84P____3(GW2(G&2(F%$/___^B^:O__08G$A<`/A7@!``!,BZ4P ++M____08M%,$T!94A!.T4T#X0I!0``38M%*(U0`4&)53!-B23`3(EUD$V%]G0) ++M28L&3(GW_U`(08M%)$$Y12!U5CW^__]_#X<TI/W_B<*Y____?\'J`BG!@\(! ++M.<H/1]%$C3P"38G\2<'G`TR)_^@MCOW_28G&08M%($F+=1B%P`^%0@4``$B% ++M]@^%6@4``$V)=1A%B64DOP@```#H+Y#]_TB+?9!)B<1(B3A(A?]T!DB+!_]0 ++M"$&+12!)BTT8C5`!08E5($R)),%(BWV02(7_=`I(BP?_4!!!BU4@B=!(B[48 ++M____,=)(B=](B4602(L#_U`@08G$A<!U>@\?1```OQ````#HEHW]_TF)QDB+ ++M!?Q3`@!(BTVP@'W``$''!@````!(B46(BT6XC5#_2(G02(T4D8LR=&2#_GH/ ++MA&D"``"#_EH/A0X%``#'`D$```"%P`^%8`(``$R)]^B@D/W_13'DBX7T_O__ ++M08-](`%!#Y3$02'$3(M%L$V%P`^$]OO__^GI^___9@\?A```````C5#_2(G0 ++M2(T4D8LR@_XY#X6S!```QP(P````A<!UX8M%N#E%O`^$;`,``(U0`4B->01( ++MB<Y(P>("Z!*1_?](BTVPQP$Q````BT6X1(U``42)1;A,B[T8____BU6H2(MU ++MH$R)_^B';P$`2(N]^/[__TR)_DR)=8#H5*+^_TB+?9!,BW6`2(7_=`7HXH_] ++M_TB+O2C___](C0UD@0``2,>%./___P````!(BP=(BT`@2#G(#X5H`@``2(V5 ++M./___TB#[PA,B?9(B94(____Z']X``!!B<1(B[TX____08/\`0^$Q`,``$6% ++MY`^%*0,``$B%_P^$O0,``$B+M1#____H'6C__T&)Q(7`#X4"`P``3(N],/__ ++M_T&+13!-`7U(03M%-`^$&0$``$V+12B-4`%!B54P38D\P$&+121!.44@=5H] ++M_O__?P^'D:']_XG"N?___W_!Z@(IP8/"`3G*#T?1`=")P$R-/,4`````28G$ ++M3(G_Z)J+_?])B<!!BT4@28MU&(7`#X44`0``2(7V#X4O`0``38E%&$6)922_ ++M"````.B<C?W_2(N]./___TF)Q$B).$B%_W0&2(L'_U`(08M%($F+31A(B=]( ++MB[48____C5`!08E5($R)),&)T#'22(E%D$B+`_]0($B+O3C___]!B<2%P`^% ++M'@(``$B%_W0&2(L'_U`0387V#X1C_?__3(GWZ%N._?_I5OW__\<"80```(7` ++M#X2@_?__C5#_2(G02(T4D8LRZ6_]__\/'X``````/?[__W\/AU:@_?^)PKG_ ++M__]_P>H"*<&#P@$YR@]'T42-)`)$B:4`____2<'D`TR)Y^B:BOW_28G`08M% ++M,$F+=2B%P'572(7V=7:+C0#___]-B44H08E--.F._O__3(G'2(T4Q0````!, ++MB?E(B;4`____Z-F._?](B[4`____28G`2(GW3(F%`/___^B@C?W_3(N%`/__ ++M_^FV_O__3(G'2(T4Q0````!,B>%(B;7H_O__Z)J._?](B[7H_O__28G`2(GW ++M3(F%Z/[__^AAC?W_08M%,$R+A>C^___I:____TB-C3C___],B?9(B8T(____ ++M2(G*_]!!B<3IE_W__[HP````2(T-3$$"`.LK9F8N#Q^$``````!F+@\?A``` ++M````#[9Q`4B#P`1(@\$!B?([,`^%9/C__X32=>;IO_G__TB+M5#___^-4/]) ++MC7TXZ+Z?_O_ILOK__TB+O>#^___H?9C^_TB+3;"+1;CI?/S__SW^__]_#X<$ ++MH?W_B<*Y____?\'J`BG!@\(!.<H/1]%$C3P"1(F]"/___TG!YP-,B?_H*XG] ++M_TF)P$&+13!)BW4HA<!U<DB%]@^%C0```(N-"/___TV)12A!B4TTZ7KZ__]( ++MB[TX____2(7_=`9(BP?_4!!-A?8/A+K[__],B??H/8S]_^FM^___2(T4Q0`` ++M``!,B?E,B?=(B;4(____Z#Z-_?](B[4(____2(GWZ`^,_?_IF?K__TR)QTB- ++M%,4`````3(GY2(FU`/___^@0C?W_2(NU`/___TF)P$B)]TR)A0#____HUXO] ++M_T&+13!,BX4`____Z53___](A?]T!DB+!_]0$$V%]@^$$_O__^D&^___9@\? ++M1```@\8!B3)$BT6XZ7W[___HE8K]__,/'OI(B</I*9W]__,/'OI(B</I+IW] ++M__,/'OI(B</I`YW]__,/'OI(B</IDY_]__,/'OI(B</I&YW]__,/'OKIGIW] ++M__,/'OKIWYW]__,/'OI(B</IHI_]__,/'OI(B</I:Y_]__,/'OI(B</IL9_] ++M__,/'OI(B</I>9W]__,/'OI(B</IWIS]__,/'OI(B</IXYS]__,/'OKI?)_] ++M_V8/'T0``/,/'OI52(GE055!5%-(@^PH2(L?2(7;=!U(BP-(C16M9P``2(M` ++M$$@YT`^%@`0``(-K(`%T$DB#Q"A;05Q!75W##Q^``````$B-!9$N`P!(B[OH ++M`0``\P]^!;HS`P!F2`]NV$B#P&!F#VS#9D@/;N`/$0/S#WX%I3,#`&8/;,0/ ++M$4,02(7_=`7H8XK]_TR+H[@!``!(C14E#___28L$)$B+0!!(.=`/A10$``!! ++M@VPD"`$/A+@#``"+@[`!``!(B[NH`0``A<!T3$2-8/])P>0#9F8N#Q^$```` ++M```/'T``3HLL)TV%[70B28M].$B%_W0%Z/F)_?],B>^^2````.C,B/W_2(N[ ++MJ`$``$F#[`A)@_SX=<M(A?]T!>C1B?W_BX.0`0``2(N[B`$``(7`=$5$C6#_ ++M2<'D`P\?A```````3HLL)TV%[70B28M]`$B%_W0%Z)F)_?],B>^^$````.AL ++MB/W_2(N[B`$``$F#[`A)@_SX=<M(A?]T!>AQB?W_2(N[@`$``$B%_W0&2(L' ++M_U`02(N[:`$``$B%_W0%Z$Z)_?](B[M@`0``2(7_=`9(BP?_4!!(B[LH`0`` ++M2(7_=`7H*XG]_TB+NQ`!``!(A?]T!>@:B?W_2(N[R````$B%_W0%Z`F)_?^+ ++M@[@```!(B[NP````A<!T/42-8/])P>0#3HLL)TV%[70B28M]`$B%_W0%Z-F( ++M_?],B>^^$````.BLA_W_2(N[L````$F#[`A)@_SX=<M(A?]T!>BQB/W_2(N[ ++MH````$B%_W0%Z*"(_?](B[N0````2(7_=`7HCXC]_TB+NX````!(A?]T!>A^ ++MB/W_2(M[>$B%_W0&2(L'_U`02(T%$"L#`$R+8W#S#WX-E#$#`/,/?A64,0,` ++M9D@/;NA(@\!H9D@/;O!F#VS-9@]LU@\I3<`/*570387D#X3`````28L$)$B- ++M%;+D``!(BT`02#G0#X7U`0``08.L)"`!```!#X69````28N\)%@!``!-C6PD ++M\$$/$10D2(T%+2L#`$F)1"0000\13"3P2(7_=`7HV(?]_TF+O"1(`0``2(7_ ++M=`7HQH?]_TF+O"0X`0``2(7_=`7HM(?]_TF+O"0H`0``2(7_=`7HHH?]_TF+ ++MO"00`0``2(T%4RD#`$F)1"002(7_=`7HA(?]_TF-?"08Z*K=``"^R`$``$R) ++M[^A-AOW_3(MC8$V%Y`^$Q0```$F+!"1(C17UX0``2(M`$$@YT`^%.`$``$&# ++MK"0P`0```0^%G@```&8/;WW`28N\)&@!``!(C05E*@,`28E$)"!!#Q$\)&8/ ++M;WW000\1?"002(7_=`7H!H?]_TF+O"18`0``2(7_=`7H](;]_TF+O"1(`0`` ++M2(7_=`7HXH;]_TF+O"0X`0``2(7_=`7HT(;]_TF+O"0@`0``2(T%@2@#`$F) ++M1"0@2(7_=`7HLH;]_TF-?"0HZ-C<``"^R`$``$R)Y^A[A?W_2(/$*$B)W[X( ++M`@``6T%<05U=Z62%_?\/'T``28M\)!A(C07L'@,`28D$)$B%_W0&2(L'_U`0 ++M28M\)!!(A?]T!DB+!_]0$+XX````3(GGZ"B%_?_I"_S__P\?`$B)W__02(/$ ++M*%M!7$%=7<-,B>?_T.GN^___9@\?1```3(GG_]#IJ?[__V8/'T0``$R)Y__0 ++MZ6O___]F#Q]$``#S#Q[Z54B)Y4%44XM'"$2-8/]$B6<(187D=`U$B>!;05Q= ++MPP\?1```2(T%42H#`$B)^TB-?T!(B4?`Z-'Z__](BWL02(7_=`9(BP?_4!!( ++MB=^^4````.B%A/W_1(G@6T%<7<.09F8N#Q^$``````"0\P\>^E5(B>5!5T%6 ++M055)B?U!5$&)U%-(@>PH`0``2(FUR/[__XF-\/[__V1,BS0E*````$R)=<A- ++MB<9,B84@____387`=!Q)BP9(C17_%```2(M`"$@YT`^%_P@``$B`!1(FE ++MX/[__T&#_/]U#4&+A=@```")A>#^__^+A>#^__^%P`^$M0@``$V+G>@!``!! ++MB<)%,<`QP$B+G<C^__^______S'V#Q^$``````!$B<%!@_S_=`1"BPR#B<I% ++MBPR308/Y_W0N03GY=7HYP7)V28N]T`````\?@`````")PH/``4C!X@1(`S07 ++M.<%S[XU!`42)STF#P`%-.=!UL$F+!DR)]_]0&$&)QX7`=%!(C;T@____Z(3Y ++M__](BT7(9$@K!"4H````#X7R"```2(UEV$2)^%M!7$%=05Y!7UW##Q^````` ++M`$F+E>`!``!$B<B+!((YP0^#=?___^N2D+\X````Z/:"_?](C1V7'`,`9@_O ++MP#'23(GV2(D8NP$!``!(B<=FB5@,2,=`,`````#'0`@!````#Q%`$`\10"!( ++MB878_O__Z/1;__])BP9(QX5(____`````$B-'9\/``!(QX58____`````$C' ++MA6C___\`````2,=%@`````!(QT60`````$C'1:``````2,=%P`````!(QX40 ++M____`````$B+`,:%0/___P!(QX50____`````$C'A6#___\`````2,>%</__ ++M_P````!(QT6(`````$C'19@`````2,=%J`````!(.=@/A3\'``!)C48(08-& ++M(`%(B840____OU````#H^(']_TB)PTB-!9XG`P!!NP`!``!(B0-)C45(2(T5 ++MRA(``$B)0SA(B86P_O__28L&2,=#$`````!(QT-``````$B+0`AF1(E;&$B) ++MG0C____'0P@!````2#G0#X4#!P``08-&(`%$BXWP_O__3(ES0$6+E2`"``#' ++MA=3^__\`````187)#Y5#&$6%T@^50QE(B[W8_O__,=(Q]NC-[O[_08G'A<`/ ++MA:<"``"+A=3^__^+M>#^__\Y\`^#DP(``$V+A>@!``!(C3R%`````$C'A1C_ ++M__\`````08/\_P^$6@4``$B+A<C^___'A=#^__\!````2,>%N/[__P````!( ++M`?B+$$&+#)!(B=:)C<3^__^#^?\/A2,$``!(B4,HBX70_O__2(G?B7,TB4,P ++MQD,:`,9#2`#H\Y3__T&)QX7`#X4-`@``1(M#,$6%P`^$L`,``(.]Q/[___\/ ++MA%0&``!)BP9(C364#0``2,>%*/___P````!(BP!(.?`/A80%```QP&9F+@\? ++MA```````9F8N#Q^$```````/'T0``$B-#2E0`@!(C35"4`(`#[8,`3@,!@^% ++M+04``$B#P`%(@_@0==M)C48(08-&(`%(B84H____OQ````#&A0?___\`QH4& ++M____`$C'A3#___\`````Z-A]_?](B84P____2(LU.D0"`$B-O4#___],C8T8 ++M____QP``````08M%&$B)M3C___])BY7``0``QH4%____`$F+=4!!_W4P1(N% ++MQ/[__U!(C84P____:@%02(V%!O___U!(C84'____4$B-A07_____M2C___]0 ++M_[78_O__4TB+C;#^___H(GT!`$&)QTB#Q%"#^`$/A.H#```]`4``@`^$WP,` ++M`("]!?___P`/A.H!``"+>S"%_P^%0`0``,>%\/[__P8```!(B[T0____2(7_ ++M#X3M`0``2(L'2(T5VZ(``$B+0!A(.=`/A6,$``"+C?#^__^+E<3^__](@^\( ++MO@(```#HY)X``$&)QT6%_P^$L`$``$B+O3#___](A?]T+XN%//___S'VC5`! ++M2,'B`NBX??W_2(N],/___\>%./___P````!(A?]T!>CM?_W_2(N]*/___TB% ++M_W0&2(L'_U`02(N]"/___TB%_W0&2(L'_U`02(N]$/___TB%_W0F2(L'2(T5 ++MXU```$B+0!!(.=`/A=8#``"#;Q@!=0E(@^\(Z+=7``!(BWW`2(7_=`9(BP?_ ++M4!!(BWV@2(7_=`7H>G_]_TB+?9!(A?]T!>AL?_W_2(M]@$B%_W0%Z%Y__?]( ++MB[UH____2(7_=`7H37_]_TB+O5C___](A?]T!>@\?_W_2(N]2/___TB%_W0% ++MZ"M__?](BYW8_O__2(T5[0/__TB+`TB+0!!(.=`/A?P"``"+0PB)A?#^__^# ++MZ`&)0P@/A7CZ__](BWL82(T%91<#`$B)`TB%_W0&2(L'_U`02(N%V/[__TB+ ++M>!!(A?]T!DB+!_]0$$B+O=C^__^^.````.B8??W_Z3/Z__\/'P"^`@```$B) ++MW^A#=/__08G'187_#X5O_O__BU,PA=)T&(BY7@`0``3(F-N/[__T2-3@&+=(+\BX74_O__C5`!1#GZ#X,2`@`` ++M2(N-R/[__XG02(T,@>L9#Q]``$0YR'(C@\(!1(U(`4B#P01$.?IS$XG008/\ ++M_W0"BP%!B<)'.1R0=-B+A=3^__\IPHF5T/[__T0YSG-`1(G(08GP28N5T``` ++M`"GP3(G!@^@!2,'A!$P!P$@!T4C!X`1(C50"$#'`#Q\`2`,!2(/!$$@YRG7T ++M2(F%&/___TB+A<C^__](`<<QP$&#_/](#T7'Z>'Z__\/'T``08L$@(NUU/[_ ++M_XF%Q/[__X/X_P^%Y_[__\>%T/[__P$````QP$C'A;C^__\`````Z:CZ__\/ ++M'P`QP$&#_P&+<S`/E,"#P`&)A?#^__^%]G4SZ27\__]F+@\?A```````B[7P ++M_O__2(G?Z")R__]!B<>%P`^%3_S__XM+,(7)#X3T_?__@'L:`'76O@$```!( ++MB=_HB8W__^O5#Q^``````$4Q_^G(]___28U&$.G8^O__QX7P_O__`@```.O' ++M3(GW_]#I_/;__TB-E2C___](C37;2@(`3(GW_]#IMOK__TB+O=C^____T.F# ++M]___2(V5$/___TB--95*`@!,B??_T.FY^/__BXWP_O__BY7$_O__O@(```#_ ++MT$&)Q^F?^____]#I,OS__TR)]__02(M[0$B%_P^$\/C__TB+!TB-%8U8``!( ++MBT`02#G0=12#;R`!#X73^/__Z+53``#IR?C____0Z<+X___'A=#^__\!```` ++MZ2C^__]!OP5``(#IE/O__^AJ>OW_\P\>^DB)Q^D-D/W_\P\>^DF)Q.EADOW_ ++M\P\>^DF)Q.EBDOW_\P\>^DF)Q.G6C_W_\P\>^DF)Q.F]DOW_\P\>^DF)Q.FE ++MDOW_9BX/'X0```````\?A```````\P\>^DC'`@`````QP$B-#5PL`@!F9BX/ ++M'X0``````)!$#[8$`40X!`9U%4B#P`%(@_@0=>M(B3HQP(-'"`'#D+@"0`"` ++MPV8N#Q^$``````#S#Q[ZBT<(@\`!B4<(PV:0\P\>^DC'`@````!(B?$QP$B- ++M-?DK`@!F#Q^$``````!$#[8$!D0X!`%U'4B#P`%(@_@0=>M(B?A(B0(QP(-' ++M*`'#9@\?1```,<!(C34_20(`1`^V#`9$.`P!=1D/'T``2(/``4B#^!!TRT0/ ++MM@P&1#@,`73K,<!(C34B20(`9I!$#[84!D0X%`%U'4B#P`%(@_@0=>M(C4<( ++M2(D",<"#1R@!PP\?1```,<!(C37/2`(`9F8N#Q^$```````/'T``1`^V'`9$ ++M.!P!=1-(@\`!2(/X$'7K2(U'$.E:____,<!(C36)2`(`9F8N#Q^$``````!F ++M9BX/'X0```````\?`$0/MAP&1#@<`7432(/``4B#^!!UZTB-1QCI&O___[@" ++M0`"`PV9F+@\?A```````D/,/'OI(QP(`````2(GQ,<!(C37)*@(`9F8N#Q^$ ++M``````!F9BX/'X0```````\?`$0/M@0&1#@$`74=2(/``4B#^!!UZTB-1^!( ++MB0(QP(-'"`'##Q]$```QP$B--?]'`@!$#[8,!D0X#`%U&0\?0`!(@\`!2(/X ++M$'3+1`^V#`9$.`P!=.LQP$B-->)'`@!FD$0/MA0&1#@4`74=2(/``4B#^!!U ++MZTB-1^A(B0(QP(-'"`'##Q]$```QP$B--8]'`@!F9BX/'X0```````\?0`!$ ++M#[8<!D0X'`%U$TB#P`%(@_@0=>M(C4?PZ5O___\QP$B--4E'`@!F9BX/'X0` ++M`````&9F+@\?A```````#Q\`1`^V'`9$.!P!=1-(@\`!2(/X$'7K2(U'^.D; ++M____N`)``(##9F8N#Q^$``````"0\P\>^DC'`@````!(B?$QP$B--8DI`@!F ++M9BX/'X0``````&9F+@\?A```````#Q\`1`^V!`9$.`0!=1U(@\`!2(/X$'7K ++M2(U'Z$B)`C'`@T<0`<,/'T0``#'`2(TUOT8"`$0/M@P&1#@,`749#Q]``$B# ++MP`%(@_@0=,M$#[8,!D0X#`%TZS'`2(TUHD8"`&:01`^V%`9$.!0!=1U(@\`! ++M2(/X$'7K2(U'\$B)`C'`@T<0`<,/'T0``#'`2(TU3T8"`&9F+@\?A``````` ++M#Q]``$0/MAP&1#@<`7432(/``4B#^!!UZTB-1_CI6____S'`2(TU"48"`&9F ++M+@\?A```````9F8N#Q^$```````/'P!$#[8<!D0X'`%U$DB#P`%(@_@0=>M( ++MB?CI'/___[@"0`"`PV9F+@\?A```````9I#S#Q[Z2,<"`````$B)\3'`2(TU ++M22@"`&9F+@\?A```````9F8N#Q^$```````/'P!$#[8$!D0X!`%U'4B#P`%( ++M@_@0=>M(C4?P2(D",<"#1Q@!PP\?1```,<!(C35_10(`1`^V#`9$.`P!=1D/ ++M'T``2(/``4B#^!!TRT0/M@P&1#@,`73K,<!(C35B10(`9I!$#[84!D0X%`%U ++M'4B#P`%(@_@0=>M(C4?X2(D",<"#1Q@!PP\?1```,<!(C34/10(`9F8N#Q^$ ++M```````/'T``1`^V'`9$.!P!=1)(@\`!2(/X$'7K2(GXZ5S___\QP$B--<I$ ++M`@!F9BX/'X0``````&9F+@\?A```````#Q]``$0/MAP&1#@<`7432(/``4B# ++M^!!UZTB-1PCI&____[@"0`"`PV9F+@\?A```````D/,/'OI(QP(`````2(GQ ++M,<!(C34))P(`9F8N#Q^$``````!F9BX/'X0```````\?`$0/M@0&1#@$`74= ++M2(/``4B#^!!UZTB-1_A(B0(QP(-'(`'##Q]$```QP$B--3]$`@!$#[8,!D0X ++M#`%U&0\?0`!(@\`!2(/X$'3+1`^V#`9$.`P!=.LQP$B--2)$`@!FD$0/MA0& ++M1#@4`74=2(/``4B#^!!UZTB)^$B)`C'`@T<@`<-F#Q]$```QP$B--<]#`@!F ++M9BX/'X0```````\?0`!$#[8<!D0X'`%U$TB#P`%(@_@0=>M(C4<(Z5O___\Q ++MP$B--8E#`@!F9BX/'X0``````&9F+@\?A```````#Q\`1`^V'`9$.!P!=1-( ++M@\`!2(/X$'7K2(U'$.D;____N`)``(##9F8N#Q^$``````"0\P\>^HM'*(/` ++M`8E'*,-FD/,/'OJ+1PB#P`&)1PC#9I#S#Q[ZBT<0@\`!B4<0PV:0\P\>^HM' ++M&(/``8E'&,-FD/,/'OJ+1R"#P`&)1R##9I#S#Q[Z2,<"`````#'`2(T-?"4" ++M`&9F+@\?A```````D$0/M@0!1#@$!G4=2(/``4B#^!!UZTB-1PA(B0(QP(-' ++M(`'##Q]$```QP$B-#7]"`@!$#[8,`40X#`9U&0\?0`!(@\`!2(/X$'3+1`^V ++M#`%$.`P&=.LQP$B-#7)"`@!FD$0/MA0!1#@4!G4=2(/``4B#^!!UZTB-1Q!( ++MB0(QP(-'(`'##Q]$```QP$B-#<\[`@!F9BX/'X0```````\?0`!$#[8<`40X ++M'`9U&$B#P`%(@_@0=>M(C4<82(D",<"#1R`!P[@"0`"`PP\?@`````#S#Q[Z ++M2,<"`````#'`2(T-C"0"`&9F+@\?A```````9F8N#Q^$``````!F#Q]$``!$ ++M#[8$`40X!`9U'4B#P`%(@_@0=>M(C4?P2(D",<"#1P@!PP\?1```,<!(C0U_ ++M00(`1`^V#`%$.`P&=1D/'T``2(/``4B#^!!TRT0/M@P!1#@,!G3K,<!(C0UR ++M00(`9I!$#[84`40X%`9U'4B#P`%(@_@0=>M(C4?X2(D",<"#1P@!PP\?1``` ++M,<!(C0W/.@(`9F8N#Q^$```````/'T``1`^V'`%$.!P&=1=(@\`!2(/X$'7K ++M2(GX2(D",<"#1P@!P[@"0`"`PP\?A```````\P\>^DC'`@`````QP$B-#8PC ++M`@!F9BX/'X0``````&9F+@\?A```````9@\?1```1`^V!`%$.`0&=1U(@\`! ++M2(/X$'7K2(U'^$B)`C'`@T<0`<,/'T0``#'`2(T-?T`"`$0/M@P!1#@,!G49 ++M#Q]``$B#P`%(@_@0=,M$#[8,`40X#`9TZS'`2(T-<D`"`&:01`^V%`%$.!0& ++M=1U(@\`!2(/X$'7K2(GX2(D",<"#1Q`!PV8/'T0``#'`2(T-SSD"`&9F+@\? ++MA```````#Q]``$0/MAP!1#@<!G482(/``4B#^!!UZTB-1PA(B0(QP(-'$`'# ++MN`)``(###Q^``````/,/'OI(QP(`````,<!(C0V,(@(`9F8N#Q^$``````!F ++M9BX/'X0``````&8/'T0``$0/M@0!1#@$!G4=2(/``4B#^!!UZTB)^$B)`C'` ++M@T<8`<-F#Q]$```QP$B-#7\_`@!$#[8,`40X#`9U&0\?0`!(@\`!2(/X$'3+ ++M1`^V#`%$.`P&=.LQP$B-#7(_`@!FD$0/MA0!1#@4!G4=2(/``4B#^!!UZTB- ++M1PA(B0(QP(-'&`'##Q]$```QP$B-#<\X`@!F9BX/'X0```````\?0`!$#[8< ++M`40X'`9U&$B#P`%(@_@0=>M(C4<02(D",<"#1Q@!P[@"0`"`PY!F#Q]$``#S ++M#Q[ZBT<@@\`!B4<@PV:0\P\>^HM'"(/``8E'",-FD/,/'OJ+1Q"#P`&)1Q## ++M9I#S#Q[ZBT<8@\`!B4<8PV:0\P\>^E5(B>5(@^P09$R+!"4H````3(E%^$R+ ++M1V!-A<`/A*(```"`?U,`='](BX>X`0``3(M(*$R)3?!(A?9T9TB+AY@!``!( ++MBPZ^````@$B+EZ`!``!(.<9S$`\?1```2-'H2-'J2#G&<O6^````@$@YSG,6 ++M9F8N#Q^$``````!(T>E(T>I(.<YR]4@/K\%(A=*Y`0```$@/1<HQTDCW\4P! ++MR$B)1?!(C77P28L`3(G'_U`@2(M5^&1(*Q0E*````'4)R<,/'P`QP.OHZ"]N ++M_?^09F8N#Q^$```````/'P#S#Q[Z2(N_N`$``$B+!_]@&&9F+@\?A``````` ++M#Q]``/,/'OI(B[^@`0``2(L'_V`8D&9F+@\?A```````#Q\`,<#&1C(`2(GY ++M9HE&,("_^P`````/A2X!``!,BT<H08!X:P!U<X"YXP`````/A<````"`N>\` ++M````=07##Q]``$B+N>0```!(N+U">N75E+_62/?G2+@`;^])_?___TC!ZA=( ++M`=!(:=*`EI@`2(E&$`^W@>P```!(*=>#Z!AK_V1(B7X89H/X`0^&2@$``,9& ++M,0'##Q]$``!(N+U">N75E+_628MX8$CWYTBX`&_O2?W___](P>H72`'02&G2 ++M@):8`$B)1B!!#[=`:$@IUX/H&&O_9$B)?BAF@_@!#X87`0``QD8R`8"YXP`` ++M```/A$#___](B[G8````2+B]0GKEU92_UDCWYTBX`&_O2?W___](P>H72`'0 ++M2&G2@):8`$B)!@^W@>````!(*=>#Z!AK_V1(B7X(9H/X`79]QD8P`>GN_O__ ++M#Q]``$B+O_````!(N+U">N75E+_62/?G2+@`;^])_?___TC!ZA=(`=!(:=*` ++MEI@`2(E&(`^W@?@```!(*=>#Z!AK_V1(B7XH9H/X`0^'2____P^V@?H```"$ ++MP`^$//___T@!^,9&,@%(B48HZ3#___\/'P`/MH'B````A,`/A'3___](`?A( ++MB48(Z6C___\/'T0```^V@>X```"$P`^$I_[__T@!^$B)1ACIF_[__P\?1``` ++M00^V0&J$P`^$W/[__^N>D`\?A```````\P\>^L9'30")\87V=0N`?R4`=#RY ++M`0```$B+1V!%,<"`?TD`2(L03(M*,'0'3(V'.`$```^VE\````!(B[>@```` ++M2(G'0?_A#Q^$``````#&1TT!Z\-F+@\?A```````\P\>^E5(B>5!5$F)]%-( ++MB?M(BW]X2(7_=!9(BP=;3(GF05Q=2(M`&/_@9@\?1```2(M[8$B-%160``!( ++MBP=(B?Y(BP!(.=!U=S'`2(T5WCH"`$B-#5<]`@`/'X``````1`^V!`%$.`0" ++M=25(@\`!2(/X$'7K2(E[>$B+!X.&,`$```%,B>9;2(M`&$%<7?_@,<!(C0T' ++M/0(`#Q^``````$0/M@P!1#@,`G4U2(/``4B#^!!UZTB#QQ#KN@\?1```2(U3 ++M>$B--64Z`@#_T(7`=!5;05Q=PV8N#Q^$``````!(@\<8ZX](BWMXZ2O___^0 ++M\P\>^E5(B>5!5$F)]%-(B?M(BW]H2(7_=!9(BP=;3(GF05Q=2(M`&/_@9@\? ++M1```2(M[4$B-%26/``!(BP=(B?Y(BP!(.=!U5S'`2(T5[CD"`$B-#6<\`@!F ++M9BX/'X0``````&9F+@\?A```````D$0/M@0!1#@$`G5%2(/``4B#^!!UZTB) ++M>VA(BP>#AC`!```!3(GF6TB+0!A!7%W_X$B-4VA(C365.0(`_]"%P'0_6T%< ++M7<-F+@\?A```````,<!(C0WG.P(`#Q^``````$0/M@P!1#@,`G4E2(/``4B# ++M^!!UZTB#QQ#KF@\?1```2(M[:.DA____#Q^``````$B#QQCI?/___Y!F#Q]$ ++M``#S#Q[Z2,<"`````#'`2(T-O!L"`&9F+@\?A```````D$0/M@0!1#@$!G4= ++M2(/``4B#^!!UZTB)^$B)`C'`@T<0`<-F#Q]$```QP$B-#0\S`@!$#[8,`40X ++M#`9U&0\?0`!(@\`!2(/X$'3+1`^V#`%$.`P&=.LQP$B-#4(;`@!$#[84`40X ++M%`9U+&9F+@\?A```````9F8N#Q^$``````"02(/``4B#^!!TBT0/MA0!1#@4 ++M!G3K,<!(C0V2,@(`9I!$#[8<`40X'`9U&$B#P`%(@_@0=>M(C4<(2(D",<"# ++M1Q`!P[@"0`"`PP\?@`````#S#Q[Z2,<"`````#'`2(T-S!H"`&9F+@\?A``` ++M````9F8N#Q^$``````!F#Q]$``!$#[8$`40X!`9U'4B#P`%(@_@0=>M(C4?X ++M2(D",<"#1P@!PP\?1```,<!(C0T/,@(`1`^V#`%$.`P&=1D/'T``2(/``4B# ++M^!!TRT0/M@P!1#@,!G3K,<!(C0U"&@(`1`^V%`%$.!0&=2QF9BX/'X0````` ++M`&9F+@\?A```````D$B#P`%(@_@0=(M$#[84`40X%`9TZS'`2(T-DC$"`&:0 ++M1`^V'`%$.!P&=1=(@\`!2(/X$'7K2(GX2(D",<"#1P@!P[@"0`"`PP\?A``` ++M````\P\>^HM'$(/``8E'$,-FD/,/'OJ+1PB#P`&)1PC#9I"+5BB+1BR#^O]T ++M+4R+!XG128L,R(E!+(/X_W0D2(L/2(L$P8E0*$C'1BC_____@V\8`<,/'T0` ++M`(E'%(/X_W7<B5<02,=&*/____^#;Q@!PU6)]DB)Y4%44TB+!TB)^TR+)/!) ++MBSPD2(7_="1(BP?_4!!)QP0D`````$R)YDB)WUM!7%WI=____P\?@`````!; ++M05Q=PY!F+@\?A```````BW<<,<`Y=QAR5E5(B>532(G[2(/L&(M'%(/X_W1# ++M2(L7,?9(BPS"N@$```!(BSE(@\$@2(L'_U`@A<!T"TB+7?C)PP\?1```BW,4 ++M2(G?B47LZ%K___^+1>Q(BUWXR<.0P[@%0`"`Z]4/'X0``````/,/'OHQP,-F ++M#Q^$``````#S#Q[Z,<##D`\?A```````\P\>^C'`PV8/'X0``````/,/'OHQ ++MP,.0#Q^$``````#S#Q[Z54B)Y4%7059!54%44TB#[!B+1PB#Z`&)1<R)1PAT ++M%8M%S$B#Q!A;05Q!74%>05]=PP\?`$B-!<D0`P!)B?Y(B0>+1QA(BW\0A<`/ ++MA+0```!$C6C_2<'E`P\?0`!.BR0O387D#X2-````08M$)#!)BWPD*(7`=%6- ++M6/](P>,#9F8N#Q^$```````/'P!,BSP?387_="U)BW\02(7_=`7H:6;]_TF+ ++M/TB%_W0%Z%QF_?],B?^^(````.@O9?W_28M\)"A(@^L(2(/[^'7`2(7_=`7H ++M-F;]_TF+?"082(7_=`7H)V;]_TR)Y[XX````Z/ID_?])BWX028/M"$F#_?@/ ++MA5C___](A?]T!>C^9?W_OB@```!,B??HT63]_^G__O__9F8N#Q^$``````"0 ++M\P\>^E5(B>5!5D%50513BT<H1(UH_T2);RA%A>UT$5M$B>A!7$%=05Y=PP\? ++M1```2(T%*0T#`$F)_/,/?@7>#P,`9D@/;LA(@\!H9@]LP69(#V[02(/`,`\1 ++M!_,/?@7%#P,`2(E'((N'$`$``&8/;,(/$4<02(N_"`$``(7`=%2-6/](P>,# ++M9@\?A```````3(LT'TV%]G0Q28M^$$B%_W0%Z#EE_?])BSY(A?]T!DB+!_]0 ++M$$R)][XP````Z/YC_?])B[PD"`$``$B#ZPA(@_OX=;Q(A?]T!>@"9?W_28N\ ++M)/@```!(A?]T!>CP9/W_28N\)(````!(A?]T!>C>9/W_28M\)'!(A?]T!>C/ ++M9/W_28M\)%!(A?]T!>C`9/W_28M\)$!(A?]T!>BQ9/W_08M$)#A)BWPD,(7` ++M=$6-6/](P>,#9F8N#Q^$``````"03(LT'TV%]G0?28L^2(7_=`7H>F3]_TR) ++M][X0````Z$UC_?])BWPD,$B#ZPA(@_OX=<Y(A?]T!>A49/W_3(GGOB@!``#H ++M)V/]_UM$B>A!7$%=05Y=PV9F+@\?A```````\P\>^E5(B>5!5T%6055!5%-( ++M@^P(BT<(1(UH_T2);PA%A>UT&TB#Q`A$B>A;05Q!74%>05]=PV8/'X0````` ++M`$B-!6D+`P!)B?Q,C7?@\P]^!1H.`P!F2`]NR$B#P&AF#VS!9D@/;M!(@\`P ++M#Q%'X/,/?@4`#@,`2(D'BX?P````9@]LP@\11_!(B[_H````A<!T4(U8_TC! ++MXP,/'T0``$R+/!]-A?]T,4F+?Q!(A?]T!>AY8_W_28L_2(7_=`9(BP?_4!!, ++MB?^^,````.@^8OW_28N\).@```!(@^L(2(/[^'6\2(7_=`7H0F/]_TF+O"38 ++M````2(7_=`7H,&/]_TF+?"1@2(7_=`7H(6/]_TF+?"102(7_=`7H$F/]_TF+ ++M?"0P2(7_=`7H`V/]_TF+?"0@2(7_=`7H]&+]_T&+1"0828M\)!"%P'1(C5C_ ++M2,'C`V9F+@\?A```````#Q]``$R+/!]-A?]T'TF+/TB%_W0%Z+IB_?],B?^^ ++M$````.B-8?W_28M\)!!(@^L(2(/[^'7.2(7_=`7HE&+]_[XH`0``3(GWZ&=A ++M_?_I=_[__V:0\P\>^E5(B>5!5T%6055!5%-(@^P(BT<01(UH_T2);Q!%A>UT ++M&TB#Q`A$B>A;05Q!74%>05]=PV8/'X0``````$B-!;D)`P!)B?Q,C7?H\P]^ ++M!6H,`P!F2`]NR$B#P&AF#VS!9D@/;M!(@\`P#Q%'Z/,/?@50#`,`2(E'"(N' ++M^````&8/;,(/$4?X2(N_\````(7`=$^-6/](P>,##Q]``$R+/!]-A?]T,4F+ ++M?Q!(A?]T!>C)8?W_28L_2(7_=`9(BP?_4!!,B?^^,````.B.8/W_28N\)/`` ++M``!(@^L(2(/[^'6\2(7_=`7HDF']_TF+O"3@````2(7_=`7H@&']_TF+?"1H ++M2(7_=`7H<6']_TF+?"182(7_=`7H8F']_TF+?"0X2(7_=`7H4V']_TF+?"0H ++M2(7_=`7H1&']_T&+1"0@28M\)!B%P'1(C5C_2,'C`V9F+@\?A```````#Q]` ++M`$R+/!]-A?]T'TF+/TB%_W0%Z`IA_?],B?^^$````.C=7_W_28M\)!A(@^L( ++M2(/[^'7.2(7_=`7HY&#]_[XH`0``3(GWZ+=?_?_I=_[__V:0\P\>^E5(B>5! ++M5T%6055!5%-(@^P(BT<81(UH_T2);QA%A>UT&TB#Q`A$B>A;05Q!74%>05]= ++MPV8/'X0``````$B-!0D(`P!)B?Q,C7?P\P]^!;H*`P!F2`]NR$B#P&AF#VS! ++M9D@/;M!(@\`P#Q%'\/,/?@6@"@,`2(E'$(N'``$``&8/;,(/$0=(B[_X```` ++MA<!T4(U8_TC!XP,/'T0``$R+/!]-A?]T,4F+?Q!(A?]T!>@98/W_28L_2(7_ ++M=`9(BP?_4!!,B?^^,````.C>7OW_28N\)/@```!(@^L(2(/[^'6\2(7_=`7H ++MXE_]_TF+O"3H````2(7_=`7HT%_]_TF+?"1P2(7_=`7HP5_]_TF+?"1@2(7_ ++M=`7HLE_]_TF+?"1`2(7_=`7HHU_]_TF+?"0P2(7_=`7HE%_]_T&+1"0H28M\ ++M)""%P'1(C5C_2,'C`V9F+@\?A```````#Q]``$R+/!]-A?]T'TF+/TB%_W0% ++MZ%I?_?],B?^^$````.@M7OW_28M\)"!(@^L(2(/[^'7.2(7_=`7H-%_]_[XH ++M`0``3(GWZ`=>_?_I=_[__V:0\P\>^E5(B>5!5T%6055!5%-(@^P(BT<@1(UH ++M_T2);R!%A>UT&TB#Q`A$B>A;05Q!74%>05]=PV8/'X0``````$B-!5D&`P!) ++MB?Q,C7?X\P]^!0H)`P!F2`]NR$B#P&AF#VS!9D@/;M!(@\`P#Q%'^/,/?@7P ++M"`,`2(E'&(N'"`$``&8/;,(/$4<(2(N_``$``(7`=$^-6/](P>,##Q]``$R+ ++M/!]-A?]T,4F+?Q!(A?]T!>AI7OW_28L_2(7_=`9(BP?_4!!,B?^^,````.@N ++M7?W_28N\)``!``!(@^L(2(/[^'6\2(7_=`7H,E[]_TF+O"3P````2(7_=`7H ++M(%[]_TF+?"1X2(7_=`7H$5[]_TF+?"1H2(7_=`7H`E[]_TF+?"1(2(7_=`7H ++M\UW]_TF+?"0X2(7_=`7HY%W]_T&+1"0P28M\)"B%P'1(C5C_2,'C`V9F+@\? ++MA```````#Q]``$R+/!]-A?]T'TF+/TB%_W0%Z*I=_?],B?^^$````.A]7/W_ ++M28M\)"A(@^L(2(/[^'7.2(7_=`7HA%W]_[XH`0``3(GWZ%=<_?_I=_[__V:0 ++M\P\>^E5(B>5!5T%6055!5%-(@^P(BT<01(U@_T2)9Q!%A>1T&TB#Q`A$B>!; ++M05Q!74%>05]=PV8/'X0``````$B-!<$&`P!(@W\@`$B)^_,/?@5I!P,`9D@/ ++M;LAF#VS!#Q$'=$9(BW\8BT,42(M70$B)QDB!QP@!``#&!`(`Z-WT__],BVL@ ++M387M=!])BT4`2(T5^?;__TB+0!!(.=`/A8P!``!!@VTH`705OB@```!(B=_H ++MF%O]_^EH____#Q\`2(T%*00#`$F+O0@!``#S#WX%V@8#`&9(#V[02(/`:&8/ ++M;,)F2`]NV$B#P#!!#Q%%`/,/?@6_!@,`28E%($&+A1`!``!F#VS#00\111"% ++MP'121(UP_TG!Y@,/'X``````3HL\-TV%_W0P28M_$$B%_W0%Z#E<_?])BS]( ++MA?]T!DB+!_]0$$R)_[XP````Z/Y:_?])B[T(`0``28/N"$F#_OAUO4B%_W0% ++MZ`-<_?])B[WX````2(7_=`7H\EO]_TF+O8````!(A?]T!>CA6_W_28M]<$B% ++M_W0%Z--;_?])BWU02(7_=`7HQ5O]_TF+?4!(A?]T!>BW6_W_08M%.$F+?3"% ++MP'0\1(UP_TG!Y@,/'P!.BSPW387_=!Y)BS](A?]T!>B*6_W_3(G_OA````#H ++M75K]_TF+?3!)@^X(28/^^'7/2(7_=`7H95O]_TR)[[XH`0``Z#A:_?^^*``` ++M`$B)W^@K6OW_Z?O]__]F#Q]$``!,B>__T.EQ_O__9@\?1```\P\>^E5(B>5! ++M5T%6055!5%-(@^P(BT<(1(U@_T2)9PA%A>1T&TB#Q`A$B>!;05Q!74%>05]= ++MPV8/'X0``````/,/?@4X!0,`2(-_&`!(B?M,C7?X2(T%;00#`&9(#V[(9@]L ++MP0\11_@/A)H!``!(BW\0BT,,2(M70$B)QDB!QP@!``#&!`(`Z)3R__](BUL8 ++M2(7;#X1O`0``2(L#2(T5K?3__TB+0!!(.=`/A7`!``"#:R@!#X5.`0``2(T% ++M[P$#`$B+NP@!``#S#WX%H`0#`&9(#V[02(/`:&8/;,)F2`]NV$B#P#`/$0/S ++M#WX%AP0#`$B)0R"+@Q`!``!F#VS##Q%#$(7`=$Q$C6C_2<'E`Y!.BSPO387_ ++M=#!)BW\02(7_=`7H"5K]_TF+/TB%_W0&2(L'_U`03(G_OC````#HSEC]_TB+ ++MNP@!``!)@^T(28/]^'6]2(7_=`7HTUG]_TB+N_@```!(A?]T!>C"6?W_2(N[ ++M@````$B%_W0%Z+%9_?](BWMP2(7_=`7HHUG]_TB+>U!(A?]T!>B56?W_2(M[ ++M0$B%_W0%Z(=9_?^+0SA(BWLPA<!T/42-:/])P>4##Q]``$Z+/"]-A?]T'DF+ ++M/TB%_W0%Z%I9_?],B?^^$````.@M6/W_2(M[,$F#[0A)@_WX=<](A?]T!>@U ++M6?W_OB@!``!(B=_H"%C]_[XH````3(GWZ/M7_?_I"_[__V8/'T0``$B)W__0 ++MOB@```!,B??HWE?]_^GN_?__D`\?A```````\P\>^E5(B>5!54%44TB#[`B` ++M?U,`2(FWH`$``'5R3(MG8$V%Y'1I28L$)$B-%5[$``!(B?-(BT`82#G0=6), ++MC2V[:0,`3(GOZ"-9_?])@WPD8`!T%T&`?"1H`'4/28E<)#!)C7PD*.@4M@`` ++MBP5R:0,`A<!U.3';3(GOZ)!6_?](@\0(B=A;05Q!75W##Q\`2(/$"#';B=A; ++M05Q!75W#D$B#Q`A,B>=;05Q!75W_X+L$0`"`Z\)F+@\?A```````\P\>^DB+ ++M1V!(A<!T$TB+"$B)QTB+21C_X0\?@`````!(BW]H2(7_=`]52(L'2(GE_U`( ++M7<,/'P`QP,/S#Q[Z2(G'Z;=R_?^0#Q^$``````#S#Q[Z2(M'8$B%P'032(L( ++M2(G'2(M)(/_A#Q^``````$B+?VA(A?]T#U5(BP=(B>7_4!!=PP\?`#'`P_,/ ++M'OI(B<?I>W+]_Y`/'X0``````%5(B>5!5$F)U%-(@^PP2(L_9$B+'"4H```` ++M2(E=Z$B)RTC'1=``````2(L'Q@$`2(U-T$C'`@````"Z!P```$C'1=@````` ++M_U`P#[=5T(7`=2-F@_H5=QA(C36Q)@(`#[?*2&,,CD@!\3[_X0\?0`"X!4`` ++M@&:#^@=V%8U*]F:#^39W+&9F+@\?A```````D$B+5>AD2"L4)2@```!U5TB# ++MQ#!;05Q=PP\?A```````9H/Z"'7:2(M]V$B%_W312(/O!(E%S.@U5OW_BT7, ++MZ\!(BU7828D4),8#`>NS#Q\`BU78Z^\/'P`/MU78Z^9FD`^V5=CKWNB55?W_ ++MD`\?0`#S#Q[Z54B#[X#&1ZP!2(GEZ`MH_O\QP%W##Q^``````/,/'OI52(/' ++M<,9'K`%(B>7HZV?^_S'`7<.09@\?1```\P\>^DB+!TB+4'!(BW(02#ER"'0$ ++MQD!X`8M("`^V=PF-4?^)4`B%TG0G@^D"2(T,24C!X0-,C40($$R)0'!`A/9T ++M#DB-%%)(BU30($@!5`@@QD<(`,-F+@\?A```````\P\>^E5(B>5!54%44TB) ++M^TB#[!A(BW]@9$R+)"4H````3(EEV$F)]$B%_P^$J````$B+!TC'1=`````` ++M2(T5_=K__TF)^$B+`$@YT'5R,<!(C159)`(`2(T-<B0"`&:0#[8T`4`X-`(/ ++MA9(```!(@\`!2(/X$'7H@T<H`4R)1=!)BP!,B<=,B>;_4!A(BWW0B<-(A?]T ++M!DB+!_]0$$B+1=AD2"L$)2@````/A>,```!(@\08B=A;05Q!75W##Q\`3(UM ++MT$B-->4C`@!,B>K_T$R+1=!-A<!UITB+>VA(A?\/A*,```!(BP?&0RT!3(GF ++M_U`@B</KIF8/'X0``````#'`2(T-UR,"`&9F+@\?A```````9F8N#Q^$```` ++M``"0#[8<`3@<`G472(/``4B#^!!U[4R-1PCI//___P\?0``QP$B-#7<C`@!F ++M9BX/'X0``````&9F+@\?A```````D`^V'`$X'`)U%TB#P`%(@_@0=>U,C4<0 ++MZ?S^__\/'T``3(U'&.GO_O__NP%``(#I"O___^A84_W_\P\>^DB)P^D6</W_ ++M\P\>^DB)Q^D5</W_\P\>^DB#[QCI0_[__P\?`/,/'OI52(GE055!5$R-;<!3 ++M2(G[2(/L*&1,BR0E*````$R)9=A)B?1(C36.!P(`Z"PQ`0"_$````$C'1<`` ++M````Z(I0_?](BQ7S%@(`3(GOQP``````2(E5R#'22(E%P$R)YNB8<?[_3(GN ++M2(G?Z)TQ`0!(BWW`2(7_=`7HKU/]_TB+1=AD2"L$)2@```!U"TB#Q"A;05Q! ++M75W#Z)!2_?_S#Q[Z2(G#Z6UO_?_S#Q[Z2(G#Z89O_?\/'X0``````/,/'OI5 ++M2(GE05132(/L,(!_+`!D2(L<)2@```!(B5WH2(G32,=%P`````!(QT7(```` ++M`'0[@_X$#X22````9H,[`'5,9@]O1<`/$0,QP$B+5>AD2"L4)2@````/A9$" ++M``!(@\0P6T%<7<-F#Q]$``"#[@2#_C%WQDB-#<DB`@!(8Q2Q2`'*/O_B#Q^` ++M`````$B)W^C(E_[_A<!YJ`^W1<!F@_@'=J:-4/9F@_HV=IUF@_@(=9=(BWW( ++M2(7_=(Y(@^\$Z!E2_?_I@/___P\?0`"+MX@```!(B[^`````0;@(````9D2) ++M1<#H<UC^_TB)1<A(A<`/A43____I_6[]_Y"+A]@```"Z$P```&:)5<")1<CI ++M)____V8/'X0``````$B+M\````!(N0"1$+8"````2`./N````$B)\DAIR8"6 ++MF`!(N,/U*%R/PO4HQT7`0``9`$C!Z@)(]^)(P>H"2(T$DD@!T4B-!(!(B4W( ++M2,'@`D@IQC'`9HEUQ&:)1<;IN_[__P\?1```2+D`D1"V`@```$B+M[````!( ++M`X^H````ZY9F#Q]$``!(N0"1$+8"````2(NWH````$@#CY@```#I<____P\? ++M`(N'V````+D0````B<*!X@#P``"!^@!```"Z(`````]$T8G1@\D!J)(/1-'! ++MX!"Y$P```&:)3<`)T(#,@(E%R.DR_O__#Q]``$B+AY````"^%0```&:)=<!( ++MB47(Z17^__\/'X``````BX?8````OPL```!FB7W`)0#P```]`$````^4P`^V ++MP/?89HE%R.GD_?__9@\?1```3(VG^````+\0````2,=%T`````#HETW]_TB+ ++M%0`4`@#'``````!(C7W03(GF2(E%T$B)5=@QTNBD;O[_9H-]P`!U/8MUV$B+ ++M?=#'1<`(````Z*I6_O](B47(2(7`#X3K;/W_2(M]T$B%_P^$;OW__^B;4/W_ ++MZ63]__]F#Q]$``!(C7W`Z'>5_O^%P'FVB47(Z['H>4_]__,/'OI(B</IQFS] ++M__,/'OKI#6W]_P\?0`#S#Q[Z2(/O".GC_/__#Q\`\P\>^E5(B>5!5TR-/<P# ++M`@!!5D&)UD%528GU2(G^051,C66P4TB#["AD2(L<)2@```!(B5W(2(G+2(G? ++MZ+\N`0!,B?Y(B=_H-"T!`$2)]DR)Y^B)B/[_3(GF2(G?Z,XM`0!(BWVP2(7_ ++M=`7HX$_]_TR)_DB)W^@%+0$`OQ````!(QT6P`````.AC3/W_2(L5S!("`$R) ++M[DR)Y\<``````$B)5;@QTDB)1;#H<6W^_TR)YDB)W^AV+0$`2(M]L$B%_W0% ++MZ(A/_?](BT7(9$@K!"4H````=0](@\0H6T%<05U!7D%?7</H94[]__,/'OI( ++MB</I-VS]__,/'OI(B</I4&S]__,/'OI(B</I:6S]_Y#S#Q[ZBU<(2(L'A=)T ++M4E5(B>5!5$F)_%.-6O](P>,#D$B+/!A(A?]T#KX@````Z.U-_?])BP0D2(/K ++M"$B#^_AUWTB%P'026TB)QT%<7>GN3OW_9@\?1```6T%<7<,/'P!(A<!T"$B) ++MQ^G33OW_PV:0\P\>^E5(B>5!5T%6055!5%-(@^PH1(MO,$6%[0^$/@$``$B+ ++M1RA%,>1(B47`2(L&2(E%R$2)Z$B)1;@/'T0``$B+1<!,BVW(2HL$X$R+,)!! ++MBUT`18L^28/%!$F#Q@1$.?MT?H/[8'Y/@_MZ#XZ.````@_M_#X[-````B=_H ++M#D[]_XG#08/_8`^.J@```$&#_WH/C@`!``!!@_]_#XZ6````1(G_Z.9-_?\Y ++MPW2BZ9\````/'T0``$&#_V`/CI````!!@_]Z#XZ\````08/_?P^.?````$2) ++M_^BR3?W_.<-U<(7;#X5F____2(/$*$2)X%M!7$%=05Y!7UW##Q]``$2-0^!! ++M@_]@?FY!@_]Z?BA!@_]_?CQ$B?]$B46TZ&Y-_?]$BT6T03G`#X0A____ZR$/ ++M'X``````1#G[#X0/____ZP\/'T0``$&#_W\/CU#___])@\0!3#EEN`^%X/[_ ++M_TB#Q"BX_____UM!7$%=05Y!7UW##Q]``$4Y^`^$S_[__^O/#Q]$``!!C4?@ ++MZ4W___\/'X``````08U7X#G0#X2L_O__ZZQF+@\?A```````\P\>^E5(B>53 ++M2(/L.$B+!V1(BQPE*````$B)7>A(B<O&`0!(C4W02,=%T`````!(QT78```` ++M`/]0,`^W5="%P'4^9H/Z"W0@9H72=25(BU7H9$@K%"4H````=5-(BUWXR<-F ++M#Q]$``!F@WW8``^5`^O;N`5``(!F#Q^$``````!F@_H'=L>-2O9F@_DV=KYF ++M@_H(=;A(BWW82(7_=*](@^\$B47,Z.9+_?^+1<SKGNAL2_W_9F8N#Q^$```` ++M``"0\P\>^E5(B>532(/L.$B+!V1(BQPE*````$B)7>A(B=/&`@!(C5702,=% ++MT`````!(QT78`````/]00`^W5="%P'4^9H/Z"W0@9H72=25(BU7H9$@K%"4H ++M````=5-(BUWXR<-F#Q]$``!F@WW8``^5`^O;N`5``(!F#Q^$``````!F@_H' ++M=L>-2O9F@_DV=KYF@_H(=;A(BWW82(7_=*](@^\$B47,Z"9+_?^+1<SKGNBL ++M2OW_9F8N#Q^$``````"0\P\>^E5(B>5!54%44TB)TTB#[`A(BT=P2(M0$$@[ ++M4`@/@P5I_?](BPA!B?1(C7(!2(EP$(`\$0`/A((```#'0P@`````1#EC#'-% ++M187D#XC2:/W_2(L[2(7_=`7H/TO]_TC'`P````!%B>7'0PP`````3(GOZ,9' ++M_?]$B6,,2(D#2(G'1(EC".L59@\?1```1(EC"$B+.T6)Y46%Y'0Y2(/$"$R) ++MZKX!````6T%<05U=Z9I(_?]F+@\?A```````2(/$"$B)VD2)YEM!7$%=7>E; ++M=O__#Q\`2(/$"%M!7$%=7<.09F8N#Q^$``````"0\P\>^E5(B>5!5T%628GV ++M055)B=5!5$R-9;!32(G[2(/L*&1,BSPE*````$R)?<A!B<]$B?[HUO[__S'` ++M3(GR2(G>3(GG9HE%N.@R'P$`0<=%&`````!%.7T<#X*0````18E]&$F+11!% ++MA?]T5DF+?0!%B?XQTNL5#Q^$``````!(B0S02(/"`4DYUG0V,<F`/!<`=.M( ++MBW-P2(M.$$R-00A,.48(#X*I9_W_3(L.28L,"4R)1A!(B0S02(/"`4DYUG7* ++M@'VX`'0(3(GGZ(_S__](BT7(9$@K!"4H````=5Q(@\0H6T%<05U!7D%?7<.0 ++M187_#XA'9_W_28M]$$B%_W0%Z*E)_?])QT40`````$6)_D''11P`````2HT\ ++M]0````#H*4;]_TF)11!)BWT`18E]'$6)?1CI./___^AO2/W_\P\>^NDB9_W_ ++M9@\?1```\P\>^DB#?R@`#X3$`P``54B)Y4%7059!54F)_4%44TB#["B+G[`! ++M``"%VP^$-P(```^(%V?]_XG83(TTQ0````!,B??HMT7]_T6+A;`!```Q_TF) ++MQ$F+A:@!``!%A<!T4V9F+@\?A```````#Q]``$B+%/A!B7S\!#'V2(M2.$B- ++M2@$/MA*$TG0=9@\?1```@/HO#Y3"2(/!`0^VT@'6#[91_X32=>E!B33\2(/' ++M`4DY^'6\@_L!#X0!`0``08G83(EUN$F-3"3X28G&0='H3(EML$2)PD>-'`!% ++MB<%)C7S4^$2)7<A(B7W`ZR4/'T``1#E%S`^"I@```$B#;<`(@VW(`F8/U@!! ++M@^D!#X2/`0``2(M]P/,/?@=(B?B+?<AF#W#(Y69!#W["9@]^3<PY^W+(B?A$ ++MB<YF#Q^$``````!!B<-!B<5)P>,#2HT4&8LZ1(M"!#G8<S)-`>-%BSM!.?\/ ++M@AD!``!%BVL$1#G_00^2QT4YQ4$/DL-%"/MU"44YZ`^"^0```$&)Q4B-!/%! ++M.?H/@F/___]$.=</@U#___](BS)(B3!#C40M`#G##X+E````1(GNZXA-B=5, ++MB<A-B>=-`>;K$68N#Q^$``````!)BX6H`0``08M7!$B+!-`QTH!X,@!T!$B- ++M4"`Q]H!X,0!T!$B-<!!(BW@X28/'".A\(P$`33G^=<=!BX6P`0``A<!T08U8 ++M_TC!XP,/'T0``$F+A:@!``!,BS08387V=!M)BWXX2(7_=`7H(D?]_[Y(```` ++M3(GWZ/5%_?](@^L(2(/[^'7+0<>%L`$```````!,B>?H^$;]_TB#Q"@QP%M! ++M7$%=05Y!7UW##Q^``````(/``4B-%,%)B<6+.D2+0@3I]?[__P\?`$B)T.E: ++M_O__3(GP3(MUN$F+-"1$C4/_3(MML$J-%#'S#WX"2(DR9D$/U@0D@_L"#X3Q ++M_O__1(G"38GJ28G!28U\U/A(B7W`ZT(/'X``````.5W(#X*I````38G^2(M= ++MP&8/U@!)BP0D08/H`?,/?@-(B0-(@^L(2(E=P&9!#]8$)$&#^`$/A)7^__]F ++M#W#0Y69!#W[#N`(```"^`0```&8/?E7(38GWD$&)Q4&)QDG!Y0-*C10IBSJ+ ++M6@1$.<!S+$^--"Q%BRY!.?UR3$6+=@1!.=X/DD7,1#GO00^2Q40*;<QU!40Y ++M\W(O08G&2(T$\4$Y^P^"8/___T0YWP^#3O___TB+,DB),$.-!#9!.<!R'T2) ++M]NN29I"#P`%(C13!28G&BSJ+6@3KPP\?@`````!-B?Y(B=#I(?___S'`PV8N ++M#Q^$``````#S#Q[Z568/[\!(B>5!5T%6055)B<U!5%-(@>S(`0``2(M%$$B) ++MM5#^__\Q]DR)A4#^__],C86`_O__2(F%,/[__TB+11A,B8TX_O__3(V-D/[_ ++M_TB)O6C^__](B95(_O__2(F%*/[__V1(BP0E*````$B)1<@QP$B-A4#___\/ ++M$85(____2(G!#RE%@$C'A4#___\`````2,>%6/___P````!(QX5@____```` ++M`$C'A6C___\`````#RF%</___P\I19!(QT6@`````$C'1:@`````2,=%L``` ++M``!(QT6X`````$C'1<``````2,>%@/[__P````!(QX6(_O__`````$C'A9#^ ++M__\`````2,>%F/[__P````!(QX6@_O__`````$C'A:C^__\`````3(F-$/[_ ++M_TB)A2#^___H\"4!`(N%1/___\:%L/[__P!(QX6X_O__`````$C'A<#^__\` ++M````2,>%R/[__P````!(QX70_O__`````$C'A=C^__\`````2,>%X/[__P`` ++M``!(QX7P_O__`````$C'A?C^__\`````2,>%`/___P````!(QX4(____```` ++M`$C'A1#___\`````2,>%&/___P````!(QX4P____`````(7`#X2C!```2(V% ++ML/[__T4QY$B)A1C^___K'68/'X0``````(E#"$F#Q`%$.Z5$____#X,2`@`` ++M1(FE8/[__T&+10Q!.44(=58]_O__?P^'<V+]_XG#NO___W_!ZP(IPH/#`3G3 ++M#T?:1(TT`TR)\TG!Y@-,B??HR3_]_T&+50A)BW4`28G'A=(/A68#``!(A?8/ ++MA7H#``!-B7T`08E=#+\0````Z,M!_?](QT`(`````$F)QTC'``````!!BT4( ++MC5`!08E5"$F+50!,B3S"2HT$I0````!(BU6`2(F%8/[__TB+19!"#[8$($(# ++M!*)(BY5X____3(LTPDV%]G0K28L_2(7_=`SHF4+]_TG'!P````!)QT<(```` ++M`$R)]^@B/_W_28D'38EW"+\H````Z$%!_?](B<-(C06'[`(`13')18G@2(D# ++M28L'2(N54/[__\=#"`$```!(B4,02(N%2/[__TC'0R``````2`,02(N%:/[_ ++M_TR)<QC&A7_^__\`2(LP2(V%?_[__VH`:@%J`/^U*/[___^U,/[___^U./[_ ++M__^U0/[__U!J`$B+C2#^__]32(N]&/[__^A6/@$`B85<_O__2(/$4(7`#X64 ++M`@``@+U__O__`'0+2(N%:/[__\9`>`%,.7,@#X7`8/W_1#NE6/___W,22(N% ++M4/___T*`/"``#X4K`@``2(L#2(T-T<;^_TB+0!!(.<@/A00"``"+0PB#Z`$/ ++MA?C]__^^*````$B)WTF#Q`'H1T#]_T0[I43___\/@N[]__](BX5(____2(N] ++M,/___TB%P'08BY5`____2(N-:/[__TB+!-!(`8&X````2(7_=`9(BP?_4!!( ++MB[T0____2(7_=`7H$T']_TB+O0#___](A?]T!>@"0?W_2(N]\/[__TB%_W0% ++MZ/%`_?](B[W8_O__2(7_=`7HX$#]_TB+O<C^__](A?]T!>C/0/W_2(N]N/[_ ++M_TB%_W0%Z+Y`_?](B[V@_O__2(7_=`7HK4#]_TB+O9#^__](A?]T!>B<0/W_ ++M2(N]@/[__TB%_W0%Z(M`_?](BWVX2(7_=`7H?4#]_TB+?:!(A?]T!>AO0/W_ ++M2(M]F$B%_W0%Z&%`_?](BWV02(7_=`7H4T#]_TB+?8A(A?]T!>A%0/W_2(M] ++M@$B%_W0%Z#=`_?](B[UX____2(7_=`7H)D#]_TB+O7#___](A?]T!>@50/W_ ++M2(N]8/___TB%_W0%Z`1`_?](B[U0____2(7_=`7H\S_]_TB+O4C___](A?]T ++M!>CB/_W_2(M%R&1(*P0E*`````^%&`$``(N%7/[__TB-9=A;05Q!74%>05]= ++MPV8N#Q^$``````!(P>(#3(GQ2(G'2(FU8/[__^BZ0/W_2(NU8/[__TB)]^B+ ++M/_W_Z7G\__]F#Q]$``!(B=__T.GY^___9@\?1```28LW3(GRO______H$"S^ ++M_TB+E6#___](BXU@_O__]]`Y!`H/A*S]___I.%[]_V:02(L#2(T5=L3^_TB+ ++M0!!(.=!U+8M#"(/H`705B4,(2(N],/___^GG_?__9@\?1```OB@```!(B=_H ++MXSW]_^O?D$B)W__0Z]=(BX5(____2(7`=">+E4#___](BXUH_O__QX5<_O__ ++M`````$B+!-!(`8&X````Z:+]___'A5S^__\`````Z:3]___HLCW]__,/'OKI ++MHES]__,/'OI(B</IL5S]__,/'OKIU%W]_P\?0`#S#Q[Z54B)Y4%64TB#Q(!D ++M2(L\)2@```!(B7WHOR@"``#H.CW]_[]3````\P]^!;7H`@!(B<-(C05+`P,` ++M9D@/;LC'0Q``````9@]LP0\1`^@K//W_N@$```#&0R``2(V]</___TB%P$@/ ++M3L)F#V[0N````(!F#W#"X$B)0SAF#]9#&&9(#V[`9@]LP`\10RCH"S[]_X7` ++M#X7#`@``BT782`^O19#&0R$!2(7`>$I(B<)(B4,X2,'J!4B)T4C!X01(`=%( ++MNC,S,S,S,S,#2#G"#X*:`@``2(T4@$BXP_4H7(_"]2A(P>($2,'J`DCWXDC! ++MZ@+K)0\?`$BX`````````(!(N0````````!$2+I@9F9F9F9F9DB)0SA(B5,H ++M2(E+,/,/?@7&YP(`2(T%I^("`$C'0T``````OQ````!F2`]NV$C'0T@````` ++M9@]LPTC'0V``````#Q$#9@_OP$C'0V@`````2,=#<`````!(QX.H```````` ++M`$C'@[``````````2,>#N`````````!(QX/``````````$C'@\@````````` ++M2,>#T`````````!(QX/8`````````$C'@^``````````2,>#Z`````````!( ++MQX/P`````````$C'@_@`````````2,>#``$```````!(QX,(`0```````$C' ++M@Q`!````````2,>#&`$```````!(QX,@`0```````$C'@R@!````````2,># ++M,`$```````!(QX,X`0```````$C'@T`!````````2,>#2`$````````/$4-0 ++M#Q%#>`\1@X@````/$8.8````2,>#4`$```````!(QX-8`0```````$C'@V`! ++M````````2,>#:`$```````!(QX-P`0```````$C'@W@!````````2,>#@`$` ++M``````!(QX.(`0```````$C'@Y`!````````2,>#F`$```````!(QX.@`0`` ++M`````$C'@]`!````````2,>#V`$```````!(QX,0`@````````\1@^`!``#H ++M'SC]_TB+%8C^`0#'``````!(B8,0`@``,<!(B9,8`@``9HF#"`(``,>#(`(` ++M``0```!(BT7H9$@K!"4H````=4I(@^R`2(G86T%>7<-F#Q]$``#&0R$`Z;G] ++M__\/'X``````2+K#]2A<C\+U*$C!Z`)(]^)(B=!(@^+\2,'H`D@!PDC!X@3I ++M@OW__^CS.?W_\P\>^DF)QNE`6OW_D&8/'T0``/,/'OI52(GE055!5%-(B?M( ++M@^P(2(N_^````$B%_W0%Z+LZ_?](B[OH````2(7_=`7HJCK]_TB+N\````!( ++MA?]T!>B9.OW_2(N[L````$B%_W0%Z(@Z_?](BWM(2(7_=`7H>CK]_TB+>SA( ++MA?]T!>AL.OW_2(M[*$B%_W0%Z%XZ_?](BWL82(7_=`9(BP?_4!!,BV,0387D ++M="!)BP0D2(T5*U3__TB+0!!(.=`/A:8```!!@VPD"`%T+DB+>PA(A?]T!DB+ ++M!_]0$$B+.TB%_W0&2(L'_U`02(/$"%M!7$%=7<-F#Q]$``#S#WX%4.0"`$B- ++M!3'?`@!-C6PD^&9(#V[(3(GO9@]LP4$/$40D^.C]1O__28N\)`@"``!(A?]T ++M!>B[.?W_28U\)$#H,5'__TF+?"0X2(7_=`9(BP?_4!"^*`(``$R)[^AT./W_ ++MZ6G___\/'X``````3(GG_]#I6/___V9F+@\?A```````#Q\`\P\>^E5(B>5! ++M54%428G\4TB#[`CH9[H``$F+?"1H2(7_=`7H2#G]_TF+?"182(7_=`7H.3G] ++M_TF+?"0P2(7_=`7H*CG]_T&+1"0828M\)!"%P'0_C5C_2,'C`P\?1```3(LL ++M'TV%[70@28M]`$B%_W0%Z/DX_?],B>^^$````.C,-_W_28M\)!!(@^L(2(/[ ++M^'7-2(7_=`7HTSC]_T&+1"0(28L\)(7`=$*-6/](P>,#9F8N#Q^$```````/ ++M'T``3(LL'TV%[7093(GOZ+_]__],B>^^$`$``.AR-_W_28L\)$B#ZPA(@_OX ++M==1(A?]T#TB#Q`A;05Q!75WI<#C]_TB#Q`A;05Q!75W##Q]$``#S#Q[Z54B) ++MY4%7059!54%44TB#["B+1PA$C6C_1(EO"$6%[70;2(/$*$2)Z%M!7$%=05Y! ++M7UW#9@\?A```````2(T%"=P"`$B)^TR-=^CS#WX%<N("`&9(#V[82(/`8&8/ ++M;,-F2`]NX`\11^CS#WX%7.("`&8/;,0/$4?X2(N_T`$``$B%_W0%Z-,W_?], ++MBZ.@`0``2(T5E;S^_TF+!"1(BT`02#G0#X6L`P``08-L)`@!#X38`P``BX.8 ++M`0``2(N[D`$``(7`=$Q$C6#_2<'D`V9F+@\?A```````#Q]``$Z+/"=-A?]T ++M(DF+?SA(A?]T!>AI-_W_3(G_OD@```#H/#;]_TB+NY`!``!)@^P(28/\^'7+ ++M2(7_=`7H03?]_XN#>`$``$B+NW`!``"%P'1$1(U@_TG!Y`,/'X0``````$Z+ ++M/"=-A?]T(4F+/TB%_W0%Z`HW_?],B?^^$````.C=-?W_2(N[<`$``$F#[`A) ++M@_SX=<Q(A?]T!>CB-OW_2(N[:`$``$B%_W0&2(L'_U`02(N[4`$``$B%_W0% ++MZ+\V_?](B[M(`0``2(7_=`9(BP?_4!!(B[L0`0``2(7_=`7HG#;]_TB+N_@` ++M``!(A?]T!>B+-OW_2(N[L````$B%_W0%Z'HV_?^+@Z````!(B[N8````A<!T ++M/42-8/])P>0#D$Z+/"=-A?]T(4F+/TB%_W0%Z$HV_?],B?^^$````.@=-?W_ ++M2(N[F````$F#[`A)@_SX=<Q(A?]T!>@B-OW_2(N[B````$B%_W0%Z!$V_?]( ++MBWMX2(7_=`7H`S;]_TB+>VA(A?]T!>CU-?W_2(M[8$B%_W0&2(L'_U`02(T% ++MA]@"`$R+8UCS#WX-2^`"`/,/?A5+X`(`9D@/;NA(@\!H9D@/;O!F#VS-9@]L ++MU@\I3;`/*57`387D#X3$````28L$)$B-%2F2``!(BT`02#G0#X6L`0``08.L ++M)"`!```!#X6=````28N\)%@!``!-C7PD\$$/$10D2(T%I-@"`$F)1"0000\1 ++M3"3P2(7_=`7H3S7]_TF+O"1(`0``2(7_=`7H/37]_TF+O"0X`0``2(7_=`7H ++M*S7]_TF+O"0H`0``2(7_=`7H&37]_TF+O"00`0``2(T%RM8"`$F)1"002(7_ ++M=`7H^S3]_TF-?"08Z"&+``"^R`$``$R)_^C$,_W_#Q]``$B+6TA(A=L/A+8` ++M``!(BP-(C15ICP``2(M`$$@YT`^%Q````(.K,`$```$/A9(```!F#V]]L$B+ ++MNV@!``!(C07<UP(`2(E#(`\1.V8/;WW`#Q%[$$B%_W0%Z((T_?](B[M8`0`` ++M2(7_=`7H<33]_TB+NT@!``!(A?]T!>A@-/W_2(N[.`$``$B%_W0%Z$\T_?]( ++MB[L@`0``2(T%`=8"`$B)0R!(A?]T!>@S-/W_2(U[*.A:B@``OL@!``!(B=_H ++M_3+]_[X(`@``3(GWZ/`R_?_IT/O__P\?`$R)Y__0Z5;\__]F#Q]$``!(B=__ ++MT+X(`@``3(GWZ,8R_?_IIOO__Y!,B>?_T.GV_O__9@\?1```28M\)!A(C04\ ++MS`(`28D$)$B%_W0&2(L'_U`028M\)!!(A?]T!DB+!_]0$+XX````3(GGZ'@R ++M_?_IZ_O__P\?`/,/'OI52(GE05=!5D%505132(/L*(M'$$2-:/]$B6\0187M ++M=!M(@\0H1(GH6T%<05U!7D%?7<-F#Q^$``````!(C04YUP(`2(G[3(UW\/,/ ++M?@6BW0(`9D@/;MA(@\!@9@]LPV9(#V[@#Q%'\/,/?@6,W0(`9@]LQ`\1!TB+ ++MO]@!``!(A?]T!>@$,_W_3(NCJ`$``$B-%<:W_O])BP0D2(M`$$@YT`^%G0,` ++M`$&#;"0(`0^$R0,``(N#H`$``$B+NY@!``"%P'0]1(U@_TG!Y`-.BSPG387_ ++M="))BW\X2(7_=`7HJ3+]_TR)_[Y(````Z'PQ_?](B[N8`0``28/L"$F#_/AU ++MRTB%_W0%Z($R_?^+@X`!``!(B[MX`0``A<!T1$2-8/])P>0##Q^$``````!. ++MBSPG387_="%)BS](A?]T!>A*,OW_3(G_OA````#H'3']_TB+NW@!``!)@^P( ++M28/\^'7,2(7_=`7H(C+]_TB+NW`!``!(A?]T!DB+!_]0$$B+NU@!``!(A?]T ++M!>C_,?W_2(N[4`$``$B%_W0&2(L'_U`02(N[&`$``$B%_W0%Z-PQ_?](B[L` ++M`0``2(7_=`7HRS']_TB+N[@```!(A?]T!>BZ,?W_BX.H````2(N[H````(7` ++M=#U$C6#_2<'D`Y!.BSPG387_="%)BS](A?]T!>B*,?W_3(G_OA````#H73#] ++M_TB+NZ````!)@^P(28/\^'7,2(7_=`7H8C']_TB+NY````!(A?]T!>A1,?W_ ++M2(N[@````$B%_W0%Z$`Q_?](BWMP2(7_=`7H,C']_TB+>VA(A?]T!DB+!_]0 ++M$$B-!<33`@!,BV-@\P]^#8C;`@#S#WX5B-L"`&9(#V[H2(/`:&9(#V[P9@]L ++MS68/;-8/*4VP#RE5P$V%Y`^$P0```$F+!"1(C15FC0``2(M`$$@YT`^%J0$` ++M`$&#K"0@`0```0^%F@```$F+O"18`0``38U\)/!!#Q$4)$B-!>'3`@!)B40D ++M$$$/$4PD\$B%_W0%Z(PP_?])B[PD2`$``$B%_W0%Z'HP_?])B[PD.`$``$B% ++M_W0%Z&@P_?])B[PD*`$``$B%_W0%Z%8P_?])B[PD$`$``$B-!0?2`@!)B40D ++M$$B%_W0%Z#@P_?])C7PD&.A>A@``OL@!``!,B?_H`2_]_Y!(BUM02(7;#X2V ++M````2(L#2(T5J8H``$B+0!!(.=`/A<0```"#JS`!```!#X62````9@]O?;!( ++MB[MH`0``2(T%'-,"`$B)0R`/$3MF#V]]P`\1>Q!(A?]T!>C"+_W_2(N[6`$` ++M`$B%_W0%Z+$O_?](B[M(`0``2(7_=`7HH"_]_TB+NS@!``!(A?]T!>B/+_W_ ++M2(N[(`$``$B-!4'1`@!(B4,@2(7_=`7H<R_]_TB->RCHFH4``+[(`0``2(G? ++MZ#TN_?^^"`(``$R)]^@P+OW_Z>#[__\/'P!,B>?_T.EE_/__9@\?1```2(G? ++M_]"^"`(``$R)]^@&+OW_Z;;[__^03(GG_]#I]O[__V8/'T0``$F+?"082(T% ++M?,<"`$F)!"1(A?]T!DB+!_]0$$F+?"002(7_=`9(BP?_4!"^.````$R)Y^BX ++M+?W_Z?K[__\/'P#S#Q[Z54B)Y4%7059!54%44TB#["B+1QA$C6C_1(EO&$6% ++M[70;2(/$*$2)Z%M!7$%=05Y!7UW#9@\?A```````2(T%>=("`$B)^TR-=_CS ++M#WX%XM@"`&9(#V[82(/`8&8/;,-F2`]NX`\11_CS#WX%S-@"`&8/;,0/$4<( ++M2(N_X`$``$B%_W0%Z$,N_?],BZ.P`0``2(T5!;/^_TF+!"1(BT`02#G0#X6L ++M`P``08-L)`@!#X38`P``BX.H`0``2(N[H`$``(7`=$Q$C6#_2<'D`V9F+@\? ++MA```````#Q]``$Z+/"=-A?]T(DF+?SA(A?]T!>C9+?W_3(G_OD@```#HK"S] ++M_TB+NZ`!``!)@^P(28/\^'7+2(7_=`7HL2W]_XN#B`$``$B+NX`!``"%P'1$ ++M1(U@_TG!Y`,/'X0``````$Z+/"=-A?]T(4F+/TB%_W0%Z'HM_?],B?^^$``` ++M`.A-+/W_2(N[@`$``$F#[`A)@_SX=<Q(A?]T!>A2+?W_2(N[>`$``$B%_W0& ++M2(L'_U`02(N[8`$``$B%_W0%Z"\M_?](B[M8`0``2(7_=`9(BP?_4!!(B[L@ ++M`0``2(7_=`7H#"W]_TB+NP@!``!(A?]T!>C[+/W_2(N[P````$B%_W0%Z.HL ++M_?^+@[````!(B[NH````A<!T/42-8/])P>0#D$Z+/"=-A?]T(4F+/TB%_W0% ++MZ+HL_?],B?^^$````.B-*_W_2(N[J````$F#[`A)@_SX=<Q(A?]T!>B2+/W_ ++M2(N[F````$B%_W0%Z($L_?](B[N(````2(7_=`7H<"S]_TB+>WA(A?]T!>AB ++M+/W_2(M[<$B%_W0&2(L'_U`02(T%],X"`$R+8VCS#WX-N-8"`/,/?A6XU@(` ++M9D@/;NA(@\!H9D@/;O!F#VS-9@]LU@\I3;`/*57`387D#X3!````28L$)$B- ++M%9:(``!(BT`02#G0#X6I`0``08.L)"`!```!#X6:````28N\)%@!``!-C7PD ++M\$$/$10D2(T%$<\"`$F)1"0000\13"3P2(7_=`7HO"O]_TF+O"1(`0``2(7_ ++M=`7HJBO]_TF+O"0X`0``2(7_=`7HF"O]_TF+O"0H`0``2(7_=`7HABO]_TF+ ++MO"00`0``2(T%-\T"`$F)1"002(7_=`7H:"O]_TF-?"08Z(Z!``"^R`$``$R) ++M_^@Q*OW_D$B+6UA(A=L/A+8```!(BP-(C179A0``2(M`$$@YT`^%Q````(.K ++M,`$```$/A9(```!F#V]]L$B+NV@!``!(C05,S@(`2(E#(`\1.V8/;WW`#Q%[ ++M$$B%_W0%Z/(J_?](B[M8`0``2(7_=`7HX2K]_TB+NT@!``!(A?]T!>C0*OW_ ++M2(N[.`$``$B%_W0%Z+\J_?](B[L@`0``2(T%<<P"`$B)0R!(A?]T!>BC*OW_ ++M2(U[*.C*@```OL@!``!(B=_H;2G]_[X(`@``3(GWZ&`I_?_IT/O__P\?`$R) ++MY__0Z5;\__]F#Q]$``!(B=__T+X(`@``3(GWZ#8I_?_IIOO__Y!,B>?_T.GV ++M_O__9@\?1```28M\)!A(C06LP@(`28D$)$B%_W0&2(L'_U`028M\)!!(A?]T ++M!DB+!_]0$+XX````3(GGZ.@H_?_IZ_O__Y!FD/,/'OI52(T%Y,T"`&9(#V[( ++M2(/`8&9(#V[02(GE05=!5D%505132(G[2(V_@````$B#[`C'1Z``````\P]^ ++M!274`@#&1Z<`9@]LP4C'1Z@`````#Q%'@/,/?@41U`(`2,='P/____]F#VS" ++MQD?3``\11Y!F#V\%1>P!`$C'1^``````#Q%'L&8/[\`/$4?PZ+PS_O](C;N0 ++M````Z+`S_O],C:.@````3(GGZ#$V_O](QX.P`````````$B-N\@```!(QX.X ++M`````````.A_,_[_2,>#V`````````!(C;L0`0``2,>#X`````````!(QX/H ++M`````````$C'@_``````````QX/X`````````.@],_[_2(V[*`$``.@Q,_[_ ++M2,>#<`$```````!F#^_`OS@```!(QX.0`0```````$C'@Z@!````````2,># ++ML`$````````/$8-@`0``#Q&#@`$``.AI)_W_2(T-"L$"`+H!`0``2,=`,``` ++M``!F#^_`2(D(2(V[Z`$``&:)4`Q(B8.X`0``QT`(`0````\10!`/$4`@Z*@R ++M_O](@\0(6T%<05U!7D%?7</S#Q[Z28G$Z2!(_?_S#Q[Z28G%Z6%(_?_S#Q[Z ++M28G%Z<I'_?_S#Q[Z28G%Z<]'_?_S#Q[Z28G$Z<Y'_?_S#Q[Z28G$Z=-'_?_S ++M#Q[Z28G%Z3)(_?_S#Q[Z28G%Z7U'_?^0#Q^$``````#S#Q[Z54B-!7S*`@!F ++M2`]NV$B#P&AF2`]NX$B-!:_+`@!(B>5!569(#V[H2(/`8$%49D@/;O!32(G[ ++M2(/L*/,/?@4"T@(`\P]^#0K2`@#S#WX5"M("`&8/;,5F#VS+#Q$'9@]LU/,/ ++M?@7CT0(`#RE-P&8/;,8/*570#Q%'$$B+O^@!``!(A?]T!>A2)_W_3(NCN`$` ++M`$B-%12L_O])BP0D2(M`$$@YT`^%XP,``$&#;"0(`0^$/P(``(N#L`$``$B+ ++MNZ@!``"%P'1+1(U@_TG!Y`-F9BX/'X0```````\?`$Z++"=-A>UT(DF+?3A( ++MA?]T!>CI)OW_3(GOOD@```#HO"7]_TB+NZ@!``!)@^P(28/\^'7+2(7_=`7H ++MP2;]_XN#D`$``$B+NX@!``"%P'1%1(U@_TG!Y`,/'X0``````$Z++"=-A>UT ++M(DF+?0!(A?]T!>B))OW_3(GOOA````#H7"7]_TB+NX@!``!)@^P(28/\^'7+ ++M2(7_=`7H82;]_TB+NX`!``!(A?]T!DB+!_]0$$B+NV@!``!(A?]T!>@^)OW_ ++M2(N[8`$``$B%_W0&2(L'_U`02(N[*`$``$B%_W0%Z!LF_?](B[L0`0``2(7_ ++M=`7H"B;]_TB+N\@```!(A?]T!>CY)?W_BX.X````2(N[L````(7`=#U$C6#_ ++M2<'D`TZ++"=-A>UT(DF+?0!(A?]T!>C))?W_3(GOOA````#HG"3]_TB+N[`` ++M``!)@^P(28/\^'7+2(7_=`7HH27]_TB+NZ````!(A?]T!>B0)?W_2(N[D``` ++M`$B%_W0%Z'\E_?](B[N`````2(7_=`7H;B7]_TB+>WA(A?]T!DB+!_]0$$R+ ++M8W!-A>1T)TF+!"1(C17;@0``2(M`$$@YT`^%#@(``$&#K"0@`0```0^$+P$` ++M`$R+8V!-A>1T(TF+!"1(C16[?P``2(M`$$@YT`^%S@$``$&#K"0P`0```71; ++M2(/$*$B)W[X(`@``6T%<05U=Z<PC_?\/'T``28M\)!A(C054O0(`28D$)$B% ++M_W0&2(L'_U`028M\)!!(A?]T!DB+!_]0$+XX````3(GGZ)`C_?_IA/W__P\? ++M`&8/;WW`28N\)&@!``!(C074QP(`28E$)"!!#Q$\)&8/;WW000\1?"002(7_ ++M=`7H=23]_TF+O"18`0``2(7_=`7H8R3]_TF+O"1(`0``2(7_=`7H423]_TF+ ++MO"0X`0``2(7_=`7H/R3]_TF+O"0@`0``2(T%\,4"`$F)1"0@2(7_=`7H(23] ++M_TF-?"0HZ$=Z``"^R`$``$R)Y^CJ(OW_Z0+___\/'T0``&8/;WW`28N\)%@! ++M``!-C6PD\$B-!2?'`@!)B40D$$$/$7PD\&8/;WW000\1/"1(A?]T!>C((_W_ ++M28N\)$@!``!(A?]T!>BV(_W_28N\)#@!``!(A?]T!>BD(_W_28N\)"@!``!( ++MA?]T!>B2(_W_28N\)!`!``!(C05#Q0(`28E$)!!(A?]T!>AT(_W_28U\)!CH ++MFGD``+[(`0``3(GOZ#TB_?_I*?[__P\?A```````3(GG_]#I'_S__V8/'T0` ++M`$R)Y__0Z3/^__]F#Q]$``!,B>?_T.GW_?__9@\?1```\P\>^E5(B>532(/L ++M"(M'((U8_XE?((7;=07H(?O__XG82(M=^,G#D`\?A```````54B)Y4%7059! ++M54R-;:!!5$F)_$R)[U.)\TB)UDB#[#AD3(LT)2@```!,B77(28G.Z'LP_O^% ++MVW0V2(TU/=8!`$R)[^C8_P``3(U]L(G>3(G_Z"I;_O],B?Y,B>_H;P`!`$B+ ++M?;!(A?]T!>B!(OW_3(GV3(GOZ$;.__])BWPD8$B+=:!(BP?_4#A(BWV@B<-( ++MA?]T!>A7(OW_2(M%R&1(*P0E*````'412(/$.(G86T%<05U!7D%?7</H,B'] ++M__,/'OI(B</IV$/]__,/'OI(B</IVD/]_V8N#Q^$``````!52(GE055)B=5! ++M5$F)]%-(B?M(@^P(Z+4>_?^+,(7V="\/M\8-````B(7V#T_P2(/$"$R)Z4R) ++MXDB)WUM!7$%=7>G:_O__9BX/'X0``````+X%0`"`Z]>0#Q^$``````#S#Q[Z ++M54B)Y4%6055!5%-(@^Q`9$B+!"4H````2(E%V#'`2(._8`$````/A,`"``!( ++MBX=8`0``@']+`$B)^TR+8&`/A<@```!%,>U,C76@3(FC0`$``$R)]DB)W\9# ++M2@'H:[+__P^V5=`/MD71#[9-TDR+HU@!``")UD`(Q@^%M0$``(3)#X4E`0`` ++M08M\)!"#__]T%N@F(_W_A<`/A4X!``!!QT0D$/____]!@'PD%0!!#[9$)!9! ++M#[94)!</A,T```"$T@^%I0$``(3`#X4M`@``,=(Q]F8/'X0``````$F+?"1( ++MZ.;\``!(B[M@`0``2(7_#X07`0``2(L'_U`02,>#8`$```````#I`0$``$P[ ++MIT@!```/@RO___^+>!!,B>;HZ!W]_X7`#Y1#2P^$%/___TB+LZ````!,C76@ ++M3(GWZ"DW_O_H)!W]_XLPA?8/A!,"```/M\8-````B(7V#T_P3(GQ2(T5H]T! ++M`$B)W^A+_?__2(M]H$&)Q4B%_P^$RO[__^@F(/W_Z<#^__^0A,`/A/@```"$ ++MT@^$8`$``$F-5"0X28UT)"CI,?___Y"$P`^$&`$``(32#X5X`0``N@`!``!F ++M#V]%L&9!B50D%4$/$40D*&8/;T7`0<9$)!<!00\11"0XZ9_^__\/'T``Z'L< ++M_?]$BRA%A>T/A%T!``!!#[?%#0```(A%A>U$#T_H2(M%V&1(*P0E*`````^% ++M3P$``$B#Q$!$B>A;05Q!74%>7<,/'T``A,D/A7#___^$P'1DA-(/A,0```!F ++M#V]%H$'&1"05`4$/$40D&&8/;T6P00\11"0HZT]F#Q]$``"$P$F-="0HN``` ++M``!(#T3P28U4)#CI5O[__V8/'T0``(32#X12_O__28U4)#@Q]ND\_O__#Q]` ++M`&8/;T6@0<9$)!4!00\11"0808A$)!9!QD0D%P#IPOW__P\?@`````"$TG14 ++M9@]O1:!F0<=$)!4!`$$/$40D&.GJ_O__#Q]``$4Q[>D9____#Q^$``````!) ++MC70D*#'2Z=3]__\/'T``9@]O1;!!QD0D%0!!#Q%$)"CKE@\?1```,<EF08E, ++M)!7IH?[__P\?`&8/;T6@N`$!``!!#Q%$)!AF#V]%L&9!B40D%4$/$40D*.EX ++M_O__0;T%0`"`Z:C^__^^!4``@.GP_?__Z#@=_?_S#Q[Z2(G#Z19`_?]F9BX/ ++M'X0``````)!52(GE055!5%-(@>RH````9$B+!"4H````2(E%V#'`@']0`'5+ ++M@']1`$B)^W5"BX?0````A<!T.(!_)`!U,H!_30!T+("_"`$```!T#8"_(`$` ++M```/A0X!``"`NP`!````=35F9BX/'X0``````&:02(M%V&1(*P0E*`````^% ++MCP$``$B!Q*@```!;05Q!75W##Q^``````$R+J\@```!(C;5`____1(NC_``` ++M`$R)[^B['?W_A<!U5T'WQ`"````/A/H```!!P>P01(G@1(FE6/___R4`\``` ++M/0!````/A!L!```]`(```'6%BS4?+@,`3(GO1"'FZ-0;_?^%P`^$;/___V9F ++M+@\?A```````D.C+&?W_3(VCR````(LPA?8/A/@````/M\8-````B(7V#T_P ++M2(M%V&1(*P0E*`````^%S````$B!Q*@```!,B>%(B=](C17_T`$`6T%<05U= ++MZ<OY__\/'P"+ER0!``"+MPP!``!(B[_(````Z(`:_?^%P`^$TO[__^A3&?W_ ++M3(VCR````(LPA?9T?0^WQ@T```"(A?8/3_!,B>%(C167T`$`2(G?Z'?Y___I ++MG/[__V:0BY58____B=`E`/```#T`H```#X28_O__/0!````/A(W^__]!@^0! ++M#X2#_O__@.)M08G41(FE6/___^GL_O__08',P`$``$2)I5C____IV?[__^@) ++M&_W_O@5``(#KB;X%0`"`Z0O___\/'X0``````/,/'OI52(GE051!B?132(G[ ++MZ"KZ__^%P`^%D@```(![2@!T1$B+@T`!``!(`8/8`0``@+O``````'162(.# ++MP`$```&`>T\`=59(BWM@#[932$2)YEM!7$B+!UU(BT!`_^`/'X``````B[-0 ++M`0``2(M[*$B-2TI(C9-``0``Z-[#__^`>TH`=9R`N\``````=:I(@X/(`0`` ++M`8![3P!TJDB)W^@I_?__ZZ`/'X``````6T%<7</S#Q[Z2(G'Z4,]_?^09F8N ++M#Q^$```````/'P!52(GE05=!B?=!5D%505132(G[2(/L*$R+#V1,BR0E*``` ++M`$R)9<A-B?Q/BRSY28-]``!T:T0Y9Q!U+44Q]DB+1<AD2"L$)2@````/A;`! ++M``!(@\0H1(GP6T%<05U!7D%?7<,/'T0``$R)[NA0LO__BT<00<=%+/____]! ++MB44H@_C_#X0H`0``28L$P42)8"R#0Q@!1(EC$.NA9@\?1```Z+NR__]!B<:% ++MP'62OP@!``#H.AG]_TB)QTF)QNAO\?[_08M^+$F+31!,B77`08-&*`%!QH;R ++M`````(/__W092(E-N.A('/W_A<!(BTVX=0A!QT8L_____[JV`0``,?9(B<\Q ++MP.AG&_W_08E&+(/X_P^$J@```$F+!DV)=0A,B??_4`A)BWT`2(7_=`9(BP?_ ++M4!!(BPN+0Q!-B74`2HL4^8E"*,="+/____^#^/\/A*4```!(BP3!1(E@+$B+ ++M?<"#0Q@!1(EC$$B%_W0&2(L'_U`028MU($B%]@^$O/[__TF+?0!(BT7(9$@K ++M!"4H````=6](BP=)C4T@,=)(BT`@2(/$*%M!7$%=05Y!7UW_X)!$B6<4Z=?^ ++M__\/'X``````Z!L6_?]$BS!%A?9T.4$/M\8-````B$6%]D0/3_!(BWW`2(7_ ++M#X14_O__2(L'_U`0Z4G^__\/'P!$B6,4Z5K____H&AC]_T&^!4``@.O/\P\> ++M^DB)P^DN._W_\P\>^DB)P^E&._W_9BX/'X0``````/,/'OI52(GE059)B?9! ++M54&)U4%428G\4TB)RTB%R70&QP$`````,<!%A>UU$UM!7$%=05Y=PV8N#Q^$ ++M``````!)BT0D&$&+="042(VX"`$``.AZ_?__A<!UTTF+1"0808M4)!1(B=E, ++MB?9;05Q(BX`(`0``2(L$T$2)ZD%=05Y=2(LX2(L'2(M`&/_@#Q]``/,/'OI5 ++M2(GE059)B<Y!54&)U4%428GT4TB+1QA(B?N+=Q1(C;@(`0``Z!+]__^%P'4V ++M2(M#&(M3%$R)\4R)YEM!7$B+@`@!``!(BP301(GJ05U!7EU(BSA(BP=(BT`@ ++M_^`/'X``````6T%<05U!7EW#D&9F+@\?A```````#Q\`\P\>^E5(B>5!5$F) ++M]%-(BT<82(G[BW<42(VX"`$``.B<_/__A<!T"%M!7%W##Q\`2(M#&(M3%$R) ++MYEM!7$B+@`@!``!=2(L$T$B+>`CI#N+^_V9F+@\?A```````#Q\`\P\>^E5( ++MB>5!5$F)]%-(BT<02(G[BW<,2(VX"`$``.@\_/__A<!T"%M!7%W##Q\`2(M# ++M$(M3#$R)YEM!7$B+@`@!``!=2(L$T$B+>`CIKN'^_V9F+@\?A```````#Q\` ++M\P\>^E5(B>5!5T%6055!5%-(@>R8````9$B+!"4H````2(E%R#'`@'\L`$C' ++M`@`````/A0`%``!(B?M(BW]H28GV28G42(7_="1(BP=(C15,/@``2(L`2#G0 ++M#X7@!```BP6N)P,`A<`/A3L%``!,C6V`3(GV3(GOZ,,C_O](QX5P____```` ++M`+\$````Z"X3_?_&``!,BS64V0$`3(U]D$B+=8!,B?](B85P____3(FU>/__ ++M_^@F+?[_2(M[<$B+=9!(C95P____Z.)5_O](BWV02(7_=!*(A5C____H/A;] ++M_P^VA5C___^$P`^$]P,``$B+M7#___](C;N0````N@$```#H9U/^_X3`#X37 ++M`P``BX/8````)0#P```]`$````^$P0,``&8/[\"_!````$C'1:``````#RE% ++MD.A_$OW_Q@``OP@!``!(B46@3(EUJ$C'1;``````2,=%N/_____HBA3]_TB) ++MQTF)QNB_[/[_08M^+$B@!3(FU:/___TR+O7#___]!QH;R`````(/__W01 ++MZ)87_?^%P'4(0<=&+/____^ZM@$``#'V3(G_,<#HN1;]_T&)1BR#^/\/A(P# ++M``!(C;L(`0``Z)"M__]!B<>%P`^%E@,``$F+!DR)=9A,B??_4`A(BWV02(7_ ++M=`9(BP?_4!!,B760BY5X____.56L#X*-!```3(MUH$B+A7#___^)5:@QTF8/ ++M'T0```^V#!!!B`P62(/"`83)=?!(B[UH____2(7_=`9(BP?_4!"+@Q0!```Y ++M@Q`!``!U:#W^__]_#X<6./W_B<*Y____?\'J`BG!@\(!.<H/1]$!T(G`28G& ++M2,'@`TB)QTB)A5C____H-Q']_TF)P8N#$`$``$B+LP@!``"%P`^%KP0``$B% ++M]@^%S@0``$R)BP@!``!$B;,4`0``OS````#H+A/]_TB+?9!)B<9(B3A(A?]T ++M!DB+!_]0"$B+19B+?:A)QT80`````$F)1@B)O5C___](@\<!Z,<0_?]F#VZ% ++M6/___TB+=:!)B480,=)F#W#`X&9!#]9&&&8N#Q^$```````/M@P6B`P02(/" ++M`83)=?%(BT6PBXL0`0``2(N3"`$``$F)1B!(BT6XB8U8____28E&*(U!`8F# ++M$`$``(G(3(DTPDB+BP@!``!(BQ3!BX,8`0``QT(L_____XE"*(/X_P^$`0,` ++M`$B+!,&+C5C___^)2"R+A5C___^#@R`!```!3(N3D````(F#&`$``(M#6#M# ++M7`^$``(``$R+2U"-4`&)4UA-B13!BT,\.4,X=5P]_O__?P^'L37]_XG"N?__ ++M_W_!Z@(IP8/"`3G*#T?1`=")P$F)QDC!X`-(B<=(B850____Z+D/_?])B<&+ ++M0SA(BW,PA<`/A;@"``!(A?8/A=<"``!,B4LP1(ES/+\0````Z+P1_?],B>Y( ++MB<=)B<;HCB'^_XM#.(U0`8E3.$B+4S!,B33"BT-(.T-,#X31`0``3(M+0(U0 ++M`;\H````B5-(0<8$`0'H>!']_TF)Q4B-!3:\`@#S#WX%YKP"`$B-%0^>__]F ++M2`]NR(N%6/___TG'12``````9@]LP4R)K6C___]!B4442(L#28E=&$$/$44` ++M2(M`"$''11`!````2#G0#X4A`P``@T,H`4F)72!-B2PDZ9X````/'P!!OP$` ++M``!(B[UP____2(7_=`7H(1+]_TB+?8!(A?]T!>@3$OW_2(M%R&1(*P0E*``` ++M``^%_0(``$B!Q)@```!$B?A;05Q!74%>05]=PP\?`$&_`0```.O-_]!!B<>% ++MP'7$Z2#[__]FD.B+#OW_1(LX187_#X2Q`@``00^WQPT```"(187_1`]/^$B+ ++MO6C___](A?]T!DB+!_]0$$B+?:!(A?]T!>B/$?W_2(M]D$B%_P^$4/___TB+ ++M!_]0$.E%____0;\$0`"`Z5G___\/'T``/?[__W\/AYHT_?^)PKG___]_3(F5 ++M4/___\'J`BG!@\(!.<H/1]$!T(G`28G&2,'@`TB)QTB)A4C____HR`W]_TF) ++MP8M#6$B+<U!,BY50____A<`/A8(!``!(A?8/A:\!``!,B4M01(ES7.F5_?__ ++M9@\?A```````/?[__W\/A]TS_?^)PKG___]_P>H"*<&#P@$YR@]'T42--`), ++MB?=-B?7H8@W]_TF)P8M#2$B+<T"%P`^%I````$B%]@^%N0```$R)2T!$B6M, ++MZ=W]__^+A5C___^)@QP!``#I^_S__XG7B958____2(/'`>@8#?W_2(M]H(N5 ++M6/___TF)QDB%_W0+Z&$0_?^+E5C___],B76@B56LZ3W[__](BXU0____3(G/ ++M2(T4Q0````!(B;50____Z%$1_?](B[50____28G!2(GW3(F-4/___^@8$/W_ ++M3(N-4/___^D._?__3(G/B<),B?%(B;50____Z!@1_?](B[50____28G!2(GW ++M3(F-4/___^C?#_W_BT-(3(N-4/___^DI____2(N-6/___TR)STB-%,4````` ++M2(FU6/___^C2$/W_2(NU6/___TF)P4B)]TR)C5C____HF0_]_TR+C5C____I ++M%_O__TB+C4C___],B<](C13%`````$R)E4#___](B;50____Z(@0_?](B[50 ++M____3(N50/___TF)P4B)]TR)C4C___],B950____Z$$/_?^+0UA,BXU(____ ++M3(N54/___^DE_O__2(G?_]!)BWT@2(7_#X31_/__2(L'_U`0Z<;\__]!OP5` ++M`(#I5/W__^C^#?W_\P\>^DB)P^E^,?W_\P\>^DB)P^F#,?W_\P\>^NFI,?W_ ++M\P\>^DB)P^E\,?W_\P\>^DB)P^FS,?W_\P\>^DB)P^DW,?W_\P\>^DB)P^FY ++M,?W_\P\>^DB)P^G!,?W_\P\>^DB)P^G#,?W_\P\>^DB)P^GS,?W_\P\>^DB) ++MP^F=,?W_9F8N#Q^$``````!FD/,/'OI(@^\(Z4/W__\/'P#S#Q[Z54B)Y4%7 ++M28GW059!54%44TB)^TB#[%AD2(L$)2@```!(B47(2(G008M7"(MP"(U^`3G7 ++M#X/C````B==-BR<I]XUW_T&#/+0N28GP#X1C`0``B=!)C32$ZPP/'P!,.>8/ ++MA,<```!(@^X$@SXN=>Y,*>9(P?X"A?8/CJ\```!(C7VP3(GZ2(E-J.@?&O[_ ++M2(M-J(M5N$B)WTB+=;!(BP%$BT$(2(G!Z#+M``!(BWVP2(7_=`7HI`W]_XM[ ++M"$R+`X7_=#2)^$F-%(")^&:0BTK\C7'W@_X!=@F#^2`/A<0```!(@^H$@^@! ++M=>.)PD''!)``````B4,(2(M%R&1(*P0E*`````^%QP(``$B#Q%A(B=A;05Q! ++M74%>05]=PY!-BR>%T@^%*O___P\?1```1(M!"$6%P'57@\(!2,<#`````&8/ ++M;LI(C3R5!````&8/<,'@9DD/?L7HH@G]_TR):PA%BV\(2(D#28LW28G$2(G' ++M3(GJZ-8._?]+QP2L?@```.DU____9@\?A```````2(L)3(GF2(G?Z$+L``#I ++M&?___P\?1```.<</A$K____I./___P\?`$B+,$V-#+R01(LN18LQ2(/&!$F# ++MP01%.?4/A/X```!!@_U@#XZ?````08/]>@^./0$``$&#_7\/CIL!``!$B>]( ++MB4V(3(E-D$B)=9A$B46DB56HZ!`,_?]!@_Y@BU6H1(M%I$B+=9A,BTV008G% ++M2(M-B`^.YP```$&#_GH/CMD```!!@_Y_#X[3````1(GW2(E-B$R)39!(B768 ++M1(E%I(E5J.C!"_W_03G%BU6H1(M%I$B+=9A,BTV02(M-B`^$1?___^G5_?__ ++M08/^8`^.R_W__T&#_GH/CBD!``!!@_Y_#XZW_?__1(GW2(E-B$R)39!(B768 ++M1(E%I(E5J.AG"_W_2(M-B$R+39!(BW681(M%I(M5J$$YQ0^%@/W__T6%[0^% ++MXO[__T2)QDB-?;!,B?I(B4VHZ+\7_O](BTVHBU6X2(G?2(MUL$B+`42+00A( ++MB<'HTNH``.F;_?__08/N($4Y]0^$H/[__^DP_?__#Q\`18U5X$&#_F`/CI`` ++M``!!@_YZ?MM!@_Y_#XX/_?__1(GW2(E-@$R)38A(B7601(E5F$2)1:2)5:CH ++MNPK]_T2+59B+5:A$BT6D2(MUD$0YT$R+38A(BTV`#X0[_O__Z<O\__]F#Q]$ ++M``!!@_Y_#XZ[_/__1(GW2(E-B$R)39!(B7681(E%I(E5J.AK"OW_1#GHZ:7^ ++M__]!C4;@Z0;___]%.?(/A/']___I@?S__^B'"?W_\P\>^DB)P^D$+OW_\P\> ++M^DB)P^D=+OW_D&9F+@\?A```````#Q\`\P\>^E5(B>5!5T%608GV055!5$F) ++M_%-(@^Q(2(M_$&1,BRPE*````$R);<A)B=5(A?\/A+@```!!@'PD(0`/A:P` ++M``!(BP=(C152`?__3(U]L$B+0"!(.=`/A>$!``!(@^\(3(U-J$R-1:Q,B?FZ ++M`P```.BX`/__A<!U>(-]J%%U<HM5K-'J1(U"_T4Y10P/@LL!``!)BUT`187` ++M#X11`@``2(M]L(U"_C'2#Q]$```/MPQ72(G6B0R32(/"`4@YQG7MB0R#QT2# ++M!`````!%B44(9F8N#Q^$```````/'P`QV^D?`0``9@\?A```````3(U]L$F+ ++M/"1,B?FZ`P```$2)]DC'1;``````2(L'2,=%N`````#_4#")PX7`#X7;```` ++M#[=%L&:#^`@/A+\```!FA<`/A;\```!)BT4`0<=%"`````#'``````!,B?_H ++MO$W^_T&+10B%P'6$28M%`$F+/"1(C4VL1(GVN@8```#'``````#HQ;O__XG# ++MA<`/A8$```"`?:P`=7M)C70D2$R)[^@H&_[_28L\)$R)^42)]DC'1;`````` ++MN@4```!(BP=(QT6X`````/]0,$&)Q(7`=1D/MT6P9H/X"`^$ZP```&:%P'0G ++M0;P%0`"`3(G_1(GCZ"A-_O_K'&8/'T0``$B+=;A(A?9U-[L%0`"`3(G_Z`I- ++M_O](BT7(9$@K!"4H````#X7[````2(/$2(G86T%<05U!7D%?7<-F#Q]$``!, ++MB>_HJ!O^_^D/____#Q\`3(U-J$R-1:Q,B?FZ`P```/_0Z2'^__]F#Q^$```` ++M``!!@?C^__\_#X?1*_W_1(G`B5682(T\A00```!$B46<Z'P$_?])BWT`1(M% ++MG,<``````(M5F$B)PTB%_W031(E%F(E5G.BW!_W_1(M%F(M5G$F)70!%B44, ++MZ>7]__]!BT4(03E%#'0_28M-`(U0`4R)[\<$@2X```")T,<$@0````!(BW6X ++M08E5".BBY0``Z0O____'`P````!!QT4(`````.GN_?__3(GOZ`(3_O]!BT4( ++MZ[/H1P;]__,/'OI(B</I+2O]__,/'OI(B</I0"O]_Y!F9BX/'X0```````\? ++M`/,/'OI52(GE05=!5D&)]D%528G]05132(/L&$B+`F1,BSPE*````$R)?<A) ++MB=?&0B``QT((`````,<``````(M"&,=")/____^%P'1%C5C_2,'C`V9F+@\? ++MA```````D$F+1Q!,BR08387D=!M)BSPD2(7_=`7HI0;]_[X0````3(GGZ'@% ++M_?](@^L(2(/[^'7.28M]`$F-3R"Z!@```$2)]D''1Q@`````Z%&Y__^)PX7` ++M="M(BT7(9$@K!"4H````#X6)````2(/$&(G86T%<05U!7D%?7<,/'X`````` ++M00^V1R!,B?I$B?9,B>]!B$<AZ,G[__^)PX7`=;A!@'TC`'4428UW$$R)_^A0 ++M-?[_ZZ-F#Q]$``!)BWT`2(U-Q[I!````1(GVZ-.X__^%P'49@'W'`'3-2(T5 ++M,M<!`#'V3(G_Z.@9_O_KNHG#Z63____HR@3]_V8N#Q^$``````#S#Q[Z54B) ++MY4%7059!B?9!54%44TB)^TB![$@"``!(B97P_?__9$R++"4H````3(EMR$&) ++MS4C'`@````!(B[]@`0``2(7_=!%(BP?_4!!(QX-@`0```````$B+NX`!``!( ++MA?]T$4B+!_]0$$C'@X`!````````2(N#R````#'29@_OP$C'0T@`````9HE3 ++M4,9#4@!(QX-(`0```````$2)LU`!``#'@]``````````#Q&#.`$``,8``$6% ++M[74*@'LE``^$J````$B+>RA(C9.@````1(GV3(L_Z,+]__]!B<2%P'5C2(V% ++ML/[__[H=````1(GV3(G_2,>%L/[__P````!(B<%(B87X_?__28L'2,>%N/[_ ++M_P````#_4#!!B<2%P'48#[>%L/[__V:%P'1B9H/X%71*0;P%0`"`2(N]^/W_ ++M_^@H2?[_2(M%R&1(*P0E*`````^%M1$``$B-9=A$B>!;05Q!74%>05]=PP\? ++M`,9#30'I3____P\?@`````!(BX6X_O__QD-)`4B)@S@!``!(B[WX_?__Z-)( ++M_O](C4M(1(GV3(G_N@\```#H[K;__T&)Q(7`=8](C8-``0``B[-0`0``2(M[ ++M*$B-2TI(B<)(B87H_?__Z%.L__]!B<2%P`^%8/___TB+>VA(A?]T-0^VD\$` ++M``!(BXWX_?__2(VSL````(/R`0^VTNB/.?[_A,`/A"____^`O;#^__\`#X0B ++M____BX.X````A<`/A9P```"`N\``````#X4'____@WM8`0^&U`0``$C'A1#^ ++M__\`````187M#X7I_O__@'LE``^%W_[__P^V0R2(A>#]__^$P`^$NP$``+\8 ++M````Z`L"_?_'0`@`````2(G#2(T%\JP"`$B)`TB)WTC'0Q``````Z+=C_O]( ++MB[T0_O__2(7_=`M(BP?_4!`/'T0``$B+A?#]__](B1CI>?[__Y"+4UB#^@(/ ++MA%0!```/AQX!``!$B[.0`0``187V#X19____1#GP#X(R!```#X37"P``2(N3 ++ML````$2)\$R+NX@!``!$B;70_?__2(F%V/W__TB)E<C]__](C03"2(F=X/W_ ++M_TF)QDR)^TF)UP\?1```28L'2(LP2(L#2(LXZ/\N_O^%P`^%<PL``$F#QPA( ++M@\,(33G^==I(BYW@_?__1(NUT/W__TB+E<C]___&0U(!D$2)I>#]__]%,?_K ++M"P\?0`!(BY.P````3HLD^DV%Y'0;28L\)$B%_W0%Z!("_?^^$````$R)Y^CE ++M`/W_28/'`44Y]W+,BY.X````2(N[L````$B+A=C]__]$BZ7@_?__1"GR2,'B ++M`TB--,?HL0+]_T0IL[@```#I4/[__P\?1```1(UP_X/Z!`^%/O[__T6%]@^$ ++M-?[__T2)\$B+D[````!(B878_?__Z53___\/'T``1(UP_^O72(M#*$2+LU`! ++M``"Z-0```$B+C?C]__],BRA(BX,0`0``QH,``0```$2)]L:#"`$```#'@PP! ++M````````3(GOQX,8`0```````,8``$B+@R@!``#&@R`!````QX,D`0`````` ++M`,>#,`$```````#&``!(QX6P_O__`````$F+10!(QX6X_O__`````/]0,$&) ++MQX7`#X6"`@``#[>%L/[__V:#^!,/A!@)``!FA<`/A6("``!,B[WX_?__3(G_ ++MZ'A%_O],B?FZ"0```$2)]DC'A;#^__\`````28M%`$R)[TC'A;C^__\````` ++M_U`P08G'A<`/A2,"```/MX6P_O__9H/X$P^$#PH``&:%P`^%`P(``$B+O?C] ++M___H'$7^_TB+>RBZ"@```$2)]DB-B]@```#H5-L``(7`#X4D`@``2(M[*$B- ++MB^0```"Z"P```$2)]N@TVP``A<`/A00"``!(C8/P````2(M[*+H,````1(GV ++M2(G!2(F%R/W__^@*VP``A<`/A=H!``"`>SP`#X5#$0``2(M#*(NS4`$``+H5 ++M````2(V-#_[__TB+..BZLO__A<`/A:H!```/MH/!````@WM8`XB%V/W__P^% ++M[P@``$B+@[````!(BP"#>`@`#X7;"```13'M0;X!````BX.X````3(L]N<(! ++M`$$YQG(NZ9\!```/'X``````2(L"@S@N#X11`0``13'MBX.X````08/&`4$Y ++MQ@^#=@$``$B+D[````!$B?!,C03%`````$B+%,*+0@B%P'7!183M#X7S```` ++M@+W8_?__`'42BX.X````@^@!1#GP#X38````2(LZ2(7_="%(B97`_?__3(F% ++MT/W__^@"__S_2(N5P/W__TR+A=#]__](B=>^$````$R)A=#]___HP/W\_XN3 ++MN````$B+@[````!!C78!3(N%T/W__RGR2(TT\$C!X@-*C3P`Z)7__/^+@[@` ++M``"#Z`&)@[@```#I.O___XN#D`$``(7`#X0>^___187M#X42^O__@'LE``^% ++M"/K__T&\!4``@.G]^?__0;\%0`"`2(N]^/W__T6)_.@00_[_2(N]$/[__TB% ++M_P^$V/G__TB+!_]0$.G-^?__BT(,A<`/A/8&``!(BP+'0@@!````3(DXZ;?^ ++M__]!B<3KPXMP!(7V=!.#_BX/A9_^__^#>`@`#X65_O__QT((`````,<````` ++M`(M""(7`#X2P_O__Z7C^__\/'T``@+W8_?__`'4?A<`/A%$+``!(BY.P```` ++M3(MLPOA!@WT(``^$`0X``$C'A2#^__\`````OQ````#H2_K\_\<``````$B+ ++M-:[``0!%,?9,C:T@_O__2(F%(/[__XN#N````$B)M2C^__^%P`^$-@T```\? ++MA```````187V=#*+A2C^__\YA2S^__\/A`(&``!(BXT@_O__C5`!QP2!+P`` ++M`(G0QP2!`````(F5*/[__TB+@[````!,B>]*BS3PZ`;;``"+D[@```!)@\8! ++M03G6<J>`O0_^__\`#X6P!@``13'V3(FU4/[__TR)M5C^__^%T@^%A0L``(A6#^___&``!(B;5H_O__#X3V!P``2(N%4/[__TB+`(-X"``/ ++MA>('``"#>U@##X78!P``13'V3(V]8/[__T6)]46%]@^%Z`0``$B+A5#^__]( ++MB[WX_?__2HL$\$B+,.@6$_[_B[6X_O__3(G_Z.@7_O](B[6P_O__BXUH_O__ ++M,<!(`XU@_O__9I`/MA0&B!0!2(/``832=?%(B[VP_O__BX6X_O__`X5H_O__ ++MB85H_O__2(7_=`OH_OO\_XN%:/[__XN56/[__XU*_T0YZ0^$/`0``(7`=!=( ++MB[U@_O__OO\!``#H(?G\_XN56/[__TF#Q@%!.=8/@D+___^`N\``````#X20 ++M!@``@[UH_O__``^$@P8``(![40`/A7D&``"_!````.@P^/S_28G&2(F%Z/[_ ++M_TB+M?C]__](B=]!Q@8`2(L%@;X!`$B)A?#^___HA8S__T0/MJWA_O__1`^V ++MO>+^__]$B>@*A>#^__\/A1$2``!%A/\/A0@2``!,B??H-?O\_TB+O6#^__]( ++MA?]T!>@D^_S_BX58_O__A<`/A%P&``!$C6C_2(N]4/[__TG!Y0-.BS0O387V ++M="%)BSY(A?]T!>CQ^OS_3(GWOA````#HQ/G\_TB+O5#^__])@^T(28/]^'7, ++M2(7_=`7HR?K\_TB-A3#^__](B[4@_O__2(G'2(F%V/W__^AL$?[_@WM8`P^$ ++M.04``(N[B````$C'A;#^__\`````B;W0_?__2(/'`>@B]_S_9@]NA=#]__]( ++MB[.`````2(F%L/[__TB)P3'`9@]PP.!F#]:%N/[__V8N#Q^$```````/MA0& ++MB!0!2(/``832=?&+M3C^__](B[WX_?__Z,\5_O](B[4P_O__BXVX_O__,<!( ++M`XVP_O__9@\?A```````#[84!H@4`4B#P`&$TG7Q1(NM./[__T0#K;C^__]$ ++MB:VX_O__1#FM//[__P^"BP0``$2)K3C^__](B[6P_O__,<!(BXTP_O__#Q^$ ++M```````/MA0&B!0!2(/``832=?%(B[VP_O__2(7_=`7HH/G\_P^V@\````"( ++MA=#]__^$P`^%R@,``(![20`/A<("``!F#^_`13'213'`13')OP0```!,B86P ++M_O__1(F-^/[__TR)E0#___],B94(____3(F5$/___TR)E1C___\/$86X_O__ ++M#Q&%R/[__P\1A=C^__\/$87H_O__Z,3U_/](BS4MO`$`2(N]^/W__\8``#'2 ++M2(F%&/___TB)M2#___](B[4P_O__Z$<V_O^(A>#]__^$P`^$B````(M#7(/X ++M`@^$10P``(7`#X2+"@``@_@##X1.#@``@_@$#X2/#0``BX7X_O__2(N5,/[_ ++M_R4`\```/0!````/A"T-``!(C;4P____,<"Y)````$B)]_.K2(G7Z-OX_/^% ++MP'4FBX5(____)0#P```]`$```'042(N],/[__^CY^?S_A<`/A8L,``!(B[T8 ++M____2(7_#X22`0``QH7@_?__`$4Q]NA"^/S_187V#X2V!P``2(N],/[__TB% ++M_P^$?@4``.@D^/S_2(N](/[__TB%_W0?#[:%X/W__XB%T/W__^@&^/S_#[:% ++MT/W__XB%X/W__T6%]@^%8@4``("]X/W__P`/A7("``!(BYT0_O__2(7;#X73 ++M]/__Z5;S__]F#Q]$``"+A;C^___&@P`!```!P>`0@,R`B8/\````Z=/V__]$ ++M#[:KP````(7`#X5,`0``183M#X3&^___QD-1`>F]^___BX5H_O__.85L_O__ ++M#X3<!@``2(N-8/[__XU0`<8$`2^)T,8$`0")E6C^___IY_K__TR)[^C_`O[_ ++MBX4H_O__Z>OY__^_"````$B)E=#]___HT_/\_TB+E=#]__](BSI(A?]T(4B) ++ME<#]__](B870_?__Z!'W_/](BY7`_?__2(N%T/W__TB)`L="#`$```#IO?C_ ++M_TB+G>#]___I5?C__X![)@`/A4OX__^`N\$`````#X0^^/__Z0WT__]$#[9K ++M5$4Q]NDA]___2(NUV/W__TB-N\@```#HS`'^_X"]#_[__P`/A#`"``!(B[TP ++M_O__2(7_#X2V!@``Z(KV_/](B[T@_O__13'V2(7_#X5L_O__Z8_^__^+A;C^ ++M___&@P`!```!B8/\````Z>+U___&A>#]__\!Z87[__](B[U@_O__OO\!``#H ++MC?/\_T&)P(7`#X6?!```183M#X18^O__2(VU,/___S'`N20```!(BY5@_O__ ++M2(GW1(F%V/W___.K2(G7Z%#V_/]$BX78_?__A<!U%HN%2/___R4`\```/0!` ++M```/A`[Z___&0U$!3(GY1(G&2(G?2(T5'JH!`.C6TO__Z?#Y__](B[78_?__ ++M2(V[R````.C.`/[_@+W@_?__``^%@@4``$B)W^AYU___2(N],/[__TB%_P^$ ++M``$``.B$]?S_2(N](/[__T4Q]DB%_P^%9OW__T4QY.D)]___2(N%(/[__X,X ++M+P^$N?O__^FR^O__1(GO2(/'`>CH\?S_2(N],/[__TF)QDB%_W0%Z#3U_/], ++MB;4P_O__1(FM//[__^E"^___2(N]8/[__TB%_W0%Z!#U_/^+A5C^__](B[U0 ++M_O__A<`/A"CZ__]$C6C_2<'E`TZ+-"]-A?9T(4F+/DB%_W0%Z-WT_/],B?>^ ++M$````.BP\_S_2(N]4/[__TF#[0A)@_WX=<SIY_G__TB+O5#^___IV_G__TB- ++MLX````!(C;U@_O__Z+O__?^#O5C^__\`#X4(^/__Z<OX__](B[T@_O__2(7_ ++M#X0(____Z'3T_/_I_O[__[]H````Z#7S_/]%,=))B<5%,=N_!````$2)4`A( ++MC04DC0(`28E%`+C_____28E%$$V)74CHUO#\_TF)14A(BS4[MP$`2(T55%3^ ++M_\8``$F+10!,B:M8`0``2(M`"$F)=5!!QT58M@$``$@YT`^%O`<``$
@! ++M3(N[6`$```^V0TE%,<E!OD$```!(B[4P_O__38E/8$B)M?C]__^$P'4&0;Y! ++M`@``2(NU^/W__TF-?TCH2/[]_T&+?Q!!BU=8@___=!V)E>C]___HL/7\_X7` ++MBY7H_?__=0A!QT<0_____TB+O?C]__]$B?8QP.C-]/S_08E'$(/``0^$\`8` ++M`(```/MD,]B(7@ ++M_?__A,`/A!@$``"`>TD`#X48!```28'^`!````^'A@,``$F+10!,B>__4`A( ++MB[T0_O__2(7_=`9(BP?_4!!-B>Y)BT4`3(FU$/[__TR)[_]0"$B+NV`!``!( ++MA?]T!DB+!_]0$$R)JV`!``!%,?;&A>#]__\`28M%`$R)[_]0$$B+O3#^__]( ++MA?\/A8SZ___IC/K__^BK\?S_#[:%X/W__TB+O2#^__^(A=#]__](A?\/A8/Z ++M__]%B?3I)O3__S'`OP@```!(B86P_O__Z!/O_/](BQ6<M0$`2(F%L/[__TC' ++M`%\```!(B96X_O__BY.\````.9.X````=6:!^O[__W\/AUP8_?^)T+G___]_ ++MP>@"*=&#P`$YR`]'P0'0B<!,C3S%`````$F)QDR)_^BR[OS_28G%BX.X```` ++M2(NSL````(7`#X6"`P``2(7V#X6:`P``3(FKL````$2)L[P```"_$````.BI ++M\/S_2(NU^/W__TB)QTF)Q>AW`/[_BX.X````C5`!B9.X````2(N3L````$R) ++M+,)(B[VP_O__2(7_#X3=\___Z)CQ_/_IT_/__^A.[OS_1(L`187`#X1""``` ++M#XY*^___10^WP$&!R````(CI.OO__XG0B978_?__3(T\Q0````!,B?_H].W\ ++M_XN5V/W__TB)A5#^__]%,?:)E5S^__](BX.P````OQ````!*BS0P2(FUV/W_ ++M_^CR[_S_2(NUV/W__TB)QTF)Q>C`__W_BX58_O__2(N-4/[__TF#Q@B-4`&) ++ME5C^__],B2S!33GW=:^%T@^$]//__X"[P``````/A?OS__](B[U0_O__3(ML ++MU_A-A>UT&TF+?0!(A?]T!>BY\/S_OA````!,B>_HC._\_X.M6/[__P$/A*[S ++M___IO?/__TB-O6#^___H#OK]_XN%:/[__^D-^?__@+W@_?__``^$M_G__TB+ ++MO3#^__](A?\/A-W[___H8?#\_TB+O2#^__](A?\/A.#Z___&A=#]__\!13'V ++MZ3?X__^`O0_^__\`#X7;^?__13'_3(F]4/[__TR)O5C^___I+O/__TB+N\@` ++M``#H,^W\_TB+O3#^__](A?\/A'K[___H_N_\_TB+O2#^__](A?\/A'WZ__\/ ++MMH7@_?__13'VB(70_?__Z<[W__](B[T@_O__2(7_#X3F]___Z,3O_/_IW/?_ ++M_T&#?0P`#X1]`P``28M%`$''10@!````2,<`7P```.G<\?__2(N#6`$``$R) ++MLT@!``!,B?:+>!#HX^S\_X7`#Y1#2W0A2(N5V/W__TB--<VL`0!(B=_H5<W_ ++M_T&)QH7`#X6+_/__2(N#6`$``#'2,?:+>!#HE^W\_TB%P'0A2(N5V/W__TB- ++M-0:D`0!(B=_H',W__T&)QH7`#X52_/__@'M)``^$]?O__TF+10!(C14\NO[_ ++M2(NS.`$``$B+0"!(.=`/A?@"``!!BWT0,=+H/>W\_TB#P`$/A<'[___HGNO\ ++M_\:%X/W__P%$BS!%A?8/A,`"```/CO;[__]%#[?V08'.````B.GF^___N6,` ++M``"Z&0```$2)]DR)[TR-@P@!``#HZ7`!`+ED````NAH```!$B?9,B>],C8,@ ++M`0``Z,UP`0#I@.[__TB-%,4`````3(GY3(GO2(FUV/W__^A^[_S_2(NUV/W_ ++M_TB)]^A/[OS_Z5G\__^+E3C^__](BXTP_O__A=(/A+D*``")T$B-1`'_ZPU( ++M.<$/A*<*``!(@^@!@#@O=>XIR(/``3G0#T;008G528U]`4V)[^BAZOS_2(NU ++M,/[__TF)QDR)ZDB)Q^@L[/S_0\8$+@!$B?I,B?9,C:U0_O__1(N%(/___TB+ ++MC1C___],B>_HA/?]_TR)]^B\[?S_,=*^9````$R+<V!(BX7@_O__N9$0M@)( ++MP>$(2`.-V/[__TCW]DAIR8"6F`!(`<%)BP:`>TH`2(F-0/[__TR+>"AU"3'_ ++M2(F]Z/W__X"[^P````!U"3'V2(FUR/W__TB+@Z`````QR;\0````2(F-8/[_ ++M_TB)A<#]___HW>G\_S'22(LU1+`!`$B-O6#^__](B85@_O__B1`QTDB)M6C^ ++M__],B>[HXPK^_TB-A1C^__],B?=,BXW(_?__3(N%P/W__U!(BXWX_?__2(V5 ++M0/[___^UZ/W__TB+M6#^__]!_]=(B[U@_O__08G&05]82(7_=`7HQ>S\_T6% ++M]@^%80(``(.]&/[__P4/A^\0_?^+A1C^__](C15"O0$`2&,$@D@!T#[_X$B+ ++MO1C___]%,?9(A?\/A3[T___I"OS__^@[Z?S_BS"%]@^$D0```'X)#[?V@<X` ++M``"(2(N-V/W__TB-%1*A`0!(B=_H8,G__\:%X/W__P%!B<;I<OG__TR)[__0 ++MZ3_X__^_"````.C-Z/S_28M]`$F)QDB%_W0%Z!SL_/]-B74`0<=%#`$```#I ++M5_S__T&^!4``@.DQ^?__,<DQTDR)[__0QH7@_?__`4&)QH7`#X46^?__Z;[X ++M__^^!4``@.EP____Z)'H_/^+,(/^`@^$9?/__X7V=$)^"0^W]H'.````B$B+ ++MC=C]__](C15)H`$`2(G?Z+'(__]!B<9(B[T8____2(7_#X5'\___187V#X5, ++M\___Z0K[__^^!4``@.O"2(G7Z)'H_/^%P`^$"//__^@DZ/S_BS"%]G0C?@D/ ++MM_:!S@```(A(BXW8_?__2(T5R9\!`$B)W^A-R/__ZYJ^!4``@.OAB[TX_O__ ++M13'V3(FU0/[__XF]^/W__TB#QP'HM>?\_V8/;H7X_?__2(NU,/[__TB)A4#^ ++M__](B<(QP&8/<,#@9@_6A4C^__\/M@P&B`P"2(/``83)=?%(C85`_O__2(G' ++M2(F%H/W__^@(O?[_A,`/A0<#``!(B[78_?__2(G?Z)$U`0!!B<:%P'4&0;X% ++M0`"`2(N]0/[__TB%_W0%Z)/J_/](B[T8____2(7_#X4\\O__Z47R__](B[W8 ++M_?__Z+*\_O^$P`^$]@8``,9#3`'I`/+__T&^!$``@$B+O5#^__](A?\/A*W^ ++M___H1NK\_^FC_O__#[:#``$``(3`#X3G]O__BY/\````B=&!X0```/"!^0`` ++M`*!T"X#F!`^$R/;__S'`B$-.3#NS<`$``'0Z2(N[:`$``$B%_W0/Z/3I_/]% ++M,<!,B8-H`0``,?](B;MP`0``3(GWZ'GF_/](B8-H`0``3(FS<`$``+\H```` ++MZ)'H_/\Q]DF)QHEP"$B-!=*3`@!,B?=)B09,B;-X`0``Z#!7_O](B[N``0`` ++M2(7_=`9(BP?_4!!(BX-X`0``2(N+:`$``$R)]TR)LX`!``!(BY-P`0``2(E( ++M$#')2(E(($B)4!A)BP;_4`A(B[T0_O__2(7_#X1(]O__2(L'_U`0Z3WV__]! ++MN`5``(#I`_/__XN%:/[__XF%V/W__X/X`P^'/`8``(N%V/W__TB+M6#^__^) ++MA?#^__\QP`^V%`9!B!0&2(/``832=?!%A/\/A+<%``!%A.T/A9H%``!F#V\% ++ML:L!``\IA3#___]F#V^%T/[__P\IA4#___](C94P____,<E,B?:_G/___^AU ++MYOS_BY.T`0``.9.P`0``=6^!^O[__W\/A^8,_?^)T+G___]_P>@"*=&#P`$Y ++MR`]'P8T,$$&)STC!X0-(B<](B8W0_?__Z`[E_/])B<6+@[`!``!(B[.H`0`` ++M2(N-T/W__X7`#X5`!0``2(7V#X55!0``3(FKJ`$``$2)N[0!``"_2````.C^ ++MYOS_2(NU^/W__TB)QT4QVTF)Q;D.````\Z6+O=C]__],B5@X28G_2(/'`>BA ++MY/S_9D$/;L])B44X2(G",<!F#W#!X&9!#]9%0$$/M@P&B`P"2(/``83)=?"+ ++M@[`!``"-4`&)D[`!``!(BY.H`0``3(DLPNE\[/__2(N%,/[__TB+M4#^__]( ++MB<=(B;7H_?__2(F%R/W__^AEY?S_A<`/A#(#``#H2.3\_X,X$DB)A<#]__\/ ++MA,\```!,C:U0_O__2(N%P/W__T2+,$6%]@^$J@```'X+10^W]D&!S@```(A( ++MC36RFP$`3(GOZ`+U_?](C37(F@$`3(GOZ&/$``!,C;U@_O__1(GV3(G_Z+$? ++M_O],B?Y,B>_H]L0``$B+O6#^__](A?]T!>@%Y_S_2(NUH/W__TR)[^C&DO__ ++M2(NUV/W__TR)[^BWDO__2(M[8$B+M5#^__](BP?_4#A(B[U0_O__08G&2(7_ ++M=`7HPN;\_T6%]@^%%?S__^D*_/__0;X%0`"`Z5C___^X_____T4Q[;\$```` ++M2(F%8/[__TR)K9C^___H*>/\_TB+-9*I`0#&``!(C;V8_O__2(F%F/[__TB) ++MM:#^__](B[7H_?__QX6H_O__M@$``.CD\/W_B[U@_O__1(NMJ/[__X/__W03 ++MZ$WH_/^%P'4*QX5@_O_______TB+O>C]__]$B>J^P0```#'`Z&GG_/^)A6#^ ++M__],B[68_O__08G'@_C_#X0Y`@``2(N]R/W__[JV`0``,?8QP,>%4/[_____ ++M___&A53^__\`Z"KG_/^)A;S]__]%,>V)A5#^__^#P`$/A!0!``!(C;T8_O__ ++MN@```0"^@````.@\X_S_A<`/A1T,_?](BXT8_O__3(VM4/[__TB%R0^$!@S] ++M_TB)G?C]__](B<NZ```!`$B)WDR)[^AS)/[_2(7`#X29````#XA-`0``2(G> ++M13')3(FUL/W__T2)_T2)I;C]__])B=])B<9(B<-,B:VH_?__28GT38G-ZQ4/ ++MA.X```!)`<1)`<5(*<,/A-\```"X``!``$R)YHF]G/W__T@YPT@/1L-(B<+H ++M`^+\_XN]G/W__TB%P'G#3(GY3(NUL/W__T2+I;C]__]!B?](BYWX_?__3(NM ++MJ/W__^G$````2(G92(N=^/W__T&]`0```$B)S^@IY/S_B[V\_?__Z+[F_/]- ++MA?9T"$R)]^BAY/S_1(G_Z*GF_/]%A>T/A!C]__],B[W(_?__2(VU,/___TR- ++MK5#^__],B?_HL^7\_X7`#X7Z_/__3(G_Z-/A_/^%P`^%ZOS__TB+O4#^__]( ++MA?\/A.KK___H1N3\_^G@Z___3(GR38GI3(G[3(NUL/W__T2+I;C]__],BZVH ++M_?__08G_3#G*#X24_O__2(G92(N=^/W__TB)S^AUX_S_B[V\_?__Z`KF_/]- ++MA?9T"$R)]^CMX_S_1(G_Z/7E_/],B[W`_?__2(N]Z/W__T6+-^A?Y?S_18DW ++MZ5;\__]-A?8/A$;\__],B??HMN/\_^DY_/__QT-<`P```$B+O5#^__](A?]T ++M!>B9X_S_BT-<Z;SJ___'0UP"````Z2KY___'0UP!````Z]*#R/_I7/7__TB+ ++MM=C]__](B=_H12X!`$&)QH7`#X7'^/__0;X%0`"`Z;SX__]F#V^%P/[__P\I ++MA3#____I8?K__T6$[0^$??K__V8/;X7`_O__#RF%,/___V8/;P7KI0$`#RF% ++M0/___^E$^O__2(T4Q0````!,B>](B;70_?__Z!CD_/](B[70_?__2(GWZ.GB ++M_/_IGOK__XG'2(/'`>AYW_S_3(GW2(F%T/W__^C*XOS_2(N%T/W__XNUV/W_ ++M_TB)A>C^__])B<:)M?3^___IB/G___,/'OKI`@?]__,/'OI(B</I#`?]__,/ ++M'OI(B</I)`?]__,/'OI(B</I00?]__,/'OI(B</IK@?]__,/'OI(B</I3@?] ++M__,/'OI(B</I3@?]__,/'OI(B</IP@?]__,/'OI(B</IPP?]__,/'OI(B</I ++MY@;]__,/'OI(B</IQ0?]__,/'OI(B</IS@?]__,/'OI(B</IK0?]__,/'OI( ++MB</IW0?]__,/'OI(B</I@0;]__,/'OI(B</I\`?]__,/'OI(B</IN@;]__,/ ++M'OKI#0C]__,/'OI(B</I=@C]__,/'OI(B</IQ@;]__,/'OI(B</IG0?]__,/ ++M'OI(B</IYP?]__,/'OI(B</IZ`?]__,/'OI(B</I[0?]__,/'OI(B</I[P7] ++M__,/'OKIJ0;]__,/'OI(B</I_P?]__,/'OI(B<?I>`;]__,/'OI(B</I%@C] ++M_Y`/'T``\P\>^E5(B>5!5T%6055!5%-(@^QX9$R+-"4H````3(EUR$4Q]DB# ++M?W``#X0>`0``28G\OQ````!!B?>)T\:%;____P!!B<U(QX5P____`````.B9 ++MW?S_3(LU`J0!`$B)A7#___],B;5X____QP``````08/_`0^%_````(/[_P^$ ++M\P```+\0````2,=%@`````!,C7V`Z%7=_/])BWPD*$R)^HG>QP``````3(EU ++MB$B)18!(QT60`````$C'19@`````Z&C9__]!B<:%P`^$[0$``(M%F$B+?9"% ++MP'1$C5C_2,'C`V9F+@\?A```````3(LD'TV%Y'0?28L\)$B%_W0%Z$G@_/], ++MB>>^$````.@<W_S_2(M]D$B#ZPA(@_OX=<Y(A?]T!>@DX/S_2(M]@$B%_W0% ++MZ!;@_/],BXUP____387)=`A,B<_H`N#\_TB+1<AD2"L$)2@````/A60"``!( ++M@\1X1(GP6T%<05U!7D%?7<,/'T0``$C'`",```"^"@```$B-O7#____'A7C_ ++M__\!````Z*;K_?],BXUP____BX5X____38T<@4V-4P2#^PD/AO@````QTDR- ++M1;!!OLW,S,QF9BX/'X0``````&9F+@\?A```````9F8N#Q^$``````!F9BX/ ++M'X0``````&9F+@\?A```````#Q]$``")V(G92(G720^OQDB-4@%(P>@CC32` ++M`?8I\8/!,$&(3#@!B=F)PX/Y8W?5@\,P28T$$$R)TD&)&P\?A```````#[8( ++M2(/H`4B#P@2)2OQ).<!U[4V-5+H$0<<"`````$TIRD4Q]DG!^@)$B95X____ ++M28M\)'!(C16T(P``2(L'2(M`&$@YT`^%%`$``$6%[0^%VP```(L%J>\"`(7` ++M#X47`0``13'VZ9;^__\/'T0``(/#,$&)&^N@#Q^$``````!(C;UP____3(G^ ++MZ.'P_?])BT0D*$B-C6____^)WKH/````2(LXZ$:1__]!B<:%P`^%WOW__XM% ++MF$B+?9"%P'1!C5C_2,'C`V8/'X0``````$R+-!]-A?9T'DF+/DB%_W0%Z"K> ++M_/],B?>^$````.C]W/S_2(M]D$B#ZPA(@_OX=<](A?]T!>@%WOS_2(M]@$B% ++M_W0%Z/?=_/],BXUP____1`^VM6_____I`____P\?`$R)SDB-7_!(@<=8`0`` ++MZ%WO_?]$B?)$B>Y(B=_H/QX``$&)QNFA_?__#Q^``````$R)R42)\D2)[O_0 ++M3(N-</___T&)QNF'_?__0;X$0`"`Z7S]___HAMS\_V8/'T0``/,/'OI(@^\( ++MZ2/\__]F+@\?A```````9BX/'X0``````&8N#Q^$```````/'T0``(GR2(T- ++M][(!`(GP0;@!````P>H,2(UW`8/B#P^V%!&(%[H&````C4H"18G!18G"18G# ++M0=/A1(G)(<&#^0$9R8/ANX/!<H@.C4H!0=/B1(G1(<&#^0$9R8/AMH/!=XA. ++M`8G10=/C1(G9(<&#^0$9R8/J`TB#Q@.#X;6#P7B(3O^#^OUUHO;$"'03B<*# ++MXD"#^@$9TH/BX(/"<XA7`_;$!'03B<*#X@B#^@$9TH/BX(/"<XA7!O;$`G03 ++MB<*#X@&#^@$9TH/BX(/"=(A7"24``/__=0W&1PH`PP\?A```````NC`P``#& ++M1PH@P>@(2(TU_;$!`&:)5Q%(C5</2(/'"<9'"@")P4B#Z@*#X0\/M@P.B$H# ++MB<'!Z`C`Z02#X0\/M@P.B$H"2#G7==G#D`\?0`#S#Q[Z2,<"`````#'`2(T- ++M;(T!`&9F+@\?A```````9F8N#Q^$``````!F#Q]$``!$#[8$`40X!`9U'4B# ++MP`%(@_@0=>M(B?A(B0(QP(.',`$```'##Q\`,<!(C0W_K`$`1`^V#`%$.`P& ++M=1D/'T``2(/``4B#^!!TRT0/M@P!1#@,!G3K,<!(C0W"K`$`9I!$#[84`40X ++M%`9U)4B#P`%(@_@0=>M(C4<02(D",<"#AS`!```!PV8N#Q^$```````QP$B- ++M#1>J`0`/'X``````1`^V'`%$.!P&=1M(@\`!2(/X$'7K2(U'&$B)`C'`@X<P ++M`0```<.X`D``@,,/'T``\P\>^DC'`@`````QP$B-#6R,`0!F9BX/'X0````` ++M`&9F+@\?A```````9@\?1```1`^V!`%$.`0&=25(@\`!2(/X$'7K2(U'Z$B) ++M`C'`@X<8`0```<-F+@\?A```````,<!(C0WWJP$`1`^V#`%$.`P&=3%F9BX/ ++M'X0``````&9F+@\?A```````9@\?1```2(/``4B#^!!TJT0/M@P!1#@,!G3K ++M,<!(C0VBJP$`9I!$#[84`40X%`9U)4B#P`%(@_@0=>M(C4?X2(D",<"#AQ@! ++M```!PV8N#Q^$```````QP$B-#?>H`0`/'X``````1`^V'`%$.!P&=1I(@\`! ++M2(/X$'7K2(GX2(D",<"#AQ@!```!P[@"0`"`PP\?1```\P\>^DC'`@`````Q ++MP$B-#4R+`0!F9BX/'X0``````&9F+@\?A```````9@\?1```1`^V!`%$.`0& ++M=25(@\`!2(/X$'7K2(U'\$B)`C'`@X<@`0```<-F+@\?A```````,<!(C0W7 ++MJ@$`1`^V#`%$.`P&=3%F9BX/'X0``````&9F+@\?A```````9@\?1```2(/` ++M`4B#^!!TJT0/M@P!1#@,!G3K,<!(C0V"J@$`9I!$#[84`40X%`9U'4B#P`%( ++M@_@0=>M(B?A(B0(QP(.'(`$```'##Q\`,<!(C0W?IP$`9F8N#Q^$```````/ ++M'T``1`^V'`%$.!P&=1M(@\`!2(/X$'7K2(U'"$B)`C'`@X<@`0```<.X`D`` ++M@,,/'T``\P\>^HN',`$``(/``8F',`$``,-F9BX/'X0``````)#S#Q[ZBX<8 ++M`0``@\`!B8<8`0``PV9F+@\?A```````D/,/'OJ+AR`!``"#P`&)AR`!``## ++M9F8N#Q^$``````"0\P\>^HL%:ND"`(7`=0HQP,,/'X``````N`1``(##9I#S ++M#Q[Z@+_Y`````'4S2(-_0`!T+(!_2`!U)DB%]G0Q2(L&QH?X`````4B)1Q!( ++MA=)T#DB+`DB)A_`````/'T``BP4.Z0(`A<!U-C'`PP\?`,:'^`````!(A=)T ++M%$B+`DB)A_````!(B4<0Z]0/'T``2(N'\````$B)1Q#KPP\?`+@$0`"`PV8N ++M#Q^$``````!52(GE4TB)^TB#[`A(BW]`2(7_=`7HMM?\_TB+>S!(A?]T"%I; ++M7>FEU_S_6%M=PY#S#Q[Z54B!QR`!``#&1_H!2(GEZ.CI_?\QP%W##Q]``/,/ ++M'OI52(''&`$``,9'^@%(B>7HR.G]_S'`7<,/'T``54B)Y4%7059!54%44TB# ++M[$B+1T!(B7V@2(M_.(7`='Y$C6#_2<'D`TZ++"=-A>UT8T&+10A)BWT`A<!T ++M.(U8_TC!XP-,BS0?387V=!Y)BSY(A?]T!>@&U_S_3(GWOA````#HV=7\_TF+ ++M?0!(@^L(2(/[^'7/2(7_=`7HX=;\_TR)[[X8````Z+35_/](BT6@2(MX.$F# ++M[`A)@_SX=8I(A?]T!>BXUOS_2(M-H(M!,$B+>2B%P'1^1(U@_TG!Y`-.BRPG ++M387M=&-!BT4(28M]`(7`=#B-6/](P>,#3(LT'TV%]G0>28L^2(7_=`7H;];\ ++M_TR)][X0````Z$+5_/])BWT`2(/K"$B#^_AUSTB%_W0%Z$K6_/],B>^^&``` ++M`.@=U?S_2(M%H$B+>"A)@^P(28/\^'6*2(7_=`7H(=;\_TB+3:"+02!(BWD8 ++MA<`/A%D'``"#Z`%(P>`#2(E%F$B+19A(BPP'2(E-L$B%R0^$)@<``(M!0$B+ ++M>3B%P'1\1(U@_TG!Y`-*BQPG2(7;=&&+0PA(BSN%P'0X1(UH_TG!Y0-.BS0O ++M387V=!U)BSY(A?]T!>BJU?S_3(GWOA````#H?=3\_TB+.TF#[0A)@_WX==!( ++MA?]T!>B&U?S_2(G?OA@```#H6=3\_TB+1;!(BW@X28/L"$F#_/AUC$B%_W0% ++MZ%W5_/](BTVPBT$P2(MY*(7`#X2#````1(U@_TG!Y`-*BQPG2(7;=&B+0PA( ++MBSN%P'0_1(UH_TG!Y0,/'X``````3HLT+TV%]G0=28L^2(7_=`7H"M7\_TR) ++M][X0````Z-W3_/](BSM)@^T(28/]^'702(7_=`7HYM3\_TB)W[X8````Z+G3 ++M_/](BT6P2(MX*$F#[`A)@_SX=85(A?]T!>B]U/S_2(M-L(M!($B+>1B%P`^$ ++ML`4``(/H`4C!X`-(B47`2(M%P$R++`=-A>T/A($%``!!BT5`28M].(7`#X2* ++M````@^@!2,'@`TF)QP\?0`!*BQP_2(7;=&.+0PA(BSN%P'0^@^@!3(TTQ0`` ++M``!FD$Z+)#=-A>1T'DF+/"1(A?]T!>@YU/S_3(GGOA````#H#-/\_TB+.TF# ++M[@A)@_[X=<](A?]T!>@5U/S_2(G?OA@```#HZ-+\_TF+?3A,B?A(@^@(28G' ++M2(/X^'6$2(7_=`7HZM/\_T&+13!)BWTHA<`/A(8```"#Z`%(P>`#28G'2HL< ++M/TB%VW1CBT,(2(L[A<!T/H/H`4R--,4`````9I!.BR0W387D=!Y)BSPD2(7_ ++M=`7HF=/\_TR)Y[X0````Z&S2_/](BSM)@^X(28/^^'7/2(7_=`7H==/\_TB) ++MW[X8````Z$C2_/])BWTH3(GX2(/H"$F)QTB#^/AUA$B%_W0%Z$K3_/]!BT4@ ++M28M]&(7`#X0`!```@^@!2,'@`TB)19!F9BX/'X0```````\?0`!(BT603(LD ++M!TV%Y`^$P@,``$&+1"1`28M\)#B%P`^$BP```(/H`4B-',4`````9I!,BSP? ++M387_=&M!BU<(28L_A=)T1(/J`4R---4`````D$J+%#=(A=)T)4B+.DB%_W0- ++M2(E5R.BVTOS_2(M5R$B)U[X0````Z(71_/])BS])@^X(28/^^'7(2(7_=`7H ++MCM+\_TR)_[X8````Z&'1_/])BWPD.$B#ZPA(@_OX=8)(A?]T!>AHTOS_08M$ ++M)#!)BWPD*(7`#X24````@^@!2(T<Q0````!F9BX/'X0``````$R+/!]-A?]T ++M:T&+5PA)BS^%TG1$@^H!3(TTU0````"02HL4-TB%TG0E2(LZ2(7_=`U(B57( ++MZ`;2_/](BU7(2(G7OA````#HU=#\_TF+/TF#[@A)@_[X=<A(A?]T!>C>T?S_ ++M3(G_OA@```#HL=#\_TF+?"0H2(/K"$B#^_AU@DB%_W0%Z+C1_/]!BT0D($F+ ++M?"08A<`/A"\"``"#Z`%(P>`#2(E%N&9F+@\?A```````2(M%N$B+'`=(A=L/ ++MA/4!``"+0T!(BWLXA<`/A*8```"#Z`%(P>`#2(E%J`\?1```2(M%J$R+-`=- ++MA?9T=D&+1@A)BSZ%P'10@^@!3(T\Q0````!F9BX/'X0``````&:02HL4/TB% ++MTG0E2(LZ2(7_=`U(B57(Z!;1_/](BU7(2(G7OA````#HY<_\_TF+/DF#[PA) ++M@__X=<A(A?]T!>CNT/S_3(GWOA@```#HP<_\_TB+>SA(@VVH"$B+1:A(@_CX ++M#X5J____2(7_=`7HP-#\_XM#,$B+>RB%P`^$IP```(/H`4C!X`-(B46H9@\? ++M1```2(M%J$R+-`=-A?9T=D&+1@A)BSZ%P'10@^@!3(T\Q0````!F9BX/'X0` ++M`````&:02HL4/TB%TG0E2(LZ2(7_=`U(B57(Z%;0_/](BU7(2(G7OA````#H ++M)<_\_TF+/DF#[PA)@__X=<A(A?]T!>@NT/S_3(GWOA@```#H`<_\_TB+>RA( ++M@VVH"$B+1:A(@_CX#X5J____2(7_=`7H`-#\_XM3($B+>QB%TG1!@^H!3(T\ ++MU0````!F+@\?A```````3HLT/TV%]G093(GWZ&_X__],B?>^2````.BBSOS_ ++M2(M[&$F#[PA)@__X==1(A?]T!>BJS_S_2(M["$B%_W0%Z)S/_/](B=^^2``` ++M`.AOSOS_28M\)!A(@VVX"$B+1;A(@_CX#X7G_?__2(7_=`7H;<_\_TF+?"0( ++M2(7_=`7H7L_\_TR)Y[Y(````Z#'._/])BWT82(-MD`A(BT602(/X^`^%&OS_ ++M_TB%_W0%Z##/_/])BWT(2(7_=`7H(L_\_TR)[[Y(````Z/7-_/](BT6P2(MX ++M&$B#;<`(2(M%P$B#^/@/A5OZ__](A?]T!>CPSOS_2(M%L$B+>`A(A?]T!>C> ++MSOS_2(M]L+Y(````Z+#-_/](BT6@2(MX&$B#;9@(2(M%F$B#^/@/A;+X__]( ++MA?]T!>BKSOS_2(M%H$B+>`A(A?]T$TB#Q$A;05Q!74%>05]=Z8O._/](@\1( ++M6T%<05U!7D%?7<-F9BX/'X0``````)!52(GE05=!5D%505132(/L&(M'"$B) ++M?<!(BS^%P`^$!@(``$2-</]*C03U`````$B)1<AF9BX/'X0``````&:02(M% ++MR$R++`=-A>T/A,4!``!!BT5028M]2(7`#X2$````1(U@_TG!Y`,/'X`````` ++M2HL<)TB%VW1BBT,(2(L[A<!T/8/H`4R--,4`````9I!.BSPW387_=!U)BS]( ++MA?]T!>C*S?S_3(G_OA````#HG<S\_TB+.TF#[@A)@_[X==!(A?]T!>BFS?S_ ++M2(G?OA@```#H><S\_TF+?4A)@^P(28/\^'6+2(7_=`7H@<W\_T&+14!)BWTX ++MA<`/A(8```!$C6#_2<'D`V8/'X0``````$J+'"=(A=MT8HM#"$B+.X7`=#V# ++MZ`%,C3S%`````&:03HLT/TV%]G0=28L^2(7_=`7H*LW\_TR)][X0````Z/W+ ++M_/](BSM)@^\(28/_^'702(7_=`7H!LW\_TB)W[X8````Z-G+_/])BWTX28/L ++M"$F#_/AUBTB%_W0%Z.',_/]!BT4P28M]*(7`=$&-6/](P>,#9F8N#Q^$```` ++M```/'P!,BR0?387D=!E,B>?H3_7__TR)Y[Y(````Z(++_/])BWTH2(/K"$B# ++M^_AUU$B%_W0%Z(K,_/])BWT82(7_=`7H?,S\_TF+?0!(A?]T!>ANS/S_3(GO ++MOE@```#H0<O\_TB+1<!(BSA(@VW("$B+1<A(@_CX#X47_O__2(7_=!-(@\08 ++M6T%<05U!7D%?7>DOS/S_2(/$&%M!7$%=05Y!7UW#54B)Y4%528G]05132(/L ++M"(M'"$B+/X7`=$B-6/](P>,#9F8N#Q^$```````/'T``3(LD'TV%Y'0?28L\ ++M)$B%_W0%Z-G+_/],B>>^&````.BLROS_28M]`$B#ZPA(@_OX=<Y(A?]T#%I; ++M05Q!75WIK<O\_UA;05Q!75W##Q]$``#S#Q[ZBP6*W`(`@\`!B06!W`(`@_@" ++M=P'#5;\!````2(GEZ!G+_/]F#Q^$``````!5N@0!``!(BPT3WP(`O@$```!( ++MC3W?B`$`2(GEZ"_-_/]=PV9F+@\?A```````9I!52(GE05=!5D4Q]D%528G] ++M2(GW051,C254=@(`4TB#[$A)BW4`9$R+/"4H````3(E]R$&)U^@FROS_28MU ++M`+\*````Z,C*_/^_!````$C'1:``````Z(;'_/](BQ7OC0$`2(E%H$B)5:C& ++M```/'T``NP$```!$B?'3XT&%WW0RBT6H2XLT]$B-?:"%P'09.T6L='U(BTV@ ++MC5`!Q@0!"HG0Q@0!`(E5J.BDJ@``]]-!(=])@\8!28/^"W6U187_=7!)BW4` ++M2(M]H.B3R?S_28MU`+\*````Z#7*_/](BWV@2(7_=`7H5\K\_TB+1<AD2"L$ ++M)2@````/A<X```!(@\1(6T%<05U!7D%?7<,/'T0``$B)=9!(B7V8Z*/3_?^+ ++M1:A(BW602(M]F.EF____#Q\`N#!X``!$B?IFB46P2(U%LDB#P`'!Z@1U]\8` ++M`$B-#8V?`0!F9BX/'X0``````&9F+@\?A```````#Q^``````$2)^DB#Z`&# ++MX@]!P>\$#[84$8@0=>J+1:A(C7V@A<!T&3M%K'0B2(M-H(U0`<8$`0J)T,8$ ++M`0")5:A(C76PZ)VI``#I"/___TB)?9CH_]+]_XM%J$B+?9CKS.AQR/S_\P\> ++M^DB)P^EM\/S_#Q]$``!52(GE05=)B?>^`0```$%6055,C2U2?@$`051)B=2Z ++M`@```%-(B?M(@>RX````9$R+-"4H````3(EUR$F)SDB+#TR)[^CWROS_2(L+ ++MN@H```"^`0```$B-/?M]`0#HWLK\_TR)_DB)W^AS\?W_2(LSOPH```#HMLC\ ++M_TV%]G0&28,^_W5+387D=!Y,C;5P____,<DQ]DR)YTR)\NA@G@``A,`/A9@% ++M``!(BT7(9$@K!"4H````#X5Q!@``2('$N````%M!7$%=05Y!7UW##Q\`2,>% ++M,/___P````"_!````.@;Q?S_38LV2(L5@8L!`$B)A3#____&``!,B?!(P>@@ ++M2(F5./___P^$DP4``$R)\3'_2(UUL$FXS<S,S,S,S,QF9BX/'X0``````&9F ++M+@\?A```````9F8N#Q^$``````!F9BX/'X0```````\?0`!(B<A(@\<!2??@ ++M2(G(2,'J`TR-#))-`<E,*<B#P#"(!#Y(B<A(B=%(@_AC=].#P3!(C00^2(V5 ++M4?___XB-4/___V9F+@\?A```````9F8N#Q^$``````!F#Q^$```````/M@A( ++M@^@!2(/"`8A*_T@YQG7MQH0]4?___P`QP("]4/___P!T&F8N#Q^$``````"- ++M4`&`O!50____`$B)T'7P3(V],/___XG&B84L____3(G_Z/GB_?^+A2S___^+ ++ME3C___](C8U0____2`.5,/___V9F+@\?A```````#Q]```^V,4B#P0%(@\(! ++M0(AR_T"$]G7L`X4X____B84X____.X4\____#X1T!```2(N-,/___XU0`<8$ ++M`2")T,8$`0`QR8F5./___TB-%=![`0"0C4$!@#P"`$B)P77TB<9,B?^)A2S_ ++M___H9.+]_XN-+/___XN%./___TB-%:![`0!(`X4P____9F8N#Q^$``````!F ++M9BX/'X0```````\?0``/MC)(@\(!2(/``4"(</]`A/9U[`&-./___TV%]@^$ ++MY`(``$BX____?P(```#'A4S___]+:4(`3#GP#X*``P``28'^__^?``^'RP,` ++M`+A+````N0H```"(A4S___]%,<!(C14>>P$`9@\?A```````08U``8`\`@!) ++MB<!U\XG&3(G_B8TH____B84L____Z)WA_?^+C2C___]$BX4L____2(T5WGH! ++M`(N%./___T@#A3#___]F9BX/'X0``````)`/MC)(@\(!2(/``4"(</]`A/9U ++M[+@!````1`&%./___TB-=;`Q_TFXS<S,S,S,S,Q(T^!)C40&_TC3Z$B)P4C! ++MZ"`/A.`"``!F9BX/'X0``````&9F+@\?A```````9F8N#Q^$``````!F9BX/ ++M'X0``````&9F+@\?A```````D$B)R$B#QP%)]^!(B<A(P>H#3(T,DDT!R4PI ++MR(/`,(@$/DB)R$B)T4B#^&-WTX/!,$B-!#Y(C95Q____B(UP____9F8N#Q^$ ++M``````!F9BX/'X0``````&8/'X0```````^V"$B#Z`%(@\(!B$K_2#G&=>W& ++MA#UQ____`$4Q]H"]</___P!T*F9F+@\?A```````9F8N#Q^$```````/'P!! ++MC48!@+P%</___P!)B<9U[T2)]DR)_^@TX/W_BX4X____2(V5</___T@#A3#_ ++M__]F9BX/'X0```````\?1```#[8*2(/"`4B#P`&(2/^$R77N1`.U./___T2) ++MM3C___]$.[4\____#X3C`0``2(N5,/___T&-3@%"Q@0R($4Q]L8$"@")C3C_ ++M__]F9BX/'X0``````&9F+@\?A```````08U&`8"\!4S___\`28G&=>^)QDR) ++M_^B5W_W_BX4X____2(V53/___T@#A3#___]F9BX/'X0``````&8/'T0```^V ++M"DB#P@%(@\`!B$C_A,EU[D0#M3C___]$B;4X____1#NU//___P^$6P$``$B+ ++ME3#___]!C4X!0L8$,BG&!`H`B8TX____2(L+N@(```"^`0```$R)[^A4Q?S_ ++M2(L+N@H```"^`0```$B-/6-X`0#H.\7\_TB+,TB+O3#____H;,+\_TB+,[\* ++M````Z`_#_/](B[TP____2(7_#X14^O__Z"K#_/_I2OK__P\?1```2(L+3(GO ++MN@(```"^`0```.CKQ/S_2(L+N@H```"^`0```$B-/05X`0#HTL3\_TB+,TR) ++M]^@'POS_2(LSOPH```#HJL+\_^D=^O__#Q]$``"X1P```+D>````Z8C\__^0 ++M2(VU4/___T2)]^@!R_W_Z1?[__\/'T``2(VU</___XG/Z.K*_?_IP/W__P\? ++M1```3(G_Z`C,_?^+A3C____I>?O__P\?1```N$T```"Y%````.DP_/__9@\? ++MA```````3(G_Z-C+_?]$B[4X____Z0G^__\/'T``3(G_Z,#+_?]$B[4X____ ++MZ9'^___H+\'\__,/'OI(B</I5>G\_P\?`%5(B>5!54&)U;H%````051)B?2^ ++M`0```%-(B?M(@^P(2(L/2(T]('<!`.C1P_S_183M2(T%`W<!`$B+,TB-/0%W ++M`0!(#T7XZ/3`_/](BPNZ&P```+X!````2(T]\'8!`.B;P_S_28LT)$B)W^@/ ++MZ/W_N@D```"^`0```$B-/>IV`0!(BPA(B</H<\/\_TB+,[\*````Z%;!_/]( ++M@\0(6T%<05U=PV9F+@\?A```````54B)Y4%428G44TB)^TB#[!"+1P@Y1PQT ++M5TB+"XU0`4B)W\<$@0H```")T,<$@0````")4PCH9IX``$B)WTB--7)V`0#H ++M5YX``$R)YDB)W^A,GP``2(/$$$B)WTB--5IV`0!;05Q=Z36>```/'T0``$B) ++M=>CHI\S]_XM#"$B+=>CKEV9F+@\?A```````#Q\`568/;P6W@P$`2(GE0593 ++M2(G[2(U_&$C'1_@`````#Q%'Z.@)R_W_2(U[*.B0S?W_6T%>7</S#Q[Z28G& ++MZ6GH_/^09F8N#Q^$```````/'P#S#Q[Z54B)Y4%7059!B?9!54%428G\4TB# ++M[`B+7VB%VW1M1(T\6T0Y?WP/@J````!,BV]P2(G:O@@```!,B>_H_+W\_TF- ++M3!T`2(G:OB````!(B<_HY[W\_TB)VKX(````2(G!2`'92(G/Z-&]_/](`</& ++M`P!,*>M)BT0D.$&)7"1X28M\)'!(BS#H(;_\_T6$]G4D0<=$)&@`````28M$ ++M)&#&``!(@\0(6T%<05U!7D%?7<,/'T``28M$)#A(BSCH&[_\_^O-9@\?A``` ++M````08'__O__/P^'D^?\_T2)_TB#QP'H1[S\_TF+?"1PQ@``28G%2(7_=`7H ++MDK_\_TV);"1P18E\)'SI)____Y!FD/,/'OI52(GE05=!5D%53(TM>]`"`$%4 ++M08GT4TB)^TR)[TB#[#AD3(LT)2@```!,B77(08G6Z,:__/]%A>1U44B#>V`` ++M=`J`>V@`#X3@````BP4>T`(`A<`/A7`#```QVTR)[^@XO?S_2(M%R&1(*P0E ++M*`````^%70,``$B#Q#B)V%M!7$%=05Y!7UW##Q]``+@!````\P]OB[`!``!( ++M@[L(`0```&9(#V[`9@]LP&8/U,$/$8.P`0``=)5(@WM@`'04@'MH`'4.2(U[ ++M*+X!````Z!K^__](BX,``0``2(7`=`A(BSCHYKW\_[\$````2,=%L`````#H ++M)+O\_TB+%8V!`0!(B46P2(E5N,8``$&#_`D/A\4"``!(C15AD`$`1(G@2&,$ ++M@D@!T#[_X`\?0`!(BT-`QT-(`````,8``$B+0U#'0U@`````QP``````2(-# ++M.`'I]_[__P\?@`````!,C35O<P$`9@\?A```````13'_2(T5V7,!`&8/'T0` ++M`$&-1P&`/`(`28G'=?-(C7VPB<9(B7VHZ(39_?](BWVHBT6X2(T5J7,!`$@# ++M1;!FD`^V"DB#P@%(@\`!B$C_A,EU[D0!?;A-A?8/A($!``!%,>1!@#X`=!</ ++M'X0``````$&-1"0!08`\!@!)B<1U\42)YN@IV?W_BTVX,<!(`TVP00^V%`:( ++M%`%(@\`!A-)U\$0!9;A(BWVP2(N#"`$``$B+,.AYO/S_BY-P`0``A=(/A=L` ++M``!(BX,(`0``OPH```!(BS#H![W\_TB+@P@!``!(BSCH>+S\_TB+?;!(A?\/ ++MA.O]___H%KW\_^GA_?__D$6%]DR-!6]R`0!(C06/>P$`20]$P$F)QNGC_O__ ++M#Q\`3(TUD'(!`.G4_O__#Q]``$R--8]R`0#IQ/[__P\?0`!,C36-<@$`Z;3^ ++M__\/'T``187V3(T%*G(!`$B-!6][`0!)#T3`28G&Z9/^__\/'P!,C34I<@$` ++MZ83^__\/'T``3(TU>7L!`.ET_O__#Q]``$R--?AQ`0#I9/[__P\?0`!(BX,( ++M`0``N@,```"^`0```$B-/>5O`0!(BPCH,+[\_TB+NP@!``!(C;-H`0``Z)WC ++M_?_I[?[__P\?A```````13'_2(T5,70!`&8/'T0``$&-1P&`/`(`28G'=?.) ++MQDB)?:CHJ-?]_TB+?:B+1;A(C14%=`$`2`-%L&8/'T0```^V"DB#P@%(@\`! ++MB$C_A,EU[KX*````1`%]N.APU_W_BW6X1(GG2`-UL.@1Q/W_2(M]L$@I^(E% ++MN.E*_O__NP1``(#IB/S__^BCNOS_13'VZ8O]__^09BX/'X0``````/,/'OI5 ++M2(GE0513B?-(@^P0A?9U&XL%:<P"`(7`=4%(@\00B=A;05Q=PV8/'T0``$F) ++M_$B)SDB-OV@!``")5>SHV\S]_XM5[$B#Q!")WDR)YUM!7%WIMOO__V8/'T0` ++M`+L$0`"`Z[AF#Q^$``````#S#Q[Z54B)Y4%44XGS2(/L$(7V=1N+!?G+`@"% ++MP'5!2(/$$(G86T%<7<-F#Q]$``!,C6?P2(G.2(''6`$``(E5[.AJS/W_BU7L ++M2(/$$(G>3(GG6T%<7>E%^___#Q]$``"[!$``@.NXD`\?A```````\P\>^E5( ++MB>5!5T%628G.055)B=5!5$F)]%-(B?M(@^Q82(M%&$R+?1!,B46H3(E-F$B) ++M1:!D2(L\)2@```!(B7W(2(T]=\L"`.CBNOS_BP50RP(`B464A<`/A=D#``!( ++M@WM@`'0*@'MH``^$-`,``$B+@P`!``!(A<`/A$(#``!(BSCH>+G\_TB+DP`! ++M``!(A=(/A"H#``!(BS*_"@```$B)58CHU[G\_TB+58B^`0```$B-/1]Y`0!( ++MBPJZ+0```.C*N_S_3(GJ3(GQ3(GF2(N[``$``.AU\/__NAP```!(BX,``0`` ++MO@$```!(C3V8;P$`2(L(Z)6[_/](BU682(MUJ$R)^4B+NP`!``#H/O#__TR+ ++MJP`!``!-A>UT&DF+30"Z`@```+X!````2(T]=6\!`.A8N_S_3(L]@7P!`$R- ++M)3K-`@!,C76P387M="-)BTT`ND,```"^`0```$B-/:1X`0#H)[O\_TF+?0#H ++MCKC\_[\$````2,=%L`````#HS+7\_TR)?;A(B46PQ@``ZQH/'X``````2(MU ++ML(U*`8@$%HG(Q@0&`(E-N$F+/"3HO+G\_X/X_W0GA,`/A`\!```\"G0;BU6X ++M.56\=<M,B?>)1:CH6,+]_XM5N(M%J.NX28L\).B'NOS_2(M]L(7`#X6)`@`` ++MBT6X2(G"2(U$!_^)T872#X0X`0``9@\?1```#[8P1(U&]T&`^`%V"D"`_B`/ ++MA5D!``!(@^@!@^D!=>")R,8$!P!(BWVPB4VX#[8'C5#W@/H!=@0\('562(GX ++M9F8N#Q^$``````!F#Q]$```/ME`!2(/``8UR]T"`_@%V[X#Z('3J28G`22GX ++M.?AT(HU1`42)QDR)1:A$*<)(`?[H^[C\_XM-N$R+1:A$*<&)3;A(BWVPA<D/ ++MA+(```"#^0%T94B%_P^$CO[__^COM_S_Z83^__]F+@\?A```````2(M]L$B% ++M_W0%Z-*W_/^[!4``@$B-/=;(`@#HX;7\_TB+1<AD2"L$)2@````/A:X!``!( ++M@\18B=A;05Q!74%>05]=PP\?1```#[8'C5"_@/H9#X:C````@^AA/!AWCDB- ++M%:.)`0`/ML!(8P2"2`'0/O_@#[8'C5#W@/H!#X85`0``/"`/A`T!```/'X`` ++M````28L\).CWM_S_A<`/A;D```"+3;A(BWVPZ3'___\/'P`YT0^%J/[__P^V ++M!XU0]X#Z`0^&M?[__SP@#X2M_O__Z0K___](C7LHO@$```#H;O;__TB+@P`! ++M``!(A<`/A;[\__]%,>WI;OW__X#Z&`^'Z?[__TB-#6*)`0`/MM)(8P212`'( ++M/O_@Z,2V_/^X!````$B+3:")`4B+@P`!``!(A<!T%DB+,+\*````Z'"V_/^` ++MNS<!````=52+!87'`@"%P'45,=OIN?[__TB+?;!(A?]T!>AXMOS_NP1``(#I ++MH?[__^AIMOS_N`,```#KH^A=MOS_N`(```#KE^A1MOS_N`$```#KBS')Z=_] ++M__](BX,``0``2(LXZ(2U_/_KF\=%E`<```!(A?\/A%#^___H';;\_XM%E(/X ++M!@^'/_[__TB-%?J(`0!(8P2"2`'0/O_@Z/NT_/\QP.DU____\P\>^DB)P^G. ++MW?S_#Q^$``````#S#Q[Z54B)Y4%63(TUW\8"`$%5051)B?132(G[3(GWZ#RV ++M_/^+%:K&`@"%T@^%S@```+@!````\P]OB[`!``!(@WM@`&9(#V[`9@]LP&8/ ++MU,$/$8.P`0``=`J`>V@`#X2$````2(N#``$``$B%P'0(2(LXZ+BT_/],BZL( ++M`0``387M=$%)BTT`N@<```"^`0```$B-/1IK`0#H(K?\_TR)YDR)[^B7V_W_ ++MOPH```!(BS#H^K3\_TB+@P@!``!(BSCH:[3\_XL%"<8"`(7`=3$QVTR)]^@G ++ML_S_B=A;05Q!74%>7<,/'T``2(U[*+X!````Z%KT___I:?___P\?1```NP1` ++M`(#KRI`/'X0``````/,/'OI52(GE059!54&)U4%428GT4TB)^TB!QU@!``#H ++M/,;]_XL5FL4"`,:#-`$```&%T@^%]P```#'`2(.#>`$```%,B[,``0``9HF# ++M-0$``$B+0V!(QX.X`0```````$B%P`^$EP```(![:``/A8T```!,.?`/A)0` ++M``!-A?9T6DF+-K\*````Z!*T_/]%A.U(C04S:@$`28LV2(T].VH!`$@/1?CH ++M1;/\_TB+NP`!``!,B>;HEMS]_TB+@P`!``"_"@```$B+,.C2L_S_2(-[8`!T ++M%H![:`!U$$B->T!(C34,:@$`Z'6^_?\QP%M!7$%=05Y=PV8N#Q^$``````!- ++MA?8/A7C____KX`\?1```2(U[*#'VZ"7S__],B[,``0``387V#X56____ZZ$/ ++M'P"X!$``@.NV9@\?A```````\P\>^DB#[PCIL_[__Y!FD/,/'OI52(GE0513 ++M2(M'8$B)^TR+IP`!``!(A<!T!H!_:`!T7$V%Y'0_28LT)+\*````Z!FS_/]) ++MBPPDNA,```"^`0```$B-/5MI`0#H#[7\_TF+-"2_"@```.CQLOS_@+LW`0`` ++M`'4XBP4&Q`(`A<!U1C'`6T%<7<,/'X``````23G$=9](C7\H,?;H8/+__TR+ ++MHP`!``#KBP\?@`````!(BX,``0``2(LXZ"&R_/_KMP\?@`````"X!$``@.NU ++MD/,/'OI(@^\(Z3/___^09I#S#Q[Z54B)Y4%6055,C2VMPP(`05132(G[3(GO ++M2(/L4&1,BR0E*````$R)9=A!B?3H^[+\_TB#>V``=`J`>V@`#X1J`0``2(N# ++M``$``$B%P'0(2(LXZ*:Q_/]%A>0/A94```!(@[NX`0````^$=P$``$B+@P`! ++M``!(@X.0`0```4B%P'0T2(LPOPH```#H[K'\_TB#N[@!````#X7``0``2(N# ++M``$``$B%P'0-@+LW`0````^%EP$``(L%Y<("`(7`#X79`@``13'D3(GOZ/ZO ++M_/](BT789$@K!"4H````#X7&`@``2(/$4$2)X%M!7$%=05Y=PP\?`$&!_`1` ++M`(!TR4&!_!P``(ATP$R+LP@!``!(@X.0`0```4V%]G2;28LVOPH```#H5;'\ ++M_TF+#KH'````O@$```!(C3U$9P$`Z$RS_/],B[,(`0``08'\#@`'@`^$&`(` ++M`$B-?9!$B>;HW.G]_TB+=9!,B??HH-?]_TB+?9!(A?]T!>@RL?S_2(N#"`$` ++M`+\*````2(LPZ.ZP_/](BX,(`0``2(LXZ%^P_/_I$____V8N#Q^$``````!( ++MC7LHO@$```#H8O#__TB+0T#'0T@`````Q@``2(M#4,=#6`````#'``````#I ++M9/[__V8/'T0``("[-0$````/A7S^__^`NS8!````#X1>`0``2(.#F`$```%, ++MBZ,``0``387D#X2?_O__28L,)+H0````O@$```!(C3V\9@$`Z%RR_/])BS0D ++MOPH```#H/K#\_^E9_O__9@\?A```````2(LXZ*BO_/_I7/[__P\?`$R+HP`! ++M``"^`0```+H2````2(T]A&8!`$F+#"3H#[+\_TB+B[@!```Q]DB-?<!)N<W, ++MS,S,S,S,2(G(2,'H(`^$ZP```&9F+@\?A```````9F8N#Q^$``````!F9BX/ ++M'X0``````&9F+@\?A```````9F8N#Q^$```````/'T``2(G(2(/&`4GWX4B) ++MR$C!Z@-,C02230'`3"G`@\`PB`0W2(G(2(G12(/X8W?3@\$P2(T$-TB-5:&( ++M3:`/'T0```^V"$B#Z`%(@\(!B$K_2#G'=>W&1#6A`$R-=:!)BS0D3(GWZ(BN ++M_/])BS0DOPH```#H*J_\_^E%_?__#Q]$``!(@X.``0```>F=_O__#Q\`28L. ++MNA\```"^`0```$B-/<QN`0#H!['\_^GP_?__9I!,C76@B<],B?;H8K?]_^N< ++M0;P$0`"`Z1_]___H`*[\__,/'OI(B</I\-;\__,/'OI(B</I\M;\_P\?A``` ++M````\P\>^DB#[PCI(_S__Y!FD/,/'OI(@W]``'0E@'](`'4?54B#QPB^`0`` ++M`$B)Y>@=[O__,<!=PV8/'X0``````#'`PY!F9BX/'X0``````)#S#Q[Z54B) ++MY4%7059!54%44TB![-@```!$BS5EOP(`9$B+!"4H````2(E%R#'`2,<&```` ++M`$6%]@^%D@,```^VA_H```!(B?M)B?6(A2____^$P'1S2(N[``$``$B%_P^$ ++M60,``(L/2(GXA<ET%V:0BU`$2(/`!(72=?5(*?A(P?@"08G&1(GVZ/.S_?]) ++MB44`2(7`#X0L`P``,<!(BU7(9$@K%"4H````#X4_`P``2('$V````%M!7$%= ++M05Y!7UW##Q^``````$B#?T``=`J`?T@`#X0G`@``3(N[X````$B-@P`!``!( ++MB848____387_="%)BP^Z)0```+X!````2(T]26T!`.ADK_S_28L_Z,RL_/]( ++MBSU%P0(`Z&"L_/](C8U`____9@_OP$B)SHG'#RE%H`\IA6#___^)A13___]( ++MB8T(____#RF%0/___P\IA5#___\/$85L____#RE%@`\I19`/$46LZ#*L_/_& ++MA2[___\`A<`/A+L!``!(BX,``0``OP0```#'@P@!````````3(TEQL`"`,<` ++M`````$C'A3#___\`````Z("I_/](BQ7I;P$`2(F%,/___\8``$B-A3#___]( ++MB94X____2(F%(/___^LA#Q^$``````!(B[4P____C4H!B`06B<C&!`8`B8TX ++M____28L\).A.K?S_@_C_=#F$P'0\/`IT,8N5./___SF5//___W7#2(N](/__ ++M_XF%*/___^CAM?W_BY4X____BX4H____ZZ,/'P#&A2____\!BQ4;P`(`@_K_ ++M#X0Z`0``@?KI_0``#X0^`0``2(N]&/___TB-M3#____HZ\G]_TB+O3#___]( ++MA?]T!>@*K/S_@+TN____``^%A0```$V%_W0528LWOPH```#HNZO\_TF+/^@S ++MJ_S_@+TO____``^$(`$``$B+/9^_`@#HBJW\_X7`#X46`0``2(L]B[\"`.AF ++MK/S_A<!T#HNS"`$``(7V#X3D````QH/Z`````>E=_?__#Q^$``````!(C7\( ++MO@$```#H\NK__^G&_?__#Q]$``!(BY4(____B[T4____O@(```#H4:O\_^E? ++M____#Q]``(N]%/___TB-58"^`@```&8/;X5`____#RE%@&8/;X50____@V6, ++M]P\I19!F#V^%8/___P\I1:#S#V^%;/___P\11:SH`*O\_\:%+O___P'I\?W_ ++M_P\?0`"Z`0```.G(_O__9@\?1```2(N5&/___XNU./___TB+O3#____HM]0` ++M`.FW_O__2<=%``````"X#@`'@.G,_/__N`1``(#IPOS__[A7``>`Z;C\__^X ++M!4``@.FN_/__Z)VI_/_S#Q[Z2(G#Z;_2_/^0\P\>^E5(B>5!54F)]4%43(TE ++MBKL"`%-(B?M,B>=(@^P(Z.JJ_/](C7L@3(GNZ,[[__],B>>)P^ATJ/S_2(/$ ++M"(G86T%<05U=P_,/'OI(B</IE]+\_V9F+@\?A```````\P\>^E5(B>5!54F) ++M]4%43(TE*KL"`%-(B?M,B>=(@^P(Z(JJ_/](C7L(3(GNZ&[[__],B>>)P^@4 ++MJ/S_2(/$"(G86T%<05U=P_,/'OI(B</I5M+\_Y!F+@\?A```````\P\>^E4Q ++M]DB)Y5-(B?M(@^P(Z"GI__](B[O(````2(7_=`7HJ*G\_TB+N[@```!(A?]T ++M!>B7J?S_2(N[J````$B%_W0%Z(:I_/](B[N`````2(7_=`7H=:G\_TB+>W!( ++MA?]T!>AGJ?S_2(M[8$B%_W0%Z%FI_/](BWM02(7_=`7H2ZG\_TB+>RA(A?]T ++M!>@]J?S_2(M[&$B%_W042(M=^,GI*JG\_V8N#Q^$``````!(BUWXR<-F+@\? ++MA```````\P\>^E5(C07$2@(`2(GE4TB)^TB#[`A(B0=(B[\``0``2(7_=`7H ++MY:C\_TB->PA(BUWXR>D'____D&8/'T0``/,/'OI52(T%A$H"`$B)Y5-(B?M( ++M@^P(2(D'2(N_``$``$B%_W0%Z*6H_/](C7L(Z,S^__](B=](BUWXOA`!``#) ++MZ6JG_/]F+@\?A```````\P\>^E5(C04<2P(`9D@/;LA(@\!H9D@/;M!(@\`P ++M2(GE4TB)^TB#[`A(B4<@\P]^!2-7`@!F#VS!#Q$'\P]^!1Q7`@!F#VS"#Q%' ++M$$B+OV@!``!(A?]T!>@CJ/S_2(N[6`$``$B%_W0%Z!*H_/](B[M(`0``2(7_ ++M=`7H`:C\_TB+NS@!``!(A?]T!>CPI_S_2(N[(`$``$B-!:))`@!(B4,@2(7_ ++M=`7HU*?\_TB->RA(BUWXR>GV_?__9@\?1```\P\>^E5(C05<2@(`9D@/;LA( ++M@\!H9D@/;M!(@\`P2(GE4TB)^TB#[`A(B4<@\P]^!6-6`@!F#VS!#Q$'\P]^ ++M!5Q6`@!F#VS"#Q%'$$B+OV@!``!(A?]T!>ACI_S_2(N[6`$``$B%_W0%Z%*G ++M_/](B[M(`0``2(7_=`7H0:?\_TB+NS@!``!(A?]T!>@PI_S_2(N[(`$``$B- ++M!>)(`@!(B4,@2(7_=`7H%*?\_TB->RCH._W__TB)WTB+7?B^R`$``,GIV:7\ ++M_V8/'X0``````/,/'OI52(T%C$D"`&9(#V[(2(/`:&9(#V[02(/`,$B)Y5-( ++MB?M(@^P(2(D'\P]^!915`@!F#VS!#Q%'X/,/?@6,50(`9@]LP@\11_!(B[]( ++M`0``2(7_=`7HDZ;\_TB+NS@!``!(A?]T!>B"IOS_2(N[*`$``$B%_W0%Z'&F ++M_/](B[L8`0``2(7_=`7H8*;\_TB+NP`!``!(C0422`(`2(D#2(7_=`7H1:;\ ++M_TB->PA(BUWXR>EG_/__#Q^``````/,/'OI52(T%S$@"`/,/?@7T5`(`9D@/ ++M;LA(@\!H9@]LP69(#V[02(/`,$B)Y4%43(UGX%-(B?L/$4?@\P]^!<U4`@!( ++MB0=F#VS"#Q%'\$B+OT@!``!(A?]T!>C1I?S_2(N[.`$``$B%_W0%Z,"E_/]( ++MB[LH`0``2(7_=`7HKZ7\_TB+NQ@!``!(A?]T!>B>I?S_2(N[``$``$B-!5!' ++M`@!(B0-(A?]T!>B#I?S_2(U[".BJ^___6TR)Y[[(`0``05Q=Z4FD_/^0#Q^$ ++M``````#S#Q[Z54B)Y4%44XN',`$``$2-8/]$B:<P`0``187D=`]$B>!;05Q= ++MPP\?@`````!(C0711P(`2(G[\P]^!?93`@!F2`]NR$B#P&AF#VS!9D@/;M!( ++M@\`P#Q$'\P]^!=U3`@!(B4<@9@]LP@\11Q!(B[]H`0``2(7_=`7HX*3\_TB+ ++MNU@!``!(A?]T!>C/I/S_2(N[2`$``$B%_W0%Z+ZD_/](B[LX`0``2(7_=`7H ++MK:3\_TB+NR`!``!(C05?1@(`2(E#($B%_W0%Z)&D_/](C7LHZ+CZ__](B=^^ ++MR`$``.A;H_S_1(G@6T%<7<,/'P#S#Q[Z54B)Y4%505132(/L"(N'&`$``$2- ++M8/]$B:<8`0``187D=!%(@\0(1(G@6T%<05U=PP\?`$B-!=E&`@!(B?M,C6_H ++M\P]^!?I2`@!F2`]NR$B#P&AF#VS!9D@/;M!(@\`P#Q%'Z/,/?@7@4@(`2(E' ++M"&8/;,(/$4?X2(N_4`$``$B%_W0%Z..C_/](B[M``0``2(7_=`7HTJ/\_TB+ ++MNS`!``!(A?]T!>C!H_S_2(N[(`$``$B%_W0%Z+"C_/](B[L(`0``2(T%8D4" ++M`$B)0PA(A?]T!>B4H_S_2(U[$.B[^?__3(GOOL@!``#H7J+\_TB#Q`A$B>!; ++M05Q!75W#\P\>^E5(B>5!54%44TB#[`B+AR`!``!$C6#_1(FG(`$``$6%Y'01 ++M2(/$"$2)X%M!7$%=7<,/'P!(C07910(`2(G[3(UO\/,/?@7Z40(`9D@/;LA( ++M@\!H9@]LP69(#V[02(/`,`\11_#S#WX%X%$"`$B)1Q!F#VS"#Q$'2(N_6`$` ++M`$B%_W0%Z.2B_/](B[M(`0``2(7_=`7HTZ+\_TB+NS@!``!(A?]T!>C"HOS_ ++M2(N[*`$``$B%_W0%Z+&B_/](B[L0`0``2(T%8T0"`$B)0Q!(A?]T!>B5HOS_ ++M2(U[&.B\^/__3(GOOL@!``#H7Z'\_TB#Q`A$B>!;05Q!75W#D/,/'OI52(GE ++M05=!5D%505132(/L>(M'2&1,BR0E*````$R)9<A)B?R)A7S___^%P`^%X@(` ++M`$&+1"1HA<`/A'T"``!!BT0D($4Q]D$YA"2P````#X2W!```0<=$)%@````` ++M28M$)%#&``!)BW0D"$F+#"1(@_[_#X1S`@``2(7V#X1*`@``2(T$B3'2NR4` ++M``!(C02`2,'@`DCW]DB)P4B)R#'_2(UUL$FYS<S,S,S,S,Q(P>@@#X1$!P`` ++M9F8N#Q^$``````!F9BX/'X0``````&9F+@\?A```````#Q\`2(G(2(/'`4GW ++MX4B)R$C!Z@-,C12230'23"G0@\`PB`0^2(G(2(G12(/X8W?3@\$P2(T$/DB- ++M59&(39`/'T0```^V"$B#Z`%(@\(!B$K_2#G&=>W&1#V1`$R-;9!,B>_H7)[\ ++M_T2->`&)P(A<!9!$B?C&1`60`$&#_P,/AW`$``!!BU0D6$F-7"10B=!!.40D ++M7`^$B0$``$F+3"10C5`!08/'`<8$`2")T,8$`0!!B50D6$&#_P1UTDR)[DB) ++MW^C=@```183V=!-!BX0DT````$$Y1"18#X0U`P``28V\),@```!(B=[HQ:O] ++M_TF+3"002(7)#X4_`@``08MT)"!!BT0D6(7V#X7%`0``08M,)#!-C70D*(7) ++M=`M!.T0D1`^"W`,``$$Y1"1H#X2!`0``,?9,B>?HQ]___TF+1"0X28M\)%!( ++MBS#H99_\_T&`?"1!``^%L04``$F-?"1@2(G>Z$RK_?])BT0D$/-!#V\$)$F- ++M="0828V\)*@```!)B80DH````$$/$80DD````.@>J_W_28V\)+@```!,B?;H ++M3K+]_T&+5"1(A=)T"XN%?/___T&)1"1,2(M%R&1(*P0E*`````^%LP4``$B# ++MQ'A;05Q!74%>05]=PP\?A```````13'VZ9']__\/'X0``````$B%R74;,?^[ ++M)0```$R-;9!,B>[HV*?]_^E/_O__#Q\`2,'I%+M-````Z:']__]FD$B)W^CH ++MJ/W_08M$)%CI9?[__V8/'T0``#'V2(U]@.@=H/S_A<`/A74"``!(BU6(:76` ++MZ`,``$BXS_=3XZ6;Q"!(P>H#2/?B2,'J!(T$%HF%?/___T&+?"1HA?\/A%__ ++M__]!BT0D2(7`#X35_/__BY5\____02M4)$PYP@^#POS__^D0____9BX/'X0` ++M`````$F+="1028M\)&#H$9_\_X7`#X2=_O__Z6/^__\/'T``03E$)%P/A$P$ ++M``!)BTPD4(U0`4B)W\8$`2")T,8$`0!!BW0D($&)5"18Z#&Z_?])BW0D&$&+ ++M3"18,<!)`TPD4`^V%`:(%`%(@\`!A-)U\4&+1"0@00-$)%A!B40D6.G8_?__ ++M#Q]$``!(B<@Q_TB-=;!)N<W,S,S,S,S,2,'H(`^$BP$``&9F+@\?A``````` ++M9F8N#Q^$``````!F9BX/'X0``````&8N#Q^$``````!(B<A(@\<!2??A2(G( ++M2,'J`TR-%))-`=),*="#P#"(!#Y(B<A(B=%(@_AC=].#P3!(C00^2(U5D8A- ++MD`\?1```#[8(2(/H`4B#P@&(2O](.<9U[<9$/9$`08M$)%A!.40D7`^$40,` ++M`$F+3"10C5`!3(GN2(G?Q@0!((G0Q@0!`$&)5"18Z)9]``#IZOS__Y!)B[0D ++MR````$F+?"10Z*Z=_/^%P`^$C/W__^FL_/__D$F+="0828N\)*@```#HCIW\ ++M_X7`#X4O^___08M$)#!!.80DP`````^%'/O__TF+="0H28N\)+@```#H`9W\ ++M_X7`#X4"^___28M$)!!).80DH`````^%[_K__TF+1"0(0;X!````23F$))@` ++M```/A=;Z__])BP0D23F$))`````/A<3Z___I_/S__V8/'T0``#'_Z(F;_/]I ++MP.@#``")A7S____IG/W__P\?A```````3(GNB<_H]J3]_^GI_O__D$F-7"10 ++MZ;[[__]F#Q]$``!!.40D7`^$2@(``$F+3"10C5`!38UT)"A-C:PD@````$R) ++M]L8$`2")T$R)[\8$`0!!B50D6.BVKOW_38M\)#A,B>Y,B?_HAKC]_T&+5PQ) ++MC40D<$B)A6C___^#^O\/A.@!``"!^NG]```/A/@!``!(B[UH____2(U-@$R) ++M[NC^Q@``08MT)'A!BT0D6`'P03E$)$0/@PH!``!!BTPD,.LY@?KI_0``#X0\ ++M`0``2(N]:/___TB-38!,B>[HP<8``$&+="1X08M$)%@!\$$Y1"1$#X.R```` ++M1(GYA<D/A*P```!!B<FX`0```$&)STR)]D'!Z0.#^0=,B>^)C7C___]$#T;( ++M12G/1(F-</___^C>K?W_BXUX____1(G^3(GO08N4)(@```!$BXUP____T>Z) ++MM7#___\IRD0!RN@AL/W_B[5P____2(T5)'$!`$R)[^A,K_W_28M$)#A,B>Y( ++MB<=(B85P____Z&6W_?](BX5P____BU`,@_K_#X4B____N@$```#I)/___T6% ++M_W460<=$)'@`````28M$)'#&``!!BW0D>$B)W^B%MOW_28MT)'!!BTPD6#'` ++M20-,)%`/'T``#[84!H@4`4B#P`&$TG7Q08M$)'A!`T0D6$&)1"18Z4'Z__\/ ++M'T0``$B+M6C___^Z``(``$R)[^B$O/W_Z;[^__\/'X``````28M$)#A(BSCH ++MRYG\_^D]^O__9@\?1```B<_IU?K__TB)W^CAH_W_08M$)%CIHOO__TB)W^C/ ++MH_W_08M$)%CIG?S__[H!````Z1K^__](B=_HLZ/]_T&+1"18Z:3]__^Z``(` ++M`$B)QDR)[^@)O/W_Z0;^___H#YG\_Y!F9BX/'X0```````\?`/,/'OI52(GE ++M05=!5D%508G-051)B?Q32(GS2(/L>(F5</___TR)A7C___]D3(LT)2@```!, ++MB77(3(TUT:H"`$R)]^@YFOS_28V\)&@!``!(B=[H.:O]_T&#_0(/A'\"```/ ++MCP$!``"X`0```$R-/6A0`0!%A>UT'K@"````3(T]W4\!`$&#_0%U#+@!```` ++M3(T]&U8!`#'203F$),0!```/@],```!)@WPD8`!T>T&`?"1H`'5S08N,),`! ++M``"%R71=0<=$)%@`````28M$)%#'``````!)BT0D0$''1"1(`````,8``$&# ++MO"3``0```7<$A-)U'TF-?"1`3(G^Z(VC_?](A=MT#4F-?"102(G>Z'NJ_?]! ++M#[9$)&B$P'4*28U\)"CH9_;__XL%Q:D"`(7`#X49!```,=M,B??HWY;\_TB+ ++M1<AD2"L$)2@````/A4`$``!(@\1XB=A;05Q!74%>05]=PP\?`$R-/?9.`0!! ++M@_T##X47`P``28N$)``!```QTDB%P`^$&O___TF+5"1@2(72=!%!@'PD:`%T ++M"4@YT`^$>0,``$F-A"0X`0``3(G^2(G'28G%Z-.B_?](A=L/A#(!``!!BX0D ++M0`$``$$YA"1$`0``#X1<`P``28N,)#@!``"-4`'&!`$@B=#&!`$`28N$)``! ++M``!!B90D0`$``$F+O"0X`0``2(LPZ`^7_/])BX0D2`$``$V-A"1(`0``2(G> ++M0<>$)%`!````````3(G'QP``````3(F%:/___^A+J?W_3(N%:/___TF+A"0` ++M`0``3(G&2(G'3(F%8/___TB)A6C____HT[/]_XNU</___TB+A6C___],BX5@ ++M____A?8/A+$```!!BY0D4`$``(72#X2A````28N,)$@!``")UDB-/+4````` ++M@WRQ_"\/A(0```!!.Y0D5`$```^$E@(``(UR`<<$.2\```#'!+$`````08FT ++M)%`!``#K6Y"X`@```$R-/7--`0#II?W__P\?@`````!)BX0D``$``$F+O"0X ++M`0``2(LPZ!"6_/])BX0D2`$``$''A"10`0```````$V-A"1(`0``QP`````` ++M28N$)``!``"+4`R#^O\/A'H!``"!^NG]```/A*8!``!(C4V/3(G&3(GO2(F% ++M</___^B(P0``2(N%</___TB+,$F+O"0X`0``Z*&5_/](@[UX____``^$V0`` ++M`$V+K"0``0``O@$```"Z`@```$B-/<%,`0!)BTT`Z#&8_/](BX5X____,?9( ++MC7VP2;C-S,S,S,S,S$B+"$B)R$C!Z"`/A/H```!F9BX/'X0``````&9F+@\? ++MA```````#Q]``$B)R$B#Q@%)]^!(B<A(P>H#3(T4DDT!TDPIT(/`,(@$-TB) ++MR$B)T4B#^&-WTX/!,$B-!#=(C561B$V0#Q]$```/M@A(@^@!2(/"`8A*_T@Y ++MQW7MQD0UD0!(C56028MU`$B)U^C(E/S_28MU`+\^````Z&J5_/])BX0D``$` ++M`+\*````2(LPZ%65_/]!@+PD-P$```!U(KH!````Z1;\__^X`@```$R-/<5+ ++M`0#I]?O__P\?@`````!)BX0D``$``$B+..B8E/S_Z\QF#Q]$``"Z`0```.F( ++M_O__9@\?1```2(U5D(G/2(G62(F5>/___^AKG?W_2(N5>/___^E;____#Q^` ++M`````+H``@``3(GN3(G'2(F%</___^CAMOW_2(N%</___^E4_O__#Q]$``!) ++MC7PD*#'VZ$34___I=OS__P\?@`````!,B>_H0)[]_T&+A"1``0``Z8_\__\/ ++M'P"[!$``@.G?^___3(G'3(F%</___^A'H/W_08N\)%`!``!)BXPD2`$``$F+ ++MA"0``0``3(N%</___TB)^DC!YP+I,/W__^AGD_S_D&8/'T0``/,/'OI52(GE ++M055,C2U?I0(`051)B?132(G[3(GO2(/L".BZE/S_2(-[8`!T!H![:`!T)8L% ++M&Z4"`(7`=3,QVTR)[^@YDOS_2(/$"(G86T%<05U=PP\?0`!,B6,P2(U[*.B+ ++M\?__Z\QF#Q^$``````"[!$``@.O(D`\?A```````\P\>^E5(B>5!54R-+=^D ++M`@!!5$F)]%-(B?M,B>](@^P(Z#J4_/](@WM@`'0<@'MH`'46387D=`A)BP0D ++M2(E#*$B->RCH)_'__XL%A:0"`(7`=1TQVTR)[^BCD?S_2(/$"(G86T%<05U= ++MPV8/'T0``+L$0`"`Z]Z0#Q^$``````#S#Q[Z@+_Y`````'532(-_0`!T3(!_ ++M2`!U1E5(B>5(A?9T34B+!H"_^`````!(B4<8=0A(A=)T!TB+`DB)1PA(@\<( ++MZ*CP__^+%0:D`@"%TG4T,<!=PV8N#Q^$``````"+!>ZC`@"%P'46,<###Q\` ++M2(72=,J`O_@`````=<'KN+@$0`"`P[@$0`"`7<.09I#S#Q[Z54B-!0PX`@!F ++M2`]NR$B)Y4%7059!54%44TB)^TB3:#H ++MNJ+]_TB+1:!(B858____28L$)(MX&$B%_P^%3P$``$&`?"0>``^$DP```$F+ ++M1"0@2(F%0/___T&+1"0(B84X____A<`/B)(```!(QX50____`````+\$```` ++MZ&^-_/^+M3C___](BXU0____2(F%8/___TV+="0X2,=%@`````"),$ACQL8$ ++M`0%-A?8/A0@)``!!@'PD&0!(QX.(``````````^$HP@``,>%:/___P$```!! ++MO0$```#I*P,``$&+1"0(B84X____A<`/B:X(``!(QX5`____``"``$V+="0X ++M387V#X0Q#@``2,>%4/___P````!(QT6``````$4Q[4C'A6#___\`````QX5H ++M____`````.F0"```9@]OE2#___]-C77X3(GW00\15?CH*YW^_TF+O0@"``!( ++MA?]T!>CJC_S_28U]0.AAI_[_28M].$B%_W0&2(L'_U`0OB@"``!,B??HI8[\ ++M_^E[_?__Z%N,_/]-BS0D2(F%4/___T&+5AB%T@^$/P\``$B+O5#___\Q]NA& ++MC?S_08!\)!X`2,>%0/___P``@`!T#$F+1"0@2(F%0/___T&+1"0(B84X____ ++MA<`/B8O^___'A4S___\`````13'_13'M2,>%8/___P````#'A6C___\````` ++M9F8N#Q^$```````/'T``28M&$(![)P!.BS3X=0A!@'PD&0!U&$F+?AA(C35Y ++M10$`Z!J8_?^$P`^%(@$``$F+1"0P,<F+4`A(BSCK'`\?`(T$"M'HB<9$.SRW ++M#X3_````#XV1!P``B<(YRG7C2(N%6/___TB-=:!,B?=$B;TP____2(E%H.CE ++M/___A<`/B,T'``"+A6C___]$C7`!BX5,____1#GH=6$]_O__?P^'G;?\_XN- ++M3/___[K___]_B<@IRL'H`H/``3G0#T?"`<B)A4S___](P>`"2(G'2(F%,/__ ++M_^CXBOS_28G!187M#X5F"```2(.]8/___P`/A7@(``!,B8U@____BX5H____ ++M2(N]8/___T2)ZD&#Q0%(C0R'*<)$B?!(B<Y(P>("2(T\ATB)C6C____HXX[\ ++M_TB+C6C___](BX50____1(FU:/___T2).4+&!#@!9@\?1```38LT)$F#QP%% ++M.WX8#X*>_O__38MT)#A-A?8/A-T(``"+A6C___](QT6``````$R)]X7`00]$ ++MQ3'),=(Q]HF%:/___TF+!O]0($&)QX7`#X7,!0``2(UU@$R)]^@P9O[_08G' ++MA<`/A;4%``!(BT6`08!\)!D`2(F#B`````^$.08``(NU./___X7V1`])K6C_ ++M__]%A>T/A"`&``!$B>B#O6C___\!2(F%./___P^4A3#___]%,?9(BX5@____ ++M28M\)$A"BP2PB4-82(7_=!=(BP=(C56`,?;_4!A!B<>%P`^%E0,``$F+?"0X ++M2(7_=!=(BP<QR3'2,?;_4"!!B<>%P`^%=`,``$F+!"2+4UA(BT`02(L$T/]0 ++M"$F)Q4B%P`^$A@4``$B+`$R)[_]0"$F+="0X28M%`$B%]@^$Z04``$B+C4#_ ++M__](C7VP2(F]:/___TB)^DR)[TB)3;!)BTPD2/]0&(F%3/___\:#@`````"^ ++M1P```$R)[TB+@X@```!(QT-X`````$B+E6C___](B8.0````2(N#L````$C' ++M0W``````QX.8`````````$C'@YP`````````2,>#J`````````#'@[@````` ++M````QP``````2(N#P````,>#R`````````#'``````!(QT6P`````$F+10!( ++MQT6X`````/]00$&)QX7`#X7#!```#[=%L,:#FP````!F@_@3#X3&!```9H/X ++M%0^$O`0``&:%P`^%S0L``#'`3(N]:/___XF#G````$R)_^A$T/W_3(GZOD@` ++M``!,B>](QT6P`````$F+10!(QT6X`````/]00$&)QX7`#X57!```#[=%L&:# ++M^!,/A/D$``!F@_@5#X3O!```9H7`#X58"P``,<!,B[UH____B8.@````3(G_ ++MZ-_/_?],B?J^-P```$R)[TC'1;``````28M%`$C'1;@`````_U!`08G'A<`/ ++MA?(#```/MT6P9H7`=!U(C35R7`$`9H/X"'4$2(MUN$B-N[````#H;)S]_TR+ ++MO6C___],B?_H?<_]_TR)^KY)````3(GO2,=%L`````!)BT4`2,=%N`````#_ ++M4$!!B<>%P`^%D`,```^W1;!FA<!T'4B--4A<`0!F@_@(=01(BW6X2(V[P``` ++M`.@*G/W_2(N]:/___^@>S_W_BXU,____A<D/A+D$``"`NYL`````#X0&!@`` ++MBX.<````@^`!#X2=!```@[U,____`0^%_P<```\?@`````!!B<>X`0```$&# ++M]P%-A?8/A=L"``"`O3#___\`#X3.`@``#[:+F@```,'@"(M36$B-L[````!( ++MC;OH````"<@/MHN9````B9.D````P>`(B9/<````"<@/MHN8````P>`("<B) ++M@]````!(BX.<````2(F#U````$B+@Z@```!(B8/@````Z`:<_?](C;/````` ++M2(V[^````.CSF_W_08!\)!H!#X1'`@``183_#X0^`@``0;\!````#Q^$```` ++M``!)BT4`3(GO_U`02(.]4/___P`/A9@!``!(@[U@____`'0,2(N]8/___^A" ++MB?S_2(.]6/___P!T#$B+O5C____H+(G\_TB+?9!(A?]T!>@>B?S_187_#X4+ ++M`0``2(,[``^$`0$``$R+<Q!-A?9T=4F+!DB-%>BB_O](BT`02#G0#X6?!@`` ++M08-N"`%U3V8/;YT@____38UN^$R)[T$/$5[XZ/N5_O])B[X(`@``2(7_=`7H ++MNHC\_TF-?D#H,:#^_TF+?CA(A?]T!DB+!_]0$+XH`@``3(GOZ'6'_/](QT,0 ++M`````$B+>QA(A?]T#DB+!_]0$$C'0Q@`````2(L[2(U3$$B--1A7`0!(BP?_ ++M$$B+.TB-4QA(C34E7@$`2(L'_Q!(BSM(C5,AOD(```#HWSO__X7`=2Y(BSM( ++MC5,COD$```#HRCO__X7`=1E(BSM(C5,DOC\```#HM3O__X7`#X3N`P``08G' ++M2(M%R&1(*P0E*`````^%C0<``$B!Q-@```!$B?A;05Q!74%>05]=PT4Q_TB# ++M.P!!#Y3'2(.]4/___P`/A'O^__]F#Q^$``````!(B[U0____Z+2'_/_I5_[_ ++M_TC'A5#___\`````2,>%0/___P``@`#IN_;__\>%:/___P$```!!O0$```!) ++MBP8QR3'2,?9,B??_4"!!B<>%P`^%!/[__TB-=8!,B??H#F#^_T&)QX7`#X3> ++M^?__Z>C]__]F#Q]$``"-2`'I:?C__TF+10!,B>__4!!)@\8!3#FU./___P^% ++M^_G__T4Q_TB#.P!!#Y3'Z:_]__\/'T0``$B+O6C____HM,O]_^F/_?__#Q^` ++M`````,:#FP````&+1;CI0/O__V8/'X0``````$0YK4S___]T?T2)Z$B-%(4` ++M````2(N%8/___T&#Q0%$B3P0Z=CX__](C4VP3(GO2,=%L`````!(C35B7`$` ++M2(F-:/___TB)RO\02(M]L$B%_P^$JP0``$B+!TF+="1`_U`82(M]L(F%3/__ ++M_TB%_P^$]/G__TB+!_]0$.GI^?__BT6XZ13[__^!O4S____^__]_#X<_K_S_ ++MBXU,____NO___W^)R"G*P>@"@\`!.=`/1\)$C30!1(FU3/___TG!Y@),B??H ++MMX+\_TF)P42)Z$B-%(4`````187M#X5C`0``2(.]8/___P`/A7@!``!,B8U@ ++M____Z1K___](BXTP____2(NU8/___T2)ZDB)QTC!X@+HZ8;\_TF)P4B+O6#_ ++M__],B8TP____Z+.%_/],BXTP____Z6GW__](QT6P`````$F+10"^+````$R) ++M[\:#@`````!(BY5H____2,=%N`````#_4$!!B<>%P`^%7_[__V:#?;`5#X<N ++M`0``#[=%L$B-%658`0!(8P2"2`'0/O_@2(M%N$B)0WC&@X`````!2(N]:/__ ++M_^CDR?W_2,=%L`````!)BT4`3(GO2,=%N`````!(BY5H____OB0```#_4$!! ++MB<>%P`^%\_W__V:#?;`5#X?"````#[=%L$B-%5%8`0!(8P2"2`'0/O_@@[UH ++M____`0^%[00``$&`?"09`$C'18``````2,>#B``````````/A3ST__]%,?]( ++M@SL`00^4Q^GG_/__3(GO_]#I6/+__TB+M6#___],B<],B?%(B94P____Z*2% ++M_/](BY4P____28G!2(N]8/___TB)E0C___],B8TP____Z&"$_/](BY4(____ ++M3(N-,/___^E;_O__@[U,____`0^%"`(``#'`13'_Z1+Z__](B[UH____0;\% ++M0`"`Z-3(_?_IK_K__TB+.TB-4R6^0````.BN-___A<`/A?G[__](BSM(C5,F ++MOEL```#HE3?__X7`#X7@^___2(L[2(U3(KY=````Z'PW__^%P`^%Q_O__TB+ ++MM1C___],C76`3(GWZ%&V_?^_$````.A7@/S_28G%2(L%O48!`$B+58!!QT4` ++M`````$B)A7C___^+18B%P`^$WP$``$B-!(+K"4@YP@^$T`$``$B#Z`2#."YU ++M[D@IT$C!^`*%P`^(N`$``(/``4B-O7#___],B:UP____2)A(C32"Z-R4_?]( ++MBT-(QT-0`````$R+K7#____'``````!(8T-8A<`/B94!``#I/@(```\?`(M% ++MN.G-_?__2&-%N.G$_?__2(M%N$B+O6C___](B4-PZ*O'_?](BY.(````2(M# ++M<$B)T4@IP8"[@`````!(B8N0````="A(BTMX2`'(2#G0#X.B````2"G"2(F+ ++MD````,:#F`````%(B9.H````@[U,____`75G@+N;``````^$7/[__XN#G``` ++M`(/@`>E>^/__BT6X2(N]:/___TB)0W#H*\?]_^E[____2&-%N$B+O6C___]( ++MB4-PZ!+'_?_I8O___TB+O6C____H`<?]_^E1____3(GW_]#IK?G__XN53/__ ++M_X72=&5$B[U,____Z;SX__\/'T``2#G"#X-M____QH.9`````>EA____2(N] ++M6/___TB%_W0>Z`*"_/](BWV02(7_=`7H]('\_T&_`4``@.G?^?__2(M]D$B% ++M_W7GZ^I!OP%``(#I8_C__TF+10!,B>__4`A(BSM(A?]T!DB+!_]0$$R)*T4Q ++M_^E`^/__2(M#2,=#4`````#'``````!(8T-8A<`/B,H```!)BQ0D2(M2$$R+ ++M),)!BT0D,(7`#X6[````OQ````!(QT6@`````.@(?OS_2(LU<40!`,<````` ++M`+\0````2(E%H$B)=:CHZ7W\_TF)Q$R)]DB)1;!(C4V@3(NU$/___T''!"0` ++M````2(U5L$B+!3%$`0!,B?=(B46XZ+5R__](C7M(3(GVZ&F3_?](BWV02(7_ ++M=`7H^X#\_TR)Y^CS@/S_2(M]H$B%_W0%Z.6`_/]-A>UU%TB+?8!(A?\/A,GX ++M___HSH#\_^F_^/__3(GOZ,&`_/_KWTB-M7#___],B>=,B:UP____Z-DQ__\Q ++MTDR)]H7`#TC"28M4)"A(F$B+%,)(C46P2(G'28G&2(U*$.@A<O__2(U[2$R) ++M]NC5DOW_2(M]L$B%_W6"ZX7H97_\_T&`?"0>``^$@````$F+1"0@2(F%0/__ ++M_T&+1"0(B84X____A<`/B6'O__]-BW0D.$V%]@^%\^___TB+O5#____H((#\ ++M_TB#O5C___\`#X0I_O__2(N]6/___T&_`4``@.@`@/S_2(M]D$B%_P^%T/;_ ++M_^GZ_?__Z0NJ_/]!OP%``(#I'OC__^G1J?S_2,>%0/___P``@`!!BT0D"(F% ++M./___X7`>(7IX>[___,/'OI(B</I2*C\__,/'OI(B</I1:C\__,/'OI(B</I ++M0:C\__,/'OI(B</I0ZC\__,/'OI(B</IPJG\__,/'OKIG:C\__,/'OI(B</I ++MS*C\__,/'OI(B</I[JC\__,/'OI(B</I]JC\__,/'OI(B<?I$:G\__,/'OI( ++MB</IZJC\__,/'OI(B</I>JC\__,/'OI(B</I#JG\__,/'OI(B</INJC\__,/ ++M'OI(B</I'ZG\__,/'OI(B</IPZ?\_Y!F9BX/'X0``````)#S#Q[Z2(M'6,=' ++M0`````!(QT=$`````$C'1U``````QT=@`````,<``````$B+1VC'1W`````` ++MQP``````2(M',,='.`````#'``````"+1PB%P'1#54B)Y4%44TB)^Y!(BQ-, ++MBV3"^$V%Y'053(GGZ)M#__^^$`$``$R)Y^A.??S_BT,(@^@!B4,(==-;05Q= ++MPV8/'T0``,.09@\?1```\P\>^E5(B>5!5$F)]%-(B?M(BSY(B3M(A?]T!DB+ ++M!_]0"$F+?"0(2(E["$B%_W0&2(L'_U`(28M\)!!(B7L02(7_=!M(BP=(C17R ++M<O[_2(M`"$@YT`^%50$``(-'"`%)BWPD&$B)>QA(A?]T!DB+!_]0"$F+1"0@ ++M28UT)"A(C7LH2(E#(.AVC/W_28UT)#A(C7LXZ&B,_?])C70D2$B->TCH6HS] ++M_TF+1"1828VT)+````#S00]OA"2(````2(V[L````$B)0UA)BT0D8`\1@X@` ++M``!(B4-@08M$)&B)0VA)BT0D<$B)0W!)BT0D>$B)0WA!#[:$)(````"(@X`` ++M``!)BY0DF````$F+A"2H````2(F3F````$F+E"2@````2(F#J````$B)DZ`` ++M``#HS8O]_TF-M"3`````2(V[P````.BYB_W_28N4)-````!)BX0DX````$F- ++MM"3H````2(V[Z````$B)D]````!)BY0DV````$B)@^````!(B9/8````Z'B+ ++M_?])C;0D^````$B-N_@```#H9(O]_TF+A"0(`0``2(F#"`$``%M!7%W#_]#I ++MJ/[___,/'OI)B<3I,*?\__,/'OI)B<3IW:;\__,/'OI)B<3IXJ;\__,/'OI) ++MB<3I-Z?\__,/'OI)B<3IUJ;\__,/'OI)B<3IV*;\__,/'OI)B<3IVJ;\_P\? ++M1```54B)Y4%5051,C66P4TB#[#AD2(L<)2@```!(B5W82(G[3(GGZ#>)_?]( ++MBTVPBQ&#^@IT:TB)R.L3#Q^``````(M0!$B#P`2#^@IT2(72=?!,B>9(B=_H ++M9:7]_TB+,[\*````Z*A[_/](BWVP2(7_=`7HRGO\_TB+1=AD2"L$)2@````/ ++MA9D!``!(@\0X6T%<05U=PT@IR$C!^`*%P'BQ2(LSOPH```#H9'O\_TB+,[][ ++M````Z%=[_/](BS._"@```.A*>_S_2(M]L(L'2(UW!(7`#X1#`0``2(GZ2(GY ++MZR-F9BX/'X0```````\?1```2(GQB0*+`4B#P@1(C7$$A<!T'8/X#77H@WD$ ++M"G7B2(/!"+@*````Z]H/'X``````2"GZ2,'Z`HG0B=)(C3R7B46XQP<````` ++MOQ````!(QT7``````.B6=_S_2(L5_ST!`(M]N$B)1<`QR<<``````$R-9<!( ++MB57(A?]T;`\?0`!(BU6PB<A(C32"BQ:#^@H/A)(```!(B?#K$F8/'T0``(M0 ++M!$B#P`2#^@IT9(72=?!!O?____^)^DR)Y^APC?W_3(GF2(G?Z`6D_?](BS._ ++M"@```.A(>OS_187M>`N+?;A!C4T!*<]UF$B+,[]]````Z"MZ_/](BWW`2(7_ ++M#X1I_O__Z$EZ_/_I7_[__P\?0`!(*?!(P?@"B<*%P'B3`=$/2?I!B<WKCS'2 ++MZ_(QP.D-____Z!EY_/_S#Q[Z2(G#Z?RD_/_S#Q[Z2(G#Z>*D_/^054B)Y4%7 ++M059)B=9!54F)_;\0````051!B?132('LJ````&1(BQPE*````$B)7<A(B<OH ++M:7;\_\>%7/___P,```#'``````!)B<</MSMF@_\(#X2)`0``QD6``&:#_T!T ++M3T&#_#`/A"4#```/A]<```!!@_P)#X25`P``08/\$W4/9H/_$P^$508```\? ++M1```9H/_0`^'Q@0``$B-%1M-`0`/M\=(8P2"2`'0/O_@9I`/MT,"BTL,C5#_ ++M@_H8=TD/MW,$@_YC=T!F@WL&`'4Y,?^#^@%V%[\)````@_@#=`V#Z!")Q[@' ++M````#TCXA<D/A1($``")\`M#"`^%!P0``.L99@\?1```A<D/A?`#``"+<PB% ++M]@^%Y0,``$B-58!(C;U0____2(G63(F]4/___\>%6/___P````#H<5<``.F] ++M````#Q]``$&#_#4/A`X"``!!@_Q;#X4T____9H/_%0^%*O___TB-58`/MWL. ++M2(G62(F52/___^C3@/W_2(N]2/___^BG=?S_2(N52/___TB_________``!( ++MN0````#__P``2`'0Q@`M2(UP`4B+0PA((<=(A<@/A"D$``!(B95(____Z+98 ++M``!(BY5(____Z4G___]F+@\?A```````2(MS"$B-O5#___](B850____QX58 ++M____`````.A_B_W_BX58____2(N=4/___X7`=5Y(A=MT,4B+1<AD2"L$)2@` ++M```/A9\%``!(@<2H````2(G?6T%<05U!7D%?7>F]=_S_#Q]$``!(BT7(9$@K ++M!"4H````#X5N!0``2('$J````%M!7$%=05Y!7UW##Q\`2,>%</___P````"_ ++M!````.@;=/S_Q@``2(L5@3H!`+\0````2(F%</___TB)E7C____H^7/\_TB+ ++M%6(Z`0#'``````!)B<=(B95H____08/\:`^&>`(``$V%]@^$UP$``$B-O6#_ ++M__],B?9(B85@____Z*F(_?],B[U@____BY5X____A=(/A#0"``!)BW4`2(N] ++M</___^@4=OS_28M-`+X!````N@,```!(C3U/+0$`Z+IX_/](B=Y,B>_HC_K_ ++M_TV%_W0(3(G_Z,)V_/](B[UP____2(7_#X3$_O__Z*UV_/_INO[__P\?A``` ++M````9H/_$P^%)OW__TB-58"+<PA(B==(B95(____Z#"9__](BY5(____Z9/] ++M__\/'T``9H/_$P^$-@,``&:#_Q4/A>S\__](BU,(N3!X``!(C46"9HE-@$B) ++MT0\?A```````2(/``4C!Z01U]L8``$R-#<Q+`0!F9BX/'X0``````&9F+@\? ++MA```````9@\?1```2(G12(/H`8/A#TC!Z@1!#[8,"8@(=>GI#_W__P\?0`!F ++M@_\3#X5V_/__BW,(13'`B?.!XP"```!T%T&)\(GP)?\_``!!P>@0@?[___\/ ++M#T?P2(U5@#')0;D!````2(G73(T5*4L!`&8/'X0``````$2)R-/@A?!T%D4/ ++MMAP*08#[+G0+]]!$B!](@\<!(<9(@\$!2(/Y'G77A?8/A;X"``"%VP^%E`(` ++M`,8'`.E^_/__#Q^``````$B+A7#___](C;UP____O@H```#'A7C___\````` ++MQ@``Z-.0_?^+M7C___]$B>=(`[5P____Z&Y]_?](*X5P____B85X____B<+I ++M_OW__V8N#Q^$``````"_!P```#'V2(/#"$B-58")^4B)WTB)E4C____H@$H` ++M`$B+E4C____I\_O__P\?0`!,B?Y,B>_H)9O]_^G,_?__18GD2(T%1B`"`$B- ++MO7#___]*BS3@Z#9__?_IC_W__Y"X/SH``$B-=8)FB46`Z-Y\_?_II/O__TB- ++M58!(C7L(,<DQ]DB)E4C____H$4H``$B+E4C____IA/O__TB+>PA(C56`2(F5 ++M2/___TB)UDB)^$C!Z"!T,>C%5```2(N52/___^E8^___2`^_>PA(C56`2(G6 ++M2(7_#XB7````#Q]``$B)E4C____H9'S]_TB+E4C____I)_O__TB-58`/MWL( ++M2(G62(F52/___^A!?/W_2(N52/___^D$^___2(U5@`^V>PA(B=9(B95(____ ++MZ!Y\_?](BY5(____Z>'Z__]F@WL(`+@M````=`6X*P```(A%@$B-58#&18$` ++MZ<#Z__](8WL(2(U5@$B)UDB%_P^);?___\9%@"U(]]](C76!Z5W___](BWL( ++M2(U5@$B)UDB%_WD+QD6`+4CWWTB-=8&X_____TB)E4C___](.<</CP/____I ++M+____TB-58"+>PA(B=;I&?___V8/'X0``````(M3".G0_/__#Q^$``````#& ++M18@`2(U5@(M+"$B-O7C___](B=!,C0VD2`$`B<Y(@^@"@^8/00^V-#%`B'`) ++MB<[!Z0A`P.X$@^8/00^V-#%`B'`(2#G'==3I\OG__\8'($2)QDB#QP%(B95( ++M____Z&V5__](BY5(____Z=#Y___&!R!,C5<!2(U'",9'"0!,C0T[2`$`B?%( ++M@^@"@^$/00^V#`F(2`*)\<'N",#I!(/A#T$/M@P)B$@!2#G'===,B==(B94X ++M____1(F%1/___TR)E4C____HA6_\_TR+E4C___](BY4X____1(N%1/___TF- ++M/`+IR/S__^@R<?S_\P\>^DF)Q.EDG?S_\P\>^DF)Q.DZG?S_\P\>^DF)Q.DS ++MG?S_\P\>^DF)Q.D;G?S_\P\>^DF)Q.E=G?S_\P\>^DF)Q.D7G?S_\P\>^DF) ++MQ.E%G?S_9F8N#Q^$```````/'P!52(GE05=!B==!5DR-=;!!54R)\D%428G\ ++M2(GW4TB#["A(BP9$B?YD3(LL)2@```!,B6W(28G-2,=%L`````!(QT6X```` ++M`/]00(G#A<!T.`^W1;!F@_@'=@F-4/9F@_HV=SU(BT7(9$@K!"4H````=4A( ++M@\0HB=A;05Q!74%>05]=PP\?1```3(GQ3(GJ1(G^3(GGZ#?W___KM0\?1``` ++M9H/X"'6]2(M]N$B%_W2T2(/O!.B(</S_ZZGH$7#\__,/'OI(B</I=9S\_P\? ++M1```54B)Y4%6055)B=5!5$&)S%-(B?M(B?=(@^P@2(LS9$R+-"4H````3(EU ++MV$6)QNCM;_S_2(L+N@,```"^`0```$B-/2DG`0#HE'+\_T6$Y'5_3(UEP$R) ++M[DR)Y^C`??W_183V=5L/MGL(BU7(2(MUP.@[30``2(MUP$B)W^C?EOW_2(LS ++MOPH```#H0G#\_TB+?<!(A?]T!>AD</S_2(M%V&1(*P0E*````'5+2(/$(%M! ++M7$%=05Y=PP\?A```````3(GF2(G?Z'6,_?_KJ`\?`$B+1=AD2"L$)2@```!U ++M%TB#Q"!,B>Y(B=];05Q!74%>7>G*\___Z`5O_/_S#Q[Z2(G#Z8V;_/]F#Q^$ ++M``````!52(GE051)B?Q3@'X!`$B)\XM6!'0Z@\H@2(TU1"8!`$R)Y^B(I/__ ++MBU,@A=)U+(![`@"+4PAU!8`[`'5#A=)U2(M#,(7`=5=;05Q=PP\?`(72=<6+ ++M4R"%TG342(M3&$4QP+D!````3(GG2(TUHR0!`.AZ_O__Z[</'X0``````/9# ++M!$!UMX/*0$B--=PE`0!,B>?H&*3__XM#,(7`=*E(BU,H3(GG6T4QP$%<N0$` ++M``!(C354)`$`7>DR_O__9I#S#Q[Z54B)Y4%7059)B=9!54%44TB)^TB!QU@! ++M``!(@>RX````2(FU4/___TB)SDB)C4#___]$B85(____9$B+!"4H````2(E% ++MR#'`Z&^`_?](@WM@`,:#-`$```%T"H![:``/A$\)``!(BX,``0``2(7`=`A( ++MBSCH`V[\_T&+1@A%,>2%P`^%``(``.F?`P``#Q^``````$&`OY@`````#X2G ++M`@``0?:'G````$`/A9D"``!!@\U`2(N#``$``$B%P`^$R`8``$B+,+\*```` ++MZ"MN_/]%A>0/A=8-``!(B[L``0``2(7_#X2B!@``1(GJ2(TUM"0!`.CSHO__ ++M18N7R````$B#@Z@!```!QH,V`0```4R+JP`!``!%A=(/A8`"``!-A>T/A.0" ++M``!)BW4`OPH```#HQFW\_X"[-P$````/A9$&``!%BX^D````187)#X@G`0`` ++M3(NK``$``$V%[0^$$`$``$F+30"Z"0```+X!````2(T].B0!`.B/;_S_28UW ++M*$R)[^@#E?W_OQ````!(QT6``````.@Q:OS_2(L-FC`!`,<``````$B)38A) ++M8Y>D````2(E%@$$Y5U@/A,L'``!(C0540P$`A=)X$TB+A5#___](BT`02(L$ ++MT$B+0!A(C7V`2(G"2(TUSR,!`$B)O5C____HPZO__TEC1UA(B[U8____2(T5 ++M$4,!`(7`>!-(BY50____2(M2$$B+!,)(BU`82(TUJ",!`.B.J___2(MU@$R) ++M[^A2D_W_2(LP28G%OPH```#HLFS\_TF+=0"_"@```.BD;/S_2(M]@$B%_W0% ++MZ,9L_/^`NS<!````#X4!!P``QH,V`0```4F#Q`%%.V8(#X.D`0``28L&3HL\ ++MX$&`OYD`````18NOG`````^$X`,``$B+@P@!``!!@\T@2(7`#X2<!```2(LP ++MOPH```#H-VS\_T6%Y`^%"PP``$B+NP@!``!(A?\/A'8$``!$B>I(C36X(@$` ++MZ/^@__]!BX>X````2(.#H`$```'&@S4!```!3(NK"`$``(7`#X7&`P``387M ++M=!U)BW4`OPH```#HUVO\_TB+@P@!``!(BSCH2&O\_T&`OYH`````18NOH``` ++M``^$2_W__T6%[0^%8OW__T6+K\@```!%A>T/A.']__](BX,``0``2(7`#X0Y ++M!```2(LPOPH```#H?6O\_T6%Y`^%I`8``$6+E\@```!,BZL``0``1872#X2` ++M_?__387M#X0#!```28M-`+H)````O@$```!(C3WK(0$`Z$IM_/])BW4`OPH` ++M``#H+&O\_TF+M\````!,B>_HK9']_[\*````2(LPZ!!K_/],BZL``0``2(.# ++MJ`$```'&@S8!```!387M#X4=_?__D$&+AZ0```"%P`^)6/[__TF#Q`%%.V8( ++M#X)?_O__#Q\`BX5(____3(N[``$``(7`#X6K`P``387_#X3Q!```18M&"$6% ++MP`^$ZP8``$B-A73___](QX4X____`````$B)A3#___](C46`2(F%0/___TB+ ++ME3C___])BP:^`0```$B-/6DA`0!)BP],BR30N@,```#H:FS\_T&X`0```#') ++M3(G_28M4)"A(C34I(0$`38VL))@```#H9OG__TECA"2D````A<!X4$$[1"18 ++M#X3.!0``2(N54/___TB-?8!(B;U8____2(M2$$B+!,)(BW`8Z$QW_?](B[58 ++M____N@$```!,B?_H^*?__TB+?8!(A?]T!>@*:OS_26-$)%A(C17N/P$`A<!X ++M$TB+C5#___](BU$02(L$PDB+4!A%,<`QR4B--94C`0!,B?_HT_C__TR)[DR) ++M_^C8^?__28M$)'!)`X0D"`$``$F)Q0^%X@4``$V++"0QR;HL````3(G_3(GN ++MZ,SW__^%P`^%LP,``$V+I"2H````387D#X5#!@``28M%`$B+M3#___],B>__ ++M4%B%P`^%B0,``$B-A7#___^+O73___]%,>1(B85(____2(V%>/___TB)A5C_ ++M__^%_W5!Z>P$```/'T``BY5X____3(GN3(G_Z%?W__](BTV`A<!U44B%R70) ++M2(UY_.B!:/S_08/$`40[I73___\/@[`$``!)BT4`2(N-6/___TC'18`````` ++M1(GF3(N%2/___TB+E4#___],B>__4&!(BTV`A<!TEDB%R0^$Y`(``$B->?R) ++MA5C____H)FC\_XN%6/___^G*`@``#Q\`187M#X6W````08N'N````(7`#X28 ++M_/__2(N#"`$``$B%P`^$Q@```$B+,+\*````Z$-H_/]%A>0/A9H#``!,BZL( ++M`0``08N'N````(7`#X0Z_/__387M#X21````28M-`+H'````O@$```!(C3VJ ++M'@$`Z!%J_/])BW4`OPH```#H\V?\_TF+M[````!,B>_H=([]_[\*````2(LP ++MZ-=G_/](@X.@`0```4R+JP@!``#&@S4!```!Z=+[__\/'T``2(N#"`$``$B% ++MP`^%9/O__T&+A[@```!(@X.@`0```<:#-0$```&%P`^$POO__TB#@Z`!```! ++MQH,U`0```>FN^___9@\?1```18N?R````$B#@Z@!```!QH,V`0```46%VP^$ ++M8?S__T&+AZ0```!(@X.H`0```<:#-@$```&%P`^)JOK__^E-_/__9@\?1``` ++M2(N#``$``$B+..B99OS_Z5OY__\/'T``2(.#B`$```%-A?]T"$F+/^A[9OS_ ++M2(N#"`$``$B%P`^$*@$``$B+"+H'````O@$```!(C3W:'`$`Z.)H_/](B[L( ++M`0``2(NU0/___^AOC_W_2(N#"`$``+\*````2(LPZ*MF_/]!@'XI`$R+HP@! ++M```/A2D"``!!BTY,A<D/B&<$``!)C78P3(GGZ!&._?])BS0DOPH```#H<V;\ ++M_TB+A5#___]!BU9,3(GG2(M`$$B+--`QTDB#QACH8J3__TF+-"2_"@```.A$ ++M9OS_28LT)+\*````Z#9F_/])C79`3(GGZ&KV__^+A4C___^#^`%T3TR+HP@! ++M```]#@`'@`^$!@0``(NU2/___TB-?8#HOI[]_TB+=8!,B>?H@HS]_TB+?8!( ++MA?]T!>@49OS_2(N#"`$``+\*````2(LPZ-!E_/](BX,(`0``2(LXZ$%E_/^+ ++M%=]V`@"%T@^%.P4``#'`2(M5R&1(*Q0E*`````^%304``$B!Q+@```!;05Q! ++M74%>05]=PP\?0`!(BX,``0``2(LXZ/ED_/_IZ_C__P\?0`!(QP`*````2(U] ++M@$B--78E`0#'18@!````Z+)"``#I?_C__P\?1```3(UC*+X!````3(GGZ->D ++M__](@WM@``^$E?;__X ++MY^AYI/__Z3WV__\/'T``2(N[``$``$F-=RCH4(S]_TB+@P`!``"_"@```$B+ ++M,.BL9/S_Z3/Y__\/'X``````2(N["`$``$F-=RCH((S]_TB+@P@!``"_"@`` ++M`$B+,.A\9/S_3(NK"`$``.D]_/__28L,)+HN````O@$```!(C3W#)`$`Z&9F ++M_/_I__W__TF+#[HH````O@$```!(C3UU)`$`Z$AF_/])BS>_"@```.@K9/S_ ++MZ4SZ__]F#Q]$``!!BT8(C5#_.94X____=#E)BP^^`0```+H%````2(T]^1H! ++M`.@(9OS_2(V%</___TR)[TB)QDF+10#_4$B%P`^$]`$``$&+1@A(@X4X____ ++M`4B+E3C___\YP@^"0/G__TR+NP`!``!)BS>_"@```.BM8_S_Z>?]__\/'X0` ++M`````$F+#[H&````O@$```!(C3UW&@$`Z)=E_/])BP^Z`P```+X!````2(T] ++M$QH!`.A^9?S_2(U5D$B)UDV%[7D+QD60+4GWW4B-=9&X_____TB)E5C___]) ++M.<4/CI0"``!,B>_HZD,``$B+E5C___])BS=(B=?H>&+\_TF+-[\*````Z!MC ++M_/_IE/G__V8/'T0``$F+#[H)````O@$```!(C3WN&0$`Z`=E_/])BP^^`0`` ++M`$B-/8@9`0"Z`P```.CN9/S_3(G@,<E(C76P2+_-S,S,S,S,S$C!Z"`/A"<" ++M``!F9BX/'X0``````&9F+@\?A```````9F8N#Q^$``````!,B>!(@\$!2/?G ++M3(G@2,'J`TR-!))-`<!,*<"#P#"(!`Y,B>!)B=1(@_AC=]-!@\0P2(T$#DB- ++M59%$B&60#Q\`#[8X2(/H`4B#P@%`B'K_2#G&=>S&1`V1`$B-59!)BS=(B=?H ++MB&'\_TF+-[\*````Z"MB_/_IT_C__TF+#"2Z'P```+X!````2(T]J2(!`.@< ++M9/S_Z;7[__])BPPDNAX```"^`0```$B-/3(?`0#H_6/\_^D$_/__2(N%./__ ++M_TF+%HNU</___X/``4B+!,*+0%R)A2S___^%]@^$Y/W__TB-A7C___]%,>1( ++MB858____2(V%;O___TB)A2#___](C46`2(F%2/___^F$````D$B+C4C___^+ ++ME73___],B>](QT6``````$F+10!(QT6(`````(NU+/____]0,(7`#X7M```` ++M2(N-2/___TB+E7C___],B?^+M73____H;^?__TB+O4C____H$Z;]_TB+A7C_ ++M__](A<!T"4B->/SHOF#\_T&#Q`%$.Z5P____#X,Q_?__28M%`$2)YDR)[TC' ++MA7C___\`````3(N%(/___TB+C3#___](BY58_____U!0A<`/A$C___](BY5X ++M____2(72#X07^___2(UZ_(F%6/___^A98/S_BX58____Z?WZ__]$B>_H)FG] ++M_TB+E5C____I9_W__TB-59!$B>=(B=9(B958____Z`1I_?](BY58____Z37^ ++M__^X!$``@.F]^O__2(N]2/___XF%6/___^@\I?W_BX58____Z7G____H?%_\ ++M_TB+NP`!``!)C7<HZ,R'_?](BX,``0``OPH```!(BS#H*&#\_^D!\O__2(N[ ++M"`$``$F-=RCHHX?]_TB+@P@!``"_"@```$B+,.C_7_S_Z<SS___S#Q[Z2(G# ++MZ=R+_/_S#Q[Z2(G#Z?V+_/_S#Q[Z2(G#Z5B,_/_S#Q[Z2(G#Z0J,_/_S#Q[Z ++M2(G#Z66,_/]F9BX/'X0```````\?`/,/'OI(@^\(Z:/P__\/'P!52(GE05=, ++MC3W>%`$`059,8_=!54%44TB![.@"``!(B;5H_?__9$R++"4H````3(EMR$4Q ++M[4&#_0%(C35B%@$`OP8```!)#T7WZ")>_/\Q]C'_Z!E>_/])B<1(A<`/A$T, ++M```Q_X`X`'03,<`/'T``C7@!08`\/`!(B?AU\TB#QP'HZEO\_TB)PS'`#Q]$ ++M``!!#[84!(@4`TB#P`&$TG7P#[8#2(G:A,!T,69F+@\?A```````9F8N#Q^$ ++M``````"-<+^-2"!`@/X:#T+!2(/"`8A"_P^V`H3`=>7H<(G]_X3`#X7=)0`` ++M3(GGZ&!__?](B=^$P`^$WB4``.C07OS_08/%`4&#_0,/A2?____H/8G]_X3` ++M#X2F"P``Q@4N*P(``4B+#5=R`@"Z2@```+X!````2(T]'A\!`.AQ8/S_2(V% ++ML/W__TC'A;#]__\`````2(G'2(F%$/W__TC'A;C]__\`````Z#5F_?]%A?8/ ++MCAP!``!,BZ5H_?__2(V%T/[__TB)A6C]__]/C33TZVN02(7V#X7J````3(F] ++ML/W__XF=O/W__[\0````Z/!<_/](B[5H_?__2(G'2(G#Z+YL_?^+A;C]__^- ++M4`&)E;C]__](BY6P_?__2(D<PDB+O=#^__](A?]T!>CC7?S_28/$"$TY]`^$ ++ME@```$F+-"1(B[UH_?__Z+8W``"+A;S]__\YA;C]__]UCCW^__]_#X<<C_S_ ++MB<.Z____?\'K`BG"@\,!.=,/1]I$C2P#3(GK2<'E`TR)[^@F6OS_28G'BX6X ++M_?__2(NUL/W__X7`#X0N____2(T4Q0````!,B>E,B?](B;5@_?__Z'1>_/]( ++MB[5@_?__2(GWZ$5=_/_I"?___XN%N/W__X7`#X0""P``2(N%L/W__TB-O:#] ++M__](B;T(_?__2(L`2(LPZ-)S_?^#O;C]__\`#X4D"@``QX6H_O_______S'` ++M9@_OP$B)A:#^__](C86P_O__2(G'2(F%8/W__P\IA9#^___H(6?]_TB-A<#^ ++M__](B<=(B858_?__Z)MI_?](BX6P_O__13'M13'V13'_1(FMN/[__TB-O9C^ ++M___'A:C^________Q@``2(N%P/[__T2)M<C^__]$B3CH2F3]_TB+A9#^__]( ++MA<`/A)$```!,:VCX&$D!Q4PYZ'1R9F8N#Q^$``````!FD$&+1?A)@^T8A<`/ ++MA`<*``"-6/])BWT(2,'C`P\?1```3(LD'TV%Y'0?28L\)$B%_W0%Z!E<_/], ++MB>>^$````.CL6OS_28M]"$B#ZPA(@_OX=<Y(A?]T!>CT6_S_3#FMD/[__W6; ++M26MU^!A)C7WX2(/&".C97?S_13'DOY@```!,C3UZ;P(`3(FED/[__^A>6/S_ ++M2(U("$C'``8```!(!9@```!(B<IF9BX/'X0``````&9F+@\?A```````#Q]` ++M`,8"`$B#PAA(QT+P`````$C'0O@`````2#G0=>1%,>2#O;C]__\`2(F-D/[_ ++M_P^%R````.E``0``#Q^$``````"+A:3^__\YA:#^__]U9SW^__]_#X=&B/S_ ++MB<.Z____?TR-/=EN`@#!ZP(IPH/#`3G3#T?:1(TT`TR)\TG!Y@-,B??HJ5?\ ++M_TF)QXN%H/[__TB+M9C^__^%P`^%H0<``$B%]@^%N0<``$R)O9C^__^)G:3^ ++M__^_$````$R-/7]N`@#HFEG\_TR)[DB)QTB)P^AL:?W_BX6@_O__C5`!B96@ ++M_O__2(N5F/[__TB)',))@\0!1#NEN/W__W-]2(N%L/W__XN=J/[__TZ++."% ++MVP^)+/___TF+50"#.BT/A1____](B=%(C04_$0$`9F8N#Q^$``````!F+@\? ++MA```````#[9X`4B#P01(@\`!B?X[.0^%*@8``$"$]G7EBX6@_O__28/$`8F% ++MJ/[__T0[I;C]__\/@H/___](BX60_O__@#@`#X5Y!P``@'@8``^%;P<``$2+ ++MO:#^__]%A?\/A1H(``#'A0#]__\!````0;P!````13';2(T%/"\!`$R)G2#^ ++M__]&BR2@3(F=*/[__TR)G3#^__],B9TX_O__3(F=0/[__T0[O:#^__\/A%`@ ++M``!%B?Y,C:T@_O__2<'F`T0[O:#^__]S0&8/'X0``````$B+A9C^__]*BS0P ++M1(M6"$6%T@^$6(K\_T2)XDR)[TR)Z^B*@0``08/'`4F#Q@A$.[V@_O__<LE( ++MBX60_O__2(V=(/[__P^V2$@/MD!@B(4'_?__2(V%D/W__TB)QXB-!OW__TB) ++MA?#\___H\67]_X"]!_W__P!T&DB+A9#^__](B[WP_/__2(M`:$B+,.A.:_W_ ++M2(N5H/W__TB-M3#___\QP+DD````2(GW\ZM(B=?H#%K\_X7`#X5/'@``BX5( ++M____)0#P```]`$````^$@(K\_TB-G8#]__](B=](B9WX_/__Z.AB_?](BX60 ++M_O__@'AX`'1'2(N`@````$B-C=#^__](B<])B<](BP!(BS#H+&_]_TR)_DB) ++MW^B!8_W_2(N]T/[__TB%_W0%Z%!8_/](B[WX_/__Z&27_?]%,?:#O4#^__\` ++M3(FU6/W__P^$#"```&9F+@\?A```````9I!(BX4X_O__2(N-6/W__TR+),A! ++M#[9$)!!%BTPD"(B%*/W__T6%R0^$"XK\_TB-A1#^__],B>=(QX40_O__```` ++M`$B)QDB)A3#]__](QX48_O__`````.@%A_W_00^V1"01BY48_O__B(4X_?__ ++M00^V1"02B(5`_?__2(N%$/[__TB+7-#XBT,(A<`/A,@:``!!#[94)!.`^@$/ ++MA/8:``#&A4C]__\!QH50_?__`8#Z`@^$5AP``$C'A5#^__\`````OQ````#H ++M]5/\_TB+#5X:`0"+M1C^__](B850_O__QP``````2(F-6/[__X/^`@^&@P<` ++M`$B+A1#^__](BQ!$BT((187`#X7T&0``QX5@_?__`0```$2-=O^+E6#]__^_ ++M_____TB)A1C]__]!B?5,B:5H_?__B?M,C3S01(FU(/W__T&)U$V)_@\?@``` ++M``!)BP9(C36^+`$`3(LX3(G_Z)M6_/^%P'032(TUK"P!`$R)_^B(5OS_A<!U ++M`T2)XT&#Q`%)@\8(13GL<L1,BZ5H_?__1(NU(/W__TB+A1C]__^%VW@-18UU ++M_T$YW@^$+QL``$6%]@^$!@$``#';3(VM4/[__^FK````#Q^``````$R)[^@H ++M-```BX58_O__.85<_O__#X0^!@``2(N-4/[__XU0`4B+O1#^___'!($O```` ++MB=#'!($`````2(L'B958_O__2(7`="](BSA(A?]T$TB)A6C]___H\U7\_TB+ ++MA6C]__](B<>^$````.B_5/S_2(N]$/[__XN%&/[__TB-=PB#PP&-4/](P>(# ++MZ)]6_/^#K1C^__\!1#GS=%1(BX40_O__08!\)!(`2(LP#X1-____BX5@_?__ ++M.<,/@C____^+5@A(BP:%T@^$,?___TB-#)#K%0\?`(/Z/W042(/`!$@YP0^$ ++M%O___XL0@_HJ=>=$B[TH_O__187_#X2^&@``2(N=4/[__TR+M2#^__]%B?Q% ++M,>WK%F8/'X0``````$F#Q0%-.>4/A-48``!+BP3N2(G>2(LXZ*2!_?^%P'7@ ++M1(FM8/W__T6%[0^(LA@``$2+K1C^__]%A>T/A*<%``!!@_T!#X1N&```,<!( ++MB870_O__2(F%V/[__V8/'T0``$6%[0^(3(7\_T6)[$B-A=#^__])P>0#2(F% ++M:/W__TR)Y^A*4?S_2(G#BX78_O__3(NUT/[__X7`#X6$%P``387V#X61%P`` ++M2(F=T/[__S';1(FMW/[__TR-K=#^__]FD$B+A1#^__^_$````$R)K6C]__], ++MBSP8Z"13_/],B?Y(B<=)B<;H]F+]_XN%V/[__TB#PPB-4`&)E=C^__](BY70 ++M_O__3(DTPDDYW'6S2(V%T/[__TB)A6C]___IY04``$6+30A%A<D/A+/X__], ++MC1V,_@$`13'_0;[_____,=M)BS,/M@Z$R0^$!!H``#'`D(UX`4&)P(`\/@!( ++MB?AU\40Y]WX-08/``D4YP0^#EP$``(/#`4F#PQB#^P9UPD6%]@^(%!P``$2) ++M^$&-3@%,B[60_O__2(TU)?X!`$AKP!A)`<9(`?"`>`D`#X6M`@``08`^``^$ ++MHP(``$B+O6#]__](C35!%`$`3(T]$F<"`.CM7?W_Z?`"```/'X0``````$B- ++M%,4`````3(GQ3(G_2(FU:/W__^A65/S_2(NU:/W__TB)]^@G4_S_Z3KX__]F ++MD$R-);P/`0"_`0```.F\\___,?\Q]NBF4?S_2(G'2(7`#X1=&```Z'5S_?^$ ++MP`^%./3__\8%9A\"``#I,_3__TB+A;#]__](BQA(A=MT&DB+.TB%_W0%Z,52 ++M_/^^$````$B)W^B84?S_BX6X_?__2(N]L/W__XU0_TB-=PA(P>(#Z'M3_/^# ++MK;C]__\!Z8KU___H&H?__T4QY$B-O9#^___H:UG]_TB+O:#]__](A?]T!>AJ ++M4OS_2(N]$/W__^C.6/W_2(M%R&1(*P0E*`````^%Y1H``$B-9=A$B>!;05Q! ++M74%>05]=PTF+?0CI,O;__T&\`@```.N^1(F]:/W__S'_B850_?__9@\?A``` ++M````BT2Z!$0/MM%!B<A$.=`/A#$"``!$C7B_1(U1OT&#_QD/A@4"``!!@/H9 ++M#X9,%0``1(N]:/W__^D5_O__2(N%F/[__TB+&$B-A=#^__](B<=(B=[H:&#] ++M_TB+O=#^__^+!X7`='](B?IF9BX/'X0``````&9F+@\?A```````9I"-<+^- ++M2""#_AH/0L%(@\($B4+\BP*%P'7G@[W8_O__`75+BP>#^']_1$B--3T(`0!( ++MB?+K"(3)=#1(@\(!#[8*.,AU\4@I\DQCXH72>!^)E0#]__]!OP$```#H,5'\ ++M_^E.]___@[W8_O__`72\Z!Y1_/^^`0```+H7````2(L-O60"`$R-);9D`@!( ++MC3U!"`$`Z-I2_/],B>?H`FW]_TB+,TR)Y^A'=_W_2(G'0;P'````Z.EL_?_I ++M3?[__T'&!@%$B<X/MG@**<XY_@^"L1@``$'&1@$`0<=&!/____\/MG@(0(#_ ++M`@^$MQ<``$"`_P,/A*L8``!`@.\!=0F#[@$/A!09``!!.<D/A.#U__](B[U@ ++M_?__2(TUD0<!`$R-/1UD`@#H^%K]_TB+O5C]__],B>Y,C3T'9`(`Z+)B_?]( ++MBPW[8P(`NA,```"^`0```$B-/6@'`0#H%5+\_TR)_^@];/W_2(LUUF,"`$B+ ++MO;#^___H.D_\_TR)_^@B;/W_2(NUP/[__TR)_^AC=OW_Z1?___]F#Q]$``!, ++MB>_HH%O]_XN%6/[__^FO^?__@\`@08#Z&0^&1!,``$4/ML!!.<`/A>O]__]( ++M@\<!#[8,/H3)#X6K_?__1(NU4/W__T&)W^GM^___#Q]``(7V#X1!^O__2(N% ++M$/[__TB+$(-Z"``/A6P2``"#_@$/A6_X___'A6#]__\!````0;X!````Z0GY ++M__]F#Q]$``!(A=MT&DB+.TB%_W0%Z%9/_/^^$````$B)W^@I3OS_2(V%T/[_ ++M_TB--94&`0#'A1C^__\`````2(G'2(F%:/W__^CB7/W_BX4<_O__.848_O__ ++M=6`]_O__?P^'@7[\_XG"N?___W_!Z@(IP8/"`3G*#T?11(TD`DR)XTG!Y`-, ++MB>?H@DO\_TF)Q8N%&/[__TR+M1#^__^%P`^%DQ,``$V%]@^%H!,``$R)K1#^ ++M__^)G1S^__^_$````.AZ3?S_2(NU:/W__TB)QTB)P^A(7?W_BX48_O__C5`! ++MB948_O__2(N5$/[__TB)',)(B[W0_O__2(7_=`7H;4[\_T2+K1C^___&A4#] ++M__\!2,>%T/[__P````!(QX78_O__`````,:%./W__P#&A5#]__\!QH5(_?__ ++M`46%[0^%6_G__P^VA4#]__\/MI5(_?__N?____]$B[U@_?__#[:U*/W__\'@ ++M"`G0#[:54/W__\'@"`G0#[:5./W__\'@"`G02(N5:/W__XF%X/[__TB+A2#^ ++M__]*BSSX2(/'$.BL@/W_BX78_O__2(N]T/[__X7`=$"-6/](P>,##Q]``$R+ ++M)!]-A>1T(DF+/"1(A?]T!>B93?S_3(GGOA````#H;$S\_TB+O=#^__](@^L( ++M2(/[^'7+2(7_=`7H<4W\_TB+O5#^__](A?]T!>A@3?S_BX48_O__2(N]$/[_ ++M_X7`=$2-6/](P>,##Q^$``````!,BR0?387D="))BSPD2(7_=`7H*4W\_TR) ++MY[X0````Z/Q+_/](B[T0_O__2(/K"$B#^_AURTB%_W0%Z`%-_/](@X58_?__ ++M`8N%0/[__TB+C5C]__\YP0^"Q/3__X7`=$6-6/](P>,#9@\?A```````2(N% ++M./[__TR+)!A-A>1T&TF+/"1(A?]T!>BR3/S_OA@```!,B>?HA4O\_TB#ZPA( ++M@_OX=<M(C870_?__2(NU"/W__T4Q[44QY$B+O6C]__](B848_?__2(V%P/W_ ++M_T2)I4#^__],B:W0_?__3(FMV/W__TR)K<#]__],B:W(_?__2(F%(/W__^AC ++M;/W_2(V%T/W__TB+M6C]__](B<=(B848_?__Z$9;_?](B[W0_O__2(7_=`7H ++M%4S\_TB+G6C]__](B[4(_?__2(V%P/W__TB)A2#]__](B=_H$6S]_TB-A<#] ++M__](B=Y(B<=(B84@_?__Z/A:_?](B[W0_O__2(7_=`7HQTO\_TB+A2#^__^_ ++M*````$B+`$B#P!!(B84(_?__Z'A*_/]%,=LQVTB-#93U`0"#/>5<`@``2(F% ++M0/W__TB)"$R)6!!,B5@89L=`(```2(F%>/W__\=`"`$```!(B9U0_?__#X38 ++M!0``3(L]:PX!`&9F+@\?A```````2(N-4/W__TB-!;)<`@!F#^_)OQ````!( ++MQX70_O__`````$C'A>C^__\`````2(L<R`\1C=C^___HLT?\_\<``````$B+ ++M<Q!(B87H_O__2(V%Z/[__TB)QTR)O?#^__](QX7X_O__`````$C'A0#___\` ++M````2(F%./W__^A_*0``\P]^0S"+`[\0````#Q9#0(F%T/[__P\1A=C^___H ++M34?\_\<``````+\0````28G&2(F%2/W__TR)O>C]___H+$?\_TB+<QA(B85@ ++M_?__3(F]^/W__\<``````$B%]G0A2(V]X/W__TR)M>#]___H#"D``$B+A>#] ++M__](B85(_?__2(MS($B%]G0H2(N%8/W__TB-O?#]__](B87P_?__Z-LH``!( ++MBX7P_?__2(F%8/W__TB+A4C]__](C;4`_O__2(V]X/W__TC'A0#^__\````` ++M2,>%"/[__P````!(B87@_?__2(V%$/[__TC'A1#^__\`````2,>%&/[__P`` ++M``!(B;4H_?__2(F%,/W__^@K8?W_2(N%8/W__TB-O?#]__](B87P_?__2(V% ++M$/[__TB)QDB)A3#]___H`&']_T2+E0C^__\QVT6%T@^%F@```.GQ`0``9@\? ++MA```````2(7V#X6_`0``3(F%^/[__T2)I03___^_(````.@?2/S_3(GN2(G' ++M28G$Z/%7_?](C;5@_O__28U\)!#HX%?]_XN%`/___XU0`8F5`/___TB+E?C^ ++M__],B23"2(N]8/[__TB%_W0%Z`5)_/](B[U0_O__2(7_=`7H]$C\_TB#PP$[ ++MG0C^__\/@UP!``!(QX50_O__`````+\0````Z&]%_/_'``````"_$````$B) ++MA5#^__],B;U8_O__2,>%8/[__P````#H1D7\_TB)A6#^__],C:U0_O__QP`` ++M````2(N%`/[__TR)[TR)O6C^__](BS38Z-A:_?\[G1C^__]S0TB+A1#^__]( ++MC;U@_O__2(LTV.BY6OW_3(NE8/[__TB--4\>`0!,B>?H(TC\_X7`=1+'A6C^ ++M__\`````0<<$)`````"+A03___\YA0#___\/A<+^__\]_O__?P^':7S\_T&) ++MQ+K___]_0<'L`BG"08/$`4$YU$0/1^)%C30$38GT2<'F`TR)]^B$1/S_28G` ++MBX4`____2(NU^/[__X7`#X1<_O__3(G'2(T4Q0````!,B?%(B;58_?__Z-)( ++M_/](B[58_?__28G`2(GW3(F%6/W__^B91_S_3(N%6/W__^DF_O__#Q]$``"+ ++MA1C^__](B[T0_O__C5C_2,'C`X7`=#5,BR0?387D="))BSPD2(7_=`7H64?\ ++M_TR)Y[X0````Z"Q&_/](B[T0_O__2(/K"$B#^_AURTB%_W0%Z#%'_/^+A0C^ ++M__](B[T`_O__A<!T18U8_TC!XP-F#Q^$``````!,BR0?387D="))BSPD2(7_ ++M=`7H^4;\_TR)Y[X0````Z,Q%_/](B[T`_O__2(/K"$B#^_AURTB%_W0%Z-%& ++M_/](@[U@_?__`'0,2(N]8/W__^B[1OS_2(N%2/W__TB%P'0(2(G'Z*=&_/]( ++MBXU`_?__BT$<.4$8=6(]_O__?P^'C'K\_XG#NO___W_!ZP(IPH/#`3G3#T?: ++M1(TD`TR)XTG!Y`-,B>?H!D/\_TB+C4#]__])B<6+01A,BW$0A<`/A6()``!- ++MA?8/A6\)``!(BX5`_?__3(EH$(E8'+\X````Z/Q$_/])B<5(BX70_O__\P]O ++MA=C^__](B[4X_?__28U]&$F)10!!#Q%%".BQ5/W_BYT`____2<=%*`````!) ++MQT4P`````(7;#X6[!P``2(N-0/W__XM!&(U0`8E1&$B+41!,B2S"2(N]^/[_ ++M_P\?0`!(A?]T!>BV1?S_2(N]Z/[__TB%_W0%Z*5%_/](@X50_?__`4B+A5#] ++M__\[!>!6`@`/@CKZ__](BX5`_?__BU`8@_H!#X8U`@``2(N%0/W__T&)UXF5 ++M8/W__T'1[TB+2!!$B?A(B8U(_?__3(UA^$B-=,'X1(GY9BX/'X0``````$B+ ++M%DB)]XT$"3F%8/W__P^"M@```(F-./W__XG+2(F56/W__TB)M3#]___K&0\? ++M`$R)/T.-!#8YA6#]__\/@HT&``!$B?.)QT&)QHN%8/W__TV-+/Q-BWT`28MW ++M&$$YQG,Y2(N%2/W__TB)M5#]__](BP3X2(MX&.BC1/S_2(NU4/W__X7`?A-! ++MC48!38TLQ$F)QDV+?0!)BW<82(N%6/W__TB+>!CH=43\_TF-/-R%P`^(>?__ ++M_XN-./W__TB+E5C]__](B[4P_?__2(D72(/N"(/I`0^%)?___XN%8/W__TB+ ++MC4C]__](B<))C03$2(LQ3(L(1(U"_TB),$R)"8/Z`@^$]@```$2)P$R-?,'X ++M3(F]./W__[@"````0;T!````1(F%8/W__TR)C5C]__](B8U(_?__ZQP/'X`` ++M````3(D^C00;.85@_?__#X*>!0``08G=B<>)PXN%8/W__TV--/Q-BSY)BW<8 ++M.<-S-TB+A4C]__](B;50_?__2(L$^$B+>!CHET/\_TB+M5#]__^%P'X1C4,! ++M38TTQ$B)PTV+/DF+=QA(BX58_?__2(MX&.AK0_S_2XTT[(7`>(-,B[TX_?__ ++M1(N%8/W__TB)\$R+C5C]__](BXU(_?__3(D(38L/08/H`4F#[PA(BP%)B4<( ++M3(D)08/X`0^%$O___X.]`/W__P(/A`\.``"_R`$``.C[0?S_\P]^!1/R`0!( ++MB<-(C04Q"0(`9D@/;M!(C07%"`(`3(US*&8/;,)F2`]NV$R-:R!,B?</$0-( ++MC06OY`$`\P]^!=_Q`0!(B4,@9@]LPP\10Q#H]H'__TB+!0<&`0!%,<EFQT-H ++M``%(C7MX1(E+=$B)0VSH!4W]_TB-NX@```#H^4S]_TB-NY@```#H[4S]_TB- ++MNZ@```#H<4_]_TR-H[@```!,B>?HHH'__TB-N_````#HQDS]_T4QP,:#&@$` ++M``!,C:,@`0``3(F#$`$``$R)YV;'@Q@!`````.@M3_W_2(T%[N0!`#'_\P]^ ++M!13Q`0#&@S0!```!9D@/;N!(@\!HB;LP`0``2(V[.`$``&8/;,1F2`]NZ$B# ++MP##&@S<!````#Q$#\P]^!>#P`0!(B4,@9@]LQ0\10Q#H/TS]_TB-NT@!``#H ++MPT[]_TB-NU@!``#HMT[]_TB-NV@!``#HJT[]_TB+!:Q5`@`Q]L9#:`!,B>=( ++MC0UT50(`9@_OP(.#,`$```%(B8,``0``2(E#8`^VA0?]__](B;.X`0``2(NU ++M\/S__TC'@\`!```!````2(F+"`$``&;'@S4!`````(B#&@$```\1@W@!```/ ++M$8.(`0``#Q&#F`$```\1@Z@!``#HIU/]_V8/;P7_`P$`,<E,C:4`____2,>% ++M^/[_______],B>=(B8W0_O__2(F-V/[__TB)C>#^__\/$87H_O__Z%=+_?]( ++MC;T0____Z-M-_?\/MH4&_?__@[T`_?__`$R)YV;'A2#___\``$B+M?C\__\/ ++ME(4C____,=*(A2+___^)E=C^__^)A=S^___HVDO]_TR-I?#]__],B>?HBTW] ++M_S'`3(V]$/[__TR+C0C]__],BX4@_?__2(F%`/[__TB+C1C]__],B?Y(C94` ++M_O__2(F%"/[__TB+O4#]__](B840_O__2(F%&/[__TB-A5#^__],B;TP_?__ ++M4$B-0PA!5%-0057_M6C]___HK(L``$R)_TB#Q#!!B<3H[?#^_TB+O0#^__]( ++MA?]T!>@<0/S_2(-[8`!T$X![:`!U#;X!````3(GWZ')___^#O?C]__\`#X7* ++M!0``2(.[B`$````/A8$```!(@[N0`0````^%#@8``$B#N[`!````#X5;!0`` ++M2(.[H`$````/A:0```!%A>0/A5]L_/](B[WP_?__2(7_=`7HHS_\_TB+O6C] ++M___HQV?__TB)W^AOB0``2(V]>/W__^@3&/[_2(N](/W__^CG1?W_2(N]&/W_ ++M_^C;1?W_Z:H```!,BR5'4P(`3(GGZ&=;_?])BPPDNA4```"^`0```$B-/=;V ++M``#H'4'\_TR)Y^A%6_W_2(.[D`$````/A5P%``!(@[NP`0````^%J00``$B# ++MNZ`!````#X5V!0``2(N]\/W__TB%_W0%Z/H^_/](B[UH_?__0;P"````Z!AG ++M__](B=_HP(@``$B-O7C]___H9!?^_TB+O2#]___H.$7]_TB+O1C]___H+$7] ++M_TB+O8#]__](A?]T!>BK/OS_2(N]D/W__TB%_W0%Z)H^_/](C;TX_O__2(V= ++M(/[__^AG<O__2(G?Z`]P___I\^O__V8N#Q^$``````"+C3C]__](BY58_?__ ++M3(GO2(NU,/W__^G?^?__#Q]``$R+O3C]__]$BX5@_?__3(GP3(N-6/W__TB+ ++MC4C]___IR/K__P\?0`")V$C!X`-(B<=(B85@_?__Z+,Z_/])B44H13'V08E= ++M-`\?A```````2(N%^/[__[\@````3HLD,.B[//S_3(GF2(G'2(G#Z(U,_?]) ++MC70D$$B->Q#H?TS]_T&+13!)@\8(C5`!08E5,$F+52A(B1S"3#FU8/W__W6O ++M2(NU0/W__XN5`/___XM&&(U(`8E.&$B+3A!,B2S!2(N]^/[__X72#X3"]___ ++MC5K_2,'C`V9F+@\?A```````3(LD'TV%Y'0Q28M\)!!(A?]T!>A8/?S_28L\ ++M)$B%_W0%Z$H]_/],B>>^(````.@=//S_2(N]^/[__TB#ZPA(@_OX=;SI9_?_ ++M_P\?@`````#'A6#]__\`````13'VZ0CF__](C13%`````$R)X4R)]DB)W^@8 ++M/OS_3(GWZ/`\_/_I8NC__TB-%,4`````3(GA3(GV3(GOZ/4]_/],B??HS3S\ ++M_^F$]O__2(L[2(7_=`7HNSS\_[X0````2(G?Z(X[_/^#K1C^__\!QH50_?__ ++M`,:%2/W__P'I*N7__T2-02#IL^S__\:%2/W__P#&A5#]__\!Z0[E__](BX40 ++M_O__2(L8@WL(``^$_.S__T4Q_TR)O=#^__],B;W8_O__Z8?G__]$B;U@_?__ ++M1#N]+/[__W5D08'__O__?P^'[6O\_T2)^+G___]_P>@"1"GY@\`!.<@/1\%& ++MC20X3(GC2<'D`TR)Y^BH./S_28G%BX4H_O__3(NU(/[__X7`#X4P`0``387V ++M#X4]`0``3(FM(/[__XF=+/[__[]8````Z*`Z_/\Q_TB)PTB).+\0````Z%XX ++M_/](BPW'_@``,?9(B0-F#^_`B3"_$````$B)2P@/$4,0Z#HX_/\QTDB)0QA( ++MBPV=_@``2(G?B1"+A2C^__](C;50_O__2(E+(#')C5`!2(E+*(F5*/[__TB+ ++ME2#^__](B4LP2(E+.$B)2T!(B4M(2(E+4$B)',+HI$W]_^D_YO__18GNZ=+D ++M__](C13%`````$R)X4R)]DR)[^A!//S_3(GWZ!D[_/_I4^S__TB+$TB--()F ++M9BX/'X0``````&9F+@\?A```````#Q^``````(L*@_DJ#Y3`@_D_#Y3!",AU ++M"4B#P@1(.=9UY8/P`<:%4/W__P&(A4C]___I5N/__TB-%,4`````3(GA3(GV ++M3(GOZ,H[_/],B??HHCK\_^FV_O__2(T].?<``.F7Y___@[TL_O__`,>%8/W_ ++M_P`````/A:#^___I1/[__^E";/S_3(LE44X"`$R)Y^AQ5OW_28L,)+H2```` ++MO@$```!(C3V8\```Z"<\_/](B[.P`0``3(GGZ!A7_?](B<?H0%;]_^D2^___ ++M3(LM#$X"`$R)[^@L5OW_28M-`+X!````2(T]B?$``+H'````Z.([_/](B[7P ++M_?__3(GOZ%-@_?]%A>0/A?7Y__]!O`5``(#IZOG__T6%]@^)%^;__T&)WT4Q ++M]ND,YO__3(LEK$T"`$R)Y^C,5?W_28L,)+H.````O@$```!(C3TL\0``Z(([ ++M_/],B>?HJE7]_^EN^O__3(LE=DT"`$R)Y^B65?W_28L,)+H-````O@$```!( ++MC3T;\0``Z$P[_/](B[.@`0``3(GGZ#U6_?](B<?H957]_^E%^O__3(VUT/[_ ++M_TB--9SP``!,B?=(C9T@_O__Z/-&_?]$B>),B?9(B=_H56$``$B+O=#^__]( ++MA?\/A'7?___H$#G\_^EKW___2(G?Q@6!!0(``>C\./S_Z4G:___H\CC\_^DK ++MVO__2(V%T/[__TB--(I(B<=(B85H_?__3(T]@4P"`.CL1?W_08M6%$$Y5A!U ++M6('Z_O__?P^'DF7\_XG0N?___W_!Z`(IT8/``3G(#T?!1(T\$$V)_4G!YP-, ++MB?_H+S7\_TB)PT&+1A"%P`^%'P$``$F+?@A(A?]T!>AR./S_28E>"$6);A2_ ++M$````.@P-_S_2(NU:/W__TB)QTB)P^C^1OW_08M&$(U0`4&)5A!)BU8(2(D< ++MPDB+O=#^__](A?\/A(G=___H)CC\_^E_W?__2(V%T/[__TB)A6C]___I<^O_ ++M_TB+O6#]__](C37Q[@``3(T]J4L"`.B$0OW_Z8?G__^#[@$/A5OG__^+%(J# ++M^G]_*4B+2!!(B<CK"4"$]G0;2(/``0^V,$`X\G7O2"G(08E&!(7`#XD3W?__ ++M2(N]8/W__TB--:KN``!,C3U02P(`Z"M"_?_I+N?__TB+O6#]__](C35I[@`` ++M3(T],4L"`.@,0OW_Z0_G__^#/(HM00^41@$/A,;<___KL>AA-OS_28MV"$B- ++M%,4`````3(GY2(G?Z&HX_/_IQ?[___,/'OKI,&3\__,/'OI)B<3I7F3\__,/ ++M'OI(B</I@V7\__,/'OI(B</I@V7\__,/'OKIZ67\__,/'OI)B<3IY67\__,/ ++M'OI)B<3I\V7\__,/'OI)B<3IU&3\__,/'OKI!F;\__,/'OI)B<3I*V;\__,/ ++M'OKI76;\__,/'OI)B<3I6V;\__,/'OI)B<3I7&;\__,/'OI)B<3I?F;\__,/ ++M'OI)B<3I?F;\__,/'OI)B<3I?V;\__,/'OI(B</I+&?\__,/'OKIJV?\__,/ ++M'OI)B<3IK&?\__,/'OKIT6?\__,/'OI)B<3IWF?\__,/'OKIGV3\__,/'OI( ++MB</ISF3\__,/'OI(B</IYF?\__,/'OKI^V?\__,/'OKI-VC\__,/'OKIBV;\ ++M__,/'OI(B</I5V7\__,/'OI)B<3I5VC\__,/'OI(B</IPV3\__,/'OI)B<3I ++M46C\__,/'OKIG&/\__,/'OI)B<3I5FC\__,/'OI)B<3IEV/\__,/'OI)B<3I ++M9&C\__,/'OI)B<3IBV/\__,/'OI)B<3I9FC\__,/'OI)B<3I:VC\__,/'OI) ++MB<3I<&C\__,/'OI)B<3I<&C\__,/'OI)B<3IA6C\__,/'OI)B<7I@VC\__,/ ++M'OI)B<3IDVC\__,/'OI)B<3I=FC\__,/'OI)B<3IC&C\__,/'OI)B<3ID6C\ ++M__,/'OI)B<3IDVC\__,/'OI)B<3I&&C\_^DT:?S_\P\>^DF)Q.D:9?S_\P\> ++M^DB)P^ET:/S_\P\>^DB)P^EQ:/S_\P\>^NFJ:?S_\P\>^DB)P^E::?S_\P\> ++M^DB)P^EA:?S_\P\>^DF)Q.FM:/S_\P\>^ND8:?S_\P\>^DB)P^E3:?S_\P\> ++M^DB)P^E-:/S_9BX/'X0``````&8N#Q^$``````!F+@\?A```````D$B)\$@Y ++MT0^$AP,``%5$B<9)B<E%,=*#Y@)(B>5!5T6)QT%608/G!$&^_?\``$%5051! ++MO(````!32(G[2(G73(UO`42)?=`/OA>$T@^)+0(``&9F+@\?A```````#Q]` ++M`(UZ/HG10(#_,G9(2(7;#X10`0``#[;2@<(`[P``A?9!#T360HD4DTF#P@%- ++M.>D/A,D```!!#[Y5`$F-30&$T@^)RP```(UZ/DF)S8G10(#_,G>X#[;1B574 ++M@/G?#X?.`0``@>K`````N0$```!-B>]%,=OK$`\?`$F#QP&#Z0$/A$L!``!- ++M.<]T1D$/MC^#QX"#_S]W.L'B!D&#PP$)^D&#^P%UTT2)Y]/O.?IR(H/Y`@^$ ++M^0```(/Y`W6\@?H/`0``=K1F9BX/'X0``````)!!]L`"#X36`0``2(7;#X3? ++M`0``BU74@<(`[P``0HD4DTF#P@%-.>D/A3?___],B1!;05Q!74%>05]=PP\? ++M1```0HD4DTF#P@%).<ETX`^^$4R-:0&$T@^(U/[__TR)Z4*)%)-)@\(!23G) ++M=>%,B1!;05Q!74%>05]=PV8/'T0``$2-43Y)B=5!@/HR28GZ#X;O_O__28UZ ++M`4TYZ0^$R0$``$$/MDT`28U5`83)>-))@\("23G1#X1R____#[8228U-`H32 ++M#XBK_O__28G-28/"`4R)[^M@9BX/'X0``````$2)P8/A`0^%E````$F#QP&Y ++M`0```.F[_O__9@\?1```BTW0A<ET$8G1@^&`@?F`[P``#X0L`0``@?K__P`` ++M#X=\````2(7;=`1"B12328/"`4N-?!T`23GY#X3N_O__#[X73(UO`832#XCB ++M_?__2(7;#X4%____28/"`4R)[^O6@/GOBTW4=VB-D2#___^Y`@```.DE_O__ ++M#Q^$``````")UX'GX`,``('_8`,```^$Y@```$F#QP'I&/[__P\?`$B%VW0@ ++MB=&!XO\#``#!Z0J!P@#<``"!P<#7``!"B523!$*)#)-)@\("Z6/___]FD(V1 ++M$/___[D#````Z;W]__]-`=U(A=MT"KK]_P``Z2K^__])C5(!33GI='=!#[9- ++M`$F-?0&$R7D91(U1/DF)_4&`^C))B=(/AWC^___I8OW__TF#P@)).?D/A/_] ++M__]!#[95`4F-30*$T@^(-OW__^F&_O__2(7;=*F+5=2Y_?\``('"`.\``$'V ++MP`(/1-'IN?W__T4QTDR)%L-)B?KIN_W__TF)TNFS_?__08G+Z7[]__]F9BX/ ++M'X0```````\?`%5(B>5!5D%528GU051)B=1(B?)(B?Y32(G[,?_H/W#]_X3` ++M=&M!BUT(28MU`(7;=&Q(C40>_X`X+W4.ZQL/'P!(@^@!@#@O=`](.<9U\D4Q ++M]C';ZQ`/'P!(*?!$C7`!3(GS3`'V3(GGZ/,Z_?]!.UT(<PU)BT4`08E="$+& ++M!#``6T%<05U!7EW##Q^``````$B)WDR)[^C%.OW_ZXA%,?;KPV9F+@\?A``` ++M````#Q\`2(7_#X27`0``54B-%<\$_?](B>5!5T%6055!5%-(@^P(2(L'2(M` ++M$$@YT`^%=P$``(-O"`%T&4B#Q`A;05Q!74%>05]=PV8N#Q^$``````!(C071 ++MP@$`3(MG$$R-;]#S#WX%`>,!`&9(#V[(2(/`8&8/;,%F2`]NT$B#P&@/$4?0 ++M9D@/;MA(@\`P\P]^!=[B`0!(B0=F#VS"#Q%'X/,/?@73X@$`9@]LPP\11_!- ++MA>0/A,4```!,B>?H<O+\_T&+A"1H`0``A<`/A>L```!)C9PD4"4``$V-M"10 ++M50``ZQQF9BX/'X0```````\?1```2('#@`$``$PY\W0N@'NX`'3N2(NS0/__ ++M_TB)W_]3",9#N`!(@<.``0``2,>#P/W__P````!,.?-UTDF-G"00)0``38VT ++M)!!5``!F#Q]$``!(BS-(A?9T&4F+!"1(B<?_4`A(QP,`````2,=#"`````!( ++M@<.``0``3#GS==-)BT0D&$R)YDB)Q_]0"$B#Q`A,B>^^<````%M!7$%=05Y! ++M7UWI:BW\_V8N#Q^$``````###Q^``````/_02(/$"%M!7$%=05Y!7UW#38V\ ++M)'@"``!-C;0D>"0``$''A"2P`0```0```&9F+@\?A```````3(G_Z&C__/]) ++MBU\02(7;="=)QT<0``````\?@`````!)BP=(B=Y(BQM(BT`@2(G'_U`(2(7; ++M=>A)@<<0`0``33GW=;Q)B[0DZ`$``$B%]G0:28N$))`!``!(B<?_4`A)QX0D ++MZ`$```````!)C;PD4`(``.@(+?S_0<>$)&@!````````Z67^__^09@\?1``` ++M2(7_#X2G`0``54B-%9\$_?](B>5!5T%6055!5%-(@^P(2(L'2(M`$$@YT`^% ++MAP$``(-O$`%T&4B#Q`A;05Q!74%>05]=PV8N#Q^$``````!(C05AP`$`3(MG ++M&$R-;]CS#WX%D>`!`&9(#V[(2(/`8&8/;,%F2`]NT$B#P&@/$4?89D@/;MA( ++M@\`P\P]^!6[@`0!(B4<(9@]LP@\11^CS#WX%8N`!`&8/;,,/$4?X387D#X34 ++M````3(GGZ`'P_/]!BX0D:`$``(7`#X7Z````28V<)%`E``!-C;0D4%4``.LK ++M9F8N#Q^$``````!F9BX/'X0``````&8/'X0``````$B!PX`!``!,.?-T+H) ++MC9PD$"4``$V-M"0050``9@\?1```2(LS2(7V=!E)BP0D2(G'_U`(2,<#```` ++M`$C'0P@`````2('#@`$``$PY\W7328M$)!A,B>9(B<?_4`A(@\0(3(GOOG`` ++M``!;05Q!74%>05]=Z>HJ_/]F+@\?A```````PP\?@`````#_T$B#Q`A;05Q! ++M74%>05]=PTV-O"1X`@``38VT)'@D``!!QX0DL`$```$```!F9BX/'X0````` ++M`$R)_^CH_/S_28M?$$B%VW0G2<='$``````/'X``````28L'2(G>2(L;2(M` ++M($B)Q_]0"$B%VW7H28''$`$``$TY]W6\28NT).@!``!(A?9T&DF+A"20`0`` ++M2(G'_U`(2<>$).@!````````28V\)%`"``#HB"K\_T''A"1H`0```````.E6 ++M_O__D&8/'T0``/,/'OI52(GE059!54%428G\2(M^<%-(BT<02#M'"`^#RE_\ ++M_TF)U4B+%TB-2`%(B4\0@#P"``^$@P```$V%[0^$J5_\_TB)\^B31_[_2#W_ ++M__]_#X>:7_S_03M%"`^#BU_\_TF+50!,B>=(BP3"3(LP3(MH".@&1_[_BT,( ++M28D<)(/X!`^$9%_\_XU0`4B-!$!(P>`#B5,(2(U4`Q!(B5-P2`'#N`$```!, ++MB7,03(EK&$C'0R``````9D&)1"0(6T%<05U!7EW##Q^$``````#S#Q[Z54B) ++MY4%7059,C77`055!5%-(B=-(@^PXB76L9$R++"4H````3(EMR$&)S<8"`$R+ ++M)S'_Z.0H_/],B?=(B47`Z"@H_/],B?=$BW@@Z'PH_/]$B7@@2(G'Z``H_/\K ++M1<!(NKU">N75E+_62+^)B(B(B(B(B$B82&G`@&EG_TP!X$B)1;!(]^)(P>H7 ++M2(G028G32/?G2,'J!4B)T$F)U$CWYTB)U[JKJJJJ2,'O!4&)_TB)?;A)#Z_7 ++M2,'J)(T$E<L$``!(:<"]!FLY2,'H+XU$0`/!Z`*-M`(<;@``C02VC0R%=O;_ ++M_[BMSXJ/2`^OR$C!Z2QIP;4%``#!Z`(IQHGPP>`&B<)(:=)S8Z$+2,'J("G0 ++MT>@!T,'H"FG0IP<``$2-0/_!Z@8IUD&#^`P/ARL!``"!P?0%``"!^0\G``!V ++M(8G(NED7M]%(@\,!2`^OPDC!Z"V-4#!IP!`G``"(4_\IP4&^S<S,S$&)RF8/ ++M;@5GU0``QD,$+4T/K];&0P<M2<'J(T2)T$D/K\9(P>@C08G!B<=-#Z_.2<'I ++M(T.-%(E%#[;)`=(IUXT4@$2)T`'2*=!#C122`=(/ML`IT0^VR<'A"`G!0`^V ++MQ\'A"`G!00^WP&G`S<P``,'A"$0)R68/;LG!Z!-F#_S(C5`PC02``<"(4P5! ++M*<`/M\9F#WX+:<#-S```08/`,$2(0P;!Z!.-4#"-!(`!P(A3""G&@\8P0(AS ++M"4&#_?Y]1DR-:PI!QD4``$B+1<AD2"L$)2@````/A0,"``!(@\0XN`$```!; ++M05Q!74%>05]=PV8/'T0``$2-0/.!P?4%``#IS/[__Y!,B>"+?;C&0PH@2+F) ++MB(B(B(B(B$CWX<9##3I(P>H%2(G02,'@!$@IT$C!X`))*<2XJZJJJDP/K_A) ++MP>\D0XT$?\'@`RG'#[?':<#-S```P>@3C5`PC02``<"(4PLIQT$/M\1IP,W, ++M``"#QS!`B'L,P>@3C5`PC02``<"(4PY!*<1!@\0P1(AC#T6%[0^(S@```$R) ++MV,9#$#I(]^%(P>H%2(G02,'@!$@IT$C!X`))*<-!#[?#:<#-S```P>@3C5`P ++MC02``<"(4Q%!*<-!@\,P1(A;$D6%[0^$DP```$B+1;#&0Q,N2(U+&DB->Q-( ++MNKU">N75E+_62/?BBT6P2,'J%TAITH"6F``IT&9F+@\?A```````9F8N#Q^$ ++M``````")PDB#Z0%)#Z_62,'J(XTTD@'V*?"#P#"(00&)T$@YSW7>08/]!G<X ++M08/%%$UC[4D!W>EG_O__9@\?A```````3(UK$.E5_O__#Q^``````$R-:Q/I ++M1?[__P\?@`````!!@_T'=#J+1:Q)#Z_&2,'H(XU0,(A3&T&#_0AT,XT4@(M% ++MK$R-:QT!TBG0@\`PB$,<Z0C^__]F+@\?A```````3(UK&^GU_?__#Q^````` ++M`$R-:QSIY?W__^@2)?S_9I#S#Q[Z54B)Y4%428GT4TB)^TB#[#!D2(L$)2@` ++M``!(B47H,<"`/@`/A+,````/'P"->`%!@#P\`$B)^'7S2(/'`68/;LA(QT70 ++M`````&8/<,'@9@_61<CH5"+\__,/?D7(,=)(B4709@_61=@/'T``00^V#!2( ++M#!!(@\(!A,EU\$C'`P````"_$````.@?(OS_2(L5B.@``$B)`TB-==!(B=_' ++M``````!(B5,(,=+H+4/]_TB+?=!(A?]T!>A/)?S_2(M%Z&1(*P0E*````'4< ++M2(/$,$B)V%M!7%W##Q]``+\!````,<#I5?___^@?)/S_\P\>^DF)Q.G;6?S_ ++M\P\>^DF)Q.G<6?S_D&8/'T0``/,/'OI52(GE4TB#[#AD2(L<)2@```!(B5WH ++M2(G+QT$(`````$B+/TC'1=``````2(L'2,<!`````$B-3=!(QT78`````/]0 ++M,`^W5="%P'4P9H/Z0'1:9H72=1E(BU7H9$@K%"4H````#X6,````2(M=^,G# ++MN`5``(`/'X``````9H/Z!W;5C4KV9H/Y-G;,9H/Z"'7&2(M]V$B%_W2]2(/O ++M!(E%S.C&(_S_BT7,ZZR02(M5V$B)$P^W5=*)UH/J`8/Z&'<)#[=5UF:%TG0: ++M,<DQTF:)4PB(2PK&0PL!Z7G___]F#Q]$```/MWW4,<EF@_]C#T;/#T;6Z]CH ++M`2/\_Y#S#Q[ZB?"%P'042(T,!S'`#[872(/'`0'02#GY=?+#D/,/'OI52(GE ++M2(/L,&1(BP0E*````$B)1?@QP$B%]G10\P]O!@\I1=!(A=)T,_,/;P(/*47@ ++M2(G^2(U5T#')OYS____H6"'\_TB+1?AD2"L$)2@```!U+,G##Q^``````&8/ ++M;P5(Y@``#RE%X.O'9I!F#V\%..8```\I1=!(A=)UK.O%Z%@B_/\/'X0````` ++M`/,/'OI`A/]U+X72=&.)TDB-!)9F9BX/'X0``````&:0@SX*=0;'!E\```!( ++M@\8$2#G&=>S##Q\`A=)T^(G22(T,ENL-#Q]``$B#Q@1(.?%T'HL&C5#Y@_H& ++M=@6#^!MUZ,<&7P```$B#Q@1(.?%UXL/#D&9F+@\?A```````#Q\`\P\>^E5( ++MB>5!5DF)_D%50513@#X`=&E)B?4QVP\?0`!$C6,!0X!\)0``3(GC=?%$B>9, ++MB??HAB[]_T&+5@A)BP9(B=9(C0R0187D="4QP&9F+@\?A```````9@\?1``` ++M00^V5`4`B12!2(/``4DYQ'7N2HT$H0'SZQMF#Q]$```Q]N@Y+OW_08M6"$F+ ++M!DB)TTB-!)#'``````!!B5X(6T%<05U!7EW##Q^$``````#S#Q[Z54B)Y4%4 ++M28GT4XMV"$B)^^CW+?W_08M$)`B+2PA)BS0DC5`!2(L#2(T\B.C<(_S_08M$ ++M)`@!0PA;05Q=PY!F9BX/'X0```````\?`/,/'OI52(GE059!54F)_4%428GT ++M4XL6A=)T33';#Q\`C4,!B=I(B<-!BP2$A<!U\$2-<@*)WDR)[^B"+?W_08M5 ++M"$F+10!,B>9(C3R03(GRZ&LC_/]!`5T(6T%<05U!7EW#9@\?1```0;X!```` ++M,=OKPF9F+@\?A```````#Q\`\P\>^E5(B>5!5TF)_T%6055!5%-(@^P(@#X` ++M#X2?````28GU,=MF+@\?A```````1(UC`4.`?"4``$R)XW7Q13EG#')+38LW ++M2XT$ID6%Y'0B,=)F9BX/'X0``````&:000^V3!4`08D,EDB#P@%).=1U[<<` ++M`````$&)7PA(@\0(6T%<05U!7D%?7<,/'T``2HT\I00```#H4QW\_TF+/TF) ++MQDB%_W0%Z*,@_/]-B3=+C02F08E?#.N79@\?1```2(L',=OKK&8/'X0````` ++M`/,/'OI52(GE05=)B?]!5DF)]D%528G-0513B=-!C0089@]NR$B#[!A(QP<` ++M````9@]PP>!(C3R%!````$2)1<1F#]9%R.C6'/S_\P]^1<A(B=I,B?9)B0=( ++MB<=)B<1F00_61PCH!R+\_T2+1<1)C3R<3(GN08U0`>CS(?S_2(/$&$R)^%M! ++M7$%=05Y!7UW#D/,/'OI52(GE055)B?U!5$F)]%,QVTB#[`B`/@!T#V:0C4,! ++M08`\!`!(B<-U\XG>3(GOZ%D[_?]!BTT(,<!)`TT`9F8N#Q^$```````/'T`` ++M00^V%`2(%`%(@\`!A-)U\$$!70A(@\0(6T%<05U=PY#S#Q[Z2;K-S,S,S,S, ++MS%5(B?DQ_TB)Y4B#["!D3(L,)2@```!,B4WX28GQ3(U%X)!(B<A(@\<!2??B ++M2(G(2,'J`TB--))(`?9(*?"#P#!!B`0X2(G(2(G12(/X8W?2@\$P28T$.$F- ++M40%!B`D/'T``#[8(2(/H`4B#P@&(2O],.<!U[4'&1#D!`$B+1?AD2"L$)2@` ++M``!U`LG#Z.$=_/^0\P\>^E5(B>5!54F)S8T,,D%40;P``P``4T'3Y$B)^T&! ++MQ,`'``!(@^P(2(MW"$B%]G0&1#MG8'0S3(GO0?]5"$2)YDC'0P@`````3(GO ++M2`'V0?]5`$B)0PA(A<!T(D@%``T``$2)8V!(B4,0,<!(@\0(6T%<05U=PP\? ++M@`````"X`@```.OGD`\?A```````\P\>^E5(B>5!5T%6055!5%-(B=-(@>SX ++M````2(F]</___TB+?W!(B;5H____2(F->/___TR)A1C___],B8T@____9$B+ ++M!"4H````2(E%R#'`Z*HZ_O],BY5X____2(/X!@^$R@@``$F)Q$F#_`</A`P# ++M``!!BT($A<!T"TF#>@@`#X18"@``28MZ,(G#28/\"`^$LP$``$B%_W033(F5 ++M>/___^BH'?S_3(N5>/___TG'0C``````2(T\G0````!,B95X____Z"4:_/], ++MBY5X____08M2!$F)0C"%T@^$.@$``$R)I6#___],BZT8____13'V38G40;__ ++M__]_ZR5FD$V+30"-4`%)@\8!08E5"$V)',%%.W0D!`^#]P```$F+1"0P0L<$ ++ML`$```!)BU0D0$F+1"100@^V!#!"`P2R28M4)#A,BQS"08M%"$$[10QUKTR) ++MG7C___\]_O__?P^'FE+\_XG#1(GZP>L"*<*#PP$YTP]'V@'82(G#2,'@`TB) ++MQTB)A7#____H8QG\_TF+=0!,BYUX____28G!08M%"(7`=1)(A?9U0TV)30!! ++MB5T,Z4____](BXUP____3(G/2(T4Q0````!,B9UH____2(FU>/___^B6'?S_ ++M2(NU>/___TR+G6C___])B<%(B?=,B8UP____3(F=>/___^A/'/S_08M%"$R+ ++MC7#___],BYUX____ZY-,BZ5@____387D#X5^&```2(M%R&1(*P0E*`````^% ++M,!@``$B!Q/@```!;05Q!74%>05]=PTB%_W033(F5>/___^CU&_S_3(N5>/__ ++M_TG'0C``````2(T\G0````!,B95X____Z'(8_/],BY5X____08M*!$F)0C"% ++MR71%2(T4B(/A`70FQP`!````2(/`!$@YT'0M9F8N#Q^$``````!F9BX/'X0` ++M`````)#'``$```!(@\`(QT#\`0```$@YT'7J2(N=</___TV)U.M$9@\?1``` ++M2(U0]TB#^@$/AHH,``!(A<`/A($,``!,BVMP3(GOZ/4W_O])BTT028M5"$@I ++MRD@YP@^"\E#\_T@!R$F)11!(BWMPZ-$W_O](@_@-=;-!BWPD!(7_=.A%,?9! ++MO0```(#K&P\?@`````!)BU0D,$*)!+))@\8!13MT)`1SPDB+>W#HDS?^_TPY ++MZ'+>Z=!1_/]F#Q^$``````!,B[UP____O@L```!,B95X____3(G_Z/4]_O]) ++MBW]PZ%PW_O](B<-(/?___W\/AY11_/]%,=)(C7V`3(G^B87T_O__2(N5:/__ ++M_V9$B56(2(F]Z/[__^A%[___3(N5>/___TF+1W!$C6,!28MZ2$B+4!!(`Q!! ++MB5H$2(F5$/___TB%_W0,Z$8:_/],BY5X____2<="2`````!.C2RE`````$R) ++M[TR)E7C____HP!;\_TR+E7C___])BWI028E"2$B%_W0,Z`<:_/],BY5X____ ++M2<="4`````!(B=],B95X____Z(D6_/],BY5X____28MZ6$F)0E!(A?]T#.C0 ++M&?S_3(N5>/___TG'0E@`````2HT\Y0````!,B95X____Z$T6_/],BY5X____ ++M28MZ0$F)0EA(A?]T#.B4&?S_3(N5>/___TG'0D``````3(GO3(F5>/___^@6 ++M%OS_3(N5>/___TB+C7#___](QT68`````$C'1:@`````28E"0$R+:7"%VP^$ ++MW!0``$C'A4C___\`````B=A,B>I(B84(____2,>%./___P````!(QX58____ ++M`````,>%*/___P````#'A2S___\`````#Q^``````$B+0A!(`P),B>],B95X ++M____2(N5$/___TF+2EA(B[5(____2"G02(D$\>B!-?[_N@```(!(B850____ ++M2#G0#X.Q4/S_2(N%4/___TR+E7C___^)A6C___^#Z`&)A4#___^#^#\/AW=0 ++M_/_'A7C___\`````13'_9@\?A```````28MU$$F+10A(.<8/@X)0_/])BWT` ++M2(U.`4F)31!$#[8T-T&`_C\/AY]._/]%B?%%B?!!@^$/08/@#T&`^0@/A\)0 ++M_/]!#[;12"G(2#G0#X*>4/S_,=M%A,ET*$B-=#<"2(T$#S';08UX_T@!_@\? ++M``^V.$C!XPA(@\`!2`G[2#G&=>U(`<I)B54008N2@````(/Z?P^&I@0``$&\ ++M`0```$'VQA`/A48%``!$`:5X____BX5X____@_A`#X<W3OS_08/F(`^%C@4` ++M`(N%:/___T&#QP%!.<</A2/___^#O5#___\!#X7:!@``,<"#O7C___\!NP$` ++M```/A<8&``"+C2S___])BU)`2(NU2/___XD,LHG*BXU0____`<J+C2C___^) ++ME2S___])BU)(B0RR08L2*<HYV@^"ITW\_TB+C4C___])BU)0`9TH____B`0* ++M2(N%</___TB#P0%(B8U(____2(M0<$B+A0C___](.<$/A0K^__])BT)`2(G. ++M2(T,C0````!(P>8#2`'(2(M:$$@#&DB+E1#___](*=.+E2S___^)$$F+0DB+ ++ME2C___^)%`A)BT)82(D<,$D[6F@/A/81``!)BWI@2(7_=!M,B95X____Z*<6 ++M_/],BY5X____2<="8`````!)QT)H`````$B%VP^%>1(``$B+O3C___](A?]T ++M$TR)E7C____H;Q;\_TR+E7C___](B[U8____2(7_=!-,B95X____Z%`6_/], ++MBY5X____2(N]Z/[__TR)E7C____HAC+^_TB+O7#___^^#````.AE.?[_3(N5 ++M>/___XN=+/___TF+>CA(A?]T#.@*%OS_3(N5>/___TG'0C@`````2,'C`T4Q ++MY$B)WTR)E7C____HA1+\_TR+E7C___]$BX4L____28E".$6%P'0K3(NM</__ ++M_TV)U@\?0`!)BWUPZ&<R_O])BU8X2HD$(DF#Q`A).=QUYDV)\DR+I7#___]) ++MC5H038G528M\)'#H.S+^_TB%P'1!2(/X"@^$;0P``$V+="1P3(GWZ!\R_O]) ++MBTX028M6"$@IRD@YP@^"'$O\_T@!R$F+?"1P28E&$.CZ,?[_2(7`=;](BX5P ++M____3(FM>/___TB+>'#HWC'^_TR+E7C___])B<3I0_?__TR+O7#___])BW]P ++MZ+\Q_O](B0-).8>0````#X+`2OS_2(N%</___TR+E7C___](BWAP3(F58/__ ++M_^B1,?[_2(F%>/___T@]____?P^'Q4O\_TB+O7#___^^"0```$R+M7C____H ++M]C?^_TR+E6#___]%B?=%C6X!28MZ"$B%_W0,Z)H4_/],BY5@____2<=""``` ++M``!*C3SM`````$R)E6#____H%Q'\_TR+E6#___](BXUX____28E""$&)"H7) ++M#X0D$```2(F=6/___T&)S44Q]DV)U$B+G7#___]$B;U@____2<'E`TV)]P\? ++M1```3HDT.$B+>W#HTS#^_TP!\$F)Q@^"V$G\_TF#QPA)BT0D"$TY[W791(N] ++M8/___TB+G5C___]-B>)-B?1(BXUX____3(UMH$R)),AF#Q]$``!(BX5P____ ++M3(F5>/___TB+>'#H>3#^_TR+E7C___](A<`/A)8+``!(@_@*#X3!"@``2(N% ++M</___TR)E7C___],BW!P3(GWZ$4P_O])BTX028M6"$@IRD@YP@^"0DG\_T@! ++MR$R+E7C___])B480ZY&_"````$R)E7C____H`!#\_TR+E7C___](QP`````` ++M28E""$&+0@3I?/7__P\?1```08G4,?;K+F8/'X0``````$&-!#1)BTIXT>B) ++MQTB+#/E(.=D/A#'[__](.<L/@XX!``!!B<1!.?1UUD$[DH0````/A($!``!- ++MBT)X1(GA08U$)`%$*>),B94P____28TTR$C!X@-)C3S`2(F-8/___^BK$_S_ ++M3(N5,/___TB+C6#___]!O`$```!)BT)X2(D<R$&#@H`````!0?;&$`^$Q_K_ ++M_V9F+@\?A```````9I!,B>],B95@____Z#$O_O^Z````@$@YT`^#$DO\_TR+ ++ME6#___]!B<2#^$`/ASI)_/],B>],B95@____Z`$O_O^Z````@$@YT`^#"4G\ ++M_TR+E6#___^#^`$/A%WZ___I@TK\_V8/'T0``$R)[TR)E6#____HR2[^_[H` ++M``"`2#G0#X,(2/S_28M-$$F+50A,BY5@____2"G*2#G"#X*C2OS_2(/[(74Z ++M@_@!=35(BY5P____2(M2<$B+,DB+4A`/MA0603A2<',$08A2<$@!R$F)11#I ++M`_K__V8/'X0``````$B!^P$!`P!UXH/X!77=2(NU</___TB+5G!(BS)(BU(0 ++MBU06`4$Y4G1SP4&)4G3KNXUP`>EM_O__B=!,B94P____P>@"C40"`8F%8/__ ++M_TC!X`-(B<=(B84`____Z.\-_/],BY4P____28G`08N2@````$F+<GB%TG4; ++M2(7V=4B+A6#___]-B4)X08F"A````.DF_O__2(N-`/___TC!X@-(B<=,B97X ++M_O__2(FU,/___^@:$OS_2(NU,/___TR+E?C^__])B<!(B?=,B94`____3(F% ++M,/___^C3$/S_3(N5`/___TR+A3#___]!BY*`````ZXN+C4#___\YC7C___\/ ++M@NM(_/](BX58____B[5X____2(U]D$R)E6#___](B460Z#D[_O](BT60B[5H ++M____2(U]H$B)A5C___](BX4X____2(E%H.@4._[_2(M%H$2+C4#___\QVTR+ ++ME6#___](B84X____187)#X2O````2(N%</___TR)E6#___](BWAPZ-DL_O^Z ++M````@$@YT`^#V4?\_XN5>/___TR+E6#___\YT`^#L$?\_TB+E5C___](`="` ++M.``/A9U'_/_&``%(BX5P____3(F58/___TB+>'#HB2S^_[H```"`2#G0#X-T ++M1OS_BY5H____3(N58/___SG0#X-+1OS_2(N5./___T@!T(`X``^%.$;\_\8` ++M`8/#`3F=0/___P^%4?___XN=>/___XN%0/___T4QY"G#@_L!=EQF9BX/'X0` ++M`````$R)[TR)E6#____H$2S^_[H```"`2#G0#X.!1?S_BY5X____3(N58/__ ++M_SG0#X-81?S_2(N56/___T@!T(`X``^%147\_T&#Q`'&``%$.>-UKTB+E3C_ ++M__^+C6C___\QP(`Z`'0K@\`!2(/"`3G(=?!(BT7(9$@K!"4H````#X2(1OS_ ++MZ8A&_/\/'X0``````(N-4/___SG(#X50]___Z]!-B>))B<1(B9UP____08M" ++M!(G#28/\"0^$10<``$4Q[87`#X2O````3(FE:/___TR+O1C___]-B=;K$`\? ++M1```28/%`8G#03G%<U%)BU8P0H,\J@$/AS=$_/]UY$F+3D!)BU900@^V%"I" ++M`Q2I28M..$B+'-%!BU<(03M7#`^$:P8``$V+)XU*`4F#Q0%!B4\(28D<U(G# ++M03G%<J],BZ5H____38GRA=MT+4F+<C")V3'`,=MF9BX/'X0``````)"+%(:# ++M^@$/A,0%```!TTB#P`%(.<AUZ4R-;:!-A>1U:NGT`@``#Q\`2(N%</___TR+ ++M8'!,B>?HA2K^_TF+3"0028M4)`A(*<I(.<(/@H!#_/](`<A,BY5X____28E$ ++M)!!(BX5P____3(F5>/___TB+>'#H22K^_TR+E7C___](A<!)B<0/A(\"``!, ++MB95X____28/\"G612(N]</___TR)ZHG>2,=%H`````!(QT6H`````.BXP?[_ ++M2(N%&/___TR+E7C___]$BW`(2(N%(/___T0Y<`S'0`@`````#X/!!```187V ++M#XBC1/S_2(N%(/___TB+.$B%_W033(F5>/___^@*#?S_3(N5>/___TR+O2#_ ++M__]%B?1,B95X____3(GG2<<'`````$''1PP`````Z'L)_/]F00]NSD4Y=QQ) ++MB0=F#W#!X$''1Q@`````3(N5>/___V9!#]9'"'-=2(N%(/___TB+>!!(A?]T ++M$TR)E7C____HEPS\_TR+E7C___],B[T@____2HT\I0````!,B95X____2<=' ++M$`````!!QT<<`````.@%"?S_28E'$$R+E7C___]%B7<<2(N%(/___T&+<@1, ++MBUV@1(EP&(7V#X0@`0``28MR,(F=6/___S'_,<E,B[UP____2(N=(/___S'` ++M2(FU8/___^L_#Q]``$$[>AAS2TF+4A"`/#H`=$%,BP.)PH/``4'&!!`!38M" ++M($6+#+A,BT,018D,D$B#QP%!.WH$#X.T````2(N58/___T2+#+I!@_D!=+1% ++MA<ETW$R)E7C___],BR,QTDF)_DR)K6C____K*F9F+@\?A```````9F8N#Q^$ ++M``````"02(M[$(/"`8/``42)%+=$.<IS/8G.13'2@\$!00^V/#.)QD&(/#1` ++MA/]TU4F+?W!,BU<038U"!$PY1P@/@KE"_/],BR]'BU05`$R)1Q#KL9!,BY5X ++M____3(GW3(NM:/___TB#QP%!.WH$#X),____BYU8____387;#X1B_?__3(G? ++M3(F5>/___^@#"_S_3(N5>/___^E'_?__2(N%&/___XM8"$B+A2#___\Y6`@/ ++MA"\!``!(BX4@____QT`(`````#E8#`^#,`$``(7;#XCJ/_S_2(N%(/___TB+ ++M.$B%_W033(F5>/___^BC"OS_3(N5>/___TR+O2#___]!B=Q,B95X____3(GG ++M2<<'`````$''1PP`````Z!0'_/]F#V[303E?'$''1Q@`````9@]PPN!)B0=, ++MBY5X____9D$/UD<(#X+8````2(N%(/___T&+2@2)6!B%R0^$A0```$V+6C!% ++M,<DQ]DB)P^LV13M*&',]28M"$$*`/`@`=#)(BPN)\$B+4Q"#Q@'&!`$!28M* ++M($*+#(F)#())@\$!13M*!'-!0XL,BX/Y`73!A<ETZ4R+`TB+>Q`QP&8/'X0` ++M`````(T4!H/``4'&!!``QP27`````#G(<NH!SDF#P0%%.TH$<K](BX5P____ ++M2(MX<.A.)O[_28G$Z6+M__](BX4@____B5@(QT`8`````#E8'`^#,____X7; ++M#XA=/_S_08G<2(N%(/___TB+>!!(A?]T$TR)E7C____H50G\_TR+E7C___], ++MB[T@____2HT\I0````!,B95X____2<='$`````!!QT<<`````.C#!?S_08E? ++M'$R+E7C___])B4<0Z<;^__^+M?3^__],B>=(B=KH7KW^_TB)WDR)Y^B#-?[_ ++MZ5GS__],B[5P____3(GJ1(G^2,=%H`````!(QT6H`````$R)]TC'1;`````` ++M2,=%N`````#H&;W^_TR)[DR)]^@^-?[_2(M]L$R+E7C___](A?]T#.B9"/S_ ++M3(N5>/___TB+?:!(A?\/A*7T__],B95X____Z'D(_/],BY5X____Z8WT__]( ++MBX4@____1(EP",=`&`````!$.7`<#X/[^___187V#XB,/?S_18GTZ8W[__]! ++M.T(8#X,R^O__28MZ$(`\!P`/A2;Z___I'_K__T&+"DB+M7#___],B95X____ ++M28M2"$B+AI````!(*P-(.P3*#X*[/?S_2(M^<.BA)/[_3(N5>/___TF)Q.G\ ++MZ?__@?K^__]_#X>#/?S_B="Y____?\'H`BG1@\`!.<@/1\&-#!")C7C___]( ++MP>$#2(G/2(F-8/___^A&!/S_08M7"$F+-TB+C6#___])B<2%T@^%]@(``$B% ++M]@^%!P,``(N%>/___TV))T&)1PQ!BT8$Z23Y__\QVX7`#X3E`0``28G=38G7 ++M2(N=&/___^L.28/%`44[;P0/@\4!``!)BT<P2HTTK0````!"BPRHA<ETWH/Y ++M`0^$_`(``#'`3(FM2/___TF)W$&^`0```(F->/___TB+G7#___])B<5(B;50 ++M____3(F]0/___^LU#Q^$``````!-BQ0DC7@!08E\)`A-B03"30'H38G%#X*5 ++M//S_08/&`40YM7C___\/A.(```!(BWMPZ&HC_O])B<!!BT0D"$$[1"0,=;L] ++M_O__?P^'33S\_XG"N?___W],B85@____P>H"*<&#P@$YR@]'T42-/`)$B;UH ++M____2<'G`TR)_^@.`_S_28LT)$R+A6#___])B<)!BT0D"(7`=1E(A?9U1HNU ++M:/___TV)%"1!B70D#.E2____3(G72(T4Q0````!,B?E,B858____2(FU8/__ ++M_^@]!_S_2(NU8/___TR+A5C___])B<)(B?=,B958____3(F%8/___^CV!?S_ ++M08M$)`A,BY58____3(N%8/___^N/3(N]0/___TB+M5#___],B>-,BZU(____ ++M28M/0$F+5U!"#[84*@,4,4F+3SA(BQ313#G"#X)I._S_3"G"28G4.7L,=$A, ++MBS.-1P%)@\4!B4,(38DD_D4[;P0/@CO^__]-B?I(BX5P____3(F5>/___TB+ ++M>'#H&"+^_TR+E7C___])B<1!BUH$Z2OW__^!__[__W\/A_8Z_/^)^+K___]_ ++MP>@"*?J#P`$YT`]'PHT,.(F->/___TC!X0-(B<](B8UH____Z+D!_/^+>PA( ++MBS-(BXUH____28G&A?]U%DB%]G4MBX5X____3(DSB4,,Z57___^)^DB)QTB) ++MM6C___](P>(#Z/H%_/](B[5H____2(GWZ,L$_/^+>PCKQDB%VP^$-N[__TF+ ++M>F!(B[40____2(G:3(F5>/___^CC`OS_3(N5>/___^D0[O__2,'B`TB)QTB) ++MM6#____HI`7\_TB+M6#___](B??H=03\_T&+5PCIZ/S__\>%*/___P````!, ++MB>HQ]C')QX4L____`````$C'A3C___\`````2,>%6/___P````#I0NW__T4Q ++MY.DY\/__28M70$F+1U"+>PA"#[8$*`,$,DF+5SA,BR3"Z6S^__](B=],B95X ++M____Z)\`_/],BY5X____2(G'28E"8$F)6FCI+____^CC`OS_\P\>^DB)P^DT ++M.?S_\P\>^NE..?S_\P\>^DB)P^GI._S_\P\>^NG(.OS_\P\>^DB)P^GK.OS_ ++MZ6DY_/_S#Q[Z2(G#Z7P\_/]F9BX/'X0``````)#S#Q[Z54B)Y4%7059!54%4 ++M4TB2@```!(B47(,<!(BT$(Q@,`2(G+2(FUH/[__TB)A8#^__](BT%( ++M08U(`4C'A3#___\`````BP2PB850_O__2(L$\DB+%,I(*<)(`T-@2(V=(/__ ++M_TB)WTB)A2#___](B94H____Z#@?_O](B87P_O__2#W___]_#X?C//S_2(N% ++M\/[__XF%V/[__X/H`8F%X/[__X/X/P^'[D#\_TR+O?#^__],BX4@____3(N- ++M*/___TR+E3#___],B?I,B870_O__2,'B!4R)C0#___],C6H(3(F5"/___TR) ++M[^BR_OO_3(DX2(G&3(N%T/[__TB)A;#^__](C4`(28U4-0!,BY4(____2(F% ++MJ/[__TR+C0#___])B<1F9BX/'X0``````&:02,=`"`````!(@\`@2,=`\``` ++M``!(.<)UYXN%X/[__TB+M;#^__]%,?9,B[VH_O__2(F%2/[__TC!X`5(C40& ++M*$B)A0C___]F#Q^$``````!-.<H/@_X[_/]'#[8L$$F-<@%!@/T_#X?_._S_ ++M1(GH18GK@^`/08/C#SP(#X<F//S_3(G*#[;X2"GR2#GZ#X(4//S_A,`/A(4) ++M``!!C4/_3XU4$`))`<))C10P,<!F9BX/'X0```````\?A```````#[8*2,'@ ++M"$B#P@%("<A,.=)U[4F)!TR-%#=!]L40#X6\!@``0<='&`$```!!@^4@#X1: ++M!@``2(G?3(F%(/___TR)C2C___],B94P____Z&T=_O])B<6X````@$R+A2#_ ++M__],BXTH____3(N5,/___TDYQ0^#ASO\_TF+?PA-.V\0#X3I!@``2(7_=#=, ++MB8W(_O__3(F5T/[__TR)A0#____H:@#\_TG'1P@`````3(N-R/[__TR+E=#^ ++M__],BX4`____2<='$`````!-A>T/A;D(``!F9BX/'X0``````)!(BX4(____ ++M10-W&$F#QR!%B?5).<</A97^__]$BYW@_O__187;#X2X"0``2(N-2/[__TR) ++MC<C^__],B970_O__2(T\S0````!,B84`____Z'S\^_])B<=)B<:+A>#^__], ++MBXW(_O__3(N5T/[__TR+A0#___])C03'2(F%"/___TB)WTR)A2#___],B8TH ++M____3(F5,/___^A#'/[_O@```(!(.?`/@X,G``!!B09(B=_H*AS^_[X```"` ++M3(N%(/___TR+C2C___],BY4P____2#GP#X-%/?S_08E&!$B+A0C___])@\8( ++M23G&=9.+A>#^__]!.<4/@C@Z_/^+C>#^__]$B>A,B84(____*<B)A<C^__\/ ++MA(T(``")PDR)C=#^__],C325`````$R)E0#___],B??HEOO[_X.]R/[__P%( ++MB87`_O__3(N5`/___TR+C=#^__],BX4(____=&%(BX7`_O__28G%20'&ZP]F ++MD$&)10!)@\4$33GU='5(B=],B84@____3(F-*/___TR)E3#____H1AO^_[X` ++M``"`3(N%(/___TR+C2C___],BY4P____2#GP<K?IDSO\_V:01(N%X/[__S'2 ++M187`#X49"```9F8N#Q^$```````/'P!(BX7`_O__B1!!.=4/A$$(``!-.=$/ ++MA3@F``!(BX6X_O__2(N-H/[__X.]\/[__R!(BT!0#[8<"`^'3"$``(NUX/[_ ++M_TC'A6#___\`````2,>%:/___P````!(QX5P____`````$C'A7C___\````` ++M2,=%@`````!(QT6(`````$C'19@`````2,=%H`````!(QT6H`````$C'1;`` ++M````2,=%N`````!(QT7``````(7V#X5M!@``QX5H____`````$R+M?#^__]( ++MC85@____2,>%8/___P````#'A6S___\`````2HT\M0````!(B84`____Z/?Y ++M^_](B85@____1(FU;/___TB+A?#^__](BWVXQT7``````(F%:/___SE%Q'-& ++M2(7_=`7H(OW[_TR+M?#^__](C85@____2,=%N`````#'1<0`````2HT\]0`` ++M``!(B84`____Z)'Y^_](B46X2(G'1(EUQ(N%\/[__XNUV/[__S'2B47`2(N% ++M8/___V9F+@\?A```````9F8N#Q^$```````/'X0``````$&+3"0828/$((D, ++MD$F+3"3@2(D,UTB#P@$Y\G+CB5V0BX7(_O__QT6(`````#E%C`^#.04``(7` ++M#XA@.?S_2(M]@$B%_W0%Z&3\^_^+E<C^__](C85@____2,=%@`````#'18P` ++M````2(T\E0````!(B94(____2(G32(F%`/___^C*^/O_2(E%@$B+E0C___^) ++M78R)78A(B[7`_O__2(M]@$C!X@+H1?K[_XN%:/___\=%H`````#'1;`````` ++MA<`/A"D#``"#Z`$[A7C___\/A1H#``!(QX7P_O__`````#'`QX70_O__```` ++M``\?`(NU\/[__XFU"/___SM%I`^$:P(``$R+;9B+M=#^__^-4`%(BYWP_O__ ++MB56@08ETA0!(BX5@____3(TLF$&+30"%R0^$K@$``$4Q]NM(9F8N#Q^$```` ++M``!F9BX/'X0``````&9F+@\?A```````9I!,BT6HB[4(____C5`!08/&`8E5 ++ML$&)-(!!BT4`03G&#X-;`0``BT6P.T6T==,]_O__?P^'CCC\_XG#NO___W_! ++MZP(IPH/#`3G3#T?:1(TD`TB-A6#___],B>-)P>0"2(F%`/___TR)Y^B#]_O_ ++M28G`BT6P2(MUJ(7`=15(A?9U-$R)1:B)7;3I>/___P\?0`!,B<=(C12%```` ++M`$R)X4B)M0#____HQOO[_TB+M0#___])B<!(B?=,B84`____Z(WZ^_^+1;!, ++MBX4`____Z[&028M_"$B%_W0W3(F-R/[__TR)E=#^__],B84`____Z%WZ^_]) ++MQT<(`````$R+C<C^__],BY70_O__3(N%`/___TG'1Q``````Z0/Z__\/'P!( ++MB=],B84@____3(F-*/___TR)E3#____HPQ;^_[X```"`2#GP#X-Q./S_08E' ++M&$B)W^BI%O[_O@```(!,BX4@____3(N-*/___TR+E3#___](.?`/@O+X___I ++MDS?\_Y`!A=#^__](@X7P_O__`42+I6C___](BX7P_O__1#G@#X/2````BT6@ ++MZ>/]__\/'P!-A>T/A&?Y__],B<A,*=!,.>@/@HHW_/]+C3003(GJ3(F-R/[_ ++M_TR)E=#^__],B84`____Z*?W^_],BY70_O__3(N%`/___TR+C<C^__]-`>KI ++M&OG__V8N#Q^$```````]_O__?P^'T3;\_XG#NO___W_!ZP(IPH/#`3G3#T?: ++M1(TD`TB-A6#___],B>-)P>0"2(F%`/___TR)Y^B@]?O_28G%BT6@3(MUF(7` ++M#X5%`0``387V#X52`0``3(EMF(E=I.DR_?__BT6(`X5X____.870_O__#X3D ++M`@``#Q]``+L!0`"`2(M]N$B%_W0%Z*WX^_](BWVH2(7_=`7HG_C[_TB+?9A( ++MA?]T!>B1^/O_2(M]@$B%_W0%Z(/X^_](B[UP____2(7_=`7H<OC[_TB+O6#_ ++M__](A?]T!>AA^/O_2(.]P/[__P!T#$B+O<#^___H2_C[_TV%_W0(3(G_Z#[X ++M^_](BX6P_O__3(NUJ/[__TB+`$F)Q4B)A0C___](BX6H_O__2<'E!4Z-)"A, ++M.>!T)V9F+@\?A```````#Q]``$F+?"3H28/L($B%_W0%Z.WW^_]-.>9UZ$B+ ++MO;#^__])C74(Z-CY^_](BT7(9$@K!"4H````#X4<'0``2('$N`$``(G86T%< ++M05U!7D%?7<.0,<#IK/;__TB-%(4`````3(GA3(GV3(GOZ+/X^_],B??HB_?[ ++M_XM%H.F>_O__3(GO3(F-R/[__TR)E=#^__],B84`____Z`;T^_])B4<(3(N% ++M`/___TB)QTV);Q!,BY70_O__3(N-R/[__^FJ_?__BY7(_O__B56(A=(/A1?[ ++M___I)OO__TB+O4C^__](C85@____2(F%`/___TC!YP/HK?/[_XNUX/[__TB) ++MA7#___\QTF9(#V[^9@]PQ^!F#]:%>/___V9F+@\?A```````9F8N#Q^$```` ++M``!F#Q]$``!)BPS72(D,T$B#P@%(.=9U[\>%:/___P````"+A?#^__\YA6S_ ++M__\/@UKY__](B[U@____2(7_#X0%^?__Z([V^__I^_C__TTYT0^%GS3\_TB+ ++MA;C^__](BXV@_O__@[WP_O__($B+0%`/MAP(#X>/&P``2,>%P/[__P````#I ++M._C__T4Q_^D1]___BX78_O__C4C_9F8N#Q^$``````"0,<#K&69F+@\?A``` ++M````D$B#P`%(.<$/A,/W__]!.13'=>V%P`^(M??__X/"`4$YU77-2(M%R&1( ++M*P0E*`````^$Q3/\_^G.,_S_#Q]$``!(C85@____2,>%0/___P````!(QX5( ++M____`````$B)A0#___](B850____187D#X66%```2(V%0/___XMUD,>%2/__ ++M_P````!(B<=(B84(____Z/D*_O^$P`^$P?S__TB+M9C^__](A?8/A&X3``!( ++MBXVX_O__2(N=H/[__TB+44!(BT%0#[8$&`,$FDB+43A(BP3"2(L62#G0#X)) ++M$P``2#G"#Y2%2/[__TB+C>C^__^`.0!T3XN%:/___SM!$'5$A<`/A&43``!( ++MBW$(2(T4A0`````QP$B+C6#____K'69F+@\?A```````#Q]$``!(@\`$2#G" ++M#X0Q$P``BQP&.1P!=.M(BYWH_O__2(N[@````,8#`$B%_W012(L'_U`02,># ++M@`````````"_N````.AZ\_O_2(N-Z/[__TB)PTC'0!``````2,=`&`````#S ++M#WX%Z*<!`$C'0"``````2(NY@````$C'0"@`````2,=`,`````!(QT`X```` ++M`$C'0$@`````2,=`4`````!(QT!8`````$C'0&``````2,=`:`````!(QT!P ++M`````$C'0'@`````2,>`@`````````#&@(@`````2(T%H)H!`&9(#V[X2(E9 ++M<$B+!7"V``!(QX.8`````````&8/;,=(QX.@`````````$C'@Z@````````` ++M2,>#L`````````!(B8.,````#Q$#2(7_#X3\$0``2(L'_U`02(N%Z/[__TB+ ++M>'!(B9B`````2(7_#X3O+_S_2(N%Z/[__TB-5PA(C0UJ1?[_2(NU`/___TB) ++M4'A(BT<(2(M`$$@YR`^%3A(``.C)0/[_B<.%P`^%I/K__TB+A;#^__]%,>WS ++M#WX]M:8!`$R-8"!(C04JC@$`9D@/;LAF#VSY#RF]\/[__V:01(L-F0,"`&8/ ++M[\!)BTPDZ`\IA4#___]%A<D/A'P/``!$B<\QP$B--70!`@#K'V9F+@\?A``` ++M````#Q^``````$B#P`%(.?@/A`,!``!,BS3&23M.$'7I38L&387`=.''A53_ ++M__\!````,=)FB950____1#G(#X/5````0?_008!^)`!(B<,/A4P/``!!@WX@ ++M`0^$K!```$B%P'0;2(L`2(T-:G[\_TB+0`A(.<@/A8H4``"#0R`!2(N-2/__ ++M_TB%R71T2(L!2(TUHYW\_TB+0!!(.?`/A6T4``"#:2`!=5=(B8TP_O__2(U! ++M*$B-<5!(B9W0_O__2(GS3(FE*/[__TF)Q$F+/"1)@\0(Z)#Q^_],.>-U[DB+ ++MC3#^__^^*`,``$B+G=#^__],BZ4H_O__2(G/Z-GP^_]!BT8@2(F=2/___XF% ++M5/___P\?A```````08L$)(/X`0^$`PX``$R+M4C___]-A?8/A"\.```[A53_ ++M__\/A0$.``!(BX7H_O__2(T5R4?^_TB+>'A(BP=(BT`82#G0#X4E#@``2(NU ++M"/___TB#[PCH=4/^_TB+A4C___](A<!T6$B+$$B-#:^<_/](BU(02#G*#X4` ++M#@``@V@@`74[3(UP*$R)I=#^__](C5A038GT28G&28L\)$F#Q`CHJO#[_TPY ++MXW7NOB@#``!,B?=,BZ70_O__Z`'P^_](B[U`____2(7_=`9(BP?_4!"+A=C^ ++M__]!@\4!28/$($$YQ0^"R/W__TB+A>C^__^+G6C___\Y6!0/@CL0``!(BX7H ++M_O__B5@0A=L/A0P6``!(BX7H_O__BYUX____.5@D#X/^$@``2(MX&$B%_W0% ++MZ*SP^_],B[7H_O__08G<2<'D`TG'1B``````3(GG2<=&&`````#H)NW[_V8/ ++M;OM)B4882(G'9@]PQ^!F00_61B!(B[5P____3(GBZ*'N^_](BX7H_O__BUV( ++M.5@T#X-O$@``2(MX*$B%_W0%Z$#P^_],B[7H_O__08G<2<'D`DG'1C`````` ++M3(GG2<=&*`````#HNNS[_V8/;OM)B48H2(G'9@]PQ^!F00_61C!(BW6`3(GB ++MZ#CN^_^+19!(B[7H_O__BUV@B48X.5Y,#X-I$@``2(M^0$B%_W0%Z-'O^_], ++MB[7H_O__08G<2<'D`DG'1D@`````3(GG2<=&0`````#H2^S[_V8/;OM)B49` ++M2(G'9@]PQ^!F00_61DA(BW683(GBZ,GM^_](BX7H_O__BUVP.5A<#X/=$0`` ++M2(MX4$B%_W0%Z&CO^_],B[7H_O__08G<2<'D`DG'1E@`````3(GG2<=&4``` ++M``#HXNO[_V8/;OM)B4902(G'9@]PQ^!F00_61EA(BW6H3(GBZ&#M^_](BX7H ++M_O__BUW`.5AL#X.Z$0``2(MX8$B%_W0%Z/_N^_],B[7H_O__08G<2<'D`TG' ++M1F@`````3(GG2<=&8`````#H>>O[_V8/;OM)B49@2(G'9@]PQ^!F00_61FA( ++MBW6X3(GBZ/?L^_](BX7H_O__Q@`!2(N%Z/[__TB-%;_[_?](BWAX2(L'2(M` ++M,$@YT`^%;!```$B#[PCH(OK]_XG#A=L/A;WU__^+A5#^__]%,>U(B[6`_O__ ++M2,>%T/[__P````!(BXV@_O__QH50_O__`,>%H/[__P````!(C03&2(F%@/[_ ++M_TB+A;C^__](BT!`1(LTB$B+A>C^__](C34-WOW_2(MX>$B+!TB+0"!(.?`/ ++MA5T/``!(BX>@````2(NUT/[__TB+!#!(!?````!,BR!-A>0/A*4.``"`O5#^ ++M__\`#X6Z````#[:=5_[__X3;=%9)BP0D2(N5"/___TB--4N>``!,B>=(QX5` ++M____`````/\02(N]0/___TB%_W0C2(L'2(T5%3?]_TB+0!A(.=`/A9`0``"+ ++M15"(G5#^__^)1SSHQ[___TF+!"1(BY4(____3(GG2,>%0/___P````!(C377 ++MG0``_Q!(B[U`____2(7_="9(BP=(C0W?-OW_2(M`&$@YR`^%'`\``$B+15C& ++MA5#^__\!2(E'..C^O/__28L$)$B+E0C___],B>=(QX5`____`````$B--<Z= ++M``#_$$B+M;#^__](BXW0_O__N_____](B[U`____2(M$CAB)PD@YPP^"H@\` ++M`$B%_P^$>`T``$B+!TB+=(X0_U`82(N]0/___XG#/5<`!X`/A'H/``"%P`^% ++M=P\``$B%_W0&2(L'_U`028L$)$B-E1C___],B>=(QX48____`````$B--8>U ++M``#_$$B+O1C___](A?\/A'`!``!(BX5H_O__Q@`!2(N%</[__TB%P`^$R0\` ++M`$B)QTB+`$C'A4#___\`````2(NU"/____]0&(G#A<`/A3$-``!(BYV0_O__ ++M2(N%8/[__TB+.\8``4B%_W08BT,,,?:-4`%(P>("Z*SI^__'0P@`````2(NU ++M0/___TB%]@^$UPP``$B+G9#^__](B=_H9OW\_XM;"$B)V$@!P$B)A?#^__\/ ++MA8D,``!%,<`QR4B+M4#___\QP$B%VW0P9F8N#Q^$``````!F9BX/'X0````` ++M``\?@`````"+%(:(%$&(=$$!2(/``4@YPW7M2(N]&/___TB)C3#^__](B<Y$ ++MB<)(BP?_4!A(BXTP_O__A<")PP^%E@X``$B+E?#^__](A=(/A2(,``!(A<ET ++M"$B)S^@UZ_O_2(N]0/___TB%_W0BBU?\,?:#XOSHS.C[_TB+A4#___](A<!T ++M"4B->/SH=^K[_TB+O1C___](A?]T!DB+!_]0$$F+!"1(BY4(____3(GG2,>% ++M0/___P````!(C37EFP``_Q!(B[U`____2(7_#X1;#```2(L'#[:U2/[___]0 ++M&$B+O4#___^)PX7`#X4/#@``2(7_=`9(BP?_4!`/MH5(_O__B(4P_O__2(N% ++ML/[__TB+M=#^__^+1+`@28G$2(7`#X0,"P``2(T<Q0````!(B=_H_^;[_TB) ++MWTB)A?#^___H\.;[_T2+G>#^__](B<-#C30L,<E%A=L/A$\*```/'X`````` ++MBX78_O__3(N%N/[__XU0_S'`ZQEF9BX/'X0``````)!(@\`!2#G"#X0;"@`` ++M13DLQW7M2)A$B?=!@\4!00-\QP1)BT`X2(T$^$B)!`M(@\$(1#GN=;I!B?5( ++MBX7H_O__2(.]F/[__P!(BWAX2(L'2(M`.'0/BXV@_O__.4V0#X0-"P``2(N- ++MN/[__XNUH/[__TB+23A!C10V2(T4T4B-#=P._O](.<@/A2X+``!(BX>@```` ++M2(N-T/[__TB+#`@/MH4P_O__B($$`0``,<!(A=)T"DB+`DB-D0@!``!$BZ$` ++M`0``2(F1$`$``$B)@0@!``#'@2`!````````1(GB1#FA)`$```^#A0```$6% ++MY`^(523\_TB+N1@!``!(A?]T($B)C3#^__]$B:4H_O__Z/SH^_^+E2C^__]( ++MBXTP_O__2,>!&`$```````!$B>?'@20!````````2,'G`XF5*/[__TB)C3#^ ++M___H8>7[_TB+C3#^__^+E2C^__](B8$8`0``1(FA)`$``$2+H0`!``")D2`! ++M``!$B>+'@3`!````````1#FA-`$```^#A0```$6%Y`^(=B'\_TB+N2@!``!( ++MA?]T($B)C3#^__]$B:4H_O__Z%?H^_^+E2C^__](BXTP_O__2,>!*`$````` ++M``!$B>?'@30!````````2,'G`XF5*/[__TB)C3#^___HO.3[_TB+C3#^__^+ ++ME2C^__](B8$H`0``1(FA-`$``$2+H0`!``")D3`!``!%A>1T7T2)YDR+F2@! ++M```QP$C!Y@/K)@\?1```2(L4`T4QP$B%TG0&3(L"2(GZ2(/`"$R)!TF)$4@Y ++MQG0G2(NY&`$``$V-#`-(`<=(A=MUS#'213'`2(/`"$R)!TF)$4@YQG792(7; ++M=`A(B=_H@^?[_TB+A?#^__](A<!T"$B)Q^AOY_O_@X6@_O__`8N-V/[__XN% ++MH/[__TB#A=#^__\(.<@/@B'Y__](@[UX_O__`'0Y2(N%Z/[__P^VM4C^__]( ++MC16]\OW_2(MX>(/V`4`/MO9(BP=(BT`H2#G0#X4$#@``2(/O".BY\?W_OT@` ++M``#HS^7[_TF)Q<=`"``````Q]DB-!:R,`0!)B44`28U%($G'11``````2(G' ++M2(F%N/[__^A=Y_O_08-%"`&#O<C^__\!#X8#"P``2(N%@/[__TR+M8C^__]) ++MC4T8,=)(B[5`_O__2`,P28L&3(GW_U`@B<.%P`^%$@H``$F+!DR)]_]0"$F+ ++M?1!(A?]T!DB+!_]0$$B+A8C^__])B440BX7(_O__13'D13'VQX7@_O__```` ++M`$B)A:#^___IJP$``$B+O8C^__\QR3'22(L'_U`@B<.%P`^%OPD``$B+O8C^ ++M__](BP?_4`A(B[U`____2(7_=`9(BP?_4!!(BX6(_O__2(F%0/___[\P```` ++MZ,/D^__'0`@`````2(G#2(T%BGX!`$B)`XN%X/[__TC'0Q``````1#G@=6@] ++M_O__?P^')2'\_XNUX/[__[K___]_B?`I\L'H`H/``3G0#T?"C0P&B8W@_O__ ++M2,'A`TB)STB)C9C^___H*^+[_TV%Y$B)A=#^__](BXV8_O__#X5="```387V ++M#X5F"```3(NUT/[__[\(````Z"KD^_](B<)(QP``````2(N%V/[__TB)WX.% ++M\/[__P%)B10&2(L#2(F5T/[___]0"$B+E=#^__](B1I(BY5`____2(72=!=( ++MBP)(B970_O__2(G7_U`(2(N5T/[__TB+>Q!(A?]T%$B+!TB)E=#^____4!!( ++MBY70_O__2(NU@/[__TB+O4#___](B5,02HM$Y@A**P3FQD,H`$B)0QA(QT,@ ++M`````$B%_W0&2(L'_U`02(N%H/[__TF#Q`%).<0/A`@+``!*C03E`````$B+ ++MM4#^__]$B:7P_O__2(F%V/[__TB+A8#^__](QX5`____`````$H#-."#O<C^ ++M__\!2(FUT/[__P^$#O[__[\H````Z!GC^_](B</'0`@`````2(T%R(D!`$B) ++M`TB)WTC'0R``````_Q6\B0$`2(N]0/___TB%_W0&2(L'_U`028M%`$B)G4#_ ++M__],B>__4`A(BWL@2(7_=`9(BP?_4!!(BX70_O__3(EK($R):Q!(B4,8Z=W] ++M__]F+@\?A```````2(.]0/___P`/A0OR__],B[5(____387V="))BP9(C17L ++MCOS_2(M`$$@YT`^%SP8``$&#;B`!#X1+`P``2(N]0/___TB%_P^$Q.K__TB+ ++M!_]0$.FYZO__9@\?A```````2(NU"/_____0Z=WQ__](B<?_TNDW\O__2(7` ++M#X1O\?__2(L`2(G?_U`(O]````#&A5'___\!Z`7B^_]F#V^-\/[__TF)QL=` ++M8`````!(QT!H`````$R)]_,/?@6`E@$`#Q$(2(T%3GX!`&9(#V[02(/`:$'' ++M1G@``"``9@]LPF9(#V[82(/`:$$/$4809D@/;N!(@\!H\P]^!4J6`0!F2`]N ++MZ$B#P&AF#VS#9D@/;O!(BP7YI0``00\11B#S#WX%+)8!`$F)1G`QP&8/;,1F ++M08E&?$$/$48P\P]^!1B6`0!F#VS%00\11D#S#WX%#Y8!`&8/;,9!#Q%&4&8/ ++M[\!!#Q&&@````$$/$8:0````00\1AK````!!#Q&&P````/\5E'P!`$B+O4#_ ++M__](A?]T!DB+!_]0$$B+`TR)M4#___](B=__4`A)B[[(````2(7_=`9(BP?_ ++M4!!(BP-)B9[(````2(G?_U`0Z2/P___&A4C^__\!Z<'L__^[!4``@.DRZ?__ ++M2(7`=`E(BP!(B=__4`A(B[U`____2(7_=`9(BP?_4!!(B9U`____Z>'O__]( ++MB9F`````2(G?Z1;N__](BXWH_O__BX5X____.T$@#X7![/__A<!T.$B+<1A( ++MBXUP____2(T4Q0`````QP(L<!CD<`0^%G.S__XM<!@0Y7`$$#X6.[/__2(/` ++M"$@YPG7=BT7`A<`/A+$&``!(BXWH_O__2(MUN$C!X`,QTDB+26#K#4B#P@A( ++M.=`/A(T&``!(BQP12#D<%G3IZ4?L__]FD$B)U__0Z:WM__\/B'H=_/]$B>-( ++MB=_HI=W[_V9!#V[\,?9(B<=(B=IF#W#'X$B)A4#___])B<5F#]:%2/___^B, ++MWOO_2(N%4/___XMP,$B-A4#___](B<=(B84(____Z"SV_?^$P`^%EP```$R) ++M[^BLX/O_Z>?G__](BW@(2(7_=`7HF>#[_TR+M>C^__]!B=Q)P>0"2<=&$``` ++M``!,B>=)QT8(`````.@3W?O_9@]N^TF)1@A(B<=F#W#'X&9!#]9&$$B+M6#_ ++M__],B>+HCM[[_^EY[___38UF*$F-7E!)BSPD28/$".BDW_O_23G<=>Z^*`,` ++M`$R)]^@"W_O_Z8G\__],B>A,`>OK"4B#P`%(.<-T"40/MB!%A.1U[DR)[^C[ ++MW_O_183D#X5QZO__Z2WG__\/'T0``(N%R/[__X7`#X2B`0``3(N-@/[__XG" ++M2(N]P/[__S'`ZQ-F#Q]$``!(@\`!2#G0#X1[`0``1#LLAW7MA<`/B&T!``!( ++MB[WP_O__1(U``4&#Q0%/BP3!32L$P4B-!`],B00/2(D$"TB#P0A!.?4/A)OU ++M__]$BY7@_O__1872#X4U]?__ZY)(QX7P_O__`````#';Z7KU__^%P`^$LO+_ ++M_^F$YO__#Q]``$R+8`CI4O'__TB)Q^C/V_O_1(N%\/[__TB)P>EE\___2(G/ ++M,?;HQMS[_TB)P>G1\___2(N]&/___S'22(L'_U`8B<.%P`^$P//__TB+O4#_ ++M__](A?]T(HM7_#'V@^+\Z(S<^_](BX5`____2(7`=`E(C7C\Z#?>^_](B[T8 ++M____2(7_#X3\Y?__2(L'_U`0Z?'E__^+M:#^____T.FN\/__2(T5Z`/^_T@Y ++MT'4W2(N'H````$B+C=#^__](BY68_O__2(L,"`^VA3#^__^(@00!``#I"_7_ ++M_\:%,/[__P#IS_/__TB+E9C^__]$#[:%,/[__XNUH/[__TB)V?_0Z:WV__\/ ++M'T0``$B)W^@PWOO_2(N]\/[__^@DWOO_Z5_E____T(G#Z9;O__](BW58_]!( ++MB[U`____B<.%P`^%3`,``,:%4/[__P'IT/#__TB)W__0Z7#K__](B<__T.GF ++MZ___2(N%Z/[__XE8,(7;#X35[?__2(MX*$R-))T`````Z;CM__](BX7H_O__ ++MB5@@A=L/A$GM__](BW@83(TDW0````#I*>W__TB+A>C^__^)6%B%VP^$9^[_ ++M_TB+>%!,C22=`````.E*[O__2(N%Z/[__XE82(7;#X3;[?__2(MX0$R-))T` ++M````Z;[M__](BX7H_O__B5AHA=L/A(KN__](BWA@3(TDW0````#I;>[__[L! ++M0`"`2(7_#X1GY/__2(L'_U`0Z5SD__](BY78_O__3(GV2(G'Z"7>^_],B??H ++M_=S[_^F-]___BW50_]!(B[U`____B<.%P`^%C0(```^VA5?^__^(A5#^___I ++M5.___TR)]__0Z3+Y__^[`4``@.EEY/__2(N5\/[__TB%T@^%C`,``$B%R0^$ ++MKOW__TB)S^B;W/O_Z:']__](A?\/A-+C__](BP?_4!#IQ^/__[L!0`"`Z<'] ++M___'A?#^__\`````13'V28M%`$B-%3#@_?](BT`02#G0#X7T`0``08-M"`%U ++M,TB-!06"`0!(B[VX_O__28E%`.AUV_O_28M]$$B%_W0&2(L'_U`0OD@```!, ++MB>_H^=K[_XN-\/[__X7)=$&+A?#^__^#Z`%-C23&ZP-)B<1-BRPD387M=!Q) ++MBWT`2(7_=`9(BP?_4!"^"````$R)[^BXVOO_28U$)/A-.?1USDV%]@^$"N/_ ++M_TR)]^B]V_O_Z?WB__]$BX7(_O__187`#X5!]?__2(.]>/[__P`/A%D"``#' ++MA?#^__\`````13'V2,>%X/[__P````!(BX7H_O__2(.]6/[__P!(BWAX#X2Z ++M`0``B[>$````Z,[Q_?^$P`^$+@$``$B+A7C^__]%,>1(B85`____2(N%Z/[_ ++M_TB+>'A(BP=(BT!`2(T5O$'^_T@YT`^%V````$R+A3C^__](BXU8_O__2(/O ++M"$B+E0C___](B[7@_O__Z"XQ_O^)PTV%Y'0*28L$)$R)Y_]0$$B#O>#^__\` ++M#X1T_O__2(N]X/[__^C3VOO_Z6/^__^[`4``@.EYXO__2(MX"$R-))T````` ++MZ5;Z___HCJK__^GNX?__Z*39^_](BXWH_O__BT6(.T$P#X6VY?__A<`/A-SK ++M__](BW6`2(M)*$C!X`(QTNL-2(/"!$@YP@^$O^O__XL<$3D<%G3KZ83E__], ++MB>__T.D\_O__Z*"L___ID.'__TR+A3C^__](BXU8_O__2(N5"/___TB+M>#^ ++M____T.DJ____OQ@```#H[MC[_TB+O5C^__\Q]DF)Q(EP"$B-!?!_`0!)B00D ++M2(L'28E\)!#_4`A)BP0D2(T5'LS]_TB+0`A(.=`/A;4```!!@T0D"`%(BX5X ++M_O__3(FE6/[__TB)A4#___](BX7H_O__2(MX>$B+!TB+0$#I?/[__TB+A7C^ ++M__]%,>1(B85`____2(L'2(M`0.E?_O__2(N]V/[__TB#QPCH(M;[_TB)A>#^ ++M__\QP$F+%,9(BXW@_O__2(L22(D4P8N-\/[__TB#P`$YR'+@2(.]>/[__P`/ ++MA<G]__^[!4``@.EB_O__,?]%,?:[!4``@(F]\/[__^G!_/__3(GG_]#I1___ ++M_V:02(G/,?;HQM;[_TB)P>EK_/___]#I_O'___,/'OI(B</I$Q+\__,/'OI( ++MB</I01+\__,/'OKI!Q/\__,/'OI(B</IR1+\__,/'OI(B</I>!+\__,/'OKI ++M]Q/\__,/'OI(B</I^Q+\__,/'OI(B</I^Q/\__,/'OI(B</I&13\__,/'OKI ++M-!3\__,/'OI(B</I/!3\__,/'OI(B</I2Q3\__,/'OI(B</I3A3\__,/'OI( ++MB</INA'\__,/'OI(B</INQ'\__,/'OI(B</I213\__,/'OI(B</I?!3\__,/ ++M'OI(B</I0A3\__,/'OI(B</IUQ3\__,/'OKII13\__,/'OI)B<3IMA3\__,/ ++M'OKI(A7\__,/'OI(B</II!'\_^E5%OS_Z2`6_/_S#Q[ZZ1G____S#Q[ZZ1\5 ++M_/_S#Q[Z2(G#Z<D1_/_S#Q[ZZ?O^__^0\P\>^E5(B>5!5T%6055)B?U!5%-( ++MB?-(@^P8BTX(2(L&A<D/A&H!``!(C3R(ZQIF9BX/'X0``````&8/'T0``$B# ++MP`1(.<=T%(LP@_XJ#Y3!@_X_0`^4QD`(\73C0;X!````A=)T"D4Q]H/Z`40/ ++M1/%!BT4D03E%('5;/?[__W\/ARL6_/]!B<2Z____?T'![`(IPD&#Q`%!.=1$ ++M#T?B18T\!$V)_$G!YP-,B?_HOM/[_TF+=1A)B<!!BT4@A<`/A9L```!(A?8/ ++MA;````!-B44818EE)+\8````Z,#5^_^_$````$C'``````!)B<3H?-/[_TF) ++M!"1(B=Y,B>?'``````!(BP75F0``0<=$)!`!``$`28E$)`A!BT4@C5`!08E5 ++M($F+51A,B23"Z/_H_/^X`0```$'&1"00`46(="019D&)1"022(/$&%M!7$%= ++M05Y!7UW#9BX/'X0``````$R)QTB-%,4`````3(GY2(EUR.AYU_O_2(MUR$F) ++MP$B)]TR)1<CH1M;[_TR+1<CI.____S')Z</^___S#Q[Z2(G#Z1`5_/]F+@\? ++MA```````\P\>^E6)]D&X!P```$B)Y4%7059,C7W`055)B?U!5$R-)#=,B?Y3 ++M3(GA2(/L*$R+,F1(BQPE*````$B)7<A(B=/'0@@`````2(GZ,?]!QP8````` ++MZ#>A__](BU7`.5,,<DY!N`<```!,B>%,B>I,B?Y,B??H%Z'__TB+1<")0PB) ++MP$''!(8`````2(M%R&1(*P0E*````'5F2(/$*%M!7$%=05Y!7UW##Q^$```` ++M``"!^O[__S\/AU\4_/^)T$B)5;A(C3R%!````.CQT?O_2(L[2(M5N,<````` ++M`$F)QDB%_W0)Z#?5^_](BU6X3(DSB5,,QT,(`````.EC____Z!S4^_]F9BX/ ++M'X0``````)#S#Q[Z54B)Y4%728GW059!54%428G\4TB#[#A(B4VH9$B+!"4H ++M````2(E%R#'`@#U;H0$``'0YQ@$`2(M%R&1(*P0E*`````^%P0(``$B#Q#A( ++MB?ZZ``(``$R)_UM!7$%=05Y!7UWIE?;\_P\?1```3(UML$R)[^A$X_S_2(MU ++ML,=%N`````#'!@````!!BT<(A<`/A)\```"+5;@QV^M;.<%T=(G(BP2'C;@` ++M)/__@?__`P``=V%!P>8*)?\#``"#PP)!@>8`_`\`18VT!@```0")T#E%O'1( ++M#Q^``````(U0`42)-(:)T,<$A@````!!BT<(B56X.<-S/4F+/T&)V8U+`4:+ ++M-(]%C8X`*/__08'Y_P,``':(B<N)T#E%O'6_3(GOZ)??_/^+1;A(BW6PZZYF ++M#Q]$``!!QT0D"`````!)BP0DQ@``2(M%J,8``(M%N(7`#X06`0``2(MUL#'2 ++M,?_H"=+[_TB)PTC!Z"`/A*P```!,BVVP1(MUN$4Y="0,#X+Y````28L<)$&+ ++M50"%T@^$<`$``#'V,<EF9BX/'X0``````&9F+@\?A```````9F8N#Q^$```` ++M```/'T``@?K_````?@Q(BT6HNE\```#&``&#P0&(%#.)SD&+5+4`A=)UVT@! ++M\\8#`$B+?;!!B4PD"$B%_W0%Z!+3^_](BT7(9$@K!"4H````#X7]````2(/$ ++M.%M!7$%=05Y!7UW#03E<)`P/@ID```!-BRPD3(US`4B+=;!,B?),B>_H+M'[ ++M_T@YPP^"*?___TB#^/\/A!____])BQ0D08E$)`C&!`(`9F8N#Q^$```````/ ++M'P!(BWVP2(7_=8#K@P\?1```08'^_O__/P^'JQ'\_T2)]TB#QP'H%\_[_TF+ ++M/"3&``!(B<-(A?]T!>ACTOO_28D<)$6)="0,0<=$)`@`````Z<?^__^!^_[_ ++M_S\/AU01_/],C7,!3(GWZ-3.^_])BSPDQ@``28G%2(7_=`7H(-+[_TV)+"1! ++MB5PD#$''1"0(`````.DL____,<GIVO[__^C]T/O_\P\>^NDT$?S_#Q]``%5( ++MB>5!5T%628GV055)B?U!5%-,B<-(@>R8`0``2(M%$$B)C;C^__](BTTH2(F5 ++M</[__TB)A;#^__](BT4@3(F%Z/[__TR+91A(B850_O__2(L&3(F->/[__TB) ++MC6C^__]D2(L4)2@```!(B57(BU8(2(M$T/A(QP$`````2(F%R/[__TB+`$C' ++MA0#___\`````08MX.$B)A9#^__^)O>#^__](@\<!2,>%"/___P````!(QX40 ++M____`````.C.S?O_9@]NA>#^__](BW,P2(F%$/___S'29@]PP.!F#]:%&/__ ++M_V9F+@\?A```````D`^V#!:(#!!(@\(!A,EU\4B+A<C^__](C9T@____2(G? ++M2(UP2.B'W_S_08-^"`%V$DF+!DR+,$EC1EB%P`^)]@H``$B-A4#___](B=Y( ++MB<=(B86`_O__Z%7?_/^+G4C___^%VP^$5PL``$B+M4#___^#/BX/A!<+``!( ++MC850____2(G'2(F%P/[__^@QY_S_OP(```#H!\W[_TB)PTB)PDB-!;2'``!F ++M+@\?A```````#[8(2(/``4B#P@&(2O^$R77NBX58____B87@_O__@_@!#X29 ++M"@``1(NU&/___T4Q_T6%]G5@Z34!```/'T0``$4I_D&X`0```$2)^$P![DR) ++M\D2)A=C^__])C7P%`.C-T/O_1(N%V/[__T0IA1C___]$B[58____187V=6N+ ++MA>#^__]$B[48____00''13GW#X/:````3(NM$/___TB)WDN-?#T`Z';,^_]( ++MA<`/A+T```!)B<=-*>]$.>@/B*X```!!C7<!03GV#X-Q____18GP12GX=)I$ ++MB?9!O@$```#I9/___P\?`$B-O1#___]$B?;H^>K\_XN-&/___TB+A1#___]% ++MB?A#C3P^3(F%V/[__XU1`4J--`!(`<=$*?KH#-#[_TB+M5#___](B[W8_O__ ++M1(GR2`.]$/___^A/S?O_BX7@_O__1`.U&/___T2)M1C___]!`<=%.?</@C7_ ++M__]F9BX/'X0```````\?0`!(B=_HV,[[_TB+O5#___](A?]T!>C'SOO_2(N] ++M0/___TB%_W0%Z+;.^_](QX4P____`````+\0````Z$'+^_^+O1C____'```` ++M``!(BPV>D0``2(F%,/___TF)_4B#QP%(B8TX____Z!3+^_](BXT0____2(F% ++MF/[__TB)QC'`D`^V%`&(%`9(@\`!A-)U\4B+A>C^__\/M@"(A>#^__^$P`^$ ++M*0D``$B+A>C^__^#>`@#=4Q(BXVX_O__#[9`4(MQ$(B%X/[__XFUU/[__X7V ++M#X6[#@``BU$@A=(/A5,,``!$BWE`187_#X4E%0``QH7@_O__`.DK`0``9@\? ++M1```OQ````#H=LK[_TB)P[\0````2(L%UY```$C'A5#___\`````QP,````` ++M2(F%2/___^A*ROO_QP``````2(L-K9```$B-M1#___\QTDB+O<#^__](B850 ++M____2(F-6/___^A*Z_S_2(NU4/___XN%6/___S'23(T\ADPY_G0B08-__"\/ ++MA70'``!)@^\$3#G^#X5G!P``9BX/'X0``````$B+O8#^__](B9U`____Z`W@ ++M_/](C;TP____3(G^2(N=0/___^BGWOS_2(N]4/___TB%_W0%Z`;-^_^+A3C_ ++M__^%P`^%T0H``,:%X/[__P!(A=MT"$B)W^CDS/O_2(N%N/[__\:%H/[__P!$ ++MBU@0187;=2I$BU`@1872=2%$BTA`187)=1A(BX6X_O__QH6@_O__`(-X,`$/ ++MA/\2``!(BX7H_O__@'A0``^$T@<``,>%U/[__P````!(QX78_O__`````("] ++MX/[__P`/A*@```"+A0S___\YA0C___]U9#W^__]_#X=B#?S_B<*Y____?\'J ++M`BG!@\(!.<H/1]$!T(G`3(TLQ0````!(B<-,B>_HS,C[_TF)QHN%"/___TR+ ++MO0#___^%P`^%5!,``$V%_P^%81,``$R)M0#___^)G0S___^_$````.C$ROO_ ++M2(VU,/___TB)QTB)P^B2VOS_BX4(____C5`!B94(____2(N5`/___TB)',*+ ++MM1C___^%]@^%30H``$B-O1#___](C37DAP``Z#?6_/_S#WX--W\!`$B-!4!N ++M`0#S#WX5,'\!`/,/?IUP_O__9D@/;N!(@\!H9D@/;NA(BX7H_O__9@]LS&8/ ++M;-5F#VS;#RF-@/[__X!X4``/MEA3#RF54/[__T0/MFA1#RF=H/[__W4+2,>% ++MN/[__P````!!BX0DL`$``$2-</])P>8#A<!T.@\?0`!)BX0DJ`$``$Z+/#!- ++MA?]T&TF+?SA(A?]T!>@!R_O_OD@```!,B?_HU,G[_TF#[@A)@_[X=<I)B[PD ++M8`$``$''A"2P`0```````$B%_W022(L'_U`02<>$)&`!````````28N\)(`! ++M``!(A?]T$DB+!_]0$$G'A"2``0```````$B+A>C^__](BXVP_O__2(T5J_'^ ++M_V8/;[6@_O__\P]O0!A!#Q%$)#!(BT`H18AL)"1)B40D0$B+A;C^__]!B%PD ++M)4F)1"1H2(L!00\1M"28`0``2(M`"$@YT`^%91$``(.!,`$```%)BUPD8$B% ++MVP^$O````$B+`TB-%<$D__](BT`02#G0#X4O$0``@ZLP`0```0^%F````&8/ ++M;[V`_O__2(N[:`$``$B-!3%M`0!(B4,@#Q$[9@]OO5#^__\/$7L02(7_=`7H ++MU,G[_TB+NU@!``!(A?]T!>C#R?O_2(N[2`$``$B%_W0%Z++)^_](B[LX`0`` ++M2(7_=`7HH<G[_TB+NR`!``!(C053:P$`2(E#($B%_W0%Z(7)^_](C7LHZ*P? ++M__^^R`$``$B)W^A/R/O_2(N]L/[__TV+;"1P28E\)&!-A>T/A/D.``!)BT4` ++M2(T5VB7__TB+0!!(.=`/A4D0``!!@ZT@`0```0^%I````&8/;[V`_O__28N] ++M6`$``$B-!5EL`0!)C5WP28E%$$$/$7WP9@]OO5#^__]!#Q%]`$B%_W0%Z/7( ++M^_])B[U(`0``2(7_=`7HY,C[_TF+O3@!``!(A?]T!>C3R/O_28N]*`$``$B% ++M_W0%Z,+(^_])B[T0`0``2(T%=&H!`$F)11!(A?]T!>BFR/O_28U]&.C-'O__ ++M2(G?OL@!``#H<,?[_TF+?"1@2<=$)'``````2(L'2(T56.S^_TB)_DB+`$@Y ++MT`^%L@X``#'`2(T-D)D``$B-%9F9``!F#Q^$```````/MAP".!P!#X5C#0`` ++M2(/``4B#^!!UZ4F)="1P@X<P`0```4F+O"2X`0``2(NUL/[__[H!````Z"2@ ++M_?])BX0DN`$``,9`#0!!BX0DD`$``(U8_TC!XP.%P'0[#Q]$``!)BX0DB`$` ++M`$R++!A-A>UT&TF+?0!(A?]T!>C1Q_O_OA````!,B>_HI,;[_TB#ZPA(@_OX ++M=<I!QX0DD`$```````"+G0C___]!.9PDE`$```^#`@T``(7;#XAE"?S_08G> ++M3HT\]0````!,B?_H'\3[_TF)Q4&+A"20`0``28NT)(@!``"%P`^%-`X``$B% ++M]@^%3`X``$V)K"2(`0``08F<))0!``!)P>8#13'M#Q]``$B+A0#___^_$``` ++M`$Z+/"CH^\7[_TR)_DB)QTB)P^C-U?S_08N$))`!``!)@\4(C5`!08F4))`! ++M``!)BY0DB`$``$B)',)-.>YUM4B+A<C^__]!QD0D)@!-C:PD@````$R-M1#_ ++M__],B?9,B>])B40D*.CIT?S_28V<))````!,B?9(B=_HUM'\_TR)[^C.!?W_ ++M2(NU$/___TB)VC'_Z"T&_?](B=_HM07]_P^VA>#^__]!B$0D)TB+A>C^__^` ++M>%``1`^V:%,/A",+``!,B[60_O__,?9-B>!$B>FZ_____TF+!DR)]_]0.$B+ ++ME<#^__],B?>^+````$C'A5#___\`````B<-)BP9(QX58____`````/]00(7` ++M#X41!P``9H.]4/___Q4/A\T%_/\/MX50____2(T5%9P``$AC!()(`=`^_^!F ++M9BX/'X0``````$F#[P1,.?X/A"4,``!!@W_\+W7L3(GZ2"GR2,'Z`NF-^/__ ++M#Q]$``!)BU402(TU>7\``$B+!,)(BW@8Z,#._/^$P`^$ZO3__TF-=DA(B=_H ++M_-?\_^G9]/__#Q^``````$B+M5#___](B=_HP<7[_X7`#X50]?__Z93V__\/ ++M'T``BT8$A<`/A9X#``#'A4C___\`````QP8`````1(N-2/___T6%R0^%OO3_ ++M_P\?1```1(N=3/___TB+M4#___]%A=L/A"D+``#'A4C___\!````2,<&7P`` ++M`.F,]/__#Q\`2(N%N/[__TB+M>C^__^+2!`/MG90B8W4_O__0(BUH/[__X7) ++M#X6B"@``BW@@A?\/A4@#``"+2$"%R0^$%?C__T"$]@^%00,```\?@`````!( ++MB[V0_O__2(NU@/[__TB+!_]0*$C'A=C^__\`````B<.%P`^%Z04``$C'A5#_ ++M__\`````OQ````#H(L'[_TB+#8N'``!$BX5`____2(F%4/___\<``````$B) ++MC5C___](QX5@____`````$C'A6C___\`````187`#X2Z#```#[:%H/[__T4Q ++M[44Q_\>%U/[__P````!(QX78_O__`````(/P`8B%@/[__^M2#Q]``$B+A>C^ ++M__\/MD`#B(7@_O__A,!U6XN%U/[__T0YZ`^$'`8``$&)QDG!Y@)(BX78_O__ ++M@X74_O__`4:)/#!!@\<!1#N]0/___P^#P````$0/MK6`_O__1`JUX/[__P^% ++M/0@``$B+A>C^__^`>`(`=)!(BY7`_O__2(N]R/[__T2)_NAJO/[_B<.%P`^% ++MX0```$B+A>C^__^`O7#___\`#[90`@^V0`,/1<*$P`^%!P8``$6$]@^%#@8` ++M`("]H/[__P`/A98&```/MI5Q____2(N]N/[__TB-C?_^__](C;5@____@_(! ++M#[;2Z`+Y_/^$P`^%6@8``$&#QP%$.[U`____#X)I____1(BUX/[__XN]U/[_ ++M_X7_#X7)"@``2(N->/[__TB-%280__](BP%(BT`02#G0#X4O"P``2(UY^.A- ++M#___2(N->/[__TB-%=\3__](BP%(BT`82#G0#X46"P``2(/I"#'V2(G/Z/$/ ++M__^)PXN%:/___TB+O6#___^%P'1#1(U@_TG!Y`-F#Q]$``!.BRPG387M=")) ++MBWT`2(7_=`7H:<+[_TR)[[X0````Z#S!^_](B[U@____28/L"$F#_/AURTB% ++M_W0%Z$'"^_](B[U0____2(7_#X2#`P``Z"S"^__I>0,``$B+E3#___^)P8-\ ++MBOPO#X3K!P``2(N]P/[__TB)WNC$V/S_BX58____03G%#X)8"0``2(N]4/__ ++M_TB+C9C^__\QP`\?1```#[84!X@4`4B#P`&$TG7QZ,S!^__IUO3__X/X+@^% ++M-_'__T2+5@A%A=(/A2KQ___I1_S__X"]X/[__P`/A6<"``#&A:#^__\`Z=/\ ++M__^`O:#^__\`#X3&_/__B[48____2,>%V/[__P````"%]@^$L_7__V8/[\"_ ++M!````$C'A5#___\`````3(NM$/___\=%F`````!(QT6@`````$C'1:@````` ++M2,=%L`````!(QT6X``````\1A5C___\/$85H____#Q&%>/___P\118CHK;W[ ++M_\8``$B+#1.$```QTDR)[DB+O<#^__](B46X2(E-P.@Z_OS_A,!T$XM%F"4` ++M\```/0!````/A&`&``!!@'T```^$$0D``$4Q_P\?1```18UW`4.`?#4``$V) ++M]W7Q28U^`>A(O?O_2(G#,<!F9BX/'X0```````\?A```````00^V5`4`B!0# ++M2(/``832=>]%A?\/A/\(``!*C40S_X`X+W49Z9`%```/'X``````2(/H`8`X ++M+P^$?`4``$@YPW7N1(F]H/[__T2)^$B->`'HV[S[_TB)A8#^__](B<$QP&9F ++M+@\?A```````#Q]```^V%`.(%`%(@\`!A-)U\42+M:#^__]%B?4/'X`````` ++MOO\!``!(B=_H0[W[_X7`#X3:`P``Z*:\^_^#.!%T,T6%[70N1(GH2(U$`_^` ++M."]U'.D"!```9BX/'X0``````$B#Z`&`."\/A.L#``!(.<-U[DB+O8#^___H ++MHK_[_TB)W^B:O_O_2(M]N$B%_W0%Z(R_^__H1[S[_XL8A=L/A!<(```/M\,- ++M````B(7;#T_82(N-4/[__TB-M1#___^)VDB-/4F!``#H!&_^_^FA````@+W@ ++M_O__``^$H_W__\>%U/[__P````!(QX78_O__`````,:%X/[__P#I6?/__TB+ ++MA5C___](BXUH_O__2(D!2(N]P/[__^BT`_W_3(GGZ$R=_O],B>=!B<7HD77^ ++M_TB+C7C^__]%A>U$B>Y)QT0D*``````/1/!(C17Q#___A=M(BP$/1?-(BT`8 ++M2#G0#X6Z!0``2(/I"$B)S^@`#/__B<-(B[V8_O__Z**^^_](B[TP____2(7_ ++M=`7HD;[[_TB+O2#___](A?]T!>B`OOO_2(N]$/___TB%_W0%Z&^^^_^+A0C_ ++M__](B[T`____A<!T0T2-8/])P>0#9@\?1```3HLL)TV%[70B28M]`$B%_W0% ++MZ#F^^_],B>^^$````.@,O?O_2(N]`/___TF#[`A)@_SX=<M(A?]T!>@1OOO_ ++M2(N%V/[__TB%P'0(2(G'Z/V]^_](BT7(9$@K!"4H````#X6.!@``2('$F`$` ++M`(G86T%<05U!7D%?7<-F#Q]$``"!O=3^___^__]_#X==_?O_1(NUU/[__[C_ ++M__]_18GU1"GP0<'M`D&#Q0%!.<5$#T?H0XU<-0!)B=U(P>,"2(G?Z"NZ^_]% ++MB?9)B<%,B?!)P>8"A<`/A7X```!(@[W8_O__``^%B````$R)C=C^___I=_G_ ++M_P\?0`!$B+7@_O__Z7GY__\/'T``2(N-,/___TB+M5#___\QP.L49@\?1``` ++M2(/`!#M4!OP/A<(!``"+%`&%TG7KBX4X____BP2&A<`/A;H"``!$#[:U<?__ ++M_^FG^?__#Q]$``!(B[78_O__3(G/2(G93(GRZ`.^^_])B<%(B[W8_O__3(F- ++M8/[__^C-O/O_3(N-8/[__^E9____D("]__[__P`/A)GY__]$B+7@_O__Z:SX ++M__\/'X``````2(G02"GP.?(/B/(```!%C70&`46)]44Y[P^#]````$&!_?[_ ++M_S\/A^'[^_])8_Y(@\<!Z`BY^_](B85@_O__2(7;=`A(B=_H5+S[_T6)[TB+ ++MG6#^__](B[6`_O__1(GJ2(F52/[__TB)W^AQNOO_2(N52/[__\8$$P"^_P$` ++M`$B)W^AIN?O_A<`/A6/\__]$.;6@_O__#XY\`0``2(N%@/[__T&-=@%(`<8/ ++MM@:$P'1/2(GRZQ9F+@\?A```````#[9"`4B#P@&$P'0T/"]U\.DK____#Q\` ++M2"G808G&A<`/C@S\__]$.>@/@['[__](8]!!B<7&!!,`Z:+[__]FD$2+M:#^ ++M__]%B?5%.>\/@@S___\QTD6%[0^$6/___TB)G6#^___I)?___V8/'T0``$0/ ++MMK7@_O__Z</W__\/'P!%,?;I`OC__P\?A```````28L$)$B+M<#^__],B>=( ++MQX50____`````/]0((G#A<!U)TB+O9#^__^+E=3^__]-B>!$B>E(B[78_O__ ++M2(L'_U`XB</I`_S__TR)Y^A/F?[_3(GGZ)=Q_O])QT0D*`````#I._S__V8/ ++M'X0``````$B-=Q#IGO+__TB)PD@IVCG8#XA[^O__08U'_XF%H/[__SG0#X5I ++M^O__08/_`0^$-`(``(N%H/[__\8$`P#I6OK__V8/'T0``$&)WH7;#X5"\___ ++MZ9/S__](B[V`_O__Z'RZ^_](A=L/A?H!``!(BWVX2(7_#X2_[O__Z&&Z^__I ++MM>[__TB+O;#^___ISO'__X/X+T$/E,;I[O;__X"]H/[__P`/A'?U___'A=3^ ++M__\`````Z:+X__^#Z`&)A3C____'!((`````1(NU./___T6%]@^$$.W__^GP ++M]___#Q\`OP@```#HEK;[_TB+O4#___](B<9(A?]T$TB)A>#^___HV[G[_TB+ ++MM>#^__](B;5`____QX5,____`0```.F5]/__,=+I=^S__TF-5"1P2(TUVXH` ++M`/_0Z7?Q__](BT`H2(L`#[9($8B-H/[__X3)#X3H[/__#[9($HB-H/[__X3) ++M#X36[/__#[9($XB-H/[__X3)#X3$[/__@W@(`<:%H/[__P`/A;/L__](BP!( ++MC350CP``2(L`2(LXZ"&Y^_^%P`^4A:#^___ID.S__P\?`$B-%,4`````3(GY ++M3(GO2(FUN/[__^@VNOO_2(NUN/[__TB)]^@'N?O_Z:?Q__](B[UX_O___]#I ++M1/K__TR)[__028M\)&#I6O#__TB)W__0Z6SO__](B[VP_O___]#IE.[__X3` ++M#X6-^?__Z2'W__](C13%`````$R)Z4R)_DR)]^C*N?O_3(G_Z**X^__IDNS_ ++M_TB->`'H-+7[_TB+O9C^__])B<7HA;C[_TR)K9C^___IA/;__TB)W^AQN/O_ ++MZ?G]__](BX5H_O__BXU8____2(D(Z4?Y__\/MX58____2(N-:/[__TB)`>DQ ++M^?__#[:%6/___TB+C6C^__](B0'I&_G__XN%:/___TB+O6#___^%P'0_C5C_ ++M2,'C`P\?`$R++!]-A>UT(DF+?0!(A?]T!>CYM_O_3(GOOA````#HS+;[_TB+ ++MO6#___](@^L(2(/[^'7+2(7_=`7HT;?[_TB+O5#___](A?\/A$3K___HO+?[ ++M_^DZZ___OP$```!%,?9%,?_I^O;__TB+O7C^____T.G,]/__2(N]>/[__S'V ++M_]")P^GH]/__2,>%V/[__P````#I@_3__\>%H/[__P`````QP.DB]___NP5` ++M`(#I[/?__^A7MOO_\P\>^DF)Q.EJ^/O_\P\>^DF)Q.E#^/O_\P\>^DB)P^DV ++M]_O_\P\>^ND`]_O_\P\>^DB)P^G%]_O_\P\>^DB)P^GH]_O_\P\>^DF)Q.G1 ++M]_O_\P\>^DB)P^G>]_O_\P\>^DF)Q.GA]_O_\P\>^NDB^/O_\P\>^DB)P^EP ++M]_O_\P\>^NDH^/O_\P\>^DB)P^FY]OO_\P\>^DB)P^F.]_O_\P\>^DF)Q.D= ++M^/O_\P\>^DF)Q.F*]OO_\P\>^DB)P^DK]_O_\P\>^NEE____\P\>^NE<____ ++M\P\>^DB)P^DZ^/O_\P\>^DB)P^GP]_O_\P\>^DB)P^D&^/O_\P\>^DB)P^G8 ++M]OO_\P\>^DF)Q.D`]_O_\P\>^DF)Q.E@]_O_\P\>^DF)Q.F?]_O_\P\>^DF) ++MQ.F=]OO_9I#S#Q[Z2(7_#X3E````54B-%:L0__](B>532(G[2(/L"$B+!TB+ ++M0!!(.=`/A<,```"#KS`!```!=`186UW#\P]^!7-I`0!(C05\6`$`9D@/;LA( ++M@\!H9@]LP69(#V[02(/`,`\1!_,/?@53:0$`2(E'(&8/;,(/$4<02(N_:`$` ++M`$B%_W0%Z):U^_](B[M8`0``2(7_=`7HA;7[_TB+NT@!``!(A?]T!>ATM?O_ ++M2(N[.`$``$B%_W0%Z&.U^_](B[L@`0``2(T%%5<!`$B)0R!(A?]T!>A'M?O_ ++M2(U[*.AN"___6DB)W[[(`0``6UWI#K3[_\/_T.D_____9@\?1```\P\>^E5( ++MB>5!54%43(UMP%-(B?M,B>](@^PH9$R+)"4H````3(EEV$F)]$B--?YV``#H ++MJ<+\_TR)[TR)YNBN8/[_2(M[8$B+=<!(BP?_4#A(BWW`B<-(A?]T!>C`M/O_ ++M2(M%V&1(*P0E*````'4-2(/$*(G86T%<05U=P^B?L_O_\P\>^DB)P^F%]OO_ ++M#Q\`\P\>^E5F#^_`2(GE05=!5D%505132('L6`4``$B+11A(B94`^___2(M5 ++M$$B)M7C[__](B84H^___2(M%($B)O5#[__](B85`^___2(M%*$B)C5C[__]( ++MB86X^O__2(M%,$R)A9CZ__](B87X^O__2(M%.$R)C;#Z__](B<9(B96(^___ ++M2(F%D/K__V1(BP0E*````$B)1<@QP(!Z4`!(QT8P``````\1!@\11A`/$48@ ++M#X56`@``BT$(B85P^___A<`/A/(P``!(QX60^___`````$2+K7#[__\QVT4Q ++MY$C'A6C[__\`````Z;H```"02(N%6/O__TB-O:#]__](B;V`^___2(L`2(L$ ++MV$B+,.@\ROS_3(V](/[__TB+M:#]__^Z`0```$R)_^BQ\/S_A,`/A/DH``"+ ++MA6C^__\E`/```#T`0```#X0M*0``2(N]H/W__TB%_W0%Z#*S^_],B[4@_O__ ++M03G<#X3F````2(T4W0````!,B?!(BXV0^___2(N]B/[__T@!A6C[__],B301 ++M2(7_=`7H]++[_TB#PP%,.>L/A',!``!F#^_`OP0```!(QX4@_O__`````,>% ++M:/[__P````!(QX5P_O__`````$C'A7C^__\`````2,>%@/[__P````!(QX6( ++M_O__``````\1A2C^__\/$84X_O__#Q&%2/[__P\1A5C^___H'*_[_TB)A8C^ ++M__](BS5^=0``Q@``2(N%B/O__TB)M9#^__](QX4@_O__`````(!X4``/A*C^ ++M__]%,?9!.=P/A1K___]!@?S^__]_#X>^]_O_1(G@NO___W_!Z`)$*>*#P`$Y ++MT`]'PD6-/`1-B?Q)P><#3(G_Z*:N^_])B<%(C13=`````$B%VW4F2(.]D/O_ ++M_P!U/TR)C9#[__](BX4@_O__Z<+^__]F#Q^$``````!(B[60^___3(GY2(G' ++M2(F5F/O__^C7LOO_2(N5F/O__TF)P4B+O9#[__](B96`^___3(F-F/O__^B3 ++ML?O_2(N5@/O__TR+C9C[___KE\>%</O__P$```#IK/W__TR)[^@,KOO_3(GJ ++M,?9(B<=(B84P^___Z`BO^_^_"`(``.@>L/O_2(G'2(F%\/K__TB)P^@\A_[_ ++MBY5P^___2(N%B/O__V8/[\!(B9W`^___@T,@`8/Z`4B+0`C&0U0`#Y>%I_K_ ++M_P^VM:?Z__](B4-80(AS4TC'@^`!````````#Q&#P`$```\1@]`!```/AO$F ++M``!(B[VX^O__2(NU:/O__TB+!_]0&$&)Q(7`#X7B%0``,<!(B87(^___BX5P ++M^___13'V\P]^/5=D`0#&A:;Z__\`3(FU</O__TB)A0C[__](C04+6`$`9D@/ ++M;LAF#VSY#RF]X/K__V9F+@\?A```````2(N%,/O__TB+M7#[__^`/#``#X78 ++M%```2(N%6/O__V8/[\"_!````$B+`$B+!/`/$84H_?__2,>%(/W__P````!( ++MB85@^___QX5H_?__`````$C'A7#]__\`````2,>%>/W__P````!(QX6`_?__ ++M`````$C'A8C]__\`````#Q&%./W__P\1A4C]__\/$858_?__Z'BL^_](B86( ++M_?__3(LUVG(``,8``$B+A8C[__],B;60_?__@'A0``^$3Q<``&8/[\"^`0`` ++M`$B-O4C]___'A6C]__\`````#Q&%*/W__P\1A3C]__\/$85(_?__#Q&%6/W_ ++M_TC'A7#]__\`````2,>%>/W__P````!(QX6`_?__`````$C'A2#]________ ++MZ+BP^__S#V^%2/W__S'_2(VU,/___\>%:/W___\1```/$84X_?__#Q&%*/W_ ++M_^BZL/O_A<`/A*T@``!(BYU`^___2(NUB/O__TB-%6W[_O](BP,/MDY32(NU ++M8/O__TB+`$B+-D@YT`^%IQ\``$B->_B)RN@%^O[_08G$A<`/A1T7``!%,>V_ ++M$````$C'A:#]__\`````2,>%J/W__P````!(QX6P_?__`````$C'A;C]__\` ++M````2,>%P/W__P````!F1(FMR/W__TC'A=#]__\`````Z!.K^__'``````"_ ++M$````$B)A=#]__](N`````#_____3(FUV/W__TC'A>#]__\`````2(F%Z/W_ ++M_TC'A?#]__\`````2,>%^/W__P````#HPZK[_\<``````+\0````2(F%^/W_ ++M_TR)M0#^__](QX4(_O__`````.B:JOO_2(F%"/[__\<``````$B+A7C[__], ++MB;40_O__2,>%\/O__P````!$BV`(2,>%^/O__P````!%A>0/A0P;``!(N/__ ++M__\!`0$!9@_OP+\0````2,>%0/S__P````!(B85(_/__2+@```````$!`4B) ++MA5#\__](QX58_/__`0$``$C'A6#\__\`````2,>%F/S__P````!(QX6@_/__ ++M``````\1A6C\__\/$85X_/__#Q&%B/S__^C@J?O_2(F%H/S__TB+M6#[__]( ++MC;V@_/__QP``````2(N%4/O__TR)M:C\__](B85`_/__2(V%\/O__TB)A1C[ ++M__](B85H_/__2(N%`/O__TC'A7C\__\`````2(F%</S__TB+A8C[__](B;TX ++M^___#[9`4(B%F/S__TB-A:#]__](B86`^___Z!>__/](C86@_?__OR@!``!( ++MQX7`_?__`````$B)A8#[___H9*O[_TB)PT4QY&8/[\"_!````$B)A9C[__]( ++MC05?5`$`\P]^'2=@`0!F2`]NZ$B#P#!F1(EC+&8/;[7@^O__QT,H`````&8/ ++M;-U(B4,@2,=#,`````!(QT,X`````$C'0T``````2,=#2`````!(QT-0```` ++M`$C'0U@`````2,=#<``````/$3,/$5L0#Q%#8`\IG=#Z___HFZC[_TB)0W"_ ++M$````$R)<WC&``!(QX.``````````.A[J/O_2(F#@````&8/[\"_!````$R) ++MLX@```#'``````!(QX.0`````````,>#V`````````!(QX/@`````````$C' ++M@^@`````````2,>#\`````````!(QX/X``````````\1@Y@````/$8.H```` ++M#Q&#N`````\1@\@```#H_*?[_TR+)9UN``!(B8/X````OP0```!,B;,``0`` ++MQ@``2,>#"`$```````!(QX,0`0```````$R)HQ@!``#'@R`!````````Z`.I ++M^_^Z`P```$B#^`H/C[P3``!(BX68^___OP0```!(BXTH^___2,>%`/S__P`` ++M``"#0"@!B9`D`0``2(E(:$B)A=#[___H;*?[_\8``+\$````2(F%`/S__TR) ++MM0C\___H4:?[_TB#O7C\__\`2(NUH/S__\8``$B)A1#[___'A1S\__\#```` ++M#X2`$P``2(N%F/O__\9`+`%(C;B`````Z`&\_/_S#WZ%F/O__TB-A:#]__]( ++MB<=(B86`^___9@]LP`\1A8C\___H6"O__TB+C6C\__^+40B#^A\/A[$H``!% ++M,<!F#V\E&FT``,>%2/S_______]F1(F%7/S__XN%J/W__\:%7OS__P!(QX5@ ++M_/__``````\1I4S\__^%T@^$,0\``$B+"3G0#X,^$0``B=8IQH/N`4B+#/%$ ++MBP'S#V]!!`^W>10/MG$62(M)&$2)A4C\__]FB;U<_/__0(BU7OS__TB)C6#\ ++M__\/$85,_/__A<`/A&P)``!(BXV@_?__B<9,BVSQ^#G0#X/C#@``0;P!0`"` ++M2,>%(/[__P````!)BWT`O@$```!,C;T@_O__2,>%*/[__P````!,B?I(BP?_ ++M4$"%P`^%B24``&:#O2#^__\3#X7!%P``28M]`$B-A;#\__^+G2C^__](B84@ ++M^___2(G&2(L'_U`HA<`/A5(E```[G;#\__\/@XP7``!,B?_HKNW\_TF+?0!( ++MQX78^___`````$B-E=C[__](C341<0``2(L'_Q!(B[W8^___A<`/A>D;``!( ++MA?\/A%(7``!(BP=(C0T*]OW_2,>%X/O__P````!(BT`82#G(#X6O%@``2(V5 ++MX/O__TB#[PB)WDB)E<CZ___H2?/]_TB+O>#[__^%P`^%BQL``$B%_P^$C1L` ++M`$B-A>C[__](C353<0``2,>%Z/O__P````!(B87`^O__2(G"2(L'_Q!(B[WH ++M^___A<`/A3D;``!(A?\/A#L;``!F#^_`OQ````!(QX5`_O__`````$C'A4C^ ++M__\`````#RF%(/[__P\IA3#^___HGZ3[_\<``````+\0````2(F%2/[__TR) ++MM5#^__](QX58_O__`````.AVI/O_QP``````OQ````!(B858_O__3(FU8/[_ ++M_TC'A6C^__\`````Z$VD^__'``````"_$````$F\`````/____](B85H_O__ ++M3(FU</[__TC'A8#^__\`````QX6(_O__`````$C'A;C^__\`````3(FEP/[_ ++M_TC'A<C^__\`````2,>%T/[__P````#HZ*/[_\<``````+\0````2(F%T/[_ ++M_TR)M=C^__](QX7@_O__`````.B_H_O_QP``````OQ````!(B87@_O__3(FU ++MZ/[__TC'A?#^__\`````3(FE^/[__TC'A0#___\`````2,>%"/___P````#H ++M>:/[_\<``````+\0````2(F%"/___TR)M1#___](QX48____`````.A0H_O_ ++MQP``````B=Y,B>](B848____2(V%2/[__TB)PDR)M2#___](B85(^___Z"&< ++M_O]!B<2%P`^%X!$``$F+?0!(C8V_^___NE8```")WN@_6?[_08G$A<`/A;X1 ++M``!(B[V(_/__2(7_#X1/`@``2(L'2(T5BBO^_TB)^4C'A;#\__\`````2(L` ++M2#G0#X66%P``,<!(C37G=```2(T5\'0``$0/MA0"1#@4!@^%(1,``$B#P`%( ++M@_@0=>=(B8VP_/__@T<H`4B+`4B-%7)/_O](B[5(_O__2(M`&$@YT`^%9!L` ++M`,9!'`%(C7EPZ%&W_/],BZ6P_/__387D#X2\`0``28L4)$B-#=9$_O](BU(0 ++M2#G*#X4E&P``08-L)!@!#X68`0``9@]OE>#Z__])C40D\$&+E"0``0``2(F% ++MJ/K__TB-!8)-`0!)B[PD^````$$/$50D\&8/;Y70^O__28E$)!!!#Q$4)(72 ++M='B#Z@%,B:V(^O__2,'B`XF=H/K__TB)TV9F+@\?A```````#Q]``$R++!]- ++MA>UT,DF+?1!(A?]T!>@)I?O_28M]`$B%_W0&2(L'_U`03(GOOC````#HS:/[ ++M_TF+O"3X````2(/K"$B#^_AUNTR+K8CZ__^+G:#Z__](A?]T!>C$I/O_28N\ ++M).@```!(A?]T!>BRI/O_28M\)'!(A?]T!>BCI/O_28M\)&!(A?]T!>B4I/O_ ++M28M\)$!(A?]T!>B%I/O_28M\)#!(A?]T!>AVI/O_08M4)"A)BWPD((72=%B# ++MZ@%,B:V(^O__2,'B`XF=H/K__TB)TY!,BRP?387M="!)BWT`2(7_=`7H.:3[ ++M_TR)[[X0````Z`RC^_])BWPD($B#ZPA(@_OX=<U,BZV(^O__BYV@^O__2(7_ ++M=`7H!J3[_TB+O:CZ__^^*`$``.C5HOO_9@_OP+\0````2+C_____`0$!`8F= ++M?/[__TB)A;C\__](N````````0$!2,>%(/S__P````!(QX4H_/__`````$C' ++MA;#\__\`````2(F%P/S__TC'A<C\__\!`0``2,>%T/S__P````!(QX4(_?__ ++M`````$C'A1#]__\`````#Q&%V/S__P\1A>C\__\/$87X_/__Z/V?^__S#V^% ++M2/S__TB)A1#]__](C;T0_?__QP``````2(N%0/S__P\1A;C\___S#V^%6/S_ ++M_TB+M4C[__](B86P_/__#[:%O_O__P\1A<C\__^(A<W\__](C84@_/__2(F% ++MX/S__TB+A>C[__],B;48_?__QH4(_?__`$B)A>C\___H.K7\__,/;X6(_/__ ++M2(NU(/O__TR)_P\1A?C\___H[`___T&)Q(/X`0^$!14``(7`#X7P#0``2(V- ++M,/S__[H,````B=['A8C^__\`````2,>%,/S__P````!)BWT`2(F-2/O__TC' ++MA8#^__\`````2(L'2,>%./S__P````#_4#!(BXU(^___A<!!B<0/A8P-```/ ++MMX4P_/__9H/X0`^$E`X``&:%P`^%RB```$&`?6L`#X37#@``28M%8$B)STB) ++MA8#^__]!BT5HB86(_O__Z+KF_/^+A:S]__\YA:C]__]U9CW^__]_#X<AZ_O_ ++M08G$NO___W]!P>P"*<)!@\0!03G41`]'XD6-+`1-B>Q)P>4#3(GOZ&6>^_]( ++MB<.+A:C]__](B[6@_?__A<`/A8P/``!(A?8/A:0/``!(B9V@_?__1(FEK/W_ ++M_[\0`0``Z%R@^_],B?Y(B<=)B<3H+B/__XN%J/W__XU0`8F5J/W__TB+E:#] ++M__],B23"2(N]$/W__TB%_W0%Z%.A^_](B[T@_/__2(7_=`7H0J'[_TR)_^A: ++M9O[_2(N]Z/O__TB%_W0&2(L'_U`02(N]X/O__TB%_W0&2(L'_U`03(N]V/O_ ++M_TV%_P^$OP```$F+!TB-%9R;_?](BT`02#G0#X4Z$P``08-O"`$/A9T```!( ++MC06M20$`28M_,$V-9_CS#WX%C50!`&9(#V[(9@]LP4$/$4?X2(7_=`7HM:#[ ++M_TF+?R!(A?]T!>BGH/O_08M'&$F+?Q"%P'0]1(UH_TG!Y0,/'P!*BQPO2(7; ++M=!](BSM(A?]T!DB+!_]0$$B)W[X(````Z$R?^_])BW\028/M"$F#_?AUSDB% ++M_W0%Z%2@^_^^4````$R)Y^@GG_O_2(N-:/S__XM1".D#]O__#Q^$``````!F ++M#^_`OQ````!(QX5`_O__`````$C'A4C^__\`````#RF%(/[__P\IA3#^___H ++MGIS[_\<``````+\0````2(F%2/[__TR)M5#^__](QX58_O__`````.AUG/O_ ++MQP``````OQ````!(B858_O__3(FU8/[__TC'A6C^__\`````Z$R<^__'```` ++M``"_$````$B[`````/____](B85H_O__3(FU</[__TC'A8#^__\`````QX6( ++M_O__`````$C'A;C^__\`````2(F=P/[__TC'A<C^__\`````2,>%T/[__P`` ++M``#HYYO[_\<``````+\0````2(F%T/[__TR)M=C^__](QX7@_O__`````.B^ ++MF_O_QP``````OQ````!(B87@_O__3(FUZ/[__TC'A?#^__\`````2(F=^/[_ ++M_TC'A0#___\`````2,>%"/___P````#H>)O[_\<``````+\0````2(F%"/__ ++M_TR)M1#___](QX48____`````.A/F_O_QP``````2(V=6/[__TB+M3C[__], ++MC;T@_O__2(G?2(F%&/___TR)M2#____HWK#\_TB-A4C^__](B[4X^___3(V] ++M(/[__TB)QTB)A4C[___HNK#\_X"]F/S__P#'A7S^________2,>%X/O__P`` ++M``!(QX7H^___``````^%5`P``$B#O7C\__\`#X38%P``13'M2(V%0/S__TR- ++MO2#^__](B<9,B?](B86H^O__Z"P+___&A4?^__\`08G$@_@!#X5:#```387M ++M#X11#```2(.]D/S__P!T(H"]\_[__P!T"?:%]/[__P%T$$2+I6#^__]%A>0/ ++MA=P3``!(B[WH^___2(7_#X2:#@``0;P!````2(L'_U`02(N]X/O__TB%_W0& ++M2(L'_U`0187D#X1)$@``3(V](/[__T&#_`$/A'0.``!,B?_HA&+^_TB+A9C[ ++M__\/MD`MB(7)_?__2(N%$/O__TB%P'0(2(G'Z#^=^_](B[T`_/__2(7_#X0/ ++M!@``Z"J=^_](C;W0^___Z*ZW_?](B[4H^___2(T50.[^_TB+!DB+0!A(.=`/ ++MA0D%``!(@WY``'0;2(N%*/O__X!X2`!U#DB->`B^`0```.A.W/[_187D#X7R ++M!```1(NE[/W__T'WU$'O[_TB+O1C[___H:$S^_TB+O8#[___H+&+^ ++M_TB+O8C]__](A?]T!>B+F_O_QH6F^O__`0\?0`!(@X5P^___`4B+A7#[__]( ++M.84(^___#X7TZO__@+VG^O__``^%G1@``("]IOK__P`/A9`8``!(BXWP^O__ ++M2(NUD/K__T4QY$B+@<`!``!(BY'@`0``9D@/;L!(BX'0`0``9D@/;LI(B968 ++M^___#Q:!R`$``$B)1C!(BX&X`0``#Q9(*$B+A5C[__]F#VY0"`\13A`/$48@ ++M#Q:1V`$```\1%DB-O<#[___HXP_^_TB#O3#[__\`#X1!`P``Z3`#``"#^!\/ ++MATT8``"%P`^$?_K__TB+E:#]__],BVS"^$4QY.D;\?__2(N%B/O__TB-C3#\ ++M__](B<](B8V8^___2(MP0.@ZL?S_@[TX_/__`$B+C9C[__\/A"@8``!(B<]( ++MB8V8^___Z'?9_/](BXV8^___2(N%\/K__TB)SDB-N.@!``#H6J7\_TB+O3#\ ++M__](A?]T#N@IFOO_9@\?A```````2(N%B/O__X!X4``/A=,'``"+A;C]__^% ++MP`^%FQ0``(N5J/W__TB+A:#]__](BW30^,9&:P%(BX50_?__OV0````QTKF1 ++M$+8"2,'A"$@#C4C]__]FQT9H&0!(]_=(:<F`EI@`2`'!B%9J2(E.8$R-O2#^ ++M__](BY7`_?__2`.5(/W__TR+C4#[__],BX6(^___05?_M?CZ__](BXVP^O__ ++M2(NU@/O___^U\/K__TB+O5#[____M;CZ___H<L?__T&)Q$B#Q""%P`^%?0$` ++M`$B+A8C[__^`>%``=15(BX7`_?__2`.%(/W__TB)A2#^__](BXWP^O__2(N% ++M(/[__T@!A<C[__](B[V@_/__2(N1N`$``$@#0BAF2`]NP$B+A?CZ__\/%H'8 ++M`0``#Q%"*(M0"(72#X59%P``2(7_=`7HWIC[_TB+O1C[___HDDG^_TB+O8#[ ++M___H5E_^_TB+O8C]__](A?\/A#;]___HL9C[_^DL_?__#Q]``$B+"?,/;T$$ ++M1(L!#[=Y%`^V<19(BTD8#RF%H/O__X"]K/O__P`/A;;N__](BX68^___QH7( ++M_?__`0^V0"V(A<G]___I%@<``$B+A6#[__],C;T@_O__3(G_2(LPZ`>O_/]( ++MB[4@_O__2(V](/W__[H!````Z'_5_/](B[T@_O__A,`/A.`$``"+A6C]__\E ++M`/```#T`0```#X3*!```2(7_#X3OZ/__Z/R7^__IY>C__TB+O2C[____T(7` ++M#X0(^___08G$08'\!$``@`^%#_O__TB+O:#\__](A?]T!>C%E_O_2(N]&/O_ ++M_^AY2/[_2(N]@/O__^@]7O[_2(N]B/W__TB%_W0%Z)R7^_](C;W`^___Z*`, ++M_O](B[TP^___Z(27^_](BX60^___2(7`=`A(B<?H<)?[_TB+1<AD2"L$)2@` ++M```/A2H6``!(C6781(G@6T%<05U!7D%?7<,/'P!(NOS___\"````2(/H"D@Y ++MP@^#`Q8``+K_____Z2/L__\/'X``````2(V]T/O__^BDL?W_Z?'Y__\/'X`` ++M````@+V8_/__``^%<^S__TR-O2#^__],B?_HK*W\_TB+A1#[__],C:T`_/__ ++M2(N](/[__S';2(V5$/S__TR)[HF=&/S__TB)A1#\___HZ67__TB+A1#\__]( ++MB[T@_O__2(F%$/O__XN%&/S__XF%2/O__TB%_W0%Z(Z6^_](BX68^___13'; ++M3(F@&`$``$2)F"`!``"+@!`!``"%P'1G3(FM@/O__T2-8/](BYV8^___2<'D ++M`V8/'T0``$B+@P@!``!.BRP@387M="I)BWT02(7_=`7H,I;[_TF+?0!(A?]T ++M!DB+!_]0$+XP````3(GOZ/:4^_])@^P(28/\^'6\3(NM@/O__TB+A9C[__]% ++M,=)$B9`0`0``BT`XA<!T5DR)K8#[__]$C6#_2(N=F/O__TG!Y`,/'X`````` ++M2(M#,$Z++"!-A>UT&TF+?0!(A?]T!>BUE?O_OA````!,B>_HB)3[_TF#[`A) ++M@_SX=<Y,BZV`^___2(N%F/O__T4QR4R)[D2)2#A(C7AP1(E(2$2)2%AFQT`L ++M``!(C86@_?__2(F%@/O__^B!H/S_2(N%F/O__T2+A4C[__],B?](BXT0^___ ++MBU!X2(MP<$R-H)````!(C86@_?__2(F%@/O__^CHGOS_2(NU(/[__[H!```` ++M3(GGZ&32_/](B[T@_O__08G$2(7_=`7H`)7[_T6$Y`^%ANK__^BRD?O_1(L@ ++M187D#X2:$P``2(V%H/W__TB)A8#[__\/CG_W__]%#[?D08',````B.EO]___ ++M9I!(B<_H:-G\_TB+O1#]__](A?]T!>BGE/O_2(N](/S__TB%_W0%Z):4^_], ++MB?_HKEG^_TB+O>C[__](A?]T!DB+!_]0$$B+O>#[__](A?]T!DB+!_]0$$R+ ++MK=C[__]-A>T/A/;V__])BU4`2(T-[X[]_TB+4A!(.<H/A:D2``!!@VT(`0^% ++MT_;__TB-%0`]`0!)BWTP28U=^/,/?@7@1P$`9D@/;OIF#VS'00\11?A(A?]T ++M!>@(E/O_28M]($B%_W0%Z/J3^_]!BTT828M]$$&)ST6%_P^$ZA```$&-1_]( ++MBQ3'28G'2(72=.=(BSI(A?]T%$B+!TB)E4C[____4!!(BY5(^___2(G7O@@` ++M``#HC9+[_TF+?1#KN$B+A3C\__](B86`_O__#[>%,OS__XG"@^@!@_@8#X<R ++M#```9H.]-OS__P`/A20,```/MX4T_/__9H/X8P^'$PP``&:)E8C^__^(A8K^ ++M___&A8O^__\!D$B)S^CXU_S_Z3GQ__\/'P!(A?]T!>@VD_O_Z`'2_/],B?]! ++MB<1(BX5@^___2(LPZ-RI_/](BXWX^O__1(GB3(G^2(T]0T\``.BS0O[_2(N] ++M(/[__TB%_P^$1OO__^CNDOO_Z3S[__]F#Q^$```````QP$B-%<=A```/'X`` ++M````#[8,`C@,!@^%!04``$B#P`%(@_@0=>E(C4\(Z;GL__]$B>-(P>,#2(G? ++MZ$&/^_](B87P^___13'M1(FE_/O__TB+A7C[__^_(````$B+`$Z+)"CH2)'[ ++M_XN5^/O___-!#V\$)$F#Q0B-2@$/$0#S00]O1"00B8WX^___2(N-\/O__P\1 ++M0!!(B03123G==;'I@.3__XN5J/W__TB+A:#]__](BT30^,9`:P#I;OC__TB- ++M%,4`````3(GI2(G?2(FU2/O__^@GD_O_2(NU2/O__TB)]^CXD?O_Z4_P__]( ++MC;7@^___2(FUR/K__TB)\HG>_]#I4.G__[\0````Z)^0^_\Q_TF)Q(EX"$B- ++M!>A$`0!,B>=)B00DZ%3Q_/](B[WH^___2(7_=`9(BP?_4!!,B:7H^___3(FE ++M@/S__^EP\___2(N]Z/O__TB%_P^%X?/__^GB\___3(G_Z"+6_/](BX68^___ ++M@[VH_?__``^5A<C]__\/MD`MB(7)_?__187D#X7W\___2(V%`/S__T4QY$B) ++MA4C[__](BX68^___@WA(`'4QZ2,.``!F9BX/'X0``````&9F+@\?A``````` ++MD$B+A9C[__])@\0!1#M@2`^#]PT``$B+A9C[__](BT!`0H`\(`!TV4J-!.4` ++M````OQ````!(B84X^___2(N%F/O__TB+0#!.BRS@2,>%L/S__P````#H5HW[ ++M_\<``````$B+M4C[__\QTDB)A;#\__](C86P_/__2(G'3(FUN/S__^A:KOS_ ++M3(V](/[__TF+30!%BT4(BY6X_/__2(NUL/S__TR)_^CF;___BX6\_?__.86X ++M_?__=6D]_O__?P^'I]3[_T&)Q;K___]_0<'M`BG"08/%`4$YU40/1^I$`>A( ++MC1S%`````$F)Q4B)W^B^C/O_28G`BX6X_?__2(NUL/W__X7`#X6.````2(7V ++M#X6I````3(F%L/W__T2)K;S]__^_$````.BUCOO_3(G^2(G'28G%Z(>>_/^+ ++MA;C]__^-4`&)E;C]__](BY6P_?__3(DLPDB+O2#^__](A?]T!>BLC_O_2(N] ++ML/S__TB%_W0%Z)N/^_](BX68^___2HT,Y0````!(BT!02(L$"$@!A<#]___I ++M:/[__TR)QTB-%,4`````2(G92(FU./O__^A^D/O_2(NU./O__TF)P$B)]TR) ++MA3C[___H18_[_TR+A3C[___I//___TB+O4#[__^)RO_0Z53@__](BY6`^___ ++M2(NU4/O__T6)X$B+O4#[____T.F%\O__2(N]X/O__TB%_W0&2(L'_U`02(N% ++M\/[__TB-M0C___](C;WX_?__2(F%X/W__TB+A?C^__](B87H_?__2(N%`/__ ++M_TB)A?#]___H&Z'\_TB-M1C___](C;T(_O__Z`BA_/](B[5(^___2(V]T/W_ ++M_^CUH/S_0;P!````Z1[Q__](BY4@^___2(TU3%T``/_02(N-L/S__TB%R0^$ ++M=>K__^EYZ/__BY5(____B=`E`/```#T`0```#X1X"@``2(N-8/____,/;T68 ++MB95H_?__2(N50/___TB)C2#]__\/$84H_?__\P]O18A(B95P_?__2(N53/__ ++M_P\1A4C]___S#V^%>/___TB)E7C]__](BY58____#Q&%./W__V8/;X4P____ ++M2(F5@/W__P\1A5C]__\]`(````^$Y@D``$C'A2#]________Z:S>__](C4\0 ++MZ;[G__],B?__T.ED[?__2(N%:/S__TB-M=#^__](C;WX_?__1(M@"$B+A;C^ ++M__](B87@_?__2(N%P/[__TB)A>C]__](BX7(_O__2(F%\/W__^C#G_S_2(VU ++MX/[__TB-O0C^___HL)_\_TB+M4C[__](C;W0_?__Z)V?_/](B[T0_?__2(7_ ++M=`7H+(W[_TB+O2#\__](A?]T!>@;C?O_187D3(G_00^5Q.@L4O[_2(N]Z/O_ ++M_T4/MN1(A?]T!DB+!_]0$$B+O>#[__](A?]T!DB+!_]0$$R+K=C[__]-A>T/ ++MA&+[__])BT4`2(T-:8?]_TB+0!!(.<@/A=P)``!!@VT(`0^%/_O__TB-!7HU ++M`0!)BWTP28U=^/,/?@5:0`$`9D@/;OAF#VS'00\11?A(A?]T!>B"C/O_28M] ++M($B%_W0%Z'2,^_]!BT48A<`/A!,+``"#Z`%(B9U(^___28M]$$B-%,4````` ++M28G79F8N#Q^$```````/'T``2HL</TB%VW0?2(L[2(7_=`9(BP?_4!!(B=^^ ++M"````.C\BOO_28M]$$F#[PA)@__X=<Y(BYU(^___2(7_=`7H_8O[_[Y0```` ++M2(G?Z-"*^__I>?K__TB+A>#[__\Q]C'_13'`,<E(B;4`____13')2(NUJ/K_ ++M_TB)A7C\__^X_____TC!X"")O1#___],B?](B87X_O__2(N%"/___TB)C?#^ ++M__]$B0!(BX48____1(F%(/___T2)".BS^/[_08G$A<`/A6@#``!(B[TP_/__ ++M2(7_=`7H9XO[_TB+O2#\__](A?]T!>A6B_O_2(N]Z/O__TB%_P^%J.W__TB+ ++MO>#[__](A?]T!DB+!_]0$(N%K/W__SF%J/W__W5L/?[__W\/A]?3^_^)PKG_ ++M__]_3(V](/[__\'J`BG!@\(!.<H/1]$!T(G`3(TLQ0````!)B<1,B>_HB8?[ ++M_TB)PXN%J/W__TR+O:#]__^%P`^%/`<``$V%_P^%20<``$B)G:#]__]$B:6L ++M_?__OQ`!``!,C;T@_O__Z'F)^_],B?Y(B<=)B<3H2PS__XN%J/W__TR)_XU0 ++M`8F5J/W__TB+E:#]__],B23"Z)E/_O_I+>K__TR)Y__2Z77F__](B<__T.F? ++MY/__Z"O)_/](BXWX^O__2(NU@/O__TB-/8%&``")PD&)Q.CL.?[_2(N]H/W_ ++M_TB%_W0%Z"N*^_](B[V(_O__2(7_#X62\O__Z9+R__](BXWX^O__2(NU@/O_ ++M_[H%0`"`2(T]4$8``.BG.?[_0;P%0`"`Z[-%,?],B;W(^___A=(/A279___I ++MCN[__TB+E5C^__]$B>!(C37B/@``2(T\@NC.DOS_A,`/A`+L__](C84@_/__ ++M2(G:1(GF2(G'2(F%B/K__^CJE?S_2(N50/S__S';@WH8``^$:08``$B-A3#\ ++M__](B87`^O__2(V%L/S__TB)A<CZ___I>P$``$4QV[\0````3(F=L/S__^CR ++MA?O_13'22(F%L/S__TR)M;C\__]$B1!(B[7(^O__2(N]P/K__^@+9___2(N] ++ML/S__TB%_W0%Z!J)^_],BZ5(^___2(NUP/K__TR)Y^ADF_S_2(TU:44``$R) ++MY^@E9O__2(NU2/[__TB+O<CZ__],BZ60_/__Z)N?_/](B[6P_/__28V\))`` ++M``"Z`0```.@2QOS_2(N]L/S__X3`#X35`0``08N$)-@````E`/```#T`0``` ++M#Y7`2(7_=!*(A2#[___HCHC[_P^VA2#[__^$P`^$J@$``$B+M4C^__](B[W( ++M^O__Z"R?_/]!BWTL0<:%\@````!,BZ6P_/__@___=!'H7XK[_X7`=0A!QT4L ++M_____[JV`0``,?9,B><QP.B"B?O_2(N]L/S__T&)12Q!B<1(A?]T!>@:B/O_ ++M08/$`0^%)?S__TB+O3#\__](A?]T!>C_A_O_2(N50/S__TB#PP$[6A@/@\T$ ++M``!(BT(02(TU2CX``$B)E2#[__],BR3828M\)!CHVY#\_TB+E2#[__^$P'7( ++M2(NUB/K__TB+O<#Z___H79;\_XN%./S__SF%//S__P^$]0,``(N%./S__TB+ ++MC3#\__\Q]HU0`<<$@2X```")T(DT@4&#?"0P`(F5./S__P^$!?[__TF+1"0H ++M2(N]R/K__TB+,.@'EOS_Z13^__](B<](B8U(^___QX6(_O__`````>@IS/S_ ++M28M]`+HH````B=Y(BXU(^___2(L'_U`P2(N-2/O__X7`08G$#X5/\O__9H.] ++M,/S__Q,/A;'S__^+A3C\__^%P'4%N!<```!(B<]FB86(_O__Z)/+_/_IU.3_ ++M_TB%_P^%//[__TB+M<#Z__](B[U(^___Z"*9_/](B[5(_O__2(N]R/K__TR+ ++MI9#\___H:)W\_TB+M;#\__])C;PDD````+H!````Z-_#_/](B[VP_/__A,`/ ++MA+("``!!BX0DV````"4`\```/0!````/E<!(A?]T$HB%(/O__^A;AOO_#[:% ++M(/O__X3`#X7-_?__Z3?^__^_"`$``$R-O2#^___H!H7[_TB)QTF)Q>@[7?W_ ++M28M%`$R)[_]0"$B+O>#[__](A?]T!DB+!_]0$$B+O4C[__](B=Y,B:W@^___ ++M3(V](/[__^A2F/S_2(V%L/S__TB+M4C^__](B<?HG)S\_T&+?2Q!QH7R```` ++M`$R+I;#\__^#__]T$>C/A_O_A<!U"$''12S_____NK8!```Q]DR)YS'`Z/*& ++M^_](B[VP_/__08E%+$&)Q$B%_W0%Z(J%^_]!@\0!#X0.`@``2(N%X/O__\:% ++M1_[__P%(B85X_/__Z4KG__],BZ68^O__2(N5L/W__TB+M<#]__]!BTPD"$B- ++M!,)(B84X^___B8U(^___2(FU(/O__P\?0`!(BQI$BZU(^___13'V3(G@2(F5 ++M8/O__T6)]$6)[DF)W4B)P^L'#Q\`18UG`42)X$B)A9C[__]%.>9T,4B+A9C[ ++M__]%B?=)BWT`20''2(L#2='O2HL$^$B+,.ABL?S_A<!T'GG$18G^13GF=<]( ++MBY5@^___28G<ZSX/'X0``````$B+E6#[__])B=Q%A?]X)T0YO7#[__]S'DB+ ++MC9#[__](BX4P^___2HL,^4@IC2#[__]"Q@0X`4B+A3C[__](@\((2#G"#X4V ++M____2(NU(/O__TB%]@^$5>K__TB+A6C[__](B[VX^O__2`'P2(G&N`````!( ++M#TG&2(F%:/O__TB)QDB+!_]0&$&)Q(7`#X5([/__2(N%H/W__XN5J/W__TB+ ++M=-#X2(N%B/O__P^V0%"(A9C[__^#\`&(1FN$P`^%`NK__^DUZO__2(.]8/__ ++M_P`/A<C4___I!_;__S')Z8CU__](A?\/A5_]___IL/O__TR)_XF%2/O__^AB ++MR/S_1(NE2/O__^E"YO__2(N]P/K__^A*C_S_Z?K[__](C13%`````$R)Z4R) ++M_DB)W^B?A/O_3(G_Z'>#^__IJOC__^@M@/O_2(N]Z/O__T2+($6%Y`^$1P(` ++M``^.W````$4/M^1!@<P```"(2(7_#X6BY?__2(N]X/O__TR-O2#^__](A?\/ ++MA+WE__](BP?_4!#IH>7__TB+O2#\__](A?\/A%KE___H"8/[_^E0Y?__13'D ++MZ:GE__](A?]T!>CR@OO_OE````!(B=_HQ8'[_^E\Y?__3(GO_]#I9/'__S'` ++M2(F%:/O__TB)A3#[__](B860^___Z6+1__](BYVX^O__2(NU:/O__TB+`TB) ++MW_]0&$&)Q(7`#X7\ZO__2(L#2(VUR/O__TB)W_]0($&)Q(7`#X0SY___Z=SJ ++M__](A?\/A='D___I*O___TB+A9C[__^#O:C]__\`#Y6%R/W__P^V0"V(A<G] ++M___I_/#__T&)Q.EHZO__2(N%8/O__TB-O;#\__](B8V8^___2(LPZ.&8_/^_ ++M!````$B+G;#\___HL'[[_\8``$B+M9C[__](C94@_O__2(G?3(FU*/[__TB) ++MA2#^___H&5'__TB+O2#^__](BXV8^___2(7_=`SHT8'[_TB+C9C[__](B[VP ++M_/__2(7_=!-(B8V8^___Z+*!^_](BXV8^___@[TX_/__``^$3N?__^DSY___ ++M3(GO_]+I*^3__T&\!4``@.FUZ?__2(N%F/O__T&\`4``@`^V0"V(A<G]___I ++M%>3__TB)ST&\!4``@.@*QOS_Z9WL__])BWT0Z47U__](C86@_?__0;P%0`"` ++M2(F%@/O__^G@X___Z"Z`^_\QTKD#````2/?QN@,```!(.=!(#T/0Z0_6__]( ++MA?]T"T&\!4``@.EEX___2(N]X/O__TB%_W082(L'0;P%0`"`3(V](/[___]0 ++M$.ESX___0;P%0`"`3(V](/[__^EAX___\P\>^DB)P^EVP_O_\P\>^DB)P^E7 ++MQ/O_\P\>^DB)P^FJQ/O_\P\>^DB)P^F[Q/O_\P\>^ND)R/O_\P\>^DB)P^G[ ++MQ/O_\P\>^DB)P^GOQ?O_\P\>^DB)P^G*R?O_\P\>^DB)P^D,QOO_\P\>^DB) ++MP^DDQOO_\P\>^DB)P^D'QOO_\P\>^DB)P^GAQ/O_\P\>^DB)P^G%Q/O_\P\> ++M^DB)P^EYQOO_\P\>^DB)P^E<QOO_\P\>^NG0QOO_\P\>^DB)P^G=QOO_\P\> ++M^DB)P^G`QOO_\P\>^DB)P^E"P_O_\P\>^DB)P^DFP_O_\P\>^DB)P^G@QOO_ ++M\P\>^DB)P^G#QOO_\P\>^DB)P^FHPOO_\P\>^DB)P^GNQ_O_\P\>^DB)P^G" ++MPOO_\P\>^DB)P^D?QOO_\P\>^DB)P^D$P_O_\P\>^DB)P^EJQOO_\P\>^DB) ++MPTB-A:#]__](B86`^___2(V%\/O__TB)A1C[___IAL+[__,/'OI(B</IPL7[ ++M__,/'OI(B</II<7[__,/'OI(B<-(C86@_?__2(F%@/O__^DXPOO_\P\>^DB) ++MPTB-A:#]__](B86`^___Z0["^__S#Q[Z2(G#Z>S$^__S#Q[Z2(G#Z<_$^__S ++M#Q[Z28G$Z:;&^__S#Q[Z28G$Z8+&^__S#Q[Z28G$Z:/&^__S#Q[Z2(G#Z2;" ++M^__S#Q[Z2(G#Z1K'^__S#Q[Z2(G#Z23'^__S#Q[Z2(G#Z=#&^__S#Q[Z2(G# ++MZ<;"^__S#Q[Z2(G#Z<O"^__S#Q[Z2(G#Z0?'^__S#Q[ZZ2W'^__S#Q[Z2(G# ++MZ2["^__S#Q[Z2(G#Z0#"^__S#Q[Z2(G#Z07"^__S#Q[Z2(G#Z>C!^__S#Q[Z ++M2(G#Z=S!^__S#Q[Z2(G#Z3G$^__S#Q[Z2(G#Z1S$^__S#Q[Z2(G#Z?[&^__S ++M#Q[Z2(F%F/O__^D`Q_O_\P\>^DB)P^G#P/O_\P\>^DB)P^EWQ?O_\P\>^DB) ++MP^EKQ?O_\P\>^NFYQOO_\P\>^DB)P^DDQ?O_\P\>^DB)P^D8Q?O_\P\>^DB) ++MP^EVPOO_#Q]$``#S#Q[Z54B)Y4%728G_059,C76P055!B=6)RDR)\4%44XGS ++M2(/L2$B+!V1,BR0E*````$R)9<A-B<1(QT6P`````$C'1;@`````_U`PA<`/ ++MA8P````/MT6P9H/X$W1R9H7`=7U,B??H]<'\_TB-1:!$B>J)WDB)19A(B<%) ++MBP=,B?](QT6@`````$C'1:@`````_U`PA<!U$`^W1:!F@_@(=%YF@_@3=$A( ++MBWV8Z*_!_/](BT7(9$@K!"4H````=75(@\1(6T%<05U!7D%?7<.0BT6X0<8$ ++M)`%!B40D!.N$D$R)]^AXP?S_Z\=F#Q]$``"+1:A!Q@0D`4&)1"0$ZZF02(MU ++MJ$R)]^C$B?S_28UT)`BZ``(``$R)]^B"GOS_2(M]L$B%_P^$??___^B`?/O_ ++MZ7/____H=GO[__,/'OI(B</I*\?[__,/'OI(B</I+<?[_V8N#Q^$```````/ ++M'T``2(T%Z5(``$B#^@`/A!@#``#S#V\7\P]O7Q!F#W#"&V8/<-,;9@]OVF8/ ++M;-!F#VW89D0/;PVG4@``#Q^``````&9$#V_"9@]OR_,/;R9F00\X`.'S#V]N ++M$&9!#S@`Z?,/;W8@9D$/.`#Q\P]O?C!F00\X`/EF#V\`9@_^Q`\XR]-F#W#` ++M#@\XR]IF#V]`$&8/_L4/.,O39@]PP`X/.,SE#SC+VF8/;T`@9@_^Q@\XR]-F ++M#W#`#@\XS.X/.,O:9@]OQV8/.@_&!&8/_N`/.,WG9@]O0#!F#_['#SC+TV8/ ++M<,`.#SC,]P\XR]IF#V_$9@\Z#\<$9@_^Z`\XS>QF#V]`0&8/_L0/.,O39@]P ++MP`X/.,S\#SC+VF8/;\5F#SH/Q`1F#_[P#SC-]68/;T!09@_^Q0\XR]-F#W#` ++M#@\XS.4/.,O:9@]OQF8/.@_%!&8/_O@/.,W^9@]O0&!F#_[&#SC+TV8/<,`. ++M#SC,[@\XR]IF#V_'9@\Z#\8$9@_^X`\XS>=F#V]`<&8/_L</.,O39@]PP`X/ ++M.,SW#SC+VF8/;\1F#SH/QP1F#_[H#SC-[&8/;X"`````9@_^Q`\XR]-F#W#` ++M#@\XS/P/.,O:9@]OQ68/.@_$!&8/_O`/.,WU9@]O@)````!F#_[%#SC+TV8/ ++M<,`.#SC,Y0\XR]IF#V_&9@\Z#\4$9@_^^`\XS?YF#V^`H````&8/_L8/.,O3 ++M9@]PP`X/.,SN#SC+VF8/;\=F#SH/Q@1F#_[@#SC-YV8/;X"P````9@_^QP\X ++MR]-F#W#`#@\XS/</.,O:9@]OQ&8/.@_'!&8/_N@/.,WL9@]O@,````!F#_[$ ++M#SC+TV8/<,`.#SC,_`\XR]IF#V_%9@\Z#\0$9@_^\`\XS?5F#V^`T````&8/ ++M_L4/.,O39@]PP`X/.,O:9@]OQF8/.@_%!&8/_O@/.,W^9@]O@.````!F#_[& ++M#SC+TV8/<,`.#SC+VF8/;X#P````9@_^QP\XR]-F#W#`#@\XR]IF00_^T&8/ ++M_ME(@\9`2(/J`0^%-OW__V8/<,(;9@]PTQMF#V_:9@]LT&8/;=CS#W\7\P]_ ++M7Q##9@\?1```4U6+QTB+Z4B+^DB+UDB#_Q\/@JP!``#WP@,```!T%P^V,@^V ++MV$C_PL'H"#/S,T2U`$C_S^OA,P)(C7PZY4@KUXM,%PP/MUP7"$0/MTP7"@^V ++M\\'K"#.,M0`,``!!#[;Q0<'I"#.,G0`(```SC+4`!```0C-,C0`/MUP7!$0/ ++MMTP7!@^V\\'K"#.,M0`<``!!#[;Q0<'I"#.,G0`8```SC+4`%```0C.,C0`0 ++M```/MO"+V,'K&#.,M0`L```SC)T`(```P<@0#[;PP>@8,XRU`"0``#.,A0`H ++M``"+1!<8#[=<%Q1$#[=,%Q8/MO/!ZP@SA+4`#```00^V\4'!Z0@SA)T`"``` ++M,X2U``0``$(S1(T`#[=<%Q!$#[=,%Q(/MO/!ZP@SA+4`'```00^V\4'!Z0@S ++MA)T`&```,X2U`!0``$(SA(T`$```#[;QB]G!ZQ@SA+4`+```,X2=`"```,') ++M$`^V\<'I&#.$M0`D```SA(T`*```2(/"&`^#PO[__TB#QQA(@^H8#[;8#[;, ++MP>@0#[;PP>@(BT2%`#.$G0`,```SA(T`"```,X2U``0``$B#P@1R!3,$%^O- ++M2`/72(/'`T@K^DB%_W07#[8R#[;82/_"P>@(,_,S1+4`2/_/=>E=6\-F+@\? ++MA```````#Q]``$B+PDB+UDB+SXMQ$,'F!69$#V\A2(/!(&9$#V\L,69$#V\Q ++M@^X0Z9P!```/'T0``&8/;PIF#V]2$&8/;UH@9@]O8C!F#V]J0&8/;W)09@]O ++M>F!F1`]O0G!F1`]OBH````!F1`]ODI````!F1`]OFJ````"+_F9!#^_-9D$/ ++M[]5F00_OW69!#^_E9D$/[^UF00_O]69!#^_]9D4/[\5F10_OS69%#^_59D4/ ++M[]UF#V\$.68/.-[(9@\XWM!F#SC>V&8/.-[@9@\XWNAF#SC>\&8/.-[X9D0/ ++M.-[`9D0/.-[(9D0/.-[09D0/.-[82(/O$'6Z9D$/.-_.9D$/.-_69D$/.-_> ++M9D$/.-_F9D$/.-_N9D$/.-_V9D$/.-_^9D4/.-_&9D4/.-_.9D4/.-_69D4/ ++M.-_>9D$/[\QF#^\29@_O6A!F#^]B(&8/[VHP9@_O<D!F#^]Z4&9$#^]"8&9$ ++M#^]*<&9$#^^2@````&9$#^^:D````&9$#V^BH````&8/?PIF#W]2$&8/?UH@ ++M9@]_8C!F#W]J0&8/?W)09@]_>F!F1`]_0G!F1`]_BH````!F1`]_DI````!F ++M1`]_FJ````!(@<*P````2(/H"P^#7_[__TB#P`N#[A#K/&8/;P*+_F9!#^_% ++M9@\XWD0Y$&8/.-X$.4B#[R!U[68/.-Y!$&9!#SC?QF9!#^_$9D0/;R)F#W\" ++M2(/"$$B#Z`%SOF9$#W]AX,,/'X``````9@\?1```2(O"2(O62(O/BW$0P>8% ++M2(/X%@^"QOW__\5Y;R%(@\$@Q&)]6BPQQ&)]6C&#[A"+_@/V4TB![,`!``!( ++MB]Q(@^/@Q.)]6@0YQ?U_!'M(@^\0=>](@^@6#Q^``````&:0B_[%E>\*Q97O ++M4B#%E>]:0,65[V)@Q97OJH````#%E>^RH````,65[[K`````Q17O@N````#% ++M%>^*``$``,45[Y(@`0``Q17OFD`!``#%_6\$.\3B==[(Q.)MWM#$XF7>V,3B ++M7=[@Q.)5WNC$XDW>\,3B1=[XQ&(]WL#$8C7>R,1B+=[0Q&(EWMA(@^\@=;[$ ++MPG7?SL3";=_6Q,)EW][$PEW?YL3"5=_NQ,)-W_;$PD7?_L1"/=_&Q$(UW\[$ ++M0BW?UL1")=_>Q&,=."(!Q,%U[\S%[>]2$,7E[UHPQ=WO8E#%U>]J<,7-[[*0 ++M````Q<7ONK````#%/>^"T````,4U[XKP````Q2WODA`!``#%)>^:,`$``,5Y ++M;Z)0`0``Q?Y_"L7^?U(@Q?Y_6D#%_G]B8,7^?ZJ`````Q?Y_LJ````#%_G^Z ++MP````,5^?X+@````Q7Y_B@`!``#%?G^2(`$``,5^?YI``0``2('"8`$``$B# ++MZ!8/@X?^__](@\`6T>Y(@<3``0``6\7X=^FH_?__PTB+PDB+UDB+SXMQ$,'F ++M!68/;P%(@\$@9@]O$68/;UD09@]O82!F#V]I,&8/;W%`9@]O>5!(`\Y(]]Y( ++M@\9@ZTAF#V\*2(O^9@_ORF8/[\%F#SC<PV8/.-S$9@\XW,5F#SC<QF8/.-S' ++M9@\XW`0Y9@\XW$0Y$$B#QR!U[68/.-T!9@]_`DB#PA!(@^@!<[)F#W]$,8## ++M#Q^```````\?0`!(B\)(B]9(B\^+<1#!Y@5F1`]O(4B#P2!F1`]O,4@#SDCW ++MWDB#QA"_`0```&9$#V[OZ<0!```/'X``````#Q\`9D4/U.5F00]OS&9%#]3E ++M9D$/;]1F10_4Y69!#V_<9D4/U.5F00]OY&9%#]3E9D$/;^QF10_4Y69!#V_T ++M9D4/U.5F00]O_&9%#]3E9D4/;\1F10_4Y69%#V_,9D4/U.5F10]OU&9%#]3E ++M9D4/;]Q(B_YF00_OSF9!#^_69D$/[]YF00_OYF9!#^_N9D$/[_9F00_O_F9% ++M#^_&9D4/[\YF10_OUF9%#^_>9@]O!#EF#SC<R&8/.-S09@\XW-AF#SC<X&8/ ++M.-SH9@\XW/!F#SC<^&9$#SC<P&9$#SC<R&9$#SC<T&9$#SC<V$B#QQ!UNF8/ ++M;P%F#SC=R&8/.-W09@\XW=AF#SC=X&8/.-WH9@\XW?!F#SC=^&9$#SC=P&9$ ++M#SC=R&9$#SC=T&9$#SC=V&8/[PIF#^]2$&8/[UH@9@_O8C!F#^]J0&8/[W)0 ++M9@_O>F!F1`_O0G!F1`_OBH````!F1`_ODI````!F1`_OFJ````!F#W\*9@]_ ++M4A!F#W]:(&8/?V(P9@]_:D!F#W]R4&8/?WI@9D0/?T)P9D0/?XJ`````9D0/ ++M?Y*0````9D0/?YJ@````2('"L````$B#Z`L/@SS^__](@\`+2(/I$$B#QA#K ++M/&9%#]3E9D$/;\9(B_YF00_OQ&8/.-P$.68/.-Q$.1!(@\<@=>UF#SC<`68/ ++M.-U!$&8/[P)F#W\"2(/"$$B#Z`%SOF9$#W]D,=###Q]``$B+PDB+UDB+SXMQ ++M$,'F!4B#^!8/@I;]___$8GU:(4B#P2#$8GU:,;\!````Q7EN[\1!G?OEQ$&1 ++MU.W$0Q4X[0%(`\Z#[A!(]]Y(B_Y(`_932(U<).!(@>S@`0``2(/CX,3B?5H! ++MQ?U_`\3B?5H$.<7]?P1[2(/'$'7O2(/H%F:02(O^Q$&=U.7$P1WOSL1!G=3E ++MQ,$=[];$09W4Y<3!'>_>Q$&=U.7$P1WOYL1!G=3EQ,$=[^[$09W4Y<3!'>_V ++MQ$&=U.7$P1WO_L1!G=3EQ$$=[\;$09W4Y<1!'>_.Q$&=U.7$01WOUL1!G=3E ++MQ$$=[][%_6\$.\3B==S(Q.)MW-#$XF7<V,3B7=S@Q.)5W.C$XDW<\,3B1=SX ++MQ&(]W,#$8C7<R,1B+=S0Q&(EW-A(@\<@=;[%_6\#Q.)UW<C$XFW=T,3B9=W8 ++MQ.)=W>#$XE7=Z,3B3=WPQ.)%W?C$8CW=P,1B-=W(Q&(MW=#$8B7=V,7U[PK% ++M[>]2(,7E[UI`Q=WO8F#%U>^J@````,7-[[*@````Q<7ONL````#%/>^"X``` ++M`,4U[XH``0``Q2WODB`!``#%)>^:0`$``,7^?PK%_G]2(,7^?UI`Q?Y_8F#% ++M_G^J@````,7^?[*@````Q?Y_NL````#%?G^"X````,5^?XH``0``Q7Y_DB`! ++M``#%?G^:0`$``$B!PF`!``!(@^@6#X-K_O__2(/`%L1#?3GD`4C1_DB!Q.`! ++M``!;Q?AWZ97[___#`````````````````%-5051!54%605=(C40D@$B#X(!( ++MB^Q(B^!(B2A(B7@(QT!D`````$B)4$A(B]],BV,820/T2(EP0(M[2(EX<(M[ ++M3(EX=(M[4(EX>(M[5(EX?$R+<RA-`_1,B7!H3(E@.(I+`K\!````T^?_SXEX ++M6(H+N@`!``"+^M/J@,$!B4A0BDL!T^<K^HEX5$2+STR+6Q!,B5@P2(M[($B) ++M>"B+2T2)2%Q$BVM`1(M#6$'1X$R+>S"+0SB+:SQ!N@`(```SVT$+S70.20/\ ++M33OT20]%_@^V7_^+3"1802/-P>$%2XTT`T&#^`@/@OX"``!!@_@.#X+%#0`` ++MZ0\*``!F#Q]$``!%,\!!B_W!YP@#WT$CV4@#\8M,)%"-'%M)@<.``@``T^-, ++M`]M!B_HK^L'O!0/79HF6`/[__T'_Q4$/MTL"00^W4P0]`````7,,P>4(08HO ++MP>`(2?_'B_C!Z`L/K\$K^(OU*^@/0\=!#[=[!@]#U[\?````#T+N00]"^KL" ++M````@]O_*_G!_P4#^69!B7L"00^W#)L#VST````!<PS!Y0A!BB_!X`A)_\>+ ++M^,'H"P^OPBOXB_4KZ`]#QT$/MWQ;`@]#S[\?````#T+NB_-!#T+Z@]O_*_K! ++M_P4#^F9!B3PS00^W%)L#VST````!<PS!Y0A!BB_!X`A)_\>+^,'H"P^OP2OX ++MB_4KZ`]#QT$/MWQ;`@]#U[\?````#T+NB_-!#T+Z@]O_*_G!_P4#^69!B3PS ++M00^W#)L#VST````!<PS!Y0A!BB_!X`A)_\>+^,'H"P^OPBOXB_4KZ`]#QT$/ ++MMWQ;`@]#S[\?````#T+NB_-!#T+Z@]O_*_K!_P4#^F9!B3PS00^W%)L#VST` ++M```!<PS!Y0A!BB_!X`A)_\>+^,'H"P^OP2OXB_4KZ`]#QT$/MWQ;`@]#U[\? ++M````#T+NB_-!#T+Z@]O_*_G!_P4#^69!B3PS00^W#)L#VST````!<PS!Y0A! ++MBB_!X`A)_\>+^,'H"P^OPBOXB_4KZ`]#QT$/MWQ;`@]#S[\?````#T+NB_-! ++M#T+Z@]O_*_K!_P4#^F9!B3PS00^W%)L#VST````!<PS!Y0A!BB_!X`A)_\>+ ++M^,'H"P^OP2OXB_4KZ`]#QT$/MWQ;`@]#U[\?````#T+NB_-!#T+Z@]O_*_G! ++M_P4#^69!B3PS`]L]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\(K^(OU*^@/ ++M0\>_'P````]"[HOS00]"^H';_P```"OZP?\%`_IF08D\,TR+7"0PBTPD6$$C ++MS<'A!4N--`-!B!Y)_\9,.WPD2`^#)0X``$P[="1`#X,:#@``#[>4#@#^__\] ++M`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\([Z`^"[/S__ROX*^B+QXOZP>H% ++M*_IFB;P.`/[__P^W5B`]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\([Z`^# ++M$`L``$&+^BOZP>\%`]=FB58@28'#`/K__T&#P!A!O`4```!!#[<3/0````%S ++M#,'E"$&*+\'@"$G_QXOXP>@+#Z_".^@/@LH````K^"OHB\>+^L'J!2OZ9D&) ++M.TF#PQ!!O/W___]!#[<3/0````%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_".^@/ ++M@H@````K^"OHB\>+^L'J!2OZ9D&).TF!P_`!``"[`0```$$/MTL"9@\?1``` ++M00^W%)L#VST````!<PS!Y0A!BB_!X`A)_\>+^,'H"P^OP2OXB_4KZ`]#QT$/ ++MMWQ;`@]#U[\?````#T+NB_-!#T+Z@]O_*_G!_P4#^69!B3PSB\J#^T!RJ$&\ ++M[0```.MG08OZ*_K![P4#UV9!B1-,`]E!#[=3`D$/MTL$/0````%S#,'E"$&* ++M+\'@"$G_QXOXP>@+#Z_"*_B+]2OH#T/'00^W>P8/0\^_'P````]"[D$/0OJ[ ++M`@```(/;_ROZP?\%`_IF08E[`D$/MQ2;`]L]`````7,,P>4(08HOP>`(2?_' ++MB_C!Z`L/K\$K^(OU*^@/0\=!#[=\6P(/0]>_'P````]"[HOS00]"^H/;_ROY ++MP?\%`_EF08D\,P/;/0````%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_"*_B+]2OH ++M#T/'OQ\````/0NZ+\T$/0OI!&]PK^L'_!0/Z9D&)/#-,BUPD,$&#^!@/@OX# ++M``"_!0```(/[!0]"^TF#PX#!YP=,`]]$B^-!#[=+`D$/MU,$/0````%S#,'E ++M"$&*+\'@"$G_QXOXP>@+#Z_!*_B+]2OH#T/'00^W>P8/0]>_'P````]"[D$/ ++M0OJ[`@```(/;_ROYP?\%`_EF08E[`D$/MPR;`]L]`````7,,P>4(08HOP>`( ++M2?_'B_C!Z`L/K\(K^(OU*^@/0\=!#[=\6P(/0\^_'P````]"[HOS00]"^H/; ++M_ROZP?\%`_IF08D\,T$/MQ2;`]L]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/ ++MK\$K^(OU*^@/0\=!#[=\6P(/0]>_'P````]"[HOS00]"^H/;_ROYP?\%`_EF ++M08D\,T$/MPR;`]L]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\(K^(OU*^@/ ++M0\=!#[=\6P(/0\^_'P````]"[HOS00]"^H/;_ROZP?\%`_IF08D\,T$/MQ2; ++M`]L]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\$K^(OU*^@/0\=!#[=\6P(/ ++M0]>_'P````]"[HOS00]"^H/;_ROYP?\%`_EF08D\,XO+`]L]`````7,,P>4( ++M08HOP>`(2?_'B_C!Z`L/K\(K^(OU*^@/0\>_'P````]"[HOS00]"^H/;/ROZ ++MP?\%`_IF08D\,X/C`TR+7"0P@_DG#X*."```@^DE@\L"00^W4P+!XP5-C4L$ ++MZRP/'X``````#Q^```````\?@``````/'T0``-'HB_TKZ`]([P])WO_)=#`# ++MVXUS$#T````!#X/@____P>4(08HOP>`(2?_'Z](/'X``````#Q^```````\? ++M0`!!#[<)/0````%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_"*_B+]2OH#T/'00^W ++M>P8/0\\/0NZ_'P```$$/0OI)C7,&3`]#SBOZP?\%`_IF08E[`DF#P01!#[<1 ++M/0````%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_!*_B+]2OH#T/'00^W>00/0]</ ++M0NZ_'P```$$/0OI)C7$$3`]#SBOYP?\%`_EFB7[X28/!"$$/MPD]`````7,, ++MP>4(08HOP>`(2?_'B_C!Z`L/K\(K^(OU*^@/0\=!#[=Y"`]#SP]"[K\?```` ++M00]"^DF-<0A,#T/.*_K!_P4#^F:)?O!-*\M!T>E!"]D]`````7,,P>4(08HO ++MP>`(2?_'B_C!Z`L/K\$K^(OU*^@/0\=GC7OX#T+?#T+NOQ\```!!#T+Z*_G! ++M_P4#^69#B3Q+BW0D<(M,)'2+5"1XBWPD7(7_00]$_3O?#X.S!P``_\.)7"1P ++M08O<B70D=(E,)'B)5"1\08/X)D&X#@```+\4````1`]#QTB+5"1`22O6#X1! ++M!P``2#O3#T/33(MD)#B+3"1P28O^3`/R1`/J*]J)7"1D22O\2"OY<Q1(BTPD ++M*$@#^4@KST@[T0^'VP8``$D#_`^V'T@#^DCWVDG_SHM,)%A!(\W!X05+C30# ++M2/_"=!L/'X``````#Q^``````$&('!8/MAP72/_"=?-!B!Y)_\9,.WPD2`^# ++M!0<``$P[="1`#X/Z!@``#[>4#@#^__\]`````7,,P>4(08HOP>`(2?_'B_C! ++MZ`L/K\([Z`^#X/C__T&+_<'G"`/?(UPD5$@#\8M,)%"-'%M)@<.``@``T^-, ++M`]M!B_HK^L'O!0/79HF6`/[__T'_Q8M,)'!,B70D:$&->/1!@^@&08/X#D0/ ++M0\=-*_1,*_%S!4P#="0H1P^V##1!O``"``!!P>$"18OT12/Q0P^WC#,"`@`` ++M2XV4,P("``!%,^9%`\D]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\$K^(OU ++M*^A%#T/F18OQ#T/'OQ\````/0NY!#T+ZNP````"#V_TK^<'_!0/Y9HDZ12/T ++M2XT4(TD#U@^W#%I%,^8#VT4#R3T````!<PS!Y0A!BB_!X`A)_\>+^,'H"P^O ++MP2OXB_4KZ$4/0^9%B_$/0\>_'P````]"[HOS00]"^H/;_ROYP?\%`_EFB3PR ++M12/T2XT4(TD#U@^W#%I%,^8#VT4#R3T````!<PS!Y0A!BB_!X`A)_\>+^,'H ++M"P^OP2OXB_4KZ$4/0^9%B_$/0\>_'P````]"[HOS00]"^H/;_ROYP?\%`_EF ++MB3PR12/T2XT4(TD#U@^W#%I%,^8#VT4#R3T````!<PS!Y0A!BB_!X`A)_\>+ ++M^,'H"P^OP2OXB_4KZ$4/0^9%B_$/0\>_'P````]"[HOS00]"^H/;_ROYP?\% ++M`_EFB3PR12/T2XT4(TD#U@^W#%I%,^8#VT4#R3T````!<PS!Y0A!BB_!X`A) ++M_\>+^,'H"P^OP2OXB_4KZ$4/0^9%B_$/0\>_'P````]"[HOS00]"^H/;_ROY ++MP?\%`_EFB3PR12/T2XT4(TD#U@^W#%I%,^8#VT4#R3T````!<PS!Y0A!BB_! ++MX`A)_\>+^,'H"P^OP2OXB_4KZ$4/0^9%B_$/0\>_'P````]"[HOS00]"^H/; ++M_ROYP?\%`_EFB3PR12/T2XT4(TD#U@^W#%I%,^8#VT4#R3T````!<PS!Y0A! ++MBB_!X`A)_\>+^,'H"P^OP2OXB_4KZ$4/0^9%B_$/0\>_'P````]"[HOS00]" ++M^H/;_ROYP?\%`_EFB3PR12/T2XT4(TD#U@^W#%H#VST````!<PS!Y0A!BB_! ++MX`A)_\>+^,'H"P^OP2OXB_4KZ`]#Q[\?````#T+NB_-!#T+Z@=O_````*_G! ++M_P4#^6:)/#),BUPD,(M,)%A!(\W!X05+C30#3(MT)&A!B!Y)_\9,.WPD2`^# ++M5`,``$P[="1`#X-)`P``#[>4#@#^__\]`````7,,P>4(08HOP>`(2?_'B_C! ++MZ`L/K\([Z`^#+_7__T2+3"1408/H!ND0\O__#Q^``````&8/'T0``$&+^BOZ ++MP>\%`]=FB90.`/3__TR+9"0X28O^BU0D<$DK_$F!ZP#V__]!@\@"0?_%BTPD ++M6$$CS<'A!4N--`-(*_IS!4@#?"0H00^V'#SIG/O__P\?@``````/'X`````` ++MD"OX*^B+QXOZP>H%*_IFB7X@08/X#D&X$````+H6````1`]#PDF!PP#V__\/ ++MMU8X/0````%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_".^AS<D&+^BOZP>\%`]=F ++MB58X#[>4#@#T__\]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\([Z`^"&?__ ++M_ROX*^B+QXOZP>H%*_IFB;P.`/3__^EH]/__#Q^```````\?@``````/'X`` ++M````#Q^```````\?`"OX*^B+QXOZP>H%*_IFB7XX1(M,)'"+7"1T1(E,)'0/ ++MMU90/0````%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_".^AS%T&+^BOZP>\%`]=F ++MB590B5PD<.GP\___*_@KZ(O'B_K!Z@4K^F:)?E!$BTPD>(E<)'@/MU9H/0`` ++M``%S#,'E"$&*+\'@"$G_QXOXP>@+#Z_".^AS&$&+^BOZP>\%`]=FB59H1(E, ++M)'#IF_/__ROX*^B+QXOZP>H%*_IFB7YHBUPD?$2)3"1\B5PD<.EX\___#Q^` ++M``````\?@`````"0@^DA#X89^?__@\L"T^-)C9Q;`O/__T&Y`@````\?0``/ ++MMQ-,B]M)`]D]`````7,,P>4(08HOP>`(2?_'B_C!Z`L/K\(K^(OU*^@/0\=* ++MC3P+2`]#W[\?````#T+N00]"^D4#R2OZP?\%`_IF08D[_\EUK4R+7"0P02O9 ++M@>L`\___22O;T>OIE_C__TB+]TF+_$B+3"0H2/?:#[8<-TC_QD&('!9(_\)( ++M._%U[0^V'T@K^ND%^?__B5PD9.M&08'$``(``$2)9"1DB5PD<(ET)'2)3"1X ++MB50D?$&#^"9!N`X```"_%````$0/0\>[`0```.L2_\-UQL=$)&02`0``08/H ++M&#/;/0````%S#,'E"$&*+\'@"$G_QTB+3"0(3"MT)#A,B7$H3(EY,(E!.(EI ++M/$'1Z$2)05A$B6E`BWPD9(EY7(M\)'")>4B+?"1TB7E,BWPD>(EY4(M\)'R) ++M>52+PTB+)"1!7T%>05U!7%U;PP#S#Q[Z2(/L"$B#Q`C#```````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````````````````$``@`` ++M!``$\("`@#`P,#`````````````````````````````````````````````` ++M``````````````````!`N_O_<+O[_X"[^_^@N_O_P+K[_^BZ^_\````````` ++M`#(P24-O;7!R97-S4V5T365M3&EM:70`````````````,3E)0V]M<')E<W-3 ++M971#;V1E<DUT``````````````!..4Y#;VUP<F5S<S9.3'IM83(X0T1E8V]D ++M97)%`````$XY3D-O;7!R97-S-DY$96QT839#1&5L=&%%````````3CE.0V]M ++M<')E<W,V3D1E;'1A.$-$96-O9&5R10`````S,TE#;VUP<F5S<T=E=$EN4W1R ++M96%M4')O8V5S<V5D4VEZ90`````````````````R,$E#;VUP<F5S<U-E=$EN ++M4W1R96%M`````````````#$T24-O;7!R97-S0V]D97(````````````````` ++M````3CE.0V]M<')E<W,Q,$-#;W!Y0V]D97)%```````````````````````` ++M````````,S!)0V]M<')E<W-3971$96-O9&5R4')O<&5R=&EE<S(````````` ++M````````````3CE.0V]M<')E<W,W3D)R86YC:#A#1&5C;V1E<D4```!..4Y# ++M;VUP<F5S<S=.0G)A;F-H-D-#;V1E<D4``````#$U24-O;7!R97-S1FEL=&5R ++M````````````````````3CE.0V]M<')E<W,T3D)C:C=#0V]D97(R10`````` ++M``!..4Y#;VUP<F5S<S5.0F-J,C$P0T)A<V5#;V1E<D4````````````````` ++M``````!..4Y#;VUP<F5S<S5.0F-J,C$R0T)A<V5$96-O9&5R10`````````` ++M```````````Q.4E#;VUP<F5S<U-E=$)U9E-I>F4````````````````````` ++M```````````````S-$E#;VUP<F5S<T=E=$EN4W1R96%M4')O8V5S<V5D4VEZ ++M93(````````````````R,DE#;VUP<F5S<U-E=$9I;FES:$UO9&4````````` ++M`#$U24-O;7!R97-S0V]D97(R````````````````````3CE.0V]M<')E<W,U ++M3D)C:C(X0T1E8V]D97)%```````R,$E397%U96YT:6%L3W5T4W1R96%M```` ++M`````````#$V0T)I;F1E<D]U=%-T<F5A;0```````#A)56YK;F]W;@`````` ++M`````````````#$S0TUY56YK;F]W;DEM<``Q.4E397%U96YT:6%L26Y3=')E ++M86T``````````````#$U0T)I;F1E<DEN4W1R96%M```````````````````` ++M:0\7(\%`BB<````$`"@``&D/%R/!0(HG````!``E``!I#Q<CP4"*)P````0` ++M)```:0\7(\%`BB<````$`#$``&D/%R/!0(HG````!``%``!I#Q<CP4"*)P`` ++M``0`(@``:0\7(\%`BB<````$`$```&D/%R/!0(HG````!``U``!I#Q<CP4"* ++M)P````0`)P``:0\7(\%`BB<````$`"8``&D/%R/!0(HG````!``8```!```` ++M``(`````````````:0\7(\%`BB<````#``(``&D/%R/!0(HG`````P`!```` ++M`````````,````````!&8WQW>_)K;\4P`6<K_M>K=LJ"R7WZ64?PK=2BKYRD ++M<L"W_9,F-C_WS#2EY?%QV#$5!,<CPQB6!9H'$H#BZR>R=0F#+!H;;EJ@4CO6 ++MLRGC+X13T0#M(/RQ6VK+OCE*3%C/T.^J^T--,X5%^0)_4#R?J%&C0(^2G3CU ++MO+;:(1#_\]+-#!/L7Y=$%\2G?CUD71ES8(%/W"(JD(A&[K@4WEX+V^`R.@I) ++M!B1<PM.L8I&5Y'GGR#=MC=5.J6Q6].IE>JX(NG@E+ARFM,;HW70?2[V+BG`^ ++MM69(`_8.8357N8;!'9[A^)@1:=F.E)L>A^G.52C?C*&)#;_F0FA!F2T/L%2[ ++M%I@OBD*11#=QS_O`M:7;M>E;PE8Y\1'Q6:2"/Y+57ARKF*H'V`%;@Q*^A3$D ++MPWT,571=OG+^L=Z`IP;<FW3QF\'!:9ODAD>^[\:=P0_,H0PD;RSI+:J$=$K< ++MJ;!<VHCY=E)1/IAMQC&HR"<#L,=_6;_S"^#&1Y&GU5%CR@9G*2D4A0JW)S@A ++M&R[\;2Q-$PTX4U1S"F6["FIV+LG"@84L<I*AZ+^B2V8:J'"+2\*C46S'&>B2 ++MT20&F=:%-0[T<*!J$!;!I!D(;#<>3'=()[6\L#2S#!PY2JK83D_*G%OS;RYH ++M[H*/=&]CI7@4>,B$"`+'C/K_OI#K;%"D]Z/YOO)X<<;=/#\?OUGS2*%DO%HR ++M9E%@4$]325@`97)R;F\]`"`Z(`!%7T%"3U)4(#H@3W!E<F%T:6]N(&%B;W)T ++M960`15]&04E,(#H@56YS<&5C:69I960@97)R;W(`4U1'7T5?24Y604Q)1$95 ++M3D-424].`$-,05-37T5?0TQ!4U-.3U1!5D%)3$%"3$4`15].3U1)35!,(#H@ ++M3F]T(&EM<&QE;65N=&5D`&]U="!O9B!M96UO<GD`86$`,#``0V%N;F]T('-E ++M="!O=VYE<@!#86YN;W0@<V5T(&9I;&4@871T<FEB=71E`$-A;FYO="!C<F5A ++M=&4@9F]L9&5R`$-A;FYO="!R96YA;64@97AI<W1I;F<@9FEL90!#86YN;W0@ ++M9&5L971E(&]U='!U="!F;VQD97(`0V%N;F]T(&1E;&5T92!O=71P=70@9FEL ++M90!#86YN;W0@;W!E;B!O=71P=70@9FEL90!#86YN;W0@<V5E:R!T;R!B96=I ++M;B!O9B!F:6QE`&)Y=&5S`"`H`%!A=&@Z("`@("``4VEZ93H@("`@(`!-;V1I ++M9FEE9#H@``H*`%=!4DY)3D<`15)23U(`3W!E;B``.B!#86YN;W0@;W!E;B!T ++M:&4@9FEL92!A<R!;`%T@87)C:&EV90!5;G-U<'!O<G1E9"!-971H;V0`0U)# ++M($9A:6QE9`!$871A($5R<F]R`%5N879A:6QA8FQE(&1A=&$`56YE>'!E8W1E ++M9"!E;F0@;V8@9&%T80!)<R!N;W0@87)C:&EV90!(96%D97)S($5R<F]R`%=R ++M;VYG('!A<W-W;W)D`$524D]2.B``=VET:"!T:&4@9FEL92!F<F]M(&%R8VAI ++M=F4Z"@`_(`!497-T:6YG(&%R8VAI=F4Z(`!%>'1R86-T:6YG(&%R8VAI=F4Z ++M(`!/<&5N`$YO(&9I;&5S('1O('!R;V-E<W,`179E<GET:&EN9R!I<R!/:P!3 ++M=6(@:71E;7,@17)R;W)S.B``+@`_/S\`2``@/`!3<&QI=``@/2``15)23U)3 ++M.@!705).24Y'4SH`5T%23DE.1SH*`$-A;FYO="!O<&5N('1H92!F:6QE`%1H ++M92!F:6QE(&ES(&]P96X`4&%T:`!/9F9S970`5&%I;"!3:7IE`"TM+2T*`$,N ++M551&+3@`+2T`='AL`%5N:VYO=VX@<W=I=&-H.@!4;V\@<VAO<G0@<W=I=&-H ++M.@!);F-O<G)E8W0@<W=I=&-H('!O<W1F:7@Z`%1O;R!L;VYG('-W:71C:#H` ++M0V]M;6%N9"!L:6YE(&5R<F]R.@!%4E)/4CH@56YK;F]W;B!C;VUM86YD.@`J ++M`$5M<'1Y(&9I;&4@<&%T:``@8V%N;F]T(&9I;F0@<V9X`$5R<F]R.B``07)C ++M:&EV92!%<G)O<G,`0V%N)W0@;W!E;B!A<R!A<F-H:79E`$]P96X@17)R;W)S ++M.B``26YC;W)R96-T(&-O;6UA;F0@;&EN90!#;VUM86YD($QI;F4@17)R;W(Z ++M`$)R96%K('-I9VYA;&5D`%-Y<W1E;2!%4E)/4CH`"@I);G1E<FYA;"!%<G)O ++M<B`C`%5N:VYO=VX@17)R;W(`0D0`60!0`$\`56YA=F%I;&%B;&4@<W1A<G0@ ++M;V8@87)C:&EV90!5;F-O;F9I<FUE9"!S=&%R="!O9B!A<F-H:79E`%5N97AP ++M96-T960@96YD(&]F(&%R8VAI=F4`56YS=7!P;W)T960@;65T:&]D`%5N<W5P ++M<&]R=&5D(&9E871U<F4`0U)#($5R<F]R`$5X=&5N<VEO;@!&;VQD97(`4&%C ++M:V5D(%-I>F4`071T<FEB=71E<P!#<F5A=&5D`$%C8V5S<V5D`$UO9&EF:65D ++M`%-O;&ED`$-O;6UE;G1E9`!%;F-R>7!T960`4W!L:70@0F5F;W)E`%-P;&ET ++M($%F=&5R`$1I8W1I;VYA<GD@4VEZ90!#4D,`06YT:0!(;W-T($]3`$9I;&4@ ++M4WES=&5M`%5S97(`1W)O=7``0FQO8VL`4&]S:71I;VX`4&%T:"!0<F5F:7@` ++M1F]L9&5R<P!&:6QE<P!697)S:6]N`%9O;'5M90!-=6QT:79O;'5M90!,:6YK ++M<P!";&]C:W,`5F]L=6UE<P!4:6UE(%1Y<&4`-C0M8FET`$)I9RUE;F1I86X` ++M0U!5`$AE861E<G,@4VEZ90!#:&5C:W-U;0!#:&%R86-T97)I<W1I8W,`5FER ++M='5A;"!!9&1R97-S`%-H;W)T($YA;64`0W)E871O<B!!<'!L:6-A=&EO;@!3 ++M96-T;W(@4VEZ90!-;V1E`%-Y;6)O;&EC($QI;FL`5&]T86P@4VEZ90!&<F5E ++M(%-P86-E`$-L=7-T97(@4VEZ90!,86)E;`!,;V-A;"!.86UE`%!R;W9I9&5R ++M`$Y4(%-E8W5R:71Y`$%L=&5R;F%T92!3=')E86T`075X`$1E;&5T960`5')E ++M90!32$$M,0!32$$M,C4V`$5R<F]R(%1Y<&4`5V%R;FEN9W,`5V%R;FEN9P!! ++M;'1E<FYA=&4@4W1R96%M<P!!;'1E<FYA=&4@4W1R96%M<R!3:7IE`%9I<G1U ++M86P@4VEZ90!5;G!A8VL@4VEZ90!4;W1A;"!0:'ES:6-A;"!3:7IE`%9O;'5M ++M92!);F1E>`!3=6)4>7!E`%-H;W)T($-O;6UE;G0`0V]D92!086=E`$ES(&YO ++M="!A<F-H:79E('1Y<&4`6F5R;W,@5&%I;"!)<R!!;&QO=V5D`$5M8F5D9&5D ++M(%-T=6(@4VEZ90!(87)D($QI;FL`:4YO9&4`4W1R96%M($E$`%)E860M;VYL ++M>0!/=70@3F%M90!#;W!Y($QI;FL`07)C1FEL94YA;64`27-(87-H`$UE=&%D ++M871A($-H86YG960`57-E<B!)1`!'<F]U<"!)1`!$979I8V4@36%J;W(`1&5V ++M:6-E($UI;F]R`$1E=B!-86IO<@!$978@36EN;W(`+B\`0V%N;F]T(&9I;F0@ ++M87)C:&EV92!F:6QE`%1H92!I=&5M(&ES(&$@9&ER96-T;W)Y`"XP,#$`-WH` ++M-WI!15,`4%!-1`!,6DU!`$Q:34$R`$1E;'1A`$-O<'D`4DE30U8`05)--C0` ++M4%!#`$E!-C0`05)-`$%2350`4U!!4D,`0D-*`$)#2C(`````````15])3E9! ++M3$E$05)'(#H@3VYE(&]R(&UO<F4@87)G=6UE;G1S(&%R92!I;G9A;&ED```` ++M``````!%7T]55$]&345-3U)9(#H@0V%N)W0@86QL;V-A=&4@<F5Q=6ER960@ ++M;65M;W)Y``!%7TY/24Y415)&04-%(#H@3F\@<W5C:"!I;G1E<F9A8V4@<W5P ++M<&]R=&5D``````!#86YN;W0@<V5T(&QE;F=T:"!F;W(@;W5T<'5T(&9I;&4` ++M````````"E5S86=E.B`W>E-&6"!;/&-O;6UA;F0^72!;/'-W:71C:&5S/BXN ++M+ET@6SQF:6QE7VYA;64^+BXN70H*/$-O;6UA;F1S/@H@('0Z(%1E<W0@:6YT ++M96=R:71Y(&]F(&%R8VAI=F4*("!X.B!E6'1R86-T(&9I;&5S('=I=&@@9G5L ++M;"!P871H;F%M92`H9&5F875L="D*/%-W:71C:&5S/@H@("UO>T1I<F5C=&]R ++M>7TZ('-E="!/=71P=70@9&ER96-T;W)Y"B`@+7![4&%S<W=O<F1].B!S970@ ++M4&%S<W=O<F0*("`M>3H@87-S=6UE(%EE<R!O;B!A;&P@<75E<FEE<PH````` ++M0U)#($9A:6QE9"!I;B!E;F-R>7!T960@9FEL92X@5W)O;F<@<&%S<W=O<F0_ ++M````1&%T82!%<G)O<B!I;B!E;F-R>7!T960@9FEL92X@5W)O;F<@<&%S<W=O ++M<F0_````5&AE<F4@87)E('-O;64@9&%T82!A9G1E<B!T:&4@96YD(&]F('1H ++M92!P87EL;V%D(&1A=&$```!7;W5L9"!Y;W4@;&EK92!T;R!R97!L86-E('1H ++M92!E>&ES=&EN9R!F:6QE.@H````H62EE<R`O("A.*6\@+R`H02EL=V%Y<R`O ++M("A3*6MI<"!A;&P@+R!!*'4I=&\@<F5N86UE(&%L;"`O("A1*75I=#\@```` ++M``!#86XG="!A;&QO8V%T92!R97%U:7)E9"!M96UO<GDA``I%;G1E<B!P87-S ++M=V]R9"`H=VEL;"!N;W0@8F4@96-H;V5D*3H```!4:&4@87)C:&EV92!I<R!O ++M<&5N('=I=&@@;V9F<V5T`%=A<FYI;F<Z(%1H92!A<F-H:79E(&ES(&]P96X@ ++M=VET:"!O9F9S970``````````$-A;FYO="!O<&5N(&5N8W)Y<'1E9"!A<F-H ++M:79E+B!7<F]N9R!P87-S=V]R9#\``$-A;FYO="!O<&5N('1H92!F:6QE(&%S ++M(&%R8VAI=F4`"C<M6FEP(%-&6"`R-"XP.2`H>#8T*2`Z($-O<'ER:6=H="`H ++M8RD@,3DY.2TR,#(T($EG;W(@4&%V;&]V(#H@,C`R-"TQ,2TR.0H```````!- ++M=6QT:7!L92!I;G-T86YC97,@9F]R('-W:71C:#H``%-E=$-O;G-O;&5#=')L ++M2&%N9&QE<B!F86EL<R`H4TE'24Y4*0````!3971#;VYS;VQE0W1R;$AA;F1L ++M97(@9F%I;',@*%-)1U1%4DTI````15)23U(Z($-A;B=T(&%L;&]C871E(')E ++M<75I<F5D(&UE;6]R>2$``$AE861E<G,@17)R;W(@:6X@96YC<GEP=&5D(&%R ++M8VAI=F4N(%=R;VYG('!A<W-W;W)D/P``````5&AE<F4@87)E(&1A=&$@869T ++M97(@=&AE(&5N9"!O9B!A<F-H:79E`%!H>7-I8V%L(%-I>F4@8V%N)W0@8F4@ ++M9&5T96-T960`0V%N;F]T(&-R96%T92!O=71P=70@9&ER96-T;W)Y``!#86YN ++M;W0@8W)E871E(&9I;&4@=VET:"!A=71O(&YA;64````````````````````` ++M```````````````#`````````````````````0````,````````````````` ++M`````````0````(````#```````0`````````!```````!D."0<%!00$!`,# ++M`P("`@)GY@EJA:YGNW+S;CPZ]4^E?U(.48QH!9NKV8,?&<W@6P```0````$` ++M`0```````````````````/[__S\```````````````#__________P$!`0$` ++M``````$!`0$!```!`````P``````$````!````````,```#_____``````$` ++M````````7P`````````!`````0```$\```#(````````````(`#_________ ++M_\W5_/\<U_S_7-?\_QS7_/]FU_S_N][\_QS7_/_-U?S_S=7\_\W5_/_%WOS_ ++MS=7\_\W5_/_-U?S_S=7\_\W5_/\<U_S_'-?\_TTH_?^H)_W_MRG]_Y@I_?]Y ++M*?W_1"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G ++M_?^H)_W_J"?]__PI_?]!*?W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?] ++M_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_ ++MJ"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?\I*?W_J"?]_Z@G_?^H ++M)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G ++M_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?] ++M_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_ ++MJ"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_J"?]_Z@G_?^H)_W_!"G]_]\H_?^: ++M*/W_9"C]_S$R0TUU;'1I4W1R96%M`````````````#(Q24-O;7!R97-S4')O ++M9W)E<W-);F9O````````````,31#3&]C86Q0<F]G<F5S<P`````````````` ++M```````R-D-,:6UI=&5D4V5Q=65N=&EA;$EN4W1R96%M`````#$P24]U=%-T ++M<F5A;0`````Q-$-/=71&:6QE4W1R96%M`````````````````````#$T25-T ++M<F5A;4=E=%!R;W``````````````````````,39)4W1R96%M1V5T4')O<',R ++M```````````````````Q-4E3=')E86U'9710<F]P<P`````````````````` ++M`#$T25-T<F5A;4=E=%-I>F4``````````#E)26Y3=')E86T````````````` ++M`````#$S0TEN1FEL95-T<F5A;0`Q-T-!;&EG;F5D36ED0G5F9F5R```````` ++M`````````#$V24]U=%-T<F5A;49I;FES:```````````````````,C%)0V]M ++M<')E<W-3971/=713=')E86T````````````R,$E#;VUP<F5S<TEN:71%;F-O ++M9&5R`````````````#(U24-O;7!R97-S4V5T3W5T4W1R96%M4VEZ90`````` ++M,3)#1FEL=&5R0V]D97(``$XW3D-R>7!T;S$T0T%E<T-B8T1E8V]D97)%```` ++M````,3=)0W)Y<'1O4')O<&5R=&EE<P````````````````!.-TY#<GEP=&\Y ++M0T%E<T-O9&5R10```````````````$XW3D-R>7!T;S-.-WHU0T)A<V5%```` ++M````````````,3A)0W)Y<'1O4V5T4&%S<W=O<F0```````````````!.-TY# ++M<GEP=&\S3C=Z,3!#0F%S94-O9&5R10```````$XW3D-R>7!T;S-.-WHX0T1E ++M8V]D97)%````````````3CE.0V]M<')E<W,U3E!P;60X0T1E8V]D97)%```` ++M``!..4Y#;VUP<F5S<S5.3'IM83A#1&5C;V1E<D4``````&D/%R/!0(HG```` ++M!@!```!I#Q<CP4"*)P````8`8```:0\7(\%`BB<````$``0``&D/%R/!0(HG ++M`````P`'``!I#Q<CP4"*)P````0`,@``:0\7(\%`BB<````$`#8``&D/%R/! ++M0(HG````!``T``!I#Q<CP4"*)P````,`!```:0\7(\%`BB<````#``H``&D/ ++M%R/!0(HG`````P`)``!I#Q<CP4"*)P````,`"```:0\7(\%`BB<````#``8` ++M`&D/%R/!0(HG`````P`#``!I#Q<CP4"*)P````0`@```:0\7(\%`BB<````$ ++M`)`````````!````#@`'@`5``(`!0`"`5P`'@``````````````````````` ++M`````````'A5_?\@5?W_(%7]_T!6_?]@5OW_@%;]_^!6_?\H5_W_<%?]_[!7 ++M_?\@5?W_(%7]__!4_?\@5?W_(%7]_R!5_?_P5_W_(%7]_UA8_?\@5?W_(%7] ++M_R!5_?\@5?W_(%7]_R!5_?\@5?W_$%C]_YIZ_?_-?/W_4WO]_U!^_?^3??W_ ++MN'W]_WU\_?\/?/W_[W?]_^]W_?_J>_W_I7O]_P````!..$Y!<F-H:79E,TXW ++M>C$Y0TEN07)C:&EV945X8V5P=&EO;D4````````````````````````````` ++M````````3CA.07)C:&EV93-.-WHR.$-5;G-U<'!O<G1E9$9E871U<F5%>&-E ++M<'1I;VY%````,35)3W!E;D-A;&QB86-K54D````````````````````````` ++M````````````````,S!)1F]L9&5R07)C:&EV945X=')A8W1#86QL8F%C:S(` ++M````````````````````,3A)17AT<F%C=$-A;&QB86-K54D````````````` ++M````````````````````````,CE)1F]L9&5R07)C:&EV945X=')A8W1#86QL ++M8F%C:P`S,4E!<F-H:79E17AT<F%C=$-A;&QB86-K365S<V%G93(````````` ++M```````````R,TE!<F-H:79E17AT<F%C=$-A;&QB86-K`````````#(P0T]P ++M96Y#86QL8F%C:T-O;G-O;&4`````````````,C-#17AT<F%C=$-A;&QB86-K ++M0V]N<V]L90`````````R,T-!<F-H:79E17AT<F%C=$-A;&QB86-K```````` ++M``````````````````````!..$Y!<F-H:79E,TXW>C$V0T9O;&1E<D]U=%-T ++M<F5A;44`````````````````````````````````````````3CA.07)C:&EV ++M93$X0T-O;6UO;DUE=&AO9%!R;W!S10`Q.4E!<F-H:79E1V5T4F%W4')O<',` ++M`````````````$XX3D%R8VAI=F4S3C=Z.$-(86YD;&5R10``````````3CA. ++M07)C:&EV93-.-WHR-T-,;V-K961397%U96YT:6%L26Y3=')E86U-5$4````` ++M`````````````````````$XX3D%R8VAI=F4S3C=Z,35#3&]C:V5D26Y3=')E ++M86U%`````````````````````$XX3D%R8VAI=F4S3C=Z,3)#1&5C4')O9W)E ++M<W-%````3C$R3D-O9&5R36EX97(R-D--:7AE<D4```````````!.,3).0V]D ++M97)-:7AE<C(X0TUI>&5R351%`````````$XQ,DY#;V1E<DUI>&5R,C9#0V]D ++M97)%`#$Q0U9I<G14:')E860``````````````$XQ,DY#;V1E<DUI>&5R,CA# ++M0V]D97)-5$4`````````.4E0<F]G<F5S<P```````#(R24-R>7!T;T=E=%1E ++M>'1087-S=V]R9````````````````````````````````#(Y24%R8VAI=F5/ ++M<&5N4V5T4W5B07)C:&EV94YA;64`,C9)07)C:&EV94]P96Y6;VQU;65#86QL ++M8F%C:P`````R,$E!<F-H:79E3W!E;D-A;&QB86-K`````````````#$V0T]P ++M96Y#86QL8F%C:TEM<```````````````````,3E)26Y!<F-H:79E1V5T4W1R ++M96%M````,3!)26Y!<F-H:79E````````````````3CA.07)C:&EV939.4W!L ++M:70X0TAA;F1L97)%``````!I#Q<CP4"*)P````8`(@``:0\7(\%`BB<````& ++M`'```&D/%R/!0(HG````!0`0``!I#Q<CP4"*)P````8`4```:0\7(\%`BB<` ++M```&`!```&D/%R/!0(HG````!@`P```G3P```````````````````!,3"`@( ++M"Q45$T!`0`L+"PL+$Q,("P@("`@(%0@5"!45"!,+%145%1,+"P@5%1,(%0@( ++M"!,3"`@5%1,("`@("PL+"P@("!43$P@5%145%145"`@("PL+%14("!45"P@( ++M"`M`$Q,3$Q,3`P<```$``(#9_?]@V?W_8-G]_V#9_?]@V?W_8-G]_V#9_?]@ ++MV?W_8-G]_V#9_?]@V?W_8-G]_V#9_?]@V?W_8-G]_V#9_?]@V?W_X-G]_]C9 ++M_?_0V?W_8-G]_\#9_?\8W_W_]MS]_^C>_?_(WOW_]MS]_X#>_?]@WOW_0-[] ++M_]C=_?_VW/W_]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_ ++M]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_]MS]__;<_?_V ++MW/W_]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_]MS]__;< ++M_?_VW/W_]MS]__;<_?_VW/W_]MS]__;<_?_VW/W_N-W]_[9+_O_;2_[_!47^ ++M_\]+_O^O2_[__T3^_P``````````,39#26Y&:6QE4W1R96%M5F]L```````` ++M```````````Q-T-3=&1/=71&:6QE4W1R96%M```````W0T-O9&5C<P`````` ++M```````````````Q.4-"=690=')397%/=713=')E86T``````````````&D/ ++M%R/!0(HG`````0`(``!I#Q<CP4"*)P````$`!P``6P```$0```!%````3``` ++M`$4```!4````10```$0```!=````+P``````````````50```&X```!K```` ++M;@```&\```!W````;@```"````!E````<@```'(```!O````<@````````!5 ++M````;@```&L```!N````;P```'<```!N````(````'<```!A````<@```&X` ++M``!I````;@```&<```````````````````!=<O[_X&_^_T!Q_O_P</[_@''^ ++M_V!Q_O]P<?[_$''^_R!Q_O\P<?[_@G?^_^1U_O_D=?[_Y'7^_^1U_O_D=?[_ ++MY'7^_^1U_O_D=?[_Y'7^_^1U_O_D=?[_Y'7^_W9W_O_D=?[_Y'7^_UMW_O_D ++M=?[_:G?^_^1U_O\/=_[_Y'7^_^1U_O_D=?[_MG?^_QYW_O^`=?[_@'7^_X!U ++M_O^`=?[_@'7^_X!U_O^`=?[_@'7^_X!U_O^`=?[_@'7^_X!U_O\2=_[_@'7^ ++M_X!U_O_W=O[_@'7^_P9W_O^`=?[_JW;^_X!U_O^`=?[_@'7^_U)W_O\5=_[_ ++MLW;^_[]V_O^G=O[_3';^_YAV_O^8=O[_M*?^_[ZH_O^^J/[_W*G^_[ZH_O^^ ++MJ/[_OJC^_[ZH_O^^J/[_OJC^_[ZH_O^^J/[_OJC^_[ZH_O^^J/[_OJC^_[ZH ++M_O^^J/[_OJC^_]2I_O^EI_[_I:?^_S^J_O]FJ/[_9JC^_R:J_O]FJ/[_9JC^ ++M_V:H_O]FJ/[_9JC^_V:H_O]FJ/[_9JC^_V:H_O]FJ/[_9JC^_V:H_O]FJ/[_ ++M9JC^_V:H_O\.JO[_C:G^_XVI_O]?L_[_I+?^_PNX_O^CN/[_I+?^_Z2W_O^D ++MM_[_I+?^_Z2W_O^DM_[_I+?^_X*X_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_U^X ++M_O\\N/[__+C^_\>X_O_?M_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^ ++M_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_ ++MI+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^D ++MM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W_O^DM_[_I+?^_Z2W ++M_O^DM_[_N[?^_YAY^_\=>OO_SGC[_S9Y^___>/O_='K[_Y%X^__[=_O_N7G[ ++M_P`````W05-T<FEN9P``````````-U53=')I;F<````````````````````` ++M3CE.17AI=$-O9&4U145N=6U%```````````````````Q-D-3>7-T96U%>&-E ++M<'1I;VX``````````````````#(Q0TUE<W-A9V50871H17AC97!T:6]N```` ++M`````````````````````````````%)(4SA$061.5'-,0T])159V6"Y052Y- ++M+BXN+BXN0@``,#$R,S0U-C<X.4%"0T1%1C!P8S-D-6(W+3EL0G-$149I#Q<C ++MP4"*)P````8`80``:0\7(\%`BB<````&`'$``"`````N````(``````````C ++M`````````"X````N`````````"H``````````````.!J__^J:?O_JFG[_ZII ++M^_^J:?O_JFG[_ZII^_^J:?O_JFG[_ZII^_^J:?O_JFG[_ZII^_^J:?O_JFG[ ++M_ZII^_^J:?O_KW'__YEQ__^$<?__JFG[_\]J__\``````````#$V0U-T9$EN ++M1FEL95-T<F5A;0```````````````````P(!``<&!00+"@D(#PX-#)@OBD*1 ++M1#=QS_O`M:7;M>E;PE8Y\1'Q6:2"/Y+57ARKF*H'V`%;@Q*^A3$DPWT,571= ++MOG+^L=Z`IP;<FW3QF\'!:9ODAD>^[\:=P0_,H0PD;RSI+:J$=$K<J;!<VHCY ++M=E)1/IAMQC&HR"<#L,=_6;_S"^#&1Y&GU5%CR@9G*2D4A0JW)S@A&R[\;2Q- ++M$PTX4U1S"F6["FIV+LG"@84L<I*AZ+^B2V8:J'"+2\*C46S'&>B2T20&F=:% ++M-0[T<*!J$!;!I!D(;#<>3'=()[6\L#2S#!PY2JK83D_*G%OS;RYH[H*/=&]C ++MI7@4>,B$"`+'C/K_OI#K;%"D]Z/YOO)X<<8!&P,[3!L``&@#``#P)/O_@!L` ++M`(`J^_^H&P``D"K[_]`O``"Y*OO_##```.`J^_](,```!BO[_R`Q```L*_O_ ++M4#$``%(K^_^(,@``;"O[_^`R``"B*_O_D#,``,,K^_^<-```^BO[__@T``!X ++M+/O_'#4``*(L^_],-0``JRS[_P@V``#$+/O_5#8``-DL^__8-@``"BW[_R@W ++M``!"+?O_=#<``'HM^__`-P``LBW[_PPX``#J+?O_8#@``"<N^_\,.0``J"[[ ++M_XPY``#"+OO_Y#D``!TO^_\\.@``6"_[_V`Z``""+_O_R#H``*\O^_]@.P`` ++MKC#[_[P[``#<,/O_V#L``/8P^__84@``$#'[_RQ3```D,?O_E%,``'(Q^__H ++M4P``T#'[_P18``#I,?O_<%@``#XR^__`6```8#+[_^!8``!Z,OO_`%L``)0R ++M^__X7P``JC+[_W!@``"P,OO_<&(``,0R^__`8@``^#+[_Q1C```<,_O_#&0` ++M`(0S^_\T9```M#/[_^AD``#-,_O_6&4``/`S^_]T90``%#3[_\!E```:-/O_ ++M$&8``$PT^_]<9@``4C3[_Z1F``!<-/O_\&8``&8T^_]$9P``<#3[_Y!G``"* ++M-/O_"&@``)0T^_]4:```GC3[_[AH``!$.?O_#&D``(XY^_]T:0``E#G[_]AI ++M``">.?O_0&H``/(Y^_^L:@``_#S[_WQK```N0_O_&'$``$)#^_]@<0``5D/[ ++M_^QQ``"X0_O_,'(``"I$^_^(<@``243[_^QR``">1/O_.',```Y%^_]L<P`` ++M/D7[_\AS``"\1?O_('0``.9%^__L=```\$7[_SQU``!.1OO_G'4``%1&^__T ++M=0``N4?[_TAV``#T1_O_B'<``!)*^_\P>```2DK[_[!X``!T2OO_.'D``(A* ++M^_^4>0``RDK[_[AZ``#I2_O_)'L``#Y,^_]\>P``H$S[_P1\```\3_O_)'T` ++M`&A/^__`?@``DD_[_QA_``"_3_O_/'\``-I/^_]@?P``*E#[_Q"```!`4/O_ ++M9(```$90^_]0@0``7%#[_UB"``".4/O_X((``+Q0^_\T@P``VU#[_X2#``#Z ++M4/O_5(8``+Q2^__,A@``05/[_QR'``!Y4_O_>(<``-!3^__0AP``]%/[_RR( ++M```>5/O_L(@```M5^_\DB0``'EW[_]B*```H7?O_5(L``&!=^_]TBP``=EW[ ++M_YB+``",7?O_W(T``&!A^_\TC@``06?[_XR.``!;9_O_X(X``'1G^_\\CP`` ++MS6?[_Y2/``!2:OO_()```'QJ^_]`D```%6O[_[20```A<_O_#)$``&!S^_]< ++M+```@'/[_RA8``"P<_O_2(D``'!X^_]XC0``8(G[_V@;``!0BOO_P!L``/"* ++M^__P&P``((O[_P0<``#PB_O_&!P``&",^_\L'```$(W[_T`<``#0C?O_5!P` ++M`+"/^_^('```\)#[_YP<```0F?O_S!P``$"?^_\$'0``P)_[_Q@=``#PHOO_ ++M0!T``%"E^_]P'0``0*C[_Z@=```0JOO_U!T``!"N^_\`'@``D*[[_Q0>``"@ ++MKOO_*!X``#"O^_\\'@``0*_[_U`>``"`L/O_9!X``,"Q^_]X'@```+/[_XP> ++M``!`M/O_H!X``%"T^_^T'@``8+3[_\@>``!PM/O_W!X``("T^__P'@``D+3[ ++M_P0?``"@M/O_&!\``+"T^_\L'P``P+3[_T`?``#0M/O_5!\``."T^_]H'P`` ++M(+7[_WP?``!@M?O_D!\``/"U^_^D'P```+;[_[@?```0MOO_[!\``$"V^_\4 ++M(```T+;[_R@@``#@MOO_/"```*"W^_]0(```8+C[_V0@``!PN/O_>"```("X ++M^_^,(```D+C[_Z`@``#`N/O_R"```-"X^__<(````+G[_P0A```PN?O_&"$` ++M`&"Y^_\L(0``X+K[_T`A``#PNOO_5"$```"[^_]H(0``$+O[_WPA```@N_O_ ++MD"$``#"[^_^D(0``0+O[_[@A``!0N_O_S"$``&"[^__@(0``<+O[__0A``"` ++MN_O_""(``)"[^_\<(@``X+O[_T0B```PO/O_;"(``&"\^_^0(@``D+S[_[0B ++M````O?O_W"(``'"]^_\$(P``@+W[_Q@C``"0O?O_+",``$"^^_]`(P```+_[ ++M_U0C```0O_O_:",``""_^_]\(P``8+_[_Y`C``"PP/O_N",``-#`^__,(P`` ++M\,#[_^`C``#`POO_]",``-#"^_\()```X,+[_QPD``#PPOO_,"0```##^_]$ ++M)```$,/[_U@D```@P_O_;"0``###^_^`)```0,/[_Y0D``!0P_O_J"0``&## ++M^_^\)```<,/[_]`D``"`P_O_Y"0``)##^__X)```L,/[_PPE``#`P_O_("4` ++M`-##^_\T)0``,,3[_U0E``"0Q/O_:"4``!#%^_]\)0``T,;[_Y`E``!PROO_ ++MP"4``/#+^__X)0``0,S[_QPF``#@S/O_2"8``$#.^_^`)@``(,_[_[`F``#0 ++MS_O_W"8``%#1^_\0)P``8-+[_TPG````T_O_@"<``*#3^_^P)P``$-3[_^`G ++M``"`U/O_$"@``/#4^_]`*```8-7[_W`H``"@U?O_F"@``.#5^__`*```(-;[ ++M_^@H``!@UOO_$"D```#7^_]`*0``L-?[_W`I``!@V/O_H"D``!#9^__0*0`` ++MP-G[_P`J````VOO_*"H``$#:^_]0*@``T-K[_W`J```0V_O_D"H``%#;^_^P ++M*@``D-O[_]`J``#0V_O_\"H``!#<^_\0*P``4-S[_S`K``"@W/O_4"L``/#< ++M^_]P*P``8-W[_Y`K``"PW?O_L"L``!#>^__<*P``<-[[_P@L``#PWOO_,"P` ++M`'#K^_]\+````.S[_Z0L``"P\OO_U"P```#V^_\`+0``T/?[_S`M``"0^?O_ ++M8"T``/#Z^_^0+0``(/W[_\`M``!@__O_\"T``*`!_/\@+@``<`;\_T`N``"P ++M"_S_>"X``!`5_/^H+@``(!7\_[PN``"@%?S_["X``%`N_/\<+P``T"[\_TPO ++M``!0+_S_?"\``#`P_/^H+P``L##\_^PO``!P,?S_(#```.`Q_/\T,```(#+\ ++M_V0P``"P,OS_E#```/`R_/^T,```@#/\_^`P```0-/S_##$``%`T_/\\,0`` ++ML#3\_VPQ``!`-?S_F#$``(`U_/^X,0``(#;\_^0Q```0-_S_$#(``(`W_/]4 ++M,@``8#C\_ZPR``#P.?S_!#,``,`Z_/\T,P``0#O\_V`S``#@._S_L#,``'`\ ++M_/_<,P``,#W\_Q`T``"0/?S_/#0``"`__/]P-```T#_\_[PT````1/S_.#4` ++M`'!$_/]H-0``H$3\_XPU``!`1?S_H#4``#!&_/_,-0``@$C\_R@V``#@2/S_ ++M=#8``%!*_/^@-@``P$[\__@V``#`3_S_2#<``.!0_/^4-P``X%'\_^`W``#@ ++M4OS_+#@``/!4_/^$.```<%7\_Y@X``"@5_S_T#@``/!:_/\P.0``0%O\_U0Y ++M``!`7OS_L#D``/!@_/\(.@``L&7\_WPZ```P9_S_I#H``&!G_/_H.@``@&?\ ++M_PP[``#P9_S_+#L``!!M_/^$.P``4&W\_Y@[``"P;?S__#L```!P_/\L/``` ++MT'#\_V`\``#@</S_=#P``/!P_/^(/````''\_YP\```0<?S_L#P``$!Q_/_$ ++M/```<''\_]@\``"0<?S_[#P``+!Q_/\`/0``P''\_Q0]``#0<?S_*#T``.!Q ++M_/\\/0``\''\_U`]````<OS_9#T``!!R_/]X/0``@'/\_XP]``"0<_S_H#T` ++M`*!S_/^T/0``L'/\_\@]``#`<_S_W#T``-!S_/_P/0``X'/\_P0^``#P<_S_ ++M&#X```!T_/\L/@``$'3\_T`^```@=/S_5#X``#!T_/]H/@``0'3\_WP^``!0 ++M=/S_D#X``&!T_/^D/@``<'3\_[@^``"`=/S_S#X``)!T_/_@/@``P'7\__0^ ++M````=_S_"#\``$!X_/\</P``@'G\_S`_``"0>?S_1#\``*!Y_/]8/P``L'G\ ++M_VP_``#`>?S_@#\``-!Y_/^4/P``X'G\_Z@_````>OS_O#\``"!Z_/_0/P`` ++M('O\_^0_``!`?/S_^#\``$!]_/\,0```4'W\_R!```!P??S_-$```(!]_/]( ++M0```0'[\_UQ`````?_S_<$```!!__/^$0```('_\_YA```!0?_S_N$```(!_ ++M_/_80```P(#\_^Q```#0@/S_`$$``/"`_/\400``,('\_RA!``"0@?S_6$$` ++M`/"!_/^(00``4(+\_[A!``!@@OS_S$$``'""_/_@00``@(+\__1!``"0@OS_ ++M"$(``*""_/\<0@``L(+\_S!"``#`@OS_1$(``-""_/]80@``X(+\_VQ"``#P ++M@OS_@$(```"#_/^40@``$(/\_ZA"``#P@_S_T$(``*"$_/\(0P``8(7\_RQ# ++M```@A_S_0$,``#"'_/]40P``0(?\_VA#``!0A_S_?$,``&"'_/^00P``<(?\ ++M_Z1#``"`A_S_N$,``)"'_/_,0P``H(?\_^!#``"PA_S_]$,```"(_/\(1``` ++M$(C\_QQ$``"0B/S_,$0``*"(_/]$1````(G\_UA$```0B?S_;$0``%",_/^8 ++M1```8(S\_ZQ$``!PC/S_P$0``(",_/_41```D(S\_^A$``"@C/S__$0``+", ++M_/\010``P(S\_R1%``#0C/S_.$4``.",_/],10``\(S\_V!%````C?S_=$4` ++M`!"-_/^(10``((W\_YQ%```PC?S_L$4``$"-_/_$10``X(W\__A%```PCOS_ ++M($8``'"._/](1@``L([\_VQ&``#@COS_D$8``#"0_/^X1@``8)#\_\Q&``"@ ++MD/S_X$8``."0_/_T1@``,)'\_PA'``"`D?S_,$<``,"1_/]81P```)+\_WQ' ++M```PDOS_H$<``%"2_/^T1P``8)+\_\A'``"`DOS_W$<``)"2_/_P1P``L)+\ ++M_P1(``#`DOS_&$@``."2_/\L2```\)+\_T!(``!PD_S_5$@``("3_/]H2``` ++M$)3\_Y!(``"0E/S_I$@``*"4_/^X2```8)7\_]Q(``#PE?S_\$@```"6_/\$ ++M20``T);\_QA)``#@EOS_+$D``*"7_/]`20``8)C\_U1)``!PF/S_:$D``("8 ++M_/]\20``X)G\_ZQ)``!`F_S_X$D``*"<_/\42@```)[\_TA*``!@G_S_?$H` ++M`,"@_/^P2@``(*+\_^1*``"0H_S_&$L``/"D_/],2P``8*;\_X!+``#0I_S_ ++MM$L``$"I_/_H2P``@*G\_Q!,``#`J?S_.$P``,"L_/]D3```T*S\_WA,```P ++MK?S_J$P``*"M_/_83```X*W\_P!-```@L/S_,$T``&"R_/]@30``H+3\_Y!- ++M``#@MOS_P$T``&#+_/_T30``$,S\_Q1.``"PS/S_-$X``"#-_/]<3@``D,W\ ++M_X1.````SOS_K$X``'#._/_43@``X,[\__Q.``!`S_S_($\``*#/_/]$3P`` ++M`-#\_VA/``!@T/S_C$\``'#0_/^@3P``H-#\_\!/``"PT/S_U$\``.#0_/_T ++M3P``L-'\_RQ0``#`T?S_0%```##3_/]L4```0-/\_X!0``"`T_S_E%```)#3 ++M_/^H4```D-3\_]Q0``"@U/S_\%```"#5_/\<40``8-?\_T!1``"@V/S_=%$` ++M`.#9_/^D40``0-O\_]Q1``"@W/S_#%(```#>_/\\4@``P-[\_W!2``#0W_S_ ++MI%(``-#A_/_\4@``L.+\_TQ3``#`XOS_8%,``-#J_/^X4P``8.S\_PA4```P ++M[?S_.%0``!#N_/]H5```\.[\_YA4``#0[_S_R%0``+#P_/_X5```(/'\_RA5 ++M``#`\?S_7%4``%#R_/^450``X/+\_[Q5``"`\_S_\%4``)#S_/\$5@```/3\ ++M_SA6``!@]/S_9%8``!#V_/^@5@``(/;\_[16``"P]_S_Y%8``,#W_/_X5@`` ++M(/C\_R17``#0^/S_6%<``(#Y_/^45P``T/G\_\!7``#@^?S_U%<``*#Z_/\\ ++M6```</_\_Y18``!P`/W_!%D``/``_?\P60``$`']_U19``!0`?W_>%D````" ++M_?^D60``D`3]_]19``"@!/W_Z%D``%`%_?\46@``H`7]_SQ:``"@"?W_;%H` ++M`)`._?^@6@``X!+]_]!:``"0%OW_(%L``-`6_?\X6P``X!;]_TQ;```@%_W_ ++M8%L``&`7_?]T6P``@!?]_XA;``#@%_W_G%L````8_?^P6P``,!C]_]!;``!0 ++M&/W_Y%L``'`8_?_X6P``D!C]_PQ<``"P&/W_(%P``,`9_?],7```$!K]_V!< ++M``"0&OW_=%P``*`:_?^(7```P!K]_YQ<```@&_W_L%P``#`;_?_$7```L!O] ++M_]A<``#`&_W_[%P``(`<_?\`70``0!W]_Q1=``!0'?W_*%T``&`=_?\\70`` ++M\!W]_U!=````'OW_9%T``'`>_?^,70``@![]_Z!=``"0'OW_M%T``*`>_?_( ++M70``L![]_]Q=``#0'OW_\%T``/`>_?\$7@``$!_]_QA>```P'_W_+%X``*`? ++M_?]`7@``$"#]_U1>``#0(/W_:%X``&`A_?^47@``P"']_\1>```@(OW_]%X` ++M```C_?\H7P``\"/]_UA?```0)OW_?%\``,`F_?^D7P``\"?]_\Q?``"0*/W_ ++M&&```(`K_?]$8```,"S]_Y!@``"@+/W_P&```(`M_?_P8```H##]_R!A``#0 ++M,/W_0&$``*`R_?]P80``L#+]_X1A``#@,OW_I&$``!`S_?_$80``\#/]_^!A ++M````-/W_]&$``(`U_?\T8@``D#7]_TAB```0-OW_C&(``)`Y_?_D8@``8#O] ++M_SAC``#@._W_7&,``-`]_?^08P``T#[]_]AC``#@/_W_7&0``,!!_?^(9``` ++M4$+]_[AD``#P0OW_#&4``+!$_?]$90``$$7]_Y!E```@1OW_W&4``*!+_?\T ++M9@``$$S]_WAF``"P3?W_Q&8``%!/_?\09P``X%+]_VAG```04_W_L&<``/!3 ++M_?_89P``\%3]_RAH``#05?W_=&@``"!S_?_<:```L'7]_S!I``#`=?W_1&D` ++M`$!Z_?^4:0``4'K]_ZAI``"`?OW_^&D``)!^_?\,:@``\([]_V1J````C_W_ ++M>&H``'"=_?_0:@``8*+]_PQK``#0HOW_/&L``%"M_?^@:P``H*W]_[1K``"P ++MK?W_R&L``."N_?_<:P``(+#]__!K``!@L?W_!&P``*"R_?\8;```X+/]_RQL ++M``#PL_W_0&P```"T_?]4;```$+3]_VAL```@M/W_?&P``#"T_?^0;```(+7] ++M_Z1L```@MOW_N&P``""W_?_,;```(+C]_^!L```PN/W_]&P``$"X_?\(;0`` ++M4+C]_QQM``!@N/W_,&T``$"Y_?]4;0``8+G]_VAM``"`N?W_?&T``)"[_?^0 ++M;0``\+O]_Z1M``#@O/W_X&T``/"]_?\<;@``X+[]_S!N``#@O_W_1&X``/"_ ++M_?]8;@```,#]_VQN``!0P/W_@&X``*#`_?^L;@``$,']_^!N```@P?W_]&X` ++M`##!_?\(;P``0,']_QQO``!0P?W_,&\``(#"_?]<;P``,,3]_Y!O``#@Q?W_ ++MP&\``)#'_?_P;P``0,G]_R!P``#PROW_4'```##-_?^`<```<,_]_[!P```P ++MT/W_['```(#0_?\T<0``T-#]_WQQ``#0T?W_I'$``/#1_?_(<0``$-+]_QQR ++M``!PTOW_7'(``"#4_?^H<@``,-3]_[QR``#PU/W_#',```#8_?]8<P``$-C] ++M_Y1S```@V?W_[',``)#9_?\\=```0-O]_W!T````W/W_E'0``,#<_?^X=``` ++ML-W]_PAU````W_W_8'4``.#B_?^\=0``T.G]_QQV``"`[?W_:'8``/#N_?^4 ++M=@```/#]_\1V``#0]/W_]'8``)#Y_?\D=P``8/[]_U1W``"``/[_K'<``$`% ++M_O_<=P``<`7^__QW``!0!O[_5'@``+`&_O^`>```0`K^_]1X``!P#/[_!'D` ++M`$`-_O]8>0``<`_^_[AY````$/[_\'D``(`0_O\D>@``X!#^_U1Z``!`$?[_ ++MA'H``/`9_O_<>@```!K^__!Z````'O[_2'L``$`A_O^@>P``H"+^_]![```0 ++M1_[_*'P``.!*_O]<?```$$O^_W!\``!`3/[_A'P``$!-_O^8?```8$[^_ZQ\ ++M``"`3_[_P'P``*!/_O_4?```P$_^_^A\``#@3_[__'P```!0_O\0?0``D%#^ ++M_TQ]``#`4/[_='T``.!0_O^4?0```%'^_[1]``#P6?[_Z'T``$!<_O\<?@`` ++MP%S^_TQ^``#P7/[_:'X``"!=_O^,?@```%_^_^1^``!`9O[_D'\``/!F_O^\ ++M?P``@&?^_^1_``#09_[_,(```.!H_O^(@```T&S^_[R```!`;?[_[(```+!M ++M_O\<@0``@'+^_W2!``"0<_[_I($``-!T_O_4@0``X'3^_^B!``"@=?[_%((` ++M`+!U_O\H@@``@'G^_WR"``"0>?[_D((``-!Y_O^P@@``T'W^_P2#```P?O[_ ++M5(,``)!^_O^D@P``4'_^_]"#``"0?_[_\(,``.!__O\0A```H(#^_S2$``!P ++M@?[_6(0``#""_O]\A````(/^_Z"$``#P@_[_S(0``/"$_O_XA```\(7^_R2% ++M``!@CO[_6(4```"4_O^,A0``@)3^_[R%````E?[_[(4``)"5_O\@A@``<*G^ ++M_WB&```0JO[_H(8``""L_O_LA@``8*[^_SR'``"0MO[_G(<``&"W_O_TAP`` ++M<+C^_U"(```PN?[_?(@``(#(_O_4B```D,C^_^B(``#0\_[_@(D``)#W_O_4 ++MB0``0/C^_P"*``"P^O[_6(H``##]_O^PB@```/[^__B*``!0`O__*(L``&`# ++M__^\BP``8`3__^"+``"`!/__](L``!`%__\8C```D`7__RR,``!`!O__5(P` ++M`)`&__]XC```$`?__Z2,``#@!___U(P``'`(__\`C0``X`C__RB-``"`"?__ ++M3(T``!`*__^HC0``T"3__P".``"04/__6(X``$!2__^PC@``4%/__P"/``!P ++M5O__8(\``$!R__^XCP``0'/___"/``#0<___>)```+"J___8D````````!0` ++M`````````7I2``%X$`$;#`<(D`$``!0````<````\&W[_R8`````1`<0```` ++M`"0````T````:`G[_Y`%````#A!&#AA*#PMW"(``/QH[*C,D(@`````4```` ++M7````-`.^_\(```````````````L````=````(AN^_^=`````$4.$(8"2`T& ++M1(T#C`1+@P4";0H,!PA'"TP,!P@````0````I````/AN^_\A`````````!`` ++M``"X````%&_[_\4`````````$````,P```#0;_O_;``````````0````X``` ++M`"QP^_^I`````````!````#T````R'#[_[T`````````,`````@!``!T<?O_ ++MVP$```!P#A"&`D,-!D&#`P,(`0H,!PA$"P*-#`<(P\9##`80@P.&`A`````\ ++M`0``('/[_SX!````````+````%`!``!,=/O_'@@```!%#A"&`D8-!D*/`TJ. ++M!(T%C`:#!P-@!@H,!PA)"P``-````(`!```\?/O_+@8```!!#A"&`DX-!DF/ ++M`XX$C06,!H,'`U`!"@P'"$@+`XX!"@P'"$(+```0````N`$``#2"^_][```` ++M`````"0```#,`0``H(+[_R\#````00X0A@))#09)C0.,!(,%`J,*#`<(00LL ++M````]`$``*B%^_]9`@```$$.$(8"0PT&4(\#C@2-!8P&@P<#+`(*#`<(00L` ++M```T````)`(``-B'^__M`@```$$.$(8"0PT&2(\#C@2-!8P&2(,'`V(""@P' ++M"$$+`EH*#`<(00L``"@```!<`@``D(K[_\<!````10X0A@)1#09)CP..!(T% ++MC`:#!P.G`0P'"```*````(@"```TC/O_]`,```!%#A"&`D,-!DF/`XX$C06, ++M!H,'`^(##`<(```0````M`(```B0^_][`````````!````#(`@``=)#[_PX` ++M````````$````-P"``!PD/O_BP`````````0````\`(``.R0^_\.```````` ++M`!`````$`P``Z)#[_S0!````````$````!@#```4DOO_,P$````````0```` ++M+`,``$"3^_\T`0```````!````!``P``;)3[_S0!````````$````%0#``"8 ++ME?O_#@`````````0````:`,``)25^_\.`````````!````!\`P``D)7[_PX` ++M````````$````)`#``",E?O_#@`````````0````I`,``(B5^_\-```````` ++M`!````"X`P``A)7[_PT`````````$````,P#``"`E?O_"@`````````0```` ++MX`,``'R5^_\*`````````!````#T`P``>)7[_Q``````````$`````@$``!T ++ME?O_$``````````0````'`0``'"5^_\U`````````!`````P!```G)7[_S(` ++M````````$````$0$``#(E?O_BP`````````0````6`0``$26^_\.```````` ++M`!````!L!```0);[_P\`````````'``````````!>E!,4@`!>!`'FQ'5```; ++M&PP'")`!```D````)````!R6^_\K````!#=Q``!%#A"&`D<-!D*,`T:#!%8, ++M!P@`$````,@$```DEOO_BP`````````0````W`0``*"6^_\.`````````!`` ++M``#P!```G);[_[X`````````$`````0%``!(E_O_O@`````````0````&`4` ++M`/27^_\.`````````!`````L!0``\)?[_PX`````````$````$`%``#LE_O_ ++M#@`````````D````V````.B7^_\G````!(=P``!%#A"&`D,-!D*,`T:#!%8, ++M!P@`$````'P%``#PE_O_#0`````````D````%`$``.R7^_\G````!$]P``!% ++M#A"&`D,-!D*,`T:#!%8,!P@`$````+@%``#TE_O_)@`````````0````S`4` ++M`!"8^_\F`````````!````#@!0``+)C[_W0!````````$````/0%``"8F?O_ ++M#0`````````0````"`8``)29^_\-`````````!`````<!@``D)G[_PT````` ++M````$````#`&``",F?O_#0`````````0````1`8``(B9^_\.`````````!`` ++M``!8!@``A)G[_PX`````````$````&P&``"`F?O_#@`````````0````@`8` ++M`'R9^_\.`````````!````"4!@``>)G[_PX`````````$````*@&``!TF?O_ ++M!P`````````0````O`8``'"9^_\'`````````"0```!4`@``;)G[_T0````$ ++M$V\``$4.$(8"0PT&0HP#1(,$=0P'"``D````?`(``)29^_]$````!.]N``!% ++M#A"&`D,-!D*,`T2#!'4,!P@`(````*0"``"\F?O_+P````3+;@``10X0A@)# ++M#09!@P-E#`<((````,@"``#(F?O_+P````2K;@``10X0A@)##09!@P-E#`<( ++M)````&@'``#4F?O_9`````!%#A"&`D,-!D.,`X,$`E,*#`<(00L``"0```"0 ++M!P``')K[_V0`````10X0A@)##09#C`.#!`)3"@P'"$$+```0````N`<``&2: ++M^_\.`````````!````#,!P``8)K[_PX`````````$````.`'``!<FOO_K@`` ++M```````0````]`<``/B:^_^^`````````!`````("```I)O[_PX````````` ++M$````!P(``"@F_O_#@`````````0````,`@``)R;^_\S`````````"0```!$ ++M"```R)O[_T0!````;PX0A@)%#09#C`.#!`*@#`<(2</&S``0````;`@``/"< ++M^_\>`````````!````"`"```_)S[_QX`````````$````)0(```(G?O_RP$` ++M```````0````J`@``,2>^_\-`````````!````"\"```P)[[_PT````````` ++M$````-`(``"\GOO_#0`````````0````Y`@``+B>^_\-`````````!````#X ++M"```M)[[_PT`````````$`````P)``"PGOO_#0`````````0````(`D``*R> ++M^_\.`````````!`````T"0``J)[[_PX`````````$````$@)``"DGOO_#@`` ++M```````0````7`D``*">^_\.`````````!````!P"0``G)[[_PX````````` ++M$````(0)``"8GOO_#@`````````0````F`D``)2>^_\.`````````!````"L ++M"0``D)[[_QL`````````$````,`)``"<GOO_#``````````0````U`D``)B> ++M^_\,`````````!P```#H"0``E)[[_U$`````10X0A@)##09Z"@P'"$8+$``` ++M``@*``#4GOO_5@`````````0````'`H``""?^_]V`````````!`````P"@`` ++MC)_[_[<!````````+````$0*```XH?O_F@,```!%#A"&`D,-!E"/`XX$C06, ++M!H,'`WP#"@P'"$$+````-````'0*``"HI/O_?@$```!%#A"&`D,-!D2.`XT$ ++M1HP%@P8#.@$*#`<(1`M7"@P'"$D+30P'"``@````K`H``/"E^_]-`````$$. ++M$(8"0PT&08,#`D<,!P@````H````T`H``!RF^_^6`````$$.$(8"40T&0HT# ++M1XP$@P4";@H,!PA'"P```#0```#\"@``D*;[_U@!````10X0A@)-#09$CP.. ++M!%&-!8P&@P<"ZPH,!PA&"U,*#`<(10MG#`<(+````#0+``"XI_O_W`````!! ++M#A"&`E$-!D*.`TF-!$6,!42#!@*1"@P'"$D+````*````&0+``!HJ/O_JP`` ++M``!%#A"&`D,-!D2.`XT$1HP%18,&`I,,!P@````P````%`<``.RH^_]T`0`` ++M!&-J``!%#A"&`D,-!D*/`T>.!(T%1HP&@P<#10$*#`<(1`L`.````$@'```X ++MJOO_!0$```0S:@``10X0A@)##09&CP..!(T%18P&2(,'=`H,!PA!"P*1"@P' ++M"$<+````,``````,```,J_O_D@````!%#A"&`D,-!D>.`XT$C`6#!EL*#`<( ++M1@L"3@H,!PA""P```"P````T#```>*O[_YD`````10X0A@)##09'C@.-!(P% ++M@P9;"@P'"$8+`F@,!P@``"P```!D#```Z*O[_V4`````10X0A@)##09'C@.- ++M!(P%@P9;"@P'"$8+=`P'"````"P```"4#```**S[_V<`````10X0A@)##09' ++MC@.-!(P%@P9;"@P'"$8+=@P'"````"P```#$#```:*S[_V<`````10X0A@)# ++M#09'C@.-!(P%@P9;"@P'"$8+=@P'"````"P```#T#```J*S[_V<`````10X0 ++MA@)##09'C@.-!(P%@P9;"@P'"$8+=@P'"````"0````D#0``Z*S[_S(````` ++M10X0A@)##09%@P-2"@P'"$$+40P'"``D````3`T```"M^_\R`````$4.$(8" ++M0PT&18,#4@H,!PA!"U$,!P@`)````'0-```8K?O_,@````!%#A"&`D,-!D6# ++M`U(*#`<(00M1#`<(`"0```"<#0``,*W[_S8`````10X0A@)##09%@P-2"@P' ++M"$$+50P'"``L````2`D``$BM^_^4````!#=H``!%#A"&`D,-!D.,`X,$5PH, ++M!PA&"P)K#`<(```L````>`D``+BM^_^F````!`MH``!%#A"&`D,-!DF-`XP$ ++M@P5="@P'"$(+`G4,!P@L````J`D``#BN^_^G````!-]G``!%#A"&`D,-!DF- ++M`XP$@P5="@P'"$(+`G8,!P@L````V`D``+BN^_^F````!+-G``!%#A"&`D,- ++M!DF-`XP$@P5="@P'"$(+`G4,!P@L````"`H``#BO^_^G````!(=G``!%#A"& ++M`D,-!DF-`XP$@P5="@P'"$(+`G8,!P@D````M`X``+BO^_\R`````$4.$(8" ++M0PT&18,#4@H,!PA!"U$,!P@`)````-P.``#0K_O_-@````!%#A"&`D,-!D6# ++M`U(*#`<(00M5#`<(`!P````$#P``Z*_[_X,`````10X0A@)(#08"=0P'"``` ++M'````"0/``!8L/O_.`````!%#A"&`D@-!FH,!P@````<````1`\``'BP^_\Q ++M`````$4.$(8"2`T&8PP'"````!P```!D#P``F+#[_S$`````10X0A@)(#09C ++M#`<(````'````(0/``"XL/O_,0````!%#A"&`D@-!F,,!P@````<````I`\` ++M`-BP^_\Q`````$4.$(8"2`T&8PP'"````!P```#$#P``^+#[_S$`````10X0 ++MA@)(#09C#`<(````'````.0/```8L?O_1@````!%#A"&`D@-!G@,!P@````< ++M````!!```$BQ^_]&`````$4.$(8"2`T&>`P'"````!P````D$```>+'[_V<` ++M````10X0A@)(#08"60P'"```'````$00``#(L?O_30````!%#A"&`D@-!G\, ++M!P@````H````9!```/BQ^_]<`````$$.$(8"0PT&0H\#2HX$C06,!D2#!P)' ++M#`<(`"@```"0$```+++[_UD`````00X0A@)##09$C@.-!$6,!46#!@)&#`<( ++M````)````+P0``!@LOO_>`````!!#A"&`D,-!D2-`XP$1(,%:PH,!PA)"R@` ++M``#D$```N++[_W(,````10X0A@)##090CP..!(T%C`:#!P+P"@P'"$$+'``` ++M`!`1``#\1OO_$@````!%#A"&`D<-!D&#`T0,!P@D````,!$``.R^^_^-```` ++M`$4.$(8"0PT&0XP#@P1["@P'"$H+````+````%@1``!4O_O_IP8```!%#A"& ++M`D,-!D*/`TR.!(T%C`9$@P<#O@(*#`<(2`L`*````(@1``#4Q?O_0@,```!% ++M#A"&`D,-!DF/`XX$C06,!H,'`MT*#`<(0@LL````M!$``/C(^__-`0```$4. ++M$(8"0PT&0H\#18X$18T%18P&5(,'`O$*#`<(0@LL````Y!$``)C*^_^R`0`` ++M`$4.$(8"0PT&1(\#C@1/C06,!H,'`S8!"@P'"$<+```L````%!(``"C,^_]5 ++M`0```$4.$(8"0PT&1XP#@P0"8`H,!PA!"W@*#`<(2`L````L````R`T``%C- ++M^_\M`@``!,MC``!%#A"&`D,-!DV/`XX$C06,!H,'80H,!PA*"P`L````^`T` ++M`%C/^_\Y`@``!*EC``!%#A"&`D,-!DV/`XX$C06,!H,'80H,!PA*"P`L```` ++M*`X``&C1^_\Y`@``!(=C``!%#A"&`D,-!DV/`XX$C06,!H,'80H,!PA*"P`< ++M````U!(``'C3^__#!````$4.$(8"50T&`Z@$#`<(`#0```#T$@``*-C[_SX% ++M````00X0A@)##09$CP..!$R-!8P&@P<#/P0*#`<(10L"I`H,!PA%"P``+``` ++M`"P3```PW?O_40D```!%#A"&`D,-!E"/`XX$C06,!H,'`S`#"@P'"$@+```` ++M$````%P3``!@YOO_$``````````L````<!,``%SF^_][`````$4.$(8"0PT& ++M0XP#@P1<"@P'"$D+80H,!PA'"UX,!P@L````H!,``*SF^_^H&````$4.$(8" ++M0PT&4(\#C@2-!8P&@P<#.04*#`<(1PL````L````T!,``"S_^_]^`````$4. ++M$(8"0PT&1XX#C02,!8,&`E8*#`<(2PM-#`<(```L`````!0``'S_^_][```` ++M`$4.$(8"0PT&0HT#2HP$@P4"6@H,!PA%"T<,!P@````H````,!0``,S_^__= ++M`````$4.$(8"0PT&0HX#2(T$C`6#!@+`"@P'"$4+`"0```!<%```@`#\_W4` ++M````10X0A@)##09"C0-*C`2#!0)@#`<(```8````A!0``+CZ^O\I`````$4. ++M$(8"2`T&````'````*`4``"\`/S_P`````!%#A"&`DD-!G,*#`<(1PL0```` ++MP!0``*7Z^O\F`````````!````#4%```2`'\_W``````````$````.@4``"D ++M`?S_-@`````````8````_!0``)#Z^O\E`````$$.$(8"2`T&````+````!@5 ++M``"T`?S_@0````!%#A"&`D,-!D*/`T6.!$6-!46,!D2#!P)?#`<(````'``` ++M`$@5```4`OS_.0````!%#A"&`D,-!D&#`V\,!P@H````:!4``#0"_/^"```` ++M`$4.$(8"0PT&0HX#1XT$C`5$@P8"2`H,!PA#"R@```"4%0``F`+\_X@````` ++M10X0A@)##09&C@.-!(P%1(,&`D@*#`<(1@L`$````,`5``#\`OS_-@`````` ++M```8````U!4``-[Y^O\E`````$$.$(8"2`T&````$````/`5```,`_S_60`` ++M```````8````!!8``-3Y^O\E`````$$.$(8"2`T&````*````"`6```\`_S_ ++M@0````!%#A"&`D,-!D2.`XT$18P%2(,&`F<,!P@````<````3!8``*`#_/\\ ++M`````$4.$(8"0PT&08,#<@P'""@```!L%@``P`/\_Y\`````10X0A@)##09" ++MC0-&C`2#!0)Z"@P'"$8+````*````)@6```T!/S_X0````!%#A"&`D,-!D*/ ++M`TZ.!(T%C`:#!P+(#`<(```@````Q!8``/@$_/]D`````$4.$(8"0PT&0HP# ++M1(,$`E$,!P@<``````````%Z4$Q2``%X$`>;H<(``!L;#`<(D`$``#`````D ++M````)`7\_]H````$,5\``$4.$(8"0PT&1H\#C@2-!4:,!H,'`I@*#`<(00L` ++M```@````6````,+X^O\:````!`M?```,!A"#!X8"C`:-!8X$CP,P````?``` ++M`*P%_/^#`0``!.]>``!!#A"&`DL-!D*/`TZ.!(T%C`:#!P*_"@P'"$4+```` ++M(````+````"$^/K_-0````3/7@``#`80@P>&`HP&C06.!(\#+````+@7``#D ++M!OS_PP````!%#A"&`D,-!D:/`XX$C05%C`9$@P<"<@H,!PA'"P``*````.@7 ++M``"$!_S_>0````!%#A"&`D,-!D>.`XT$C`6#!G<*#`<(2@L````L````%!@` ++M`-@'_/^9`````$4.$(8"0PT&1H\#C@2-!46,!D2#!P)J"@P'"$<+```<```` ++M1!@```KX^O\A``````P&$(,'A@*,!HT%C@2/`R@```!D&```*`C\_XX````` ++M10X0A@)##09(CP..!(T%C`9$@P=\"@P'"$@+,````)`8``","/S_L0````!/ ++M#A"&`D4-!D*/`T>.!(T%1HP&@P<"@@P'"$O#QLS-SL\``"@```#$&```&`G\ ++M_UP`````10X0A@)%#09#C`.#!%D*#`<(2@MK#`<(````,````/`8``!,"?S_ ++M@@$```!.#A"&`D,-!D*-`T6,!$B#!0*?"@P'"$$+`KP,!PC#QLS-`"@```!` ++M`@``J`K\_Z0````$1UT``$4.$(8"0PT&0XP#@P0">PH,!PA!"P``'````&P" ++M```?]_K_-P````0M70``#`80@P2&`HP#```X````C`(```P+_/\C!```!!5= ++M``!%#A"&`D8-!D2/`XX$3(T%C`:#!P*,"@P'"$D+`L4*#`<(2PL````@```` ++MR`(``/KV^O]^````!`!=```,!A"#!X8"C`:-!8X$CP,8````T!D``%3W^O\I ++M`````$4.$(8"2`T&````$````.P9``#`#OS_80`````````8`````!H``$[W ++M^O\)`````$$.$(8"0PT&````(````*`5````#_S_)P````2<7```10X0A@)# ++M#09!@P-=#`<($````$`:```,#_S_E``````````H````V!4``)@/_/_G```` ++M!&A<``!%#A"&`D8-!D.,`X,$`L,*#`<(00L``#@```"`&@``7!#\_T0"```` ++M10X0A@)##09+C@.-!(P%@P8#>P$*#`<(0@MF"@P'"$H+`GH*#`<(10L``!P` ++M``"\&@``F_;Z_QD`````#`80@P:&`HP%C02.`P``*````/@#``!0$OS_5P`` ++M``3D6P``10X0A@)##09"C`-$@P1\"@P'"$$+```<````)`0``&CV^O\5```` ++M!,1;```,!A"#!(8"C`,``"@````H&P``9!+\_V<!````10X0A@)##09!@P," ++MT`H,!PA'"P)%"@P'"$L+-````%0;``"H$_S_900```!%#A"&`D,-!DB/`XX$ ++MC06,!DB#!P.Y`0H,!PA'"P.'`@H,!PA!"P`<````C!L``/GU^O\P``````P& ++M$(,'A@*,!HT%C@2/`RP````P%P``P!?\_P`!```$*%L``$4.$(8"0PT&1(T# ++MC`1%@P4"J@H,!PA%"P```!P```!@%P``VO7Z_S@````$$%L```P&$(,%A@*, ++M!(T#*````(`7``!P&/S_(`$```3X6@``10X0A@)##09%C0.,!(,%`M8*#`<( ++M10L<````K!<``,;U^O\X````!.1:```,!A"#!88"C`2-`R@```#,%P``1!G\ ++M_P`!```$S%H``$4.$(8"0PT&0XP#@P0"K@H,!PA'"P``'````/@7``"R]?K_ ++M.`````2X6@``#`80@P2&`HP#```H````&!@``/@9_/\``0``!*!:``!%#A"& ++M`D,-!D.,`X,$`K,*#`<(0@L``!P```!$&```GO7Z_S@````$C%H```P&$(,$ ++MA@*,`P``,````/P%``"L&OS_!P(```1T6@``10X0A@)##09-CP..!(T%C`:# ++M!P,P`0H,!PA+"P```"`````P!@``@O7Z_ST````$7EH```P&$(,'A@*,!HT% ++MC@2/`Q`````X'0``9!S\_W8`````````-````$P=``#0'/S_)`(```!!#A"& ++M`DH-!D*/`U*.!(T%C`:#!P*%"@P'"$$+`ND*#`<(00L````X````H`8``,@> ++M_/]"`P``!/99``!%#A"&`D,-!DV/`XX$C06,!H,'`I`*#`<(2PL#[`$*#`<( ++M3`L````@````W`8``!/U^O^`````!.=9```,!A"#!X8"C`:-!8X$CP,@```` ++MY!T``+@A_/]0`````$4.$(8"0PT&08,#=0H,!PA""P`T````)`<``.0A_/_X ++M`@``!*M9``!%#A"&`D,-!DB/`XX$C06,!D2#!P+5"@P'"$<+9@H,!PA*"R`` ++M``!<!P``%/7Z_QH````$B%D```P&$(,'A@*,!HT%C@2/`S````"`!P``B"3\ ++M_Z<"```$;%D``$4.$(8"0PT&1H\#C@2-!4:,!H,'`P(""@P'"$H+```@```` ++MM`<``-;T^O];````!$Y9```,!A"#!X8"C`:-!8X$CP,P````V`<``.`F_/^S ++M!```!#)9``!%#A"&`D,-!DB/`XX$C06,!DB#!P-L`0H,!PA$"P``(`````P( ++M``#9]/K_.P````0O60``#`80@P>&`HP&C06.!(\#&````!0?``#P]/K_*0`` ++M``!%#A"&`D@-!@```"0````P'P``+"O\_WH!````10X0A@)(#09"C`-+@P0" ++M3PH,!PA'"P`@````6!\``(0L_/\J`````$4.$(8"0PT&3PH,!PA,"T8,!P@< ++M````?!\``++T^O\M`````$4.$(8"0PT&08,#8PP'""`````@&P``<"S\_QT` ++M```$BU@``$4.$(8"40T&1@P'"````!P```#`'P``;"S\_W```````D$.$(8" ++M0PT&:PP'"```,````/P(``"\+/S_%04```1+6```10X0A@)##09"CP--C@2- ++M!8P&@P<#9P(*#`<(0@L``"`````P"0``1_3Z__\````$B5@```P&$(,'A@*, ++M!HT%C@2/`Q`````X(```A#'\_S@`````````(````$P@``"P,?S_6@````!% ++M#A"&`D,-!D&#`V\*#`<(2`L`&````'`@``#J]/K_+0````!%#A"&`D@-!@`` ++M`"`````0'```_/3Z_QD````$&5@``$T.$(8"1@T&1`P'"$'&`"P```"P(``` ++MK#'\_T0"````10X0A@)##09"CP-)C@1,C06,!H,'`KT*#`<(1`L``#````#@ ++M(```S#/\_\\`````10X0A@)	"C0-%C`1$@P4"2`H,!PA*"P)2"@P'"$8+ ++M```0````%"$``&@T_/\*`````````!`````H(0``9#3\_PH`````````$``` ++M`#PA``!@-/S_"@`````````0````4"$``%PT_/\*`````````!````!D(0`` ++M6#3\_R8`````````$````'@A``!T-/S_)@`````````0````C"$``)`T_/\1 ++M`````````!````"@(0``G#3\_Q$`````````$````+0A``"H-/S_#@`````` ++M```0````R"$``*0T_/\.`````````!````#<(0``H#3\_PH`````````$``` ++M`/`A``"<-/S_"@`````````0````!"(``)@T_/\+`````````!`````8(@`` ++ME#3\_PL`````````$````"PB``"0-/S_9`$````````0````0"(``.PU_/\- ++M`````````!````!4(@``Z#7\_PT`````````$````&@B``#D-?S_#0`````` ++M```0````?"(``.`U_/\-`````````!````"0(@``W#7\_PX`````````$``` ++M`*0B``#8-?S_#@`````````0````N"(``-0U_/\.`````````!````#,(@`` ++MT#7\_PX`````````$````.`B``#,-?S_#@`````````0````]"(``,@U_/\* ++M`````````!`````((P``Q#7\_PH`````````$````!PC``#`-?S_"@`````` ++M```0````,",``+PU_/\*`````````!````!$(P``N#7\_PT`````````$``` ++M`%@C``"T-?S_#0`````````0````;",``+`U_/\.`````````!````"`(P`` ++MK#7\_PX`````````$````)0C``"H-?S_)`$````````0````J",``,0V_/\S ++M`0```````!````"\(P``\#?\_S0!````````$````-`C```<.?S_-`$````` ++M```0````Y",``$@Z_/\.`````````!````#X(P``1#K\_PX`````````$``` ++M``PD``!`.OS_#@`````````0````("0``#PZ_/\.`````````!`````T)``` ++M.#K\_Q``````````$````$@D```T.OS_$``````````0````7"0``#`Z_/\6 ++M`````````!````!P)```/#K\_Q8`````````$````(0D``!(.OS__``````` ++M```0````F"0``#0[_/\;`0```````!````"L)```0#S\__P`````````$``` ++M`,`D```L/?S_#@`````````0````U"0``"@]_/\4`````````!````#H)``` ++M-#W\_PX`````````$````/PD```P/?S_O@`````````0````$"4``-P]_/^^ ++M`````````!`````D)0``B#[\_PX`````````$````#@E``"$/OS_#@`````` ++M```<````3"4``(`^_/\H`````$4.$(8"0PT&18,#6@P'"!P```!L)0``D#[\ ++M_S``````10X0A@)##09%@P-B#`<($````(PE``"@/OS_,0$````````0```` ++MH"4``,P__/\0`````````!````"T)0``R#_\_Q$`````````$````,@E``#4 ++M/_S_-0`````````L````8"$```!`_/]1````!,]2``!-#A"&`D,-!D&#`U\* ++M#`<(2`M)#`<(3\/&```L````D"$``#!`_/]6````!*-2``!2#A"&`D,-!D&# ++M`V@*#`<(00M1#`<(P\8````L````P"$``&!`_/]6````!'=2``!2#A"&`D,- ++M!D&#`V@*#`<(00M1#`<(P\8````0````;"8``)!`_/\.`````````!````"` ++M)@``C$#\_PX`````````$````)0F``"(0/S_#@`````````0````J"8``(1` ++M_/\.`````````!````"\)@``@$#\_PX`````````$````-`F``!\0/S_#@`` ++M```````0````Y"8``'A`_/\.`````````!````#X)@``=$#\_PX````````` ++M$`````PG``!P0/S_#@`````````0````("<``&Q`_/\.`````````!`````T ++M)P``:$#\_PX`````````$````$@G``!D0/S_#@`````````D````7"<``&!` ++M_/_?`````$4.$(8"0PT&0XP#@P0"8@H,!PA#"P``-````(0G```80?S_JP`` ++M``!%#A"&`D8-!D&#`P)A"@P'"$,+40H,!PA/"TH*#`<(1@M*#`<(```@```` ++MO"<``)!!_/_``````$4.$(8"0PT&18,#>0H,!PA*"P`0````X"<``"Q"_/^T ++M`0```````!````#T)P``V$/\_PT`````````$`````@H``#40_S_#0`````` ++M```0````'"@``-!#_/\-`````````!`````P*```S$/\_PT`````````$``` ++M`$0H``#(0_S_#@`````````0````6"@``,1#_/\.`````````!````!L*``` ++MP$/\_PX`````````$````(`H``"\0_S_#@`````````0````E"@``+A#_/\. ++M`````````!````"H*```M$/\_T8`````````$````+PH``#P0_S_#@`````` ++M```0````T"@``.Q#_/][`````````!````#D*```6$3\_PX`````````$``` ++M`/@H``!41/S_5@`````````0````#"D``*!$_/\.`````````"@```"D)``` ++MG$3\_ST#```$ET\``$4.$(8"2`T&0HP#1(,$`E(*#`<(2PL`$````$PI``"P ++M1_S_#0`````````0````8"D``*Q'_/\-`````````!````!T*0``J$?\_PT` ++M````````$````(@I``"D1_S_#0`````````0````G"D``*!'_/\-```````` ++M`!````"P*0``G$?\_PT`````````$````,0I``"81_S_#0`````````0```` ++MV"D``)1'_/\-`````````!````#L*0``D$?\_PT`````````$``````J``", ++M1_S_#0`````````0````%"H``(A'_/\-`````````!`````H*@``A$?\_PH` ++M````````$````#PJ``"`1_S_"@`````````0````4"H``'Q'_/\*```````` ++M`!````!D*@``>$?\_PH`````````,````'@J``!T1_S_FP````!!#A"&`D,- ++M!D>.`XT$C`6#!F(*#`<(0PL"8@H,!PA!"P```"0````P)@``X$?\_T$````$ ++M#TX``$4.$(8"0PT&0HP#1(,$<@P'"``D````6"8```A(_/\[````!.M-``!% ++M#A"&`D,-!D*,`T2#!&P,!P@`(````(`F```@2/S_-0````3'30``10X0A@)# ++M#09!@P-K#`<((````*0F```\2/S_+P````2G30``10X0A@)##09!@P-E#`<( ++M)````$0K``!(2/S_3P$```!!#A"&`D,-!D>,`X,$`LP*#`<(00L``!````!L ++M*P``<$G\_RT`````````$````(`K``",2?S_,0`````````0````E"L``+A) ++M_/]``````````!````"H*P``Y$G\_T$`````````)````$`G```@2OS_00`` ++M``0/30``10X0A@)##09"C`-$@P1R#`<(`"0```!H)P``2$K\_SL````$ZTP` ++M`$4.$(8"0PT&0HP#1(,$;`P'"``@````D"<``&!*_/\U````!,=,``!%#A"& ++M`D,-!D&#`VL,!P@@````M"<``'Q*_/\O````!*=,``!%#A"&`D,-!D&#`V4, ++M!P@0````5"P``(A*_/\1`````````!````!H+```E$K\_PX`````````$``` ++M`'PL``"02OS_$0`````````0````D"P``)Q*_/\.`````````!````"D+``` ++MF$K\_Q$`````````$````+@L``"D2OS_#@`````````0````S"P``*!*_/\1 ++M`````````!````#@+```K$K\_PX`````````$````/0L``"H2OS_>P`````` ++M```0````""T``!1+_/\.`````````"0````<+0``$$O\_XL`````10X0A@)# ++M#09'C`.#!`)L"@P'"$4+```0````1"T``'A+_/][`````````!````!8+0`` ++MY$O\_PX`````````(````&PM``#@2_S_M@````!%#A"&`D,-!D6#`P)U"@P' ++M"$8+$````)`M``!\3/S_BP`````````0````I"T``/A,_/\.`````````!`` ++M``"X+0``]$S\_\L`````````$````,PM``"P3?S_#@`````````0````X"T` ++M`*Q-_/^^`````````!````#T+0``6$[\_[X`````````$`````@N```$3_S_ ++M#@`````````0````'"X```!/_/\.`````````"P```"T*0``_$[\_U0!```$ ++MJTH``$4.$(8"0PT&0XP#@P17"@P'"$8+`RL!#`<(`#````#D*0``+%#\_U4! ++M```$?TH``$4.$(8"0PT&28T#C`2#!5T*#`<(0@L#)`$,!P@````P````&"H` ++M`%A1_/]4`0``!$]*``!%#A"&`D,-!DF-`XP$@P5="@P'"$(+`R,!#`<(```` ++M,````$PJ``"$4OS_6`$```0?2@``10X0A@)##09)C0.,!(,%70H,!PA""P,G ++M`0P'"````#````"`*@``L%/\_UH!```$[TD``$4.$(8"0PT&28T#C`2#!5T* ++M#`<(0@L#*0$,!P@````P````M"H``-Q4_/]>`0``!+])``!%#A"&`D,-!DF- ++M`XP$@P5="@P'"$(+`RT!#`<(````,````.@J```(5OS_8`$```2/20``10X0 ++MA@)##09)C0.,!(,%70H,!PA""P,O`0P'"````#`````<*P``-%?\_V$!```$ ++M7TD``$4.$(8"0PT&28T#C`2#!5T*#`<(0@L#,`$,!P@````P````4"L``'!8 ++M_/]@`0``!"])``!%#A"&`D,-!DF-`XP$@P5="@P'"$(+`R\!#`<(````,``` ++M`(0K``"<6?S_9`$```3_2```10X0A@)##09)C0.,!(,%70H,!PA""P,S`0P' ++M"````#````"X*P``V%K\_V8!```$ST@``$4.$(8"0PT&28T#C`2#!5T*#`<( ++M0@L#-0$,!P@````P````["L``!1<_/]G`0``!)](``!%#A"&`D,-!DF-`XP$ ++M@P5="@P'"$(+`S8!#`<(````)````)PP``!07?S_,@````!%#A"&`D,-!D6# ++M`U(*#`<(00M1#`<(`"0```#$,```:%W\_S(`````10X0A@)##09%@P-2"@P' ++M"$$+40P'"``H````<"P``(!=_/_\`@``!!](``!%#A"&`D,-!DF-`XP$@P4" ++ME0H,!PA*"Q`````8,0``5&#\_PT`````````+````+`L``!08/S_60````3C ++M1P``10X0A@)##09#C`.#!%<*#`<(1@MP#`<(````+````.`L``"`8/S_:``` ++M``2W1P``10X0A@)##09#C`.#!%<*#`<(1@M_#`<(````)````(PQ``#`8/S_ ++M,@````!%#A"&`D,-!D6#`U(*#`<(00M1#`<(`"P````X+0``V&#\_SD"```$ ++M8T<``$4.$(8"0PT&38\#C@2-!8P&@P=A"@P'"$H+`"P```!H+0``Z&+\_SD" ++M```$04<``$4.$(8"0PT&38\#C@2-!8P&@P=A"@P'"$H+`"P```"8+0``^&3\ ++M_SD"```$'T<``$4.$(8"0PT&38\#C@2-!8P&@P=A"@P'"$H+`"P```#(+0`` ++M"&?\_SD"```$_48``$4.$(8"0PT&38\#C@2-!8P&@P=A"@P'"$H+`#````#X ++M+0``&&G\_W@4```$VT8``$4.$(8"1@T&4H\#C@2-!4:,!H,'`P$%"@P'"$$+ ++M```<````J#(``&1]_/^M`````$4.$(8"2`T&`I\,!P@``!P```#(,@``]'W\ ++M_Y@`````10X0A@)(#08"B@P'"```)````.@R``!T?OS_:@````!%#A"&`D,- ++M!DF-`XP$@P4"6`P'"````"0````0,P``O'[\_V@`````10X0A@)##09)C0., ++M!(,%`E8,!P@````D````.#,```1__/]H`````$4.$(8"0PT&28T#C`2#!0)6 ++M#`<(````)````&`S``!,?_S_:`````!%#A"&`D,-!DF-`XP$@P4"5@P'"``` ++M`"0```"(,P``E'_\_V@`````10X0A@)##09)C0.,!(,%`E8,!P@````@```` ++ML#,``-Q__/]8`````$4.$(8"0PT&0XP#@P0"3`P'"``@````U#,``!B`_/]9 ++M`````$4.$(8"0PT&0XP#@P0"30P'"``@````^#,``%2`_/]9`````$4.$(8" ++M0PT&0XP#@P0"30P'"``@````'#0``)"`_/]9`````$4.$(8"0PT&0XP#@P0" ++M30P'"``0````0#0``,R`_/\-`````````!P```!4-```R(#\_RL`````10X0 ++MA@)##09!@P-=#`<($````'0T``#8@/S_#0`````````<````B#0``-2`_/\K ++M`````$4.$(8"0PT&08,#70P'"#0```"H-```Y(#\_\L`````10X0A@)*#09% ++MC0.,!(,%>`H,!PA$"P)+"@P'"$4+6PH,!PA%"P``$````.`T``!\@?S_#0`` ++M```````H````]#0``'B!_/]L`0```$4.$(8"0PT&28T#C`2#!0,3`0H,!PA$ ++M"P```!`````@-0``O(+\_PT`````````$````#0U``"X@OS_0``````````0 ++M````2#4``.2"_/\*`````````#````!<-0``X(+\__D`````10X0A@)##09$ ++MCP..!$6-!46,!D2#!P+&"@P'"$@+4`P'"``0````D#4``*R#_/\-```````` ++M`"@```"D-0``J(/\_W\`````10X0A@)##09"C0-'C`1$@P5\"@P'"$<+```` ++M(````-`U``#\@_S_/P(```!%#A"&`D@-!@/W`0H,!PA$"P``,````'@Q```8 ++MAOS_.`$```1E0P``10X0A@)*#09"C0-*C`2#!0+T"@P'"$D+2@H,!PA&"RP` ++M``"L,0``)(?\_S@!```$-4,``$4.$(8"2@T&0HT#2HP$@P4#`0$*#`<(3`L` ++M`#0```#<,0``-(C\_U@!```$"4,``$4.$(8"0PT&1XX#C02,!8,&6PH,!PA& ++M"P,2`0H,!PA&"P``+````!0R``!<B?S_8`$```350@``10X0A@)##09-CP.. ++M!(T%C`:#!V<*#`<(1`L`+````$0R``",BOS_8`$```2I0@``10X0A@)##09- ++MCP..!(T%C`:#!V$*#`<(2@L`,````'0R``"\B_S_M0````1]0@``10X0A@)# ++M#09'C@.-!(P%@P9;"@P'"$8+`H0,!P@``#`````D-P``2(S\_PP!````00X0 ++MA@)##09-CP..!(T%C`:#!P)K"@P'"$0+`F4*#`<(00LP````="```"2-_/_U ++M`0``!!E"``!!#A"&`D,-!D:/`XX$C05&C`:#!P+V"@P'"$H+````(````*@@ ++M```6WOK_&@````3S00``#`80@P>&`HP&C06.!(\#+````#0S``#,COS_U0`` ++M``3700``10X0A@)##09"C0-%C`1$@P5A"@P'"$0+````'````&0S``#<W?K_ ++M%`````2W00``#`80@P6&`HP$C0,0`````#@``%R/_/\-`````````#````"8 ++M,P``6(_\_PD(```$CT$``$4.$(8"0PT&38\#C@2-!8P&@P<#0`(*#`<(2PL` ++M```@````S#,``(C=^O].````!(M!```,!A"#!X8"C`:-!8X$CP,L````B"$` ++M`!"7_/^)`0``!'M!``!%#A"&`D,-!DF-`XP$@P4#9@$*#`<(00L````<```` ++MN"$``(+=^O]=````!%E!```,!A"#!88"C`2-`RP```!`-```4)C\_\<````$ ++M14$``$4.$(8"0PT&0XP#@P17"@P'"$8+`IX,!P@``"P```!P-```\)C\_]D` ++M```$&4$``$4.$(8"0PT&28T#C`2#!5T*#`<(0@L"J`P'""P```"@-```H)G\ ++M_]H````$[4```$4.$(8"0PT&28T#C`2#!5T*#`<(0@L"J0P'""P```#0-``` ++M4)K\_]D````$P4```$4.$(8"0PT&28T#C`2#!5T*#`<(0@L"J`P'""P````` ++M-0```)O\_]H````$E4```$4.$(8"0PT&28T#C`2#!5T*#`<(0@L"J0P'""P` ++M```P-0``L)O\_V4````$:4```$4.$(8"0PT&0XP#@P17"@P'"$8+?`P'"``` ++M`#````!@-0``\)O\_YL````$/4```$4.$(8"10T&0HP#1(,$90H,!PA+"W8* ++M#`<(2@L````T````E#4``%R<_/^(````!`U```!%#A"&`D,-!D*.`T6-!$:, ++M!8,&`D8*#`<(10M@"@P'"$$+`"0```!(.@``M)S\_Y``````10X0A@)##09) ++MC0.,!(,%<0H,!PA&"P`P````<#H``!R=_/^9`````$4.$(8"2`T&1HX#C02, ++M!42#!@)0"@P'"$D+80H,!PA!"P``$````*0Z``"(G?S_#0`````````P```` ++MN#H``(2=_/]M`````$H.$(8"0PT&08,#9`H,!PA&"U,,!PA5P\9&#`80@P.& ++M`@``*````.PZ``#`G?S_5@````!%#A"&`D<-!D&#`U\*#`<(1`M3"@P'"$P+ ++M```X````&#L``/2=_/^B`0```$4.$(8"1@T&0H\#18X$18T%18P&1(,'`R<! ++M"@P'"$D+`DH*#`<(00L````0````5#L``&B?_/\-`````````"P```!H.P`` ++M9)_\_X4!````10X0A@)##09"C`-$@P0#4`$*#`<(0@M:"@P'"$0+`!````"8 ++M.P``Q*#\_PT`````````*````*P[``#`H/S_5@````!%#A"&`D<-!D&#`U\* ++M#`<(1`M3"@P'"$P+```P````7#<``/2@_/^I````!$D^``!%#A"&`D,-!D*/ ++M`T6.!$>-!8P&2(,'`F$*#`<(00L`.````)`W``!PH?S_I@````09/@``10X0 ++MA@)##09"CP-%C@1%C05*C`:#!P)2"@P'"$@+9@H,!PA!"P``*````$@\``#D ++MH?S_0@````!%#A"&`D8-!DH*#`<(2PM/"@P'"$P+1@P'"``0````=#P```BB ++M_/\)`````````"P```"(/```!*+\_[,`````10X0A@)##09"C0-*C`2#!0*+ ++M"@P'"$D+2@P'"````"`````\.```Q-GZ_QD````$<3T``$T.$(8"1@T&1`P' ++M"$'&`!````#</```4!O[_R0`````````,`````PF``!<HOS_SP0```0]/0`` ++M10X0A@)##090CP..!(T%C`:#!P/9`PH,!PA'"P```"````!`)@``<=GZ_U0` ++M```$,3T```P&$(,'A@*,!HT%C@2/`R@```#,.```U*;\__T````$%3T``$4. ++M$(8":`T&0XP#@P0"M`H,!PA!"P``'````/@X``!VV?K_(@````3X/```#`80 ++M@P2&`HP#```@````&#D``'C9^O\9````!.`\``!-#A"&`D8-!D0,!PA!Q@`H ++M````/#D``&2G_/]V````!,`\``!%#A"&`D,-!D*-`T6,!$2#!0)B#`<(`"`` ++M``!H.0``N*?\_QD````$G#P``$T.$(8"1@T&1`P'"$'&`"`````(/@``M*?\ ++M_SP`````10X0A@)-#09#C`.#!&8,!P@``"@````L/@``T*?\_Z$`````10X0 ++MA@)##09-CP..!(T%C`:#!P)\"@P'"$<++````%@^``!4J/S_@@(```!%#A"& ++M`D,-!D*/`T>.!(T%1HP&@P<"U@H,!PA#"P``$````(@^``"TJOS_#0`````` ++M```H````G#X``+"J_/^D`````$4.$(8"0PT&2XX#C02,!8,&`GD*#`<(1`L` ++M`"0```#(/@``-*O\_TD`````10X0A@)##09"C`-$@P1H"@P'"$H+```L```` ++M\#X``%RK_/_Y`P```$4.$(8"0PT&38\#C@2-!8P&@P<#8`,*#`<(2PL````P ++M````I#H``"RO_/_O!```!&0[``!%#A"&`D,-!D*/`T6.!$B-!8P&@P<#;P$* ++M#`<(2@L`+````%0_``#HL_S_0P0```!%#A"&`D,-!D2/`XX$3(T%C`:#!P-9 ++M`PH,!PA!"P``+`````@[```(N/S_KP,```0$.P``10X0A@)##09$C0.,!$2# ++M!0+U"@P'"$L+````'````#@[``!RU_K_&0````38.@``#`80@P6&`HP$C0,4 ++M````U#\``&B[_/\-```````````````0````[#\``)"[_/\-`````````!`` ++M````0```C+O\_SX`````````$````!1```"XN_S_/@`````````0````*$`` ++M`.2[_/\3`````````!`````\0```\+O\_UX`````````$````%!````\O/S_ ++M%``````````<````9$```$B\_/\N`````$4.$(8"0PT&18,#8`P'"!````"$ ++M0```6+S\_Q@`````````$````)A```!DO/S_&``````````0````K$```'"\ ++M_/\9`````````!````#`0```?+S\_QD`````````*````-1```"(O/S_#`$` ++M``!%#A"&`D8-!D*/`T6.!$R-!8P&@P<"[0P'"``0`````$$``&R]_/],```` ++M`````!`````400``J+W\_WL`````````$````"A!```4OOS_#@`````````0 ++M````/$$``!"^_/\3`````````!````!000``'+[\_U8`````````$````&1! ++M``!HOOS_#@`````````0````>$$``&2^_/][`````````!````",00``T+[\ ++M_PX`````````$````*!!``#,OOS_O@`````````0````M$$``'B__/^^```` ++M`````!````#(00``),#\_PX`````````$````-Q!```@P/S_#@`````````0 ++M````\$$``!S`_/^+`````````!`````$0@``F,#\_PX`````````)````!A" ++M``"4P/S_9@````!!#A"&`D,-!D*,`T2#!`)""@P'"$P+`!````!`0@``W,#\ ++M_P\`````````$````%1"``#8P/S_#0`````````0````:$(``-3`_/\*```` ++M`````!````!\0@``T,#\_PT`````````$````)!"``#,P/S_%``````````0 ++M````I$(``-C`_/\4`````````!````"X0@``Y,#\_Q,`````````$````,Q" ++M``#PP/S_$P`````````0````X$(``/S`_/]O`````````!````#T0@``6,'\ ++M_V\`````````$`````A#``"TP?S_N@`````````H````H#X``&#"_/^0```` ++M!'<W``!%#A"&`D,-!D*-`TJ,!(,%`GL,!P@``"P```#,/@``Q,+\_UD````$ ++M3S<``$4.$(8"0PT&0XP#@P17"@P'"$8+<`P'"````"P```#\/@``],+\_UD` ++M```$(S<``$4.$(8"0PT&0XP#@P17"@P'"$8+<`P'"````#`````L/P``),/\ ++M_]8````$]S8``$4.$(8"0PT&1XX#C02,!8,&6PH,!PA&"P*E#`<(```L```` ++M8#\``-##_/_O````!,<V``!%#A"&`D,-!DV/`XX$C06,!H,'80H,!PA*"P`@ ++M````#$0``)#$_/\9`@```$$.$(8"10T&08,#`Q$"#`<(```D````,$0``(S& ++M_/^O`````$4.$(8"0PT&0XP#@P0">PH,!PA*"P``)````%A$```4Q_S_)@$` ++M``!%#A"&`D,-!D.,`X,$`H(*#`<(0PL``"@```"<+0``',C\_Y(````$)S8` ++M`$4.$(8"2`T&0XX#@P0"=0H,!PA!"P``'````,@M``"4TOK_%0````0(-@`` ++M#`80@P2&`HX#```H````S$0``'#(_/_N`@```$4.$(8"1PT&1HX#C02,!42# ++M!@,X`@H,!PA""R@```!\0```-,O\_Z@````$Q#4``$4.$(8"0PT&18T#C`2# ++M!7X*#`<(10L`'````*A````RTOK_!0````2<-0``#`80@P6&`HP$C0,L```` ++MR$```)C+_/]C````!(`U``!%#A"&`D,-!D.,`X,$5PH,!PA&"WH,!P@````L ++M````=$4``-C+_/_:`````$4.$(8"0PT&0H\#2HX$C06,!H,'`L`*#`<(00L` ++M```L````*$$``(C,_/\?`P``!"0U``!%#A"&`DH-!DN.`XT$C`6#!@,&`@H, ++M!PA("P`<````U$4``'C/_/\G`````$4.$(8"0PT&08,#60P'""P```#T10`` ++MB,_\_\D!````10X0A@);#09$C@.-!$:,!8,&`X@!"@P'"$X+2`P'"!`````D ++M1@``*-'\_PT`````````'````#A&```DT?S_)P````!%#A"&`D,-!D&#`UD, ++M!P@<````6$8``#31_/\K`````$4.$(8"0PT&08,#70P'"!@```!X1@``1-'\ ++M_],``````J\.$(8"2`T&```0````E$8```C2_/\-`````````#P```"H1@`` ++M!-+\_W8!````4PX0A@)##09"CP-)C@2-!8P&2(,'`F8*#`<(00M0"@P'"$@+ ++M`LL,!PC#QLS-SL\0````Z$8``$33_/\-`````````"0```"`0@``0-/\_W<` ++M```$TS,``$4.$(8"0PT&08,#`F$*#`<(00L8````J$(``#C0^O\4````!+LS ++M```,!A"#`X8",````,1"``!\T_S_?@,```2K,P``10X0A@)##09-CP..!(T% ++MC`:#!P.^`@H,!PA%"P```"````#X0@``_,_Z_S0````$GS,```P&$(,'A@*, ++M!HT%C@2/`RP````<0P``I-;\_\D!```$BS,``$$.$(8"0PT&28\#C@2-!8P& ++M@P<"GPH,!PA$"R````!,0P``W,_Z_R0````$93,```P&$(,'A@*,!HT%C@2/ ++M`R````#L1P``(-C\_WX`````00X0A@)##09!@P,">`P'"````#````"40P`` ++M?-C\_^P!```$)3,``$4.$(8"0PT&1H\#C@2-!4:,!H,'`MD*#`<(0PL```!$ ++M````1$@``#C:_/_Y`````%L.$(8"0PT&38\#C@2-!8P&@P<"8@P'"$/#QLS- ++MSL](#`80@P>&`HP&C06.!(\#`F`,!P@````P````C$@``/#:_/\-`0```$4. ++M$(8"10T&1(T#C`1(@P4"8PH,!PA'"P)0"@P'"$@+````)````,!(```(S_K_ ++M9P````!%#A"&`D,-!D&#`P)5"@P'"$4+0PP'""0```#H2```2,_Z_R\````` ++M10X0A@)##09!@P-="@P'"$4+0PP'"``H````$$D``'S;_/_6`0```$4.$(8" ++M0PT&08,#`\(!"@P'"$4+10P'"````"P```#`1```,-W\_XD````$_3$``$4. ++M$(8"0PT&0XP#@P17"@P'"$8+`F`,!P@``"P```#P1```D-W\_Y\````$T3$` ++M`$4.$(8"0PT&28T#C`2#!5T*#`<(0@L";@P'""`````@10``Q,[Z_QD````$ ++MI3$``$T.$(8"1@T&1`P'"$'&`#0```!$10``W-W\_[@!```$A3$``$4.$(8" ++M0PT&28T#C`2#!6\*#`<(2`L#5@$*#`<(2@M/#`<($````/A)``!DW_S_7``` ++M```````8````#$H``&W.^O\C`````$4.$(8"2`T&````&````"A*``!TSOK_ ++M(P````!%#A"&`D@-!@```"P```!$2@``>-_\_P,!````10X0A@)##09#C`.# ++M!`*L"@P'"$D+4PH,!PA%"P```!@```!T2@``3,[Z_P4`````#`80@P2&`HP# ++M```P````%$8``#S@_/]Q!0``!+DP``!%#A"&`D,-!DB/`XX$C06,!D2#!P*_ ++M"@P'"$4+````(````$A&```"SOK_,@````2),```#`80@P>&`HP&C06.!(\# ++M)````.A*``!DY?S_:0````!%#A"&`D,-!D2-`XP$1(,%`E@,!P@``!@````0 ++M2P``Z,WZ_P4`````#`80@P6&`HP$C0,H````+$L``)#E_/^@`0```$4.$(8" ++M10T&1HX#C02,!42#!@-Z`0H,!PA""QP```!82P``ILWZ_PH`````#`80@P:& ++M`HP%C02.`P``*````'A+``#DYOS_H`$```!%#A"&`D4-!D:.`XT$C`5$@P8# ++M>@$*#`<(0@L<````I$L``&3-^O\*``````P&$(,&A@*,!8T$C@,``#````!( ++M1P``..C\_XH#```$C2\``$$.$(8"0PT&2(\#C@2-!8P&1(,'`\T""@P'"$,+ ++M```@````?$<``!K-^O\*````!&$O```,!A"#!X8"C`:-!8X$CP,D````H$<` ++M`'#K_/\I````!$<O``!%#A"&`D4-!D&#`U$*#`<(00L`'````,A'``#8S/K_ ++M&0````0O+P``#`80@P.&`E0,!P@D````9$P``%CK_/_:`````$4.$(8"0PT& ++M0HP#1(,$`HH*#`<(2`L`+````(Q,```0[/S_^0````!%#A"&`D,-!D*.`T6- ++M!$6,!42#!@*5"@P'"$,+````'````+Q,``!ZS/K_"@`````,!A"#!H8"C`6- ++M!(X#```H````W$P``,#L_/_:`````$4.$(8"0PT&1(X#C01&C`6#!@)W"@P' ++M"$<+`!P````(30``.,SZ_PH`````#`80@P:&`HP%C02.`P``0````*Q(``!4 ++M[?S_2AT```1;+@``10X0A@)##09"CP-'C@2-!4:,!H,'`TD#"@P'"$@+`RD' ++M+A`"MBX``^8&+A!H+@`@````\$@``-[+^O^E!```!*LN```,!A"#!X8"C`:- ++M!8X$CP,L````%$D``#P*_?^.`@``!`LO``!%#A"&`D,-!DV/`XX$C06,!H,' ++M>PH,!PA("P`@````1$D``##0^O])````!/LN```,!A"#!X8"C`:-!8X$CP,0 ++M````Y$T``'@,_?\-`````````"P```#X30``=`S]_WX$````10X0A@)'#09( ++MCP..!(T%C`9$@P<#N`,*#`<(2`L``!P````H3@``$M#Z_P4`````#`80@P>& ++M`HP&C06.!(\#$````$A.``"D$/W_#0`````````L````7$X``*`0_?\J!``` ++M`$4.$(8"0PT&1H\#C@2-!46,!DB#!P-J`@H,!PA+"P`<````C$X``+3/^O\* ++M``````P&$(,'A@*,!HT%C@2/`Q````"L3@``@!3]_PT`````````,````$1* ++M``!\%/W_8!````0/+@``10X0A@)	&CP..!(T%1HP&@P<#4`@*#`<(20L` ++M`"````!X2@``5L_Z_U,````$]BT```P&$(,'A@*,!HT%C@2/`Q`````83P`` ++MA"3]_PT`````````,````+!*``"`)/W_:@X```3++0``10X0A@)##09$CP.. ++M!$6-!4V,!H,'`P$#"@P'"$$+`"````#D2@``/L_Z_PD#```$(RX```P&$(,' ++MA@*,!HT%C@2/`S@````(2P``F#+]_^H$```$'RX``$4.$(8"0PT&28T#C`2# ++M!6\*#`<(2`L#'P0*#`<(20L"3PH,!PA!"RP```!$2P``3#?]_V,````$YRT` ++M`$4.$(8"0PT&0XP#@P17"@P'"$8+>@P'"````#P```!T2P``C#?]_VX*```$ ++MNRT``$4.$(8"0PT&1H\#C@2-!46,!DN#!P,B`0H,!PA("P.1`RY0`P\"+@`` ++M```@````M$L``'C1^O\R!@``!+\M```,!A"#!X8"C`:-!8X$CP,0````5%`` ++M`*A!_?]&`````````!````!H4```Y$']_PX`````````$````'Q0``#@0?W_ ++M)`$````````0````D%```/Q"_?\T`0```````!````"D4```*$3]_S,!```` ++M````$````+A0``!41?W_-`$````````0````S%```(!&_?\T`0```````!`` ++M``#@4```K$?]_PX`````````$````/10``"H1_W_#@`````````0````"%$` ++M`*1'_?\.`````````!`````<40``H$?]_PX`````````$````#!1``"<1_W_ ++M#@`````````0````1%$``)A'_?_I`````````!````!840``=$C]__@````` ++M````$````&Q1``!@2?W_^0`````````0````@%$``$Q*_?_Y`````````!`` ++M``"440``.$O]_PX`````````$````*A1```T2_W_#@`````````0````O%$` ++M`#!+_?\.`````````!````#040``+$O]_PX`````````(````.11```H2_W_ ++MT0````!%#A"&`D,-!@*\"@P'"$0+````$`````A2``#D2_W_$0`````````0 ++M````'%(``/!+_?\1`````````!`````P4@``_$O]_P<"````````$````$12 ++M``#X3?W_5@`````````X````W$T``$1._?_O````!+<K``!%#A"&`D,-!D*, ++M`T2#!%8*#`<(3`L"7@H,!PA""P)%"@P'"$L+```X````&$X``/A._?\)`0`` ++M!'\K``!%#A"&`D,-!D*,`T2#!%8*#`<(3`L";@H,!PA""U4*#`<(2PL````0 ++M````T%(``,Q/_?_I`````````!````#D4@``J%#]__@`````````$````/A2 ++M``"44?W_#@`````````0````#%,``)!1_?\.`````````!`````@4P``C%'] ++M_U``````````*````#13``#(4?W_10````!!#A"&`D4-!D.,`X,$:PH,!PA, ++M"T0,!P@````P````8%,``.Q1_?]H`````$L.$(8"0PT&08,#<PH,!PA&"U8, ++M!PA"P\9!#`80@P.&`@``$````)13```H4OW_!P`````````0````J%,``"12 ++M_?\'`````````!````"\4P``(%+]_P<`````````$````-!3```<4OW_!P`` ++M```````H````Y%,``!A2_?\D`0```$4.$(8"0PT&38\#C@2-!8P&@P=?"@P' ++M"$0+`#````"43P``'%/]_Z4!```$!RH``$4.$(8"0PT&1XX#C02,!8,&6PH, ++M!PA&"P-T`0P'"``L````R$\``)A4_?^N`0``!-<I``!%#A"&`D,-!DV/`XX$ ++MC06,!H,'80H,!PA*"P`L````^$\``!A6_?^N`0``!*LI``!%#A"&`D,-!DV/ ++M`XX$C06,!H,'80H,!PA*"P`L````*%```)A7_?^N`0``!'\I``!%#A"&`D,- ++M!DV/`XX$C06,!H,'80H,!PA*"P`L````6%```!A9_?^N`0``!%,I``!%#A"& ++M`D,-!DV/`XX$C06,!H,'80H,!PA*"P`L````B%```)A:_?\Z`@``!"<I``!% ++M#A"&`D,-!DV/`XX$C06,!H,'80H,!PA*"P`L````N%```*A<_?\W`@``!/LH ++M``!%#A"&`D,-!DV/`XX$C06,!H,'80H,!PA*"P`X````Z%```+A>_?^V```` ++M!,\H``!%#A"&`D,-!DF-`XP$@P4">PH,!PA$"TX*#`<(0@M-"@P'"$(+```H ++M````)%$``#Q?_?]'````!)<H``!J#A"&`D8-!D0,!PA$QD,,!A"&`@```!@` ++M``!040``#M+Z_Q0````$>R@```P&$(8"```H````;%$``$1?_?]'````!&LH ++M``!J#A"&`D8-!D0,!PA$QD,,!A"&`@```!@```"840``VM'Z_Q0````$3R@` ++M``P&$(8"```D````,%8``$Q?_?_[`````$$.$(8"0PT&0HP#2(,$`ID*#`<( ++M20L`(````-Q1```D8/W_&0````07*```10X0A@)+#09(#`<(````(`````!2 ++M```@8/W_&0````3W)P``10X0A@)+#09(#`<(````+````*!6``!BT?K_80`` ++M``!%#A"&`D,-!D2-`XP$18,%`D,*#`<(10M'#`<(````$````-!6``#L7_W_ ++M5@`````````H````Y%8``(#1^O]R`````$4.$(8"0PT&18T#C`2#!0)8"@P' ++M"$4+1PP'""@```"44@``#&#]_[`!```$9R<``$4.$(8"0PT&18T#C`2#!0*O ++M"@P'"$0+'````,!2``":T?K_'P````17)P``#`80@P6&`HP$C0,0````7%<` ++M`'!A_?\-`````````"P```",0```;&']_[@````$,R<``$4.$(8"0PT&1(T# ++MC`1%@P4"B0H,!PA!"P```!P```"\0```5='Z_U0````$%2<```P&$(,%A@*, ++M!(T#*````$13``#<8?W_#`,```3_)@``10X0A@)##09'C`.#!`):"@P'"$<+ ++M```<````<%,``%[1^O]P````!.\F```,!A"#!(8"C`,``!`````,6```H&3] ++M_PT`````````)````"!8``":T?K_,`````!%#A"&`D,-!D&#`UX*#`<(10M# ++M#`<(`#````!D00``=&3]_P\!```$JR8``$4.$(8"0PT&0H\#28X$18T%2(P& ++M28,'`KP*#`<(00L@````F$$``&[1^O]^````!)0F```,!A"#!X8"C`:-!8X$ ++MCP,P````H%@``"QE_?]N`````$\.$(8"0PT&0HP#1(,$;PK#1<Q!Q@P'"$L+ ++M1`P'"$3#QLP`&````-18``"4T?K_*0````!%#A"&`D@-!@```#````#P6``` ++M3&7]_Z8!````10X0A@)##09-CP..!(T%C`:#!P+F"@P'"$4+`G,*#`<(10L@ ++M````)%D``,AF_?^T`````$4.$(8"0PT&18,#`E0*#`<(1PL@````2%D``&1G ++M_?^T`````$4.$(8"0PT&18,#`E0*#`<(1PLP````;%D```!H_?_C`````$4. ++M$(8"0PT&18T#C`2#!0*D"@P'"$\+4`H,!PA("TH,!P@`&````*!9``#RT/K_ ++M"@`````,!A"#!88"C`2-`S````#80@``H&C]_TH!```$7"4``$4.$(8"0PT& ++M1(\#C@1%C05%C`9%@P<"TPH,!PA""P`@````#$,``*S0^O]=````!#8E```, ++M!A"#!X8"C`:-!8X$CP,X````%%H``)AI_?_6`P```%`.$(8"0PT&1H\#C@2- ++M!4J,!H,'`U4""@P'"$@+`U,!#`<(P\;,S<[/```<````4%H``*K0^O\%```` ++M``P&$(,'A@*,!HT%C@2/`S0```#T50``'&W]_^P&```$PB0``$4.$(8"1PT& ++M1H\#C@2-!4V,!H,'`W8#+E`#,`(*#`<(2PL`)````"Q6``!8T/K_90$```2A ++M)```00P&$(,'A@*,!HT%C@2/`P```"@```#L0P``K'/]_ZD#```$C20``$4. ++M$(8"0PT&1XX#@P0#2@,*#`<(1PL`'````!A$``!IT?K_.P````1O)```#`80 ++M@P2&`HX#```H````H%8``!!W_?]B`0``!%<D``!%#A"&`D,-!D6-`XP$@P4" ++MU`H,!PA'"RP```!(6P``5'C]_PL!````10X0A@)##09$C0.,!$B#!0+G"@P' ++M"$4+2@P'"````"P```#\5@``-'G]_\T$```$_R,``$4.$(8"0PT&38\#C@2- ++M!8P&@P=A"@P'"$H+`"P````L5P``U'W]_[T$```$TR,``$4.$(8"0PT&38\# ++MC@2-!8P&@P=A"@P'"$H+`"P```!<5P``9(+]_\T$```$IR,``$4.$(8"0PT& ++M38\#C@2-!8P&@P=A"@P'"$H+`#````",5P``!(?]_Q<"```$>R,``$4.$(8" ++M6`T&28\#C@2-!8P&@P<#D`$*#`<(00L````@````P%<``&30^O\>`@``!'LC ++M```,!A"#!X8"C`:-!8X$CP,L````Y%<``,R(_?^Z!```!&`C``!%#A"&`E\- ++M!E.-`XP$@P4#N`(*#`<(20L````<````D%P``%R-_?\G`````$4.$(8"0PT& ++M18,#60P'"#````#,10``;(W]_]8````$%",``$$.$(8"0PT&1H\#C@2-!4:, ++M!D>#!P*A"@P'"$$+```@`````$8``-K1^O\X````!/<B```,!A"#!X8"C`:- ++M!8X$CP,H````"%T``/2-_?]7`````$$.$(8"0PT&0HT#18P$1(,%<@H,!PA/ ++M"P```"P```!01@``*([]_X0#```$KR(``$4.$(8"0PT&2XX#C02,!8,&`R`" ++M"@P'"$4+`"````"`1@``DM'Z_RH````$CR(```P&$(,&A@*,!8T$C@,``"P` ++M``"(70``9)']_R@"````00X0A@)##09,C0.,!(,%`H`*#`<(2`L"R`H,!PA( ++M"S`````\60``9)/]_\$````$0R(``$4.$(8"0PT&0HP#1(,$`DT*#`<(30L" ++M3`H,!PA!"P`<````<%D``#31^O\4````!",B```,!A"#!(8"C`,``#@```"0 ++M60``X)/]_R8"```$#R(``$$.$(8"0PT&0H\#2HX$C06,!H,'`E(*#`<(1@L# ++M10$*#`<(0PL``"````#,60``[-#Z_T$````$Z"$```P&$(,'A@*,!HT%C@2/ ++M`S0```#P60``L)7]_XP````$S"$``$4.$(8"0PT&0HX#18T$18P%1(,&70H, ++M!PA+"P)`#`<(````,````"A:```(EOW_<0````28(0``10X0A@)##09"C@-% ++MC01%C`5$@P9]"@P'"%,+2`P'""P```!<6@``5);]_U(````$:"$``$4.$(8" ++M0PT&0HP#1(,$7@H,!PA$"U4,!P@``"P```",6@``A);]_U(````$/"$``$4. ++M$(8"0PT&0HP#1(,$7@H,!PA$"U4,!P@``#````"\6@``M);]_Z,(```$$R$` ++M`$4.$(8"0PT&4(\#C@2-!8P&@P<#'`4*#`<(1`L````@````\%H```K0^O\? ++M`0``!%<A```,!A"#!X8"C`:-!8X$CP,0````D%\```R?_?\-`````````#`` ++M``#`2```")_]__$#```$-R$``$4.$(8"0PT&0H\#2HX$C06,!H,'`PH!"@P' ++M"$(+```@````]$@``+W0^O]4````!!XA```,!A"#!X8"C`:-!8X$CP,P```` ++M&$D``+"B_?\Q`P``!`(A``!%#A"&`D,-!D2/`XX$1XT%C`9(@P<##@(*#`<( ++M1PL`(````$Q)``"ZT/K_80````3H(```#`80@P>&`HP&C06.!(\#+````%1@ ++M``"8I?W_5@$```!%#A"&`D,-!D2/`XX$18T%2HP&@P<"O0H,!PA("P``,``` ++M``A<``#(IOW_:R0```2?(```10X0A@)##09$CP..!$B-!8P&@P<#6`$*#`<( ++M1`L``"`````\7```E-#Z_YL"```$PR$```P&$(,'A@*,!HT%C@2/`S````!@ ++M7```X,K]_\H#```$OR$``$4.$(8"0PT&38\#C@2-!8P&@P<#70$*#`<(1@L` ++M```0````$&$``'S._?\-`````````!`````D80``F,[]_RL!````````$``` ++M`#AA``"TS_W__``````````0````3&$``*#0_?\;`0```````!````!@80`` ++MK-']_QP!````````$````'1A``"XTOW_%``````````0````B&$``,32_?\4 ++M`````````!````"<80``T-+]_Q0`````````$````+!A``#<TOW_'@`````` ++M```0````Q&$``.C2_?^&`````````"0```#880``$-+Z_RP`````00X0A@)# ++M#09!@P->"@P'"$4+0PP'"``D`````&(``#S3_?\O`````$$.$(8"0PT&08,# ++M80H,!PA%"T,,!P@`'````"AB``!$T_W_'`````!%#A"&`DX-!D@,!P@````< ++M````2&(``$33_?\<`````$4.$(8"3@T&2`P'"````#````!H8@``1-/]_^0( ++M````00X0A@)##09-CP..!(T%C`:#!P._"`H,!PA%"TX,!P@````P````G&(` ++M``#<_?]0`@```$$.$(8"0PT&38\#C@2-!8P&@P<#*P(*#`<(10M.#`<(```` ++M+````-!B```<WOW_>P````!!#A"&`D,-!D*-`TJ,!(,%`EX*#`<(10M'#`<( ++M````&`````!C``!LWOW_)P````!:#A"&`D@-!@```"````"@7@``@-[]_R,` ++M```$@Q\``$$.$(8"6PT&1@P'"````#````#$7@``C-[]_]L!```$8Q\``$$. ++M$(8"0PT&1(\#C@1%C05(C`9,@P<"Z0H,!PA&"P`@````^%X``*#0^O\J```` ++M!$0?```,!A"#!X8"C`:-!8X$CP,P````'%\``!3@_?\]!P``!"@?``!!#A"& ++M`D,-!D*/`TR.!(T%28P&28,'`J@*#`<(1`L`(````%!?``!RT/K_+0````0. ++M'P``#`80@P>&`HP&C06.!(\#(````'1?``![T/K_&P````3R'@``30X0A@)& ++M#09&#`<(0<8`+````)A?``!RT/K_4`````32'@``00X0A@)##09"C`-$@P1\ ++M"@P'"$4+1`P'"```*````,A?``"HYOW_I0````2F'@``00X0A@)##09"C0-* ++MC`1)@P4"BPP'"``D````<&0``"SG_?^"`````$$.$(8"0PT&0HP#1(,$`EP* ++M#`<(2@L`*````+1-``"4Y_W_00````1:'@``00X0A@)+#09#C@.#!&4*#`<( ++M00L````<````X$T``!+0^O\6````!#H>```,!A"#!(8"C@,``#````!H8``` ++MF.?]_PT!```$(AX``$4.$(8"0PT&1(\#C@1'C06,!DB#!P*8"@P'"$4+```@ ++M````G&```-3/^O\%````!/<=```,!A"#!X8"C`:-!8X$CP,P````P&```%#H ++M_?_E`P``!-L=``!%#A"&`D,-!D:/`XX$C05)C`9$@P<"<`H,!PA%"P``+``` ++M`/1@```,[/W_9P````2K'0``10X0A@)##09#C`.#!%X*#`<(1PME"@P'"$L+ ++M+````"1A``!,[/W_9P````1_'0``10X0A@)##09#C`.#!%X*#`<(1PMF"@P' ++M"$H+,````%1A``",[/W_R`0```13'0``10X0A@)##09$CP..!$6-!46,!D2# ++M!P/X`@H,!PA&"R````"(80``[L[Z_Q8````$*1T```P&$(,'A@*,!HT%C@2/ ++M`RP```"L80``!/']_P<!```$"1T``$4.$(8"0PT&0HX#2XT$C`5$@P8"R@H, ++M!PA%"RP```#<80``Y/']_S<!```$W1P``$4.$(8"0PT&1(X#C01%C`5$@P8" ++MX`H,!PA+"Q````"(9@``]/+]_PT`````````*````"!B``#P\OW_OP````2K ++M'```10X0A@)##09#C`.#!`)M"@P'"$@+```0````R&8``(3S_?\-```````` ++M`"P```!@8@``@//]_\@#```$=!P``$4.$(8"0PT&1(X#C01*C`6#!@+>"@P' ++M"$0+`"````"08@``_,WZ_S(````$6AP```P&$(,&A@*,!8T$C@,``!`````P ++M9P``_/;]_PT`````````'````$1G``#X]OW_,P````!2#A"&`DP-!D@,!PA* ++MQ@`L````Z&(``!CW_?__`P``!`H<``!%#A"&`D,-!E"/`XX$C06,!H,'`J@* ++M#`<(2`L@````&&,``*;-^O\M````!/0;```,!A"#!X8"C`:-!8X$CP,L```` ++M/&,``,3Z_?]5````!-L;``!%#A"&`D,-!D*-`T6,!$B#!7$*#`<(00L````< ++M````;&,``(#-^O\?````!+\;```,!A"#!88"C`2-`RP```",8P``U/K]_U4` ++M```$KQL``$4.$(8"0PT&0HT#18P$2(,%<0H,!PA!"P```!P```"\8P``3\WZ ++M_Q\````$DQL```P&$(,%A@*,!(T#*````-QC``#D^OW_M@````2#&P``10X0 ++MA@)%#09!@P,"E@H,!PA/"T4,!P@<````A&@``'C[_?\Y`````$4.$(8"2@T& ++M08,#9`P'"!P```"D:```F/O]_T8`````10X0A@)*#09!@P-Q#`<((````,1H ++M``#(^_W_N@````!%#A"&`EP-!D&#`P*3#`<(````(````.AH``!D_/W_QP`` ++M``!%#A"&`EP-!D&#`P*@#`<(````(`````QI```0_?W_N0````!%#A"&`EP- ++M!D&#`P*2#`<(````(````#!I``"L_?W_QP````!%#A"&`F@-!D*,`T6#!`*. ++M#`<(*````%1I``!8_OW_[0````!%#A"&`D,-!D.,`X,$70H,!PA("P*\#`<( ++M```H````@&D``!S__?\``0```$4.$(8"0PT&28T#C`2#!6,*#`<(1`L"QPP' ++M""@```"L:0``\/_]__\`````10X0A@)##09)C0.,!(,%8PH,!PA$"P+&#`<( ++M,````%QE``#$`/[_80@```0'&@``10X0A@)##09-CP..!(T%C`:#!P.B`@H, ++M!PA)"P```#````"090````G^_YD%```$YQD``$4.$(8"0PT&1H\#C@2-!46, ++M!D2#!P--`0H,!PA$"P`L````Q&4``&P._O]W````!+<9``!%#A"&`D,-!D*- ++M`TF,!$2#!7P*#`<(10L````L````]&4``+P._O]W````!(L9``!%#A"&`D,- ++M!D*-`TF,!$2#!0)2"@P'"$<+```P````H&H```P/_O^-`````%L.$(8"0PT& ++M=PP'"$O&4`P&$(8"4`P'",9&#`80A@)&#`<(,````%AF``!H#_[_TQ,```0K ++M&0``10X0A@)/#09)CP..!(T%C`:#!P/0"@H,!PA!"P```"````",9@``GLKZ ++M_\$!```$BQD```P&$(,'A@*,!HT%C@2/`R0````L:P``\"+^_YD``````E8. ++M$(8"0PT&0XP#@P1U#`<(1\/&S``H````V&8``&@C_O\+`@``!&L9``!%#A"& ++M`D,-!D*,`T2#!`.A`0H,!PA!"QP````$9P``Z,OZ_X4````$;1D```P&$(,$ ++MA@*,`P``+````"1G```L)?[_/P(```15&0``00X0A@)##09$C0.,!$F#!0*" ++M"@P'"$$+````'````%1G```=S/K_.`````0^&0``#`80@P6&`HP$C0,X```` ++M=&<``!PG_O\B"```!"89``!!#A"&`D,-!D2/`XX$18T%2HP&2X,'`QP""@P' ++M"$H+9`H,!PA$"P`@````L&<``/G+^O]7````!"@9```,!A"#!X8"C`:-!8X$ ++MCP,P````;%4``.PN_O_+````!`P9``!!#A"&`D,-!D*/`T6.!$N-!8P&2X,' ++M`F$*#`<(1@L`(````*!5``#XR_K_)`````3B&```#`80@P>&`HP&C06.!(\# ++M-````"QH``!D+_[_!P$```3&&```00X0A@)##09$C@.-!$6,!42#!@*F"@P' ++M"$D+<0H,!PA%"P`@````9&@``,#+^O\J````!*`8```,!A"#!H8"C`6-!(X# ++M```H````!&T``!@P_O^^`````$$.$(8"0PT&0HP#1(,$`D(*#`<(1`L":0P' ++M"#````"T:```K##^_T(/```$6!@``$4.$(8"0PT&1(\#C@1(C06,!H,'`U\) ++M"@P'"$4+```@````Z&@``&;+^O_M````!)L8```,!A"#!X8"C`:-!8X$CP,0 ++M````B&T``*0__O\-`````````#@````@:0``H#_^_R$K```$;Q@``$$.$(8" ++M0PT&0H\#28X$3XT%C`:#!P-X#0H,!PA!"P/X$2XP>BX``"````!<:0``W\OZ ++M_Q,(```$+QH```P&$(,'A@*,!HT%C@2/`S0```"`:0``8.KZ_[H$```$<QH` ++M`$4.$(8"2@T&1H\#C@2-!4N,!H,'`J,*#`<(00L`````````4````#1N``!( ++M:O[_L@,```!-#A"&`D\-!D*/`TF.!$J-!8P&1X,'`S(!"@P'"$8+>0H,!PA' ++M"P/C`0P'",/&S,W.ST<,!A"#!X8"C`:-!8X$CP,`*````(AN``"T;?[_H@`` ++M``!!#A"&`D,-!D2.`XT$18P%2H,&`G$*#`<(2`M4````.&H``#AN_O]I`@`` ++M!#<:``!*#A"&`DH-!DV/`XX$C06,!H,'9`H,!PA+"P,X`<-"S$+-0LY"ST'& ++M#`<(5PP&$(,'A@*,!HT%C@2/`U`*#`<(00L`5````)!J``!0</[_>0(```3M ++M&0``2@X0A@)*#09-CP..!(T%C`:#!V0*#`<(2PL#2`'#0LQ"S4+.0L]!Q@P' ++M"%<,!A"#!X8"C`:-!8X$CP-0"@P'"$$+`"0```!D;P``>'+^_\@`````10X0 ++MA@)##09&C@.-!(P%2(,&`K$,!P@<````C&\``#[2^O\*``````P&$(,&A@*, ++M!8T$C@,``"P```"L;P```'/^_TX$````10X0A@)##09$CP..!$F-!8P&@P<# ++M1`(*#`<(1PL``"@```#X6```('?^_PD!```$*QD``$4.$(8"0PT&0HP#1(,$ ++M`LT*#`<(10L`'````"19``#,T?K_-P````03&0``#`80@P2&`HP#```@```` ++MK&L``.31^O\6````!/L8``!*#A"&`D8-!D0,!PA!Q@`@````T&L``-;1^O\6 ++M````!-L8``!*#A"&`D8-!D0,!PA!Q@`@````<'```)QW_O__`````$4.$(8" ++M0PT&18,#`F8*#`<(00L0````E'```'AX_O\?`````````"````"H<```A'C^ ++M_X@`````10X0A@)##08"4`H,!PA("P```!````#,<```\'C^_W$````````` ++M)````.!P``!<>?[_J`````!%#A"&`D,-!D*.`TB-!(P%@P8"E0P'""`````( ++M<0``Y'G^_T$`````10X0A@)##09"C`-$@P1R#`<(`"@````L<0``$'K^_W(` ++M````10X0A@)##09$C@.-!$6,!42#!@),"@P'"$<++````%AQ``!D>O[_QP`` ++M``!%#A"&`D,-!D*/`TZ.!(T%C`:#!P)S"@P'"$4+````*````(AQ```$>_[_ ++MCP````!%#A"&`D,-!D*/`T6.!$6-!4:,!H,'`G0,!P@D````M'$``&A[_O]O ++M`````$4.$(8"0PT&0HT#18P$1(,%`EL,!P@`(````-QQ``"P>_[_GP````!/ ++M#A"&`D@-!@*""@P'"$$+````*`````!R```L?/[_AP````!%#A"&`D,-!D*- ++M`TB,!$J#!0)<"@P'"$@+```L````+'(``/#J^O_F$````$4.$(8"10T&1(X# ++MC01,C`5/@P8#(!`*#`<(00L````P````>%L``&!\_O^T&@``!,\6``!%#A"& ++M`D,-!DF/`XX$C06,!H,'`S@""@P'"$$+````(````*Q;``"HS_K_TP,```3U ++M%@``#`80@P>&`HP&C06.!(\#,````#AN``#(EO[_ORL```3Z%@``10X0A@)# ++M#090CP..!(T%C`:#!P/&"PH,!PA""P```"````!L;@``)-/Z_^$%```$\A<` ++M``P&$(,'A@*,!HT%C@2/`S`````H7```,,+^_Z8!```$51@``$4.$(8"0PT& ++M1H\#C@2-!4:,!H,'`T$!"@P'"$L+```@````7%P``*W8^O\:````!#48```, ++M!A"#!X8"C`:-!8X$CP,L````9',``(C#_O\$`0```$4.$(8"2PT&1(\#C@1& ++MC05%C`9/@P<">0H,!PA)"P`<````E',``'/8^O\9``````P&$(,'A@*,!HT% ++MC@2/`S@```#07```2,3^_QP#```$R1<``$4.$(8"0PT&0H\#28X$C06,!DB# ++M!P)+"@P'"$H+`Z\!"@P'"$$+`"`````,70``,-CZ_UD````$G!<```P&$(,' ++MA@*,!HT%C@2/`S````"8;P``",?^_\X;```$A!<``$$.$(8"0PT&1(\#C@1% ++MC05&C`:#!P,&%`H,!PA'"P`@````S&\``#'8^O^$`@``!"D8```,!A"#!X8" ++MC`:-!8X$CP,T````\&\``(#B_O_Z````!"@8``!.#A"&`DH-!D&#`V,*#`<( ++M00L"K\-!Q@P'"$8,!A"#`X8"`"P```#`70``2./^_XT````$]!<``$4.$(8" ++M0PT&1(T#C`1%@P4":@H,!PA!"P```!P```#P70``*MKZ_RH````$T1<```P& ++M$(,%A@*,!(T#-````'AP```TVOK_F0````2Y%P``3@X0A@)*#09#C`.#!`)F ++M"L-*S$'&#`<(10M&#`<(0</&S``X````L'```%#C_O_;-@``!(47``!%#A"& ++M`D<-!E"/`XX$C06,!H,'`PT;+B`#&P$N``,``0H,!PA$"P`@````['```%G: ++M^O\,"```!%49```,!A"#!X8"C`:-!8X$CP,P````J%X``-`9__]2`0``!%(9 ++M``!%#A"&`D,-!D*/`T6.!$:-!4N,!H,'`JX*#`<(0@L`(````-Q>```-XOK_ ++M,P````0N&0``#`80@P>&`HP&C06.!(\#`````/__`0#__P$`__\!`/__`0#_ ++M_P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\!"K\" ++M`P``T`,S``#__P$*SP(#``#@`R\``/__`0K/`@,``.`#+P``__\!"E4H``"& ++M`07.`0#__P$$`!H``/__`1!?-P``[0$DZP(`F@(%]P(`__\!!``U``#__P$. ++M)@4``#<%F`$`606,`0#__P$$+04``/__`2.\`04``,8#4/8'`*\$!8L(`/X$ ++M!9<(`,$&-?8'`(\'!?\'`/__`0@/2#H`>04``/__`0#__P$`__\!"!T%```^ ++M!4L`__\!!!`%``#__P$4-04``%(%]`$`<@7H`0#<`07H`0#__P$$+@4``/__ ++M`10Q!0``6`64`@!R,(@"`/P!!8@"`/__`00N!0``__\!%"8%``!#!?0!`'4% ++MZ`$`W`$%Z`$`__\!!"X%``#__P$4)@4``$@%]`$`>@7H`0#<`07H`0#__P$$ ++M+@4``/__`1HG!0``.@7O`P!1!=<#`+$!!?L#`+4#!>,#`/__`00S!0``__\! ++M*;@!!0``G`(%J@8`W@(TH08`G0,%B08`X0,%E08`H00QH08`W`0%M@8`__\! ++M""T%``!5&3@`__\!$>D![`$``.0#!>P%`,X$!0``__\!!``:``#__P$2P`$E ++MFP4`[P$%CP4`]@(%@P4`__\!!!HW``#__P$M-`4``%0%@PD`Z@$%]P@`H@(% ++MFPD`P@0%ZP@`A`4%IPD`U04%CPD`T@<0@PD`__\!!#$%``#__P$`__\!;BX8 ++M``!B!>4)`(L!!?$)`/\!!>4)`+0"$*D)`,L"!9$)`(T#!:D)`)@#!=D)`+(# ++M!:D)`+T#!<T)`+H%!0``[`4%^0@`]P4%_0D`U08%Y0D`I0<%G0D`QP<%A0D` ++M[@<%P0D`D`@%M0D`W`@%B0H`__\!!"Y+``#__P$```#__P$`__\!`/__`0#_ ++M_P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\!`/__ ++M`0#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\! ++M`/__`0#__P$*SP(#``#@`R\``/__`0K/`@,``.`#+P``__\!"L\"`P``X`,O ++M``#__P$*SP(#``#@`R\``/__`0;""_T9``#__P$`__\!`/__`0#__P$`__\! ++M`/__`0#__P$*63(``(,#!>D#`/__`00`&@``_YL-`059!<D!`0$``````/^; ++M"0$``0```````/^;+0$AD0*2`?0/`\8%!?0/`[0)]@']#P/<"P7T#P.V#,8" ++M_0\#`0``?0```````/^;$0$$#P44`P$``'T`````````__\!"B,%``"E`07] ++M`@#__P$(%@4@`%,%``#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$`__\! ++M`/__`0#__P$`__\!`/__`23'`04``(0"!:L)`.8"!9\)`+H#!;<)`-`$N0/# ++M"0#Q"`6W"0#__P$$-P4``/__`0MW!>4!`*<!!?$!`/__`00=!0``__\!`/__ ++M`00F*0``__\!`/__`0#__P$`__\!`````/__`0#__P$`__\!`/__`0#__P$` ++M__\!"1`%``!D!88!`/__`000!0``__\!`/__`0#__P$`__\!`````/^;#0$$ ++M'`-K`0$```````#_FPD!``$```````#_FR4!&-,!!=H&`[T"!?(&`X@#!>8& ++M`[0&`^8&`P$``'T`````````_YL-`0`!``!]`````````/__`0;``1*]`P#_ ++M_P$$&@4``/__`0#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$$?F@``/__ ++M`00`"@````#_FPT!!!(%'0$!````````_YL-`004!0```0```````/^;D`$! ++M>-8-B0*Z.0/S$06O.@>'%(,#ESH'M1CY!K@Z!ZDA(<$Z![\C,+@Z!ZTD+:`Z ++M!_PD9Y<Z!YXF>;@Z!^`H]0'!.@>4+@7J.0?-+P7;.0?1,"G(.0>H,12(.@?D ++M,07(.0?',@7Y.0>>,X8!R#D'W#0%N#H'Q#6=`IDY!P$``'T#?0)]``"870`` ++MG%T```````#_FX`!`6H3!?("![\"!<H'`>,""A@'K`,%SP,'P`,%\@('\0,E ++MSP,'L`0VD@8'_@0%X`<'E@49\@('C08%JP8'Y08%D@8'^08%\@('IP<%D@8' ++M@@@%]@,#E@@%_0@'KP@%SP,'WP@%K`<'^`@%X`<'`0``?0-]`GT470``&%T` ++M``````#_FQT!$6<%@@4!O@$%^00#SP)F^00#`0``?0```````/^;$0$$#P44 ++M`P$``'T`````````__\!%]X":0``U@7L`P``G0H[U"``\PW(!P``__\!"`\% ++M``!)!0```/^;B`$!?J,!!=4<`[$&`M4<`YX'!;$<`_X'!<D<`Z4(!?L;`[0( ++M!=<;`_8(!<L;`YT)!>,;`X\-!>$<`[<-!:4<`\8-!>\;`XP.+>$<`\X/,Y`< ++M`^40!>$<`]02!;T<`^<2!9D<`^$4,X<<`^$6!8<<`_T8!>$<`XX9!;T<`]`9 ++M!>$<`P$``'T`````_YL=`1*N`4"X`0/]`06"`@/+!07P!0,!``!]``````#_ ++M_P$`__\!`/^;00$VY0(%OA0#IP,%LA0#XP0%UA0#F`<%XA0#TP@%IA0!V0D% ++MRA0!Z`TKRA0!B1(NRA0!RA,XXA0#`0``?0``````_YL=`1`T!<\%`T`%EP@# ++MLP47SP4#`0``?0````````#__P$`__\!`/__`0#__P$`__\!`/__`0#__P$` ++M__\!`/__`0#__P$`_YL-`00P`SL!`0```````/^;"0$``0```````/^;#0$$ ++M,`,[`0$```````#_FPD!``$```````#__P$`__\!`/^;&0$,S@$"F`,#\`$# ++MI`,!`0``?0````````#_FPT!``$``'T`````````__\!#B\7``!C!:P!`&X% ++MH`$`__\!!"`J`````/^;&0$,]`0%@P8#EP4%]P4#`0``?0````````#_FQ4! ++M"`\%%`-=!6<#`0``?0````````#__P$9/!L``%T%@P(`=A<``*H!!?<!`+4! ++M!>L!`/__`00@3P``__\!"C4%``!)W@'!`@#__P$(#QDH`$D%``#__P$3NP(% ++MUPT`T@2]`<X-`)4'!>,-`/__`1#X`04``)$"&<@"`+X"!0$`__\!"B$%``", ++M!@6=!P#__P$$,04``/__`0#__P$`__\!`/__`0#__P$PCP$%MP,`FP$%\P,` ++MJ@$%YP,`S`$%VP,`C@(%SP,`F@(%BP0`X@(%_P,`HP,%PP,`__\!!9<!!0`` ++M__\!`/__`1,P!0``0Q/*`0!<!;X!`'4%R@$`__\!!"X%``#__P$,E0&R`0`` ++M\`(%^`8`__\!!"`%``#_FQ$!!A&6`;4!`0$``````````/^;"0$``0`````` ++M`/__`1&@`18``+P!!8X$`.,!3YH$`/__`00?!0``__\!`/__`0#__P$`__\! ++M`````/^;=0%K>`7#$`&-`06N$`.U`06B$`/)`07;$`.$`@6B$`.\`@7/$`/A ++M`@6Z$`/L`@7_$`.5`V+S$`.$!3ZZ$`/T!06+$0.""#*Z$`.]"`7G$`/S"`6Z ++M$`/`"@+#$`'S"VNZ$`.C#07S$`/X#Q67$0,!``!]`````/^;%0$)#P5>`YT! ++M7EX#`0``?0```````/__`1>,`04``*D!!=D'`-D"F`,``(D&!>4'`/__`00@ ++M*@``__\!%I,#!0``LP0%F08`_P0%``#I!26E!@#__P$$#T,``````/^;U`(! ++MQP)+Q@/32`&`!3OV1P.0$`7V1P.5$07'2`/R$0711@/E$@751P/S$@7)1P.K ++M%`751P./%@7=1@.Y%@6!1P.,%P6E1P.7&06!1P/$&06]1P/L'`7'2`.('07V ++M1P./'@6!1P/U'P751P.-(!J!1P/S(`6-1P.@(@751P/6(@6!1P.%(P6M1@.# ++M)-T!WT@#R"8%]D<#J2<^X4<#]"<%F4<#YR@W]48#JRD%Z48#K2H%U4<#UBP^ ++MWT@#HBXA]D<#NB\%O4<#]R\%CD@#_C`%@D@#J#$%L4<#ZS(%WT@#CC,%]D<# ++MFC21`;U'`_,U'*%&`\DV!;U'`^(WF0'?2`/-.D681@.Z.P6Y1@/Y/`6A1@.( ++M/1>F2`.E/06:2`/%/12F2`.R/@6R2`/G/@7J1P/^/@7%1@.B/P7J1P/A/P6^ ++M2`/61`6]1P/B10681@,!``!]````````_YL=`1`:!1\#[@,%\P,#R`0%[`$# ++M`0``?0````````#__P$`__\!`/__`1%5!0``IP$%SP,`F`*I`<\#`/__`00@ ++M!0``__\!%F@%``#@`04``(($Z0:Q#@#3#4VQ#@#__P$$(P4``/__`0#__P$` ++M__\!!&P%``#__P$((@4``"L%-0#__P$$$04``/__`07D`04``/__`00`!0`` ++M__\!`/__`0#__P$`__\!!J\#*;P)`/__`0#__P$`__\!#A\%``"U`04``.8! ++M-0``__\!!8L!!0``__\!$M\"!;P'`.L"!;`'`+D#!;P'`/__`00H!0``__\! ++M%JL#!0``_0-X\P<`B08%``"T!P7S!P#__P$$(P4``````/^;$0$$+05)`P$` ++M`'T`````````_YL-`0`!``!]`````````/^;$0$$+05)`P$``'T````````` ++M_YL-`0`!``!]`````````/__`0#__P$0G@-[``"_!)T+``"*$$T``/__`0#_ ++M_P$`__\!`/^;D`$!AP%5V@$``+0"!=LF`*$#!><F`/P#!:,G`)`&!9<G`/,( ++M!=(F`(4,&/\F`>\/!:\G`-$0!?,F`*42&(LG`,\4,0``M!D%TB8`K!SC`0`` ++ME!X%QR<`_QX%NR<`AR$"``"$(A&+)P#C(@6Z)@""(P6N)@"V(P6B)@#"(P66 ++M)@#*)`6Z)@#6)`7&)@`!``````#_FRD!($P%``!L'HH!`.T!!0``MP(%QP(` ++M[0(%G`,`EP,%A`(``0```````/__`2J%`06W`P"3`07_`P"A`07S`P"N`@7G ++M`P#"`@7;`P"#`P7/`P"7`P7#`P#__P$$;04``/__`14D!0``5@6G!`#%`@6G ++M!`"K`Q"S!`#__P$$+@4``/__`3HR!0``N@(%_@\`_`,%EA``@`4%S@\`H@4% ++MBA``X@4%\@\`K`8%V@\`R`D%Y@\`M@H%V@\`U0H%Y@\`__\!!$0%``#__P$& ++ME`$%OP$`__\!!!H%``#__P$.6P4``'P%^P$`\0$%``#__P$$(`4``/__`7-, ++M!0``^`$%``"(`Q<``/@#1K8>`.P%!0``W@<%``#%"3\``),*!9(>`-@*/``` ++MA`P%AAX`EPX%``"\$`4``/H0!0``J1$%``#1$3$``(D2!9X>`*D3!;8>`,03 ++M?```ZQ0%``"\&P6J'@"_'04``.@=!0``__\!!2BV`0``````_YOX`P'L`X$! ++M!0``VP$5Z5(`C@(%``"K`P7@4@"]`P744@"%!`7^4@#%!`7@4@"Y!07^4@#Z ++M!06L40"0!@6@40"-"/D!]5(!CPH%E%$!\0Q.RU(`W0U;GU,`WPX%EE,`Z@X% ++MBE,`AP\%EE,`AA!UL5,`@Q,%J%,`H19;Y5$`A1<%OU(`[A@%]5(!UAD%``"3 ++M'`7)4P#D'07)4P#C'AOU4@'('P7U4@';'],!J%,`Z2$]^E$`LR(%[E$`_R,% ++MY5$`B"<%V5$`I2<%S5$`VB<%V5$`\R<%P5$`HR@%V5$`N"D%N%$`_"DG@%8` ++MORH%]%4`[RH%Z%4`H"L%W%4`D"PPE58`_"P%TU4`BBT%QU4`FRT%NU4`_"T% ++ME58`I2X%B58`TRZ9`=-5`.4R/X!6`,HS!:]5`*`Y!;A1`/4Y!9Y5`)8Z!9)5 ++M`*(Z!895`*XZ!?I4`+HZ!>)4`,DZ!>Y4`-4Z!=94`/XZ!<I4`-P[!;Y4`.@[ ++M!;)4`/0[!:94`(`\!9I4`(0]18Y4`-`]!8)4`)$^%/93`(\_!>I3`,D_!>%3 ++M`+A#+;-2`.Y#!:=2`/Q#!9M2`,-'/:A3`(U(!8]2`+%(!8-2`(=)!:A3`-A+ ++M!>%3`)A-!<M2`*9-!=53`/]-!?52`;Q.-(M1`?U.!;U3`==/??52`0$````` ++M`````/^;90%:+`6'`@!`!44!?@6>`P'X`061!`#[`P4``-P%!>$%`*`&!;T' ++M`/<'!?4$`/L(!8`)`-,)!;L)`/()!0``U@H%X`H`FPL%FPH`XPX%H@\`DP\% ++MJP0`O0\%AQ```0``````````_YMY`3J!`07O`1.J`@4``-L"!:<#`),#!?@# ++M`/,#!0``G`4%_P4`L0<%VP<`O@<%IP,`\P@%I0D`_P@%K@D`"@`)?0A]!WT& ++M?05]!'T#?0)]`7T``````"Q1```840``#%$``/!0``#T4```^%```-10``#8 ++M4```!%$``/__`0K/`@,``)`$+P``__\!"M\"`P``H`0O``#__P$05P4``(P! ++M!?T!`*X!!?$!`/__`00M!0``__\!`/__`0#__P%64=,&``#6!X0"ES4`^@H% ++MCC4`IA#*!0``RA>W`HXU`,(;!:@U`.<;!8(U`*(<S0&.-0#V($$``/,A^`'Y ++M-`#7)X8#``"2*Q#M-`#:+-T%``#,-`6.-0#__P$E$P4``"<%4`!+A@$``.0! ++MX@'?`P#:`U\``,T$'5``[P2L`M\#`/__`:<"@P(%JE4`^0(%JE<`S@4%ME4` ++MKP<%F%<`^`<>@E<`E0D%PE4`]0D%^58`M`SY!*%7`/@2'[95`(L5!:%7`*48 ++M!;97`/X8J0>A5P#;(;`"V%8`A2:R`Z%7`.,K`M=5`+DL`K16`)(M`OA5`)DN ++M`L!6`+4O!<Q6`+LQ`N-5`*PR!:%7`+LR!<M5`,HUJ@&A50"".06A5P",.06) ++M50",.@.<5@";.@.550#P.K4"[U4`PCY<[U4`IT`"V%8`QT`#V%8`UD"B`NU6 ++M`*Y#%=A6`/-$`J%7`(9%!>16`)A&!:%7`-Q(!<Q6`.I)`J%7`,Q*`J%5`/%* ++M`J%7`*!+#-A6`*U0!9!6`(U1!816`.%2`H16`.U2!9!6`(E4!:A6`.=4`I!6 ++M`()5`J%7`/__`8(!$P6=`@"!`@4``/T"!:\#`)8#!=$#`*H#!<4#`.8#!:@$ ++M`/\#!:($`),$!:X$`,D$!9T"`/,$!9@%`/D&!?X&`(L(!;4(`+`(!9`(`)<) ++M*[4(`-$)!>`)`-L)!9`(`/T)!:X$`)4*!=@+`-,*!<(+`.<*!:X$`/L*!8\+ ++M`*<+!;8+`/__`1"M`3,``.\!!9H#`*P"!0``__\!!``:``#__P$+9A8``*0" ++MN`.3!@#__P$(#QDH`$\%``#__P'4`;T!!?HV`)0"!>XV`,8"!>4V`/H"!=`V ++M`(0#!9(W`)(%!<(W`,H&!=PV`/<&!>HU`)4(!=(U`,$(!=XU`/$(!9XW`+X) ++M!9DU`-0)!:HW`+\+/8(V`(D,!;8W`,0,@0F"-@#.%06X-@"B%CF"-@#/&`7& ++M-0#I&@6L-@#A'.X!ES8`YQ\%I34`WB$%@C8`@2)'H#8`L",%Q#8`ER4%@C8` ++M[R40AC<`NR8%L34`X"@%ES8`@RL%O34`]2\%BS8`]3$"L34`_S$?@C8`US(% ++M]C4`T#02ES8`__\!'RL%90!#!><#`&`%J`0`B0(%``"M`P7,`P#U!`7,`P#_ ++M_P$`__\!"3(%```]!8$!`/__`00@!0``__\!`/__`8<$CP(%D6P`J@(%A6P` ++MCP0%]6D`A04%D6P`GP8%]6D`O08%O6L`SP8%R6L`LPD%E6D`M@L%H6D`F`P% ++MK6D`Z`P%N6D`D0T%@6H`RPX%C6H`U`\HW6D`D!$%L6L`L!$%F6L`KQ(%I6L` ++MOQ,%S6H`VA,%YVH`LA<"SVT`C!D%UFP`M1D%XFP`WAD%@6L`PQH%C6L`[!H% ++MH&@`LAL%K&@`VQL%N&@`BAP%Q&@`KB(%T&@`L2/3`O1H`(TF!?QG`(TI!>EI ++M`+8I!;5J`-\I!<%J`,0J!=QH`.TJ!>AH`+,K!?UH`-PK!8EI`(TL*:YM`(\M ++M!8IM`*TOZ03=:0"T-"+Y:P"I-@7=:0#$.`6A:0#<.`7#;0"@.0+=:0"?.P75 ++M:P#2.P7A:P"J/C[%:0#W/@71:0#O0@6A:0"(0P6W;0#J0RZ4:`"\13**;0#5 ++M1P7%:0"!2`66;0"E2`6B;0#M2#[S9P"T207N;`#@2@*A:0#_2@+=:0#02RNN ++M;0"43`+Z;`"H3BOT:`"(4@6R;`"B4T6N;0#P4P6(:`#/5$J%;`#Q506*;0"Y ++M5@6R;`#@5@6F;`"'5RZR;`#)5P7*;`"?6`6R;`"\6"*^;`#>606:;`"T6K0! ++MLFP`_%L%SV<`U5P%BFT`X%P%PV<`[%Q(BFT`S%TBVV<`\6$%LFP`ZF0%^6L` ++M^V0%[6L`HF4%YV<`__\!'>@!!0``M`,%O`D`Z04%_@L`G0P%IPP`B@T%A`@` ++M__\!#(<"!<8"`)D"!;H"`/__`00I!0````0````0`````0```$=.50`````` ++M`P````(`````````!````&````!^&O[*1D1/`'LB='EP92(Z(F1E8B(L(F]S ++M(CHB=6)U;G1U(BPB;F%M92(Z(F=L:6)C(BPB=F5R<VEO;B(Z(C(N-#$M,75B ++M=6YT=3$B+")A<F-H:71E8W1U<F4B.B)A;60V-")]``````0```!<````?AK^ ++MRD9$3P![(G1Y<&4B.B)D96(B+")O<R(Z(G5B=6YT=2(L(FYA;64B.B(W>FEP ++M(BPB=F5R<VEO;B(Z(C(T+C`Y*V1F<V<M-R(L(F%R8VAI=&5C='5R92(Z(F%M ++M9#8T(GT````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````!P!0$``````*#S````````,`4!```` ++M`````````````(A7!@``````(#P!``````!0/@$``````"!V`0``````$#(" ++M``````!`[`$``````*#L`0``````X.P!````````[`$``````"#L`0`````` ++M`.T!```````@[0$``````/C_________B%<&``````!`/@$``````+`^`0`` ++M````T"\"``````!P[`$``````/#_________B%<&```````P/@$``````*`^ ++M`0``````D"T"``````#`[`$``````.C_________B%<&```````@/@$````` ++M`)`^`0``````4"L"``````#P[`$``````.#_________B%<&```````0/@$` ++M`````(`^`0``````$"D"```````0[`$``````##L`0``````V/________^( ++M5P8````````^`0``````<#X!``````"0>@$``````!#M`0``````T/______ ++M__^(5P8``````/`]`0``````8#X!``````!0>`$``````##M`0`````````` ++M```````P6`8``````,`X`0``````,#H!``````#P5`$``````%`Z`0`````` ++MD#H!``````#@.P$``````/C_________,%@&``````!P.0$``````$`Z`0`` ++M````,%4!````````/`$`````````````````T%@&``````"0-`$``````%`V ++M`0``````D%$!```````PZP$``````,`V`0``````8#<!``````#`-P$````` ++M`*`V`0``````H#@!``````#X_________]!8!@``````0#8!``````"0-@$` ++M`````$!4`0``````$#<!``````"0-P$``````/#_________T%@&```````P ++M-@$``````(`V`0``````D%,!```````P.`$``````.C_________T%@&```` ++M```@-@$``````'`V`0``````X%(!``````"P-@$``````.#_________T%@& ++M```````0-@$``````&`V`0``````,%(!``````"P.`$````````````````` ++M8%D&```````0,@$``````)`S`0``````$%$!``````#P,P$````````T`0`` ++M````,#0!``````#X_________V!9!@``````T#(!``````"@,P$``````%!1 ++M`0``````8#0!`````````````````*A9!@``````<#$!````````,@$````` ++M`-!0`0``````L#,!``````#`,P$`````````````````^%D&``````"0,`$` ++M`````"`Q`0``````D%`!```````P,0$``````$`Q`0````````````````"X ++M6@8``````'`J`0``````<"\!``````#03@$``````"!:`0``````\"\!```` ++M```0,`$``````+`O`0``````T"\!``````#X_________[A:!@``````,"X! ++M``````"@+P$``````"!0`0```````#`!``````#P_________[A:!@`````` ++M\"P!``````"0+P$``````+!/`0``````4#`!``````#H_________[A:!@`` ++M````L"L!``````"`+P$``````$!/`0``````P"\!``````#@+P$````````` ++M````````2%L&``````#0*0$``````&`J`0``````,$X!``````"`3`$````` ++M````````````N%L&``````!`*0$``````,`I`0``````D$T!````````2P$` ++M`````(`%`0``````,#@&``````#`.`8``````#`Z!@``````L#H&``````!0 ++M.08``````,`W!@``````,#8&``````#(-@8``````"@W!@`````````````` ++M`````````````/!;!@``````,!$"````````$@(``````#!9`@``````X)," ++M``````#PE`(`````````````````0%P&``````!`#P(``````,`/`@`````` ++M8"@"``````#0#P(`````````````````>%P&```````@#@(``````*`.`@`` ++M`````"@"``````"P#@(`````````````````R%P&``````!``P(``````,`# ++M`@``````X&L"``````!0<P(``````,!N`@``````L'0"```````````````` ++M`'A=!@``````D``"``````"0`@(``````)!G`@``````4&P"``````"`;0(` ++M`````!!N`@``````D&\"``````!0<0(``````!".`@``````,&\"``````#X ++M_________WA=!@``````@`("``````#0`@(```````!K`@``````L&X"```` ++M``#P_________WA=!@``````<`("``````#``@(``````"!J`@``````0'$" ++M``````#H_________WA=!@``````8`("``````"P`@(``````$!I`@`````` ++MX'("``````#@_________WA=!@``````4`("``````"@`@(``````&!H`@`` ++M````P)$"``````#P<@(`````````````````8%X&``````!`!`(``````(#] ++M`0``````L!,"``````#`B0(``````-`+`@``````8`L"``````!@#`(````` ++M`/`,`@``````,'T"```````0"0(``````*`)`@``````P$X"``````#P)`(` ++M`````#`(`@``````4`@"``````!@#0(``````)`-`@``````P`T"``````#P ++M#0(``````/C_________8%X&```````@"`(``````##^`0```````","```` ++M```0#`(``````/#_________8%X&```````0"`(``````"#^`0``````D"$" ++M``````"0"P(``````.C_________8%X&````````"`(``````!#^`0`````` ++M("`"``````"P#`(``````#`-`@``````X/________]@7@8``````/`'`@`` ++M`````/X!``````#`'@(``````,!_`@``````V/________]@7@8``````.`' ++M`@``````\/T!``````!0'0(``````&`)`@``````X`D"``````#0________ ++M_V!>!@``````T`<"``````#@_0$``````/`;`@``````P$\"``````#(____ ++M_____V!>!@``````P`<"``````#0_0$``````)`:`@``````\"<"``````#` ++M_________V!>!@``````L`<"``````#`_0$``````#`9`@``````0`@"```` ++M``!@"`(``````+C_________8%X&``````"@!P(``````+#]`0``````T!<" ++M``````"`#0(``````+#_________8%X&``````"0!P(``````*#]`0`````` ++M<!8"``````"P#0(``````.`-`@``````J/________]@7@8``````(`'`@`` ++M````D/T!```````0%0(``````!`.`@````````````````!87P8``````+#X ++M`0``````,/H!``````!0^@$``````"#\`0``````8/P!``````#`_`$````` ++M`'!.`@``````T$L"``````#@2P(``````/C_________6%\&``````!P^0$` ++M`````$#Z`0``````@/H!```````@_0$``````+!.`@````````````````"( ++M7P8``````+#X`0``````,/H!``````!0^@$``````"#\`0``````8/P!```` ++M``#`_`$``````'!.`@``````D$L"``````"@2P(``````/C_________B%\& ++M``````!P^0$``````$#Z`0``````@/H!```````@_0$``````+!.`@`````` ++M``````````!08`8``````%#U`0``````</@!```````050(``````/!=`@`` ++M`````/P!````````70(``````)!2`@``````T%,"``````"P^@$``````/C_ ++M________4&`&``````!P]P$``````*#X`0``````T%<"``````#@70(````` ++M`&C_________4&`&``````!0]@$``````(#X`0``````<%8"``````#P^P$` ++M````````````````B&`&``````#`[P$``````+#T`0``````$$H"``````#0 ++MA`(``````/!,`@``````\/0!```````0]0$``````/C_________B&`&```` ++M``!P\P$``````.#T`0``````,$L"``````!@3@(``````/#_________B&`& ++M```````P\@$``````-#T`0``````T$H"````````]0$``````.C_________ ++MB&`&``````#P\`$``````,#T`0``````<$H"```````P]0$````````````` ++M````\&`&``````!`[0$``````/#N`0``````X$<"``````#0@`(``````!!, ++M`@``````@.\!``````"@[P$``````$#O`0``````8.\!``````#X________ ++M__!@!@``````X.X!```````P[P$``````*!)`@``````X$P"``````#P____ ++M______!@!@``````T.X!```````@[P$``````#!)`@``````D.\!``````#H ++M__________!@!@``````P.X!```````0[P$``````,!(`@``````L.\!```` ++M``#@__________!@!@``````L.X!````````[P$``````%!(`@``````4.\! ++M``````!P[P$``````````````````#\!``````#P/@$``````,`^`0`````` ++MX#X!``````#0/08``````*@^!@``````$#\&``````!X/P8``````-@_!@`` ++M````0$`&```````P-@8``````,@V!@``````*#<&``````"`!0$``````"`, ++M`0``````,'$!``````!80P8``````.!#!@``````@$(&``````#X0@8````` ++M`'AA!@``````R$$&```````X008``````*A`!@``````J#P&```````X/08` ++M````````````````:&(&```````0RP,``````##+`P``````,!`$``````#` ++M]`,```````#U`P``````@/H#``````#`^@,`````````````````@&(&```` ++M``!PQP,``````+#*`P``````,/X#```````P#P0``````+`/!```````X.@# ++M``````"0"00``````+#M`P``````$.0#``````#`[@,``````&`T!``````` ++M$/`#``````#@\`,``````/#+`P```````.@#````````^0,``````!#[`P`` ++M````T/L#``````#X_________X!B!@```````/`#``````"P0P0``````-#P ++M`P``````L/0#```````0S`,``````/#_________@&(&``````"0R0,````` ++M`/#*`P``````(``$``````!PZ`,``````.C_________@&(&``````!PR`,` ++M`````-#*`P``````(/\#``````!@^0,``````.#_________@&(&```````0 ++MRP,``````##+`P``````,!`$``````#`]`,```````#U`P``````H/P#```` ++M``!@_0,`````````````````^&(&``````!@+P,``````%`S`P``````<(`# ++M``````"@2@,``````)`S`P``````T)T#``````#`-@,``````*"'`P`````` ++M0,(#```````@-P,``````'`T`P``````^/_________X8@8``````%`R`P`` ++M````@#,#``````#`=`,``````!#&`P``````\/_________X8@8``````%`Q ++M`P``````<#,#````````<`,``````!`X`P``````Z/_________X8@8````` ++M`%`P`P``````8#,#```````P:P,``````)`T`P````````````````!@8P8` ++M`````)"8`@``````()D"``````"0'0,``````!"W`@````````````````#` ++M8P8``````/"6`@``````<)@"``````#PO`(```````#1`@``````P+`"```` ++M``"@F0(``````%#!`@```````!X#``````#PH0(``````+"9`@``````P)D" ++M``````"PF0(``````,"9`@``````()H"``````!@F@(``````+"9`@`````` ++MX)D"``````#X_________\!C!@``````L)<"``````"`F`(``````("]`@`` ++M````0)H"``````#0F@(``````-"9`@```````)H"`````````````````!AD ++M!@``````8)8"``````#@E@(``````/"<`@``````T*<"```````````````` ++M`%!D!@``````\)4"``````!0E@(``````&"G`@````````````````"(9`8` ++M`````$"5`@``````P)4"``````"0G`(``````-"5`@````````````````#0 ++M9`8``````+"2`@``````$),"```````PDP(``````/#P`@``````@/4"```` ++M``!@DP(``````$"N`@``````,*\"``````!`QP(``````,#Y`@``````H)," ++M````````K`(``````."M`@``````^/_________09`8``````-"M`@`````` ++M$*X"``````!P]0(``````+#Y`@``````@),"```````@KP(``````+"P`@`` ++M````X,@"```````@"@,``````,"3`@`````````````````X908``````+"H ++M`@``````T*L"```````0S@(`````````````````Z&4&``````#@*`,````` ++M`!`O`P``````L#T#``````!@2P,``````+!+`P``````(%`#``````!PC`,` ++M`````$`\`P``````8#P#````````30,``````*!-`P``````^/_________H ++M908``````-`M`P``````4"\#``````!P1`,``````#!3`P``````()4#```` ++M``#P_________^AE!@``````D"P#``````!`+P,``````,!"`P``````($T# ++M``````#H_________^AE!@``````4"L#```````P+P,``````!!!`P`````` ++M4$\#``````#@_________^AE!@``````$"H#```````@+P,``````&`_`P`` ++M````4#P#``````!P/`,`````````````````D&8&```````0$@(``````)`3 ++M`@``````4)T"```````P"@,```````"<`@``````D)("``````"PI@(````` ++M`$"Q`@``````0*$"````````D@(``````!"2`@```````)("``````!0D@(` ++M`````%#N`@``````^/________^09@8``````-`2`@``````H!,"```````P ++MG@(``````.#P`@``````X$L&``````"H208``````#`X!@``````P#@&```` ++M``!`2`8``````*A*!@``````2$L&```````81P8``````+!'!@``````F$4& ++M``````!P1@8`````````````````B&<&```````@.0,``````!`[`P`````` ++M($8#``````"@B@,``````#"+`P``````L(L#``````#X_________XAG!@`` ++M````$#H#```````@.P,``````&!(`P``````$(P#`````````````````-!G ++M!@``````T`,"```````P!`(``````+`D`@```````'0"```````````````` ++M``AH!@``````@"@#``````#0*`,``````(`\`P````````````````!`:`8` ++M`````)`0`@``````(!$"``````#0*`(``````-!/`@``````J$H&``````!( ++M2P8``````.A,!@``````T&@&``````!`2`8``````!A'!@``````L$<&```` ++M``"8108``````'!&!@````````````````#S604````````````````````` ++M``````#U604```````````````````````````"Q6P4````````````````` ++M``````````"T6P4```````````````````````````"V6P4```````(``0`` ++M``````````````"X6P4```````(``0`````````````````````````````` ++M````````-UD%``````!&604```````!E!0``````NEL%``````#76P4````` ++M`/1;!0``````.&4%```````.7`4``````"%<!0``````!%D%```````U7`4` ++M````````````````ME<%``````!(7@4``````!A@!0``````1EH%```````( ++M7@4``````#]<!0``````25P%```````I7P4``````%!<!0``````7%P%```` ++M``!G7`4``````&]<!0``````>%P%``````"!7`4``````(=<!0``````D5P% ++M``````";7`4``````*A<!0``````M%P%``````#$7`4``````$I=!0`````` ++MR%P%``````#R6`4``````,U<!0``````U5P%``````#A7`4``````.9<!0`` ++M````[%P%``````#?7@4``````/)<!0``````^UP%```````'704```````]= ++M!0``````%5T%```````=704``````"1=!0``````2UH%```````P704````` ++M`#9=!0``````/5T%``````!%704``````$]=!0``````5ET%``````!A704` ++M`````+9>!0``````95T%``````!R704``````'M=!0``````BUT%``````!% ++M7P4``````)M=!0``````IET%``````"Z704``````,9=!0``````RUT%```` ++M```Y7`4``````-E=!0``````Y%T%``````#O704``````/Q=!0```````EX% ++M```````-7@4``````!9>!0``````(EX%```````S7@4``````#=>!0`````` ++M/UX%``````!$7@4``````$I>!0``````4EX%```````=6P4``````!U;!0`` ++M````75X%``````!F7@4``````'A>!0``````;EX%``````"`7@4``````)=> ++M!0``````I%X%``````"P7@4``````,1>!0``````T5X%``````#97@4````` ++M`.=>!0``````\5X%``````!@904```````5?!0``````4EH%```````;7P4` ++M`````-1=!0``````+E\%```````X7P4``````#Y?!0``````2%\%``````!2 ++M7P4``````%M?!0``````95\%``````!Q7P4``````'A?!0``````B5\%```` ++M``"17P4``````)I?!0``````IU\%``````"T7P4``````+Y?!0``````F$4& ++M``````!P1@8``````$!(!@``````X&D&``````!X:08````````````````` ++M```````````(0`T`!P8``(AP!@```````6`%```````!8`4````````````` ++M`````0``````````90,````````````````````````````````````````` ++M````````````````````````Z@``````````````^ED%``````#]7P4````` ++M```````````````````````@HP(````````````````````````````````` ++M````````````````````````````9@(``````````````````0?Q!@`````$ ++M8`4```````$````!````````````````````````````````````4%`"```` ++M``````````````$$`P``````"F`%```````!```````````````````````` ++M`````````````````$!'`@`````````````````!`0,```````]@!0`````` ++M`0````````````````````````````````````````"01@(````````````` ++M````(0`````````48`4```````$````````````````````````````````` ++M````````D%@!``````````````````,`````````&F`%```````!`````0`` ++M`````````````````````````````````"!8`0``````(%@!```````````` ++M`````"!@!0```````0````````````````````````````````````````#0 ++M5P$`````````````````"P`````````E8`4```````$````!```````````` ++M````````````````````````@%<!``````````````````H`````````*V`% ++M```````!`````0```````````````````````````````````$!6`0`````` ++M```````````%`@,#`````#%@!0```````0````$```"`5@$````````````` ++M`````00#`P`````U8`4```````$````!````P%8!``````````````````$% ++M`P,`````.F`%```````!`````0````!7`0`````````````````!!P,#```` ++M`#Y@!0```````0````$```!`5P$`````````````````!0@#`P````!#8`4` ++M``````$````!`````````````````````````````````````%8!```````` ++M``````````,!`P,`````26`%```````!`````0`````````````````````` ++M`````````````'!5`0`````````````````;`0,#`````$U@!0``````!``` ++M`````````````````(!J!@``````X`("```````P`P(``````'`D`@`````` ++M\&P"```````P-@8``````,@V!@``````*#<&``````"H208``````-`]!@`` ++M````J#X&```````0/P8``````'@_!@``````V#\&``````!`0`8``````)A% ++M!@``````<$8&``````!`2`8``````*A*!@``````2$L&``````#@2P8````` ++M````````````8%`%``````"`6P8`````````````````@%`%``````"`6P8` ++M````````````````H%`%```````!````"````+A8!@```````@````````!( ++M608```````((````````B%H&```````"$````````(A8!@```````A@````` ++M``!86@8```````(@````````<%<&```````"*````````%A7!@```````C`` ++M``````"06P8```````(X``````````````````#`4`4````````````````` ++MX%`%```````!````!````.!9!@```````@````````!(608```````((```` ++M````D%L&```````"$````````"!8!@```````!0```````````````````!1 ++M!0``````@%L&`````````````````#!1!0``````@%L&```````````````` ++M`%!1!0``````@%L&`````````````````'!1!0```````0````8```"X6`8` ++M``````(`````````H%@&```````""````````*!;!@```````A````````"( ++M6@8```````(8````````B%@&```````"(````````)!;!@```````B@````` ++M`````````````*!1!0``````@%L&`````````````````-!1!0```````0`` ++M``,```#@608```````(`````````2%D&```````""````````)!;!@`````` ++M`A```````````````````/!1!0````````````(```#@608```````(````` ++M````D%L&```````""```````````````````$%(%``````"`6P8````````` ++M````````,%(%`````````````@```.!9!@```````@````````"06P8````` ++M``((``````````````````!04@4`````````````````@%(%```````P6@8` ++M````````````````L%(%``````"`6P8`````````````````X%(%``````"` ++M6P8`````````````````$%,%``````"`6P8`````````````````,%,%```` ++M``"`6P8`````````````````4%,%```````!````!@```*!:!@```````@`` ++M``````"(6@8```````((````````<%H&```````"$````````%A:!@`````` ++M`A@```````"06P8```````(@````````0%H&```````"*``````````````` ++M````<%,%``````"`6P8`````````````````D%,%`````````````@```#!; ++M!@```````@````````"06P8```````((``````````````````"H4P4````` ++M````````````P%,%`````````````````-!3!0``````@%L&```````````` ++M`````/!3!0````````````(```"@6P8```````(`````````D%L&```````" ++M"```````````````````J&@%`````````````@```&!=!@```````@`````` ++M``"06P8```````((``````````````````#`:`4``````(!;!@`````````` ++M``````#@:`4````````````"````*%P&```````"`````````)!;!@`````` ++M`@@```````````````````!I!0````````````(```"@6P8```````(````` ++M````D%L&```````""```````````````````(&D%```````P6P8````````` ++M````````,&D%`````````````@```+!<!@```````@````````"06P8````` ++M``((``````````````````!0:04``````(!;!@````````````````!P:04` ++M`````(!;!@````````````````"0:04``````(!;!@````````````````"P ++M:04``````(!;!@````````````````#(:04``````*!;!@`````````````` ++M``#@:04```````$````&````8%T&```````"`````````$A=!@```````@@` ++M```````P708```````(0````````&%T&```````"&`````````!=!@`````` ++M`B````````"06P8```````(H``````````````````#P:04````````````` ++M````$&H%``````"`6P8`````````````````,&H%``````"`6P8````````` ++M````````4&H%``````"`6P8`````````````````<&H%``````"`6P8````` ++M````````````D&H%```````!````#@```+A8!@```````@````````!(7@8` ++M``````((````````,%X&```````"$````````*!8!@```````A@```````"@ ++M6P8```````(@````````&%X&```````"*````````#!;!@```````C`````` ++M````7@8```````(X````````6%H&```````"0````````.!?!@```````D@` ++M``````!P7P8```````)0````````2%D&```````"6````````)!;!@`````` ++M`F````````#P708```````)H``````````````````"@:@4``````(A?!@`` ++M``````````````#`:@4``````(!;!@````````````````#@:@4```````$` ++M```#````X%D&```````"`````````'!?!@```````@@```````"06P8````` ++M``(0````````````````````:P4`````````````````(&L%``````"`6P8` ++M````````````````0&L%```````!````!````.!9!@```````@````````#@ ++M7P8```````((````````D%L&```````"$````````-!?!@```````A@````` ++M`````````````&!K!0```````0````(```#X7P8```````(`````````2%D& ++M```````"F```````````````````@&L%```````!````!0```+A8!@`````` ++M`@````````!(608```````((````````B%H&```````"$````````(A8!@`` ++M`````A@```````"06P8```````(@``````````````````"@:P4```````$` ++M```&````N%@&```````"`````````$A9!@```````@@```````"(6@8````` ++M``(0````````B%@&```````"&````````%A:!@```````B````````"06P8` ++M``````(H``````````````````#X7P8````````````````````````````` ++M`````````/!=`@```````/P!````````70(````````````````````````` ++M``#X__________A?!@``````````````````````````````````````X%T" ++M`````````````````/!M!0`````````````````@;@4``````(!;!@`````` ++M``````````!0;@4`````````````````@&X%``````!P908````````````` ++M````H&X%``````"`6P8`````````````````T&X%``````!P908````````` ++M````````\&X%``````#H808`````````````````$&\%```````!````!@`` ++M`"!B!@```````@`````````08@8```````((````````^&$&```````"$``` ++M`````(AE!@```````A@```````!H8@8```````(@````````D%L&```````" ++M,`$`````````````````,&\%```````!````!0```%!B!@```````@`````` ++M```X8@8```````((````````B&4&```````"$````````"A<!@```````A@` ++M``````"06P8```````(@``````````````````!@;P4````````````"```` ++M,%L&```````"`````````)!;!@```````@@``````````````````*!O!0`` ++M``````````````#`;P4``````(!;!@````````````````#@;P4```````$` ++M```$````>&8&```````"`````````*AC!@```````@@```````"06P8````` ++M``(0````````F&,&```````"&````````````````````'`%```````````` ++M`@```*!;!@```````@````````"06P8```````((``````````````````!` ++M<`4````````````"````@%L&```````"`````````)!;!@```````@@````` ++M`````````````'!P!0````````````(````H7`8```````(`````````D%L& ++M```````""```````````````````D'`%`````````````````+!P!0`````` ++M``````,```"`6P8```````(`````````P&0&```````""````````)!;!@`` ++M`````I```````````````````-!P!0````````````````#H<`4````````` ++M`````````'$%`````````````@```!AE!@```````O`````````H908````` ++M``(````````````````````@<04``````(!;!@`````````````````P<04` ++M`````(!;!@````````````````!@<04``````(!;!@````````````````"` ++M<04``````(!;!@````````````````"@<04``````(!;!@`````````````` ++M``#`<04```````$````&````T&4&```````"`````````+AE!@```````@@` ++M``````"@908```````(0````````B&4&```````"&````````'!E!@`````` ++M`B````````"06P8```````(H``````````````````#@<04``````(!;!@`` ++M``````````````#X<04``````(!;!@`````````````````0<@4```````$` ++M```#````>&8&```````"`````````&!F!@```````@@```````"06P8````` ++M``(0``````````````````"`;04`````````````````P&T%``````#89@8` ++M````````````````P&0&````````````````````````````P*,"```````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````*&4&```````````````````````````````` ++M`````````````````%!T!0```````0````,```!@708```````(````````` ++M2%T&```````""````````)!;!@```````A```````````````````'!T!0`` ++M``````````(````P6P8```````(`````````D%L&```````""``````````` ++M````````B'0%`````````````@```(!;!@```````@````````"06P8````` ++M``((``````````````````"@=`4````````````"````,%L&```````"```` ++M`````)!;!@```````@@``````````````````*AC!@`````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````'AF!@`````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````````````(AE!@`` ++M`````````````````````````````````````````````````````````/AA ++M!@`````````````````````````````````````````````````````````` ++M`!!B!@`````````````````````````````````````````````````````` ++M````````````````(&(&```````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````'AX!0````````````````"(>`4`````````````````H'@% ++M`````````````````,!X!0````````````````#@>`4``````#AJ!@`````` ++M````````````>@4````````````"````H%L&```````"`````````)!;!@`` ++M`````@@````````!``````````(%`````````0`````````1!0````````$` ++M````````'P4````````,``````````"@````````#0`````````P2`4````` ++M`!D`````````"#8&```````;`````````!``````````&@`````````8-@8` ++M`````!P`````````"`````````#U_O]O`````+`#````````!0````````#X ++M#0````````8`````````V`,````````*`````````-$%````````"P`````` ++M```8`````````!4````````````````````#`````````,AL!@```````@`` ++M``````!`"````````!0`````````!P`````````7`````````.B1```````` ++M!P````````#(%0````````@`````````('P````````)`````````!@````` ++M````'@`````````(`````````/O__V\``````0``"`````#^__]O`````*@4 ++M````````____;P`````#`````````/#__V\`````RA,```````#Y__]O```` ++M`(0$```````````````````````````````````````````````````````` ++M``````````````````````````````````````````````````````````"X ++M:@8````````````````````````````VH````````$:@````````5J`````` ++M``!FH````````':@````````AJ````````"6H````````*:@````````MJ`` ++M``````#&H````````-:@````````YJ````````#VH`````````:A```````` ++M%J$````````FH0```````#:A````````1J$```````!6H0```````&:A```` ++M````=J$```````"&H0```````):A````````IJ$```````"VH0```````,:A ++M````````UJ$```````#FH0```````/:A````````!J(````````6H@`````` ++M`":B````````-J(```````!&H@```````%:B````````9J(```````!VH@`` ++M`````(:B````````EJ(```````"FH@```````+:B````````QJ(```````#6 ++MH@```````.:B````````]J(````````&HP```````!:C````````)J,````` ++M```VHP```````$:C````````5J,```````!FHP```````':C````````AJ,` ++M``````"6HP```````*:C````````MJ,```````#&HP```````-:C```````` ++MYJ,```````#VHP````````:D````````%J0````````FI````````#:D```` ++M````1J0```````!6I````````&:D````````=J0```````"&I````````):D ++M````````IJ0```````"VI````````,:D````````UJ0```````#FI``````` ++M`/:D````````!J4````````6I0```````":E````````-J4```````!&I0`` ++M`````%:E````````9J4```````!VI0```````(:E````````EJ4```````"F ++MI0`````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````"'`&```````!```````````````````` ++M````````````0@$``````-AF!@``````Z&8&``````!8:@8``````&AJ!@`` ++M````*&H&```````X:@8``````$AJ!@`````````````````````````````` ++M```````````````````X>KRO)QP``"]U<W(O;&EB+V1E8G5G+RYD=WHO>#@V ++M7S8T+6QI;G5X+6=N=2\W>FEP+F1E8G5G`*D+`T.DY+`LZI\=O3$;)XV=CAG^ ++M9#-C8S@S83!B93!C-S)F-C$T83(Y.31C,#-D,C8X-6)A8S,R8V,N9&5B=6<` ++M````<:Y#@``N<VAS=')T86(`+FYO=&4N9VYU+G!R;W!E<G1Y`"YN;W1E+F=N ++M=2YB=6EL9"UI9``N:6YT97)P`"YG;G4N:&%S:``N9'EN<WEM`"YD>6YS='(` ++M+F=N=2YV97)S:6]N`"YG;G4N=F5R<VEO;E]R`"YR96QA+F1Y;@`N<F5L82YP ++M;'0`+FEN:70`+G!L="YG;W0`+G1E>'0`+G1E>'0D3%I-041%0T]05``N9FEN ++M:0`N<F]D871A`"YE:%]F<F%M95]H9'(`+F5H7V9R86UE`"YG8V-?97AC97!T ++M7W1A8FQE`"YN;W1E+D%"22UT86<`+FYO=&4N<&%C:V%G90`N:6YI=%]A<G)A ++M>0`N9FEN:5]A<G)A>0`N9&%T82YR96PN<F\`+F1Y;F%M:6,`+F1A=&$`+F)S ++M<P`N9VYU7V1E8G5G86QT;&EN:P`N9VYU7V1E8G5G;&EN:P`````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````L````'`````@````````!0`P```````%`#````````(``` ++M``````````````````@````````````````````>````!P````(````````` ++M<`,```````!P`P```````"0````````````````````$```````````````` ++M````,0````$````"`````````)0#````````E`,````````<```````````` ++M`````````0```````````````````#D```#V__]O`@````````"P`P`````` ++M`+`#````````)``````````%``````````@```````````````````!#```` ++M"P````(`````````V`,```````#8`P```````"`*````````!@````$````( ++M`````````!@`````````2P````,````"`````````/@-````````^`T````` ++M``#1!0```````````````````0```````````````````%,```#___]O`@`` ++M``````#*$P```````,H3````````V``````````%``````````(````````` ++M`@````````!@````_O__;P(`````````J!0```````"H%````````"`!```` ++M````!@````,````(````````````````````;P````0````"`````````,@5 ++M````````R!4````````@?`````````4`````````"``````````8```````` ++M`'D````$````0@````````#HD0```````.B1````````0`@````````%```` ++M&P````@`````````&`````````"#`````0````8``````````*`````````` ++MH````````!L````````````````````$````````````````````?@````$` ++M```&`````````""@````````(*````````"0!0``````````````````$``` ++M```````0`````````(D````!````!@````````"PI0```````+"E```````` ++M"`````````````````````@`````````"`````````"2`````0````8````` ++M````P*4```````#`I0```````/./!`````````````````!````````````` ++M````````F`````$````&`````````,`U!0``````P#4%``````!O$@`````` ++M````````````0````````````````````*D````!````!@`````````P2`4` ++M`````#!(!0``````#0````````````````````0```````````````````"O ++M`````0````(``````````%`%````````4`4``````#`K```````````````` ++M``!`````````````````````MP````$````"`````````#![!0``````,'L% ++M``````!,&P``````````````````!````````````````````,4````!```` ++M`@````````"`E@4``````("6!0``````Y'4```````````````````@````` ++M``````````````#/`````0````(`````````9`P&``````!D#`8``````!\9 ++M```````````````````$````````````````````X0````<````"```````` ++M`(0E!@``````A"4&```````@````````````````````!``````````````` ++M`````.\````'`````@````````"D)08``````*0E!@``````W``````````` ++M``````````0```````````````````#]````#@````,`````````"#8&```` ++M```(-@8``````!`````````````````````(``````````@`````````"0$` ++M``\````#`````````!@V!@``````&```````(```````````````````` ++M"``````````(`````````!4!```!`````P`````````@-@8``````"`V!@`` ++M````F#0``````````````````"`````````````````````B`0``!@````,` ++M````````N&H&``````"X:@8``````!`"````````!@`````````(```````` ++M`!``````````C0````$````#`````````,AL!@``````R&P&```````H`P`` ++M````````````````"``````````(`````````"L!```!`````P`````````` ++M<`8```````!P!@``````D````````````````````!`````````````````` ++M```Q`0``"`````,`````````P'`&``````"0<`8``````,!6```````````` ++M``````!`````````````````````-@$```$````````````````````````` ++MD'`&``````!$`````````````````````0```````````````````$@!```! ++M`````````````````````````-1P!@``````-`````````````````````0` ++M```````````````````!`````P`````````````````````````(<08````` ++M`%<!```````````````````!````````````````````-WJ\KR<<``3#<#?! ++M!P````````!B`````````.6P&]H!``(Q,C,``00&``$)!P`'"P$``2$A`0`, ++M`P`("@'28TB(```%`1D,````````````````$1L`=`!E`',`=``N`'0`>`!T ++C`"X`=`!X`'0````9`!0*`0`C<8QTZ6_:`14&`0`@@+2!```` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_sfx_modified_pe.exe.uu +@@ -0,0 +1,109 @@ ++begin 664 test_read_format_7zip_sfx_modified_pe.exe ++M35J0``,````$````__\``+@`````````0``````````````````````````` ++M````````````````````@`````X?N@X`M`G-(;@!3,TA5&AI<R!P<F]G<F%M ++M(&-A;FYO="!B92!R=6X@:6X@1$]3(&UO9&4N#0T*)`````````!010``3`$# ++M`-9YE&0`"```6````.``!P,+`0(F``(````$`````````!`````0```````` ++M``!````0`````@``!`````$````$``````````!``````@``5ZL```,```$` ++M`"```!``````$```$````````!`````````````````P``!8```````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````P,```"``````````````` ++M`````````````````````"YT97AT````2``````0`````@````(````````` ++M`````````"```&`N<F1A=&$``#P`````(`````(````$```````````````` ++M``!```!`+FED871A``!8`````#`````"````!@``````````````````0``` ++MP`````````````````````!5B>6#[!C'1"0,0````,=$)`@`($``QT0D!`P@ ++M0`#'!"0`````H3`P0`#_T(/L$+@`````R<.0D/____\`````_____P`````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````$UE<W-A9V4@0F]X ++M`$AE;&QO(%=O<FQD(0````!'0T,Z("A'3E4I(#$P+7=I;C,R(#(P,C(P,3$S ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````*#``````````````3#```#`P```````````````````````````` ++M`#@P````````.#````````!-`DUE<W-A9V5";WA!`````#```%5315(S,BYD ++M;&P````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````N9FEL90````H```#^_P``9P%A<&E? ++M;65S<V%G95]B;P``````````!``````````!`"```@$````````````````` ++M```````N=&5X=``````````!`````P$V`````P`````````````````N<F1A ++M=&$````````"`````P$9````````````````````````````%````!P````" ++M`````P$=```````````````````````N9FEL90```!0```#^_P``9P%F86ME ++M``````````````````!H;F%M90```"@````#`````P!F=&AU;FL``#`````# ++M`````P`N=&5X=````#@````!`````P$````````````````````````N:61A ++M=&$D,@`````#`````P$4`````P`````````````````N:61A=&$D-"@````# ++M`````P`N:61A=&$D-3`````#`````P`N9FEL90```"4```#^_P``9P%F86ME ++M```````````````````N=&5X=````#@````!`````P$````````````````` ++M```````N:61A=&$D-"P````#`````P$$```````````````````````N:61A ++M=&$D-30````#`````P$$```````````````````````N:61A=&$D-TP````# ++M`````P$+```````````````````````N=&5X=````````````````P`N9&%T ++M80```````````````P`N8G-S`````````````````P`N:61A=&$D-T@````# ++M`````P`N:61A=&$D-3`````#`````P`N:61A=&$D-"@````#`````P`N:61A ++M=&$D-C@````#`````P``````'P```#P````"`````@``````/@`````````# ++M`````@``````5P`````````"`````@``````9@```$`````!`````@`````` ++M=0```$P````#`````@``````CP`````0```#`````@``````G@```#P````" ++M`````@``````L@`````!``#__P```@``````R@`````0``#__P```@`````` ++MXP``````(`#__P```@``````_0````0```#__P```@``````&0$````0```# ++M`````@``````*P$````0```#`````@``````/0$````0```#`````@`````` ++M30$````````#`````@``````6P$``#P````"`````@``````?@$````0``#_ ++M_P```@``````E@$```````#__P```@``````I@$````0```#`````@`````` ++MN`$````0```#`````@!?7V1L;%]?``````#__P```@``````R`$```````#_ ++M_P```@``````W0$`````0`#__P```@``````[`$````0``#__P```@`````` ++M`@(``#@````#`````@``````#@(``#P````"`````@``````+`(````````" ++M`````@``````.0(``#@````!`````@``````1P(````````#`````@`````` ++M4P(````0```#`````@``````8P(````0```#`````@``````=0(``#@````! ++M`````@``````A`(```````#__P```@``````EP(``#`````#`````@`````` ++MK0(````"``#__P```@``````P`(```0```#__P```@``````U0(``#`````# ++M`````@!?7V5N9%]?```0```#`````@``````XP(``$`````!`````@`````` ++M\0(`````$`#__P```@``````"@,````0```#`````@``````'`,`````0`#_ ++M_P```@``````*0,```,```#__P```@``````-P,````0```#`````@`````` ++M1`,```$```#__P```@``````7`,```````#__P```@``````;0,``#P````" ++M`````@``````?P,```````#__P```@``````FP,```````#__P```@`````` ++MLP,``#P````"`````@``````U0,````0```#`````@#E`P``7VUA:6Y#4E13 ++M=&%R='5P`"YR9&%T821Z>GH`7U]?4E5.5$E-15]04T551$]?4D5,3T-?3$E3 ++M5%]?`%]?:&5A9%]L:6(S,E]L:6)U<V5R,S)?80!?7V1A=&%?<W1A<G1?7P!? ++M7U]$5$]27TQ)4U1?7P!?7VQI8C,R7VQI8G5S97(S,E]A7VEN86UE`%]?7W1L ++M<U]S=&%R=%]?`%]?<G1?<'-R96QO8W-?<W1A<G0`7U]D;&Q?8VAA<F%C=&5R ++M:7-T:6-S7U\`7U]S:7IE7V]F7W-T86-K7V-O;6UI=%]?`%]?<VEZ95]O9E]S ++M=&%C:U]R97-E<G9E7U\`7U]M86IO<E]S=6)S>7-T96U?=F5R<VEO;E]?`%]? ++M7V-R=%]X;%]S=&%R=%]?`%]?7V-R=%]X:5]S=&%R=%]?`%]?7V-R=%]X:5]E ++M;F1?7P!?7V)S<U]S=&%R=%]?`%]?7U)53E1)345?4%-%541/7U)%3$]#7TQ) ++M4U1?14Y$7U\`7U]S:7IE7V]F7VAE87!?8V]M;6ET7U\`7TUE<W-A9V5";WA! ++M0#$V`%]?7V-R=%]X<%]S=&%R=%]?`%]?7V-R=%]X<%]E;F1?7P!?7VUI;F]R ++M7V]S7W9E<G-I;VY?7P!?7VEM86=E7V)A<V5?7P!?7W-E8W1I;VY?86QI9VYM ++M96YT7U\`7U])051?96YD7U\`7U]254Y424U%7U!3155$3U]214Q/0U],25-4 ++M7U\`7U]D871A7V5N9%]?`%]?0U1/4E],25-47U\`7U]B<W-?96YD7U\`7U]? ++M8W)T7WAC7V5N9%]?`%]?7V-R=%]X8U]S=&%R=%]?`%]?7T-43U)?3$E35%]? ++M`%]?<G1?<'-R96QO8W-?<VEZ90!?7VEM<%]?365S<V%G94)O>$%`,38`7U]F ++M:6QE7V%L:6=N;65N=%]?`%]?;6%J;W)?;W-?=F5R<VEO;E]?`%]?24%47W-T ++M87)T7U\`7U]$5$]27TQ)4U1?7P!?7W-I>F5?;V9?:&5A<%]R97-E<G9E7U\` ++M7U]?8W)T7WAT7W-T87)T7U\`7U]?26UA9V5"87-E`%]?<W5B<WES=&5M7U\` ++M7U]?=&QS7V5N9%]?`%]?;6%J;W)?:6UA9V5?=F5R<VEO;E]?`%]?;&]A9&5R ++M7V9L86=S7U\`7U]R=%]P<W)E;&]C<U]E;F0`7U]M:6YO<E]S=6)S>7-T96U? ++M=F5R<VEO;E]?`%]?;6EN;W)?:6UA9V5?=F5R<VEO;E]?`%]?4E5.5$E-15]0 ++M4T551$]?4D5,3T-?3$E35%]%3D1?7P!?7U]C<G1?>'1?96YD7U\`-WJ\KR<< ++M``272;_;!P````````!B``````````VH&AD!``(Q,C,``00&``$)!P`'"P$` ++M`2$A`0`,`P`("@'28TB(```%`1D,````````````````$1L`=`!E`',`=``N ++I`'0`>`!T`"X`=`!X`'0````9`!0*`0`C<8QTZ6_:`14&`0`@```````` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_sfx_pe.exe.uu +@@ -0,0 +1,4751 @@ ++begin 644 test_read_format_7zip_sfx_pe.exe ++M35J0``,````$````__\``+@`````````0``````````````````````````` ++M````````````````````"`$```X?N@X`M`G-(;@!3,TA5&AI<R!P<F]G<F%M ++M(&-A;FYO="!B92!R=6X@:6X@1$]3(&UO9&4N#0T*)`````````!^M*<5.M7) ++M1CK5R48ZU<E&5<K"1CG5R4:YR<=&,M7)1E7*PT8QU<E&5<K-1CC5R4:TW99& ++M.=7)1CK5R$:-U<E&N=V41C?5R48,\\)&9M7)1@SSPT8XU<E&(4AC1C75R4:Y ++M4\U'.-7)1J*GRD<YU<E&_=//1CO5R492:6-H.M7)1@``````````4$4``$P! ++M!0`@`4IG``````````#@`"\!"P$&``"J`@``Z@```````,R$`@``$````,`" ++M````0```$`````(```0`````````!```````````T`,```0````````"```! ++M```0```0`````!```!`````````0```````````````4&P,`C`````"@`P#X ++M)@`````````````````````````````````````````````````````````` ++M`````````````````````````````````````````,`"`&@"```````````` ++M```````````````````````N=&5X=````,6I`@``$````*H"```$```````` ++M```````````@``!@+G)D871A``#,9P```,`"``!H````K@(````````````` ++M````0```0"YD871A````)%8````P`P```@```!8#`````````````````$`` ++M`,`N<WAD871A``0`````D`,```(````8`P````````````````!``@#`+G)S ++M<F,```#X)@```*`#```H````&@,`````````````````0```0``````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````+C0ED(`Z`9Q`@!1 ++MBT4(4U97B67PH\0Q0P#H6P```(3`=2"ZT,9"`#/)Z)+B``!J`EB+3?1?7F2) ++M#0````!;R<(0`(-E_`#H%0D"`.B8````Z]^Y#@`'@.A3````N&(00`##:@CK ++MRHL5D,9"`#/)Z$WB``"X+A!``,-5B^R![!0!``"-A>S^___'A>S^__\4`0`` ++M4/\5_,!"`(7`=`Z#O?S^__\"=05J`5C)PS/`R<.XY)9"`.A7<`(`@^P,B]&- ++M3>CH=3L!`(L0@V7\`#/)Z.WA``#_=>CHO@\``%F+3?1DB0T`````R<.XBY=" ++M`.@><`(`@>P,`0``4S/;5E/_%6#"0@"-38CHWA0``(U-H(E=_(A=\XA=\>C- ++M%```C4VLQD7\`>C/?`$`QD7\`O\5^,!"`%"-3;CH\10``(U5K(U-N,9%_`/H ++M&PT``/]UN,9%_`+H0P\``#E=L%EV"5.-3:SH7PD``#/V.5VP=GF+1:R+!+"+ ++M4`2#^@%V98L`9H,X+75=9HM(`F:#^4%R"6:#^5IW`X/!(&:#^7EU#X/Z`L9% ++M\P$/A8P```#K-6:#^6]U'8/`!(U-H%#H;!4``(U-H.CO/```.5VD#Y5%\>L2 ++M9H/Y<'4,@\`$C4V(4.A)%0``1CMUL'*'BD7S5XU-E*+`,4,`Z/,3``"-393& ++M1?P$Z-0G``"-C7S____HW!,``(M-E(V5?/___\9%_`7HKRL``(3`=26Z8,=" ++M`#/)Z)'@``#I)`$``+I(QT(`,\GH@.```&H!6^GT`P``:ACH%@X``%F)1>@[ ++MP\9%_`9T"XO(Z#<%``"+^.L",_\[^\9%_`6)O6S___]T!HL'5_]0!(O/QD7\ ++M!^A=N@``.\-T#(O(Z!W^___ILP```&B@````Z,0-``!9B47H.\/&1?P(=`N+ ++MR.@+!@``B_#K`C/V._/&1?P'B77L=`:+!E;_4`2+SL9%_`GH6/T``#E=C(U. ++M6`^5P(A&(8U%B%#HH10``(V-'/___^CS!```C4W<QD7\"NCG$@``BTV4C57< ++MQD7\"^CF*P``A,!U2KHLQT(`,\GHG]\``/]UW.AP#0``6<9%_`F-C1S____H ++M;P4``(M%[,9%_`<[PW0&BPA0_U$(._O&1?P%=`:+!U?_4`AJ`>G&`@``.%WQ ++MC46@=0.-1=Q0C8U,____Z!84``"*1?,SR3K#B(5F____#Y7!B8TH____C4W$ ++MB9TD____B)UG____Z%=Z`0"-3=#&1?P,Z$MZ`0"-3<3&1?P-Z+\(``"-A7S_ ++M__^-3<10Z"D)``"-3=#HJ`@``(V%?/___XU-T%#H$@D``(V-Z/[__^CS`@`` ++MC8WH_O__QD7\#N@4`P``B%WRB5VXB5V\B5W`C8UP____QD7\#^CD>0$`.%WS ++M4XU%\E90C95P____#Y3`4(V%'/___U"-A>C^__]0C4704(U%Q%"-1;A0B\_& ++M1?P0Z+H^`0"-C7#___^)1>C&1?P/Z&$'``#_=;C&1?P.Z#`,``!9BTWH.\L/ ++MA<H````Y7BAU!3A>'W19C8WH_O__QD7\#>CH!0``C4W0QD7\#.@(NP$`C4W$ ++MQD7\"^C\N@$`_W7<Z.L+``!9QD7\"8V-'/___^CJ`P``BT7LQD7\!SO##X1( ++M`0``BPA0_U$(Z3T!``"-C>C^___&1?P-Z(\%``"-3=#&1?P,Z*^Z`0"-3<3& ++M1?P+Z*.Z`0#_==SHD@L``%G&1?P)C8T<____Z)$#``"+1>S&1?P'.\-T!HL( ++M4/]1"#O[QD7\!0^$\@```(L'5_]0".GG````@?D$0`"`=66-C>C^___&1?P- ++MZ"`%``"-3=#&1?P,Z$"Z`0"-3<3&1?P+Z#2Z`0#_==SH(PL``%G&1?P)C8T< ++M____Z"(#``"+1>S&1?P'.\-T!HL(4/]1"#O[QD7\!70&BP=7_U`(N_\```#K ++M>CA=\@^%N@```(/Y`0^%K````+H(QT(`,\GH]MP``(V-Z/[__\9%_`WHG00` ++M`(U-T,9%_`SHO;D!`(U-Q,9%_`OHL;D!`/]UW.B@"@``6<9%_`F-C1S____H ++MGP(``(U-[,9%_`?HD5(!`#O[QD7\!70&BP=7_U`(:@);_[5\____Z&@*``#_ ++M=93H8`H``%E97XU-K,9%_`'H6KD!`/]UH.A)"@``_W6(Z$$*``!9B\-97HM- ++M]%MDB0T`````R</H0/K__X%]Z`X`!X`/A4[___^-C>C^___&1?P-Z.L#``"- ++M3=#&1?P,Z`NY`0"-3<3&1?P+Z/^X`0#_==SH[@D``%G&1?P)C8T<____Z.T! ++M``"-3>S&1?P'Z-]1`0`[^\9%_`5T!HL'5_]0"&H(Z4G___]6B_%7,_^-3@2) ++M/NC]#@``B7X0B7X4B7X8B7X<B7X@B7XDB7XHB7XLB7XPB\9?7L.XJ)="`.CZ ++M:0(`@^P<4S/;5HOQB5W8B5W<B5W@:'S'0@"-3>B)7?SH]`X``(U-V,9%_`'H ++M,P4``(U%Z(U-V%#HH`4``/]UZ(A=_.@^"0``68U%V&K_4&H!B\Z(7>3&1>4! ++MQD7F`<9%YP'H21T``(--_/^-3=CH'+@!`(M-]%Y;9(D-`````,G#Z0FX`0"+ ++MP3/)B4@$B4@(B4@,B4@0B$@4B$@5QP"`QT(`PU:+="0(_TX$BT8$=12%]G0. ++MB\[H#0```%;HQ0@``%DSP%["!`#'`8#'0@"#P0CICP,``%:+\>@2````,L"( ++M1DB(1DF(1DJ(1DN+QE[#N+^70@#H`VD"`%%35HOQ,]N)=?"-3AB('HA>`8A> ++M`HA>`XA>!(A>!8E>"(E>#(E>$.@C````C4XPZ*@-``"-3CR)7?SHG0T``(M- ++M](O&7EMDB0T`````R<.+P3+)B`B(2`&(2`*(2`.(2`2(2`6(2`:(2`>(2`B( ++M2`F#2!#_@T@4_XA("HA("XA(#(A(#HA(#\9``@&(2`3&0`8!QD`(`<9`#0'# ++M5HOQ_W8\Z.8'``#_=C#HW@<``%E97L.X)YA"`.A':`(`45-6B_$SVXEU\,<& ++M&,A"`,=&#`C(0@#'1A#XQT(`B5X4C4XPB%X:B%X;B%X<QD8=`8A>'HA>'XA> ++M((A>(8A>(HA>(XA>)(E>+.C2#```C4X\B5W\Z,<,``"-3DC&1?P!Z+L,``"- ++M3EC&1?P"Z*\,``"-3F3&1?P#Z*,,``"-3G#&1?P$Z)<,``"-3GS&1?P%Z(L, ++M``"-CH@```#&1?P&Z'P,``"-CI0```#&1?P'Z&T,``"+3?3'!M3'0@#'1@3` ++MQT(`QT8(K,="`,=&#)S'0@#'1A",QT(`B\9>6V2)#0````#)PU6+[%:+=1!7 ++MBWT,@R8`:A!H$.!"`%?H;6<"`(/$#(7`=0>+10B)!NM6:A!H4,9"`%?H4F<" ++M`(/$#(7`=.5J$&A@QD(`5^@^9P(`@\0,A<!U"HM%"(O(C5`,ZQQJ$&CPQ$(` ++M5^@@9P(`@\0,A<!U%XM%"(O(C5`0]]D;R2/*B0[_0!0SP.L%N`)``(!?7EW" ++M#`"+1"0$_T`4BT`4P@0`5HMT)`C_3A2+1A1U%(7V=`Z+SNA2]0``5N@O!@`` ++M63/`7L($`.DR_O__N%680@#HD&8"`%%6B_&)=?"-3BC'1?P"````Z*X```"- ++M3AS&1?P!Z*(```"`9?P`C4X0Z$4```#_=@3HXP4``%E>BTWT9(D-`````,G# ++M4XM<)`A65XOYBP>+-)B%]G0/_S;HO`4``%;HM@4``%E94XO/Z,X!``!?7EO" ++M!`"X:)A"`.@39@(`4597B_F)??"+=P2#9?P`A?9T'E.+!TZ+'+"%VW0.B\OH ++M5/___U/H<04``%F%]G7D6_\WZ&0%``!97XM-]%YDB0T`````R<-65XOYBW<$ ++MA?9T'E.+!TZ+'+"%VW0.B\OH0;0!`%/H,@4``%F%]G7D6_\WZ"4%``!97U[# ++MN'R80@#HCF4"`%%65XOYB7WP@V7\`(MW!(7V=!.+!TZ+#+"%R73R:@'H/``` ++M`.OI_S?HZ@0``%E?BTWT7F2)#0````#)PU97B_F+=P2%]G0.BP=._S2PZ,4$ ++M``!9Z^[_-^B[!```65]>PU:+\>@4````]D0D"`%T!U;HH@0``%F+QE["!`"X ++MDYA"`.@(90(`45:+\8EU\(-E_`"-3ASH%@```/]V$.AV!```65Z+3?1DB0T` ++M````R<.XJ)A"`.C59`(`4597B_F)??"#9?P`BW<$A?9T$XL'3HL,L(7)=/)J ++M`>BR.P$`Z^G_-^@Q!```65^+3?1>9(D-`````,G#58OL45:+<0@Y<01U-+K_ ++M__]_._)R%8U%_&BPXT(`4,=%_.4'``#HCF0"`(O&*];!Z`)`.\)V`HO"`_!6 ++MZ(8```!>R<.+5"0$5HOQ5XU*`8OYBP9I_____S\#?@2-#(B-!)#!YP)745#_ ++M%6C!0@"#Q`S_3@1?7L($`+B^F$(`Z!9D`@!15HOQ:@SH8`,``%F+R(E-\(-E ++M_`"%R70,_W4(Z*$)``"+R.L",\F+1@2-4`&)5@2+%EZ)#(*+3?1DB0T````` ++MR<($`%.+7"0(N/___S]6.]A7B_%W`HO#P>`"4.@*`P``B_B+1@2%P%ET#\'@ ++M`E#_-E?HT6,"`(/$#/\VZ!X#``!9B3Z)7@A?7EO"!`"#;"0$#.D=_/__@VPD ++M!`SIL?S__X-L)`00Z0G\__^#;"0$$.F=_/__Z0````#I%V("`%6+[%%14U97 ++MB_*+^3/`BPZ)1@0@1?\SVV:)`8M-"(L1B4$$9HD".4<$=ER+!V:+%%AF@_H@ ++MB57X=`9F@_H)=0:`??\`=%%F@_HB=0R`??\`#Y3`B$7_ZR>+1@@[1@1U"HO. ++MZ!@&``"+5?B+1@2+#F:)%$%`9H,D00"+30B)1@1#.U\$<J8SP#/).]@/E<&* ++MP5]>6\G"!`"+!XU$6`)0Z,P(```SP(7;#Y7`Z^2XX)A"`.BA8@(`@^PD5E&+ ++M\HU-W.@^"```@V7\`(U-W.@A#0``C4W<Z,X,``"+SNB/````C4W0Z$@'``"- ++M3>C&1?P!Z#P'``"-1>B-5=!0C4W<QD7\`NCY_O__A,!T$HO.Z*S]__^-1="+ ++MSE#H&O[__X-][`!T)(U%Z(U-W%#HI`@``/]UZ.BI`0``_W70@&7\`.B=`0`` ++M65GKF?]UZ.B1`0``_W70Z(D!``#_==SH@0$``(M-](/$#&2)#0````!>R<-6 ++M5XOYBW<$A?9T'U.+!TZ+'+"%VW0/_S/H5`$``%/H3@$``%E9A?9UXUN#9P0` ++M7U[#58OL@^P05H/Y"HOR<PJ#P3!FB0Y&1NL[4U<S_VH*B\$STEOW\T=3B\%9 ++M@,(PB%0]\#/2]_&+R#O+<^&#P3!FB0Y&1F8/MD0]\&:)!D9&3W7R7UMF@R8` ++MB\9>R<-5B^R#[!A3,]LY70Q6BW4(5XOY=Q)R!8/^_W<+B]>+SNA_____ZV,Y ++M70QW$7(%@_X*<PJ#QC!FB3='1^M':@!J"O]U#$-6Z#!C`@`$,&H`:@K_=0R( ++M1!WH5NBM8@(`A=*+\(E5#'?6<@6#_@ISSX/&,&:)-T='9@^V1!WH9HD'1T=+ ++M=?)F@R<`B\=?7EO)P@@`B\%"P>@$=?J`(@"+P4J#X`_!Z02*@$3(0@"(`G7M ++MPU6+[(-]"`!U!\=%"`$```#_=0C_%6#!0@"%P%EU%(I%"VA(Y$(`B$4+C44+ ++M4.B98`(`7</_="0$_Q5<P4(`6<-69HLQB\%F._)T#&:%]G0-0$!FBS#K[RO! ++M7M'XPX/(_U[#9HL!9H7`=!9F/4$`<@EF/5H`=P.#P"!FB0%!0>OBPU-55E>+ ++MVHOY9HLW9HL+1T=#0V8[\704Z"$```"+SF:+Z.@7````9CO%=0=FA?9T!NO6 ++M,L#K`K`!7UY=6\.+P68]80!R&F8]>@!W!(/`X,-F/7\`=@H/M\!0_Q4TPD(` ++MPXM4)`16BS&*`D*$P'0I9HL.1D9F@_E!<@EF@_E:=P.#P2`\07P&/%I_`@0@ ++M9@^VP&8[R'4&Z]"P`>L",L!>P@0`5HH"9@^V\&8[,74)A,!T"4)!0>OL,L!> ++MP[`!7L-65XH"9HLQ068/MOA!0F8[]W0J9H/^?W<K9H/^07()9H/^6HU^('8" ++MB_X\07P&/%I_`@0@9@^VP&8[^'4'9H7V=`;KOC+`ZP*P`5]>PU9FBP)"0F:% ++MP'0,9HLQ04%F._!U!NOJL`%>PS+`7L-6B@)"A,!T$&:+,4%F#[;`068[\'4& ++MZ^FP`5[#,L!>PU-55E>+^HO99HLW1T=FA?9T(&:+"T-#9CO.=.SHTO[__XO. ++M9HOHZ,C^__]F.^AU!NO6L`'K`C+`7UY=6\-14U565XOJB]EFBS-FBWT`0T-% ++M168[]W0;B\[HEO[__XO/B40D$.B+_O__9CE$)!!R"7<,9H7V=`SKSH/(_^L' ++M:@%8ZP(SP%]>75M9PU97BWPD#(OQ@R8`C4<!4.B7_?__68E^!(E^"(D&7U[" ++M!`!6BW0D"#/`5S@&B_ET!T"`/#``=?E0B\_HP?___XL'B@Z-5@&("$"$R70( ++MB@J("$!"Z_2+QU]>P@0`5HOQ:A3H6P$``/]T)`R+1@2+#O]T)`R-#$'H@/S_ ++M_RL&T?B)1@1>P@@`5E>+?"00B_%7Z"T!``"+3"0,BP:+T6G2____?P-6!(U4 ++M$@)2C11(`\]2C01(4/\5:,%"`(/$#%]>P@@`58OL4U97BWT(B_&-1#\"4.C4 ++M_/__B]B+1@190(L.B]-T$HE%"&:+`6:)`D)"04'_30AU\?\VZ.+\__]9B7X( ++MB1Y?7EM=P@0`58OL4XM="%:!^_[__S^+\785C44(:+#C0@!0QT4(K"DS`>A% ++M70(`C40;`E=0Z&_\__^+^&:#)P#_-NB6_/__@V8$`%E9B3Z)7@A?7EM=P@0` ++M5E>+?"0,B_&#)@"-1#\"4.@[_/__68E^!(E^"(D&7U["!`!5B^Q1BU$$B\+1 ++MZ(U$$!`D\$@[PG('/?[__S]V!;C^__\_.\)W%8U%_&BPXT(`4,=%_*PI,P'H ++MO5P"`%#H`____\G#58OLBU$$BT$(5HMU""O"5SOP=C"-!#*+^-'OC40'$+_^ ++M__\_)/!(.\)R!#O'=@*+QSO"=A6+^"OZ._YR#4A0Z+W^__]?7EW"!`"-10AH ++ML.-"`%#'10BL*3,!Z%9<`@!3BUPD"%97BWPD%(OQBT<$.]AV`HO84XO.Z!W_ ++M__^+#XL&A=MV#XO39HLY9HDX0$!!04IU\XL&7V:#)%@`B\9>6\((`%6+[%:+ ++M=0A7B_F+1@1`4.CC_O__BT8$BP^+-HO1A<!V%%.)10AFBQYFB1I"0D9&_TT( ++M=?%;9HM5#&:)%$%F@V1!`@"+QU]>7<((`%6+[%%35HMU#%>+?12+V8E=_(T$ ++M/E#HD?[__XL#BTT(A?9V%8O0B74,*]%FBQEFB1P*04'_30QU\HM-$$>%_XT$ ++M<'8.*\%FBQ%FB10(04%/=?2+1?Q?7EO)PA``58OL48M%"%:#9?P`B_'_<`3_ ++M,/]R!/\RZ(?___^+QE[)P@0`5HOQ:@B#)@#H;_K__X-F!`")!L=&"`,```!F ++M@R``68O&7L-6B_%J`>C__?__9@^V3"0(BP9F@V`"`&:)"(O&7L($`%.+7"0( ++M5C/V9CDS5XOY=`N+PT9`0&:#.`!U]U:+S^C&_?__BP>-3@&%R8O3=@UFBS)F ++MB3!`0$)"277SB\=?7EO"!`!5B^Q14U97BWT(B]DS]H`_`(E=_'0'1H`\/@!U ++M^5:+R^B!_?__BP,SR87V=A&+T&8/MAPY9HD:04)".\YR\6:#)'``BT7\7UY; ++MR<($`%:+="0(5XOY_W8$Z$G]__^+1@2+-HL/0'0-9HL69HD104%&1DAU\XO' ++M7U["!`!65VH!B_%?.7X(<QE3:@3H9_G___\VB]CHDOG__UF)'EF)?@A;BP9F ++MBTPD#(E^!%]F@V`"`&:)"(O&7L($`%6+[%.+70A6,_9F.3-7B_ET"XO#1D!` ++M9H,X`'7W.W<(=AZ-1#8"4.@1^?___S>)10CH._G__XM%"%E9B0>)=PB+!XU. ++M`87)B7<$B]-V#6:+,F:),$!`0D))=?.+QU]>6UW"!`!3BUPD"%:+\3O>=02+ ++MQNM#5XM[!#M^"'8<C40_`E50Z+7X____-HOHZ.#X__]9B2Y9B7X(78L&C5<! ++MB7X$BPN%TG8-9HLY9HDX0$!!04IU\XO&7UY;P@0`58OL4U97BWT,B_$[?@AV ++M-X'__O__/W85C44,:+#C0@!0QT4,K"DS`>@?60(`C40_`E#H2OC___\VB]CH ++M=?C__UF)'EF)?@B%_W06BTT(BP9V#XO79HL99HD80$!!04IU\XL&9H,D>`") ++M?@1?7EM=P@@`5E?_="0,B_'_%93!0@"+^#M^"'8<C40_`E-0Z._W____-HO8 ++MZ!KX__]9B1Y9B7X(6XM,)`R-1P&)?@2+-H7`=@UFBQ%FB19&1D%!2'7S7U[" ++M!`!5B^Q14XM="%8S]H`[`%>+^70'1H`\'@!U^3MW"'8>C40V`E#HD_?___\W ++MB47\Z+WW__^+1?Q968D'B7<(BP<SR87V=A:+T.L#BUT(9@^V'!EFB1I!0D([ ++MSG+N9H,D<`")=P2+QU]>6\G"!`!6B_&+1@@[1@1U!>@3^___9@^V5"0(BT8$ ++MBPYFB11!9H-D00(`0(E&!%["!`!6B_&+1@@[1@1U!>CF^O__BT8$BPYFQP1! ++M+@!F@V1!`@!`B48$7L-6B_&+1@@[1@1U!>B_^O__BT8$BPYFQP1!(`!F@V1! ++M`@!`B48$7L-6B_&+1@@[1@1U!>B8^O__BT8$BPYFQP1!.@!F@V1!`@!`B48$ ++M7L-6B_&+1@@[1@1U!>AQ^O__BT8$BPYFQP1!"@!F@V1!`@!`B48$7L-3BUPD ++M"%97,_^+\68Y.W0+B\-'0$!F@S@`=?=7B\[H>OK__XM&!(O3BQZ-3P&%R8T$ ++M0W8-9HL:9HD80$!"0DEU\P%^!(O&7UY;P@0`4U97BWPD$(OQ_W<$Z$#Z__^+ ++M1P2+3@2+'HL70(T,2W0-9HL:9HD904%"0DAU\XM'!%\!1@2+QEY;P@0`58OL ++M4XM="%97,_^`.P"+\70'1X`\'P!U^5>+SNCT^?__BT8$BPZ#90@`A?^-!$%V ++M%XO(BU4(_T4(9@^V%!IFB1%!03E]"'+K9H,D>``!?@2+QE]>6UW"!`!6B_%J ++M"NBR^?__BT8$BPZ-%$&+3"0(Z'_T__\K!M'XB48$7L($`%:+\8M,)`S_="0( ++MBP:-!$A0_Q58P4(`687`674%@\C_ZP0K!M'X7L((`(M!!(7`=!Z+"6:+5"0$ ++MC41!_F8Y$'0(.\%T"DA(Z_,KP='XZP.#R/_"!`"+$8M!!(T$0CO"=!9(2&:+ ++M"&:#^5QT!F:#^2]UZRO"T?C#@\C_PU:+\5>+#HO!9HL09H/Z('0,9H/Z"G0& ++M9H/Z"74$0$#KYRO!T?B+^'0?:<#___]_`T8$C40``E"-!'E04?\5:,%"`(/$ ++M#"E^!%]>PU.+$597BWD$B\>%P'0@C71"_F:+'F:#^R!T#&:#^PIT!F:#^PEU ++M!TA.3H7`=>0[QU]>6W0(9H,D0@")003#5HOQBT8(.T8$=07H/_C__XM.!(L& ++MC4P)`E%0@\`"4/\5:,%"`(L&9HM,)!2#Q`QFB0C_1@1>P@0`BT0D"%,SVU9F ++M.1B+\70[0T!`9H,X`'7WA=MT+E>+?"004U>+SNCT]O__BP:+3"04A=N-!'AV ++M#XO39HLY9HDX0$!!04IU\P%>!%]>6\((`%-65XM\)!2+\8M?!(7;="M3_W0D ++M%.BU]O__BP:+5"00BP^%VXT$4'8/B]-FBSEFB3A`0$%!2G7S`5X$7UY;P@@` ++MBP%FBQ!`0&:%TG0O9CM4)`1U[U:-4/YFBS!`0&:%]G0.9CMT)`AT[V:),D)" ++MZ^AF@R(`*Q%>T?J)403"!`!FBT0D!%-F.T0D#%97B_%T+HL>,_\Y?@1V)8L& ++MBU0D$(T,>.B-\___A<!\$P/X>`]FBT0D%&:)!'M'.WX$<MM?7EO""`!5B^Q1 ++M4XM="%97@WL$`(OY=%*+=0R+RXO6Z$T```"$P'5"BT,$B44(BT8$,_:)1?PY ++M=P1V+XL#5E"+S^AP_?__B_"%]GP>_W4(B\]6Z#L```#_=0R+SU;HX/[__P-U ++M_#MW!'+17UY;R<((`(M!!#M"!'46BQ*+"5)1_Q5\P4(`687`674$:@%8PS/` ++MPU-6BW0D$%>+^8M,)!"+7P2-!#$[PW8$B_,K\87V=BF-%#&+!VG2____?P/3 ++MC502`E*-%#&-%%"-!$A24/\5:,%"`(/$#"EW!%]>6\((`%97BWPD#(OQA?]T ++M(XO/BP9IR?___W\#3@2-3`D"48T,>%%0_Q5HP4(`@\0,*7X$7U["!`"X])A" ++M`.C#4@(`@^P84U97B_F+RHE5[.C)\/__BW<$,]L[\XEUZ`^$E````(U-W.AR ++M]___._.)7?R)7?!V8(L'BTWP9HLT2&:#_B!U)#E=X'1!BTWLZ-KM__^+3>R- ++M1=Q0Z$?N__^+1=R)7>!FB1CK(HM%X#E%Y'4(C4W<Z'3U__^+1>"+3=QFB31! ++M0&:)'$&)1>#_1?"+1?`[1>ARH#E=X'04BTWLZ(GM__^+3>R-1=Q0Z/;M____ ++M==SHE_'__UF+3?1?7EMDB0T`````R<-5B^Q14U97B_DSP(ORBP^)1P1FB0&+ ++M5@0[T'1]BPZ+'?#`0@!04%)14/]U"/_3A<")1?QU'_\5],!"`(7`=%J-10AH ++ML.-"`%#'10AT3@0`Z,I1`@`[1PAV"U"+S^A1]/__BT7\BP^+5@2+-E!14E9J ++M`/]U"/_3A<!U%8U%"&BPXT(`4,=%"'1.!`#HCU$"`(L/B4<$9H,D00!?7EO) ++MP@0`N`B90@#H5%$"`(/L$(-E\`!6B_%7B_J-3>3H&/;___]U"(-E_`"+UXU- ++MY.@P____C47DB\Y0Z,_V____=>3HI/#__UF+QHM-]%]>9(D-`````,G"!`"X ++M')E"`.C^4`(`@^P0@V7P`%:+\5*-3>3HM_+___]U"(-E_`"+T(O.Z'W_____ ++M=>3H7/#__UF+QHM-]%YDB0T`````R<($`(`]R#%#``!T!>F4\?__Z<[Q__^` ++M/<@Q0P``=`7I!0```.E4````5F:+`6:+,D%!0D)F.\9T+V:%P'0Q9H7V=#%F ++M/5P`=`9F/2\`=0(SP&:#_EQT!F:#_B]U`C/V9CO&<@MW#NO"9H7`=`SKNX/( ++M_U[#:@%87L,SP%[#4U565XOJB]EFBPMFBW4`0T-%168[SG0]9H7)=#]FA?9T ++M/V:#^5QT!F:#^2]U`C/)9H/^7'0&9H/^+W4",_;H%_#__XO.B_CH#O#__V8[ ++M^'(+=P[KLV:%R70,ZZR#R/_K!VH!6.L",\!?7EU;P[@PF4(`Z-!/`@"#[!!3 ++MB]E65XO*B57PZ-;M__^+<P0S_SOW='Z-3>3HAO3__S/)._>)??QV/XL#9HL4 ++M>&:#^EQT!F:#^B]U*(O7C01(*]&-3>124.A5]O__BTWPZ.#J__^+3?"-1>10 ++MZ$WK__^-3P%'._YRP8L#*_%6C01(C4WD4.@H]O__BTWPZ+/J__^+3?"-1>10 ++MZ"#K____=>3HP>[__UF+3?1?7EMDB0T`````R<.+`8M)!%97C31(._!T+&:+ ++M?OZ-3OYF@_]<=`9F@_\O=0*+\3OP=!-FBW[^C4[^9H/_7'0&9H/_+W7GB\XK ++MR-'Y45"+RNBS]?__BTPD#%;H[?3__U]>P@0`48-D)```5E>+\HOYB\[HY_C_ ++M_XL.C41!`HO/4.C+\___B\=?7EG#BQ*+">D`````45.+V5569HLSB^I79HM] ++M`&:%]G1IC4,"B40D$&:#_BIU%HM,)!"+U>C3____A,!U5V:%_W16ZSAF@_X_ ++M=0=FA?]T2>LD9COW=!^`/<@Q0P``=3F+S^A9[O__B\YFB_CH3^[__V8[QW4C ++M0T.#1"00`F:+,T5%9H7V9HM]`'6>,\!FA?\/E,#K!K`!ZP(RP%]>75M9PXM! ++M!#/2A<!6=AB+"6:+,6:#_BIT$6:#_C]T"T)!03O0<NHRP%[#L`%>PX!Y#0!T ++M+H!Y#@!T*(!Y#P!T(H-Y!`%U'(L!:'S'0@"+`(L`4/\5?,%"`%F%P%EU!&H! ++M6,,SP,-5B^Q1@'T,`%-65XOQ=0J`?@X`#X2[````BT4(BTX$BT`$*\$/B*H` ++M```S_R%]_(!]#`!T(H!^#@!U$H!^#`!T!(OXZPB%P`^%AP```(!^#0!U!(7` ++M='V`?@P`=!.`?0P`B47\=`J`?@T`=01(B47\.WW\B\>)10Q_6C/_A<EV08O8 ++MP>,"BT4(@'X/`(L`=!.+%!B+!HL,N.AE_O__A,!T(.L5BP08BQ"+!HL$N(L( ++MZ$G\__^%P'4)1X/#!#M^!'+$BTX$._ET%8M%#$`[1?R)10Q^IC+`7UY;R<(( ++M`+`!Z_4SP#E!"'4:.4$4=14Y02QU$(-Y(`%U"HM!'(L(Z<?^__\RP,-65XOQ ++M,_\Y?A1V'HM$)`R+$(M&$(L$N(M(!.C9^___A<!T#D<[?A1RXH/(_U]>P@0` ++MB\?K]X!\)`0`5HUQ''4#C7$HB\[HP^?___]T)`R+SNBD`P``7L((`%6+[%%3 ++M5HMU#%>)3?PSVX-^!`%V-(L&.%X/BSAT$#E=$'0+B\_H%_[__X3`=36+3?Q7 ++MZ#\```!3B\Z+^.C`Y?___TT0B7W\Z\8Y7@1T%3A>#W00BP:+".CE_?__A,!U ++M`XA>#XM-_%;_=0CH;?___U]>6\G"#`!6B_'_="0(Z"7___^%P'P(BTX0BP2! ++MZQQ7C4X0Z'\"``#_="0,B_B-3P2)-^@B\O__B\=?7L($`(!\)`0`5E>-<1QU ++M`XUQ*#/_.7X$=AS_="04BP;_="04BPRXZ,S]__^$P'4-1SM^!'+D,L!?7L(, ++M`+`!Z_>X1)E"`.A82P(`@^P,4U:+=0A7_W4,B_E6:@#HH____X3`=`B+11"` ++M(`#K5XM&!(/X`79?BP:+S_\PZ'W^__^+V(7;?$Y6C4WHZ(\```"#9?P`:@"- ++M3>CHNN3__XM'$/]U$(L<F/]U#(U%Z(O+4.B-____A,!T$(--_/^-3>CH<9D! ++M`+`!ZQZ#3?S_C4WHZ&&9`0#_=0R+SU9J`>@C____BTT0B`&+3?1?7EMDB0T` ++M````R<(,`%:+\8M&"#M&!'4%Z,3M__^+1@2+#F;'!$%<`&:#9$$"`$")1@1> ++MP[A8F4(`Z'M*`@!14U:+\3/;5XEU\(D>B5X$B5X(BT4(B5W\BW@$._MT,KC_ ++M__\_._AW`HO'P>`"4.B<Z?__._M9B0:)?@AV%(M%"(O.BP#_-)CH#N;__T,[ ++MWW+LBTWTB\9?7EMDB0T`````R<($`%6+[%-6BW4(B]D[\W4$B\/K4HO+Z!7H ++M__^+=@0[<PAV)8'^____?W85C44(:+#C0@!0QT4(Y0<``.CX20(`5HO+Z/[E ++M__]7,_^%]G84BT4(B\N+`/\TN.B:Y?__1SO^<NR+PU]>6UW"!`"X;IE"`.BB ++M20(`45:+\>@`Y?__:@SHY^C__UF+R(E-\#/`.\B)1?QT"/]U#.@G[___@TW\ ++M_U#_=0B+SNA^````BTWT7F2)#0````#)P@@`5HOQ5XM&!(L.BWR!_(7_=`__ ++M-^C.Z/__5^C(Z/__65G_3@1?7L.X@IE"`.@M20(`45:+\>B+Y/__:C3H<NC_ ++M_UF+R(E-\#/`.\B)1?QT!>C5WO__BTX$C5$!B58$BQ9>B02*BTWT9(D-```` ++M`,G#5HOQBTPD"%>+T8L&:=+___\_`U8$B_G!YP+!X@)2C10XC42(!%)0_Q5H ++MP4(`BP:+3"0<@\0,B0P'_T8$7U[""`"XEIE"`.BC2`(`45:+\6H0Z.WG__]9 ++MB\B)3?"#9?P`A<ET#/]U".@C````B\CK`C/)BT8$C5`!B58$BQ9>B0R"BTWT ++M9(D-`````,G"!`!65XM\)`R+\5?HS/W__XI'#(A&#(I'#8AI'#HA&#HI' ++M#XA&#XO&7U["!`#I`````.GH40(`5HOQ_W0D"/\5,,)"`(7`#Y7`B`9>P@0` ++M5HOQ@#X`=02P`5[#_Q4LPD(`]]@:P&H`_L"(!E@/E,!>PU6+[%%35C+;48OR ++MC4W\B%W\Z+#___^$P'0>_Q4HPD(`A<!T%(M&!(L6C40``E!J#5GH$````(K8 ++MC4W\Z)[___^*PUY;R<-5B^Q14X-E_`!65_]U"(O9B_J-3?QH`B```.BH'``` ++MA,!U!#+;ZS:+=?Q6_Q7HP$(`A<!T[O]U"%=0Z)M'`@"#Q`Q6_Q7LP$(`_W7\ ++M4_\5),)"`(7`=,R#9?P`LP&-3?SH@QP``(K#7UY;R<($`%6+[('L#`(``*'$ ++M,4,`5HOQ9H.E]/W__P!H!0$``(L.@V8$`&:#(0"-C?3]__]14/\5X,!"`#T$ ++M`0``=Q:%P'02C87T_?__B\Y0Z`/M__^P`>L",L!>R<.XJ)E"`.C81@(`@^P@ ++M@V7P`%97B_F+\HU-Y.B<Z___@V7\`(U5Y(O.Z)8```"$P'0PBTWHA<ET*8/Y ++M`G)BBU7D9H-\2OX*=5=F@WQ*_`UU3XU!_CO!<TB)1>AF@R1"`.L^:@B-3=M: ++MB\:#X`_![@2#^`IS!8/`,.L#@\`WB`%)2G7E@&7<`&B`R$(`C4WDZ*7O__^- ++M1=2-3>10Z)GO__^-1>2+SU#HY.O___]UY.BYY?__68O'BTWT7UYDB0T````` ++MR<-5B^Q15HOR,\"-5?Q04%)045!H`!,``/\5W,!"`(7`=00RP.L5_W7\B\[H ++M".S___]U_/\5`,%"`+`!7LG#4U8SVU=3:`````)J`U-J`V@```!`B_I1_Q7, ++MP$(`B_"#_O]T'/]T)!3_="045U;_%=#`0@"%P%8/E</_%=3`0@!?BL->6\(( ++M`%)1_Q7(P$(`A<`/E<##]\(```#P=`:!XO\_``#IW____U'_%<3`0@"%P`^5 ++MP,-24?\5P,!"`(7`#Y7`PVH`4?\5O,!"`(7`#Y7`P[C$F4(`Z$1%`@"#[!A6 ++MB_'HU08``(/X_W0+J!!T![`!Z0\!``"+SNB`%0``A,!T!S+`Z?T```!35XO. ++MZ`@6``"-3>B+^%;H'^K__S/;C4WHB5W\Z"#O__\[PWP@BU7LC4K_.\%U%H/Z ++M`74'BMKIM0```(M%Z(E-[&:)'$B-1>B-3=Q0Z'+J__^+=>S&1?P!BTWHZ*H` ++M``"$P'5)_Q7TP$(`/;<```!T=HU-Z.C([O__B_`[\WQH=&:+3>B#_@%U#V:+ ++M`68]7`!T568]+P!T3XU&`3OX<T@[=>QSMXEU[&:)'''KJSMUX'TSBT7<C4QP ++M`NC6$0``.\-]!8MUX.L$C70&`5:-3>C_==SH%.O__XM-Z.C;_O__A,!URNL" ++MLP'_==SHL>/__UG_=>CHJ./__UF*PU];BTWT7F2)#0````#)P[C8F4(`Z`-$ ++M`@"#[#A35C/;B_%35O\5O,!"`(7`=`2P`>M&_Q7TP$(`/;<```!T!#+`ZS6- ++M3;SH`0(``(U-Y.BBZ/__4U:-3;R)7?SH9P4``(3`=`F+7=S!ZP2`XP'_=>3H ++M,./__UF*PXM-]%Y;9(D-`````,G#_W$HZ!?C__]9PU:+\>@@!0``@_C_=!JH ++M$'46J`%T$HO0B\Z#XO[HTOW__X3`=0)>PU;_%;C`0@"%P`^5P%[#5HOQ_W8$ ++MZ-7B__]9B\[HD`(``%[#Z4\8``"X[)E"`.@S0P(`@>P\`@``,\")3?")002+ ++M"5-FB86X_?__9HD!5HV%N/W__U>+/;#`0@"[%`$``%!3_]>+\(7V=00RP.M] ++M._-S&(M-\&:#9>``C86X_?__4.CWZ/__L`'K88U-Y.BLY___,]L[=>R)7?QV ++M"5:-3>3H=.7___]UY%;_USO#="^+3>0STF:)''%F.1ET!4)!0>OV.]")5>AU ++M%4X[\'40BTWPC47D4.@'Z?__LP'K`C+;_W7DZ`;B__]9BL.+3?1?7EMDB0T` ++M````R<-5B^Q14U97B_*+^>@9____A,"(1?]U"%>+SNADZ/__B\[H;^S__XOX ++MBP:+30A'C1P_`\-0Z$KH__\[?@1S"HL&B7X$9H,D&`"*1?]?7EO)P@0`N`": ++M0@#H#T("`(/L#%-65XOYB_*-3>CHUN;__X-E_`"-1>A0B]:+S^B!____BMC_ ++M=>CH:^'__UE?BTWTBL->6V2)#0````#)PS/`B0&)002)00B)00R)01")012) ++M01B)01R)02"(022(027#58OL@^PT4U97B_'HS?___X,._X-.!/^-?AB+S^@? ++M(```BP>+';3`0@")1A"+1P2)1A2+!XE&"(M'!&H`B48,_]-J]O\5I,!"`(7` ++M=&*#^/]T78U-S%%0_Q6HP$(`A<!T2C/`.47H=$-J`5!0_W7LZ!E$`@"+3?`S ++MVP/!B0:+1<R)1B"+1=")1@B+1=2)1@R+1=B)1A"+1=R)1A2+1>")!XM%Y!/3 ++MB4<$B58$L`'K$/\5],!"`(7`=01J!O_3,L!?7EO)PXM!(,'H!*@!="B+02R% ++MP'0ABTDH9H,Y+G48@_@!=`^#^`)U!V:#>0(N=`,SP,-J`5C#,L##5HOQBP:# ++M^/]T$E#_%:#`0@"%P'4$,L!>PX,._[`!7L-5B^R![%`"``!6B_'HS____X3` ++M=!>-A;#]__]0_W4(_Q6<P$(`@_C_B09U!#+`ZQ"+50R-C;#]___H!P```+`! ++M7LG""`!35E>+^8OR:@&+!VH`B48@BT<$B48(BT<(B48,BT<,B480BT<0B484 ++MBT<4B488BT<8:@")1AS_=QSH\4("`(M/(#/;`\&-3B@3TR!>)"!>)8/'+(D& ++M5XE6!.@)YO__7UY;PU6+[('L4`(``(V%L/W__U#_,?\5F,!"`(7`=00RP.L0 ++MBU4(C8VP_?__Z'#___^P`<G"!`#I`````+G,,4,`Z0````!35E>+V6BLR$(` ++M_Q60P$(`BS64P$(`B_AHF,A"`%?_UFB(R$(`5Z/4,4,`_]:CT#%#`%^+PUY; ++MPU6+[('L6`(``%:+\>BM_O__A,!T1H,]U#%#``!U"FIX_Q6TP$(`ZS-J`/\5 ++MM,!"`(V%J/W__VH`4&H`_W4(_Q74,4,`@_C_B09U"_\5],!"`(/X)G0%@S[_ ++M=00RP.L0BU4,C8VH_?__Z`<```"P`5[)P@@`BP&#P0B)0A"+0?Q1B\J)0A3H ++M`.7__\-5B^R![%@"``"AT#%#`(7`=0IJ>/\5M,!"`.L/C96H_?__4O\Q_]"% ++MP'4$,L#K$(M5"(V-J/W__^BL____L`')P@0`@SG_=`O_="0$Z*_____K#?]T ++M)`2+0010Z!7___^$P(M$)`AT!\8``;`!ZQ&`(`#_%?3`0@"#Z";WV!O`0,(( ++M`%'_%8S`0@"#^/]U`@O`P[A$FD(`Z$L^`@"#[$A35E>+?0B+\8O/Z.`.``"+ ++MV(7;#XRQ`0``9H-\7P(`#X2E`0``C01?C4W44.@SX___@V7\`%>-3>#H)N/_ ++M_SM=Y,9%_`%S"XM%X(E=Y&:#)%@`BT78@_@&=A6+3=2ZO,A"`(U,0?3H<=[_ ++M_X3`=0UHO,A"`(U-U.@BY___BTW@Z(0-``"$P(M%X'0V@_L"=`R#^P-U+&:# ++M>`1<=26+SNC5^___BT8HC4XH,_^#^P*)>01FB3AU((U%X%#H!>3__^L5_W4, ++MB\Y0Z"?___^$P`^$Y````#/_9H%F(._[@TW$_XD^B7X$C47@C4W(4,9%_`+H ++M_^+__XU-K,9%_`/H(.+__XU%#XU-Q%"-1:Q0QD7\!.B/_O__A,!T-(!]#P!T ++M)HM5U(M-K.CTW/__A,!U(_]UK,9%_`/HE]S__UF-3:SHWN'__^N\:@+_%;3` ++M0@`RV^LVBTVP@_D'=A&-0?H[P7,*BTVLB46P9HD\08U%K(U.*%#H[.7__XM% ++MO,9&)`&)!HM%P(E&!+,!_W6LZ$+<____=<CH.MS__UE9C4W$Z//[____=>#H ++M*-S___]UU.@@W/__65GIV@$``/]UX.@1W/___W74Z`G<__]968--\/^+S\=% ++M_`4````SV^A%#```A,!T`VH$6XT,7XE-".@;"@``A,!T6V:#?%\&`'53B\_H ++MX?W__XO8@_O_#X13`0``]L,0#X1*`0``B\[H6OK___]U"(E>((U>*(O+Z#+B ++M__]J`E@Y0P1V"HE#!(L#9H-@!`!7B\[HF@$``+,!Z3L!``!FBP=F/5P`=`IF ++M/2\`#X7_````9H-_`@"+SW4PZ'3]__^+V(/[_P^$Y@```/;#$`^$W0```(O. ++MZ.WY__^+1BB#9BP`9H,@`(E>(.NMZ`L+``"%P`^&N0```&:#/$<`C1Q'B5WL ++M#X2H````B\OH!0D``(7`#XV9````5XO.Z!(!``"$P'0.4XU.*.B#X?__Z>\` ++M``!7C4W(Z'G@__^-3<C&1?P&Z*7P__]J*HU-R.A,X___@&4+`%;_=<B-3?#H ++MH_K__X3`=":+1BB-7BAH?,A"`%#_%7S!0@!9A<!9=0K_=>R+R^F,````QD4+ ++M`8O/Z*+\__^`?0L`B]AU6X/[_W0%]L,0=5'_=<C&1?P%Z'':__]95E>-3?#H ++M2?K__X!]#`!T%X3`=!.+3B#!Z0KVP0%T"%>+SNA:````BMB-3?#H`OK__XK# ++MBTWT7UY;9(D-`````,G""`"+SNC,^/__@_O_=`6)7B#K!\=&(!````#_=>R- ++M3BCHF.#___]UR.@!VO__68U-\.B[^?__L`'KM^FR^?__58OL@^PT5HOQBTT( ++MC57,Z%,```"$P'1*5VH!:@!J`/]U[.@?/0(`BTWP,_\#P8D&BT70B48(BT74 ++MB48,BT78B480BT7<B484BT7@B488BT7DB48<BT7,$]>)1B")5@2P`5]>R<($ ++M`+A8FD(`Z/4Y`@!148--[/^`9?``5HOR@V7\`&@````":@-J`6H`48U-[.@M ++M`P``A,!U#(U-[.A:`P``,L#K&5;_=>S_%:C`0@"-3>R+\.A"`P``A?8/E<"+ ++M3?1>9(D-`````,G#Z2L#``"X;)I"`.B+.0(`@^PX4U:+\8U-O.BL]___C4WD ++MZ$W>__\SVXU-O%-6B5W\Z!#[__^$P'0,BT7<P>@$J`%U`K,!_W7DZ-;8__]9 ++MBL.+3?1>6V2)#0````#)P[B`FD(`Z#(Y`@"#[#A35E>+^8ORC4V\Z%#W__^- ++M3>3H\=W__S/;5E>-3;R)7?SHM/K__X3`=`R+1=S!Z`2H`70"LP'_=>3H>MC_ ++M_UE?BTWTBL->6V2)#0````#)P[B4FD(`Z-4X`@"#[#A35HOQC4V\Z/;V__^- ++M3>3HE]W__X-E_`!J`%:-3;SH6OK__XK8_W7DZ"[8__]9BL.+3?1>6V2)#0`` ++M``#)PU:-<03_="0(B\[H`=___VHJB\[H@>#__U["!`"#.?]T"_]T)`3H??C_ ++M_^L-_W0D!(M!!%#HQ_?__\($`%97BWPD#(OQ5XO.Z-#___^$P'0-B\_H5/?_ ++M_X3`=`;KYS+`ZP*P`5]>P@0`5E?_="0,B_'HQ____X3`BT0D$'0%Q@`!ZV"` ++M(`#_%?3`0@"#/O]T##/)@_@2#Y3!BL'K3(/X`G1!@_@%=4"_Q,A"`%?H]SH" ++M`%F+3@@KR'08A<E^*8M&!&:+1$C^9CU<`'0&9CTO`'45BT8$B]>-#$CH+=C_ ++M_X3`=`2P`>L",L!?7L((`+BPFD(`Z)TW`@"#["!35E>)3?#HI]7__XL]B,!" ++M`&H`:@#_UXO8A=N)7>@/A*4```"X____?SO8=P*+PP/`4.BXUO__B_!9B77@ ++M@V7\`%93_]>+V#/_.]^)7>QT<CM=Z'=MC4W4Z!;<__^%V\9%_`&)?>AV0FH" ++M,\!;9H-\'OX`=2H#QHU-U%#H,MW__XM-\(U'`8E%Z(E=Y.APTO__BTWPC474 ++M4.C=TO__B\-'0T,[?>QRQHM=[/]UU.AQUO__5NAKUO__.5WH65D/E,#K"5;H ++M6];__UDRP(M-]%]>6V2)#0````#)P_\5],!"`(7`=0:X!4``@,-^"B7__P`` ++M#0``!X##58OL5HOQZ"X```"$P'0E:@#_=1C_=11J`/]U$/]U#/]U"/\5S,!" ++M`#/)@_C_#Y7!B0:*P5Y=PA0`5HOQBP:#^/]T$E#_%=3`0@"%P'4$,L!>PX,. ++M_[`!7L-5B^Q1@V7\`(U%_%=0_S'_%83`0@"+^(/__W4._Q7TP$(`A<!T!#+` ++MZR!J`6H`:@#_=?SH\C@"`(O(,\`#SQ/0BT4(B0B)4`2P`5_)P@0`58OL4597 ++MC47\,_9J`5!6B77\_S'_%8#`0@"+^(/__W46_Q7TP$(`A<!T#(M%"(DPB7`$ ++M,L#K'FH!5E;_=?SHF#@"`(O(,\`#SQ/0BT4(B0B)4`2P`5]>R<($`%6+[%&+ ++M10Q35E?_=1"+\8O(B47\C47\4/]U",'Y'_\V_Q6`P$(`B_B#__]U(?\5],!" ++M`(O8A=MT%?]U%(O.Z&+___]3_Q6TP$(`,L#K(&H!:@!J`/]U_.@D.`(`B\@S ++MP`//$]"+112)"(E0!+`!7UY;R<(0`/]T)`QJ`/]T)!#_="00Z'C____"#`!5 ++MB^Q148-E^`"#9?P`C47X4&H`:@#HT/___X3`=`V+1?@+1?QU!6H!6,G#,\#) ++MPU6+[%%15HOQN````("`?@0`=`6X``$`@/]U%(O._W40_W4,4/]U".@7_O__ ++MA,"(11=T'H!^!`!T&(--^/^#3?S_C47X:@!0:@#_-O\5T,!"`(I%%U[)PA`` ++MBD0D"&B`````]M@;P&H#@^`"#`%0_W0D$.B)____P@@`:@#_="0(Z-3____" ++M!`!5B^Q1C47\:@!0@V7\`/]U#/]U"/\Q_Q5\P$(`BTT0BU7\A<")$0^5P,G" ++M#`!5B^RX``!``#E%#'8#B44,_W40_W4,_W4(Z+7___]=P@P`_W0D$/]T)!#_ ++M="00:````$#_="04Z%+]___"$`!H@````/]T)`QJ`?]T)!#HS____\((`/]T ++M)`S_="0,_W0D#/\Q_Q70P$(`]]@;P/?8P@P`58OL4;@``$``.44,=@.)10R- ++M1?QJ`%"#9?P`_W4,_W4(_S'_%7C`0@"+31"+5?R%P(D1#Y7`R<(,`%6+[%:+ ++M=1!7B_F#)@"-11"#91``4(O/_W4,_W4(Z*3___^+31`!#H3`=`Z%R70.`4T( ++M*4T,=`;KU#+`ZP*P`5]>7<(,`/\Q_Q5TP$(`]]@;P/?8PU6+[%%1C47X5E"+ ++M\?]U#/]U".CN_?__A,!T$(M%^#M%"'4(BT7\.T4,=`0RP.L'B\[HN____U[) ++MP@@`58OL@^P05E>-1?@S_XOQ4(E]^(E]_.C?_/__A,!T35.+SO]U#/]U".B8 ++M____BMB$VW4(_Q7TP$(`B_B-1?"+SE#_=?S_=?CH?OW__X7_B$4/=`=7_Q6T ++MP$(`A-M;=`N`?0\`=`5J`5CK`C/`7U[)P@@`9HL1B\%FA=)T$V:#^EQT$6:# ++M^B]T"T!`9HL0Z^B#R/_#*\'1^,.+002%P'08BQ%FBT1"_F8]7`!T"V8]+P!T ++M!>F2Y___PP^W`0P@@^AA@_@9=QMF@WD".G449HM)!&:#^5QT!F:#^2]U!&H! ++M6,,SP,-65XOY,_9F.3=T"XO'1D!`9H,X`'7WA?9T-&:#?'?^.G4LB\_H+@`` ++M`(3`=2&+S^BY`0``A,!T!H/'"(/&_(/^`G4/B\_HB`$``(3`=`0RP.L"L`%? ++M7L-6B_%79HL&9CU<`'0*9CTO``^%A@```&:+3@)F@_E<=`9F@_DO=79F@WX$ ++M+G5O9HM.!F:#^5QT!F:#^2]U7S/_9H7`=%B+QD=`0&:#.`!U]X/_!G4)9H-^ ++M"CIU0>L[@_\2<CJ#_Q9W-;KLR$(`C4X(Z$;2__^$P'0D:A%9._EV&8U&(F:+ ++M$&:#^C!R$6:#^CEW"T%`0#O/<NJP`>L",L!?7L-FBP%J7%IF.\)T!F8]+P!U ++M:&:+00)F.\)T!F8]+P!U66:#>00_=5)FBT$&9CO"=`9F/2\`=4-FBT$(9CU5 ++M`'0&9CUU`'4S9HM!"F8]3@!T!F8];@!U(V:+00QF/4,`=`9F/6,`=1-FBTD. ++M9CO*=`9F@_DO=01J`5C#,\##5HOQ5V:+!F8]7`!T!F8]+P!U16:+1@)F/5P` ++M=`9F/2\`=35J`HO.7^A7____A,!T!6H(7^L09HM&!&8]+@!T&&8]/P!T$HT, ++M?NC,_?__A<!\!HU$.`'K`C/`7U[##[<!#""#Z&&#^!EW"V:#>0(Z=01J`5C# ++M,\##9HL!9CU<`'0&9CTO`'4K9HM!`F8]7`!T!F8]+P!U&V:#>00_=11FBTD& ++M9H/Y7'0&9H/Y+W4$:@%8PS/`PV:+`68]7`!T!F8]+P!U,&:+00)F/5P`=`9F ++M/2\`=2!FBT$$9CT_`'0&9CTN`'409HM)!F:#^5QT"6:#^2]T`S/`PVH!6,-6 ++MB_'H=?___X3`=`.#Q@B+SNA/_?__A,!T#&:#?@8`=05J`5A>PS/`7L-FBP%F ++M/5P`=!)F/2\`=`SH)/___X3`=0,SP,-J`5C#5E>+^3/VZ"G___^$P'0#:@1> ++MC0QWZ/_^__^$P'0"1D:#R/^-%'=FBPIFA<ET(F:#^3IU"(7`?1.+QNL/9H/Y ++M7'0&9H/Y+W4#@\C_1D)"Z]9?7L-6B_%FBP9F/5P`=`9F/2\`=2QFBT8"9CU< ++M`'0&9CTO`'4<9H-^!"YU%6:+1@9F/5P`=`9F/2\`=05J!%A>PXO.Z)S^__^$ ++MP(O.=`9>Z7X```#H`@```%[#5HOQZ&G\__^$P'0$:@/K/6:+!F8]7`!T"F8] ++M+P!T!#/`7L-FBT8"9H7`=!]F/5P`=`9F/2\`=1.-3@3H$````(U(`O?8&\!> ++M(\'#:@%87L-65XOYZ-+[__^+\(7V?`V-3'<"Z,/[__^%P'T$,\#K!(U$,`)? ++M7L.+P6:+4`B-2`AF@_I5=`9F@_IU=3!FBU`*9H/Z3G0&9H/Z;G4@9HM0#&:# ++M^D-T!F:#^F-U$&:+4`YF@_I<=!9F@_HO=!#H:OO__X7`?0,SP,.#P`7#C4@0 ++MZ'S___^-2`CWV!O`(\'#N-2:0@#HQBT"`(/L)%-65XOZB]E7BTT(Z,O3__^+ ++MS^BF_O__B_"%]G19@_X!=%2-'#8#^XO/Z#P"``"$P'0]5XU-T.BDTO__@V7\ ++M`(U-T.@5`0``A,!T&XM-"#MQ!',*BP&)<01F@R0#`(U%T%#H=];___]UT.C> ++MS/__6;`!Z=4```"-3>CH'M+__X7;QT7\`0```'1,A?9U2%.-3>CH1=/__XU- ++MZ.C(^O__BTWHZ!?^__^-3=R+V.CLT?__A?;&1?P"="V%VXT\=W4UBT7H(5WL ++MC4WH9B$8Z$?B__]J`5OK'XU-Z.BIZ?__A,!UM3+;ZUN+1>B-3=R-!%A0Z.?2 ++M__]7C4W<Z)35__^-3=SH5P```(3`=00RV^LJ.UWL<PN+1>B)7>QF@R18`(M- ++M"(U%Z%#H%M/__XM-"(U%W%#HJ-7__[,!_W7<Z`W,__]9_W7HZ`3,__]9BL.+ ++M3?1?7EMDB0T`````R<($`%6+[%%35E>+^8E]_#/VBP=FBPAFA<D/A.<```!F ++M@_DN#X71````A?9T%6:+3'#^9H/Y7'0*9H/Y+P^%N````&:+3'`"9H/Y+G5_ ++M9HM<<`2-3@)F@_M<=`]F@_LO=`EFA=L/A9````"%]@^$F````(/&_HT4<(7V ++M#XR*````9HLZ9H/_7'0&9H/_+W4%3DI*Z^2-!'!.2$B%]GP79HL09H/Z7'0& ++M9H/Z+W7JA?9\!"O.ZPAFA=MT`4$S]E&+3?Q6Z%38__^+??SK+V:#^5QT"V:# ++M^2]T!6:%R74=:@*%]EAT`T[K"&:%R74#:@%84%:+S^@CV/__ZP%&BP=FBPQP ++MZ1#___^P`>L",L!?7EO)PV:+$58S]F:%TG18C4$$9H/Z+G5#A?9T$&:+2/IF ++M@_E<=`9F@_DO=2]FBTC^9H7)=#9F@_E<=#!F@_DO="IF@_DN=11FBPAFA<ET ++M'&:#^5QT%F:#^2]T$$9`0&:+4/QFA=)UJS+`7L.P`5[#B\*+T5`SR>@2_?__ ++MPU:+\?]T)`S_="0,_Q5PP$(`A<!U!#+`ZP2)!K`!7L((`%:+\8L&A<!U!+`! ++M7L-0_Q5LP$(`,\F)!H7`#Y3!BL%>PU92B_%J`/\5A,%"`(7`B48(=0^X#@`' ++M@&;'!@H`B48(7L-FQP8(`#/`7L-5B^Q6B_'HH0$``(M%"&:#9@(`9L<&"`"+ ++M2`2+`%%0_Q6$P4(`A<")1@AU%J'\R$(`:$#H0@")10B-10A0Z%(J`@"+QEY= ++MP@0`5HOQ9H,^"W0*Z%4!``!FQP8+`(I$)`CVV!O`9HE&"(O&7L($`%:+\6:# ++M/A-T"N@P`0``9L<&$P"+1"0(9H-F`@")1@B+QE["!`!6B_%F@SX5=`KH"P$` ++M`&;'!A4`BT0D"&:#9@(`B48(BT0D#(E&#(O&7L((`%:+\6:#/D!T"NC?```` ++M9L<&0`"+1"0(BPB)3@B+0`1F@V8"`(E&#(O&7L($``^W`8/X!W8@@_@)=A2# ++M^`MV%H/X#W8*@_@7=@R#^$!T!U'_%8S!0@##5HOQ#[<&@_@'=AF#^`EV&X/X ++M"W8/@_@/=A&#^!=V!8/X0'4',\EFB0[K$E;_%8S!0@`SR3O!=1EF.0YU%(E. ++M"&:)3@)FB4X$9HE.!HE.##/`7L-F@SD`=0AF@V$"`#/`P^F:____4U>+?"0, ++MB]EF@S\`=`N+S^B%____A<!\$U:+\Z6EI:5F@R,`9H-C`@`SP%Y?6\($`%:+ ++M\6:#/@!U"6:#9@(`,\!>PXO.Z*/___^%P'T(9L<&"@")1@A>PU6+[(/L)(M% ++M$%:+=0B)5?2`)@"H`70&QD4+`>L5)`+VV!K`]M`C!=@Q0P"$P(A%"W0-BP&) ++M1>R+002)1?#K#XU%[%!1_Q5@P$(`A<!T$HU%W%"-1>Q0_Q5DP$(`A<!U!S+` ++MZ<0!``!35P^W?=R!_Q`G``")??RQ,'(=B\<STKL0)P``]_,ST@+!B`:+QXO[ ++M1O?WB_J)??QJ"HO'7S/2B]_W\XM%_`+1B%8#,]+W\S/2B47\]_.+1?P"T8A6 ++M`C/2]_,STHE%_/?SBT7\`M&(5@$STO?S`L&(!H/&!`^W1=Z9]_O&!BV#Q@," ++MP8A&_@^W1=Z9]_L/MT7B`M&(5O_&!BV9]_N#Q@,"P8A&_@^W1>*9]_L"T8-] ++M#/V(5O\/CO,````/MT7DF??[Q@8@@\8#`L&(1OX/MT7DF??[#[=%Y@+1B%;_ ++MQ@8ZF??[@\8#`L&(1OX/MT7FF??[`M&#?0P`B%;_#XRM````#[=%Z)GW^\8& ++M.H/&`P+!B$;^#[=%Z)GW^S/``M$Y10R(5O\/CH0```!J`5!0Q@8N_W7P1L=% ++M^`<```#HVBD"`(M-[#/;`\%3$]-H@):8`%)0Z`0I`@")1?QJ!UF+1?PSTHO? ++M2??SBT7\@,(PB!0Q,]+W\X7)B47\=>*+30R#^0=S`XE-^`-U^(/Y"'P@BT7T ++M,]*+W_?S!#"(!D:#^0E\#8M%]#/2]_>`PC"(%D:`?0L`7UMT"O9%$!!U!,8& ++M6D:`)@"P`5[)P@P`:@#_="0(4C/2Z,+]___"!`!5B^R#[$!6B_+_=0B-5<#H ++MV____V8/MDW`@'W``&:)#G065XU-P(I1`4%&9@^V^D:$TF:)/G7O7U[)P@0` ++MN.B:0@#H&28"`('L$`(``%-6@V7D`&:#I>3]__\`O@`!``!7C87D_?__B_I6 ++M4%>+V?\UQ#%#`/\5(,)"`"OP@_X!?A"-A>3]__^+RU#H[<K__^LQC4WHZ*#* ++M__^+#<0Q0P"#9?P`C47HB]=0Z"4```"-1>B+RU#H4\O___]UZ.@HQ?__68M- ++M]%^+PUY;9(D-`````,G#4U565XM\)!2+VHOIO@`!``#1YHU&_SM'"'8(4(O/ ++MZ![(__^+!U904U7_%2#"0@"+SBO(@_D!?ME0B\_H!P```%]>75O"!`"+`8M4 ++M)`1F@R10`#/29H,X`'0%0D!`Z_6)403"!`!5B^R![`0"``!35E>+?0B+VC/` ++MBQ>)1P1FB87\_?__O@`!``!FB0*-A?S]__]64%-1B4W\_Q4@PD(`*_"#_@%^ ++M$(V%_/W__XO/4.CQRO__ZPN+3?Q7B]/H/____U]>6\G"!`"+PHO1BPW$,4,` ++M4.B-____PU:+\8L&A<!T"E#_%53"0@"#)@!>PU%355:+\E>_%`$``(L&@V8$ ++M`(OI9H,@`#E^"',(5XO.Z"['____-E7_%:3!0@"%P`^5PX3;=4MH*,E"`&@0 ++MR4(`_Q5<P$(`4/\5E,!"`(7`B40D$'0LP><".WX(=@A7B\[H[<;__XL&:@!7 ++M4%7_5"0@A<`/E<.$VW4(@?\```$`=M17B\[HS_[__XK#7UY=6UG#N`2;0@#H ++M`R0"`%%35HOR,]M7B_F+!HE>!%-FB1C_%5S"0@!7B5W\_Q6<P4(`B_@[^W0E ++MB5WPC4WPQD7\`>@7____B]:+SXE]\.@@____C4WPBMCH`?____\54,)"`(M- ++M](K#7UY;9(D-`````,G#_R50PD(`Z=_^____="0(_W0D"&I%Z`,```#""`"X ++M&)M"`.AW(P(`@^PL4U:+\5>+^HU-Z.@^R/__@V7\`(-ES`"X!`$``(EUR#E% ++M\',)4(U-Z.C[Q?__BT7HBU40B470BT4(B478BT4,B\B)?=3WV1O)B47@@>$6 ++M7D``B4W<C4W(Z`O___^*V/]UZ.B7PO__65^+3?2*PUY;9(D-`````,G"#`"+ ++M1"0(2'45_W0D$&H!:&<$``#_="00_Q4<PD(`,\#"$`!5B^Q6B_%7BWT(@V8$ ++M`#M^"'9&@?____]_=A6-10AHL.-"`%#'10CE!P``Z,DB`@#_-N@KPO__@R8` ++M@V8(`+C___\_63OX=P*+Q\'@`E#HV\'__UF)!HE^"%]>7<($`%9J(#/`6HOQ ++M@^8!`\;1Z4IU]%[#C4$$4%'_%53`0@!0_Q58P$(`PU6+[(/L+(U-^.C?____ ++MA<!T#HM-^(7)=`?HN____\G#C4744/\54,!"`(M%Z,G#58OL@^Q@5HOQ:$#) ++M0@!HK,A"`,<&````@,=%H$````#_%9#`0@!0_Q64P$(`A<!T,HU-H%'_T(7` ++M="B#R?^#?:P`=PIR!3E-J',#BTVH,\`[1<QR"G<%.TW(=@.+3<B)#NL>C47@ ++MQT7@(````%#_%4S`0@"+1?@[1>AR`XM%Z(D&L`%>R<.X``#_`,/H]?___X/X ++M"G8%@^@*ZP-J`5AJ`S/26??Q.\%W`E%8@\G_.\%S`HO(B\'#4?\52,!"`,-3 ++M5E>+?"00B]F+!X-G!`!F@R``_S/_%13"0@"+\(7V="X[=PAV"%:+S^CKP___ ++MBP>-3@%14/\S_Q48PD(`._!V`HOP5HO/Z-3[__^%]G4-_Q7TP$(`]]@;P$#K ++M`K`!7UY;P@0`58OLBT4(2$AT>(/H`W1=@^A)=$N#Z`5T/2V]````="](=!5( ++M2'0$,L#K7/]U$(L!_W4,_U`TZT^+10R+$5;_=1`/M_#!Z!!64/]2#%[K.(L! ++M_U`(ZS&+`?]0&+`!ZRC_=1"+`?]U#/]0,.L;BU40BP'!ZA!2#[=5$%+_=0S_ ++M4!#K!8L!_U`47<(,`(-\)`0`=0__="0,BP'_="0,_U`<ZP(RP,(,`(M$)`1( ++M="](="6#Z`9T&4AT#TA(=`0RP.LCBP'_4"3K&HL!_U`8ZQ.+`?]0+.L,BP'_ ++M4"CK!8L!_U`@L`'""`!5B^R#["Q35E<S_SO7B4W\=$!J`5+_%0C"0@"+V#O? ++M=#%J*(U%U%Y65U#HN"("`(/$#(U%U(EUU%!3_Q4,PD(`A<!T#HM]_(UUZ*6E ++MI:6P`>L35_]U_%=J,/\5$,)"`/?8&\#WV%]>6\G#58OL@^P0BT4(5HMU#%>+ ++M?1"#9?``B0:#9?0`B0>)1?B)1?R-1?!0_W$$_Q4$PD(`A<!U!#+`ZQ*+1?@K ++M1?")!HM%_"M%](D'L`%?7LG"#`!5B^R#[!"#9?``@V7T`(U%\%:+=0A0_W$$ ++MB77XB77\_Q4$PD(`A<!U"HT$=IDKPM'XZP:+1?@K1?!>R<($`%6+[(/L$/]U ++M"/]Q!/\5_,%"`(U-\%%0_Q4`PD(`A<!U!#+`ZQB+1?B+30PK1?")`8M%_"M% ++M](M-$(D!L`')P@P`5HUQ!/]T)`C_-O\5_,%"`/]T)`Q0_Q4`PD(`_W0D#(O. ++MZ`0```!>P@@`58OL@^P04U:+=0A7BSWXP4(`B]F+!HE%^(M&!(E%_(M&"(E% ++M\(M&#(E%](U%^%#_,__7C47P4/\S_]>+1?A?B0:+1?R)1@2+1?")1@B+1?2) ++M1@Q>6\G"!`!5B^S_=0C_<03_%?S!0@`SR3A-'`^5P5'_=1C_=13_=1#_=0Q0 ++M_Q7TP4(`]]@;P/?87<(8`%6+[(/L*%-6C7$$5_?9&\F)=?@CSHL1C4WHZ/#] ++M__^$P`^$H````(U%V%#_-O\5`,)"`(7`#X2,````BW7DBUW@*W7<*UW8C57H ++MC4W8B77\Z'D```"$P'1NBT7PBWWHBTWT*\<K3>P[V'\$._%^6(!]"`!T#XM% ++M^&H#_S#_%?#!0@#K0XMU[#O8?0XKPYDKPHOXT?\#?>CK`HO8.4W\?1&+P2M% ++M_)DKPHOPT?X#=>SK`XE-_(M%^&H!_W7\4U97_S#_%?3!0@!?7EO)P@0`BP$[ ++M0@A]&XM!"#L"?A2+000[0@Q]#(M!##M"!'X$:@%8PS/`PU6+[(/L2%.-603W ++MV1O)5B/+5XE=^(L1C4W(Z/W\__^$P`^$\@```(UUR(U]Z*6E_S/&1?\!I:7_ ++M%>S!0@"+/0#"0@"+\(7V=#^+UHU-N.C)_/__A,`/A+X```"-5<B-3;CHW0`` ++M`(3`=!Z-1>A05O_7A<!T$XU5R(U-Z.B>````A,!T!(!E_P"-1=A0_S/_UX7` ++M#X2!````@'W_`'0HC57(C4W8Z'4```"$P'5LC57(C4W8Z"/___^$P'1=C77( ++MC7WHI:6EI8M-X(M%\"M-V(MUY"M%Z(M=]"MUW"M=[#O(?S<[\W\S*\&9*\*+ ++M^(O#*\:9T?\#?>@KPM'X`T7L.WW8=04[1=QT$6H!5E%0BT7X5_\P_Q7TP4(` ++M7UY;R<.+`3L"?!R+00@[0@A_%(M!!#M"!'P,BT$,.T(,?P1J`5C#,\##BP$[ ++M`G4<BT$(.T((=12+000[0@1U#(M!##M"#'4$:@%8PS/`P[@DFT(`Z,4;`@!1 ++M4U:^$`$``%<Y=0R)9?!U#O]U%&KK_W4(_Q7DP4(`BWT(:NM7_Q5(PD(`A<!T ++M,#EU#'4#B7@$_W44BQ"#9?P`B\C_=1#_=0S_4@0SR83`#Y7!B\'K";BG94`` ++MPVH!6(M-]%]>9(D-`````%O)PA``46A!94``_W0D$/]T)!#_-<0Q0P#_%>#! ++M0@#""`!5B^R#["B+10B#9>``B47<C4784&H`:$L0``#'1=@$````_S'_%1S" ++M0@"+30R+5?B%P(D1#Y7`R<((`%6+[(/L((M5$(M%#(E5Z(E%[(M%"(U5X%)0 ++M:&$0``#'1>`.````_S&)1?3_%1S"0@#)P@P`58OL@^PHBT4(@V7@`(E%W(E% ++M^(M%#,=%V`4```")1>R-1=A0:@!H31```/\Q_Q4<PD(`R<((`%6+[(/L*(M% ++M",=%V`$```")1=R+11")1>R+10R)1>"-1=A0:@!H3!```/\Q_Q4<PD(`A<`/ ++ME<`/ML#)P@P`H5PS0P"#^$!S#8D,A5PR0P!`HUPS0P##5E>+?"00@&<(`(!G ++M"0#'1PP!````.PU<,T,`<TB+-(U<,D,`A-)T!8M&!.L"BP:%P'0R_]"`?A@` ++M=`R+3"0,4.A6B```ZQZ#?A0!4'4)B\_H1H@``.L.C4\$Z#R(``"+1A2)1PQ? ++M,\!>P@@`4U;_="00B_**V?]T)!#H&P```(7`?00SP.L._W0D%(K3B\A6Z&O_ ++M__]>6\(,`%-6BS5<,T,`,\"%]E=V,+]<,D,`BQ>+6@@[7"00=1B+6@P[7"04 ++M=0^$R70%BU($ZP*+$H72=0M`@\<$.\9RU8/(_U]>6\((`+A"FT(`Z$\9`@"# ++M[`R#9?``5XOZB4WL@V7\`%?_=0R-5?#_=0CH8/___X-]\`")10QT0U9H@``` ++M`,9'"0'H;+C__UF+R(E-Z(7)QD7\`70,_W7LZ*T+``"+\.L",_:`9?P`5HO/ ++MZ$^'``"-3GC_=?#H1(<``%Z+1?"#3?S_A<!?=`:+"%#_40B+3?2+10QDB0T` ++M````R<((`+A4FT(`Z+88`@!15HOQB77PBT8$@V7\`(7`=`:+"%#_40B+-H-- ++M_/^%]G0&BP96_U`(BTWT7F2)#0````#)PX'Y`4``@'0U@?D$0`"`="F!^0X` ++M!X!T'8'Y5P`'@'01A<ET"FH!6#O(=!6+PL,SP,-J!5C#:@)8PVH*6,-J!%C# ++MB\&#^`1_(709@^D`=!%)=$!)=`5)=#KK*+@.``>`PS/`P[@!0`"`PX/X!70H ++M@_@&=!^#^`IT%(/X#WX%@_@1?A"%P'P5N`5``(##N`1``(##:@%8P[A7``>` ++MPXM$)`2#80@`QP$_:4``B4$$P@0`58OLBT405B-%%%>+\8/X_W4$,]+K`XU5 ++M$(M%""-%#(/X_W4$,\GK`XU-"(M&!%)14(LX_U<,B\B)1@AJ"EKH#?___U]> ++M7<(0`(M$)`3'`:-I0`")000SP(E!$(E!%(E!",($`%6+[%-65XM]"(OQN``` ++M`("+#SO(B4T(<@.)10B+1@2-70A3_W4(BPA24/]1#(E&"(M%"(D'`480BTX( ++M7X-6%`!>A<E;=00SP.L(:@A:Z)K^__]=P@0`BT0D!,<!%&I``(E!!#/`B4$0 ++MB4$(B4$4P@0`5HOQ5XM\)`R+3@2%R7015^A\&P``A<")1@AT"#/`ZPV#9@@` ++M`7X0B\>#5A0`7U["!`!6B_&+3@SH;Z,!`(-F#`!>PU:+\5>+?"0,@WX,`'0% ++M.WX0=!J+SNC5____B\_H**,!`(E&#(E&!(E&"(E^$#/`7SE&#%X/E<#"!`!5 ++MB^Q15HOQ@'X@`'5#@WXD`'4]BT84C57\4O]V$(L(_W8,4/]1#(M.#(E&)(M& ++M!(E.!"O!`488BT7\C10!@U8<`(E6"(7`=`B*`4&)3@3K!L9&(`$RP%[)PXO! ++M@V`,`,<`]VI``,.+400[40AT!XH"0HE1!,/IAO___[AXFT(`Z/L5`@"#["A3 ++M5E>+V6HNB5WPZ.B___^+RXOPZ`K`__^-3>2+^%/H@;O__X-E_`"-3=CHHKK_ ++M_T?&1?P!._=^'CMUZ',+BT7DB77H9H,D<`"+`XU-V(T$<%#HNKO__VI?C4WD ++MZ)V]__^-3<SH:;K__VH!QD7\`E^[````0(TT.XU%S-'N4%:-5=B-3>3H4@`` ++M`(3`=`6-?@'K`HO>._MUW/]U\(U5V(U-Y%/H-````(K8_W7,]ML:V_[#Z,JT ++M____==CHPK3___]UY.BZM/__BTWT@\0,BL-DB0T`````7UY;R<-6BW0D#%=1 ++MB_J+SNB)N___B\[_="0,Z+&^__^+SE?H%+[__XL.Z!3<__]?7L((`(O!,\G' ++M0`3HR4(`QT`(V,E"`,=`#,C)0@#'0!"TR4(`B4@4@T@8_XA('(A(5(A(58E( ++M6(E(7,<`H,E"`,=`!)#)0@#'0`B`R4(`QT`,<,E"`,=`$%S)0@##58OL4U:+ ++M=1!7BWT,:A"#)@!;4V@0X$(`5^B=%`(`@\0,A<!U"HM%"(D&Z:````!3:*#" ++M0@!7Z(`4`@"#Q`R%P'3C4VB`PD(`5^AM%`(`@\0,A<!TT%-HP,)"`%?H6A0" ++M`(/$#(7`=0J+10B+R(U0!.M54VC@PD(`5^@]%`(`@\0,A<!U"HM%"(O(C5`( ++MZSA3:/#"0@!7Z"`4`@"#Q`R%P'4*BT4(B\B-4`SK&U-H`,-"`%?H`Q0"`(/$ ++M#(7`=1>+10B+R(U0$/?9&\DCRHD._T`4,\#K!;@"0`"`7UY;7<(,`%:+="0( ++M_TX4BT84=12%]G0.B\[H#0```%;H'K/__UDSP%["!`"XCYM"`.B$$P(`45:+ ++M\8EU\,<&H,E"`,=&!)#)0@#'1@B`R4(`QT8,<,E"`,=&$%S)0@"+3EB#9?P` ++MA<ET"?]V7(L!5O]0!(U.&.C5W/__BTWT7F2)#0````#)PU6+[(U%$%:+=0A0 ++M_W40C4X8_W4,Z.C>__^+312%R70%BU40B1&$P'0$,\#K+O\5],!"`(M.6(7) ++M=`J+$5#_=ES_$NL7A<!U![@%0`"`ZPQ^"B7__P``#0``!X!>7<(0`%6+[+@` ++M`!``.440<P.+11"-31!J`%%0_W4,:O;_%:3`0@!0_Q5\P$(`BTT4A<ET!8M5 ++M$(D1A<!U"_\5],!"`(/X;74$,\#K!>@$````7<(0`/\5],!"`(7`=0:X!4`` ++M@,-^"B7__P``#0``!X##58OL45&#?10#<@>X`0`#@.L_C47X@V7X`%"+10C_ ++M=12#9?P`C4@8_W40_W4,Z)+<__^$P'0$,\#K!>BD____BTT8A<ET"XM5^(D1 ++MBU7\B5$$R<(4`(M$)`3_="0(C4@4Z+7;__^$P'0$,\#K!>AQ____P@@`58OL ++M4U:+=0@SVSA>3'4.BTX(C48(4/]1$#O#=6=7BWT,._MT&FH!4U/_=CCHGA0" ++M`(M./#/;`\$3TXD'B5<$BT407X7`=`N+3AR)"(M.((E(!(M%%(7`=`N+3B2) ++M"(M.*(E(!(M%&(7`=`N+3BR)"(M.,(E(!(M%'(7`=`6+3AB)"#/`7EM=PA@` ++M4U>+?"0,,]LX7TAU$HM/!(U'!%#_41`[PP^%B````%9J`5-3_W<TZ!D4`@"+ ++M3S@S]@/!:@$3UHMT)!A34XD&B58$BT<PB48(B5X,_W=`Z/(3`@"+3T0SVP/! ++M$].)1A`SP(E6%(E&&(E&'#A'270%BT<\ZP-J`5B)1B"+1Q2)1B2+1QB)1BB+ ++M1QR)1BR+1R")1C"+1R2)1C2+1RB)1CB+1RR)1CPSP%Y?6\((`%6+[(/L$%-6 ++MBW4(,]LX7D1U%XL&5O]0$#O##X6@````.%Y$#X25````BT4,9HE=\(/H!V:) ++M7?*)7?AT4$A(=$=(=#](=#=(=!B#Z"EU78M.$.AP````4(U-\.A4YO__ZTJ# ++MQB16C4WPZ)?F__]FQT7R%P!FB5WT9HE=]NLN@\8<Z^*#QA3KW?]V$.O+:@%3 ++M4_]V,.@!$P(`BTXT,_8#P8U-\!/64E#H+>;___]U$(U-\.@*Y___C4WPZ'/F ++M__\SP%Y;R<(,`(O!P>@$)`&*T/;:&])F@>(`P('"`(```/;!`70)A,"X;0$` ++M`'0%N/\!```+PL-6BW0D"(U&$%#_=@C_%:C`0@"%P`^5P(A&1%Z$P'4'Z"#] ++M___K`C/`P@0`@\$(Z"C9__^$P'0#,\##Z07]__]5B^R-11!6BW4(4/]U$(U. ++M"/]U#.CIV___BTT0BU44`4X0@U84`%Z%TG0"B0J$P'0$,\#K!>C+_/__7<(0 ++M`%6+[%%1@WT4`W('N`$``X#K/XU%^(-E^`!0BT4(_W44@V7\`(U("/]U$/]U ++M#.AVV?__BTT8A<ET"XM5^(D1BU7\B5$$A,!T!#/`ZP7H=OS__\G"%`#_="0, ++MBT0D"/]T)`R-2`CHZMO__X3`=`0SP.L%Z%'\___"#`!5B^Q6BW44A?9T`X,F ++M`(-]$`!V/;@`@```.440<P.+11"-31!J`%%0_W4,:O7_%:3`0@!0_Q5XP$(` ++MBTT(BU40`5$(@U$,`(7V=`(!%H7`=`0SP.L%Z/3[__]>7<(0`(-L)`0$Z='Y ++M__^#;"0$!.FI^O__@VPD!`CIO?G__X-L)`0(Z97Z__^#;"0$#.FI^?__@VPD ++M!`SI8Z?__X-L)`0,Z7?Z__^#;"0$$.F+^?__@VPD!!#I1:?__X-L)`00Z5GZ ++M__^+$;D@W$(`_R4DW$(`5E>+\;\@W$(`B\^+%O\5)-Q"`(M4)`R+S_\5(-Q" ++M`(D&7U["!`"+1"0$BTPD#(E('#/`P@P`BT0D!(M,)`R)2"`SP,(,`%-6B_%7 ++MBT9`BUX\.]AR`HO89H'C`/"X`!```#O8<P*+V(-^-`"-?C1T!3E>.'074XO/ ++MZ(/___^#/P!U![@.``>`ZP6)7C@SP%]>6\-6B_&+1GA0BPC_40R%P'4'B\[H ++MG?___U[#B\&Z```@`#/)QT`$>,M"`,=`"&C+0@#'0`Q4RT(`QT`01,M"`,=` ++M%##+0@#'0!@@RT(`QT`<$,M"`,=`(/S*0@#'0"3LRD(`QT`HV,I"`,=`+,C* ++M0@")2#")2#2)4#R)4$"*5"0$B4A(B4A0B4@XB%!$B$A%B4A,B4A4B4A8B4A< ++MB4ALB4APB4ATB4AXQP"XRD(`QT`$J,I"`,=`")C*0@#'0`R$RD(`QT`0=,I" ++M`,=`%&#*0@#'0!A0RD(`QT`<0,I"`,=`("S*0@#'0"0<RD(`QT`H",I"`,=` ++M+/C)0@#"!`!5B^Q35HMU#%>+?1!J$%N#)P!3:!#@0@!6Z'D,`@"#Q`R%P'4* ++MBW4(B3?INP$``%-H,,-"`%;H7`P"`(/$#(7`=.-3:"#$0@!6Z$D,`@"#Q`R% ++MP'4-BW4(B\:-3@3I@`$``%-H0,1"`%;H*0P"`(/$#(7`=0V+=0B+QHU.".E@ ++M`0``4V@`Q$(`5N@)#`(`@\0,A<!U#8MU"(O&C4X,Z4`!``!3:(#"0@!6Z.D+ ++M`@"#Q`R%P'4-BW4(B\:-3A#I(`$``%-H$,1"`%;HR0L"`(/$#(7`=0V+=0B+ ++MQHU.%.D``0``4VB0PD(`5NBI"P(`@\0,A<!U#8MU"(O&C4X8Z>````!3:-#" ++M0@!6Z(D+`@"#Q`R%P'4-BW4(B\:-3ASIP````%-H,,1"`%;H:0L"`(/$#(7` ++M=0V+=0B+QHU.(.F@````4[NPQ$(`4U;H2`L"`(/$#(7`=22+=0@Y1FR-3FQU ++M$HM&>%%34(L0_Q*%P`^%@P```(O&C4XDZVB[D,1"`&H04U;H#PL"`(/$#(7` ++M=2"+=0@Y1G"-3G!U#HM&>%%34(L0_Q*%P'5.B\:-3BCK,[MPPT(`:A!35NC: ++M"@(`@\0,A<!U+8MU"#E&=(U.='4.BT9X45-0BQ#_$H7`=1F+QHU.+/?8&\`C ++MP8D'_T8P,\#K!;@"0`"`7UY;7<(,`(M$)`3_0#"+0##"!`!6BW0D"/].,(M& ++M,'44A?9T#HO.Z`T```!6Z-*I__]9,\!>P@0`N.>;0@#H.`H"`%%6B_&)=?"+ ++M1GC'1?P%````A<!T!HL(4/]1"(M&=,9%_`2%P'0&BPA0_U$(BT9PQD7\`X7` ++M=`:+"%#_40B+1FS&1?P"A<!T!HL(4/]1"(M&7,9%_`&%P'0&BPA0_U$(BT98 ++M@&7\`(7`=`:+"%#_40B#3?S_B\Z#QC3WV1O)(\[HJ/O__XM-]%YDB0T````` ++MR<-5B^R#["Q35HMU"%>+SN@G_/__,\D[P0^%#0(``"!-"XE-U(E-V(E-W(E- ++MX(E-^(E-](M]&(7_=!F+1>`[1P0/A](!``!R"XM%W#L'#X/%`0``@V7P`(!] ++M"P!U-HM&.(M=^(M6-(M-#"O#`].)1>R-1>Q0Z%8-```#7>R)1?`[7CB)7?@/ ++ME44+A<!T"<9%"P'K`XM=^(7;#X1^`0``@&7_`#M=]`^$@````(M=^(M6-"M= ++M](M&>`-5](L(4U)0_U$0B_B%_W1@BU7T._N-!!>)1>AV18-]\`!U38!^1`!T ++M0XM.."O*._EW.H!]"P!T-(M.-(M=^(`D&0#_1?@Y1?AU\8M&>`/*5U&+&%#_ ++M4Q`[^`^%#P$``(M%Z#E%^(E%]'6)ZP3&1?\!BWT8BUWT,](Y5?!U&XO#),`X ++M50MT$#A5_W4%BUWXZPB`?D0`=`*+V#OZB5WL=!B+#XM'!"M-W!M%X#O0<@EW ++M!#O9=@.)3>S_=>R+5C2+31#HP`P``(7`#X6F````BT7L`47<BT7P@U7@`(7` ++M#X61````.$4+=`HY7?AT=#A&1'1XA=MT>3E=]')T*5WT*5WX=!2+1C3_=?B- ++M#!A14/\5:,%"`(/$#(-]'``/A%O^__^+5=R+3>"+PHOY*T74&WW8B7WH=0L] ++M``!```^"._[__XM%'(E5U(U5W(E-V(L(4HU5W%)0_U$,A<!U&.D;_O__,\#K ++M#XM%\.L*:@%8ZP6X!4``@%]>6\G"&`"+1"0$_W0D"(U(2.C&=0``,\#""`!6 ++MBW0D"(M&2(7`=`J+"%#_40B#9D@`,\!>P@0`58OL45-6B_$SVU<Y7FAT7#A> ++M18M6:'0>BTY(BT9,*TY0&T94,_\[^'((=P0[T78"B]$[TW1ABT9<C7W\5U*+ ++M5C2)7?P#5F2+"%)0_U$,BTW\.\MT20%.9"E.:`%.4(M6:!%>5#O#=2H[TW6D ++MBWYD._MT'8M&8(M.-"O'=`V+T(H<.8@904IU]S/;B49@B5YD,\!?7EO)P[@0 ++M```@Z_0[PW7PN`5``(#KZ56+[%.+71165X7;=`.#(P"+?1"%_W1MBW4(C4[H ++MZ#7___^%P'5@BTY(BT8@.\AT,BO!._AR`HOXBT8<5_]U#`-&2%#HA@8"`"E] ++M$`%]#(/$#(7;=`(!.P%^2(M&2#M&('4;_W9(BT9@_W8<BPA0_U$0A<")1E!T ++M##M&2'<0BWT0A?]UEC/`7UY;7<(0`(-F4`"X!4``@.ON58OL45-6BW4(5XU. ++MY.BM_O__A<`/A;T```"+3D2%R71HBT9<4?]V&(L04/]2$(E&3(M61(7`=06) ++M5DSKS3O"=LD[1AQW?(!^*`!T?8M.&#O0<QPKPHT\$8O(,\")3?R+V<'I`O.K ++MB\N#X0,#T_.JB59$BT9<4O]V&(L(4/]1$(E&3#M&1'5+ZX&+=D"#90@`C4T( ++MBP91:-#"0@!6_Q"+10B%P'09BPA0_U$,B_"+10B%P'0&BPA0_U$(B\;K&3/` ++MZQ6X!4``@.L#:@%8@V9,`.L%N`5``(!?7EO)P@0`BT0D!%:-</B+SN@+```` ++MB\[HH_?__U["!``SP(E!2(E!4(E!8(E!9(E!:(A!18E!3(E!5,-6BW0D"%>- ++M?OR+S^C5____BT0D$(7`=`^+"(E.1(M`!(E&2,9&00&+S^A6]___7U[""`"+ ++M1"0$_W0D"(U(3.@.<P``,\#""`!6BW0D"(M&3(7`=`J+"%#_40B#9DP`,\!> ++MP@0`58OLBT44A<!T`X,@`%.+71!65X7;#X0;`0``BW4(,](Y5E@/A;T```"+ ++M?E0[^G0?BT90BTXD*\=T#HO0BAPYB!E!2G7WBUT0B490@V94`(M&*(M64"M& ++M4`-6)(M.2(E%"(U%"%#H2@@``(M-"`%.4(M.4(7`#X6]````BT9H4?]V)(L0 ++M4/]2$(E&6(M.4(7`=1"%R0^$G````(E.6.E\____.\$/AG3___\[1B@/AY$` ++M``"`?C0`#X2"````BU8D@"0*`$$[R'7WB4Y0BTYH4/]V)(L14?]2$(E&6#M& ++M4'5CZ3C___^+1E@[V'8"B]B`?C4`=!B+3CB+1CPK3D`;1D0[T'((=P0[V78" ++MB]F+1B13`T944/]U#.BB`P(``5Y4*5Y8BT44@\0,`5Y`@U9$`(7`=`*)&#/` ++M7UY;7<(0`&H!6.OTN`5``(#K[8M$)`3_="0,BT!(_W0D#(L(4/]1$,(,`(M$ ++M)`3_="0,BT!(_W0D#(L(4/]1#,(,`(-L)`0$Z9?V__^#;"0$!.F*^/__@VPD ++M!`3IC?C__X-L)`0(Z7GV__^#;"0$".EL^/__@VPD!`CI;_C__X-L)`0,Z5OV ++M__^#;"0$#.E.^/__@VPD!`SI4?C__X-L)`00Z3WV__^#;"0$$.DP^/__@VPD ++M!!#I,_C__X-L)`04Z1_V__^#;"0$%.D2^/__@VPD!!3I%?C__X-L)`08Z0'V ++M__^#;"0$&.GT]___@VPD!!CI]_?__X-L)`0<Z>/U__^#;"0$'.G6]___@VPD ++M!!SIV??__X-L)`0@Z<7U__^#;"0$(.FX]___@VPD!"#IN_?__X-L)`0DZ:?U ++M__^#;"0$).F:]___@VPD!"3IG??__X-L)`0HZ8GU__^#;"0$*.E\]___@VPD ++M!"CI?_?__X-L)`0LZ6OU__^#;"0$+.E>]___@VPD!"SI8??__U6+[%%35HMU ++M"#/2BUT05XM.$(M&%"M.&(E5_!M&'#/_._AR"'<$.]EV`HO9,\"%VW0CBT8( ++MC57\4E/_=0R+"%#_40R+5?P!5AB#5AP`A=)U!,9&(`&+311?7EN%R70"B1') ++MPA``B\$SR8E(!,9`"`'&0`D!B4@,B4@0B4@8B4@@B4@HB4@<B4@DB4@LQP"( ++MRT(`PU6+[%:+=1!J$&@0X$(`_W4,@R8`Z$(!`@"#Q`R%P'06:A!H(,-"`/]U ++M#.@L`0(`@\0,A<!U#(M%"(D&_T`$,\#K!;@"0`"`7EW"#`!6BW0D"/].!(M& ++M!'44A?9T#HO.Z`T```!6Z%2@__]9,\!>P@0`N/^;0@#HN@`"`%%6B_&)=?"+ ++M1A"#9?P`A<!T!HL(4/]1"(MV#(--_/^%]G0&BP96_U`(BTWT7F2)#0````#) ++MPU-6B_%7BT80C7X0A<!T"8L(4/]1"(,G`/]T)!"-7@R+R^B^;@``BQM7:"## ++M0@!3BP/_$(I$)!1?B$8*7EO""`!5B^R#[!!6BW4(BT8@B47XBT8DB47\BT8H ++MB47PBT8LB47TBT4,A<!T"XL(BT`$`4WX$47\BT40A<!T"XL(BT`$`4WP$47T ++M@'X(`'09BT80A<!T$HL(C57P4HU5^%)0_U$,A<!U,H!^"0!T*HM&&(M.'`%% ++M^!%-_`%%\(U%^!%-](!^"@!U`XU%\(MV#%!6BP[_41#K`C/`7LG"#`"+`6H` ++M:@!1_U`,P_]T)!"+1"0(_W0D$(M("/]T)!#H2P$``,(0`/]T)!"+1"0(_W0D ++M$(M("/]T)!#HLP$``,(0`%-6B_'H*@```#/;.\-U(6H#,]*-3@3HC/,!`(E> ++M&(A>",9&"0&)7@R)7A")7APSP%Y;P^@/````A<!^"B7__P``#0``!X##@SD` ++M=`7IQO(!`.DA\P$`5HOQ:@SH7)[__X7`670/@V`$`(EP",<`%,Q"`.L",\"+ ++M3"0(4.A';0``:@SH-9[__X7`670/@V`$`(EP",<`!,Q"`.L",\"+3"0,4.@@ ++M;0``7L((`(M,)`3_202+001U#87)=`=J`>@%````,\#"!`!6B_%J`HM."%J# ++MP03'!A3,0@#H&?,!`/9$)`@!=`=6Z`6>__]9B\9>P@0`5HMT)`C_3@2+1@1U ++M%(7V=`Z+SN@-````5NC@G?__63/`7L($`,<!!,Q"`(M)"(-A$`"#80P`Z<KQ ++M`0"+1"0,5H7`5XOQ=`.#(`"+?"00A?]T98!^"0!T'8L.Z.;P`0"%P'0.?E0E ++M__\```T```>`ZTB`9@D`BT8,._AV`HOXA?]T-5?_=A#_="04Z!C^`0`!?A"+ ++M1"0@@\0,`7X8@U8<`(7`=`*)."E^#'4,C4X$QD8)`>A^\@$`,\!?7L(,`%.+ ++M7"005E>%VXOQ=`.#(P"+?"04A?]T*H!^"`!U+(M$)!"+SHE&$(E^#.@8\0$` ++MBTX$Z%#P`0`K?@QT"H7;=`*).S/`ZPG&1@@!N!```"!?7EO"#`!5B^Q65XM] ++M"(M'$(MW#"OP.W40=@.+=1"%]G05BT\(5O]U#`/(4>AI_0$`@\0,`7<0BT44 ++MA<!T`HDP7X7V7G4-@WT0`'0'N`5``(#K`C/`7<(0`%97BWPD#(OQ.WX$="2+ ++M!H7`=`I0Z'^<__^#)@!9@V8$`(7_=`Q7Z#F<__]9B0:)?@1?7L($`(L1,\!0 ++M4%!04?]2$,-5B^Q15H-E_`"+\5>-3?R+^HL&46C`PD(`5O\0BT7\A<!T)HL( ++M5U#_40R%P(M%_'4.A<!T!HL(4/]1"#/`ZR:%P'0&BPA0_U$(BP97:@)J`&H` ++M5O]0$(O.B_CHE/___X7_=`*+QU]>R<-5B^Q14U97B_J+\5<SVVH!BP934U;_ ++M4!`[PW5GBP:-3?Q1:,#"0@!6B5W\_Q"+1?P[PW0H_W4(BPA0_U$,A<"+1?QU ++M#CO#=`:+"%#_40@SP.LQ.\-T!HL(4/]1"/]U"(L&:@)34U;_4!"+#HE%"(L' ++MBW\$4U-74%;_41`Y70AT`XM%"%]>6\G"!`!5B^Q14U:+=0A7B57\B]F+/H,F ++M`(7_="NX````@#OX<P*+QXL+C54(4E#_=?Q3_U$,BTT(`0X!3?PK^87`=0:% ++MR771,\!?7EO)P@0`58OL5HMU"(U%"(EU"%#HH?___X7`=08[=0@/E<!>7<($ ++M`%6+[%-65XM]"(O:B_&%_W0MN````(`[^',"B\>+#HU5"%)04U;_40P#70@K ++M?0B%P'4..44(==:X!4``@.L",\!?7EM=P@0`5HOQC4X$Z/G[__^%P'4DC4X( ++MZ.W[__^%P'48($80.48,C4X,=`)>PU:Z(89``.A![@$`7L-6BW0D"(M.!.BR ++M[0$`@'X0`'41BP:+SO]0!(U.".A=[@$`Z^$SP%["!`"`81``@\$$Z4GN`0!6 ++MB_&#?@0`C4X$QD80`70%Z#3N`0"#?@P`C4X,7G0%Z87M`0##N+Z<0@#HBOH! ++M`%%35HOQ,]N)=?#'!F#-0@#'1@10S4(`QT8(^,="`,=&#$#-0@")7A"-3B"( ++M7A>)7ACHH)'__XA>0XE>4(E=_(E>6(E>7(U.8,9%_`+H$I___XU.;,9%_`/H ++M!I___XU.>,9%_`3HI0```(V.F````,9%_`7HZY[__XV.I````,9%_`;HGP(` ++M`(V.\````.C1GO__B9X``0``C88$`0``B1B)6`2)GA`!``"-AA0!``")&(E8 ++M!(E8"(V&,`$``(D8B5@$B5@(C8X\`0``QD7\#.CA'0``C8YH`0``QD7\#>B` ++MGO__BTWTQP8@S4(`QT8$$,U"`,=&"`#-0@#'1@SPS$(`B\9>6V2)#0````#) ++MPU:+\>A-GO__,\")1@R)1A")1A2+QE[#58OL5HMU$%>+?0R#)@!J$&@0X$(` ++M5^AP^0$`@\0,A<!T%&H0:$#%0@!7Z%SY`0"#Q`R%P'4*BT4(B\B-4`3K.FH0 ++M:/#$0@!7Z#[Y`0"#Q`R%P'4*BT4(B\B-4`CK'&H0:"##0@!7Z"#Y`0"#Q`R% ++MP'47BT4(B\B-4`SWV1O)(\J)#O]`$#/`ZP6X`D``@%]>7<(,`(M$)`3_0!"+ ++M0!#"!`!6BW0D"/].$(M&$'44A?9T#HO.Z`T```!6Z"^8__]9,\!>P@0`N'2= ++M0@#HE?@!`%%15HOQB77P_[9H`0``QT7\#````.@$F/__BX8\`0``65"+"/]1 ++M"(V.,`$``,9%_`OH)!P``(V.%`$``,9%_`KHXD8!`(N&$`$``,9%_`F%P'0& ++MBPA0_U$(_[8$`0``Z+J7__^+A@`!``!9A<#&1?P'=`:+"%#_40A7_[;P```` ++MZ)F7____MI@```#HCI?__UF-?GA9B7WLC4\,QD7\#>B#1@$`_S?H<Y?___]V ++M;.AKE____W9@Z&.7__^+1ER#Q`R%P,9%_`%?=`:+"%#_40B+1EB`9?P`A<!T ++M!HL(4/]1"(MV4(--_/^%]G0&BP96_U`(BTWT7F2)#0````#)P[B(G4(`Z(SW ++M`0!15HOQB77P@V7\`(U.#.@+1@$`_S;H^Y;__UE>BTWT9(D-`````,G#B\$S ++MR8D(B4@$9HE("(A("HA("XE(#(E($&:)2!2(2!:(2!>)2!B)2!QFB4@@B$@B ++MB$@CPU6+[%.+V597C8LP`0``Z!@;``"+@P`!``"-LP`!``"%P'0)BPA0_U$( ++M@R8`BX,0`0``C;,0`0``A<!T"8L(4/]1"(,F`(MU"(M%#&H&C7L@6?.EB4-4 ++MBD48BTTP_W44B$,4BD4<B$,5BT4LB8,@`0``B8,H`0``C7M0B8LD`0``B8LL ++M`0``B\_H`V4``(M#6(US6(7`=`F+"%#_40B#)@"+!U9H8,9"`%"+"/\1BXL\ ++M`0``C;,\`0``:@'_=13HZ?7__XL&_W4DC8L4`0``@&`)`.A#K/__BD4HBWT@ ++MB$,6BT40C7-@5XO.B4,8Z+N<__^#PVQ7B\OHL)S__XL.Z!O$__^$P'47B\[H ++MQ</__XL/B]/HU[+__XO+Z+7#__]?7EM=PBP`N)2=0@#H`?8!`%&+10B+30R# ++M9?P`BU40@'A#`%-65XF(*`$``(EE\(F0+`$``'4>BT!0A<!T%XLP4E%0_U8, ++MZP^X3(M``,.X#@`'@.L",\"+3?1?7F2)#0````!;R<(,`+B@G4(`Z*#U`0"# ++M[`Q35HMU"#/)5XE-_#E.4(EE\'4$,\#K93A.0W1&BX8\`0``BU`@B57HBT`D ++MB47LBT4,.\%T*/^V)`$``/^V(`$``/^V+`$``/^V*`$``/]P!/\PZ#8````! ++M1>@15>R-1>CK`XM%#(MV4%!6BP[_41#K"[CJBT``P[@.``>`BTWT7UYDB0T` ++M````6\G""`!5B^R-51"-31CH0````(U5$(U-".@U````BT40"T44=0N#910` ++MQT40`0```/]U'/]U&/]U#/]U".BS]P$`_W44_W404E#H=O8!`%W"&`!35E>+ ++M\8OZNP```("+5@2+!H72=P0[PW8J:@%9Z$'W`0")!HE6!(L'BU<$:@%9Z"_W ++M`0")!XE7!(M6!(L&A=)WV'/27UY;P[BLG4(`Z''T`0!1BT4(4U97BX`P`0`` ++MB67P_W40@V7\`(L(_W4,4/]1#.L+N,>,0`##N`X`!X"+3?1?7F2)#0````!; ++MR<(,`%6+[%%1@&7_`%.+70A65S/_.7L$B_&)=?AT&(L#BP`Y>`1T"XL(Z,C# ++M__^$P'0$QD7_`8-^2`-U$X!]_P!T#8MU#(L&B7X$9HDXZPZ#QF!6BW4,B\[H ++M59K__SE[!(E]"`^&P@```.L",_\Y?0AT!XO.Z!&I__^+`XM-"(L\B(O.5^C' ++MG/__BT,$2#E%"(M%^'4/@+B0`````'0&QD4/`>L$@&4/`(-^!`!U"(!]#P!T ++M:.LF@WA(`W4F@WT(`'4@@W\$`G4:BP_H)\/__X3`=`^`?0\`=$.+1?C&0$$! ++MZSJ+#C/_Z.ZM__^$P'4'Z(*\__^+^(!]#P!T((L.,M+H];G__X3`=1.+3?A6 ++M:(#-0@!7QD%!`>AI`0``_T4(BT4(.T,$#X)`____7UY;R<((`+C`G4(`Z/KR ++M`0"#[!!35HMU$#/;9HE=Y&:)7>:)'HE>!&:)7@B(7@J(7@N)7>R+01B-5>12 ++MB5W\_W4,BP#_=0B+"%#_41@[PW0$B]CK'V:#?>1`=0V-1>2+SE#H)P```.L+ ++M9CE=Y'0%NP5``("-3>3H!\G__XM-](O#7EMDB0T`````R<(,`(M$)`135C/V ++MBU`(,]N)$8M0#(E1!`^W4`([UG08@_H9=Q-F.7`&=0T/MT`$@_AD<P2+V(OR ++M9HEQ"(A9"E[&00L!6\($`(U!.E"-@=@```!0_['H````BTD8Z*Y$``##N-2= ++M0@#H%/(!`(/L#%:+\?]U"(U-Z.ABE___BU4,@V7\`(U-Z.@H````BT90_W7H ++MBPA0_U$<_W7HB_#H9Y'__UF+QHM-]%YDB0T`````R<((`%97B_J+\6B8S4(` ++MZ!*;__^+SE?HSIK__U]>P[CPG4(`Z*?Q`0"#[!A6B_'_=0R-3>CH]9;__X-E ++M_`"#?0@`=#)HF,U"`(U-Z.C5FO__BU4(C4W<Z$T```!0C4WHQD7\`>B!FO__ ++M_W7<@&7\`.CDD/__68M5$(U-Z.B#____BT90_W7HBPA0_U$<_W7HB_#HPI#_ ++M_UF+QHM-]%YDB0T`````R<(,`%	"0``%:+\>@WJO__B\9>6<-6B_'H3+K_ ++M__]T)`R+SO]T)`Q0Z$O___]>P@@`N`R>0@#H[O`!`(/L&%:+\?]U#(U-Z.@\ ++MEO__@V7\`(-]"`!T,FB8S4(`C4WHZ!R:__^+50B-3=SHE/___U"-3>C&1?P! ++MZ,B9____==R`9?P`Z"N0__]9BU40C4WHZ,K^__^+512-3>CHO_[__XM&4/]U ++MZ(L(4/]1'/]UZ(OPZ/Z/__]9B\:+3?1>9(D-`````,G"$`!3,MLX6AE6BW0D ++M#`^4P%:#P@Q04NCHI/__A,!T"C@>=02P`>L$LP&*PUY;P@0`58OL48U%_%#H ++MQ?____;8&L`C1?S)P[@HGD(`Z!7P`0"#[!135HOQ5S/;BT889HE=X&:)7>*) ++M7>B+.(N&Z````(E%\(B>S````(L/C57@4FHU4%>)7?S_41@[PW0$B_#K5&:# ++M?>`3=4+_=>B-CJ0```#HT0```(U-X.@OQO__9HE=X&:)7>*)7>B+!XU-X%%J ++M"?]U\,=%_`$```!7_U`8.\-T'HOPZ94```!F.5W@=,:^!4``@(U-X.CPQ?__ ++MB\;K9&:#?>`3=6R+1>C&ALP````!B8;(````@TW\_XU-X.C)Q?__C8:D```` ++MB\Y0:@K_=?#H.OS__SO#=2J-AK````"+SE!J"_]U\.@C_/__.\-U$XV&O``` ++M`(O.4&H,_W7PZ`S\__^+3?1?7EMDB0T`````R<-F.5W@=)Z^!4``@(U-X.EQ ++M____5HMT)`B!Y@#P```SP('^`$````^5P$@D\(/`(/9$)`B2B4$D=04,`8E! ++M)('^`*```%YU!(!))Z#&02@!P@0`BH&1````@WE(`XI11%"-@80```!0#Y3! ++MZ!`W``##BT0D!%,RVXA8&(A8&8A8&CB9QP```'08BY&\````B5`0BY'````` ++MB5`4QD`:`>L:BU$8.%I/=!)6BW)$B7`0BU)(B5`4QD`:`5XXF:\```!T%8N1 ++MI````(D0BY&H````B5`$QD`8`3B9NP```%MT%HN1L````(E0"(N)M````(E( ++M#,9`&0'"!`"X3)Y"`.C^[0$`@^Q`4U:+\8U-Z(V&A````%#H8Z/__S/;.5WL ++MB5W\=!4XGI````!U"(U-Z.AQI/__.5WL=1(X7D(/A*`````X7A</A)<```"- ++M3=SHB)+__XU%W(O.4(U%Z%#&1?P!Z&GY__\XGI````!T"CE=X'0%.%Y!=`K_ ++M==SH"XW__^M?C4W0Z%&2__^-1;2+SE#&1?P"Z-C^__^*1<P*1<T*1<YT+(U% ++MW(U-T%#HSI/__XU-M.C'#P``@<8P`0``B\[HI(C__XU%M(O.4.@F$@``_W70 ++MZ+.,____==SHJXS__UE9@TW\_XU-Z.BF.P$`BTWT7EMDB0T`````R</_<1SH ++MAXS__UG#N(N>0@#H\NP!`('LE````(M%#%-6B_%7C4VDQ@`!Z`FK__^-3<SH ++MJI'__XM]"(-E_`!J`(U-I(L'4.AHKO__A,`/A"("``"+1DR#^`(/A`0"``"% ++MP`^%Y@```(O/Z,26__]`B\]0C4684.B^`@``C4W,B]!1C4W<QD7\`>@PD?__ ++M_W68QD7\`^CXB___68U5"%**5CKVVHV>V````(M%O!O2B47L(].-GKP```!2 ++MBI;'````]MH;THM%P"/3B47P4HM&4/]V>(U5I(L(4HU5[%+_==Q0_U$4A<!T ++M!(OPZQR+10B#Z`!T3$AT0DAT.TAT,4AT)4AT&[X%0`"`_W7<Z(&+____=<SH ++M>8O__UGI3P$``+X$0`"`Z^/'1DP#````ZQ+'1DP"````,_;KS\=&3`$```#_ ++M==R`9?P`Z$6+__]9BT9,@_@#=3>+S^BGU?__A,!U(U>+SO\U),Q"`.A\^?__ ++MA<!T!XOPZ>P```"^!4``@.GB````QD8\`>F+`0``@_@$=6]7C4WHZ!J1__^- ++M3>C&1?P$Z%W5__^$P'405XO._S4DS$(`Z#+Y___K)HL/BU7HZ-FE__^$P'4K ++MZ'NT__^-3>A748O._S4HS$(`4.@P^O__A<"+\'4%O@5``(#_=>CI&/____]U ++MZ.B6BO__Z18!``"+1<2+#\'H!*@!=!;H?Z7__X3`#X7^````5_\U,,Q"`.LR ++MZ$RQ__^$P`^$Z````(L/Z$:G__^$P`^%V0```/\5],!"`(/X`@^$R@```%?_ ++M-2S,0@"+SNB9^?__A<`/A0____\S]O]US.@DBO__68O&Z;,```"+#^@SN___ ++MB]B%VP^,D0```(L'9H-\6`(`#X2#````5XU-Z.@7D/__.UWLQD7\!7,+BT7H ++MB5WL9H,D6`"-C6#____H?*C__XU-B.@=C___:@"-C6#_____=>C&1?P&Z-NK ++M__^$P'0I]D6``70CC47HC8[P````4.B3D/__BU6`BTWHB9;L````@^+^Z&JD ++M____=8CHA(G___]UZ.A\B?__65F+10S_=<R`(`#H;(G__UDSP(M-]%]>6V2) ++M#0````#)P@@`58OL48-E_`!1_W4,BTT(Z(6-__^+10C)P@@`N,*>0@#HJND! ++M`(/L,%-65XM]#(OQQ@<!Z'CY__\SVSO##X6E`P``BT88(%WSBY;H````C4WS ++MBP!1:A6+R.C[.```.\,/A8(#``"+SNBT^O__C9:$````C4W0Z&4S```X7?.) ++M7?QU!XO.Z#[[__^-1="-3=Q0Z.:.__^#?D@#QD7\`74,BTW0Z+"Y__^$P'4I ++MC47<C59@4(U-Q.@^`P``4(U-W,9%_`+HA(____]UQ,9%_`'HA8C__UF`OI`` ++M````=#2-OI@```"-1=Q0B\_H78___X!]\P!T$8L/Z%RC__^`??,`#X7,`@`` ++MB\[HY0@``.G``@``@'XY`'4CC47<5U"+SNBP^___.\-T!XOPZ:4"``"`/P`/ ++MA9H"``#&!P&-1=R-CI@```!0Z`*/__^`??,`=`B`)P#I>@(``&H8Z,:'__]9 ++MB47L.\/&1?P#=`Z+R.@?`P``B_B)?>SK!8E=[(O[._O&1?P!B;[\````B7WH ++M=`:+!U?_4`2`?CD`BX[\````BU7<QD7\!`^4P/;8&\")61`D_HE9%(/`!(/! ++M"%!2Z!RT__^$P'4UC47<B\Y0_S4TS$(`Z.7V__^+\,9%_`$[\W03._L/A.L! ++M``"+!U?_4`CIX`$``#O[Z<\!``"*5CK&1C\!A-*[`!````^$U````(N&W``` ++M`(N.V````(7`#X?`````A<D/AK@```"%P`^'L````'((.\L/@Z8```"`OLP` ++M````#X29````BX;(````)0```/`]````H'4&QD8^`>L6@+[,`````'1X]H;) ++M````!'1O@&8^`/^VV````(V.!`$``.@XZO__:A3HE8;__X7`670,@V`$`,<` ++MO,U"`.L",\"-O@P!``"-GA`!``!0B\N)!^AW50``BP>+C@@!``"+E@0!``"# ++M8!``B5`(B4@,_S.+30CH554``(M][.G/````@'XM``^$F@```(!^.0`/A98` ++M``"$T@^$B````(N.W````(N&V````(7)=P0[PW9TB8;@````B8[D````48N. ++M_````%"#P0CH<;/__X3`B$8[=2F-1=R+SE#_-3C,0@#H=?7__XO8A=MT$H7_ ++MQD7\`70&BP=7_U`(B_/K=8N&_````(U(".A.L?__A,!U%HU%W(O.4&B<S4(` ++MZ#OU__^+V(7;=<:`?CD`=!R+!VH`:@#_MM0```#_MM````!7_U`0B]B%VW6D ++MBTT(5^A^5```5XV.``$``.AR5```BT4,QD7\`8`@`(7_=`:+!U?_4`@S]O]U ++MW.A]A?___W70Z'6%__]9B\99BTWT7UY;9(D-`````,G""`"XU)Y"`.C-Y0$` ++M@^P4@V7L`%-6B_*)3?!6C4W@Z&*+__^+70B#9?P`@WL$`'0YBP-F@S@Z=3&+ ++M1@2%P'0JBPYFBT1!_F8]7`!T!F8]+P!U%^C@M?__A,!U#O]-Y(M%X(M-Y&:# ++M)$@`4XU-X.B!CO__BTWPC47@4.@'B____W7@Z-R$__^+1?!9BTWT7EMDB0T` ++M````R<($`(O!@V`$`(-("/^`8`P`QP#,S4(`PU6+[%:+=1!J$&@0X$(`_W4, ++M@R8`Z#?E`0"#Q`R%P'06:A!HL,)"`/]U#.@AY0$`@\0,A<!U#(M%"(D&_T`$ ++M,\#K!;@"0`"`7EW"#`!6BW0D"/].!(M&!'44A?9T#HO.Z`T```!6Z$F$__]9 ++M,\!>P@0`@\$(Z4>N__^-07B+21A0_W0D".C3-@``P@0`N/">0@#HE.0!`(/L ++M%(M%$%-6BW4(5S/;C;X``0``B1B)9?")7?R+!SO#=`B+"%#_40B)'XN&$`$` ++M`(V^$`$``#O#=`B+"%#_40B)'XM-#(V&\````(F>T````(F>V````(F>X``` ++M`(A>.(A>.8A>.HA>.XA>/(A>/8A>/HA>/XA>0(A>08A>0HF>U````(F>W``` ++M`(F>Y````(F.Z````(F>[````(E8!(L`.5T49HD8C8:8````B5@$BP!FB1AU ++M"3A>%74$QD8]`8M&&%&+SHLXZ!;___\[PP^%#0(``&:)7>!FB5WBB5WHBP>- ++M3>!1:AW_=0S&1?P!5_]0&#O#=`2+\.L29CE=X'0O9H-]X!5T$KX%0`"`C4W@ ++MZ/>Y___IJ`$``(M%Z,9&.0&)AM````"+1>R)AM0```"-3>"(7?SHT;G__XM5 ++M#(U&.%!J#XO/Z-(R```[PP^%CP$``(O.Z`+Q__\[PP^%@`$``(M.5#O+=!"- ++M5GCH[O+__SK##X0<`0``BXZ(````.\MU##B>D`````^%!@$``(M&2(E=##O# ++M#XR+````@_@!?A2#^`)T!8/X!'5\.\MT>$F)30SK<HN&&`$``#O#=&@[R')# ++M=0TX7A9U/#B>D0```'0T,_\[OA@!``!S)(N&A````(N.%`$``(L$N(L,N8L` ++MBPF+T.CLD?__A<!U"4?KU#+`.L-T%#E=%'4<.%X5=1>X!4``@.G'````BX88 ++M`0``QD9"`8E%#/]U#(V.A````.CG!0``B5T(.5T4QD7\`G5".%X5=3TX7A1T ++M36H0Z):!__\[PUET$8E8!(E8"(E8#,<`Y,U"`.L",\!0C4T(Z(!0```Y70AT ++M"XM-$(M%"(E="(D!.5T(B%W\=`F+10B+"%#_40@SP.M)C44/B\Y0C44(4,9% ++M#P'H-/C__XOP._-T%(M%"(A=_#O#=`:+"%#_40B+QNL<.%T/=*F+10B(7?P[ ++MPW3`Z[BX69]``,.X#@`'@(M-]%]>9(D-`````%O)PA``BT0D!/]`!(M`!,($ ++M`(M,)`3_202+001U"5'H"X'__UDSP,($`+C\GD(`Z'+A`0!1BT4(4U8SR3E- ++M#%>)9?")3?R(2#UU$CA(%70)QT4,`0```.L$QD`]`8I8.8VXT````/;;&]N+ ++M2%`CWXMP>%.+$?]U##/;.)B0````#Y7#4U91_U(8ZPNX^Y]``,.X#@`'@(M- ++M]%]>9(D-`````%O)P@@`58OL@^P@4U:+\5>#O@`!````=0<SP.G\````BX;\ ++M````@V7\`(!^.P"+6!"+>!1T/8N6Y````(V.X````#O7<BUW!HL).\MV)5=3 ++MC4@(Z'RM__^$P(A&.W44C49XB\Y0_S4XS$(`Z(#O__^)1?R-1>")GM@```!0 ++MB\Z)OMP```#&1CH!Z.7Q__^+1?AFBTWZBM`*U`K1="[VV1O)C57P(\J-5>A1 ++MBLSVV1O)(\KVV%&-3>`;P"/!BX[\````4(/!".A>K/__BX[\````Z)30__\S ++MVSO#=4"+A@`!```[PW0,BPA0_U$(B9X``0``.9[T````=!^+ENP```"+CO`` ++M``"-OO````#H6IK__XL'B5\$9HD8BT7\7UY;R</IW_[__U:+\3/`5SA&075" ++M.8:<````=#HX1A1U-3A&/70P.(;,````="B+CI@```"+EL@```"-OI@```#H ++M%YK__X3`=0U7:/3-0@"+SNA][O__7U[#N`B?0@#HA-\!`%%35HMU"%<SVXO. ++MB67PB5W\Z(O___\[PW5T.%XZ=0R+SN@F[?__.%XZ=!N+CM@```"+EMP````! ++MCE@!``"-AE@!```14`0XGI````"-AD`!``!U!HV&2`$``(,``1%8!#A>/W0' ++MB\[H.O___XM&4#/2.%XXBP@/E<)2_W4,4/]1(.L+N!6B0`##N`X`!X"+3?1? ++M7F2)#0````!;R<((`%6+[(/L+%:+=0A7@WY4``^$PP```(!E"P"-3?3HG8/_ ++M_X-]#`&+?1!U>(/__W1SC4W4Z(>#__^-3>#HC>L``(M.%(U%U%!7Z,LP``"% ++MP'4BC474C4WT4.@%A?__BT84B]>+"(U%"U!J#^@`+@``A<!T'8U-X(OPZ/LL ++M`0#_==3HZGW___]U].CB??__6>M$C4W@Z.`L`0#_==3HSWW__UGK$VHCC4WT ++MZ!.$__]7C4WTZ-^'__\/MDT+_W7TBW94BP91_W445O]0#/]U](OPZ)M]__]9 ++MB\;K`C/`7U[)PA``N!2?0@#H^]T!`%&+10B#9?P`4U:#>%0`C7!45XEE\'42 ++MBT!(5FCPQ$(`4(L(_Q&%P'48BS;_=0R+!E;_4`SK"[A1HT``P[@.``>`BTWT ++M7UYDB0T`````6\G""`"+5"0$5C/V9HL"0D)FA<!T#V8]7`!T!F8]+P!UZD;K ++MYXDQ7L($`(O!5HI0&HUP$/;:&]*+2!PCUHUP"%**4!GVVAO2(]92BE`8]MH; ++MTB/0Z'.7__]>P[@HGT(`Z$G=`0"#[`Q35HOQ,]LY7AAU!S/`Z8X```!7B5WH ++MB5WLB5WPB[XT`0``C4WH5XE=_.AJ`@``B7WL,_\YGC0!``!V)(M%Z(E\^`2- ++M#/B+AC`!``"+!+C_<!SH1____T<[OC0!``!RW(U-Z.A.`0``,_\Y7>QV&XM% ++MZ(N.,`$``(M$^`2+#('H0/___T<[?>QRY8V.,`$``.BM````_W7HZ#-\__]9 ++M,\!?BTWT7EMDB0T`````R<-65XOQZ*S\__^+SHOXZ#/___^%_W4"B_B#9A@` ++MB\=?7L-358ML)`Q6,_:+V87M=A]7BP.+/+"%_W0/_S?HX'O__U?HVGO__UE9 ++M1COU<N-?58O+Z`(!``!>75O"!`!65XOYBW<$A?9T(%.+!TZ+'+"%VW00_W,< ++MZ*9[__]3Z*![__]9687V=>);_S?HDGO__UE?7L-65XOYBW<$A?9T'E.+!TZ+ ++M'+"%VW0.B\OHXN[__U/H:WO__UF%]G7D6X-G!`!?7L.X/I]"`.C+VP$`45:+ ++M\6HPZ!5[__]9B\B)3?`SP#O(B47\=`7H2=K__X--_/^)!HL(4/]1!(M-](O& ++M7F2)#0````#)PU.+602#^P%V1U:+,5>+^X/N"-'O4XO7B\[H)`$``$]U\XT\ ++MWHM6"(L'BT\$B1>+5@Q+B5<$4XE&"&H!B4X,6HO.@^\(Z/D```"#^P%WUE]> ++M6\-65XM\)`R+\87_="*+SXL&:<G___\_`TX$P>$"48T,N%%0_Q5HP4(`@\0, ++M*7X$7U["!`"X4I]"`.@"VP$`45.+V6HHZ$QZ__]9B47P,\D[P8E-_'0?BU4( ++M5E=J!UF+\HOX@\(<\Z52C4@<Z'R`__^+3?!?7HM#!(U0`8E3!(L36XD,@HM- ++M]&2)#0````#)P@0`58OL5HOQ5XM]"(-F!``[?@AV1H'_____?W85C44(:+#C ++M0@!0QT4(Y0<``.B>V@$`_S;H`'K__X,F`(-F"`"X____'UD[^'<"B\?!X`-0 ++MZ+!Y__]9B0:)?@A?7EW"!`!5B^Q148M$T013BQS15HE%_%>)7?B-!!([10AW ++M2W,@BWS!"(L<P8UP`3O[<A!W$(M\\02+7,$$._MR!'8"B\:+/,&+7?B--,$[ ++MWW(<=PB+??P[?@1S$HL^B3S1BW8$B731!(O0T>#KL(M%_%^)'-%>B431!%O) ++MP@0`@VPD!`3I9^#__X-L)`0$Z?'@__^#;"0$!.GTX/__@VPD!`CI2>#__X-L ++M)`0(Z=/@__^#;"0$".G6X/__@VPD!`SI*^#__X-L)`0,Z;7@__^#;"0$#.FX ++MX/__N&2?0@#H<MD!`(/L#%-6B_%7C8Z8````Z`(#``"-3ASH;W?___]U"#/; ++MC7Y(B5XLB5XX(%X8(%X9B\_HN'____]U#(O7C4WHZ.1]__^+`&H!4(U.8(E= ++M_.C*FO___W7HBMCVVQK;@TW\__[#Z)1X__]97UZ$VUMT!^@^HO__ZP(SP(M- ++M]&2)#0````#)P@@`BT0D!/]T)`B-2$S&0!`!Z/!^__\SP,((`+APGT(`Z,G8 ++M`0!1BTT(@V7\`%-6BT%`5X7`B67P=`[_=1"+"/]U#%#_40SK(XM)1(7)=00S ++MP.L8_W40BP'_=0S_4`3K"[B(J$``P[@.``>`BTWT7UYDB0T`````6\G"#`"X ++M?)]"`.AHV`$`48M-"(-E_`!35HM!0%>%P(EE\'0._W40BPC_=0Q0_U$0ZR.+ ++M242%R74$,\#K&/]U$(L!_W4,_U`(ZPNXZ:A``,.X#@`'@(M-]%]>9(D-```` ++M`%O)P@P`N)"?0@#H!]@!`(/L%%-65S/;B67PB5W\9HE=X&:)7>*)7>B+10C& ++M1?P!.%@4=!N#?0P$#X6O````@\!04(U-X.A8K?__Z9X```"+30R#^0IW2G1# ++M@^D$=#=)270@270-24D/A8````#_<'SK1?]P8(U-X/]P7.BUK?__ZVN+0'R- ++M3>#!Z`0D`5#H6*W__^M8!80```#KI8/`9.LU@^D+="U)="6#Z2EU/XM(?.AM ++MQ___4(U-X.A1K?__ZRRXP:E``,.X#@`'@.LT@\!TZP.#P&Q0C4W@Z(*M__]F ++MQT7B%P!FB5WD9HE=YO]U$(U-X.@EKO__C4W@Z(ZM__\SP(M-]%]>9(D-```` ++M`%O)P@P`BP&+5"0$5HMQ#(L$D(-()/^)<""+00R#^/]T"HLQBP2&B5`DZP.) ++M41#_012)40Q>P@0`BT0D!%>+4""#^O]T#8LYBQ27BW@DB7HDZP:+4"2)41"+ ++M4"2#^O]T#8LYBQ27BW@@B7H@ZP:+4"")40R#2"#_@T@D__])%%_"!`!65XOY ++MBTPD#(L'BS2(BP:%P'01BPA0_U$(@R8`5HO/Z)+___]?7L($`(-)#/^#21#_ ++M@V$4`.DT!P``N*2?0@#H0M8!`%%6B_$SP(EU\(D&B48$B48(@TX,_X-.$/^) ++M1?R)1A3HAK3__XM-](E&&(O&7F2)#0````#)PU:+\8M&%#M&&'(TBT80@_C_ ++M=0>X!4``@%[#BPZ+!(&+"(/`&%!J`8L1:@!J`%'_4A"%P'4,_W80B\[H1___ ++M_S/`7L.XPI]"`.B_U0$`45.+V5:+=0B+`U>+/+"+!X7`=!P[<PP/A,<```!7 ++MZ,S^__]6B\OHD?[__^FT````B\OH?/___S/V.\8/A:4```!J8.C,=/__68E% ++M\#O&B77\=`F+R.AWP/__B_"#3?S_B77PA?9T!HL&5O]0!(M'"(!F5`!0C4X8 ++MQT7\`0```.C/H/__A,!U&>ARGO__@TW\_XOXA?9T!HL&5O]0"(O'ZT56B\^) ++M=P3H<T,``/]U"(O+Z`;^__^#3?S_A?9T!HL&5O]0"(M/&(M7'(U'&(OQ"_)T ++M$8L_4&H`4HLW45?_5A"%P'4",\"+3?1?7EMDB0T`````R<($`%6+[%97BWT4 ++MA?]T`X,G`(-]$`!U!#/`ZS:+=0B+3A#_=@R!P9@```#HTO[__X7`=1Z+3A"+ ++M1@Q7BXF8````_W40BP2!_W4,BP!0BPC_40Q?7EW"$`!5B^Q6BW4(BTX0_W8, ++M@<&8````Z)+^__^%P'4CBT80_W48BTX,BX"8````_W44BP2(_W40BP#_=0R+ ++M"%#_41!>7<(4`%:+="0(BTX,_W8(@<&8````Z%#^__^%P'4?BT8,BTX(_W0D ++M#(N`F````(L$B(M`!(/`!%"+"/]1#%[""`"X_I]"`.CHTP$`@^Q,BT40@V7\ ++M`%-6@R``5XM]"(EE\(!_%`!T"&H!6.E"`@``BT]`A<ET#(L!_Q"%P`^%+P(` ++M`/]U#(U-T.C">/__C4W<QD7\`>AS>/__BT]$BU70C47<QD7\`E#HMZ7__X3` ++M=0AJ`5[IV`$``&H!C4]<7E;_==SH%Y7__X3`#X3!`0``BT=\P>@$J`$/A;,! ++M``"-3:CHW0$``&I@QD7\`^B8<O__68O(B4T(A<G&1?P$=`GH0K[__XOPZP(S ++M]H7VQD7\`XEU#'0&BP96_U`$BT7<@&94`%"-3AC&1?P%Z)F>__^$P'4HZ#R< ++M__^%]HOXQD7\`W0&BP96_U`(C4VHQD7\`NB\`@``B_?I-@$``(V?E````(O+ ++MZ,#\__^%P(E%"'0BA?;&1?P#=`:+!E;_4`B-3:C&1?P"Z(<"``"+=0CI``$` ++M`%:-3:B)=:SH]T```(U%W(U-L%#H!WG__X7VQD7\`W0&BP96_U`(B\OHW6W_ ++M_XU%J(O+4.B#`P``4(O+B44(Z%W[__^+1V"+7UR-=S")1>R+SNCW`P``BT8$ ++MBU7LC4@!B4X$BPZ-=QB)',&)5,$$B\[HE6W__XU%T(O.4.@#;O__C7<DB\[H ++M?P,``(M&!&H8C4@!B4X$BP[&!`$!Z%AQ__^%P%ET(,=`!.C)0@"#8`@`@V`4 ++M`,<`(,Y"`,=`!!#.0@"+\.L",_:%]HEU#'0&BP96_U`$BT4(@\?\5XU.%,9% ++M_`:)1@R)?A#H%D```(M%$(U-J,9%_`*),.B!`0``,_;_==SH)''___]UT.@< ++M<?__68O&6>L+N(FO0`##N`X`!X"+3?1?7F2)#0````!;R<(,`+@0H$(`Z&?1 ++M`0!15E>+\3/_B77PB3Z-3@B)??R)?@3H)G;__X-.(/^+3?2#3B3_B7X8B7X< ++MB\9?7F2)#0````#)PU6+[%:+=1!7BWT,@R8`:A!H$.!"`%?H.M$!`(/$#(7` ++M=0>+10B)!NM,:A!HH,)"`%?H']$!`(/$#(7`=.5J$&B`PD(`5^@+T0$`@\0, ++MA<!TT6H0:,#"0@!7Z/?0`0"#Q`R%P'47BT4(B\CWV8U0!!O)(\J)#O]`"#/` ++MZP6X`D``@%]>7<(,`%:+="0(_TX(BT8(=12%]G0.B\[H#0```%;H$W#__UDS ++MP%["!`"X)Z!"`.AYT`$`45:+\8EU\,<&(,Y"`,=&!!#.0@"#9?P`@WX4`'09 ++MBT80BTX,48M0*(`D"@"-B)@```#HO/G__XMV%(--_/^%]G0&BP96_U`(BTWT ++M7F2)#0````#)PU:+\?]V".BB;___BS99A?9T!HL&5O]0"%[#N#R@0@#H`-`! ++M`%%35HMU"#/;5XE=_(M&-(EE\#O#=#Z)70B+"(U5"%)H\,1"`%#&1?P!_Q&+ ++M10@[PW0?_W4,BPA0_U$,B_"+10@[PXA=_'0&BPA0_U$(B\;K*XA=_#E>.'4' ++MN`%``(#K'/]U#,9�&+3CB+`?]0$.L+N(>Q0`##N`X`!X"+3?1?7F2)#0`` ++M``!;R<((`#/`P@P`,\#""`"X4*!"`.A?SP$`4597B_F)??"+=P2#9?P`A?9T ++M'E.+!TZ+'+"%VW0.B\OH%O___U/HO6[__UF%]G7D6_\WZ+!N__]97XM-]%YD ++MB0T`````R<-65XOYBW<$A?9T'E.+!TZ+'+"%VW0.B\OHU_[__U/H?F[__UF% ++M]G7D6X-G!`!?7L.X9J!"`.C>S@$`45:+\6HHZ"AN__]9B\B)3?"#9?P`A<ET ++M#/]U".BK````B\CK`C/)BT8$C5`!B58$BQ9>B0R"BTWT9(D-`````,G"!`!5 ++MB^Q15HMQ"#EQ!'4TNO___W\[\G(5C47\:+#C0@!0QT7\Y0<``.B/S@$`B\8K ++MUL'H`D`[PG8"B\(#\%;HJ@```%[)PU6+[%%6BW$(.7$$=32Z____?SOR<A6- ++M1?QHL.-"`%#'1?SE!P``Z$O.`0"+QBO6P>@"0#O"=@*+P@/P5NB6G0``7LG# ++MN'B@0@#H",X!`%%65XM]"(OQB77PBP>%P(D&=`:+"%#_402+1P2#9?P`B48$ ++MC4<(4(U.".B%<___BT<8BTWTB488BT<<B48<BT<@B48@BT<DB48DB\9?7F2) ++M#0````#)P@0`4XM<)`B#R/]6.]A7B_%W`HO#4.CL;/__B_B+1@2%P%ET#%#_ ++M-E?HMLT!`(/$#/\VZ`-M__]9B3Z)7@A?7EO"!`"#;"0$!.DU_/__@VPD!`3I ++MLOS__[B,H$(`Z%#-`0"#[!"#9?``5O]U#(OQC4WD_W4(Z#$```"#9?P`C4WD ++MZ,=W__^-1>2+SE#HS7+___]UY.BB;/__68O&BTWT7F2)#0````#)P@@`N*B@ ++M0@#H_<P!`(/L(%.+70B#9>P`B4WPBTL$5HOR5XU1`8M&!#O"=C\KP4B+^(L& ++M9H,\>"YU,8L+C51X`NB;;/__A,!T(HU%X%=0B\[HYN+___]U#(M-\(-E_`"+ ++MT.A9<?___W7@ZS!J+HO.Z)5V__^%P'XK4(U%U%"+SNBWXO___W4,BTWPB]#' ++M1?P!````Z"=Q____==3H\VO__UGK(HM%#(-X!`!U#HM-\&I^B];H(0```.L+ ++MBTWP4(O6Z/IP__^+3?2+1?!?7EMDB0T`````R<((`%6+[%	?P`5O]U"(OQ ++M4N@K</__B\9>R<($`%%358O95E<S[8M[!(E4)!"%_W0HBP.--"_1[HL$L(L0 ++MBT0D$(L(Z#U[__^%P'06?02+_NL#C6X!.^]UV(/(_U]>75M9PXO&Z_:X':%" ++M`.C#RP$`@>Q4`0``4XM=+%8S]HES,(ES*(ES((ES&(ES$(ES"(DS5XF55/__ ++M_XE-S(ES-(ES+(ES)(ES'(ES%(ES#(ES!(EUT(EUU(EUP(EUQ(EUR(M%&(EU ++M_(!X2`!T"<=%Z`$```#K"8M%#(M`!(E%Z#EUZ(EU\`^&T0```(V-9/___^AO ++MB?__C4V,Z!!P__^+11C&1?P!B;5D____B;5H____@'A(`'5*BT4,BTWPBP#_ ++M-(B-3;3HMW#__VH!C8UD_____W6TQD7\`NBBC/__A,`/A-(```"+183!Z`2H ++M`0^%V0```/]UM,9%_`'H7FK__UF+A6C___^+O63___^-3<")1:#H9_S__XM% ++MQ(M-P/]%Q(M5H(D\P8M-P(E4P02+A63___\!1="+C6C_____=8P13=2`9?P` ++MZ!)J____1?!9BT7P.T7H#X(O____BWWHB77@._YT$X/(_SOX=P*+QU#HM6G_ ++M_UF)1>`[_L9%_`-V%HM-Z(M]X(O1,\#!Z0+SJXO*@^$#\ZIH@`$``.B):?__ ++M68E%+#O&QD7\!'16B\CHC<___XOPZTWH6)/__XOPC56T_W4HN4S.0@!6ZQ'_ ++M=2B^!4``@(U5M+DTSD(`5NBJ"0``_W6TZ'-I____=8SH:VG___]UP.AC:?__ ++M@\0,Z<T&```S]C/_QD7\`SOWB;7P_O__=`:+!E;_4`2+31B#?>@!QD7\!8M! ++M#(M)"`^7PH!F1`")OF`!``")OE@!``")OE`!``")OD@!``")OD`!``"$THA5 ++MYXA60XE.2(E&3(F^9`$``(F^7`$``(F^5`$``(F^3`$``(F^1`$``'0L_W74 ++MBT4D_W70BPA0_U$,.\>)12QT%COWQD7\`W0&BP96_U`(BWTLZ0T'``"`92\` ++M.7WHB7W8B7W<B7WP#X8^!```BT7@BTWP@#P(``^%'00``(O.Z$K.`0"+10R+ ++M3?"+`(L\B(V-9/___^@7A___C4V,Z+AM__^+11C&1?P&@'A(`'05C8UD____ ++MZ!J'__^$P`^$*00``.LFBP=J`5"-C63____H6(K__X3`#X2G!0``BT6$P>@$ ++MJ`$/A9D%``"+32"+!XL1BTT8BDE+48M-(%#_$H7`B47L#X4'!```C8WT_O__ ++MZ`P'``#_M53___^-3:3&1?P'Z.0-``"-C:#^___&1?P(Z%0&``"+1<R#I=#^ ++M__\`B86@_O__C46DB87(_O__BT4(B87,_O__BT485XV-Y/[__XI`2,9%_`F( ++MA>#^___HBF[__XV%H/[__XV-]/[___]U'%#H,38``(7`B47L=0\YA3#___]\ ++M%,=%[`$```"!?>P$0`"`#X2$`P``_W7LBP>+32!0C87T_O__BQ%0_W7,_U($ ++MA<")A5C___\/A:8#```Y1>QT*(M%&,9%+P&`>$@`#X5_`@``BX5D____BXUH ++M____`478$4W<Z6@"``"+A?C^__^%P`^$K````(N-]/[__XM$@?R+0#R%P`^, ++MEP```(N-H/[__XM)"(L$@8L`P>@-)`&(1;-T?XM%&(!X2P!U*8L_BTT@:`%` ++M`("-E?3^__^+`5=2_W7,_U`$B_B%_P^%6@,``.EK____BT48C4VT@\`\4.BS ++M;/__@WVX`,9%_`IU$(L/C56TZ-J$__^#?;@`=`B-3;3HB)3__XU%M(V.:`$` ++M`%#H4FW__\9%_`G_=;3H4V;__UF+11B`>$@`#X6B````@[T$____``^$E0`` ++M`(N%$/___X-E[`"#O03___\`B[T,____B46@=D2+A0#___^+3>R+%(B+31#H ++M:?K__X7`?!L[1?!V%HM-X,8$"`&+3<"+%,&+1,$$*_H91:#_1>R+1>P[A03_ ++M__]ROXM%H(O/"\AT+P-]T!-%U(7`?PI\!(7_<P0S_S/`BTTD4%=1BQ&)?=") ++M1=3_4@R+^(7_#X64`@``BU48BX7T_O__BXWX_O__@'I(`(M$B/QU"X!]B0!U ++M!6H!6>L",\F$R8A(3W09BXU\____B4A$BTV`@&!.`(E(2&;'0$P7`(V%7/__ ++M_XN-$/___U"+A0S_____=2@#A63___]6_W4D$XUH_____W4@:@!2_W44C97T ++M_O__48M-S%#HO`4``(OXA?\/A04"``"+11B`>$@`=2:+E0S___^+O1#___\# ++ME63___\3O6C___^)E5S___^)O6#____K#(N]8/___XN57/___P%5V(V./`$` ++M`!%]W(L!`5`@$7@DBPF+AE@!``")02B+AEP!``")02R+12B#>`0`#X7!`0`` ++M_[7D_O__Z)ED__]9QD7\!XU-I.BQ7___C8WT_O__QD7\!N@_!```QD7\!?]U ++MC.AQ9/__6?]%\(M%\#M%Z`^"Q/O__S/_@'WG`'4*@'TO``^$)`(``/]UU(M% ++M)/]UT(L(4/]1##O'B448#X3@`0``._?&1?P#=`:+!E;_4`B+?1CI>0(``.C1 ++MC?__B_C_=8SH$&3__X7V6<9%_`-T!HL&5O]0"(OWZ5H!``#_=8SH\F/__X7V ++M6<9%_`-T!HL&5O]0"(MU[.D[`0``_[7D_O__Z-!C__]9QD7\!XU-I.CH7O__ ++MC8WT_O__QD7\!NAV`P``_W6,Z*QC__^%]EG&1?P#=`:+!E;_4`B^!$``@.GS ++M````_[7D_O__Z(AC__]9QD7\!XU-I.B@7O__C8WT_O__QD7\!N@N`P``_W6, ++MZ&1C__^%]EG&1?P#=`:+!E;_4`B+M5C____IJ@```/^UY/[__^@_8___6<9% ++M_`>-3:3H5U[__XV-]/[__\9%_`;HY0(``/]UC.@;8___6<9%_`.%]NEA`0`` ++M_[7D_O__Z`1C__]9QD7\!XU-I.@<7O__C8WT_O__QD7\!NBJ`@``Z<O^____ ++MM>3^___HV&+__UG&1?P'C4VDZ/!=__^-C?3^___&1?P&Z'X"``#_=8SHM&+_ ++M_X7V6<9%_`-T!HL&5O]0"+X%0`"`_W7@Z)AB____=<#HD&+__UE9B\;I]0`` ++M`.@YC/__B]B+U_]U*+E,SD(`4^B?`@``_W6,Z&AB__^%]EG&1?P#=`:+!E;_ ++M4`B+\^NUBT4DC5784E"+"/]1$#O'B448=!8[]\9%_`-T!HL&5O]0"(M]&.F% ++M````BX9``0``QD7\`XE#((N&1`$``(E#)(N&2`$``(E#*(N&3`$``(E#+(N& ++M4`$``(E#,(N&5`$``(E#-(N&6`$``(E#"(N&7`$``(E##(N&8`$``(E#$(N& ++M9`$``(E#%(M%##OWBT`$B0.)>P2+ACP!``"+2"")2QB+0"2)0QQT!HL&5O]0 ++M"/]UX.B>8?___W7`Z)9A__]9B\=9BTWT7UY;9(D-`````,G"*`!35HOQ,]N- ++M3@B)'N@B````C4Y$B5XHB5XLB5XPB5XTB5XXB5X\B%Y`Z*1F__^+QEY;PXO! ++M,\F#"/^(2`2(2`6(2`:(2`>(2`B(2`F(2`J(2`N(2`R(2`V(2`Z(2`^)2!C& ++M0!`!QD`1`8A($HA($XA(%(A(%8A(%HE(',9`!`'&0`4!QD`&`<9`!P'&0`X! ++MQD`/`<9`#0'#N$:A0@#H5\$!`%%6B_$SP(EU\(D&B48$B48(B47\B48,B480 ++MB484B488C4XDQD7\`8E&'(A&((A&(>C[9?__C4XPQD7\`N@/````BTWTB\9> ++M9(D-`````,G#N%NA0@#H_<`!`%%35HOQ,]N)=?"#3@S_B5X0C4X8B!Z(7@&( ++M7@*(7@.)7@2)7@B)7A3HJ67__XU.)(E=_.B>9?__BTWTB\9>6V2)#0````#) ++MP[B1H4(`Z*O``0!15HOQB77PQT7\`P```.A0)```C4XPQD7\`N@M````_W8D ++MZ`U@__^`9?P`68U.#.@)#P$`@TW\_XO.Z*0%``"+3?1>9(D-`````,G#5HOQ ++M_W8DZ-U?____=ACHU5___UE97L.XI*%"`.@^P`$`@^P,4U97BWT,48O:B\_H ++MQ&?__[Z8S4(`B\]6Z'1I__^+50B-3>CH[,[__X-E_`!0B\_H(6G__X--_/__ ++M=>CHA%___UE6B\_H2&G__XO/4^@$:?__BTWT7UY;9(D-`````,G""`"X-J)" ++M`.C/OP$`@>R$````4U97B_J)3>PSVXM'!(L/BT2!_(M-+(E%T(D9B5D$BP") ++M7>")1<")7>2)7>B-392)7?SH><P``(MU%(U-Q,9%_`&-1C!0Z"ME__^+1="- ++MC7S___^#P##&1?P"4.@59?__@W\$`<9%_`-V-HL'BSB+1SP[PWPKBTWLNHS. ++M0@"+20B+!(&+0!"+R.C07___A,!T#X/',(V-?/___U?HI67__XV5?/___XU- ++MM.C;!0``B_AH>,A"`(U-B,9%_`3H9V3__U=0C4W$QD7\!>@?:____W6(Z'M> ++M____=;3&1?P#Z&]>__]9B%T768U-U.BR8___C47$C8UP____4,9%_`;H<F3_ ++M_S@>QD7\!W1I@WX(`W1CC4V(Z(EC__^-1=2-58A0C4W$QD7\".AU;___BU78 ++M.]-T-(M%U&:+3%#^9H/Y7'0&9H/Y+W4(2HE5V&:)'%`Y7=AT$XU%B(V-</__ ++M_U#HXF3__\9%%P'_=8C&1?P'Z-]=__]9BTT0Z(-Q__\X7DB(1?,/A3(!``"+ ++M1<"-5>Q24(L(_U$4.\-T!XOPZ8<"``"-3:#H^F+__XU-K,9%_`GH_,H``#/_ ++M.5WLQD7\"@^&I0```#A=%W4/.%WS=`HX7@)U!3A>`W1?BTW0C46@4%?H%Q`` ++M`#O##X6O````.%VX=`6*1@+K`XI&`SK#=6$X71=T-(M5U(M-H.C[;/__A,!T ++M(HM%V(M-H&:+!$%F.\-U!SA=N741ZPQF/5P`=`EF/2\`=`.(71<X7?-U#XM- ++M$(U5H.A.S?__A,!T%(U-X.C>6/__BT7DBTW@_T7DB3R!1SM][`^"6____SE= ++MY'4TBW4<B\Z+!O]0"(L&B\Y3_U`,QD7\#(U-K(OPZ,X+`0#_=:#HO5S__UGI ++MC`$``,9%_`OKXHU-K,9%_`WHK@L!`,9%_`?_=:#HF5S__UDX71=T%(U-E.AI ++M6/__C474C4V44.C66/__.5W(#X6T````:(C.0@"-3<3H>63___]U#(U%E(M] ++M)/]U"(O/4U"-1<10BD9+4(I&25"*1DC_=2#VV/]UT!O`(T404(U&&%#H>L7_ ++M_XI%%XA'%SA>2W0,.%T8QT48`0```'0#B5T8B7T0.%Y(QD7\#G1UBW7`5_]U ++M&(L&:O]35O]0'(E%&&:)7;!FB5VRB5VXBP:-3;!1:BQ6QD7\#_]0((7`=0N+ ++M52R-3;#H]0```(U-L,9%_`[HLY+__^MBBTW$Z.-V__^$P`^%2?___^ADA?__ ++MB_"-5<3_=2BY:,Y"`%;HR?O__^MMBP>-30A15XE="(E=#/]0$(OP._-T##O[ ++MQD7\!W1/B\_K1HM%P%?_=1B+"/]UY/]UX%#_41R)11@SP#O[=`J+S^@RW___ ++MB5T0.5T8=0.)11B+31S_=1B+`?]0#(M-$(OP.\O&1?P'=`7H"M____^U</__ ++M_^@@6____W74Z!A;____M7S____H#5O___]UQ.@%6___@\00C4V4B%W\Z``* ++M`0#_=>#H[UK__UF+QHM-]%]>6V2)#0````#)PB@`58OL40^W`5:#Z`"+\G10 ++M@^@1=#](=#9(="A(2'05C47\:+#C0@!0QT7\GTX"`.@_NP$`BT$(B0:+00R) ++M1@2P`>L?BT$(B0:#9@0`Z_$/MT$(ZP0/MD$(F8D&B58$Z]\RP%[)PU:+\8L. ++MA<ET".A(WO__@R8`7L/_<43H7%K__UG#_S'H4UK__UG#N$BB0@#HOKH!`%%6 ++M5XOYB7WPBW<$@V7\`(7V=!Y3BP=.BQRPA=MT#HO+Z)$```!3Z!Q:__]9A?9U ++MY%O_-^@/6O__65^+3?1>9(D-`````,G#N%RB0@#H;;H!`%%35HOQ,]M7B77P ++MB1Z)7@2)7@B+10B)7?R+>`0[^W0RN/___S\[^'<"B\?!X`)0Z(Y9__\[^UF) ++M!HE^"'84BT4(B\Z+`/\TF.BJ````0SO?<NR+3?2+QE]>6V2)#0````#)P@0` ++MN(:B0@#H_KD!`%%6B_&)=?"-CJ@```#'1?P"````Z(;Y__^-3GCH?OG___]V ++M,.A>6?___W8DZ%99____=ACH3EG__XM&#(/$#(7`=`:+"%#_40B+1@C&1?P! ++MA<!T!HL(4/]1"(M&!(!E_`"%P'0&BPA0_U$(BS:#3?S_A?9T!HL&5O]0"(M- ++M]%YDB0T`````R<-3B]EJ(.C!6/__A<!9=!-6BW0D#%=J"%F+^/.E7XO(7NL" ++M,\F+0P2-4`&)4P2+$UN)#(+"!`"XF*)"`.@VN0$`@^P0@V7P`%>+^5*-3>3H ++MSU[__X-E_`"-3>3HR````(U-Y.@S````@WWH`'4*:E^-3>3HV5[__XU%Y(O/ ++M4.B@7O___W7DZ'58__]9B\>+3?1?9(D-`````,G#5HOQZ`\```"$P'4):E^+ ++MSNB@8___7L-35E>+^;N0SD(`BP,S]H`X`'0'1H`\!@!U^3EW!')"4(O/Z-18 ++M__^$P'0V@?N@SD(`<A.+!V:+!'!F/3``<B)F/3D`=QQ&BP>-!'!FBPA`0&:% ++MR70=9H/Y+G079H/Y('3J@\,$@?NHSD(`<IZP`5]>6\,RP.OX@WD$`'0FBP%F ++M@S@N=1]FBU`"9H72=`UF@_HN=1!F@W@$`'4)@V$$`&:#(`##Z0````!65S/_ ++M.7D$=F.+`8TT>&:+!'AF/3H`=#9F/2H`=#!F/3\`="IF/2``<B1F/3P`=!YF ++M/3X`=!AF/7P`=!)F/2(`=`QF/2\`=`9F/5P`=1@STF8]7``/E<)*@>+][P`` ++M@\)?B\)FB09'.WD$<IV`/;@P0P``=".+002%P'0<BQ%FBW1"_F:#_BYT!F:# ++M_B!U"4AFQP1"7P!UY%]>P[BTHD(`Z'BW`0"#[!Q3,]M6BW4(A,E7B%7S#X3! ++M````BP:+"#E9!'59BU8$:@%;.],/AJ8```"+2`2#>00`#X69````:@);.],/ ++MAHX```"+0`AH=,A"`(L`4/\5?,%"`%F%P%EU=VH#6SE>!'9OBP:+0`R+".C( ++MAO__A,!T7VH$ZPV+">BYAO__A,!T5&H!BP9;BWR8_(-_!`)V/8L'C4WD@\`$ ++M4.CT6___@V7\`(U%Y%!3B\[H'&W__X--_/__=>3H15;__UEJ`E@Y1P1V"HE' ++M!(L'9H-@!`"%VW0$@&7S`(M&!#O8<TR+!HL\F(O/Z#_^__^#?P0`=2F`??,` ++M=1B`?0P`=0B+1@1(.]AT"E.+SN@@4/__ZQ=J7XO/Z#M<___K"X!E\P"+S^AX ++M_?__0SM>!'*T@'T,`'5'BT8$A<!U+6I?C4W8Z#-;__^+^(O.QT7\`0```.B. ++M4?__B\Y7Z/]1____==CHH%7__UGK$XL.BTR!_(-Y!`!U!VI?Z-M;__^+3?1? ++M7EMDB0T`````R<((`+C(HD(`Z.:U`0"#[!2#9>P`B4WP5E>+\HU-X.BI6O__ ++M@V7\`#/_.7X$=A^%_W0(C4W@Z`UK__^+!HU-X/\TN.C&7O__1SM^!'+ABTWP ++MC47@4.A&6____W7@Z!M5__^+1?!9BTWT7UYDB0T`````R<.AA#1#`(/X2',- ++MB0R%9#-#`$"CA#1#`,-65XOQ,_\Y?B!V'8M&'(L$N(L0BT0D#(L(Z"!5__^$ ++MP'4.1SM^('+C@\C_7U["!`"+Q^OWN/2B0@#H*K4!`(/L,%-6,]M7B_F)7>B) ++M7>R)7?")7?R)7=R)7>")7>2+30B-5>C&1?P!Z"]B__^+30R-5=SH)&+__S/V ++M.5WL#X:2````@\<<C4W$Z+19__^-3=#&1?P"Z*A9__^+1>B-3<3&1?P#_S2P ++MZ#E;__\[=>!S,HM%W(U-T/\TL.@F6___:'S'0@#_==#_%7S!0@#WV!K`6?[` ++M68A%"W0)BT70B5W49HD8B\_HYD___XU%Q(O/4.@1`@``_W70QD7\`>CQ4___ ++M_W7$Z.E3__]&63MU[%D/@G'___^-3=R(7?SHVP(!`(--_/^-3>CHSP(!`(M- ++M]%]>6V2)#0````#)P@@`N""C0@#H(K0!`(/L1%>->0B+S^@I`0``@V7P`(,] ++MA#1#```/AM0```!35KMD,T,`BS.-3;#HX````/]V#(-E_`"-3<#H?%O__XM& ++M'(U-V(E%N(M&)(E%O(L&B46PZ*-8__^-3>3&1?P!Z)=8__^+1A#&1?P"A<!T ++M"5"-3=CH0UO__XMV%(7V=`E6C4WDZ#-;__^-1>2-3;!0C4784.A6_O___W7D ++MZ`M3____==B`9?P`Z/]2__]968O/Z-1.__^-1;"+SU#H8@$``(U-S,=%_`,` ++M``#H=$[___]UP(--_/_HT%+___]%\(/#!(M%\%D[!80T0P`/@C7___]>6VH` ++M:%[/0`"+S^AF````BTWT,\!?9(D-`````,G#5HOQ5S/_C4X0B3Z)?@2)?@B) ++M?@SHTE?__XE^'(E^((E^)(O&7U[#5E>+^8MW!(7V=!Y3BP=.BQRPA=MT#HO+ ++MZ+Q-__]3Z%%2__]9A?9UY%N#9P0`7U[#4XM9!(/[`79+5HLQ5XO[@^X$T>__ ++M="04B]>+SO]T)!13Z%$!``!/=>N-/)[_="04BTX$BP=+_W0D%(D/B\Z#[P13 ++M:@%:B48$Z"H!``"#^P%WVE]>6\((`+@^HT(`Z%FR`0!15E>+\6H8Z*)1__^+ ++M^%F)??"#9?P`A?]T'U.+70A3B\_HWU?__X/##(U/#%/&1?P!Z,]7__];ZP(S ++M_XM&!(U(`8E.!(L.B3R!BTWT7UYDB0T`````R<($`+A2HT(`Z/:Q`0!15HOQ ++M:BCH0%'__UF+R(E-\(-E_`"%R70,_W4(Z#@```"+R.L",\F+1@2-4`&)5@2+ ++M%EZ)#(*+3?1DB0T`````R<($`(L!BPK_<1#_<!#_%7S!0@!96<($`+AGHT(` ++MZ).Q`0!15E>+?0B+\8EU\(L'C4X0B0:+1P2)1@2+1PB)1@B+1PR)1@R-1Q!0 ++MZ!)7__^#9?P`@\<<5XU.'.AP````BTWTB\9?7F2)#0````#)P@0`58OL45%3 ++M5E>+VHOYC30;BP2?B47\.W4(=S=S&?]U$(U&`8T4MXE%^(T,A_]5#(7`?@.+ ++M=?C_=1"-%+>-3?S_50R%P'T,BP2WB02?B][1YNO$BT7\B02?7UY;R<(,`+A\ ++MHT(`Z-RP`0!14U:+\3/;5XEU\(D>B5X$B5X(BT4(B5W\BW@$._MT,KC___\_ ++M._AW`HO'P>`"4.C]3___._M9B0:)?@AV%(M%"(O.BP#_-)CH+/[__T,[WW+L ++MBTWTB\9?7EMDB0T`````R<($`%6+[(/L$%-6BW4,5XU]\#/;5X@>_W4(BP%F ++MB5WP9HE=\E)1B5WX_U`8.\-T!(O8ZQUF@WWP"W4+9CE=^`^5P(@&ZPMF.5WP ++M=`6[!4``@(U-\.B9AO__B\-?7EO)P@@`_W0D!&H&Z);____"!`#_="0$:D'H ++MB/___\($`+B0HT(`Z/*O`0"#["!35HOQ,]M7BWT,BT8(B77L.\-T>3A>$75T ++MC57HBPA2C57D4HU5#%)J`_]U"%#_41"%P'59@WWH4753BW7DT>Y..W<(=@A6 ++MB\_H5E+__XL/._-V+8EU\(M%#&:+`(-%#`)F/2\`=05J7%CK"V8]7`!U!;A< ++M\```9HD!04'_3?!UUF:)&3OSB7<$=7F+=>QFB5W49HE=UHE=W(L&C5744FH# ++M_W4(BPB)7?Q0_U$8B_`[\W0,C4W4Z*V%__^+QNM69H-]U`AU$3E=W'0]_W7< ++MB\_H85;__^L.9CE=U'4KBP>)7P1FB1B#3?S_C4W4Z'>%__\Y7P1U#HM-[%?_ ++M=0CH)````.L1,\#K#8U-U.A8A?__N`5``("+3?1?7EMDB0T`````R<((`+BD ++MHT(`Z,"N`0"#[!!35E>+?0R+50@SVXL'B5\$B_%FB1B-10^+#E#HA?[__SO# ++M=5DX70]U4HU&,(O/4.@%5?__9HE=Y&:)7>:)7>R+-HU-Y%%J!?]U"(L&B5W\ ++M5O]0&#O#=`2+\.L^9H-]Y`AU+(O/Z(96____=>R+S^@85___C4WDZ+J$__\S ++MP(M-]%]>6V2)#0````#)P@@`9CE=Y'3?O@5``("-3>3HE(3__XO&Z]A5B^Q1 ++M5HOQ_W4,_W4(Z`K^__^%P'4O.$83="@@1?^+#HM5"(U%_U#HXOW__X7`=14X ++M1?]T#HM-#&C`SD(`4.CG6/__,\!>R<((`%-6BW0D$%>+V8L&@&88`(-F!`"- ++M?AAF@R``@TX<_XU.#.C`2___BPN+5"005^B$_?__A<!U(8H'5O]T)!2+RXA& ++M&>AO____A<!U#(U6#(O.Z)]=__\SP%]>6\((`+BXHT(`Z&>M`0"#[!!3,]M6 ++M5V:)7>1FB5WFB5WLBWT0BW4,C57DB5W\B!^)'E*)7@2+`6H'_W4(BPA0_U$8 ++M.\-T!(O8ZT@/MT7D*\-T3(/H$70N2'0E2'082$AT![L%0`"`ZRJ+1>R)!HM% ++M\(E&!.L:BT7LB0:)7@3K$`^W1>SK!`^V1>R9B0:)5@3&!P&-3>3H4X/__XO# ++MZPJ-3>3H1X/__S/`BTWT7UY;9(D-`````,G"#`"XS*-"`.BRK`$`@^P04U97 ++MBWT,,]N+\8D?B5\$9HE?"(A?"HA?"V:)7>1FB5WFB5WLBP:-5>12:@S_=0B+ ++M"(E=_%#_41@[PW0$B]CK9&:#?>1`=46-1>2+SU#HX+G__V8Y7PAU3(U-Y.A# ++M@___BS:-3>11:BC_=0B+!E;_4!@[PW7'9H-]Y!-U*(M%[#O#=0-J%UAFB4<( ++MZQAF.5WD=`>[!4``@.L+.%Y/=`:#QD2EI:6-3>3H>X+__XM-]%^+PUY;9(D- ++M`````,G""`!5B^Q1A=)T`X`B``^W`8/H`'0J@^@3=!E(2'05C47\:+#C0@!0 ++MQT7\GTX"`.C?JP$`A=)T`\8"`8M!",G#,\#)PS/`B4$0B`&(00&(00*(00.) ++M002)00B)012+41B)01QFB0*)02B+221FB0'#N/BC0@#H>:L!`(/L&%-6B_$S ++MVU>+1FB+3FPK10R-?E")7EB(7F`;31")1G")'XE>7(E.=(U.>(E?!.B5____ ++M9HE=W&:)7=Z)7>2+10B-5=Q2:D>+"%")7?S_42`[PXE%\'00C4W<Z)"!__^+ ++M1?#IZ0$``(U6>XU-W.@5____C4W<B49\Z'*!__]FB5W<9HE=WHE=Y(M%"(U5 ++MW%)J2(L(4,=%_`$```#_42`[PXE%\'00C4W<Z$*!__^+1?#IFP$``#/2C4W< ++MZ,C^__^-3=R)AH````#H(H'__V:)7=QFB5W>B5WDBT4(C57<4FHWBPA0QT7\ ++M`@```/]1(#O#B47P=!"-3=SH\H#__XM%\.E+`0``9CE=W'0;9H-]W`B+1>1T ++M!;CXSD(`4(V.D````.AI4/__C4W<Z,&`__]FB5W<9HE=WHE=Y(M%"(U5W%)J ++M28L(4,=%_`,```#_42`[PXE%\'00C4W<Z)&`__^+1?#IZ@```&8Y7=QT&V:# ++M?=P(BT7D=`6XV,Y"`%"-CIP```#H"%#__X--_/^-3=SH7(#__SE=%'03.%Y[ ++M#X2M````]D9\`0^%HP```(U&8(M-"%"-1EA0:BQ:Z*,````[PP^%B@```(M- ++M"(U%%U!7:B1:Z#4!```[PW5VBTT,BT40`P\31P2)30R+3FB)11"+1FR+T8OX ++M*U4,&WT0.%Y@B59PB7YT=$B+7EB+5ER+^XE5\`-]#!-5$#O0=R]R!#OY<Q\K ++MSXE><(M=\(F.B````!O"B5YTQD9X`8F&C````.L..]!R"G<$._EV!,9&>0$S ++MP(M-]%]>6V2)#0````#)PA``N`RD0@#H#*D!`(/L$%-6BW4,,]M79HE=Y(@> ++M9HE=YHE=[(L!C7WD5U)1B5W\_U`@.\-T!(O8ZTL/MT7D*\-T3X/H`W0O@^@0 ++M=!U(=`I(=`>[!4``@.LLBT4(BTWLB0B+3?")2`3K&8M%"(M-[(D(B5@$ZPR+ ++M1>R+30B9B0&)403&!@&-3>3H`W___XO#ZPJ-3>3H]W[__S/`BTWT7UY;9(D- ++M`````,G""`"X(*1"`.ABJ`$`@^P04U:+=0PSVU=FB5WDB!YFB5WFB5WLBP&- ++M?>174E&)7?S_4"`[PW0$B]CK2P^W1>0KPW1/@^@#="^#Z!!T'4AT"DAT![L% ++M0`"`ZRR+10B+3>R)"(M-\(E(!.L9BT4(BTWLB0B)6`3K#(M%[(M-")F)`8E1 ++M!,8&`8U-Y.A9?O__B\/K"HU-Y.A-?O__,\"+3?1?7EMDB0T`````R<((`/]T ++M)`R+1"0(_W0D#(L(Z`<```"%P'4`P@P`N"RD0@#HGJ<!`%&+00B+30B#9?P` ++M4XL$B%97B67P_U`(BTT,4.C>%0``,\#K"[B<V4``P[@.``>`BTWT7UYDB0T` ++M````6\G""`"X:*1"`.A4IP$`@^Q04U97B_DSVXL'.\-T"(L(4/]1"(D?BT<( ++M.\-T"8L(4/]1"(E?"(M'##O#=`F+"%#_40B)7PR-3WCH9?O__X./A````/^` ++M9Q``B9_8````C5<8C4VDB9_<````Z")8__^-3;")7?SHP$O__VHNC4VDQD7\ ++M`>C84/__.\-\$(M-I(U$00*-3;!0Z-U,__^)7;R)7<")7<2+=0C&1?P"B5WP ++MBP:+0`P[PW02@_C_=@.#R/]0Z/!%__]9B47PBPXSP,9%_`,Y60QV#XM-\(`D ++M"`"+#D`[00QR\8!^'@!T#HM&((E%T(M&)(E%U.L*QT70``"``(E=U(M>"(7; ++MB5WD?">-3;SHLD'__XM%P(M-O/]%P,=%Z`$```")'(&+1?#&!`,!Z;L```"+ ++M!C/;B5T(.5@,#X:`````BT`(@'\7`(L$F(E%X'4&@'X9`'44BT7@NA3/0@"+ ++M2!#HBT;__X3`=4^+3BS_<01J`%/HUQ0``(7`?3V+3>"-1;!0Z&WP__^%P'P9 ++MBT4(_T4(4U"-3;SH2!0``(M%\,8$`P'K%(U-O.@70?__BT7`BTV\_T7`B1R! ++MBP9#.U@,<H"#?C``=15J`5@Y10AT"KX!0`"`Z=0!``")1<"+1<")1>B+10B% ++MP'0#B47HBUXP@V78`(-EW`"%VW0@B\OH@JC__X7`=0Z-5=B+R^B!J/__A<!T ++M!XOPZ9(!``"+1=B)1VB+1=R)1VR`?AD`#X1S`0``BT7`B47@,\`Y1>1\!HM- ++MZ(E-X#E%X(E%[`^&5`$``(M%O(M-[#/;BP2(B4<\BT8X.\-T$XL(C5784E-0 ++M_U$,.\,/A6L!``"+3C`[RW0-Z`"H__\[PP^%5P$``(E="(U%"(O/4,9%_`3_ ++M=SQ6Z/G\__\[PXE%Y`^%/0$``(M%"#O#=0G&1?P#Z=@```"+3C`[RW0>BU70 ++M_W8XB57(BU74C5W(B57,BQ!345#_4@R+V.L\B5WDBPB-5>12:+#%0@!0QD7\ ++M!?\1BT7D.\,/A`$!``#_=C2+"%#_40R+V(M%Y(7`QD7\!'0&BPA0_U$(4VH` ++M:@"+S_]U".BM^/__A<")1>0/A08!``"#^P$/A2D!``"`?WL`C4=X=`F$6`1U ++M!(K;ZP(RVX-][`!U*8-]Z`%U(XM//%")CX0```"-CZ@```#H4@$``(!^&@!U ++M"(3;#X70````BT4(QD7\`X7`=`:+"%#_40C_1>R+1>P[1>`/@JS^__\S]CDW ++M=0-J`5[_=?#H,4/___]UO.@I0____W6PZ"%#____=:3H&4/__X/$$(O&BTWT ++M7UY;9(D-`````,G"!`"+V.FT````BT4(QD7\`SO#=`:+"%#_40B+7>3IFP`` ++M`(M%",9%_`,[PW0&BPA0_U$(_W7PZ,I"____=;SHPD+___]UL.BZ0O___W6D ++MZ+)"__^#Q!"X`4``@.N4BT4(QD7\`X7`=`:+"%#_40B+7>3K2HM%",9%_`.% ++MP'0&BPA0_U$(:@%;ZS2%VW03BT4(QD7\`X7`="6+"%#_40CK'?]U"(O/Z#(1 ++M``"+10C&1?P#A<!T!HL(4/]1"#/;_W7PZ$!"____=;SH.$+___]UL.@P0O__ ++M_W6DZ"A"__^#Q!"+P^D*____5E>+?"0,B_&*!XU.&(@&BD<!B$8!BD<"B$8" ++MBD<#B$8#BT<$B48$BT<(B48(BT<,B48,BT<0B480BT<4B484C4<84.C)2/__ ++M@\<DC4XD5^B]2/__B\9?7L($`+BDI$(`Z#"B`0"#[#Q35E>+\?]U".C"^O__ ++MA<`/A<T!```Y!@^$PP$``(M&"(U>"(7`=`F+"%#_40B#(P"+1@R-?@R%P'0) ++MBPA0_U$(@R<`BP93:)#%0@!0BPC_$8L&5VB@Q4(`4(L(_Q&+#HU&$5!J0EKH ++MB`$``#/;.\,/A6T!``"+#HU&$U!J05KH<`$``#O##X57`0``BPZ-1A10:C]: ++MZ%H!```[PP^%00$``(L.C4854&I`6NA$`0``.\,/A2L!``"+#HU&%E!J6UKH ++M+@$``#O##X45`0``BPZ-1A)0:EU:Z!@!```[PP^%_P```(U6&(U-Z.AO4O__ ++MC4W<B5W\Z`U&__]J+HU-Z,9%_`'H)4O__SO#?!"+3>B-1$$"C4W<4.@J1___ ++MBT8PC7XPB5\$9HD8BW8\._,/C)P```"+10B+`(M`"(LTL#E>('50C4VXZ+Q% ++M__^+\(U-Q,9%_`+HKD7__U90C57HC4W0QD7\`^AJT___4(O/QD7\!.@T1___ ++M_W70Z#E`____=<3H,4#___]UN.@I0/__@\0,ZSR-1=R+SE#H*.O__SO#?0(S ++MP(M.'(U5Z(L$@8U(#%%0C4VXZ!K3__]0B\_&1?P%Z.1&____=;CHZ3___UG_ ++M==SHX#____]UZ.C8/___65DSP(M-]%]>6V2)#0````#)P@0`58OL@^P04U:+ ++M=0A7,]N-??"('HL!5U)19HE=\&:)7?*)7?C_4"`[PW0$B]CK'6:#??`+=0MF ++M.5WX#Y7`B`;K"V8Y7?!T!;L%0`"`C4WPZ%]V__^+PU]>6\G"!`"XXJ1"`.C4 ++MGP$`@^PP4U97,_^+\8E]\(E]_(E][(M=",9%_`&)?>B`>T``="UJ".C_/O__ ++M.\=9=`N)>`3'`"S/0@#K`C/`4(U-[.CO#0``BT7LB4,TZ8\````Y>S`/A88` ++M``!J8.C)/O__68E%"#O'QD7\`G0)B\CH<XK__XOX5XU-\,9%_`&)?>CHKPT` ++M`(U&)(U.&%#HOT7__XM&&(!G5`!0C4\8Z,=J__^$P'4PZ&IH__^`9?P`B_"+ ++M1>R%P'0&BPA0_U$(BT7P@TW\_X7`=`:+"%#_40B+QND8`@``BT7PB4,PQD87 ++M`5.+SNBS_/__@&87`(OX@_\!#X73`0``@WWH``^$R0$``(-[/``/A+\!``"` ++MOJL`````=`R$AJP````/A*H!``"+1BB#^`0/AC\!``"+1BB+3B2-?B2Z),]" ++M`(U,0?CH)C___X3`#X0@`0``BT8HB\^#P/Q0C4704.BIM/__BP.#90@`QD7\ ++M`X-X#``/AO$```"+0`B+30BZ%,]"`(L\B(M/$.CB/O__A,`/A<(```"-1="- ++M3=Q0Z.9#__^-3=S&1?P$Z&!&__^-1<2+SU#HKP$``%"-3=S&1?P%Z#!'____ ++M=<3&1?P$Z),]__]9C7X8C47<B\]0Z'=$__]H',]"`(O/Z$5'____-XM+/.A$ ++M`0``A,!U&8U%W(O/4.A21/___S>+2SSH*P$``(3`=#>+1>B+/U>`8%0`C4@8 ++MZ$II__^$P'0ABT7PC8ZH````B4,P@TD,_^CN\?__4XO.Z%O[__^%P'1._W7< ++MQD7\`^@./?__6?]%"(L#BTT(.T@,#X(/_____W70Z/0\__]9BT7L@&7\`(7` ++M=`:+"%#_40B+1?"#3?S_A<!T!HL(4/]1"&H!6.M<_W7<Z,0\____==#HO#S_ ++M_XM%[(!E_`!9A<!9=`:+"%#_40B+1?"#3?S_A<!T!HL(4/]1"#/`ZR2+1>R` ++M9?P`A<!T!HL(4/]1"(M%\(--_/^%P'0&BPA0_U$(B\>+3?1?7EMDB0T````` ++MR<($`%:+="00:A!H$.!"`/]T)!2#)@#HY)P!`(/$#(7`=0V+1"0(B0;_0`0S ++MP.L%N`)``(!>P@P`5HOQ:@'_="0,C4Y@Z#M>__^$P'02BX:`````P>@$J`%U ++M!6H!6.L",\!>P@0`58OL48-E_`"#>2``=0J+30CH-T'__^L-BT$<BTT(_S#H ++M^T'__XM%",G"!`!6B_&-3C#HCO#__XM&)(-F*`!F@R``@WX$`'0)B\[H\@H` ++M`.OQ7L.X/:5"`.@7G`$`@>R0`@``4U97B4WLZ+[___^+70B+0RB+0`2#^"!R ++M"K@!0`"`Z1<%``"#9>``C8UD_?__C7L(Z!;:__^+\(M#*&H(@\`$6?.E@S@! ++M<E^-C43____H^=G__XM%[(M3*(MP!(M*!(U"!#OQ<Q6+$BO.:@B-O43___^+ ++M=(K\6?.EZQR+"FH(C;U$____BS%9\Z6`O53___\`#X23!```:@B-M43___]9 ++MC7L(\Z7K#8M-[(-Y!"`/@W8$``"+5>PS_XM*!#O/=7&-C83]___H*P4``(US ++M1(V-J/W__U:)??SHL4'__U:-C9S]___HI4'__X.-Q/W___]3C8V$_?__Z#C[ ++M__^+\#OW#X72`@``BTWLZ&LV__^+3>R-A83]__]0Z!H*``"#3?S_C8V$_?__ ++MZ-[@___I\_[__XL2.0B+=(K\B76T=@?'1>`!0`"`9HE]O&:)?;Z)?<2+!HU5 ++MO%)J`8L(4,=%_`$```#_42`[QP^%I0(``&:#?;P3#X5Q!```BT7$C56XB47< ++MBP924(L(_U$4.\</A8`"``"+1=R-3;P[1;@/@TL$``#HY'#__XE]\(L&C57P ++M4FA@Q4(`BPA0QT7\`@```/\1A<"+1?`/A1@$```[QP^$$`0``(E]Y(L(C57D ++M4L9%_`/_==Q0_U$,A<"+1>0/A>L#```[QP^$XP,``(E]Z(L(C57H4FB@PD(` ++M4,9%_`3_$3O'BT7H#X6*`P``.\</A((#``"-C63^___HR0,``(V%?/[__XO. ++M4,9%_`7_==SHU.G__SO'B47@#X74`0``BPZ+==R-10N+UE!J5N@\Z?__.\>) ++M1>`/A0$"``"+0S@[QW0YB7W8BPB-5=A2:'#%0@!0QD7\!O\1BT78.\=T#_^U ++M?/[__XL(4/]1#(M%V#O'QD7\!70&BPA0_U$(B;6D_O__B7W,B7W0B7W4C8UD ++M____QD7\!^A2U___BP-J"(F%9/___XI%"UF-<PB-O6S____&1?P(\Z6(18&- ++M1<R`9:0`B460BT7HC4VHB464C85\_O__4.B'/___BT,XC8UD_O__B46<BT,\ ++MB46@C85D____4.BS]O__B_"+0R@SR8M`!(7`#Y7!@_X!B4W@#X1U`0``A?8/ ++MA00"``"+3;2-A:C^__]0_W7<Z/SK__^+\(7V#X7H`0``BTWLZ`TT__^+3>R- ++MA63^__]0Z+P'``#_=:CH&#C___]US.@0./__6<9%_`19C8UD_O__Z&[>__^+ ++M1>C&1?P#A<!T!HL(4/]1"(M%Y,9%_`*%P'0&BPA0_U$(BT7P@TW\_X7`#X17 ++M_/__BPA0_U$(Z4S\__^#_@%U(8M][(V%+/[__U"-3S#HCO7__XV%G/W__XU/ ++M)%#HD#[__X--_/^-C83]___H_=W__^F.`0``C4V\B_#H;F[__^E_`0``C8UD ++M_O__QD7\!.C:W?__BT7HQD7\`SO'=`:+"%#_40B+1>3&1?P".\=T!HL(4/]1 ++M"(M%\(--_/\[QW0&BPA0_U$(BT7@Z=````"-C63^___&1?P$Z)#=__^+1>C& ++M1?P#.\=T!HL(4/]1"(M%Y,9%_`([QW0&BPA0_U$(BT7P@TW\_SO'=`:+"%#_ ++M40B+1>#IA@```(MU[(V%W/[__U"-3C#HMO3__XV%?/[__XU.)%#HN#W___]U ++MJ.B]-O___W7,Z+4V__]9QD7\!%F-C63^___H$]W__XM%Z,9%_`.%P'0&BPA0 ++M_U$(BT7DQD7\`H7`=`:+"%#_40B+1?"#3?S_A<!T!HL(4/]1"#/_BT7L.7@$ ++M#Y7!B$@@BT7@BTWT7UY;9(D-`````,G"!`#_=:CH1S;___]US.@_-O__6<9% ++M_`19C8UD_O__Z)W<__^+1>C&1?P#A<!T!HL(4/]1"(M%Y,9%_`*%P'0&BPA0 ++M_U$(BT7P@TW\_X7`=`:+"%#_40B+QNN7.\?&1?P#=`:+"%#_40B+1>3&1?P" ++M.\=T!HL(4/]1"(--_/^+1?`[QP^$6O___XL(4/]1".E/____QD7\`NO6@TW\ ++M_^OAC4V\Z)EL___I-O___[B=I4(`Z!*6`0!14U:+\3/;B77PB1Z)7?R)7@2) ++M7@B)7@R-3AC&1?P#B%X1B%X2B%X3B%X4B%X5B%X6B%X7Z+(Z__^-3B3&1?P$ ++MZ*8Z__^-3C#&1?P%Z)HZ__^-3GC&1?P&B5Y$B5Y(9HE>3(A>3HA>3^B>U/__ ++MC8ZH````QD7\!^B/U/__BTWTB\9>6V2)#0````#)P[C2I4(`Z'R5`0"#["A3 ++M5E>+^3/;:+@```")7QB)7QSHMS3__UF)1?`[PXE=_'0+B\CH>`$``(OPZP(S ++M]H--_/\[\XEU\'0&BP96_U`$BT4,C4WDQT7\`0```(E&1.C].?__C4W8QD7\ ++M`NCQ.?__BUT(QD7\`X-[,`!U4X![0`!U38M+1(U%V%"-5>3HBU+__XU%V(O. ++M4(U%Y%#H:[O__X7`B44,=#;_==CH833___]UY.A9-/__@TW\_UF%]EET!HL& ++M5O]0"(M%#.G/````BTM$BU8(C48(45#_4@Q3B\^)<SB)<SSH>_C__XO8BD89 ++MA=N(1R%T)_]UV.@1-/___W7DZ`DT__^#3?S_687V670&BP96_U`(B\/I@``` ++M`#/;.5XL=E>+1BB`/!@`=$B+1AR-5>2-3<S_-)CH_3C__XE%#(U/#,9%_`3H ++MH"____]U#(U/#.@.,/___W7,QD7\`^BK,___BT8T68L,V(M$V`0!3Q@11QQ# ++M.UXL<JG_==CHC#/___]UY.B$,___@TW\_UF%]EET!HL&5O]0"#/`BTWT7UY; ++M9(D-`````,G""`"X'J9"`.C.DP$`45:+\3/`5\<&T,]"`,=&!+S/0@#'1@BL ++MST(`QT8,^,="`,=&$)C/0@")1A2(1AB(1AF)=?")1AR)1B")1B2)1?R)1BB) ++M1BR)1C")1C2)1CB)1CR-3DC&1?P"B49`B49$Z$(X__^-3E3&1?P#Z#8X__^- ++M?F#&1?P$B\_H?U'__XU/*.@@./__C8Z8````QD7\!>CLO/__BTWTQP:$ST(` ++MQT8$<,]"`,=&"&#/0@#'1@Q0ST(`QT80/,]"`(O&7UYDB0T`````R<-5B^Q6 ++MBW405XM]#(,F`&H0:!#@0@!7Z!&3`0"#Q`R%P'4'BT4(B0;K=&H0:"#%0@!7 ++MZ/:2`0"#Q`R%P'3E:A!H4,5"`%?HXI(!`(/$#(7`=0J+10B+R(U0!.LZ:A!H ++M<,5"`%?HQ)(!`(/$#(7`=0J+10B+R(U0".L<:A!H\,1"`%?HII(!`(/$#(7` ++M=1>+10B+R(U0#/?9&\DCRHD._T`4,\#K!;@"0`"`7UY=P@P`5HMT)`C_3A2+ ++M1A1U%(7V=`Z+SN@-````5NC",?__63/`7L($`+AJID(`Z"B2`0!15HOQB77P ++MC8Z8````QT7\!0```.BFPO___[:(````Z(TQ____=E3HA3'___]V2.A],?__ ++M_W8TZ'4Q____=BCH;3'__X--_/^#Q!2-3ASH9^```(M-]%YDB0T`````R<-6 ++MBW0D#%=6_W0D$.@R_/__A?:+^'0+BP:+SO]0#(7`=0*+QU]>P@@`5E>+?"0, ++MB_&%_W0&BP=7_U`$BP:%P'0&BPA0_U$(B3Z+QU]>P@0`5E>+\>C7+/__BTPD ++M#(L&B]&+^6G2____/P-6!,'G`L'B`E*-%#B-1(@$4E#_%6C!0@"+!HM,)!R# ++MQ`R)#`?_1@1?7L((`%:+\5>+1@2+#HM\@?R%_W0.B\_H$]?__U?HGC#__UG_ ++M3@1?7L.+5"0(5HMT)!!7.]9T'8LYC00RT>B+#(<Y3"0,=!!]!(OPZP.-4`$[ ++MUG7E@\C_7U["#`"X?J9"`.C1D`$`45:+\6C@````Z!@P__]9B\B)3?"#9?P` ++MA<ET#/]U".@C````B\CK`C/)BT8$C5`!B58$BQ9>B0R"BTWT9(D-`````,G" ++M!`"XW:9"`.B`D`$`45-6BW4(B]E7B5WPBP:%P(D#=`:+"%#_402+1@2#9?P` ++MA<")0P1T!HL(4/]1!(M&",9%_`&%P(E#"'0&BPA0_U$$BT8,QD7\`H7`B4,, ++M=`:+"%#_402*1A"-2QB(0Q"*1A&(0Q&*1A*(0Q**1A.(0Q.*1A2(0Q2*1A6( ++M0Q6*1A:(0Q:*1A>(0Q>-1AA0QD7\`^B6-?__C48DC4LD4,9%_`3HAC7__XU& ++M,(U+,%#&1?P%Z'8U__^+1CR#QD2)0SR+1OR->T2)0T"EI:6+=0B-2WC&1?P& ++MBT90B4-0BT94B4-4BT98B4-8BT9<B4-<BD9@B$-@BT9HB4-HBT9LB4-LBT9P ++MB4-PBT9TB4-TC49X4.A!````C8:H````C8NH````4,9%_`?H*P```(N&V``` ++M`%^)@]@```"+AMP```")@]P```"+PUZ+3?1;9(D-`````,G"!`"X\Z9"`.@A ++MCP$`4597BWT(B_&)=?"*!XU.&(@&BD<!B$8!BD<"B$8"BD<#B$8#BT<$B48$ ++MBT<(B48(BT<,B48,BT<0B480BT<4B484C4<84.B"-/__@V7\`(/')%>-3B3H ++M<C3__XM-](O&7UYDB0T`````R<($`(-L)`0$Z:3[__^#;"0$!.G/)___@VPD ++M!`3I/_S__X-L)`0(Z8;[__^#;"0$".FQ)___@VPD!`CI(?S__X-L)`0,Z6C[ ++M__^#;"0$#.D-_/__@VPD!!#I5/O__X-L)`00Z?G[__^`/<`Q0P``=0]J$&CD ++MST(`4E'_%=S!0@##48-D)```5HOQZ`9H__^+QEY9P[@PIT(`Z!J.`0"#[&!6 ++MB_&#OI``````=`__MHP```#_=@3_%=#!0@!3BQW\P4(`5VID_W8$_]-J9XU^ ++M"/]V!(D'_]-J9HE&$/]V!/_3BQT<PD(`:@!J`6@%(```_S>)1@S_TX-E\`"# ++M?G@`=B.+1G2+3?"+!(C_<`QJ`&A#`0``_W80_]/_1?"+1?`[1GARW8-^>`%W ++M*X!^;0!J9_]V!'01_Q7\P4(`:@!0_Q7PP4(`ZP__%?S!0@!J`%#_%=3!0@"+ ++M3GB+1G`[P7,-:@!0:$X!``#_=A#_T[$!Z.M;``!0:@%H`Q```/\W_],RR>C8 ++M6P``4&H`:`,0``#_-__3NNP#``"-3<#HXO[__XL`@V7\`&ID4&H`B\_H"G+_ ++M__]UP(--_/_HA"S__UFZ]`,``(U-P.BV_O__BP!J`5EJ9%")3?Q1B\_HW7'_ ++M__]UP(--_/_H5RS__UFZ[P,``(U-P,=%J`(```#'190/````QT68`0```,=% ++MG&0```#H;?[__XM%P(E%H(U%E%!J`FAA$```_S?_T_]UP.@0+/__QP0D)-!" ++M`&H`B\_HKW'__V@`T$(`:@%J`(O/Z-9Q__]H\,]"`&H":@"+S^C&<?__@V7P ++M`&C__P``_W7P:!X0``#_-__3_T7P@WWP`WSF:@!J`&@)$```_S?_TS/_B\Y7 ++MQD90`8E^3.CQ;?__BT94C5Y4B7L$9HDXBXZ`````C;Z`````Z/A<__^+#XE% ++M\.BW6?__A,!T!H-E\`#K((L/Z+Y;__^$P'05BP^#P0CHF%G__X3`=`?'1?`$ ++M````_W7PBP>+RU#HD3+__XU-Y.B.,/__C4WDC49@45!7B\['1?P"````Z"$$ ++M``"$P'4)4XU.8.@-,O__C5Y@C4W84^@Q,?__C47DB\Y0C4784,9%_`/H]`4` ++M`(7`='"+3>0SP(E%Z&:)`3E&9'1@C4W,Z"\P__^-3;3&1?P$Z",P__^-1;2+ ++MSE"-1<Q04\9%_`7HN0,``(U%S(O+4.BG,?___W6TZ*PJ____=<SHI"K___]U ++MV,9%_`+HF"K__X/$#(U-V%/HKS#__^EY_____W78QD7\`NA[*O__@WWH`%EU ++M"5>-3>3H7C'__X!^;0!?6W0(C4WDZ'58____=>3_=@S_%=#!0@!J`&@"``$` ++M:"@!``#_=@3_%=C!0@#_=>3H,BK__UFP`8M-]%YDB0T`````R<-5B^R#["Q3 ++M5HU%Y%=0B_%J;NBA:___:@%J`/]V!/\5S,%"`(M]#(U%U"M]Y%!J98O.Z(%K ++M__^+1>!J`2M%V(O.4(O'*T744/]UV/]UU&IEZ.9K__^-1?R+SE"-1?A0:@+H ++M$6O__XU%_(O.4(U%]%!J`>@`:___BT40:@$K1?S_=?R+WXO.*T7H_W7X*UWX ++M4(E%#%-J`NB@:___*UWT:@'_=?R+SBM=Y/]U]/]U#%-J`>B%:___C474B\Y0 ++M:F;H]6K__XM=X(O'*UW8*T74:@%34(M%Z(M-#`/#T>`KR%'_==3_=@S_%?3! ++M0@"-1=2+SE!J9^C`:O__BT7@:@$K1=A0B\<K1=10BT4,*\,K1>A0_W74_W80 ++M_Q7TP4(`C474B\Y0:F3HCVK__XT$&RM]U(O(BT7H:\#]*\%J`2M%V`-%#%!7 ++M_W78_W74_W8(_Q7TP4(`7UXRP%O)P@P`@7PD!`&```!U">CN"0``L`'K$?]T ++M)`S_="0,_W0D#.@::/__P@P`58OL@WT(`74/@WT,9W4)Z*P(``"P`>L._W40 ++M_W4,_W4(Z'QH__]=P@P`5HOQBTPD#(L!.T8(#X6K````BT$(@_B4=VQT0CUE ++M____=!F#^(YT!8/XD^MH@#U@,$,```^$@P```.MF4U&+SNA^````:@!J`&@! ++M@```BMC_=@3_%=C!0@"*PUOK88M)$#M.3'4,@'Y0``^4P(A&4.L+A<D/E,"( ++M1E")3DR+SN@2"```ZS>#^/MT('8P@_C]=@>#^/YT%.LD@#U@,$,``'4;B\[H ++M*@L``.L2:@!J`&@!@```_W8$_Q78P4(`,L!>P@@`5HOQ:A'_%<C!0@"+3"0( ++MP>@/#[=)#"0!@_D(="2#^5)T$H/Y=G0$,L#K'XO.Z%,)``#K%(3`=.^+SNB4 ++M!P``ZP>+SN@M"```L`%>P@0`BT0D!%:#Z&Z+\70<2$AT#_]T)`S_="0,Z&5G ++M___K&XO.Z!$)``#K!XO.Z/@'``#_=@C_%<3!0@"P`5[""`!6B_%7BWX(_Q7` ++MP4(`.\>+SG4'Z&P*``#K!>A9"P``7U[#N$2G0@#H<X<!`(/L#%-65XM]##/; ++MBW4(BP>)7P1FB1B+11")6`2+`&:)&#E>!'0.B]:#P53HTS/__X3`=`0RP.MY ++M5HU-Z.C>+/__BTWHBT7LB5W\9HM40?YF@_I<=`9F@_HO=0Y(B47L9HD<08M% ++M[(M-Z#O#=#MFBT1!_F8]7`!T,&8]+P!T*HU-Z.@7,?__B_"+ST96_W7HZ+,M ++M__^+1>B+31"-!'!0Z.@L__^+3>BS`5'H3B;__UF*PXM-]%]>6V2)#0````#) ++MP@P`BU0D"%-65XOYBTPD$#O*=0<SP.F4````@\[_.\YT)#O6="B+1Q2+%)"+ ++M#(B+6B"+02#!ZP3!Z`2`XP&H`70(A-MU#8O&ZV6$VW0%:@%8ZUR+=TPSP"OP ++M=$!.="U.=46+`HLQBU($BTD$._!U"#O*=08SP.LO.\IW"W($._!S!8/(_^L@ ++M:@%8ZQN#PAB#P1A24?\5:,!"`.L+BU(HBTDHZ%\U__^`?U``=0+WV%]>6\(( ++M`(M4)`B+1"0$4S+;5H/Z`HOQ<A5W!ST```!Q<@QJ'EGH>X@!`+-'ZRR%TG<' ++M/0!`G`!R#&H46>ADB`$`LTWK%872=P<]$"<``'(*:@I9Z$V(`0"S2U*+SE#H ++M1R3__X3;=!MFQP`@`$!F#[[+0&:)"$!`9L<`0@!`0&:#(`!>6\((`+B3IT(` ++MZ'2%`0"![$@!``!3B]E65XU-P.A(D@``BT4(@&7O`(L]',)"`#/V.7`$B77\ ++M#X28`0``BQ7@R$(`BPCHL"7__X3`#X6#`0``.7-XB77H=%Q65FA&`0``_W,0 ++M_]<[QGY,5E9H1P$``/]S$/_7.T-X<SN+2W2+-(&+1@2#^`%W*G4KBP:Z7-!" ++M`(L`BPCH7R7__X3`=1>+!KIXR$(`BP"+".A+)?__A,!U`XEUZ(U-S.AG!``` ++MC4W0QD7\`NB2*?___W4(C4W,QD7\`^@63/__C8U4____Z,]"__^-C7S____H ++M;2G__\9%_`2-1>Z-3<Q0C854____4.A13/__A,!T;H!][@`/A)L```"+A73_ ++M___!Z`2H`74[@'MM`'7,BT7HA<!T+HM`!#/VA<")1?!V'8M%Z(V5?/___XL` ++MBPRPZ(TU__^$P'4&1CMU\'+C.W7P=)>-3<#HAA___XV%5/___XU-P%#HGQ`` ++M`.E[____Z$9-____M7S___^+\.B"(____W70Z'HC__]968U-S.@S0___@TW\ ++M_XU-P.B]#P``B\;I/P,``/^U?/___^A2(____W70@&7\`.A&(___65F-3<SH ++M_T+__^F6````C4W<QD7O`>B)D```C4W<QD7\`>CO2___A,!U#.C-3/__B_#I ++MQP```#EUX(EU\'9:BT7<BTWPBPR(B4WHBT$$@_@"#X*B````BPEF@WQ!_EP/ ++MA90```"-3<#HVPX``/]UZ(UP*(O.QT`@$````.BX*?___TX$BT8$BPYF@R1! ++M`/]%\(M%\#M%X'*F@&7\`(U-W.BJT0``_W4(C7-@B\[HARG__XU%P(U+%%#H ++M(`X``/\V:F7_<P3_%;S!0@!J`(US"&H`:@O_-O_7:@!J`&@)$```_S;_UX-- ++MZ/\SP#E#&(E%"`^&>`$``.L9O@5``("`9?P`C4W<Z$71``#IQ_[__XM%"(M+ ++M%(E%G(L$@8U-W(E%\(/`*%#H/RC__XM%#,9%_`6#>`0`=!2+$(M-W.C.,?__ ++MA<!U!HM%"(E%Z(M%"(-EH`")1;B+1=R)1:R-1=Q0C5-@C4V,QT68!P```.@! ++M)___@'WO`,9%_`9T,HM%\&I<C4W0C5`HZ`&V__^+`&H06HO(QD7\!^AM3@`` ++M_W70B46TQD7\!NB<(?__6>L4_W6,BT7PC4L@_W`@Z&A.``")1;0SP#E%M'T# ++MB46TC4V845!H31```/\V_]>+3?`SP(/!&&:)A:S^__\Y001U!#D!=`UJ_XV5 ++MK/[__^A?6___C86L_O__B\Y0:@'_=0CH&V?__XM%\&:#I:S^__\`BT@@P>D$ ++M]L$!=1#_<`2-C:S^____,.B'^___C86L_O__B\Y0:@+_=0CHXF;___]UC.CT ++M(/___W7<@&7\`.CH(/___T4(68M%"%D[0Q@/@J#^__]J`&H`:`00``#_-O_7 ++MA<!^*(-]Z`!\(FH#6(F%//___XF%./___XV%+/___U#_=>AH*Q```/\V_]=H ++MG@!!`%-H,!```/\V_]<SVU-3:`00``#_-O_7.\-^*#E=Z'TC:@&-A2S___]; ++M4&H`:"L0``")G3S_____-HF=./_____7ZP-J`5N+SN@_````:@!0:!,0``#_ ++M-O_7:@!3:@O_-O_74VH`_S;_%<S!0@"#3?S_C4W`Z'D,```SP(M-]%]>6V2) ++M#0````#)P@@`:@%J_V@,$```_S'_%1S"0@##_W0D"(M,)!#_="0(Z+#Y___" ++M#`"+P8,(_\.XL*="`.A.@`$`@^P<5HOQ5XU-Y.@8)?__@V7\`&H"C7X(:O]H ++M#!```/\W_Q4<PD(`A<!\*HU-\%%0B\_HWV3__X3`=!J+1?"#^/]T$HM.%(L$ ++M@8U-Y(/`*%#H=2;__XU&8(U-V%#HF27__XU%Y(O.4(U%V%#&1?P!Z%SZ____ ++M==B+\.A9'____W7DZ%$?__]9B\997XM-]%YDB0T`````R<.XS*="`.BL?P$` ++M@^P85HOQC4W<Z'<D__^#9?P`C4WHZ&LD__^-1>B+SE"-1=Q0C49@4,9%_`'H ++M_O?__X3`=!:-1>B+SE"-1=Q0Z.KY__^+SN@?````_W7HZ.(>____==SHVA[_ ++M_UE97HM-]&2)#0````#)PU6+[(/L$%:+\5=J`HU^"&K_:`P0``#_-_\5',)" ++M`(7`?0N`?FT`='#_=F#K8HU-_%%0B\_HT6/__X3`=`B+1?R#^/]U#8!^;0!T ++M36A@T$(`ZSV+3A2+!(&+2"#!Z03VP0%T*8!^;0!T+VI<C5`HC4WPZ)NR____ ++M,/]V#/\5T,%"`/]U\.A"'O__6>L,_W`H_W8,_Q70P4(`7U[)P[CXIT(`Z)Q^ ++M`0"#["135E>+^8U-Z.AE(___@V7\`(U-W.A9(___B_>-1P3WWAOVC57<(_#& ++M1?P!BP[H,@@``(-]X`!T(HU?8(U%Z%"-5=R+R^C;!0``A,!U%?]UZ(L.:GM: ++MZ+T```#_==SIEP```/]UW(!E_`#HM!W__X-][`!9=0W_=>CHI1W__^F%```` ++MC4W0Z.@B__^+"XM5Z(U%T,9%_`)0Z"U0__^$P'16BTW0Z*,X__^$P'45_W70 ++MBS;H(T?__XO0B\[H6````.LL4XU-W.A[(___C47HB\]0C47<4,9%_`/H/OC_ ++M_XO/Z'/^____==SH-AW__UG_=PC_%<3!0@#_==#H)!W___]UZ.@<'?__65E? ++MBTWT7EMDB0T`````R<.X#*A"`.AX?0$`@^P,5HOQC4WHZ)5(``"#9?P`@WT( ++M`'03C4WHZ/\E__^-3>C_=0CH&R;__XM5Z(O.Z!@```#_=>CHQ!S__UE>BTWT ++M9(D-`````,G"!`!J$&CDST(`4E'_%=S!0@##N"BH0@#H$7T!`(/L'%:+\5=J ++M`HU^"&K_:`P0``#_-_\5',)"`(7`#XRY````C4WP45"+S^BJ8?__A,!T"(M% ++M\(/X_W4,B\[H&?W__^F5````BTX4BSR!BT<@P>@$J`%U#X!^;0!U?XO.Z(8` ++M``#K=HU&8(U-Y%#H2R+__X-E_`"#QRA7C4WDZ*DE__^-3>3HVS'__XU-V.A8 ++M(?__4(U%Y%"+SL9%_`'H\?;___]UV(!E_`"+^.CJ&___A?]9=!?_=>2+QO?8 ++MC4X$B]<;P"/!BPCHP_[__XO.Z/S\____=>3HOQO__UF+3?1?7F2)#0````#) ++MP[A$J$(`Z!U\`0"#[!A6B_&-3>CHZ"#__X-E_`"-1>A0C4X,Z)I:__^-3=SH ++MT"#__XM.8(M5Z(U%W,9%_`%0Z!1.__^$P'4L_W7HB\:#Q@3WV!O`:GLCQEJ+ ++M".A&_O___W7<Z$D;____=>CH01O__UE9ZU)7C;Z`````C47<B\]0Z!XB__^` ++M?FT`=`>+S^@X2?__:@!J`&A'`0``_W80_Q4<PD(`:@&)1G#_=@3_%;C!0@#_ ++M==SH]AK___]UZ.CN&O__65E?BTWT7F2)#0````#)P[A;J$(`Z$M[`0"![*`` ++M``!35HMU#%>+?0B)3>R+!C/;B57PB5X$B\]FB1CH/4O__X3`=2@SR68Y'W02 ++MB\=!0$!F.1AU^('Y!`$``',/BU7PBTWL5E?H:%?__^MBC8U4____Z&@````Y ++M7?")7?S&1<$!=`O_=?"-3>#H[R#__SO[=`E7C4W4Z.(@____=>R-C53___]J ++M7^AE7___@_@!=0V-1=2+SE#H)B'__[,!@TW\_XV-5/___^B3`0``BL.+3?1? ++M7EMDB0T`````R<((`+BUJ$(`Z'QZ`0!14U:+\3/;B77PB5X$QP:@T$(`B5X( ++MB5X,B5X0B5W\B5X4B5X8B5X<C4X@QD7\`>B?````C4Y4QD7\`N@5'___C4Y@ ++MQD7\`^@)'___@TYP_XA>;(A>;8E>=(E>>(E>?(V.@````,9%_`7HYQ[__XV. ++MC````,9%_`;HV![__XM-],<&:-!"`(O&7EMDB0T`````R<.P`<,RP,(,`#+` ++MPS+`P@@`:@'_<03_%;C!0@##:@O_<03_%;C!0@##:@+_<03_%;C!0@##:@C_ ++M<03_%;C!0@##B\$SR8D(B4@$B4@(B4@,B4@0B4@4B4@8B4@<B4@@B4@HPU:+ ++M\>AY````]D0D"`%T!U;H^QC__UF+QE["!`#'`=C00@##]D0D!`%6B_''!MC0 ++M0@!T!U;HUQC__UF+QE["!`"XTZA"`.@]>0$`45:+\8EU\(U.&,=%_`$```#H ++MN<<``(!E_`"-3@SHK<<``/\VZ)T8__]97HM-]&2)#0````#)P[@4J4(`Z/QX ++M`0!15HOQB77P_[:,````QT7\!````.AL&/___[:`````Z&$8__]968U.=.CF ++M!```_W9@Z$\8____=E3H1QC__UG&1?P!68U.(.AI____@&7\`(U.%.B&!``` ++MBTWTQP;8T$(`7F2)#0````#)PU:+\>@>____]D0D"`%T!U;H!1C__UF+QE[" ++M!`"X6ZE"`.AK>`$`@^Q\4XM="%97BP.+^3/V4HES!(U-X&:),.CY'?__:EQJ ++M+XU-X(EU_.@>)/__C4W(Z`\=__^+3>#&1?P!Z+)(__^$P'08BTW@Z#9(__^$ ++MP'47BTW@Z`Q)__^+\.LVBP_H'TC__X3`="*-1>"+RU#H=![___]UR.AY%___ ++M_W7@Z'$7__]96>EQ`0``5XU-R.A4'O__C46\5E"-3>#H_(W__U"+R\9%_`+H ++MV2#__\9%_`'_=;SH/!?__UG&10L!C4W4Z'\<___&1?P#.W7D#X0.`0``BT7@ ++MC3PV9KI<`(T,!^@<%___A<!]!H--[/_K"0/&A<")1>Q]!8M%Y.L#BT7L*\:- ++M3=10BT7@`_A7Z"\>__^`?0L`#X2+````C8UX____Z'8U__^-3:#H%QS__U.- ++M5<B-3;#&1?P$Z.,;__^-3=2+T%&-3;S&1?P%Z-$;__^+`&H`4(V->/___\9% ++M_`;HLSC__XA%\_]UO.B&%O___W6PQD7\!.AZ%O__@'WS`%E9=`R+19C!Z`2H ++M`71`ZP2`90L`_W6@QD7\`^A6%O__@'T+`%EU"(U-U.AA````C474B\M0Z,T? ++M__^+=>R%]GPAB\M&Z/@K___I_?[__XU%X(O+4.@0'?___W6@Z!46__]9_W74 ++MZ`P6____=<CH!!;___]UX.C\%?__@\0,BTWT7UZP`5MDB0T`````R<($`%:+ ++M002%P'0>BQ%FBW1"_F:#_B!T!F:#_BYU"TB)001F@R1"`.O;7L.X<*E"`.@K ++M=@$`@^P\4U:+\E>+^3/;BP:)7@2-3;AFB1CH9````(U5Q+F<&```B5W\Z#I1 ++M__^-5="YGA@``.@M4?__C57<N:`8``#H(%'__XU-N%=J8NB%6O__@_@!=0V- ++M1=R+SE#H1AS__[,!@TW\_XU-N.AS````BTWTBL-?7EMDB0T`````R<.XFJE" ++M`.BA=0$`4597B_$S_XEU\(E^!,<&H-!"`(U.#(E]_(E^".A9&O__C4X8QD7\ ++M`>A-&O__C4XDQD7\`NA!&O__BTWTB7XPB7XTB7XXQP80T4(`B\9?7F2)#0`` ++M``#)P[C-J4(`Z#]U`0!15HOQB77PC4XPQT7\`P```.B[PP``_W8DZ*H4____ ++M=ACHHA3___]V#.B:%/__BTWT@\0,QP;8T$(`9(D-`````%[)PU:+\>BJ____ ++M]D0D"`%T!U;H;Q3__UF+QE["!`!5B^Q35HMU"(O9._-U!(O#ZU*+R^BS`0`` ++MBW8$.W,(=B6!_O___W]V%8U%"&BPXT(`4,=%".4'``#HP70!`%:+R^C'$/__ ++M5S/_A?9V%(M%"(O+BP#_-+CH$@$``$<[_G+LB\-?7EM=P@0`N.*I0@#H:W0! ++M`%%65XOQZ,@/__]J..BO$___B_A9B7WP,\`[^(E%_'01B\_H=#+__XU/*.@5 ++M&?__B\>+3@1?C5$!B58$BQ9>B02*BTWT9(D-`````,G#5E>+^8MW!(7V="!3 ++MBP=.BQRPA=MT$/]S*.B)$___4^B#$___65F%]G7B6_\WZ'43__]97U[#N/2I ++M0@#HWG,!`%%65XOYB7WP@V7\`(MW!(7V=!.+!TZ+#+"%R73R:@'H&````.OI ++M_S?H.A/__UE?BTWT7F2)#0````#)PU:+\>@4````]D0D"`%T!U;H%A/__UF+ ++MQE["!`!6B_'_=@SH!!/__UF+SN@%P@``7L.X"JI"`.AG<P$`45.+V6HXZ+$2 ++M__]9B47P,\D[P8E-_'0?BU4(5E=J"EF+\HOX@\(H\Z52C4@HZ.$8__^+3?!? ++M7HM#!(U0`8E3!(L36XD,@HM-]&2)#0````#)P@0`5E>+^8MW!(7V=!Y3BP=. ++MBQRPA=MT#HO+Z&`O__]3Z'D2__]9A?9UY%N#9P0`7U[#4XL=_,%"`%97B_%J ++M9?]V!/_3_W8,BSW0P4(`B48(_W8$_]=J9/]V!/_3_W884/_7_W8D_W8(_]<S ++MVS/_.5XT=AV+1C"+!+C_,%-H0P$``/]V"/\5',)"`$<[?C1RXU.+SNA35/__ ++M7UZP`5O#58OL@^P44U:-1>Q74(U%^%"+V6H(Z*Q2__^-1?R+RU"-1?10:@+H ++M*5/__XU%_(O+4(U%\%!J`>@84___BWT0BW4,*WW\*W7TC4,$:@$K?>PK=?AJ ++M`(E%$/\P_Q7,P4(`:@&+R_]U_/]U]%=6:@+HI5/__RMU\&H!_W7\B\LK=?C_ ++M=?!75FH!Z(Q3__^+1?@#P(O(BT4,*\&+31!0_W,(Z`D```!?7C+`6\G"#`!5 ++MB^R#[!B-1>A64(OQ_W4(_Q4`PD(`BT7HB47XBT7LB47\C47X4/\V_Q7XP4(` ++MBT7T:@$K1>Q0_W4,_W7\_W7X_W4(_Q7TP4(`]]@;P%[WV,G""`!6B_&-1B2- ++M3@A0Z`)0__]J`?]V!/\5N,%"`%[#5HOQ_[:4````QP;4QT(`QT8$P,="`,=& ++M"*S'0@#'1@R<QT(`QT80C,="`.BS$/___[:(````Z*@0____=GSHH!#___]V ++M<.B8$/___W9DZ)`0____=ECHB!#___]V2.B`$/___W8\Z'@0____=C#H<!#_ ++M_X/$)%[#5HOQN>0,``"-5F3H#4S__XU6<+GF#```Z`!,__^-5GRY_0P``.CS ++M2___:'310@"-CH@```#H01C__X-F*`"`9A\`7L/_="0$QD$?`8M)5('!6`$` ++M`.A.%P``P@0`5HOQZ!L,``#_="0(B\[HU/___U["!`"+1"0$_W0D#(M(5/]T ++M)`R!P5@!``#H_A4``#/`P@P`BT0D!/]T)`B+2%2!P5@!``#H.18``,((`(M) ++M3('!6`$``.F"%0``,](X411U,SE4)`1T!L9!$@'K`XA1$HM$)`@[PG09QD$3 ++M`?]P!(M)3/\P@<%8`0``Z)T5``#K`XA1$S/`P@@`5HOQ5[]8`0``@'X4`'47 ++MBT0D#(7`=`__<`2+3DP#S_\PZ)@5``"+3DP#S^@3%0``7U[""`#_="0$C4$( ++MBTD(4/]1#,($`%6+[(/L8%-6C4V@Z#T!``"+11`SVSO#=06(7;'K#XL(BT`$ ++MB4W`B47$QD6Q`8M%%#O#=06(7;#K#XL(BT`$B4VXB46\QD6P`?]U#(U-R.AH ++M%?__BT4<QD6R`3O#=06(7=GK#XL(BT`$B4WHB47LQD79`8M%(#O#=06(7=CK ++M#XL(BT`$B4W@B47DQD78`5>-3?#_=1CH(A7__XMU"(M^5(I&((A%VHV/4`$` ++M`.B#8@$`BX]4`0``Z+AA`0"+=E1?._-T!8U&!.L",\#_,(U-H&BL#0``Z'53 ++M__]J`EDKP71/:@1:*\)T/TAT-2VQ`0``="-(=!4M^`L``'0'O@5``(#K.XM% ++M)(D0ZR*+123'``,```#K%XM%),<``0```.L,BT4DB0CK!8M%)(D8,_;K#HM% ++M)+X$0`"`QP`%````C4V@Z)$```"+QEY;R<(@`+@GJD(`Z$QN`0!14U:+\3/; ++MB77PB5X$QP:@T$(`QD8(`8A>"8U.*(E=_(A>$(A>$8A>$NCW$O__C4Y0QD7\ ++M`8A>.(A>.8A>.NCB$O__BTWTQP9\T4(`B\9>6V2)#0````#)PU:+\>@>```` ++M]D0D"`%T!U;H9PW__UF+QE["!`#_<1CH6`W__UG#5HOQ_W90Z$L-____=BCH ++M0PW__UG'!MC00@!97L-5B^R#?1``4U:+=0C_=0P/E<.-3CR(7AGHJQ/__XM- ++M%(V&E````(/I`'0;2703270+2745C8:(````ZPV-1GSK"(U&<.L#C49DBTY4 ++M4_]U#('!6`$``%#HJA,``%Y;7<(4`/]T)`B+3"0(Z*/\__\SP,((`%	"0` ++M`%:+\6H`Z"0<__^+QEY9P[A$JD(`Z!UM`0"#[!Q35E>+?0R+V3/VBP>)=P0[ ++MWHE5\&:),`^$[````(U#_X/X"'=$_R2%$!5!`+Z)#@``ZS:^B@X``.LOOHL. ++M``#K*+Z,#@``ZR&^C0X``.L:OHX.``#K$[Z/#@``ZPR^D`X``.L%OI$.``"- ++M3>3H@A'__X-E_`"#?>@`=12%]G0=C57DB\[HS$?__X-]Z`!T#8U%Y(O/4.B: ++M%?__ZQ1H@,A"`(O/Z,@5__^+SU/H&1;__X-]\`"^F,U"`'0S@_L)="Y6B\_H ++MJ!7__[I^#@``C4W8Z")&__]0B\_&1?P!Z%,5__^`9?P`_W78Z+8+__]95HO/ ++MZ'H5__^+S_]U".CH%/___W7DZ)L+__]9BTWT7UY;9(D-`````,G""``B%$$` ++M*11!`#`400`W%$$`/A1!`$4400!,%$$`4Q1!`%H400!5B^R#[`R#?0P`5HMU ++M"'0MC4WTZ)T0__^+51"+30R-1?10_W8\Z(O^____=?2+SN@C^____W7TZ"D+ ++M__]9BT8\@V9``%YF@R``,\#)P@P`58OL@^P,@WT,`'0QC4WTZ%(0__^+51"+ ++M30R-1?10_W44Z$#^__^+10C_=?2-2/3HU/K___]U].C:"O__63/`R<(0`%:+ ++M\?]T)`B-3BSH4Q'__\9&%`$SP%[""`"X:*I"`.@G:P$`@^PP4U:)3>Q7,_:+ ++M^HU-X(EU\.CH#___B77\B77PNTC10@"+3?!J`5[3YH7W='B+$XU-U.BWW/__ ++M@WW8`,9%_`%T5X/^!'4T:)C-0@"-3=3H*!3__[I^#@``C4W(Z*)$__]0C4W4 ++MQD7\`NC2$___QD7\`?]UR.@U"O__68-]Y`!T"(U-X.A$$___C474C4W@4.BK ++M$___]]8C_O]UU(!E_`#H"@K__UG_1?"#PP2!^W310@`/@FK___^%_W0LC57& ++MB\_&1<0PQD7%>.B."?__@WWD`'0(C4W@Z/$2__^-1<2-3>!0Z)03__^+3>R- ++M1>!0Z-X/____=>#HLPG__XM%[%F+3?1?7EMDB0T`````R<.XY*I"`.@-:@$` ++M@^Q<@V7P`%.+70A65XE5[(M#!(OYA<`/AH$!``"+`XM-\(LTB(U>>(O+Z#0# ++M``"$P'4*@WL,``^,30$``(-_!`!U$?]U#(O/Z(X2__^+S^A@$O__@WWP`'0* ++MC588B\_H)P,``(O3B\_H,`,``(-[#``/C!,!``!HR-%"`&I)6HU-O.C:-``` ++M@V7\`(O0B\_H]P(``(--_/__=;SH]@C__XM##%DY1CQU+KK+"P``C4W(Z"#; ++M__^+T(O/QT7\`0```.C%`@``@TW\__]UR.C$"/__Z;(```"%P'T'N,310@#K ++M#(M-[(M)"(L$@8M`$(O0C4W@Z.8#``!0NLD+``"-3=3'1?P"````Z-H&``"+ ++MT(O/QD7\`^AQ`@``_W74Z'0(____=>"#3?S_Z&@(__^+=CQ9A?99?0>ZQ-%" ++M`.L,BT7LBT`(BS2PBU80C4VDZ(P#``!0NLH+``"-3;#'1?P$````Z(`&``"+ ++MT(O/QD7\!>@7`@``_W6PZ!H(____=:2#3?S_Z`X(__]96?]%\(M%"(M-\(O8 ++M.T@$#X)__O__,_8Y<SQ]"3EU$`^$BP$``/]U#(O/Z",1__^+S^CU$/__.7,$ ++M=`J-4R2+S^B]`0``.7,\?3&#?1`!="N+51"-39CH5#,``%"+S\=%_`T```#H ++M-!'__X--_/__=9CHEP?__^DA`0``C4W4OKT+``#HU0S__X![(0#'1?P&```` ++M=`-&ZT6+0SR%P'P^OLD+``!]![C$T4(`ZPR+3>R+20B+!(&+0!"+T(U-F.B2 ++M`@``4(U-U,9%_`?H,`[__\9%_`;_=9CH,0?__UF-1=2+UE"-3>#H<P4``+Y8 ++MR4(`C4V\5L9%_`CHHPS__VB\T4(`C4W(QD7\">B2#/__C46\C4W@4(U%R%#& ++M1?P*Z(<3____=<CHXP;___]UO,9%_`CHUP;__UE95HU-R.A?#/__:+310@"- ++M3;S&1?P+Z$X,__^-1<B-3>!0C46\4,9%_`SH0Q/___]UO.B?!O___W7(QD7\ ++M".B3!O__68U%X%E0B\_H%Q#___]UX.A^!O___W74@TW\_^AR!O__65F+S^B' ++M#___C5,PB\_H9@```#/VBT<$.\9T$HL/9H-\0?X*=0A(B4<$9HDT08M-]%]> ++M6V2)#0````#)P@P`,\`Y001U'3E!"'48.$$"=00X`74/.$$!=0HY01QU!3E! ++M*'0#:@%8PU:+\5+HDP___XO.Z!D/__]>P[@0JT(`Z&9F`0"#[!Q35HOR5XOY ++M@'X!`(M>!'0#@\L@B\[H`P$``(7;B47P="2+TXU-Y.@'^___@V7\`(O0B\_H ++MJ?___X--_/__=>3HJ`7__UF#?AP`=`J-5AB+S^B,____@WWP`'1B:-S10@!J ++M2%J-3>3H3#$``%"+S\=%_`$```#H`P___X--_/__=>3H9@7__UF+S^A5#O__ ++MB\_H=0[__XM5\(U-Y.B2^O__B]"+S\=%_`(```#H,?___X--_/__=>3H,`7_ ++M_UF#?B@`=$MHR-%"`&I)6HU-V.CD,```4(O/QT7\`P```.B;#O__@TW\__]U ++MV.C^!/__B\_'!"38T4(`Z+T.__^#QB2+SU;H=@[__XO/Z/P-__^+3?1?7EMD ++MB0T`````R<.`>0(`BT$(=0V`.0!T"/9!!$!U`@Q`P[@DJT(`Z"5E`0"#[!"# ++M9?``5HOQ5XOZ:EN-3>3H"@K__X-E_`!7C4WDZ,\-__^-3>1J7>C\#/__C47D ++MB\Y0Z)@*____=>3H;03__UF+QHM-]%]>9(D-`````,G#N#BK0@#HR60!`(/L ++M#%:+\?]U$(U.+.C0"O__C4WHQD84`>B%"?___W44BU4(@V7\`(U-Z/]U$/]U ++M#.A]^O__@WWL`'02_W7H_T8DC4[\Z.+S__^`9A0`_W7HZ/T#__]9,\"+3?1> ++M9(D-`````,G"$`!6B_&`?A@`=!*#?C0`=`C_=C#HK?/__X!F&`!>P[A,JT(` ++MZ#MD`0"#[`Q3BUT(5HOQA=MU!#/`ZU3_1B2!^P1``(!T1X'[<``'@'0_5XU^ ++M_(O/Z*G___^#?CP`=`J+=CB+!U97_U`<B].-3>CHRG+___\PBP^#9?P`5_]1 ++M'/]UZ.AF`___63/`7^L"B\.+3?1>6V2)#0````#)P@0`_W0D!,9!'0&#P53H ++M,0K__S/`P@0`58OL@^P<5HMU",9&$@&`?A$`=6Y7C4WDZ(8```"+?D2-CU`! ++M``#H%5<!`(N/5`$``.A*5@$`BT9$7X7`=`6#P`3K`C/`_S"-3>1HV`X``.@' ++M2/__@_@!=!#_=?#HV`+__UFX!$``@.LUC47PC4Y(4.BW"?___W7PQD81`>BX ++M`O__6?]V2/\5B,%"`(M-#(D!]]@;P"7R__A_!0X`!X!>R<((`+A@JT(`Z`-C ++M`0!15HOQB77P@V8$`,<&H-!"`(-E_`"#9@@`C4X,Z+L'__^+3?2`9A@`QP;P ++MT4(`B\9>9(D-`````,G#5HOQZ!0```#V1"0(`70'5N@]`O__68O&7L($`%:+ ++M\?]V#.@K`O__6<<&V-!"`%[#N'RK0@#HCV(!`(/L'(-E\`!6B_%2C4WDZ"@( ++M__^#9?P`:"C20@"-3=CHAP?___]U"(U%V(U-Y,9%_`%0Z'T.__^`9?P`_W78 ++MZ-4!__]9C47D4(O.Z.P'____=>3HP0'__UF+QHM-]%YDB0T`````R<($`+B0 ++MJT(`Z!QB`0"#[!"#9?``5HOQC4WDZ-/3____=0B#9?P`B]"+SNAA_____W7D ++MZ'L!__]9B\:+3?1>9(D-`````,G"!`!6BW0D"(M&!(/X2'8;@\"XB\Y0:B3H ++M=P[__V@PTD(`:B2+SNC*#/__BT8$A<!T'(L.9H-\0?X@=1)J(HO.Z'<,__]J ++M(HO.Z)H)__]>P@0`_W0D!/]Q!/\5_,%"`&H`_W0D#&AP`0``4/\5',)"`(7` ++M=`=0_Q6TP4(`P@@`N*RK0@#H6F$!`(/L6%-6BW4,5XM]"(O95HU-G%?HY__^ ++M_XU%G(U-Z%#H4@;__X-E_`"-1>A0NK`-``"-3=SH^_[__U"+R\9%_`'H+PK_ ++M__]UW.B6`/___W7H@TW\_^B*`/__687V67<,@?\`!```#X*-````@_X"<B!W ++M"('_````@'(6:AZ+QUF+UNAT8P$`B_"+^L9%#$?K-H7V=PB!_P``H`!R%FH4 ++MB\=9B];H4F,!`(OPB_K&10Q-ZQ1J"HO'68O6Z#QC`0"+\(OZQD4,2VB8S4(` ++MB\OHW@G__XO+5U;HA0+__XO+Z-$(__^+R_]U#.AS"/__B\MH/-)"`.BX"?__ ++MBTWT7UY;9(D-`````,G""`"XX*M"`.A'8`$`@>P4`P``4U97BWT(B4W8C5\8 ++MB\OH6`K__XUP`8U%W%90B\OH4';__XM-V(U%W#/;4(E=_.@N_O__C4W<Z*T( ++M__^+1QB-3>B-!'!0Z!,%__^+==B-1>A0B\[&1?P!Z`7^__^-1>B-3=Q0Z/,( ++M____=>B(7?SH5__^_UF-3=SH;`C__S@?=`[_=PR-3=S_=PCH3_[__XU-W.A2 ++M"/__.%\!=$RZ]`,``(U-Z.AV.?__4(U-W,9%_`+HI@C___]UZ(A=_.@*__[_ ++MC4W<QP0DV-%"`.C("/__4XU5E(U/$.CU./__C464C4W<4.BP"/___W7<_W4, ++M_W8$_Q6\P4(`_W7<@TW\_^C(_O[_@TW4_UF)70B-=QB-3>A6Z-<$__\Y70C' ++M1?P#````=$@X7P(/A%T!``"+1>R#^`0/@E$!``"+3>BZ),]"`(U,0?CHC?_^ ++M_X3`=4>+1>B+3>RZ3-)"`(U,2/CH=?_^_X3`#X0@`0``ZRF-3>CH^0C__T"- ++M3>A0Z,0+__]J+HU-Z.BZ"/__.\-\"5"-3>CHK0O__SE=['4-:$#20@"-3>CH ++M-0;__SA?`L=%#"````!T0HU-G.BX'/__C4W$Z%D#__^+!E-0C4V<QD7\!.@; ++M(/__A,!T%3A=P'40BT6\B\C!Z03VP0%U`XE%#/]UQ.C8_?[_66@4`0``C87@ ++M_/__@XWD_/___VBT`@``4(F=X/S___]U#/]UZ/\5H,%"`#O#=$LYG>#\__]T ++M0XN%Y/S__SO#?"T[1=1T*#O#=04Y70AU'SE="(E%U(M%$'0#BT44_[7@_/__ ++MBTW84.A2_/__ZPS_M>#\____%;3!0@#_=>B#3?S_Z%+]_O__10A9@WT(`@^" ++MA/[__^L)_W7HZ#K]_O]9BTWT7UY;9(D-`````,G"$`!35HOQ5VIE:F2-1A!J ++M9E#H.OW__VIO:FZ-1CAJ<%"+SN@I_?__B\[H/$#__XL]_,%"`#/;.%X(=3)5 ++M:+@!``#_=@3_UXLM\,%"`%-0_]5HN0$``/]V!/_74U#_U6BQ#0``_W8$_]=3 ++M4/_573A>"70D4XL=V,%"`&H':`$$``#_=@3_TVH'_W8$_]=J`5!J*/]V!/_3 ++M7UZP`5O#5FH`B_%J9.AH^___:@!J98O.Z%W[__]J`&INB\[H4OO__VH`:F^+ ++MSNA'^___,L!>PXM$)`2#^`9R*(/X!W85/;<!``!V'#VY`0``=@<]L0T``'4. ++M4/]Q!/\5N,%"`+`!ZPK_="0(4.@^//__P@@`5HOQC48,C4X(4.@B.___:-L. ++M``#_=@3_%;#!0@!(]]@:P/[`B$887L-6B_%J`(I&&/;8&\`DUH/`*E!HS``` ++M`/]V"/\5',)"`/]V#/]V"/\5T,%"`%[#5HOQ:GC_=@3_%?S!0@")1@@SP#A& ++M&`^5P%!HVPX``/]V!/\5K,%"`(O.Z*/___^P`5[#@7PD!-L.``!6B_%U$.AD ++M____B\[HAO___[`!ZP__="0,B\[_="0,Z(4[__]>P@@`5HOQZ#[___]J`?]V ++M!/\5N,%"`%[#N!BL0@#HO5L!`%%35HOQ,]N#R/^)=?")1@B)7A")1AB)7B") ++M1BB)1C"-3CB('HA>`8A>`HA>`XE&#(E>%(E&'(E>)(E&+(E&-.A2`/__C4Y$ ++MB5W\Z$<`__^-3E#&1?P!Z#L`__^)7ER)7F")7F2-3FC&1?P#Z!L```"-CI@` ++M``#H,E`!`(M-](O&7EMDB0T`````R<.X/*Q"`.@H6P$`45%6B_%7B77PZ//_ ++M_O^#9?P`C4X,Z.?__O^-?AC'1?P!````B\^)?>SHT__^_XU/#,9%_`+HQ__^ ++M_XM-](O&7UYDB0T`````R<-6B_'_=@SH7/K^__\VZ%7Z_O]965[#4U:+\5>- ++MOI@```!7_Q5`P$(`BEX!5_\51,!"`%^*PUY;PU.+'4#`0@!6B_%7C;Z8```` ++M5__3@#X`=1B`?@$`=!E7_Q5$P$(`:F3_%3S`0@!7Z^&^!$``@.L",_97_Q5$ ++MP$(`B\9?7EO#_S'_%43`0@##5HOQ5XV^F````%?_%4#`0@"+1"0,5XE&"(M$ ++M)!2)1@S_%43`0@!?7L((`%:+\5>-OI@```!7_Q5`P$(`BT0D#%>)1B"+1"04 ++MB48D_Q5$P$(`7U[""`!6B_%7C;Z8````5_\50,!"`(M$)`R%P'0+BPB)3A"+ ++M0`2)1A2`/@!T![X$0`"`ZPB`?@$`=0TS]E?_%43`0@"+QNL.5_\51,!"`(O. ++MZ`G___]?7L($`+A0K$(`Z*!9`0!15HOQ5XV^F````%>)??#_%4#`0@#_=0B# ++M9?P`C4Y$Z/C__O^#?0P`=`W_=0R-3E#H@__^_^L+BT90@V94`&:#(`"*11!7 ++MB$8#_Q5$P$(`B\[HI/[__XM-]%]>9(D-`````,G"#`"X;*Q"`.@P60$`@^P0 ++M5HOQ5XV^F````%>)??#_%4#`0@#_=0B#9?P`C4WDZ";^_O^#QES&1?P!B\[H ++M8_3^_XU%Y(O.4.C1]/[__W7DZ'+X_O]95_\51,!"`(M-]%]>9(D-`````,G" ++M!`"X5JU"`.C'6`$`45%35HOQ,]M7B77LB5X$QP:@T$(`C4XDB5W\B%X(B%X) ++MB%X*B%X+B%X,B%X-B%X.B%X/B%X0B%X1B%X2QD83`<9&%`&)7AB)7AR)7B#H ++M3OW^_XU.,,9%_`'H0OW^_XU./,9%_`+H-OW^_XU.2,9%_`/H*OW^_XU.5,9% ++M_`3H'OW^_XU.8,9%_`7H$OW^_XU.;,9%_`;H!OW^_XU.>,9%_`?H^OS^_XV. ++MA````,9%_`CHZ_S^_XV.G````,9%_`F)GI@```#HUOS^_XV&J````,=`"`$` ++M``")&(E8#(V&T````(F>R````(F>S````(D8B5@$B5@(C;[<````B1_&1?P, ++MC8XH`0``Z)/\_O^-CC0!``#&1?P-Z(3\_O^)GE`!``")GE0!``"-CE@!``#& ++M1?P0Z,G[__^#C@@"``#_,]*-CE0!``#&1?P1B9X,`@``QP:LTD(`Z#Q+`0"% ++MP'05C47P:+#C0@!0QT7PRUX4`.AS5P$`,]*-CE`!``#H%DL!`(7`=!6-1?!H ++ML.-"`%#'1?#+7A0`Z$U7`0!7:,#&0@!J`5-H(.!"`/\56,)"`(L_._MT!HL' ++M5_]0#(M-](O&7UY;9(D-`````,G#P[B,K4(`Z/%6`0!15HOQB77PC8:8```` ++MQT7\`P```%#_%3C`0@"-3FCH-````(U.7,9%_`+H5*4``/]V4.A#]O[__W9$ ++MZ#OV_O__=CCH,_;^_XM-](/$#&2)#0````!>R<-6B_'_=B3H&/;^__]V&.@0 ++M]O[__W8,Z`CV_O__-N@!]O[_@\007L-6B_'H%````/9$)`@!=`=6Z.?U_O]9 ++MB\9>P@0`N&BN0@#H358!`%%6B_&)=?"-CE@!``#'1?P0````Z#G___^-CE0! ++M``#HR4@!`(V.4`$``.B^2`$`_[8T`0``Z)SU_O__MB@!``#HD?7^_XN&W``` ++M`%F%P%G&1?P+=`:+"%#_40B-CM````#&1?P*Z'6D``#_MIP```#H8?7^__^V ++MA````.A6]?[__W9XZ$[U_O__=FSH1O7^__]V8.@^]?[__W94Z#;U_O__=DCH ++M+O7^__]V/.@F]?[__W8PZ#0`` ++M``!>R<-6B_&#OMP`````=#&#ON``````="B-CE@!``#HC_K__X3`=`5J"%CK ++M#(I&"_;8&\"#X`)`0%"+SN@"````7L.+@=P```"%P'05BXG@````A<ET"_]T ++M)`2+$%%0_U(HP@0`4U565XL]_,%"`(OQ:$(/``#_=@3_UXI,)!2+'?#!0@#V ++MV1O)@^$%B^E54/_3:G[_=@3_UU50_]-J9?]V!/_755#_TU]>75O"!`!14U:+ ++M\3/;BX8,`@``.\.)AN````!U#_]V!/\5[,%"`(F&X````#F>X````'43B\:- ++M3@3WV!O`(\&+`(F&X````%57@\__B9Y$`0``B;[`````B;ZX````B;[P```` ++MB;[X````B;X``0``B;Y(`0``B;[$````B;Z\````B;[T````B;[\````B;X$ ++M`0``B;Y,`0``_Q6LP$(`B8;D````C88H`0``B9[H````B;X(`0``B;X0`0`` ++MB;X8`0``B;X@`0``B9[L````B;X,`0``B;X4`0``B;X<`0``B;XD`0``B5@$ ++MBP"+/?S!0@!J9&:)&(V&-`$``(E8!(L`9HD8_W8$_]=J98F&R````/]V!/_7 ++M4XL=',)"`(VNS````&H!:`4@``!0B44`_]-J(&H`:#80``#_=0#_TXV.5`$` ++M`,9&"0'H$T<!`&B\`0``_W8$_]>)1"00C49(4(U,)!3H`S+__XU&2(U.5%#H ++MV/G^_VHFC4Y4Z/3^_O]HO@$``/]V!/_7B40D$(U&;%"-3"04Z-(Q__^-5F"Y ++MO0$``.AE+O__C59XN9L!``#H6"[__XV6A````+F_`0``Z$@N____MIP```#_ ++M=@3_%=#!0@"+SN@P%0``B\[HXA4``&HH:%C)0@!J`(O-Z.,W__]HS`$``&A8 ++MR4(`:@&+S>C0-___:/__``!J`&@>$```_W4`_]-H__\``&H!:!X0``#_=0#_ ++MTVH`B\[HC/W__XV&E````(O.4(V&D````%!J`NAH,___:@&+SL>&0`$``%(` ++M``#H3C3__X!^%`!U/&CP`P``_W8$_]>++?#!0@!J`%#_U6IN_W8$_]=J`%#_ ++MU6A!#P``_W8$_]=J`%#_U6I]_W8$_]=J`%#_U8.^"`(```"-A@@"``!?77P= ++M#[<`4/\UQ#%#`/\5.,)"`%!J`6B`````_W8$_]-J`&C(````:@/_=@3_%>C! ++M0@"+SHF&F````.B*&```B\[H:_S__UZP`5M9PU6+[(/L+%-6C4745U"+\6@\ ++M#P``Z.$R__^+3=B+1>"+7=0KP8E%[(U%U(E-^%!H/0\``(O.B5WTZ+TR__^+ ++M1=B-?@0K1?AJ`6H`_S>)1>3_%<S!0@"+30R-!!LKR+L@`P``B4W\4XO.Z`XR ++M__\[1?Q^$6H*C03;,])9]_&+V(/[*'?BP>L"B9Y``0``BUT0*YZ4````:F?_ ++M-RM=^/\5_,%"`/]U_(O/4.AEW___:F;_-_\5_,%"`/]U_(O/4.A0W___:F3_ ++M-_\5_,%"`/]U_(O/4.@[W___BT7TB[Z0````B440`\"-!'@#QSM%_'XA@WT0 ++M!7P'_TT02$CK[HM%$&H#`\"+R(M%_"O!69GW^8OX@_\"?0-J`E^-1=2+SE!J ++M9>C5,?__B\-J!"M%V%DK1?B)1?"+AI0```"-!$"9]_F+3?P#AI0````Y1?!] ++M#(E%\(T$/SO(?@(KSVH!_W7P4?]UV/]U]/^VS````/\5],%"`(M%#&H!_[:4 ++M````*\<K1?2+SE=34&H"B44,Z.TQ__^+11!J`?^VE`````/'*44,B\Y74_]U ++M#&B^`0``Z,PQ__^+10QJ`?^VE````"M%$(O.5RO'4U!HO`$``.BM,?__:CR+ ++MSNBB,/__:DB+SHOXZ)<P__]J!(O.B]CHC##__XM-_(O0C00[C01".\&)10Q] ++M$HO!:@,K10Q9F??YBTW\`_CK$HT$&XOXB\$KQRO"F2O"B_C1_X7_?0(S_XT$ ++M.XOXB47\C10`*_LKRH-E$`")3>B+3?B)30SK`XM%_(M-](E-\(M-$(/Y"G(3 ++M=0:+5?B)50R+5>@#P@-%](E%\(L$C5320@"%P'04:@&+SO]U[%?_=0S_=?!0 ++MZ/$P__^+1?!J`?]U[`/'B\Y3_W4,4(M%$/\TA5C20@#HT3#__XM%Y(-%$`(! ++M10R#?1`4<HU?7C+`6\G"#`!J`8'!6`$``.@!````PU:+\5>-OI@```!7_Q5` ++MP$(`BD0D#%>(!O\51,!"`%]>P@0`4XM<)`Q65XM\)!"+\3N^P````'4,.Y[$ ++M````#X2/````@XZX````_X..O````/^)OL````")GL0```"#IJ@`````B;ZP ++M````A=N+QXO3B9ZT````=PB!_P"```!R&VH!6>@@40$`_X:H````A=)W[G(' ++M/0"```!SY8N.J````(O'B]/H_E`!`#N^L````(V.L````'4&.UD$=0%`4&H` ++M:`8$``#_ML@```#_%1S"0@!?7EO""`!5B^Q35HOQ5XM]#(N6Q````(N&P``` ++M`#OZ=T!R!3E%"',YBX:\````BXZX````._AR*7<%.4T(=B*+70AJ"BO961OX ++MBX;`````Z()0`0`[^G)X=P0[V')RBWT,BXZH````BT4(C9ZH````B]?H7U`! ++M`(U+"(M="#L9=08[>01U`4!J`%!H`@0``/^VR````/\5',)"`(N&W````(7` ++M=!^+CN````"%R705_[;$````BQ#_ML````!74U%0_U(DB9ZX````B;Z\```` ++M7UY;7<((`%-55E>+?"04:@!H$`X``(OQ_W0D(%?H]$X!`(O8:<`0#@``*_AJ ++M/(OJB\<STEGW\3/2B40D%(O']_&%[8OZ=P6#^V-V$U6+SE/HMNO^_V:#/@!T ++M(T9&Z_9J"HO#,])9]_$STH/`,&:)!HO#]_&#PC!FB58"@\8$BT0D%&H*63/2 ++MB]EFQP8Z`/?S:C!&6T8STHOI`\-FB0:+1"04]_6+QX/&!`/39HE6_C/2]_5F ++MQP8Z`$9&,](#PV:)!HO']_%?`]-FB58"9H-F!`!>75O""`!5B^R#[%"+112+ ++M50Q6BW40.Q!7B_EU!3MP!'0M9H-EL`")$(EP!(O"(\:#^/]T"E:-3;!2Z!8` ++M``"-1;!0_W4(_W<$_Q6\P4(`7U[)PA``BU0D"(M$)`13,MM6@_H8B_%R%7<' ++M/0```&IR#&H>6>B\3@$`LT?K+(72=P<]`(`:!G(,:A19Z*5.`0"S3>L5A=)W ++M!SV@A@$`<@IJ"EGHCDX!`+-+4HO.4.B(ZO[_A-MT+S/2,\!F.19T"HO.0$%! ++M9CD1=?B-!$9F#[;+9L<`(`!`0&:)"$!`9L<`0@!FB5`"7EO""`"XE*Y"`.BA ++M2P$`@>S8````4U:+\5>-OO`!``!7B7V<_Q5`P$(`BX9@`0``@V7\`(E%R(N& ++M9`$``(E%S(N&:`$``(E%K(N&;`$``(E%L(N&<`$``(E%P(N&=`$``(E%Q(N& ++M>`$``(E%I(N&?`$``(E%J(N&@`$``(E%N(N&A`$``(E%O(N&B`$``(J>6@$` ++M`(E%U(N&C`$``(U6)(E%V(U%WU"-CI`!``#H=`<``(U%ZHU6,%"-CJ@!``#H ++M8@<``(U%WHU6/%"-CIP!``#H4`<``(J&6P$``#A&"'0'QD7J`8A&"(N&N`$` ++M`(--_/]7B46<_Q5$P$(`_Q6LP$(`A-N+^'0+BT7`B47@BT7$ZPF+1<B)1>"+ ++M1<R$VXE%Y'0+BUVDBT6HB5WLZPF+7:R+1;")7>R)1?"+1>`C1>2#^/]T28N. ++MN````(V&N`````M(!'4@B\,+1?!U&8N.P````(V&P`````M(!'4@BT7@"T7D ++M=!C_=>2+SO]UX.A'^____W7PB\Y3Z/+[__^-A@@!``"+SE#_=<S_=<AJ>NA] ++M_?__C8;D````B\^[Z`,``&H`*PA3B3@!CN@```"#ENP`````_[;L````_[;H ++M````Z(I+`0"`9>L`.X;X````B_IU"#N^_````'0O5XF&^````(V-3/___U") ++MOOP```#&1>L!Z$C\__^-A4S___]0:GC_=@3_%;S!0@"`9>D`@'WK`'4*@'T( ++M``^$M`0``(M]G#M^&'9!B\[H[0T``&H`C8U<____5^@)Z/[_C85<____4&I^ ++M_W8$_Q6\P4(`@'X+`'44:@&+SL9&"P'H*?3__XO.Z,'S__^+1>P+1?`/A,8! ++M``"+1>"+3>0CP8/X_W4FBXX``0``C88``0``(T@$@_G_#X2'````@PC_@T@$ ++M_VA8R4(`ZVXSP#/2.4WP=R]R"(M-X#E-[',EBT7@_W7P*T7LBTWD_W7L&TWP ++M45#_MNP```#_MN@```#H804``&H`4U)0Z&=*`0`[A@`!``"-C@`!``!U!3M1 ++M!'0DB0&)4012C8U,____4.@S^___C85,____4&IY_W8$_Q6\P4(`B[[H```` ++MBX;L````B\\+R'4)@V7,`&H!7^L#B47,:@!3_W6P_W6LZ#1+`0#_=<Q74E#H ++M^4D!`(!E"P`SVX72=P<]`$"<`'():A3&10M-6^L2A=)W!ST0)P``<@=J"L9% ++M"TM;B\OHMDH!`#N>1`$``'47.X9(`0``C8Y(`0``=0D[400/A)$```!2B89( ++M`0``C8U,____4(F>1`$``(F63`$``.A]YO[_,](SP&8YE4S___]T#HV-3/__ ++M_T!!068Y$77X9L>$14S___\@`$`[VG0.9@^V30MFB8Q%3/___T!FQX1%3/__ ++M_T(`0&;'A$5,____+P!`9L>$14S___]S`&:)E$5.____C85,____4&I[_W8$ ++M_Q6\P4(`BTW@,](C3>0SP(/Y_W0C4FID_W7P_W7LZ"E*`0"+3>`+3>1T#?]U ++MY/]UX%)0Z.1(`0`[AO````"-CO````!U!3M1!'0)B0&)403&1>D!_W6HC8T< ++M_____W6DZ*SE_O^+AB@!``"+/7S!0@"-GB@!``"-C1S___]14/_7687`670@ ++MC84<____B\M0Z._L_O^-A1S___]0:F__=@3_%;S!0@"+1<`STB-%Q&:)E1S_ ++M__^#^/]T56:A[-)"`&8[PF:)A1S___]T&#/`9HN([M)"`&:)C`4>____0$!F ++M.\IUZC/)9CF5'/___W0.C84<____04!`9CD0=?C_=<2-C$T<_____W7`Z`'E ++M_O^+AC0!``"-GC0!``"-C1S___]14/_7687`670@C84<____B\M0Z$KL_O^- ++MA1S___]0:G#_=@3_%;S!0@"*1A.$P'0+BTW4B4WLBTW8ZPF+3;B)3>R+3;R$ ++MP(E-\'0(BUVXBWV\ZP:+7=2+?=B+PR/'@_C_=3J+1>PC1?"#^/]U+XV&$`$` ++M`(O.4/]UL/]UK&I\Z#?Y__^-AA@!``"+SE!J_VK_:F[H(_G__^G:````C880 ++M`0``B\Y05U-J?.@,^?__C888`0``B\Y0_W7P_W7L:F[H]OC__XM%["-%\(/X ++M_P^$HP```(O#(\>#^/\/A)8```"+PPO'#X2,````:@!J9/]U\/]U[.@P2`$` ++M5U-24.CW1@$`B[X@`0``C8X@`0``._AU!XMY!#OZ=%V)`8E1!%*-C5S___]0 ++MZ,/C_O]F@[U<____`(V%7/___W0(0$!F@S@`=?B+#>C20@"ZZM)"`&:)"$!` ++M9H7)=`QFBPIFB0A`0$)"Z^^-A5S___]0:GW_=@3_%;S!0@"`?>D`=0:`?=\` ++M=`>+SNC]!0``@'W>`'0\C48\C4V@4.A:ZO[_BY9``0``C4V@QT7\`0```.CG ++M````_W6@:F?_=@3_%;S!0@#_=:"#3?S_Z`CD_O]9@'WJ``^$L0```(U-T.A% ++MZ?[_C4VTQT7\`@```.@VZ?[_@'X(`,9%_`-T"8U&,(U-T%#K,(U^,(O/Z&KN ++M_O^%P'P>C5@!C4W04_\WZ`+K_O^+!XU-M(T$6%#H..K^_^L)5XU-M.B1ZO[_ ++MBY9``0``C;Y``0``C4W0Z$\```"+%XU-M.A%````C4W0Z);L_O^-1;2-3=!0 ++MZ/WL_O__==!J9O]V!/\5O,%"`/]UM.A6X_[__W70Z$[C_O]968M-]%]>6V2) ++M#0````#)P@0`5HOQBT8$.\)V'%>+^BO"T>]05^A+\/[_B\YH,-)"`%?HG^[^ ++M_U]>PU97B_*+^8O7B\[H"_#^_XM,)`SVV!K`_L"(`70(5XO.Z.'I_O]?7L($ ++M`%6+[%-65_]U#/]U".B'````BUT0B_C_=113Z'D```"+\(T$/H/X0'9$._YV ++M%XM%"(M5#&H!3UGHQ$4!`(E%"(E5#.L3BU44:@%9B\-.Z*Y%`0"+V(E5%(M% ++M&(M5'&H!6>B;10$`B448B54<Z[3_=113_W4,_W4(Z,1%`0"+31@+31Q?7EMT ++M#?]U'/]U&%)0Z'Q$`0!=PA@`BTPD"(7)=0N+3"0$Z`T```#K".@&````@\`@ ++MP@@`:B"Z````@%B%T74%T>I(=??#5HOQC8Y8`0``Z,+G__^$P'40B\[H(`D` ++M`&H`B\[HR_;__[`!7L((`+BHKD(`Z&9"`0"#[!Q35HOQ,]M7B77L.%X1B67P ++MB5WHB5W\=&6-3>#H``$``(M%#&CT`0``4\9%_`&+`(E%V(N&4`$``(E%W(U% ++MV%!J`O\5-,!"`#O#=2&-CE@!``#HH0```#K#=1(Y7>!T"?]UY/\5/,)"`#/` ++MZWHY7>"(7?QT"?]UY/\5/,)"`/]U"(V.G````.A4Z/[__W40B\YJ8>AW)O__ ++MB47HZQV+1>R-B%0!``#&0`D!Z$4U`0"X83]!`,.+=>PSVXM-#.B2-`$`.%X2 ++M=1TX'<`Q0P!U%6H0:.3/0@!H]-)"`/]U$/\5W,%"`(M%Z(M-]%]>9(D-```` ++M`%O)P@P`@WE@`'4/@\%HZ`L```"$P'4#,\##:@%8PS/`.4$0=04Y02AT`VH! ++M6,-6:`)_``"+\6H`_Q5`PD(`A<")!G0*4/\5/,)"`(E&!(O&7L.#.0!T"?]Q ++M!/\5/,)"`,.XS*Y"`.@&00$`@^Q$4U97B_%J`.B_Z___:@&+SNA#]?__NI@! ++M``"-3>#HJK+__XL`C7X$4&H"_S?_%;S!0@#_=>#H4N#^_XL=_,%"`%EJ`O\W ++M_]-J`6H!:/0```!0_Q4<PD(`:+P!``#_-__3:@!0_Q7PP4(`:+X!``#_-__3 ++M,]M34/\5\,%"`(L&B\[_4#B-3;#H#0$``(U-R(E=_.@"`0``C8;P`0``QT7\ ++M`0```%")1>S_%4#`0@`YGK@!``"-GL`!``!3C4VPQD7\`@^51?/H_P```(/# ++M&(U-R%/H\P```/]U[,9%_`'_%43`0@`SVSE=P'0I.5VTQD82`74-:!330@"- ++M3;#HG.?^_X`]P#%#``!U;6H0_W6P_W6\ZS&`??,`=3LY7=C&1A(!=#(Y7<QU ++M#6@4TT(`C4W(Z&CG_O^`/<`Q0P``=3E3_W7(_W74B\;WV!O`(\?_,/\5W,%" ++M`(`]P#%#``!U&8!]\P!T$X!^#0!U#8O.QD8,`>@*!```ZPE3_S?_%;C!0@"- ++M3;#HXNC__XM-]%]>L`%;9(D-`````,G#N."N0@#H83\!`%%6B_&)=?#H+N3^ ++M_X-E_`"-3@SH(N3^_XM-](O&7F2)#0````#)PU97BWPD#(OQ5^BHY?[_@\<, ++MC4X,5^B<Y?[_B\9?7L($`(%\)`0!@```5HOQ=2F#OI@`````5XV^F````'0. ++M:@/_=@3_%43"0@"#)P"`?@X`7W09QD8/`?]T)!"+SO]T)!#_="00Z,\=___K ++M!XO.Z+?]__]>P@P`N/RN0@#HN3X!`(/L&%:+\8U-Z.B$X_[_@V7\`(V.6`$` ++M`.C4X___A,!T%XV&A````(U-Z%#HH^?^_XU-Z.C:YO[_BX;P````BX[T```` ++MB]`CT8/Z_W0445"-3>CH:.#^_VHEC4WHZ%WF_O^`?A``=!2-3>CHH^;^_XU& ++M5(U-Z%#H6.?^_XU-Z.B/YO[_C8:<````C4WH4.A!Y_[_@WXH`'0XC48DC4W< ++M4.C!X_[_:B2-3=Q:QD7\`>A4^O__C4WHZ%?F_O^-1=R-3>A0Z`SG_O__==SH ++M<]W^_UG_=>C_=@3_%=#!0@#_=>CH7MW^_UE>BTWT9(D-`````,G#5HOQC8Y8 ++M`0``Z/'B__^$P(U&>'4#C49L_S!HO@$``/]V!/\5O,%"`(O.Z-7^__]>PU6+ ++M[%%35HOQ5XV^6`$``(O/Z+CB__^*V(O/]ML:V_[#B%W\_W7\Z#D```#_%:S` ++M0@"$VXOX=!2+SXV&Z````"N.Y`````$(@U`$`(O.Z,WG__^+SHF^Y````.AP ++M____7UY;R<-6B_%7C;Z8````5_\50,!"`(I$)`Q7B$8!_Q5$P$(`7U["!`!6 ++MB_&`?A``C49@=0.-1DC_,&B\`0``_W8$_Q6\P4(`B\[H)?[__U[#5HOQ@'X0 ++M``^4P(A&$/;8&\"#X""#P"!0_Q54P$(`4/\5,,!"`(O.Z*S___]>P[@0KT(` ++MZ*X\`0"#["QF@V7(`(!]#`!35E>+\70,BTX@C57(0>C8VO[_B[[4````C47( ++MC9[,````4%>+R^BO(?__.\=U/?]U"(O+:@%7Z-4A____=0B-3>CH=^'^_X-E ++M_`"!QM````"+SNBQU_[_C47HB\Y0Z!_8_O__=>CHP-O^_UF+3?1?7EMDB0T` ++M````R<((`+@LKT(`Z!L\`0"#[!A35E>+^?]U"(U-Z.@DX?[_,]O&10@!B5W\ ++M.5WL=$N+3>AFN@H`Z(/;_O^+\#OS?#F-1=Q64(U-Z.@,4O___W4(BP"+S\9% ++M_`%0Z!+_____==R(7?SH2-O^_UE&5HU-Z(A=".BPZ/[_Z[#_=0B+S_]UZ.CJ ++M_O___W7H_T<@Z"#;_O]97XM-]%Y;9(D-`````,G"!`"X2*]"`.A[.P$`@^P0 ++M4S/;5E>+\8E=Y(E=Z(E=[(V&\`$``(E=_%")1?#_%4#`0@"+OK@!``"+1A@[ ++M^,9%_`%V-8O?C4WD*]CH4-G^_U.-3>3H5AC__XM>&#O?<Q2+AK0!``"-3>3_ ++M-)CH]];^_T/KZ(E^&#/;_W7P@&7\`/\51,!"`#E=Z'1V,_\Y7>AV%8M%Y(O. ++MBP2X_S#HPO[__T<[?>ARZX%^&$!"#P!R!H-^'&1S2XM.'(/Y9'(3Z%D```"+ ++M3AB+^.A/````.\=V,(L]',)"`&C__P``4[L>$```4_^VS````/_7:/__``!J ++M`5/_MLP```#_UXM&&(E&'(--_/^-3>3H#8D``(M-]%]>6V2)#0````#)PU9J ++M`8O!7FH*,])9]_&%P'0#1NORB\9>PU6+[(/L$(M%"%-(5DB+\70D+;H!``!T ++M#TA(#X7"````Z)G\___K!XO.Z$#]__^P`>FZ````,MLX7@QT%&H(QD82`?]V ++M!/\5N,%"`.F2````.%X-==F-CE@!``#H+-___SK#B$7_=0>+SNA0_/__5XN^ ++MG````+K``0``C4WPQD8.`>B7J___BP"+SO?9C58$:@,;R5<CRE"+"5'_%=S! ++M0@#_=?"+^.@SV?[_68/_!HA>#E]U!,9�$X7?]U!XO.Z/K[__\X7@]T#(O. ++MZ'3X___I6?___SA>#0^$4/___\9&$@'_=0R+SO]U".@*&?__7EO)P@@`5HOQ ++M@'X*`'06:@!J`&@!@```_W8$_Q78P4(`@&8*`%[#5HOQ@'X1`'46C8Y0`0`` ++MZ+HL`0"+CE0!``#H[RL!`(!^"0!T%&H`:@!H`8```/]V!/\5V,%"`%[#QD8* ++M`5[#58OL@^PHBT4,5HOQBP@[CLP```!U&X%X"&7___]U$@^W0`R#Z"UT08/H ++M%'0+2$AT.#+`7LG""`!J$?\5R,%"`,'H#Z@!=.IJ`EB)1>B)1>2-1=A0:O]H ++M*Q```/^VS````/\5',)"`.L6:A'_%<C!0@#!Z`^H`72YB\[H!````+`!Z["X ++M9*]"`.AR.`$`@^P<4U97,_^+V8E]Y(E]Z(E][(VSS````(U5Y(O.B7W\Z)8` ++M``"-3=CH'=W^_XM%Z,9%_`$[QXE%\'425U=H!!```/\V_Q4<PD(`B47P.7WP ++M=C,[?>AS"(M%Y(L$N.L"B\>+B]````#_-(&-3=CH&>'^_V@<TT(`C4W8Z$CA ++M_O]'.WWP<LV+PX/#!/?8&\"-5=@CPXL(Z.GO_O__==CH6-?^__]UY.A0U_[_ ++M65E?BTWT7EMDB0T`````R<-358LM',)"`%97B_)J`HO9@V8$`&K_:`P0``#_ ++M,__5B_B%_WPAB\[H\=+^_XM&!&H"5XU(`6@,$```B4X$BPZ)/('_,^O77UY= ++M6\.X>*]"`.AA-P$`48-E\`!6B_	?P`5KH)2D$`C4WPZ)<J`0"%P'00?@HE ++M__\```T```>`B_#K$_]U#(U%\(O.4/]U".BR]/__,_:-3?#HN"D!`(M-](O& ++M7F2)#0````#)P@@`N(2O0@#H_38!`%	?P`4U:+=0A7B\Z)9?#H+0```,:& ++M4`(```&+3?1?7C/`9(D-`````%O)P@0`BT4(QX!,`@``!4``@+@O2D$`P[BX ++MKT(`Z+$V`0"#[#135E>+\8EE\(EU[(EUZ#/;C4W,B5W\Z&S;_O^+!HO.QD7\ ++M`O]0/(F&3`(``.M__W7DC4W,Z(W<_O^X"DM!`,/_=>"-3<SHX-S^_[@*2T$` ++MPXM5W(U-P.@7R?__4(U-S,9%_`3HPMS^__]UP.C'U?[_6;@*2T$`PVB`R$(` ++MC4W,Z,/=_O__==B-3<SHSM_^_[@*2T$`PVBDTD(`C4W,Z*7=_O^X"DM!`,.+ ++M=>PSVXN63`(``,=%_`$```"!^@1``(!T*SE=T'4F.]-T(HU-P.@&`0``4(U- ++MS,9%_`7H2MS^__]UP,9%_`'H2]7^_UF-EB@"``"-3<SHO````#/_.9X4`@`` ++M=A^#_R!S&HN&$`(``(U-S(L4N.B<````1SN^%`(``'+AC8;P`0``4(E%[/\5 ++M0,!"`#E=T,9%_`9U*CF>1`(``'1#C;XT`@``C9[8`0``5XO+Z-';_O^#QPR- ++M2PQ7Z,7;_O_K(8U%S(V.S`$``%#HM-O^_SF>3`(``'4*QX9,`@``!4``@/]U ++M[/\51,!"`/]US.B>U/[_68O.Z,_[__^+3?1?7F2)#0````!;R<.+">FY^___ ++M5E>+^HOQ@W\$`'03@WX$`'0%Z(?=_O]7B\[H\MW^_U]>PU	"0``%:!^@X` ++M!X"+\74,NK@+``#H@Z;__^L'B\[HBD/__XO&7EG#N,RO0@#HHC0!`(/L,(-E ++M\`!6B_)7@?[H`P``B_ES.XV6Z`,``(U-Y.A(IO__@V7\`(-]Z`!T%HU%Y(O/ ++M4.@6VO[__W7DZ.O3_O]9ZRW_=>2#3?S_Z-S3_O]9@WT(`'0%_W4(ZPZ-5<2+ ++MSNB&TO[_C47$4(O/Z$[9_O^+3?2+QU]>9(D-`````,G"!`#H!0```.D*```` ++MN8@T0P#I8[K__V@034$`Z&TW`0!9P[F(-$,`Z:^Z__]5B^R![+0"``"#C5#] ++M____B\*%P'4#:B!8:!!```"-E4S]__]HM`(``%)04?\5H,%"`(M-"(N54/W_ ++M_XD1R<($`%6+[%?S_C47\4.BN____A<!U!(--_/^+1?S)P[C@KT(`Z(TS ++M`0"#[!R#3?#_4XM=#%97B_EFBP,STF:%P(E]Z'06B\MF/2X`=0.)5?!"04%F ++MBP%FA<!U[/9%"!`/A>P```"+1?"%P`^,X0```(M-"('A``@``(E-"'0%@\<8 ++MZP.#QPR#9>P`C71#`HU%[(O64(O/Z'$!``"%P'P-BP^+!(&+0`SI&0$``&:+ ++M!C/29H7`=$V+SF8],`!R$68].0!W"T)!06:+`6:%P'7IA=)T,&:#/%8`=2F+ ++M=>B#?B@`=1B-1B2Y,--"`%!J(%KHS/[__\=&*`$```"+1B3IP@```(U-V.B$ ++MU_[_@V7\`%:-3=CHMMC^_XM%\(M5"(/*((T,0^C8_O__@7\$```!`(E%Y',. ++MC478B\]0_W7LZ)4!``#_==B+=>3H\='^_UGK<H-E#`"+50B#9?``C47PB\]0 ++MZ&\```"%P'U$BUT(N2#30@"+T^B'_O__@7\$```!`(OP<C*!^P"```!R*H7V ++M?3*`XQ#VVQO;@^/P@\,@_T4,@WT,`HE="'*K@\C_ZQ:+#XM$P03K#E93_W7P ++MB\_HR0```(O&BTWT7UY;9(D-`````,G""`!35HMQ!%<S_X7V=!N+&8T$/M'H ++MBPS#.]%T%G,$B_#K`XUX`3O^=>>+1"00B3B#R/]?7EO"!`!14U6+Z597,]N+ ++M?02)5"00A?]T)XM%`(TT'XM,)!#1[HL$L(L0Z-W2_O^%P'0>?02+_NL#C5X! ++M.]]UV8M$)!B)&(/(_U]>75M9P@0`B\;K]('LM`(``#/`A,D/E<!F#1!`4(U$ ++M)`1HM`(``%!J$&A8R4(`_Q6@P4(`@<2T`@``PU97B_GHRV+__XM,)`R+!XO1 ++MB_%ITO___Q\#5P3!Y@/!X@-2C10PC43("%)0_Q5HP4(``S>+1"0<@\0,B0:+ ++M1"04B48$_T<$7U["#`"X]J]"`.C4,`$`45-6B]GH,<S^_VH0Z!C0_O^+\%F) ++M=?"#9?P`A?9T%5>+?0Q7B\[H5=;^_XM'#%^)1@SK`C/V@TW\_U;_=0B+R^BA ++MY_[_BTWT7EMDB0T`````R<((`%.+7"0(N/___Q]6.]A7B_%W`HO#P>`#4.BW ++MS_[_B_B+1@2%P%ET#\'@`U#_-E?H?C`!`(/$#/\VZ,O/_O]9B3Z)7@A?7EO" ++M!`"X"+!"`.@L,`$`@^P,5HOQ:F3_=@2#9B@`@V8L`/\5_,%"`(E&"(U&#%"- ++M3>CHL-7^__]UZ(-E_`#_=@C_%=#!0@!J`?\UQ#%#`/\5.,)"`%!J`6B````` ++M_W8$_Q4<PD(`B\[HEQ+___]UZ.A/S_[_6;`!BTWT7F2)#0````#)PX-\)`1E ++M=`__="0(_W0D".A'#___ZP?H!0```+`!P@@`N"RP0@#HC"\!`(/L)%:+\5>- ++M3=SH5M3^_X-E_`"-?@B-1=R+SU#H!@[__[I*#0``C4W0Z">A__^-3>C&1?P! ++MZ"O4_O^+QH/&!/?8&\"+5=`CQL9%_`*+"(U%Z%#_==SHW;/___]UZ(3`=`O_ ++M-_\5T,%"`/]UZ.BDSO[__W70Z)S._O__==SHE,[^_XM-](/$#&2)#0````!? ++M7LG#N$"P0@#H\"X!`(/L#%:+\6AF#0``_W8$_Q6PP4(`@_@!C4WH#Y3`B$8P ++MZ*33_O^#9?P`C47H4(U.".A6#?__C4WHZ$[9_O^-3>CH^]C^_XU-Z.A&_/[_ ++MC47HC4X,4.@3U?[_:@'_=@3_%;C!0@#_=>CH#<[^_UE>BTWT9(D-`````,G# ++MBX%<`@``@^PXA<!65W0%C7`$ZP(S]H7`=`6-4`CK`C/2BX%X`@``C7PD"%>- ++MN2@"``!74%92_[%T`@``BY%@`@``_[%P`@``_[%L`@``_[%H`@``_[%D`@`` ++MBXE8`@``Z$1B__]?7H/$.,.X=[!"`.@!+@$`@>SP`@``BT4@4U97B_DSVXOR ++MC8T$_?__B!CH#`,``(M%"(FU9/___XMU&(F]7/___XM]$(E=_#A>2XF%:/__ ++M_P^%;P$``(U&,(U-Z%#H6]/^_SE=[,9%_`%U"(U-Z.AAZO[_.%T<#X3Q```` ++MC4V<Z"$"``"-3=S&1?P"Z%K2_O^+3>B-5=S&1?P#Z##J_O^$P'4:BQ5,TT(` ++M,\GH$9___XM%(+X%0`"`Q@`!ZU^-3=SH[_K^_XU%W(U-J%#HO-/^_XM&#(-_ ++M!`&)1<B*1@6(1<&+1@B)1<2*1@2(1<!FBP9FB47,=0R+!XU-M/\PZ(O3_O__ ++M=2B-39QH2`T``.BJ$?__@_@!="*^!$``@/]UW.AVS/[_6<9%_`&-39SH[0$` ++M`/]UZ.E$`0``C46HC4WH4.A(T_[_BT7(_W7<B48,BT7$B48(9HM%S&:)!N@Z ++MS/[_6<9%_`&-39SHL0$``(M-Z(U6,.A7Z?[_A,!U-8L53--"`#/)Z#B>__^+ ++M12#_=>C&``'H`\S^_X--_/]9C8T$_?__Z*X"``"X!4``@.GC````C4XPZ/OY ++M_O^(7?S_=>CHULO^_UF*5DN-3=#VVAO2@^("@<+D#```Z/V=__^-1="-38!0 ++MQD7\!.B@TO[_BT4DC8T$_?__B85@____4(E(5(V-?/___^AFFO__BXU@____ ++MZ!F[__^+10R)M7C___]J`8F%;/___XM%%%[_=2B)A73___^-1="-C03]__]0 ++MB)T7_?__B;UP____B;4,____Z%'T__\[PW0$B_#K'3B=5/___W0*.)T6_?__ ++M=`*+WHM%((NU4/___X@8_W70Z!C+_O^#3?S_68V-!/W__^C#`0``B\:+3?1? ++M7EMDB0T`````R<(D`+B7L$(`Z&(K`0!14U:+\3/;B77PB5X$QP:@T$(`C4X, ++MB5W\B5X(Z!K0_O^-3AC&1?P!Z`[0_O^+3?2(7B2(7B6(7C"(7C''!I#30@#& ++M1C`!B\9>6V2)#0````#)PU:+\>@4````]D0D"`%T!U;H@\K^_UF+QE["!`!6 ++MB_'_=ACH<<K^__]V#.AIRO[_6<<&V-!"`%E>P[BZL$(`Z,PJ`0!15HOQ5XEU ++M\.@^````,_^)??R)OG@"``"-CGP"``#&1?P!Z'[/_O^+3?2-AH@"``").(EX ++M!(EX",<&R--"`(O&7UYDB0T`````R<.XVK!"`.AW*@$`45-6B_&)=?#HF='_ ++M_XV&$`(``#/;B5W\B1B)6`2)6`B-CAP"``#&1?P!Z!;/__^+3?3'ADP"```% ++M0`"`B)Y0`@``QP8(U$(`B\9>6V2)#0````#)PU:+\>@4````]D0D"`%T!U;H ++MELG^_UF+QE["!`"X^K!"`.C\*0$`45:+\8EU\(V.'`(``,=%_`$```#H2=/_ ++M_X!E_`"-CA`"``#H9G@``(--_/^+SNART___BTWT7F2)#0````#)P[@HL4(` ++MZ+(I`0!15HOQB77PC8Z(`@``QT7\`@```.A4````_[9\`@``Z!?)_O^+AG@" ++M``"`9?P`A<!9=`:+"%#_40B#3?S_B\[H:/___XM-]%YDB0T`````R<-6B_'H ++MG?____9$)`@!=`=6Z-7(_O]9B\9>P@0`N#RQ0@#H.RD!`%%65XOYB7WP@V7\ ++M`(MW!(7V=!.+!TZ+#+"%R73R:@'H&````.OI_S?HE\C^_UE?BTWT7F2)#0`` ++M``#)PU:+\>@9SO__]D0D"`%T!U;H<\C^_UF+QE["!`"X6+%"`.C9*`$`@^P8 ++M4U:+\3/;5XL&.\,/A)\````Y7BP/A(,```"+3B@Y&71\B5WPBPB-5?!2:)## ++M0@!0B5W\_Q&+1?`[PW13BPB-5>124/]1#(OX._MT%8M%\(--_/\[PW0&BPA0 ++M_U$(B\?K/HM%Y"-%Z(/X_W0@BTX<BU7HBP$[401W$W(%.47D<PR`?@P`=`:+ ++M10C&``&+1?"#3?S_.\-T!HL(4/]1"#/`BTWT7UY;9(D-`````,G"!``Y7@1T ++MZ(E=[(M&!(U5[%)HP,-"`(L(4,=%_`$```#_$8M%[#O#=+@S_SE>+':QBTXH ++M.1RY=$.+"(U5W%)74/]1#(O8A=MU/8M%W"-%X(/X_W0BBTX<BU7@BP3Y.U3Y ++M!'<3<@4Y1=QS#(!^#`!T!HM%",8``8M%[#/;1SM^+'*OZ5O___^+1>R#3?S_ ++MA<!T!HL(4/]1"(O#Z5/___]5B^Q148M%"%-6B_&+R%>+5@S!X0*+.@/Y.T8$ ++M#X."````BQ8#PH`X`'5Y@V7X`,8``8M&#(,_`(M`*(L,"'9;B4W\_W7\BTX, ++MZ%\```"$P'4\BT8,@V4(`(M($(7)=A6+4`R+&CM=_'0U_T4(@\((.4T(<NZ# ++MR?^%R7PHBT`,_W3(!(O.Z';___^$P'06_T7X_T7\BT7X.P=RJ+`!ZP>+30CK ++MU#+`7UY;R<($`(M!'#/2A<!6=A.+21B+,3MT)`AT"T*#P00[T'+P@\K_,\!> ++MA=(/G<#"!`!6B_&+1@R+4`3HN%X``(M&#(O._W`DZ`W___^$P'0:BTX$,\"% ++MR78-BS:`/`8`=`E`.\%R];`!7L,RP%[#@V$L`(-A.`##N&RQ0@#H8B8!`(/L ++M'%-65XOQZ.#___^+1@0STCO"B57L#X2!````BTX0C7C_._EU=SO"B57P=F.- ++M7BB+R^B1P?[_BT,$BU7L@V7H`(U(`8E+!(L+B12!BP:+3?"#/(@`C3R(=B2- ++M3C3H9L'^_XM&.(M5\/]%Z(U(`8E..(M.-(D4@8M%Z#L'<MR+!P%%[/]%\(M% ++M\#M&!'*B,]*+1A"+3AP#P3E%['0$,L#K)(E5V(E5W(E5X(U-V(E5_(EUY.CW ++M_O___W78BMCH*,7^_UF*PXM-]%]>6V2)#0````#)PU6+[(I%$%-6B_&+30A7 ++MB$8,,\`[R'0/BQ&-1A")$(M)!(E(!.L&B480B484BUX(C7X<4XO/B488Z*)* ++M__^)7P2+7@B-3BA3Z&@"__\SP(E>+#E&"'9(BTT,,]L[RW0JBQ2!.].)51!T ++M((O(BQ+!X0.+V0,?B1.+51"+4@2)4P0##XM6*(D,@NL/BP^)',&)7,$$BTXH ++MB1R!0#M&"'*X7UY;7<(,`%6+[%.+70A65XOY4XUW!(O.Z/7]__^$P'0$L`'K ++M4(M.$#/`A<EV#XMV##D>=`M`@\8(.\%R](/(_X7`?16-10AHL.-"`%#'10C% ++M=S,!Z+8D`0"+3Q"+1,$$BT]$@#P!`'4$,L#K"%"+S^@'````7UY;7<($`(M$ ++M)`1355:+\5?!X`*+3BPS[8L<`8M.!(L\`87_=A2-!"N+SE#H8?___X3`=`Y% ++M.^]R[+`!7UY=6\($`#+`Z_6X>+%"`.@I)`$`45	?P`4U97B67P:@")3>SH ++M'P```(M-]%]>9(D-`````%O)PXM%[,=`;`5``("X_5Q!`,.XC+%"`.CJ(P$` ++M@^P04U:+\5=J`8I&:%F$P'0%B4WHZP:+5B")5>B$P'0(BT8@B47LZP.)3>S_ ++M=>B-?E"+S^C8`/___W7LC5Y<B\OHRP#__S/`.47HB47P=B*+3G"+!(&+"(M' ++M!(U0`8E7!(L7B0R"BT7P0#M%Z(E%\'+>,\`Y1>R)1?!V(HM.?(L$@8L(BT,$ ++MC5`!B5,$BQ.)#(*+1?!`.T7LB47P<MZ)=>2+1AB#9?P`A<!T.8I6:(32=`>+ ++M3D"+">L#BTXPA-)T!8M6,.L%BU9`BQ+_=0B)5>B+$%&+"_]UZ/\QBP__,5#_ ++M4@SK.(I&:(3`=`6+3D#K`XU.,(3`C48P=0.+1D#_=0B+&XL_B47P_W7LBT8< ++M48L04_]UZ/]U\%=0_U(,@TW\_XO.B49LZ!$```"+3?1?7EMDB0T`````R<($ ++M`%-55HOQ,^TSVXEN5(EN8#EN=%=V&HM&<(L\F(L'.\5T"(L(4/]1"(DO0SM> ++M='+F,]LYKH````!V'8M&?(L\F(L'.\5T"(L(4/]1"(DO0SN>@````'+C7UY= ++M6\.+">F>____4U97B_'_="00C4X$Z"P````SVXU^:(E>2(O/B5Y@Z.`&```Y ++M7A1V#8O/Z*4&``!#.UX4<O-?7C/`6\($`%97BWPD#(OQ5^@`!@``C4<,C4X, ++M4.B6!0``C4<8C4X84.CH!0``BT<DC4XHB48DC4<H4.C6!0``@\<TC4XT5^C* ++M!0``B\9?7L($`%-55HMT)!!7B_F*7@F-;T2+S>@34___BT4$C4@!B4T$BTT` ++MC6]0B!P!BEX(B\WH]U+__XM%!(U(`8E-!(M-`(@<`8U/=.AA!@``B]B+1@R) ++M0R#_-HU+&.C(C____W8$C4L<Z+V/__^*1UQ?7HA#:%U;P@0`BT%TBTPD!(L$ ++MB(U(&/?8&\`CP<($`%97B_$S_SE^;'85BT9HBPRXZ+TA__^%P'4(1SM^;'+K ++M,\!?7L-5B^R`?0@`4U:+\5>+?BAU;8M&=(L$N(-X(`%U88M&1(`\.`!T6(M& ++M+(U>!(O+BP2X4(E%".C^^?__A,!U0(M+$#/`A<EV$HM;#(M5"#D3=`M`@\,( ++M.\%R\8/(_X7`?`F+3A"+?,$$ZZB-10AHL.-"`%#'10C%=S,!Z+<@`0")?F!? ++M7EM=P@0`N*BQ0@#H@R`!`(/L&(-E\`!35HOQ5XM&?(7`#X:`````BT7PB\B+ ++M1GC!X0*+/`&+1@@#P8I.8(3)=`G'1>@!````ZP6+$(E5Z(3)=`>+`(E%[.L' ++MQT7L`0```(U?<(O+Z&8:``"+1>B%P'8/B47HB\OH=`0``/]-Z'7T@\=\B\_H ++M1AH``(M=[(7;=@J+S^A7!```2W7V_T7PBT7P.T9\<H"#9?``@WX8``^&)`$` ++M`(M&%(M-\(M^,(T4R(M./(L"BPR!*P2/B_B*1F"$P'0(BUH$B5WDZP.)3>2$ ++MP'4#BTH$BM#VVAO2]](CU_;8&\")5>`CQXOYB]B+1GC!YP*)7=R+#`>+27R+ ++M#)F+7>3!XP)1BP0#BT!PBP20BU7PB47DBT9L_W7DBP20B\CH3"#__S/`B47H ++MB47\B47LBT9XQD7\`8L<`XU+&.@A`0``BPB-5>B[,,1"`%)34/\1BT9XBSP' ++MBT<8A<!U`XM''(L(C57L4E-0_Q&+1>B%P'0E@WWL`'0?BPB_```(`%?_=>!0 ++M_U$,BT7L5_]UW(L(4/]1$(M%Z(M-[(!E_`"%R70)BP%1_U`(BT7H@TW\_X7` ++M=`:+"%#_40C_1?"+1?`[1A@/@MS^__^+1BR+3GB`?F``BUT(BP2!=`Z+0'#_ ++M,XL(Z/R,___K#XM-#(M`?/\QBPCHZXS__S/_.7XD=E*+10PKPXE%#(M&((M. ++M/(M6,(L$N(L,@<'A`BL$$8M6>(!^8`"+#!%T$XM5#(M)?/\T&HL,@>BJC/__ ++MZPV+27#_,XL,@>B;C/__1X/#!#M^)'*VBTWT7UXSP%MDB0T`````R<((`(L! ++MA<!U`XM!!,.+47Q6,_97A=)V%HM)>(M$)`R+.3E';'0*1H/!!#OR<O$SP%]> ++MP@0`58OLBT444U97_W4,@"``B_'_=0B-3OSH1/W__S/;,_\Y7GAV&CM^8'0/ ++MBT9TBPRXZ)0B__\[PW5W1SM^>'+F,_\Y7GAV&CM^8'0/BT9TBPRXZ-(B__\[ ++MPW561SM^>'+FBT9@BTYT_W40BPR!Z(CY__\S_SE^>'9-.WY@=!2+1G2+!+B+ ++M2`CH,A`!`(7;=0*+V$<[?GARX87;="I^#('C__\``('+```'@(O#Z<0````/ ++MCKX````E__\```T```>`Z:\```"-?OQH!$``@(O/Z`3___^%P`^%F````&@. ++M``>`B\_H\/[__X7`#X6$````BTYX,_^%R;L0```@=B2+5G2+`HM`;(7`=!`[ ++MPW0,@_@!=`<]!4``@'5:1X/"!#OY<M]J`8U._.BL_O__A<!U1(M6>#/_A=)V ++M&(M.=(L!BT!LA<!T!#O#=2M'@\$$._IRZS/_A=)V&XM&=/]U%(L$N(U(&.BB ++M\___A<!U"$<[?GARY3/`7UY;7<(0`(M!:(M,)`2+#(B+01B+41S"!`!3BUPD ++M"%:+\3O>=02+QNM)5XM[!#M^"'8D_S;HR+O^_X-F"`"#9@0`@R8`B\?!X`-0 ++MZ'Z[_O]9B099B7X(A?^)?@1T$HO'P>`#4/\S_S;H/AP!`(/$#(O&7UY;P@0` ++M4XM<)`A6B_$[WG4$B\;K25>+>P0[?@AV)/\VZ&J[_O^#9@@`@V8$`(,F`(O' ++MP>`"4.@@N_[_68D&68E^"(7_B7X$=!*+Q\'@`E#_,_\VZ.`;`0"#Q`R+QE]> ++M6\($`%:+\>@"M_[_:@3HZ;K^_X7`670%@R``ZP(SP(M.!(U1`8E6!(L67HD$ ++MBL-6B_'HU[;^_VH@Z+ZZ_O^%P%ET"8,@`(-@!`#K`C/`BTX$C5$!B58$BQ9> ++MB02*PU97B_F+=P2%]G0>4XL'3HL<L(7;=`Z+R^C/`@``4^BONO[_687V=>1; ++M@V<$`%]>P[B^L4(`Z`\;`0!15HOQZ&VV_O]HB````.A1NO[_68O(B4WP,\`[ ++MR(E%_'0%Z!L```"+3@2-40&)5@2+%EZ)!(J+3?1DB0T`````R<-6B_&-3ACH ++M/@```#/)C49\B4X$B4X(B4X,B4Y0B4Y4B4Y8B4Y<B4Y@B4YDB$YHB4YPB4YT ++MB4YXB0B)2`2)2`C'!DC40@"+QE[#B\$SR8D(B4@$B$@,B4@<B4@@B4@DB4@H ++MB4@LB4@PPU:+\>@4````]D0D"`%T!U;HV;G^_UF+QE["!`"X$+)"`.@_&@$` ++M45:+\8EU\,<&2-1"`,=%_`4```#H;1___XU.?,9%_`3H6@$``(U.<,9%_`/H ++M^````/]V7.B/N?[__W90Z(>Y_O^`9?P`65F+SN@A````@TW\_XO.@\88]]D; ++MR2/.Z'8```"+3?1>9(D-`````,G#N#VR0@#HQAD!`%%6B_&)=?#'!E#40@#' ++M1?P"````Z/0>__^-3@SH10P!`(U.".@]#`$`C4X$Z#4,`0"+3?1>9(D-```` ++M`,G#5HOQZ+#____V1"0(`70'5NC\N/[_68O&7L($`.D'#`$`N%"R0@#H71D! ++M`%%6B_&)=?#_=BB#9?P`Z-.X_O__=ASHR[C^_XM&!%F%P%ET!HL(4/]1"(LV ++M@TW\_X7V=`:+!E;_4`B+3?1>9(D-`````,G#N&2R0@#H#!D!`%%3B]E6B5WP ++MBW,$@V7\`(7V="-7BP-.BSRPA?]T$XL'A<!T!HL(4/]1"%?H9;C^_UF%]G7? ++M7_\SZ%BX_O]97HM-]%MDB0T`````R<.X>+)"`.BV&`$`45.+V5:)7?"+<P2# ++M9?P`A?9T(U>+`TZ+/+"%_W03BP>%P'0&BPA0_U$(5^@/N/[_687V==]?_S/H ++M`KC^_UE>BTWT6V2)#0````#)PXL!A<!T!HL(4/]1",-6B_&-3@3H\@H!`(O. ++M7NGJ"@$`58OL5HOQ5XM]"(-F!``[?@AV08'_____?W85C44(:+#C0@!0QT4( ++MY0<``.@Z&`$`_S;HG+?^_X,F`(-F"`"#R/]9._AW`HO'4.A1M_[_68D&B7X( ++M7UY=P@0`58OL@^P8BT44,\D[P70"B0@Y31!35E=T&(M]"(M7%(M?$#M7'(E= ++M\'(.=P4[7QAR!S/`Z=(```"+1PB)3?R+3RB)30B+3R2+#(&+<10[UHEU['<, ++M<@4[61!S!8E%".L=BW$(BUWP`W$0BTD,$TWL.]%R%G<$.]YR$$")1?R+10B+ ++M3?P#P='HZ[N+3R2)1PB+-($K7A`;5A2+PSM&&(U>&(E%^(E5_'4%.U,$=!.+ ++M!E-J`%+_=?B+"%#_41"%P'5*BTX(BT8,*TWX&T7\,]([T'(*=P4Y31!V`XE- ++M$(LVC4T04?]U$(L&_W4,5O]0#(M-$#/2`4\0$5<4`0N+31014P2%R70%BU40 ++MB1%?7EO)PA``58OLBTT4BT4(@^D`="%)=!))=`>X`0`#@.M"BT@8BU`<ZP:+ ++M2!"+4!0!30P151"+51"%TG\0?`>+30R%R7,*N(,`!X#K%XM-#(E($(E0%(M% ++M&(7`=`6)"(E0!#/`7<(4`(M$)`C'``(````SP,((`(M$)`B#^`)R![A7``>` ++MZR4/MH!8U$(`BTPD$(D!BTPD%&8/MH"8RT(`9HD!BT0D#(,@`#/`PA0`BT0D ++M"(/X`G('N%<`!X#K)0^V@%S40@"+3"00B0&+3"049@^V@)C+0@!FB0&+1"0, ++M@R``,\#"%`!5B^R#[!"+10PSR4AFB4WP9HE-\HE-^'0\@^@F="^#Z`5T&(/H ++M(W4VBT4(_W`T_W`PC4WPZ.7K_O_K(XM%"#E(''0;BT`8_W`$_S#KY(M%"/]P ++M$.L!48U-\.B;Z_[__W40C4WPZ)WL_O^-3?#H!NS^_S/`R<(,`+CRLD(`Z'X5 ++M`0"![(P```!35HOQ5U:+!O]0$(M%##/_.\</A)8%``")?>R+"(U5[%)H4,5" ++M`%")??S_$3E][`^$>04``(U-S.@4NO[_9HF]=/___V:)O7;___^)O7S___^+ ++M1>QJ`EN-E73___^+"%)J!%"(7?S_40P[QXE%W'0MC8UT____Z'7K_O__=<SH ++M?K3^_XM%[(--_/\[QUET!HL(4/]1"(M%W.D4!0``9H.]=/___PAT(HV-=/__ ++M_^@^Z_[__W7,Z$>T_O^+1>R#3?S_63O'Z=T$``#_M7S___^-3<SHN;K^_XV- ++M=/___\9%_`'H"NO^_VHNC4W,Z(>^_O^->`&-1:A74(U-S.BI*O__BT7,C4W` ++MQD7\`XT$>%#H@;G^_XU%P(U-X%#&1?P$Z`&Z_O^+3>#&1?P%Z`"T_O^-38SH ++M&KG^_XU-F,9%_`;H#KG^_XM%Y(!E\P`[P\9%_`>+^P^"$@0``(M-X+J<U$(` ++MC4Q!_.B&M/[_A,!T(8M%Y,9%\P$[PW9UBTW@C4Q!^F:#.6%U:$<KRSOX<O/K ++M7XM%Y#O##X+1`P``BTW@NIC40@"-3$'\Z$6T_O^$P'4<BT7@BTWDNI340@"- ++M3$C\Z"VT_O^$P`^$H`,``(M%Y#O#=A2+3>"-3$'Z9H,Y,'4'1RO+._AR\SOX ++M#X5]`P``*\>-3<!0C85H____4.BJ*?__4(U5J(U-M,9%_`CH'KC^_U"-38S& ++M1?P)Z-BY_O__=;3HW;+^__^U:/___\9%_`?HSK+^_XM%Q%E9*\>+3<"-!$&- ++M39A0Z$>Y_O^*1?.(1:2+1:R#^`%S#VB,U$(`C4XDZ*VZ_O_K#4B-3B10_W6H ++MZ-FY_O^+70B-582+R^@L%O__B_B%_W1+_W68Z'.R_O__=8SH:[+^__]UX.AC ++MLO[__W7`Z%NR_O__=:CH4[+^__]US.A+LO[_BT7L@TW\_X/$&(7`=`:+"%#_ ++M40B+Q^G@`@``BT6$BTV(`48PC7X8B4W<B478$4XTB\_H-43__XM'!(M5V(7; ++MC4@!B5T(B4\$BP^)%,&+5=R)5,$$=`:+`U/_4`2-7@S&1?P*B\OHOZW^_XU% ++M"(O+4.@.#0``BT4(QD7\!X7`=`:+"%#_40B+1A"#9=P`B478BT4,C578:@"+ ++M"%)0_U$0B]B%VW0X_W68Z)ZQ_O__=8SHEK'^__]UX.B.L?[__W7`Z(:Q_O__ ++M=:CH?K'^__]US.AVL?[_@\08Z<(!``"-3;3HMK;^_XU%M(U-C%#&1?P+Z!<" ++M``"$P`^$\@```(-E"`"+1>R-50A2QD7\#/]UM(L(4/]1$(O8@_L!#X2^```` ++MA=L/A2L!``"+30B%R0^$O````(U5A.B[%/__B]B%VP^%#@$``(M%A(M-B`%& ++M,(E-W(O8$4XTB\_H#T/__XM'!(M5W(U(`8E/!(L/B1S!C5X,B53!!(O+Z*VL ++M_O^-10B+RU#H_`L``(M&$(.E</___P")A6S___^+10R-E6S___]J`(L(4E#_ ++M41"+V(M%"(7;QD7\"P^%H````(7`=`:+"%#_40C_=;3&1?P'Z'NP_O]9C4VT ++MZ,*U_O_I!____XM%",9%_`N%P'0&BPA0_U$(_W6TZ%2P_O^#?A`!674*@'WS ++M``^%K````/]UF.@[L/[__W6,Z#.P_O__=>#H*[#^__]UP.@CL/[__W6HZ!NP ++M_O__=<SH$[#^_XM%[(--_/^#Q!B%P'0&BPA0_U$(,\#IJ````(M%",9%_`N% ++MP'0&BPA0_U$(_W6TZ-^O_O__=9CHUZ_^__]UC.C/K_[__W7@Z,>O_O__=<#H ++MOZ_^__]UJ.BWK_[__W7,Z*^O_O^#Q!R+1>R#3?S_A<!T!HL(4/]1"(O#ZT?_ ++M=9CHCZ_^__]UC.B'K_[__W7@Z'^O_O__=<#H=Z_^__]UJ.AOK_[__W7,Z&>O ++M_O^+1>R#3?S_@\08A<!T!HL(4/]1"&H!6(M-]%]>6V2)#0````#)P@@`N`2S ++M0@#HK`\!`(/L#%-6B_%7BU80BT8,2H!^&`"-#!)FBSP!="!F@_]Z=0AFQP0! ++M80#K#&:#_UIU,&;'!`%!`(72=!3KSV:#_SEU'H729L<$`3``=`;KO3+`ZSR- ++M7@QJ,8O+Z">Z_O_K"XM&#(U>#$=FB3Q04XO6C4WHZ.NS_O^+30B#9?P`4.BE ++MM?[__W7HZ*JN_O]9L`&+3?1?7EMDB0T`````R<($`+@0LT(`Z`,/`0!14U:+ ++M=0A7@V7\`(EE\/]U%(O._W4,Z&#Y__^+^(7_=`:+!E;_4!"+Q^L+N#YR00## ++MN`X`!X"+3?1?7F2)#0````!;R<(0`%:+="0(5S/_B7XPB7XTBT8DB7XHC4X, ++M9HDXZ-L(``")?AQ?,\!>P@0`BTPD!#/`.4$0BTPD"`^5P(D!,\#""`!5B^R# ++M[!`SP(-]$`-FB47P9HE%\HE%^'0?@WT0!G8H@WT0"'<BBT4(C4WP_W`T_W`P ++MZ&7D_O_K#XM%"(U-\(/`)%#HP>/^__]U%(U-\.@QY?[_C4WPZ)KD_O\SP,G" ++M$`"X2+-"`.@2#@$`@^P44U8SVU<Y71")9?")7?P/A(0```"#?1#_=!>#?1`! ++M=0>+10PY&'0*N%<`!X#I>P(``(M%"(M]&(E=X(E=Y/]P-(L/_W`P5_]1##O# ++M#X5;`@``B5T0,\`Y712-31#&1?P!#Y7`B_"+!U914U?_4!2+V(7;=!B+11"` ++M9?P`A<!T!HL(4/]1"(O#Z2`"``"#?10`=0V#?1``=0<SP.D-`@``BP=65_]0 ++M&(OP,]L[\W0-BT40(%W\.\/I(`$``&HHZ**L_O]9B\B)310[R\9%_`)T"NCH ++M`0``B47LZP6)7>R+PSO#QD7\`8E%#'0&BPA0_U$$:C#&1?P#Z&FL_O]9B\B) ++M310[R\9%_`1T">B>"___B_#K`C/V._/&1?P#B744=`:+!E;_4`135XO.QD7\ ++M!>A9#/__BT7@BTWDB48HB48@B4XLB4XDB\[H'`W__X7`B47H=#N+113&1?P# ++MA<!T!HL(4/]1"(M%#,9%_`&%P'0&BPA0_U$(BT40@&7\`(7`=`:+"%#_40B+ ++M1>CI'P$``(M%"#M8$'55BT40A<!T"HL(4/]1"(-E$`"+!VH`5_]0'(OPBT44 ++MA<#&1?P#=`:+"%#_40B+10S&1?P!A<!T!HL(4/]1"(M%$(!E_`"%P'0&BPA0 ++M_U$(B\;IP@```(M`#(L$F(LXB\_H/0___X7`B47H=#B+113&1?P#A<!T!HL( ++M4/]1"(M%#,9%_`&%P'0&BPA0_U$(BT40@&7\`(7`=`:+"%#_40B+1>CK=/]U ++M%(M%#(L(:@!J`/]U$%=0_U$,B_B%_W0WBT44QD7\`X7`=`:+"%#_40B+10S& ++M1?P!A<!T!HL(4/]1"(M%$(!E_`"%P'0&BPA0_U$(B\?K(XM%[(M]&(M(((M` ++M)`%-X!%%Y$/ID?[__[BH=4$`P[@.``>`BTWT7UYDB0T`````6\G"%`"+P3/) ++MQT`$5,M"`,=`"$3+0@#'0`P$U4(`QT`0]-1"`(E(%(E(&(E('(E(((E(),<` ++MY-1"`,=`!-#40@#'0`C`U$(`QT`,L-1"`,=`$*#40@##58OL4U:+=1!7BWT, ++M:A"#)@!;4V@0X$(`5^@("P$`@\0,A<!U"HM%"(D&Z8T```!3:###0@!7Z.L* ++M`0"#Q`R%P'3C4V@`Q$(`5^C8"@$`@\0,A<!U"HM%"(O(C5`$ZU53:(#"0@!7 ++MZ+L*`0"#Q`R%P'4*BT4(B\B-4`CK.%-HL,-"`%?HG@H!`(/$#(7`=0J+10B+ ++MR(U0#.L;4VB0PT(`5^B!"@$`@\0,A<!U%XM%"(O(C5`0]]D;R2/*B0[_0!0S ++MP.L%N`)``(!?7EM=P@P`5HMT)`C_3A2+1A1U%(7V=`Z+SN@99P``5NB<J?[_ ++M63/`7L($`+ANLT(`Z`(*`0"#["A35C/;5SE=#(EE\(E=_'0*N%<`!X#IS0`` ++M`(M%$&HPB1CH+JG^_UF+R(E-##O+QD7\`70*Z!8!``")10SK!8E=#(O#.\.( ++M7?R)1>QT!HL(4/]1!(M]",9%_`(S]CMW#'-GB5W,B5W4B5W8B5W<B5W@B5WD ++MB5WHBT<(C4W,QD7\`XL$L/\PZ-5W__^+1Q2+#/")3=2+1/`$B478BT4,C4@D ++MZ,&D_O^-1<Q0BT4,C4@DZ+X#``"+1<S&1?P".\-T!HL(4/]1"$;KE(M-#.@H ++M````BTT0BT7LB0$SP.L+N/-W00##N`X`!X"+3?1?7F2)#0````!;R<(,`%6+ ++M[%%15E<S_S/V,](Y>2B)??QV*E.+022+??R+!)"+6`R)<!")>!2+>`@#]Q%= ++M_#/_B7@80HEX'#M1*'+86XM%_(EY$(EQ&(EY%(EY"(E!'%\SP%[)PXO!,\F) ++M2`2)2"")2"2)2"B)2"S'`!350@##58OL5HMU$&H0:!#@0@#_=0R#)@#HHP@! ++M`(/$#(7`="QJ$&B`PD(`_W4,Z(T(`0"#Q`R%P'06:A!HH,)"`/]U#.AW"`$` ++M@\0,A<!U#(M%"(D&_T`$,\#K!;@"0`"`7EW"#`!6BW0D"/].!(M&!'44A?9T ++M#HO.Z`T```!6Z)^G_O]9,\!>P@0`N(.S0@#H!0@!`%%6B_&)=?"#9?P`C4XD ++MZ(0!``"+=B"#3?S_A?9T!HL&5O]0"(M-]%YDB0T`````R<.XFK-"`.C*!P$` ++M46HXZ!>G_O]9B\B)3?`SP#O(B47\=`7H#````(M-]&2)#0````#)P[BZLT(` ++MZ)@'`0!15HOQ,\")=?#'!GS50@#'1@1LU4(`B48(B48,B480B484B47\B488 ++MB48<B48@C4XDQD7\`>@WK/[_BTWTQP8XU4(`QT8$*-5"`(O&7F2)#0````#) ++MPU6+[%:+=1!J$&@0X$(`_W4,@R8`Z$\'`0"#Q`R%P'4'BT4(B0;K/&H0:(#% ++M0@#_=0SH,@<!`(/$#(7`=.-J$&A@Q4(`_W4,Z!P'`0"#Q`R%P'47BT4(B\CW ++MV8U0!!O)(\J)#O]`"#/`ZP6X`D``@%Y=P@P`BT0D!/]`"(M`",($`%:+="0( ++M_TX(BT8(=12%]G0.B\[H#0```%;H+*;^_UDSP%["!`!6B_'_=B3H&J;^__]V ++M&.@2IO[_65F-3@SH9P```%[#Z0````"Y8-1"`.GN4/__N,RS0@#H9`8!`%%3 ++MB]E6B5WPBW,$@V7\`(7V="-7BP-.BSRPA?]T$XL'A<!T!HL(4/]1"%?HO:7^ ++M_UF%]G7?7_\SZ+"E_O]97HM-]%MDB0T`````R<.XX+-"`.@.!@$`45.+V5:) ++M7?"+<P2#9?P`A?9T(U>+`TZ+/+"%_W03BP>%P'0&BPA0_U$(5^AGI?[_687V ++M==]?_S/H6J7^_UE>BTWT6V2)#0````#)PU.+V5:+<P2%]G0C5XL#3HL\L(7_ ++M=!.+!X7`=`:+"%#_40A7Z".E_O]9A?9UWU^#8P0`7EO#N/:S0@#H@P4!`%%6 ++MB_%J(.C-I/[_68O(B4WP@V7\`(7)=`S_=0CH7@```(O(ZP(SR8M&!(U0`8E6 ++M!(L67HD,@HM-]&2)#0````#)P@0`5E>+\6H$Z(FD_O^+^%F%_W04BT0D#(L` ++MA<")!W0*BPA0_U$$ZP(S_XM&!(U(`8E.!(L.B3R!7U["!`!65XM\)`R+\8L' ++MA<")!G0&BPA0_U$$BT<(B48(BT<,B48,BT<0B480BT<4B484BT<8B488BT<< ++MB48<B\9?7L($`(-L)`0$Z7?]__^#;"0$!.GN_?__@VPD!`3II?G__X-L)`0$ ++MZ6KZ__^#;"0$".F1^?__@VPD!`CI5OK__X-L)`0,Z7WY__^#;"0$#.E"^O__ ++M@VPD!!#I:?G__X-L)`00Z2[Z__^+1"0$_W0D#(M`"&H`4(L(_U$,P@P`5HOQ ++M@"8`C4X$Z`H```"#9E@`B\9>P@0`5HOQZ`\````SP(E&0(E&1(E&2(O&7L.+ ++MP3/)B0B)2`2)2`B)2`R)2!")2!2)2!B)2!R)2"")2"B)2"R)2#")2#2)2#B) ++M2#S#58OL45%6BW4(5XM^"(/'&%?_%4#`0@"+1@B+3A"+5A0[2!!U!3M0%'0G ++MBT`(:@")5?QJ`/]U_(L045#_4A"%P'5.BT8(BTX0B4@0BTX4B4@4BT8(@V4( ++M`(U5"(M`"%+_=1"+"/]U#%#_40R+30@!3A"+3@B#5A0`BU80B5$0BU84B5$4 ++MBTT4A<ET!8M5"(D15XOP_Q5$P$(`B\9?7LG"$`"X\K1"`.@^`P$`@>S````` ++MBT4L4XM=%%:+=1B`(`"+0PA7B4WLB_Z+2S#!YP*+#`^-!,B-3:2)19CH"0T` ++M`(-E_`"-1:105HO+Z!<S``"+0S2#?:@@#[8$,(E%O'8*O@%``(#I`0H``(V- ++M-/___^B[_O__C8UT____QD7\`>BM#P``C94T____C4VDQD7\`N@F#0``C8TT ++M____Z#W<__^$P`^$)@<``(M3-(M++(M#*,9%&P$/MA0R`Q0/@WT<`(L,T(M$ ++MT`1T+HMU'(L6BW8$._!R$'<$.]%V#+X%0`"`Z6H)```[T74*._!U!L9%&P'K ++M!(!E&P"+=>R`/@!T%HU6!(V--/___^B<#0``A,`/A3T!``"+=>R`)@"+1EB# ++MQEB%P'0)BPA0_U$(@R8`:(0```#H9J'^_UF)182%P,9%_`-T"VH`B\CH00H` ++M`.L",\"+3>Q0QD7\`HE!4(O.Z$9P__^+1>R+0%"%P'0%C4@$ZP(SR8M%[(V5 ++M-/___U*)2%2+`?]0!(7`#X72````(47H.46H#X:-````,]N+1:2#9<@`@V7, ++M`(TT`_]V!(U5R#+)QD7\!/\VZ#/H_O^%P`^%H@```(MV$(/^`74+.47(#X29 ++M````ZQ.#?<P`#X2O````.774#X6F````BT7LC57(4HM(5(L!_U`(C4W,QD7\ ++M".C9Z/__C4W(QD7\`NC-Z/___T7HBT7H@\,8.T6H#X)X____BUT4BT7LC7`$ ++MC84T____4(O.Z/_>__^-A73___^-3D!0Z*#D__^+1>R+\,8``8M.5(L!_U`4 ++M,\D[P71ZB_#IZ`<``,9%_`6+\.L)QD7\!KX!0`"`C4W,Z%_H__^-3<C&1?P" ++MZ%/H___IO@<``(U-S,9%_`?H0NC__XU-R,9%_`+H-NC___^U=/___X!E_`#H ++M&J#^_UF-C33____HFP@``(--_/^-3:3H`0T``+@!0`"`Z9X'``"+0RR`91<` ++M.4VHB4W$BP0'B4W8B46`#X;5`P``P>`#B4V<B46@BT6DBTV<_W78`\B+1>R) ++M3>B+2%2+`?]0#(L(A<F+^74#BW@$@'T7`(E]W`^%DP```(!]0`!T18-E\`"+ ++M!XU-\%%HH,-"`%?&1?P)_Q"+1?"%P'0:_W5$BPC&11<!4/]1#(OPA?8/A<L# ++M``"+1?"%P,9%_`)T!HL(4/]1"(-E\`"+!XU-\%%HT,-"`%?&1?P*_Q"+1?"% ++MP'0=_W5,BPC&11<!_W5(4/]1#(OPA?8/A9T#``"+1?"%P,9%_`)T!HL(4/]1 ++M"(-E\`"+!XU-\%%H<,-"`%?&1?P+_Q"+5>B+2@P[R0^%<0,``(M%\(7`=">+ ++M4@B+,%%24/]6#(OP@?Y7``>`=06^`4``@(7V#X51`P``BT7PZPB%R0^%L0,` ++M`(7`QD7\`G0&BPA0_U$(@V7P`(L'C4WP46BPQ$(`5\9%_`S_$(M%\(7`#X3+ ++M````BTTTQ@$!BTTPA<D/A`T#``"#9>0`BP&-5>124<9%_`W_4`R+\(7V#X4! ++M`P``BT4XBWT\B\_&``'HM`8``#EUY'0-_W7DB\_HR:3^_XMW!(T$-HU-T%#H ++M3@L``(M]Y#/)A?;&1?P/=AJ+5=!FBP1/B`1*,]**U(M%T(A42`%!.\YRYO]U ++MU(M%\/]UT(L(4/]1#(OPA?8/A9D"``"-3=#&1?P2Z"@+``#_==#HUYW^_UF- ++M3>3&1?P3Z*L%``#_=>3_%9#!0@"+1?"+?=R%P,9%_`)T!HL(4/]1"(!EE`"# ++M9?``BP>-3?!1:+##0@!7QD7\%/\0BT7PA<!T(8I-&XLP,]*(392$R0^5PE)0 ++M_U8,B_"%]@^%3P(``(M%\(7`QD7\`G0&BPA0_U$(BT7H@V7H`(MP$(7VB76$ ++M=!BX____'SOP=P*+QL'@`U#H!)W^_UF)1>@SP,9%_!6%]HE%P'08N/___S\[ ++M\'<"B\;!X`)0Z-^<_O]9B47`@V7<`,9%_!:%]@^&EP```(MUZ(E%\(M5K#/) ++M.4VP=A*+PHLX.WW$=`Q!@\`(.TVP<O"#R?^%R7P4BTS*!(M#*`--@(T$R(M- ++M\(D!ZT$SP#E%N'83BTVTBQ$[5<1T#$"#P00[1;AR\(/(_X7`#XR'`0``BTV8 ++MBU3!"(M\P0PK%,$;?,$$BT7PB1:)?@2),/]%W(-%\`2+1=R#Q@C_1<0[180/ ++M@F____^+11R%P'0+BTW8.XU8____=`B+0RB+3:`#P?]UE(M-[/]UP(M)5(L1 ++M4/]UV/]2&/]UP.@QG/[__W7HQD7\`N@EG/[__T78@T6@"(M%V(-%G!@[1:A9 ++M60^".?S__XMU[#/).4T@=!"`?1L`BTY4BP$/E,)2_U`0,]N)78B)78R)79"- ++M3>#&1?P7Z,<)``"#?;@!BW4(QD7\&`^&W@```(M-X(M]F(/!$(L&BU<$48L/ ++M4P--#!-5$%)15O]0$#O##X2J````B_#I`0,``(M%\,9%_`*%P`^$"P,``(L( ++M4/]1".D``P``BT7PQD7\`NODBT7PQD7\`NL-BT7PQD7\`NO2QD7\`H7`=%R+ ++M"%#_40CK5,9%_`[K&8U-T,9%_!#HCP@``/]UT.@^F_[_6<9%_!&-3>3H$@,` ++M`/]UY/\5D,%"`(M%\,9%_`+KB8M%\,9%_`+K@/]UP.@.F_[__W7HZ`:;_O]9 ++M6;X!0`"`Z7<"``"+1>!6C4@(Z,5I___K`XM]F#E=N(E='`^&`P$``#/)B4U` ++MBUT,BT40`Q_&1?P9$T<$@WVX`8E%3'4BBW4(45%0BQ935O]2$(O8A=L/A5T! ++M``!6C4U`Z'=I___K1VH@Z&.:_O^%P%ET$H-@!`"#8!@`QP#`U4(`B_#K`C/V ++M5HU-0.A,:?__BT7@C4X84(E%%.@]:?__BT44B5X0B48(BT5,B484:BCH')K^ ++M_X7`6702@V`$`(-@"`#'`+#50@"+\.L",_96C4V(Z`+?__^+R.C^:/___W5` ++MC4X(Z/-H__^+1PB+3PPK!\9%_!@;3P2#9A@`@V8<`(!F(`")1A")3A2+14"% ++MP'0&BPA0_U$(_T4<BT4<@\<(.T6X#X+__O__,]N+38PS_SO+B_&)?4!T&KC_ ++M__\_.\AW`HO!P>`"4.B$F?[_B_A9B7U`,\D[\W80BT6(BP2(BP")!(]!.\YR ++M\(MU(#OS#X3I````B5T<.5TDQD7\&P^$G````(M%[(M(5/]Q8.AWU?__A,`/ ++MA88```!J#.@PF?[_68E%"#O#QD7\''1D_W4DB\CHV@,``.M:BT5`QD7\&(7` ++M=`:+"%#_40B+1>#&1?P74(L(_U$(C4V(QD7\`NB#X/___[5T____@&7\`.@3 ++MF?[_68V--/___^B4`0``@TW\_XU-I.CZ!0``B\/IF@```#/`4(U-',9%_!OH ++MO&?__XM%'(EU%#O#=0.+122+3>S_=2R+2510C444BQ%05_]2'(OPBT4<.\/& ++M1?P:=`:+"%#_40A7Z*N8_O]9ZPQ7Z**8_O]9O@5``("+1>#&1?P74(L(_U$( ++MC4V(QD7\`NCDW____[5T____@&7\`.ATF/[_68V--/___^CU````@TW\_XU- ++MI.A;!0``B\:+3?1?7EMDB0T`````R<)(`%:+\8M&!(7`=`U0:@#_-NAX^P`` ++M@\0,_S;H*YC^_UE>P_\Q_Q60P4(`PU:+\8L&A<!T(5#_%93!0@#1X%!J`/\V ++MZ$;[``"#Q`S_-O\5D,%"`(,F`%[#5HOQZ,S_____-O\5D,%"`%[#58OL5HMU ++M$&H0:!#@0@#_=0R#)@#H9?@``(/$#(7`=!9J$&B`PD(`_W4,Z$_X``"#Q`R% ++MP'4,BT4(B0;_0`0SP.L%N`)``(!>7<(,`%:+\8L&A<!T%XM."(U,"0)1:@!0 ++MZ+_Z``"#Q`R#9@0`7L-6B_'_=C3H:)?^__]V*.A@E_[__W88Z%B7_O__=@SH ++M4)?^__\VZ$F7_O^#Q!1>PU:+\5?_="0,C7X$B\_H+````#/)C49XB4YHB4YL ++MB4YPB4YTB0B)2`2)2`C'!]S50@#'!M#50@"+QE]>P@0`5HOQC4X$Z%CS__^* ++M3"0(,\")1D2)1DB)1DR)1E")1E2)1EB)1F"(3ES'!@#60@"+QE["!`!6B_'_ ++M="0(C4X$Z"K5__^#9D@`@V9@`#/`7L($`%:+\>@4````]D0D"`%T!U;HGY;^ ++M_UF+QE["!`!6B_'_=E#'!@#60@#HAY;^__]V1.A_EO[_65F-3@3H`O___U[# ++M5HMT)!!J$&@0X$(`_W0D%(,F`.CX]@``@\0,A<!U#8M$)`B)!O]`:#/`ZP6X ++M`D``@%["#`"+1"0$_T!HBT!HP@0`BTPD!/]):(M!:'40A<ET"HM!!(/!!&H! ++M_Q`SP,($`/]T)!"+072+3"0(_W0D$(L,B/]T)!"#P1CHWM#__\(0`%:+\>@8 ++M````]D0D"`%T"HU&_%#HV97^_UF-1OQ>P@0`N!NU0@#H/O8``%%6B_&)=?"- ++M3G3'1?P!````Z%@#``"`9?P`C4YHZ!`#``"-3OSWV1O)(\[H__[__XM-]%YD ++MB0T`````R<.+P3/)B0B)2`2)2`B)2`R)2!")2!3#BT0D!%:+\<<&0,U"`(-F ++M!`"%P(E&"'0&BPA0_U$$QP8DUD(`B\9>P@0`5HMT)`C_3@2+1@1U%(7V=`Z+ ++MSN@-````5N@LE?[_63/`7L($`(M!"(7`=`:+"%#_40C#58OL45-65XOZB_&+ ++MS^C,````@V=$`(M&#(U?#%"+RXE%_.BY&O__BT7\@V7\`(E#!(-^#`!V)HM% ++M_(M."(O0BP/!X@,#R@/"_T7\BQ&)$(M)!(E(!(M%_#M&#'+:BUX$B\]3Z$W2 ++M_O^)7P2+7@2-3T!3Z&D:__\SR8E?1#E.!'8IB4W\BT7\BQ<#!H-%_!B+6!") ++M'(J+5T"+&(D<RHM`!(E$R@1!.TX$<MJ+1AB)1R2+7A2#QQA3B\_H]]'^_S/` ++MB5\$.484=A&+3A"+%XL,@8D,@D`[1A1R[U]>6\G#,\")002)01")01SI*\[_ ++M_U6+[%%14U:+<017.W($#X7#````@V7\`(7V=AR+`HLY*_B+'`<[&`^%J@`` ++M`/]%_(/`!#EU_'+JBT$0.T(0#X63````@V7\`(7`=C&+<@R+00R)=?@I1?B- ++M?@2+7?B+,#LT`W5RBW`$.S=U:_]%_(/'"(MU_(/`"#MQ$'+>BWE$@V7\`(7_ ++M=B.+0D"+<4`K\(L<!CL8=4"+7`8$.U@$=3?_1?R#P`@Y??QRY8M!'#M"''4D ++M,_:%P'87BU(8BTD8*\J+/!$[.G4/1H/"!#OP<O&P`5]>6\G#,L#K]U:+\?]V ++M0.A#D_[_68O.Z,C[__]>PU:+="0(_TX$BT8$=12%]G0.B\[H#0```%;H&Y/^ ++M_UDSP%["!`"+01B%P'0&BPA0_U$(P^D`````5HOQ_W80Z/:2_O__=@CH[I+^ ++M_UE9BPY>A<ET!VH#Z!<!``##5HOQ5XM\)`R#)@"#9@0`A?]T#%?HD)+^_UF) ++M!HE^!(O&7U["!`"+002%P'0-4&H`_S'HZ?4``(/$#,.+P3/)B0B)2`2)2`C# ++M5E>+^8MW!(7V="93BP=.BQRPA=MT%HU+!.B.Y0``B\OHA^4``%/H:I+^_UF% ++M]G7<6_\WZ%V2_O]97U[#N#"U0@#HQO(``%%65XOYB7WP@V7\`(MW!(7V=!*+ ++M!TZ+#+"%R73RBP%J`?\0Z^K_-^@CDO[_65^+3?1>9(D-`````,G#N$:U0@#H ++M@?(``%%6B_%J,.C+D?[_68O(B4WP,\`[R(E%_'0%Z&\```"#3?S_B0:+"%#_ ++M402+3?2+QEYDB0T`````R<.+`5"+"/]1",-3BEPD"%:+\?;#`G0D5XU^_&A[ ++MCT$`_S=J&%;H5O(``/;#`70'5^B<D?[_68O'7^L5B\[H<0```/;#`70'5NB$ ++MD?[_68O&7EO"!`!6B_	@0`@V8(`(U.&.C0Y@``QP8TUD(`B\9>PU:+="0( ++M_TX$BT8$=12%]G0.B\[H#0```%;H09'^_UDSP%["!`!6B_&-1AA0_Q4XP$(` ++MBW8(A?9T!HL&5O]0"%[#_W$(Z!:1_O]9PXM$)`2`80X`@&$T`(E!*(M$)`B) ++M02"+1"0,B4$DZ+0!``#"#`"X6+5"`.A<\0``45-6B_%7,]N+3BB+1BR+5B"+ ++M^<'G!`-X6#O3=`2+$NL"B]$[RG4-,](X7@P/E<*)5?#K!\=%\`(````X70AT ++M)#E=\'4?.XC@````<PN+@-P````X'`AU##A?#74'QT7P`0```(E="/]U\(M& ++M,(E=_(U="(L04U%0_U(4B]B%VW08BT4(@TW\_X7`=`:+"%#_40B+P^F.```` ++M_W4(C4X(Z!A?__^#3A#_@'X-`'01@'\.`'0+@'\-`'4%:@%8ZP(SP(-]\`"( ++M1@_&1@X!BP>)1AB+1P2)1AQU+8-]"`!U)XM&+(M.*#N(X````',,BX#<```` ++M@#P(`'4-@'\-`'4'QT7P`@```(MV,/]U\(L&5O]0&(--_/^+\(M%"(7`=`:+ ++M"%#_40B+QHM-]%]>6V2)#0````#)P@0`5HOQBT8(A<!T"HL(4/]1"(-F"`"+ ++M1B"`9@X`A<!T#8L(.TXH=0F#P`2)1B#_3B3_1BB+=C#_="0(BP96_U`<7L($ ++M`#/`.$$/=!Z+42Q6BW$H5XMY$(M26,'F!/?7.7PR"%]>=`-J`UA0Z)+____# ++M5HOQ@WXD`'0OBT8LBTXHP>$$BT!8`\&+"`M(!'4::@"+SN@H_O__A<!U#XO. ++MZ*+___^%P'3-7L,SP%[#58OLBT444S/;5CO#5W0"B1B+31`[RP^$S0```(MU ++M"#A>#@^$F@```#/`.T8<=P=R"#M.&'(#BTX8.%X/B4T(=`ZX```0`#O(=@6+ ++MR(E-"(M&"#/_.\-T$XL0C7T(5U'_=0Q0_U(,BTT(B_@X7@]T$HM5#%&+3A#H ++MC>T``(M-"(E&$(M%%#O#=`(!"`%-#"E-$"E.&!E>'(M&&`M&''49B\[H\O[_ ++M_SO#=4&+SN@3____.\-U-HM-"#O[=38[RW0IZQR+SNC[_O__.\-U'CE>)'0D ++M4XO.Z#G]__\[PW4-BTT0.\L/A3;___\SP%]>6UW"$`"+Q^OUQD8T`;@0```@ ++MZ^I6B_&#?B0`=":`?@X`=!'_="0(B\[H.O[__X7`=1/KXVH!B\[HZ?S__X7` ++M=-;K`C/`7L($`+C/M4(`Z#GN``"![*@```!3BUT85E<S]HO[.]Z)9?")=?R) ++M?>AT!HL#4_]0!(-]$/^)=<B)=<R+=0@/E$4;@'T;`,9%_`%T"8N&G````(E% ++M$#/2.540=1,@5?P[V@^$^P$``(L#4^GP`0``@\O_B54(BT40.44(<V2`?1L` ++M=`6+10CK"8M%#(M-"(L$B(N.=`$``(L,@8/Y_W0].\MU!#O"<PF+EG`!``"+ ++M%(J)5=PY1=QW'XM5W,'B!`.6F````(LZ`7W(BWWHBU($$57,_T7<Z]R-4`&+ ++MV?]%".N4_W7,BP?_=<A7_U`,B]B%VW05@&7\`(7_=`:+!U?_4`B+P^G)!@`` ++MC4WLZ&(1__^+3>PSVU-7QD7\`NBC[/[_:@&-C4S____HT>C__XE=Y(L'C4WD ++M46A`Q4(`5\9%_`3_$&HXZ%.,_O\[PUET&HE8!(E8""!8#,9`#0&)6##'`$#6 ++M0@"+^.L",_^+WXE]Q(7_B5W0=`:+!U?_4`3_=>B-1D"-3S#&1?P%B4<LZ!9; ++M__\SP#E%%(E%W`^5P8A/##F&H`$```^5P8A/#8M]Z(M-[.CI[/[_B444,\`Y ++M111T43O8QD7\!'0&BP-3_U`(BT7DQD7\`X7`=`:+"%#_40B-C4S____&1?P" ++MZ+<&``"+1>S&1?P!4(L(_U$(@&7\`(7_=`:+!U?_4`B+113IP`4``(M5W#M5 ++M$')0.]C&1?P$=`:+`U/_4`B+1>3&1?P#A<!T!HL(4/]1"(V-3/___\9%_`+H ++M7@8``(M%[,9%_`%0BPC_40B`9?P`A?]T!HL'5_]0"#/`Z6@%``"`?1L`B46P ++MB46TB46HB46L=0:+10R+%)"+AG0!``#'1<P!````BSR0@___B7T4#X2-```` ++MBTYPBT9(BURY!(L\N8L,V"L,^(E-J(M,V`0;3/@$BX9P`0``BWT40HE5X(E- ++MK(L4N(M%W$`[11!S)H!]&P!T!(O(ZP:+30R+#(&+GG0!```Y/(MU"SM-X'(& ++M08E-X.O4*T7<B544B47,BT7@.444<QR+113!X`0#AI@```"+"(M`!`%-L!%% ++MM/]%%.O<BD4;BUW<BTT,_W7,]M@;P(T,F??0(\&+3<104NAQ^?__`UW,,\D[ ++MP8E%%(E=W'17BT70QD7\!#O!=`:+"%#_40B+1>3&1?P#A<!T!HL(4/]1"(V- ++M3/___\9%_`+H&@4``(M%[,9%_`%0BPC_40B+1>B`9?P`A<!T!HL(4/]1"(M% ++M%.D@!```BT7$.4@D#X17`P``@___=5F+1=#&1?P$.\%T!HL(4/]1"(M%Y,9% ++M_`.%P'0&BPA0_U$(C8U,____QD7\`NBR!```BT7LQD7\`5"+"/]1"(M%Z(!E ++M_`"%P'0&BPA0_U$(N`5``(#IM@,``(E-V#E-Z,9%_`9T$8M%Z(U5V%)H\,1" ++M`(L(4/\1@&77`(!EU@"-3;C&1?P'Z-2._O__=BR-3;B+7="+1CC_=BB`90L` ++MQD7\"/]V$&H!48U-UE&-3==1C4T+_W7846H`_W7LC4VP4U&-3D!748V-3/__ ++M__^V5`$``/^V4`$``%#H8.;__X/X`8E%X`^$)0$``#T!0`"`#X0:`0``@'T+ ++M``^%$`$``(7`='J-3;C&1?P,Z&OQ____=;CH^(C^_XM%V%F%P,9%_`5T!HL( ++M4/]1"(7;QD7\!'0&BP-3_U`(BT7DQD7\`X7`=`:+"%#_40B-C4S____&1?P" ++MZ(T#``"+1>S&1?P!4(L(_U$(BT7H@&7\`(7`=`:+"%#_40B+1>#IDP(``(M- ++MQ&H"Z(?Z__^+^(7_='F-3;C&1?P-Z.'P____=;CH;HC^_XM%V%F%P,9%_`5T ++M!HL(4/]1"(7;QD7\!'0&BP-3_U`(BT7DQD7\`X7`=`:+"%#_40B-C4S____& ++M1?P"Z`,#``"+1>S&1?P!4(L(_U$(BT7H@&7\`(7`=`:+"%#_40B+Q^D*`@`` ++MQD7\#ND>`0``BT7$:@);@W@D``^411>#?>`!=!R!?>`!0`"`=01J`>L.@'T7 ++M`'0)@'T+`'0#:@9;BTW$4^C&^?__A<")1<QT?8U-N,9%_`GH'_#___]UN.BL ++MA_[_BT78687`QD7\!70&BPA0_U$(BT70QD7\!(7`=`:+"%#_40B+1>3&1?P# ++MA<!T!HL(4/]1"(V-3/___\9%_`+H/@(``(M%[,9%_`%0BPC_40B+1>B`9?P` ++MA<!T!HL(4/]1"(M%S.E$`0``@'T7`'17BT7DA<!T4(L(4U=J`E#_40R+^(7_ ++M=$"-3;C&1?P*Z(7O____=;CH$H?^_XM%V%F%P,9%_`5T!HL(4/]1"(M%T,9% ++M_`2%P`^$H_[__XL(4/]1".F8_O__QD7\"XU-N.A%[____W6XZ-*&_O^+1=A9 ++MA<#&1?P%=`:+"%#_40C&1?P%BT7LBTVPBU6T@\`HBWWHBUW0`0B+3:@14`2+ ++M1>R#P"`!"(M-K!%(!.EM^O__BTW$:@+HA/C__X7`B440=&NX(9I!`,.+1=C& ++M1?P%A<!T!HL(4/]1"(M%T,9%_`2%P'0&BPA0_U$(BT7DQD7\`X7`=`:+"%#_ ++M40B-C4S____&1?P"Z`L!``"+1>S&1?P!4(L(_U$(BT7H@&7\`(7`=`:+"%#_ ++M40B+11#K%&H`:@#HH>8``+B5FD$`P[@.``>`BTWT7UYDB0T`````6\G"%`!6 ++MB_'H4>[___\VZ-^%_O]97L-5B^Q6BW40:A!H$.!"`/]U#(,F`.A@Y@``@\0, ++MA<!T%FH0:)#"0@#_=0SH2N8``(/$#(7`=0R+10B)!O]`!#/`ZP6X`D``@%Y= ++MP@P`5HMT)`C_3@2+1@1U%(7V=`Z+SN@-````5NARA?[_63/`7L($`+CGM4(` ++MZ-CE``!15HOQB77PBT8P@V7\`(7`=`:+"%#_40B+=@B#3?S_A?9T!HL&5O]0 ++M"(M-]%YDB0T`````R<.X_[5"`.B8Y0``45:+\8EU\(M&6(-E_`"%P'0&BPA0 ++M_U$(_W9$@TW\_X/&!.CZA/[_68O.Z'_M__^+3?1>9(D-`````,G#N"*V0@#H ++M4N4``%%35HOQ,]N)=?#'!GS50@#'1@2@UD(`C4X0B5X(Z%````")7CB-3D") ++M7?SH#P,``(V.E`$``,9%_`'H[(G^_XM-],<&;-9"`,=&!%#60@"(GI`!``"( ++MGI$!``#'AJ`!```$````B\9>6V2)#0````#)PU6+[%%35HOQZ(#"_O^)!HE& ++M!+@```!`,]N)1A")1AB-3?R(7@B)1?R)1B")7A2)7ASHAL+^_SK#B$8)=&)7 ++MBWW\N````'")?B`[^'8"B_@SP#TS,S,#=R!R"('_,S,S,W<64VI04%?H5.<` ++M`%-J9%)0Z!KF``#K%%-J9%!7Z`[F``!3:E!24.@TYP``P>\%:_\1B480B7X8 ++MB584B5X<7UY;R<-5B^Q6BW40:A!H$.!"`/]U#(,F`.A*Y```@\0,A<!U!XM% ++M"(D&ZSQJ$&B`Q4(`_W4,Z"WD``"#Q`R%P'3C:A!HD,5"`/]U#.@7Y```@\0, ++MA<!U%XM%"(O(]]F-4`0;R2/*B0[_0`@SP.L%N`)``(!>7<(,`%:+="0(_TX( ++MBT8(=12%]G0.B\[H#0```%;H-(/^_UDSP%["!`"X-[9"`.B:XP``45:+\8EU ++M\,<&;-9"`,=&!%#60@"#9?P`5NC("```_[:4`0``Z/J"_O]9C4Y`Z!X```"+ ++M=CB#3?S_A?9T!HL&5O]0"(M-]%YDB0T`````R<-6B_'_MC0!``#HQ8+^__^V ++M,`$``.BZ@O[__[8@`0``Z*^"_O^#Q`R+SN@"````7L-6B_%7_[;P````Z)2" ++M_O__MN@```#HB8+^__^VW````.A^@O[__[;0````C;[$````Z&V"_O__-^AF ++M@O[__[:X````C;ZL````Z%6"_O__-^A.@O[__[:@````C;Z4````Z#V"_O__ ++M-^@V@O[__[:(````C7Y\Z"B"_O__-^@A@O[__W9PZ!F"_O__=F3H$8+^__]V ++M6.@)@O[_@\0XB\[H`P```%]>PU:+\?]V3.CQ@?[__W8\Z.F!_O__=CCHX8'^ ++M__]V-.C9@?[__W8PZ-&!_O__=BSHR8'^__]V*.C!@?[__W8DZ+F!_O__=ACH ++ML8'^__]V#.BI@?[__W8(Z*&!_O^#Q"Q>PU:+\>@@````C88@`0``,\F)"(E( ++M!(E("(F.,`$``(F.-`$``(O&7L.XD;9"`.CAX0``45%6B_%7B77PZ*X````S ++M_XE]_(E^6(E^7(E^8(E^9(E^:(E^;(E^<(E^=(E^>(U&?(DXB7@$B7@(B7@, ++MB7@0B7@4C8:4````B3B)>`2)>`B)>`R)>!")>!2-AJP```").(EX!(EX"(EX ++M#(EX$(EX%(V&Q````(E%[(DXB7@$B7@(C4@,QD7\!N@[[O__C8;<````BTWT ++MB3B)>`2)>`B-AN@```").(EX!(F^\````(O&7UYDB0T`````R<.+P3/)B0B) ++M2`2)2`B)2`R)2!")2!2)2!B)2!R)2"")2"2)2"B)2"R)2#")2#2)2#B)2#R) ++M2$"(2$2)2$B)2$R)2%")2%3#BT0D!(M,)`B+@)P```")`3/`P@@`BT0D"(,@ ++M`#/`P@@`N`%``(#"%`!5B^R#[!"+10PSR8/H1V:)3?!FB4WRB4WX=%Q(=#B# ++MZ!4/A8H```"+10@XB(H!``!U&#B(BP$``'40.(B,`0``=0@XB(X!``!T9VH! ++MC4WPZ#>V_O_K6XM%"#/2.(B,`0``=`-J`EHXB(T!``!T`X#.`3O1=#SK,8M% ++M"#/2.(B(`0``=0-J`5HXB(H!``!T`X/*`CB(BP$``'0#@\H@.(B.`0``=`.` ++MS@%2C4WPZ/^U_O]6C4WP_W40Z`"W_O^-3?"+\.AGMO[_B\9>R<(,`%6+[(/L ++M)(M5"%-6@_K_5P^$M0```(M!>(M)?(LTD(M$D`2#9>0``\XKQHE-W(U-W(E% ++MX.CL"0``A<")1?0/A(<```"-3=SH4`@``(M-Y(A%"X/@#VH`B47XBT7<7U>- ++M-`%;B7W\=C.+1?QJ"%D/M@0PF8E%\(E5[(O'B]/HA^(``(M-\`O(BT7L"\+_ ++M1?R+V(M%_#M%^(OY<LV+1?@!1>2!_P$'\09U!(7;="?V10L@=`^-3=SH:@D` ++M`(-E[``!1>3_3?0/A7G___\RP%]>6\G"!`"P`>OUBT0D#(,@`(M$)!#'`#X` ++M```SP,(0`(M$)!"#(`"+1"0,@PC_,\#"$`!5B^R+11A65XM]%#/V@WT0`XDW ++MB3"+11R),'5)BTT(BX$L`0``.\9T/(N1)`$``#O6=#*+=0Q3BPRPBT2P!(O9 ++M:=O___]_`\-;T>`]````@',3C0Q*B0^+31B)`8M%',<`40```%\SP%Y=PA@` ++M5HMT)!17B\[H#[7^_X7`#X6T`0``BT0D$(M,)`R+^(N1F````,'G!`/7BWPD ++M%(/_"P^'ZP````^$V0```(/O`P^$P0```(/O`P^$HP```$\/A)4```!/=$I/ ++M=!-/#X5D`0``4(V1I````.E1`0``.X$(`0``C9$$`0``#X-&`0``BQ*`/`(` ++M#X0Z`0``BXD0`0``BP2!9L<&$P")1@CI)`$``(N1=`$``(L4@H/Z_W0HB[EP ++M`0``.027#X4'`0``4H/!0.@%`0``B48(9L<&%0")5@SI[@```(-F"`"#9@P` ++M9L<&%0#IW````(L"BU($Z]>*4@UFQP8+`/;:&])FB58(Z<````!64(/!0.C9 ++M#0``Z;,```!0C9&\````Z9X```"#[PP/A(X```"#[P-T>8/O!'1A3T]T,X/O ++M"`^%A0```('![````#M!!'-ZBQ&`/`(`='*+40R+#,*+1,($B4X(9L<&%0") ++M1@SK6SN!(`$``',1BXD<`0``@#P!`'0%:@%8ZP(SP/;8&\!FQP8+`&:)1@CK ++M,8!Z#@!T*XM2"&;'!A,`B58(ZQZ+D70!``#_-(+HW/S__^O.4(V1U````(O. ++MZ"T````SP%]>PA``BT$PBU0D!(M)"%:+=)`$5XL\D(L$\2L$^8M4\00;5/D$ ++M7U["!`"+1"0$5CM"!',MBS*`/`8`="6+<@R+%,:+1,8$9H-A!`!F@V$&`&;' ++M`4``B5$(B4$,9L=!`A<`7L($`+BWMD(`Z$+<``"![)````!35HMU"%>)9?`S ++MVXL&5HE=_/]0$(M]%,9%_`$[^XE]['0&BP=7_U`$B5T4._O&1?P#=`Z+!XU- ++M%%%H\,1"`%?_$(F=9/___XF=:/___\9%Y`'_=1"-C63____&1?P$B)Z(`0`` ++M_W4,Z.D(```[PXE%$'0[BX5D____QD7\`SO#=`:+"%#_40B+113&1?P".\-T ++M!HL(4/]1"#O[QD7\`70&BP=7_U`(BT40Z<D```"-AI0!``"-C63___]0C8:1 ++M`0``4(V&D`$``%"-1D#_=13&AH@!```!4.A6)P``.\.)11!T.(N%9/___\9% ++M_`,[PW0&BPA0_U$(BT44QD7\`CO#=`:+"%#_40@[^\9%_`%T!HL'5_]0"(M% ++M$.M<_W4,C4XXZ'9)__^+A63____&1?P#.\-T!HL(4/]1"(M%%,9%_`([PW0& ++MBPA0_U$(._O&1?P!=`:+!U?_4`@SP.L:BT4(4(L(_U$0N$:F00##N$:F00## ++MN`X`!X"+3?1?7F2)#0````!;R<(0`+C$MD(`Z*K:``!14U:+=0@SVU>)7?R+ ++M1CB)9?`[PW0)BPA0_U$(B5XXC4Y`Z#<```"-CI0!``"(GI`!``"(GI$!``#H ++M8.+__S/`ZPNXKJ9!`,.X#@`'@(M-]%]>9(D-`````%O)P@0`4U:+\3/;5XB> ++M2`$``(B>20$``(B>2@$``(B>2P$``(B>3`$``(B>3@$``(B>30$``.A/```` ++MC8[X````Z#@!``#_MC`!``"-OC`!``#H@WG^_XD?_[8T`0``C;XT`0``Z'!Y ++M_O]9B1]9B9XX`0``B9Y``0``B9X\`0``B9Y$`0``7UY;PU-65XOQZ'(```"+ ++MAN@```"-GN@````S_SO'=`E0Z"YY_O]9B3N)>P3_MO````"-GO````#H%WG^ ++M_XD[B7Y<C49\B7YHB7YT68EX!(EX$(F^F````(F^I````(F^L````(F^O``` ++M`(F^R````(F^U````(F^X````%]>6\-65XOQ,_^)/O]V".C$>/[_B7X(B7X$ ++MB7X0B7X<_W8DZ+!X_O^)?B3_=BCHI7C^_XE^*/]V+.B:>/[_B7XL_W8PZ(]X ++M_O^)?C#_=C3HA'C^_XE^-/]V..AY>/[_B7XXBT8\@\0<.\=T"E#H9GC^_UF) ++M?CR)?D!?7L,SP(E!"(E!$(E!&(E!((E!#(E!%(E!'(E!)(E!+,.#;"0$!.EN ++M]/__@VPD!`3IT]'__X-L)`0$Z<[T__^+400SP(72=`^+"0/1@#D`=`%`03O* ++M=?7#5HOQ@'X$`'0@BPZ+03B+4`0K4`AT!,9!/`&*1@6+#E#H!@```(!F!`!> ++MP_])!(M!!'09@'PD!`"-!$"-%(&-0OR)03AT!HM*$`%(",($`%:+\>BI____ ++M_W0D$(M,)`R)#O]T)!#HD0```(I$)!3&1@0!B$8%7L(0`(M$)`AJ`/]P!/\P ++M_W0D$.C"____P@@`58OL45.)3?SH8____XM="(M+..B)````A,!T,E97BWT, ++MA?]U!>@I````BTLXZ/@!``"+\#MW!'(%Z!4```"+!XM-_/\TL%/HG?___U]> ++M6\G""`!5B^Q1BD7_:`@60P"(1?^-1?]0Z*/7``!6B_&#?@0$=07HVO___XM& ++M!(T,0$")1@2+1"0(C4R."(E..(OQ@V8(`(D&BT0D#(E&!%[""`!6B_&+1@@[ ++M1@1R!>BB____BTX(BP:*!`%!B4X(7L-65XM\)!"+\87_="6+1@0K1@@[^'8% ++MZ'G___^+1@A7`P90_W0D%.@VUP``@\0,`7X(7U[""`"+5"0(5HOQ5XM\)`PS ++MR8M&!"M&"#O1<@MW!#OX=@7H.____P%^"%]>P@@`5HOQZ`L```!24(O.Z,3_ ++M__]>PU6+[%%35HOQC47\5U"+3@B+5@0KT0,.Z!X```"#??P`B_B+VG4%Z/7^ ++M__^+1?R+TP%&"(O'7UY;R<-5B^R#[!!3B]I65X7;B_$/A)P````/M@9&2ZB` ++MB47X=0Z+30C'`0$```#IB@```(7;='X/M@:9:@%&B47PB57T2U_'1?P(```` ++MN(````"+S]/HBTWXA<%T.87;=%0/M@:+3?R9Z#C9```)1?`)5?2#1?P(1DM' ++M@WW\0'+-BT4(BU7TQP`)````BT7P7UY;R<($`(MU"$B-5P$CP8O/B1;!X0,S ++MTNCXV```"T7P"U7TZ]J+10B#(``SP#/2Z\Y5B^Q1Z`#___^%TG<'/?___W]V ++M%(I%_VA(%D,`B$7_C47_4.B\U0``R<-6B_&+1@B#P`0[1@1V!>CL_?__BTX( ++MBP:+!`&#P02)3@A>PU:+\8M&"(/`"#M&!'8%Z,G]__^+3@B+T8/!"`,6BP*+ ++M4@2)3@A>P[C8MD(`Z$;5``"#[!A35HOQ5XM-"&H@C7Y8B]?HHMG^_X7`#X6" ++M`0``B\_H_`$``(3`=`<SP.EP`0``BUT,A=MT#XL#"T,$=0AJ`5CI6@$``+D@ ++M@```Z#5B``"+^(7_B7WD=16-10AHL.-"`%#'10@!````Z/?4``"#9?P`C498 ++M:B!05^CYU```@V7<`(/$#(-EX`"+1=RZX'\```M%X'0#@\(@A=MT(8L+BT,$ ++M*TW<&T7@,]L[V'((=P0[T78"B]&%T@^$EP```(M%"(-E\`"-7?"+"%-2C5<@ ++M4E#_40R%P'5YBT7PA<!T=HU?`8O+C10#B57HZ,D````[1>B)1>QS.>L#BT7L ++M:A2+^"M]Y%J-2`SHZ=(``(M-[#M!"'1&BT7PC0P[C10#B57HZ),````[1>B) ++M1>QRS(M]Y(M%\&H@`47<@U7@``/'4%?_%6C!0@"+70R#Q`SI./___XOPZT)J ++M`5[K/6H@C49845#H$=0``(/$##/``WW<BTT(:@`31>`!?D!:4E(11D2+1D"+ ++M=D2+.8/`(!/R5E!1_U<0BWWDB_"+S^@780``B\:+3?1?7EMDB0T`````R<(( ++M`(L)Z?U@``!3B\([R'-@BED%@\$&@/LW="^`^WIT%H#[O'04@/NO=!.`^R=T ++M$X#[''03Z]9)ZQ%)2>L-@^D#ZPB#Z03K`X/I!8!Y`;QUO(!Y`J]UMH!Y!!QU ++ML(!Y`R=UJH`Y>G6E@'G_-W6?C4'_6\-6B_&`?@*\=3"`?@.O=2J`?@4<=22` ++M?@0G=1Z`?@%Z=1B`/C=U$VH4C4X,6NBCT0``.T8(7@^4P,,RP%[#5HOQ@V9X ++M`(-F?`#H.````(M,)`B-1DA0C59`Z&36_O^%P'4@_W0D#(O._W0D#.AD_?__ ++MA<!U#?]T)`B+SN@%0?__,\!>P@@`5HOQBP:#9@0`A<!T"8L(4/]1"(,F`(!F ++M/`!>PU:+\8M...B]^___"\)T"HM...B>^___Z^I>P@0`58OL@^PP4U97B_F) ++M?=CHC_S__XO8,_8[WHE=Z`^$30(``(/[0`^'1`(``(M-"%/H"Q\``#O>B77T ++MB77X#X85`0``B77LBT4(BW7LB\\#,.C%^O__J,"(1?\/A10!``"#X`^+R(/Y ++M"(E-W`^'%P$``(M'"(M7!"O0.\H/AP<!```#!S/;(5W4(5WPA<F)1>1V.^L# ++MBT7DBTWP:@@/M@0!F8OX68E]X(OZBU74B\/HU-0``(M-X`OZ"\C_1?"+V8M- ++MW#E-\(E]U'+*BWW8BT<(`\'V1?\0B4<(BT74B1Z)1@1T$XO/Z+G[__^+SXE& ++M$.BO^___ZP?'1A`!````]D7_('0CB\_HF?O__XU>"%"+RXE%W.A`U/[__W7< ++MB\__,^@4^O__ZQ:+1@B%P'0+4.B]</[_@V8(`%F#9@P`BT80@T7L&`%%]/]% ++M^(M%^#M%Z`^"\?[__XM=Z(M%"$M3C7`(B\Z)=>CH8QX``(-E^`"%VW90ZRN* ++M10MH2!9#`(A%"XU%"U#H_]```(I%"VA(%D,`B$4+C44+4.CKT```BW7HBP:+ ++M3?B--,B+S^CU^O__B\^)!NCL^O___T7XB48$.5WX<MJ+=?0[\W,4BD4+:$@6 ++M0P"(10N-10M0Z*K0``"+10@K\U:-6!"+RXE=V.@;'@``@_X!=5`STCE5]'8P ++MBT4(BW`,,\F%]G81BT7HBP`Y$'0+08/`"#O.<O2#R?^%R7P(0CM5]'+<ZP2+ ++M`XD0.U7T=3B*10MH2!9#`(A%"XU%"U#H0M```(-E^`"%]G8<ZP.+7=B+&XO/ ++MZ$CZ__^+3?C_1?@Y=?B)!(MRYE]>6\G"!`"*10MH2!9#`(A%"XU%"U#H`]`` ++M`%6+[(/L#(M!.(M5"(M)/%:+-)"+1)`$_W4,@V7\``/.*\:)3?2-3?2)1?CH ++M3?W__XM%^%XK1?QT%8U%"&BPXT(`4,=%"&@#,P'HM<\``,G""`!35E>+^8M, ++M)!3H)*;^_XN'\````(7`=&6#O^@`````=%R+3"00BQR(BW2(!"OS@?X`0``` ++M<T>+3"04C5;_Z+"D_O^%P'4YBT0D%(7VBT@(BX?H````C1Q8=B-FBP-#0V8] ++M+P!U!6I<6.L+9CU<`'4%N%SP``!FB0%!04YUW3/`7UY;P@@`5HOQBTXXZ$;X ++M__\[1"0(=08[5"0,=!,+PG4%Z%'W__^+3CCH%OC__^O97L((`%6+[%%35E>+ ++M?0B)3?R+7P2-=PQ3B\[HZJO^_XE>!(L&BS\S]H7;=B.)10@SP#@$/G0+BT7\ ++MBT@XZ`?Y__^+30B#10@$1COSB0%RX%]>6\G"!`!6B_'_="0,_W0D#.B1#``` ++M_W0D#(O.Z)/___]>P@@`N.RV0@#H8\X``(/L(%-65XOYBT\XZ(_X__]J`&H) ++MB\^+\.@Z____BT4(C5@(C48!4(O+Z!<<``"+10@SR3OQB4WLB3")3?")30AV ++M.^L#BTT(BP.+5>R)%,B+5?")5,@$BT\XZ$KW__\!1>P15?`Y5?!W#'(%.47L ++M<P7H4_;___]%"#EU"'+'BQN+1>R)!/.+1?")1/,$BT\XZ!3W__^+R`O*=$Z# ++M^`IU/S/`.]!U.8E%U(E%V(E%W(E%X(E%Y(E%Z(E%_(U%U%!6B\_H$?____]U ++MX(--_/_H&FW^__]UU.@2;?[_65GKKHM/..BO]O__ZZ2+3?1?7EMDB0T````` ++MR<($`+@0MT(`Z&#-``"#[%Q35E<S_U>+\6H+Z$+^__^+3CCH@O?__X!EM`"` ++M9;4`B47HB7WD_W4(C4VPB7W\5N@[]?__BT8XBWT,BU@(C4\P`QB+1>B)1P1` ++M4(E=S.@:&P``_W7HC4\TZ#P;``"+1>B-3SA`4.@"&P``BT7HC4\L0%#H]1H` ++M`#/)B4V8B4V<B4V@B4VDB4VHB4VLBT8X.4WHQD7\`HE-T(E%V(E-U`^&_@(` ++M`.L%BUW,,\F+1CB)3<2)3>R+3=B+4`@KTXM=U`,0BT<XB128Z,WV__^%P(E% ++M\`^$:`0``(/X0`^'7P0``(-ER`"%P`^&AP$``(M=V(O+Z!KU__^HP(A%"P^% ++M=@,``(/@#X/X"(E%X`^'>P,``(M#!"M#"#E%X'8%Z*+T__^+2PB+`P/!,\DY ++M3>")1<")3;B)3;R)3=QV.NL#BT7`BTW<:@@/M@0!F8OXBT6XB]J+5;Q9Z"3/ ++M```+^`O:_T7<B7VXBT7<B5V\.T7@<LZ+?0R+7=B+0PB+3>`#P8E#"(%_4(`` ++M``!S#O]UO(U/3/]UN.A&&```]D4+$,=%W`$```!T(XO+Z._U__^#^$")1=P/ ++MA^D"``"+R^C<]?__@_@!#X7M`@``BT7<`47L@WWL0`^'\0(``/9%"R!T;8O+ ++MZ+;U__^+2P2)10@K2P@[P78(Z,WS__^+10B#?;@A=2"#?;P`=1J#^`%U/8M. ++M.(M1"(L)B@P*.$]$<RV(3T3K*(%]N`$!`P!U'X-]O`!U&8/X!744BTXXBU$( ++MBPF+3`H!.4](<P.)3T@!0PC_1<B+1<@[1?`/@I3^__^+1?!J`5D[P746.4WL ++M=1	<0`B4W<Z>H```"+7=CKXXM5[$@[T`^"5P(``(U-F.CE`@``BU7PC4VD ++MZ-H"``"+1?"#90@`2(7`=E&+3CCH[O3__SM%[`^#3P(``(M-F`/!@#@`#X5! ++M`@``Q@`!BTXXZ,ST__^+3?`[P0^#%P(``(M5I`/"@#@`#X4)`@``_T4(Q@`! ++MC4'_.44(<J^+3?"+1>Q)*\&#^`&)1=QT-(-E"`"%P'8LB\OHA?3__SM%[`^# ++M^@$``(M-F`/!@#@`#X7L`0``_T4(Q@`!BT4(.T7<<M0SP#M%\',7BTVD@#P( ++M`'0(0#M%\'+QZP.)1<0[1?`/A,X!``"+3RR+7=2+1>2)!)D#1?"+3=")1>2+ ++M1S")#)B+!RO!.47<=@7H//+__XM%W(I-Q`%%T(M'-(@,&$,[7>B)7=0/@@3] ++M__^+1CB+3RR+5>2+6`@K7<P#&(M%U,'@`E.)%`B+3S"+5=")%`B+3CB+40@K ++M5<P#$8M/.(D4"(U//.AOS/[_A=MT#U/_=<S_=SSHH,D``(/$#/]UI.CL:/[_ ++M_W68Z.1H_O^#3?S_65F-3;#HS_#__S/;B\Y3:@SH-?K___]UY(U/*.@8%P`` ++M.5WD=AB+3CCH;O+__XM/*(D$V4,[7>2)5-G\<NB+3CCH5O+__XO("\H/A`H! ++M``"#^`H/A?0```"%T@^%[````(U'#(O.4/]UZ.A<^O__Z\V*10]H2!9#`(A% ++M#XU%#U#H\L@``(I%#VA(%D,`B$4/C44/4.C>R```BD4/:$@60P"(10^-10]0 ++MZ,K(``"*10]H2!9#`(A%#XU%#U#HML@``(I%#VA(%D,`B$4/C44/4.BBR``` ++MBD4/:$@60P"(10^-10]0Z([(``"*10]H2!9#`(A%#XU%#U#H>L@``(I%#VA( ++M%D,`B$4/C44/4.AFR```BD4/:$@60P"(10^-10]0Z%+(``"*10]H2!9#`(A% ++M#XU%#U#H/L@``(I%#VA(%D,`B$4/C44/4.@JR```BTXXZ#3Q___IY/[__XM- ++M]%]>6V2)#0````#)P@@`4XO:5HOQ4^B6K___B5X$BS:%VW86B\M7B]$SP(O^ ++MP>D"\ZN+RH/A`_.J7UY;P^D[[___N"2W0@#HK\<``(/L-%-6BW4(5XO9_W8$ ++MC7XDB\^)7?#HHQ4``#/`.48$=@^+#\<$@0$```!`.T8$<O&+2SCHN_#__X/X ++M#8E%W(E5X'4A,_\[UW4;.7X$=N*+2SCHE/'__XM.)(D$N4<[?@1R[.O,BWT, ++M@_@*=02%TG09@_@)=02%TG0AB\@+RG0*BTLXZ%GP___KIX/X"0^%_0```(72 ++M#X7U````@V4(`(-^!``/AM<```"+10B+3B3!X`*)10R+!`B%P`^$L0```(-E ++MY`"#9>@`@_@!=DY(B47LZP.+7?"+2SCH%O#__XO/B474B]KH;_C^_XM'!(L7 ++MC4@!B4\$BTW4`4WDB0S"B5S"!!%=Z#E=Z'<,<@4Y3>1S!>C^[O___TWL=;B+ ++M5C2+70B+3BR+1B@/MA0:BUT,`Q0+BPS0B4W,BUS0!#M=Z'<,<@4[3>1S!>C( ++M[O__B\_H!OC^_XM'!(L7C4@!B4\$BTW,*TWD&UWHB0S"B5S"!(M=\/]%"(M% ++M"#M&!`^"*?___XM+..AL[___B47<B57@ZW4SVSE>!(E="'9KBT8DB\O!X0*) ++M30R+!`&#^`&)1>AV".A?[O__BTT,@WWH`74^BU8TBT8H#[8<&HM6+`,<$8O+ ++MB5T,BQS(BT3(!(O/B470Z'7W_O^+1P2+5="-2`&)3P2+#XD<P8M="(E4P01# ++M.UX$B5T(<I4SP#E&!(E%['8BBU8DBPR"@_D!=0X[1A!S"8M>#(`\`P!U`P%- ++M[$`[1@1RX8M%W(M=$`M%X`^$#P$``(-]W`H/A>$````SP#E%X`^%U@```(E% ++MP(E%Q(E%R(M-\(E%_(U%P%#_=>SH5`,``/]W!(O+Z%P!```SP#E&!(E%#(E% ++M$(E%"`^&C@```(M6)(O(P>$"BQ01@_H!B57H=2X[1A!S*8M6#(`\`@!T'8L# ++MBU4,Q@00`8M&&(M3#(L$"(M-#/]%#(D$BNM`BU7HA=)V/(E5Z(M%$(M-P(M5 ++M#/]%$(H,"(L#B`P0,\"$R70+BT7PBT@XZ!KO__^+2PR+50S_10S_3>B)!)%U ++MRHM%"$`[1@2)10@/@G+_____=<"#3?S_Z!!D_O]9ZPN+1?"+2#CHJ^W__XM% ++M\(M(..BS[?__B47<"\*)5>`/A?'^__^+?P0Y>P1T;E>+R^AW````,](SP#E6 ++M!(E5"'9:BWXDB\K!X0*+/`^#_P&)?0QU)CM6$',ABWX,@#P7`'08BQ/&!`(! ++MBU88BWL,BPP*BU4(B0R'0.L8BTT,A<EV$8L[@"0'`(M[#(,DAP!`277O0CM6 ++M!(E5"'*FBTWT7UY;9(D-`````,G"#`!65XM\)`R+\5?H@:O__XE^!(/&#%>+ ++MSNCDH/[_B7X$7U["!`!5B^R#[!!35E>+^8M/..CG[/__BW40@_@&B47XB57\ ++M=6:%TG5BBT\XZ,WL__^+70R)`XO"B5,$.T=4<@YW!XL#.T=0=@7HT.O__U:+ ++MS^CV]/__BP:+3@B-%,&+3U`K"XM'5!M#!(M:!#O8<@UW!HL".\%V!>BAZ___ ++MBT\XZ'GL__^)1?B)5?R#??@'=1^#??P`=1E6B\__=0CHK?7__XM/..A4[/__ ++MB47XB57\@WX$`'0;@WX(`(U>"'42:@&+R^C3$```BP.#(`"#8`0`@WWX"'4A ++M@WW\`'4;_W48B\__=116Z!7[__^+3SCH"^S__XE5_.M5_W8$C4XDZ,40```S ++MVSE>!'9`BWT4BT8D4XO.QP28`0```.@_````B\^)1?")5?3H-_3^_XM'!(M5 ++M\$.-2`&)3P2+#XD4P8M5](E4P00[7@1RPXM%^`M%_%]>6W0%Z,3J___)PA0` ++MBT0D!(M1+%:+<32+%(*+22@/MC0&`]9>BP31BU31!,($`%6+[%%35HMU#%>+ ++M?0B)3?Q7B\[HUZG__S+`,LDSVXE^!(LVA?]V((3)=0V+1?R+2#CHMNK__[&` ++MA,@/E<*(%#/0Z4,[WW+@7UY;R<((`%-6B_&+3CCHDNK__X3`=1'_="00B\[_ ++M="00Z)/____K,HM<)`R+="004XO.Z'"I__^)7@2+-H7;=AF+RU>+T;@!`0$! ++MB_[!Z0+SJXO*@^$#\ZI?7EO""`"X.+="`.B)P0``@^P,4XM=$%97BWT,B4WP ++M5U/HB/___X!E[`"`9>T`_W4(@V7\`(U-Z/]U\.AKZ?__C7<,4XO.Z*#F_O^# ++M90P`B5X$BS:+/X7;=B>+30PSTC/`.!0Y=`N+1?"+2#CHL>O___]%#(D&B58$ ++M@\8(.5T,<MF#3?S_C4WHZ([H__^+3?1?7EMDB0T`````R<(,`+AZMT(`Z/'` ++M``"![.P```!35E>+^8V-9/___^BVW___,]N)7?R)7=2)7=B)7=R-3;S&1?P! ++MZ*C-__^-3<C&1?P"Z)S-__^-1;R+SU"-1=10C85D____4,9%_`/_=1!3Z.+\ ++M__^*AX````"-C0C___]0Z#R\__\S]CF=:/___\9%_`2)=>P/AAP!``#K`XMU ++M[(M-%.C&#@``B\B+19B)3>0/MA0PBT60`Q2PBT6,BS30._:+1-`$#X54`0`` ++M.]@/A4P!``!6Z"+#_O^-3>CH\`X``(M%Y%-3:@&+"(M%Z%/&1?P%_W4DB4@( ++MC4WSB5@0_W4@B7`,BP>(7?/_=1S_=1A14U.-C63_____=>A3_W7L48M-$(L1 ++MBTD$`U4($TT,45)0C8T(____Z(:\__\[PXE%X`^%[````#A=\W0$QD<\`8M% ++MZ#MP$'0%Z!+H__^+1>P[A73___]S+XN-</___S@<`70DBY5\____BTWDBPF- ++M!(*+UHE%Y.@OO@``BTWD.P%T!>C8Y___BT7HQD7\!%"+"/]1"/]%[(M%[#N% ++M:/___P^"YO[__XN%;/___SO#=!.+C63___^+%,B+1,@$`5=X$4=\C8T(____ ++MQD7\`^B&V?___W7(Z*E>_O__=;SHH5[^__]UU.B97O[_@TW\_X/$#(V-9/__ ++M_^B+W/__,\"+3?1?7EMDB0T`````R<(@`(I%$VA(%D,`B$43C4434.CWO@`` ++MBT7HQD7\!%"+"/]1"(V-"/___\9%_`/H&=G___]UR.@\7O[__W6\Z#1>_O__ ++M==3H+%[^_X--_/^#Q`R-C63____H'MS__XM%X.N0N-VW0@#H@KX``('LD``` ++M`%-6B_%7BTXXZ+3G__^+?0B#^`*)1>R)5?!U)#/;.]-U((V'^````(O.4.C* ++MZ___BTXXZ(KG__^)1>R)5?#K`C/;B5W<B5W@B5WD@WWL`XE=_'5K.5WP=6;_ ++M=1B-1=R-GQ@!``"+SO]U%/]U$/]U#%!3_[<,`0``_[<(`0``Z/_\__^%P(E% ++M"'04@TW\_XU-W.AY#```BT4(Z<,%``"+AP@!``"+CPP!```!`Q%+!(M...@+ ++MY___B47LB57P,]N)792)79B)79R)G63___^)G6C___^)G6S___^-C7#____& ++M1?P"Z'O*__^#?>P$QD7\`W5$.5WP=3^-A63___^-GQ`!``!0C4644%>-1=Q3 ++M4(O.Z++Y__^+AP@!``"+CPP!```!`Q%+!(M...B3YO__B47LB57P,]N#?>P% ++M#X70!```.5WP#X7'!```BTXXZ&?G__^-GR`!``")10B+R^C%[O[_BT,$C4@! ++MB4L$BPO'!,$)````@V3!!`"+R^BG[O[_BT,$C4@!B4L$BPO'!,$&````@V3! ++M!`"#?0@`=B@SP#F%:/___W0@B\OH>>[^_XM#!(U(`8E+!(L+QP3!"@```(-D ++MP00`,\")1:")1:2)1:B)1:R)1;")1;2)1;B)1;R)1<#&1?P&B440BTXXZ-'E ++M__^+3CB)1<0+PHE5R`^$IP(``.B[Y?__BTXXB47,B570BT$$*T$(,\D[T7(, ++M=P4Y1<QV!>BZY/__@&6``(!E@0"+1CAJ`?]US,9%_`>+2`@#"%%6C8U\____ ++MZ`#D__^#?<@`#X<=`@``<@V!?<0```!`#X<.`@``BT7$@\#R@_@+#X?_`0`` ++M_R2%!<E!`(!EB`"`98D`C47<C4V$4%;&1?P(Z/GC__^+1CB-C^@```"+4`0K ++M4`A2B57HZ,"^_O__=>B+A^@```"+3CA0Z([D__^+10B-C_````!`4.B\"0`` ++M,\`Y10B)11B)10QV78M%Z(M5&(N/Z````"O"T>B-#!''110`````=!!F@SD` ++M=`K_111!03E%%'+P.444=07HS^/__XM5&(N'\````(M-#-'JB12(BT48BU44 ++M03M-"(E-#(U$4`*)11ARHXM-&(N'\````(M5#-'IB0R0BT7H.448=`3&1CP! ++MQD7\!XU-A.L_C8?$````B\Y0_W4(Z"'Y__^`99``@&61`(U%W(U-C%!6QD7\ ++M">@%X___C8?$````B\Y0Z`?L___&1?P'C4V,Z%OB__^+R^A\[/[_BT,$BU7$ ++MC4@!B4L$BPN)%,&+5<B)5,$$Z;T```"-1:"+SE#_=0CH;OC__XU-H.@(XO__ ++M@V6P`(-EO`")11#KN8U%K.L#C46X4(O._W40Z$;X___KI/]U"(V'K````.L9 ++M_W4(C4=DZQ'_=0B-1WSK"?]U"(V'E````%"-1=Q0B\[HNOC__^EO____,\`Y ++M1=")1=2)1=AR0W<%.47,=CR+3CCHW^+__X3`=`3&1CP!@T74`8-5V`"+1=@[ ++M1=!RX'<:BT74.T7,<M;K$,:'30$```&+1CB+2`2)2`B+1CB+2`0K2`AT!>A- ++MXO__C8U\____QD7\!NA;X?__Z4#]___H%./__XE%[(M%""M%$(E5\#M%F'04 ++MBD4+:$@60P"(10N-10M0Z,JY``"#91@`@V44`(U-N.@#X?__A<")1>AT%O]U ++M"(V?W````(O+Z#FA__^+10B)0P3_=0B-7UB+R^AK"```BT4(B4,$,]N%P(E= ++M#`^&T@```"%=$(M'6(M5&`-%$(-@"``[7:1S"(M-H(H,"^L",LF$R754($@- ++MBUT4QD`,`8M-E#+2C0S9BQF)&(M=%(M)!(E(!#N=:/___W,0BXUD____.!0+ ++M=`5J`5GK`C/)A,F(2`YT#(N-</___XL,F8E("/]%%(M=#.L[@&`,`#M5L',( ++MBTVLB@P*ZP(RR83)#Y3!B$@-.U6\<PN+3;B+51B*%`KK`C+2@R``_T48@V`$ ++M`(!@#@"#?>@`=`F+A]P```"(%!B#11`00SM="(E=#`^",?____]UN.@,6/[_ ++M_W6LZ`18_O__=:#&1?P#Z/A7_O^#Q`R+S^B*````BT7L"T7P=0N+=CB+1@0K ++M1@AT!\:'30$```'_M7#____HR5?^__^U9/___^B^5_[__W64Z+97_O^#3?S_ ++M@\0,C4W<Z+`&```SP(M-]%]>6V2)#0````#)PA0`6\9!`'[&00"#QD$`$,5! ++M`)[&00"FQD$`KL9!`//%00`(QT$`",=!`)/&00#(QD$`58OL@^P,4U:+\5?_ ++M=@2-CC`!``#HT04``/]V7(V.-`$``.C#!0``,\`S_S/;.49<B47X#X:!```` ++MB47TBTY8BU7T@'P*#``/E$7_.47X=3*`??\`=`R+CC0!``"##)G_ZT$[?@1R ++M!^C4W___,\"+CC`!``")'+F+3B0Y!+EU`T?KX(N.-`$``(!]_P")/)EU$O]% ++M^(M.)(M5^#L4N7($1XE%^(-%]!!#.UY<<H\Y1?AT"$?&ADH!```!.WX$<QN+ ++MCC`!``")'+F+3B0Y!+ET!\:&2@$```%'Z^!?7EO)P[@`N$(`Z/*V``"#["Q3 ++M5E>+?0B+\8O/Z)3<__^+1D")AP`!``"+1D2)AP0!``"*3EZ-A_@```"("(I. ++M7X`X`(B/^0````^%"P$``(M.:(M&9(E-Z(M.<(M>;(M61(E-V(M.=(E-"(M. ++M0(/!(&H@B8\(`0``68/2`("G2`$```")CT`!``"#IT0!````@WWH`(E%Y(E= ++MU(F7#`$```^,M````'\(A<`/@JH```"+5=B!^@```$`/AYL```!R"(7;#X>1 ++M````B4YX@V9\`(O+"\IU*`M%Z'5_@WT(`'5YQH=(`0```8M&>(F'.`$``(M& ++M?(F'/`$``#/`ZU^`OTP!````=0?&AT@!```!`5YXBTWHB490B4Y4$59\`]@3 ++MT8O#@\`@B\J#T0")AT`!``")CT0!``"+3D@KCP@!``"+1DP;APP!```[PG<A ++M<@0[RW,;QH=+`0```6H!6(M-]%]>6V2)#0````#)PA0`BP9J`&H!_W7HBPC_ ++M=>10_U$0A<!UV8M=U#O;=04[1=AT![@.``>`Z\:#9>P`@V7P`(7;=`U3Z*Q4 ++M_O]9B47LB5WPBPZ+5>R#9?P`4^BTN?[_A<!T!XO8Z1P!``"+3>R+T^C<LP`` ++M.T4(=`7HA]W__X"_3`$```!U!\:'20$```&`9>``@&7A`(U%[(U-W%!6QD7\ ++M`>CTW/__,]N)7<B)7<R)7="+3CC&1?P"Z"?>__^#^`%U!#O3='B#^!=U!#O3 ++M=`7H,-W___]U&(U%R(O._W44_W40_W4,4(V'&`$``%#_MPP!``#_MP@!``#H ++MIO/__SO#=6DY7<QT9H-]S`%V!>CRW/__C4W<Z`?<__^+1<B-3=S_,%;H<MS_ ++M_XM...BTW?__@_@!=00[TW0%Z,;<____=1C&AT@!```!BT9XB\[_=12)AS@! ++M``"+1GS_=1")ASP!``#_=0Q7Z*CU__^+V(U-R,9%_`'HN`(``(!E_`"-3=SH ++MG-O___]U[.B;4_[_68O#Z6?^__^X#+A"`.@`M```45%35E>+?0B)9?#_=1B# ++M9?P`B_'_=13_=1#_=0Q7Z.'\__^`?CP`=`?&ATH!```!/0%``(!U-XI%"VA( ++M%D,`B$7OC47O4.C5LP``BT4(QH!.`0```;A[S4$`PXM%",:`2@$```&X>\U! ++M`,-J`5B+3?1?7F2)#0````!;R<(4`%6+[%%35HMQ!#/;A?97B4W\=#*+$8T$ ++M'M'HBSS"BTS"!#E]"'4%.4T,="@Y30QW"W(%.7T(<P2+\.L#C5@!.]YUTXM- ++M_/]U#/]U"%;H!H+__XO&7UY;R<((`+@BN$(`Z!VS``!14U>+?0B+V3M[!'1F ++M5C/VA?]T3+ZJJJH*._YW`HOWC01VC03%!````%#H0U+^_UF)1?"#9?P`A<!T ++M'VA[CT$`:`#000"->`16:AA7B3#H]K,``(OWBWT(ZP(S]H--_/^+"X7)=`=J ++M`^ARP/__B3.)>P1>BTWT7UMDB0T`````R<($`%97BWPD#(OQ.WX$="Q3,]N% ++M_W07N/___Q\[^'<"B\?!X`-0Z,=1_O]9B]C_-NCQ4?[_68D>B7X$6U]>P@0` ++M5E>+?"0,B_$[?@1T+%,SVX7_=!>X____/SOX=P*+Q\'@`E#HB5'^_UF+V/\V ++MZ+-1_O]9B1Z)?@1;7U["!`!6B_'_-NB=4?[_@R8`N/___Q\Y1"0,67<$BT0D ++M",'@`U#H35'^_UF)!E["!`!6B_'_-NAP4?[_@R8`N/___S\Y1"0,67<$BT0D ++M",'@`E#H(%'^_UF)!E["!`!6B_'_-NA#4?[_BT0D#(,F`(/X_UEV`X/(_U#H ++M^5#^_UF)!E["!`!6B_'H_$S^_VH(Z.-0_O^%P%ET"8,@`(-@!`#K`C/`BTX$ ++MC5$!B58$BQ9>B02*PU97B_F+=P2%]G0?4XL'3HL<L(7;=`__,^C:4/[_4^C4 ++M4/[_65F%]G7C6_\WZ,90_O]97U[#5HOQ:A3HA%#^_X7`670,@V`$`,<`O,U" ++M`.L",\")!HL(4/]1!(O&7L.+P8-@"`"#8`P`PU6+[%:+\5>+?0B#9@0`.WX( ++M=D:!_____W]V%8U%"&BPXT(`4,=%".4'``#H];```/\VZ%=0_O^#)@"#9@@` ++MN/___P]9._AW`HO'P>`$4.@'4/[_68D&B7X(7UY=P@0`N#:X0@#HG+```%%H ++MJ`$``.CF3_[_68O(B4WP,\`[R(E%_'0%Z"'+__^+3?1DB0T`````R</I```` ++M`/X-4#%#`+G`UD(`Z=SZ_O_,S,S,S,S,S,S,S,R+P597O@4```"-4"@S_XEZ ++MV(EZ[,<"```$`(/"!$YU[E]>PY"0D)"0D)"0D)"0D)!65XOQOP4```"+#NC` ++M/```@\8$3W7S7U[#D)"0D)"0D(I4)`13,]M5A-(/E<-6@\,$5[T`````=$N+ ++M\8M^*(/G_(/_!',%OP0```"+#H7)=!0[?A1T)H7)=`OH<3P``,<&`````(O/ ++MQT84`````.@]/```A<!T%HD&B7X418/&!#OK<K=?7ETSP%O"!`!?7EVX#@`' ++M@%O"!`"0D)"0D)"05HOQQP9`UT(`QT8$!-5"`,=&"##70@#'1@S\RD(`C4X8 ++MQT80`````.@#____QH;8`@```,<&(-="`,=&!!#70@#'1@@`UT(`QT8,[-9" ++M`(O&7L.0D)"0D)"0D)"0D)"0BU0D#(M$)`A35E>Y!````+\0X$(`B_`SV\<" ++M`````/.G=16+1"007XD"7HM($%M!B4@0,\#"#`"Y!````+]`PT(`B_`SV_.G ++M=16+1"007XD"7HM($%M!B4@0,\#"#`"Y!````+^PPT(`B_`SV_.G=1R+1"00 ++MA<!T<(U(!%^)"HM($$%>B4@0,\!;P@P`N00```"_P,-"`(OP,]OSIW4<BT0D ++M$(7`=$*-2`A?B0J+2!!!7HE($#/`6\(,`(OPN00```"_,,1"`#/`\Z=U+XM$ ++M)!"%P'04C4@,7XD*BT@005Z)2!`SP%O"#``SR5^)"HM($$%>B4@0,\!;P@P` ++M7UZX`D``@%O"#`"0D)"0D)"0D)!6BW0D"(M&$$B)1A!U%H7V=!"+SN@7```` ++M5NAZ3?[_@\0$,\!>P@0`D)"0D)"0D)"%R70%@\$8ZP(SR>FP_?__BT0D!(M4 ++M)`B+3"0,B4R0-#/`P@P`D)"0D)"0D)"0D)"+1"0$BTPD#(E(1#/`P@P`BT0D ++M"(M,)`2%P`^5P(B!U`(``#/`P@@`D)"0D)"0D)!35E>-46"-@9````"[!``` ++M`#/_B[!P____@\((B7#PB3")>*R)>+R)>OB)>OR#P`1+=>!?7H'!@````%OI ++MGSL``)"0D)"0D)"0D)"0D)"0D%%35597B_F+MZ@```"+!+>+K+>`````B82W ++M@````(F$MY````"+7+=,A=MV#2OHB\N*%"B($$!)=?>+1+<\A<`/A;T```"+ ++M1+<4BVPD&(U4)!`KPXM-`%*+%+>)1"044(O#`\)05?]1#(M,)!")1+<\A<ET ++M4XM4]V`#T8E4]V"+5/=D@](``]F%P(E4]V1U.(/[!',SC4[_@_D"<RN+1+<4 ++MBU4`C4PD$"O#48L,MXE$)!10B\,#P5!5_U(,BTPD$(E$MSR%R76MA=MT-XU. ++M_X/Y`G,HB\.#X`.#^P2)1+=,<QB+1+<\A<!U&<=$MSP!````7UY=6UG"!``K ++MV`&<MY````!?7EU;6<($`)"0D)"0BT0D$(/L((/X!%-55E</A2(#``"#?"1, ++M`0^%%P,``(MT)#1J`8U^&(O/Z/'[__^%P`^%!`,``(O/Z&+^__^+1B@S[3/_ ++MC8Z8````B8:X````B8:\````,]N);"0DB7PD$(E\)!2)?"1`B7PD3.A..@`` ++MA<`/A50!``#K`C/_BX;`````@_@$<SN+3"0XBQ2!C4X84NA7_O__BX;````` ++MBY2&J````(M,AE0[5(88#X0D`0``.\]T=CE\)$QU<(E,)$SK:HM6*(N&N``` ++M`"O"=!P#V%"+1"1($^^+"(EL)"CHT*_^_SO'#X5.`@``BT0D2(M^/(7`=!V+ ++M`(7`=!>+"(M`!"O+&\4STCO0<@AW!#OY=@*+^8M&*(F&N`````/'A?^)AKP` ++M```/A*X```"+1"10A<`/A($```"+AK@```"+3BB+?"00*\$SR0/#B]`3S2O7 ++MB_D;?"04B7PD+'4(@?H````!<E2+EK0```"+KJ0````KU8NND````#/_*^J+ ++MEI0```")1"00&]<#Z(M$)%")3"04$]&);"08BPB)5"0<C50D$%*-5"0<4E#_ ++M40R%P`^%A`$``(ML)"2-CI@```#H^C@``(7`#X2N_O__QT0D0`$```#K!(E, ++M)$"+5BB+AK@````KPG09`]A0BT0D2(/5`(L(Z+NN_O^%P`^%.0$``(M$)$"% ++MP'4,BT0D3(7`B40D0'0.BT0D0%]>75N#Q"#"(`"*AM@"``"$P`^$^````(N& ++MT````(7`=`]?7EVX`0```%N#Q"#"(`"+AL````"%P'04@_@(=`]?7EVX`0`` ++M`%N#Q"#"(`"+1"1(A<!T(HL`A<!T'(L(.\MU!XM0!#O5=`]?7EVX`0```%N# ++MQ"#"(`"+1"0\A<!T4+I@````N(````"+3"0\BVP!@(7M="R+3#`HBUPP&(M\ ++M,.0KRP/YBTPR&#/;*\^+?#(<&_N+70`[V76NBTT$.\]UIX/""(/`!('Z@``` ++M`'*ZBU0D.+\!````@<:`````C5H$BP:+3@0+P748BP.-5"1$4HU4)%2+"&H` ++M4E#_40R%P'4=1X/&"(/#!(/_`W+37UY=,\!;@\0@PB``N%<`!X!?7EU;@\0@ ++MPB``D)"0D)"0D)"0D)"+1"0$BTPD"%97BY2(H````(N\B)````"+=(A<*]>+ ++M?,APBTS(=(M$)!0#UC/V*_H;SHDXB4@$7S/`7L(,`)"0@VPD!`3I9OG__\S, ++MS,S,S(-L)`0$Z08;``#,S,S,S,R#;"0$!.E6^O__S,S,S,S,@VPD!`CI-OG_ ++M_\S,S,S,S(-L)`0(Z=8:``#,S,S,S,R#;"0$".DF^O__S,S,S,S,@VPD!`SI ++M!OG__\S,S,S,S(-L)`0,Z:8:``#,S,S,S,R#;"0$#.GV^?__S,S,S,S,:O]H ++M2[A"`&2A`````%!DB24`````46C@`@``Z#5'_O^#Q`2)1"0`A<#'1"0,```` ++M`'06B\CH1OC__XM,)`1DB0T`````@\00PXM,)`0SP&2)#0````"#Q!##D)"0 ++MD)"0Z0L```"0D)"0D)"0D)"0D+E0UT(`Z3.-_O^0D)"0D)"+1"0$,\F)2`B) ++M2`PSP,($`)"0D)"0D)"0D)"0D)"0D%:+="0(BU0D$%>+3@B+?"00C48,4%&+ ++MS_]6$(M.""O'`\A?B4X(7L(,`)"0D)"0D&H4Z'Y&_O\SR8/$!#O!=!>)2`2) ++M2`B)2`S'0!!P%T(`QP"<UT(`PS/`PY"0D)"0D(M$)`2+2`1!B4@$B\'"!`"+ ++M3"0$BT$$2(E!!'4+4>AF1O[_@\0$,\#"!`"0D)"0D.D+````D)"0D)"0D)"0 ++MD)"Y>-="`.ECC/[_D)"0D)"0BT0D!,=`"``````SP,($`(M4)`Q6BW0D"%>+ ++M?"00BT8(B\]0_U8,BTX(*\<#R%^)3@A>P@P`D)"0D)"0D)"0D(M$)`2+2!") ++M2`PSP,($`)"+5"0,5HMT)`A7BWPD$(M&#(O/4/]6&(M.#"O'`\A?B4X,7L(, ++M`)"0D)"0D)"0D)"+3"0,BU0D!#/`A<ET(H/Y!'0(N`%``(#"#`"+1"0(BTH0 ++MBP"%R'0(N`%``(#"#`")0@PSP,(,`)"0D)"0D)"0:A#H/D7^_S/)@\0$.\%T ++M%(E(!(E(",=`##`40@#'`,#80@##,\##D)"0D)"0D)"0BU0D#(M$)`A35E>Y ++M!````+\0X$(`B_`SV\<"`````/.G=!*+\+D$````OV#$0@`SP/.G=16+1"00 ++M7XD"7HM(!%M!B4@$,\#"#`!?7K@"0`"`6\(,`)"0D)"0D)"0D)"0:A#HKD3^ ++M_S/)@\0$.\%T%(E(!(E(",=`#'`50@#'`,#80@##,\##D)"0D)"0D)"0:A#H ++M?D3^_S/)@\0$.\%T%(E(!(E(",=`#.`30@#'`,#80@##,\##D)"0D)"0D)"0 ++M:A#H3D3^_S/)@\0$.\%T%(E(!(E(",=`#-`40@#'`,#80@##,\##D)"0D)"0 ++MD)"0:A#H'D3^_S/)@\0$.\%T%(E(!(E(",=`#(`40@#'`,#80@##,\##D)"0 ++MD)"0D)"0Z0L```"0D)"0D)"0D)"0D%:^L-="`(O.Z#"*_O^#QB"!_E#80@!R ++M[E[#D)"0D)"0:ASHOD/^_S/)@\0$.\%T+,=`!,C*0@")2`B)2`R)2!#'0!0# ++M````QT`8,!-"`,<`Y-A"`,=`!-380@##,\##D(M4)`R+1"0(4U97N00```"_ ++M$.!"`(OP,]O'`@````#SIW45BT0D$%^)`EZ+2`A;08E("#/`P@P`N00```"_ ++M8,1"`(OP,]OSIW45BT0D$%^)`EZ+2`A;08E("#/`P@P`B_"Y!````+]PPT(` ++M,\#SIW4OBT0D$(7`=!2-2`1?B0J+2`A!7HE("#/`6\(,`#/)7XD*BT@(05Z) ++M2`@SP%O"#`!?7K@"0`"`6\(,`)"0D)"0Z0L```"0D)"0D)"0D)"0D+E0V$(` ++MZ1.)_O^0D)"0D)!J'.BN0O[_,\F#Q`0[P70LQT`$R,I"`(E("(E(#(E($,=` ++M%`$```#'0!@0%D(`QP#DV$(`QT`$U-A"`,,SP,.0Z0L```"0D)"0D)"0D)"0 ++MD+EPV$(`Z;.(_O^0D)"0D)!6B_&+3AC'!N340@#'1@30U$(`QT8(P-1"`,=& ++M#+#40@#'1A"@U$(`Z(,O``"+=AR%]G0&BP96_U`(7L.0D)"0,\#""`"0D)"0 ++MD)"0D)"0D(/L$%.+7"0855:+0QA7A<!U(+D```(`Z"0O``"%P(E#&'4/7UY= ++MN`X`!X!;@\00PA@`C6L@QT4``````,=%!`````"+3"0TQT0D$````@"%R70H ++MBP&+=0"+202+500KQAO*B4PD''43/0```@!S#(7`B40D$`^$%`$``#/_BW0D ++M$(M$)"B-3"04*_>+$%&+SU8#2QC'1"0<`````%%0_U(,BTPD%(E$)!@[S@^' ++MSP````/YA<!U#(7)=`B!_P```@!RNH7_#X3&````BTPD+(7)=%TSVXM4)"R- ++M3"0448M,)"B+`HOWB],K\P-1&%;'1"0<`````%*+5"0X4O]0#(M,)!0[SG=Y ++MBU4``]D#T8E5`(MU!(/6`(7`B74$=7.%R71>.]]RKXM<)"2+1"08ZQ&+50`# ++MUXE5`(M-!(/1`(E-!(7`=4R!_P```@!U0HM$)#B%P`^$ZO[__XM%`#/))?__ ++M/P`+P0^%V/[__XM$)#A555"+"/]1#(7`=1;IP_[__U]>7;@%0`"`6X/$$,(8 ++M`#/`7UY=6X/$$,(8`)"0D)"05HMT)`A7BWPD$(7_=`:+!U?_4`2+1AB%P'0& ++MBPA0_U$(B7X8QT8<`````,=&(`````!?,\!>P@@`D)"0D)"0D%:+="0(BT88 ++MA<!T#8L(4/]1",=&&``````SP%["!`"048U4)`!6BW0D#%*+5"08QT0D"``` ++M``"+1A12BU0D&(L(4E#_40R+5AB+3"0$`]&)5AB+5AR#T@")5AR+5"08A=)> ++M=`*)"EG"$`"0D)"0D)"+1"0$BTPD"(M0$(D1BT`4B4$$,\#""`"0D)"0D)"0 ++MD&HHZ(X__O\SR8/$!#O!=$['0`14RT(`QT`(1,M"`,=`#`350@#'0!#TU$(` ++MB4@4B4@8B4@<B4@@B4@DQP#DU$(`QT`$T-1"`,=`",#40@#'0`RPU$(`QT`0 ++MH-1"`,,SP,.0D)"0D)"0D)"0D)"0D)#I"P```)"0D)"0D)"0D)"0N?C80@#I ++M8X7^_Y"0D)"0D(M$)`2-2!#H9#<``#/`P@0`D)"0D)"0D)"0D)"0D)"0BT0D ++M"%:+="005E"+1"00BU`,C4@0Z%8W``"+QE["#`"#?"0,`70(N%<`!X#"#`"+ ++M3"0(BU0D!#/`B@%`B4((,\#"#`"0D)"0D)"0D)"0D)!H$`$``.B+/O[_@\0$ ++MA<!T(\=`!,C*0@#'0`@`````QT`,`0```,<`6-E"`,=`!$C90@##,\##D)"0 ++MD)"0D)"0BTPD!(M!"$B)00AU"U'H=C[^_X/$!#/`P@0`D)"0D)#I"P```)"0 ++MD)"0D)"0D)"0N2#90@#I<X3^_Y"0D)"0D(-L)`0$Z8;Z___,S,S,S,R#;"0$ ++M!.GV(```S,S,S,S,@VPD!`3IEO___\S,S,S,S(O!N@``$``SR<=`!,C*0@#' ++M0`@$U4(`QT`,]-1"`,=`$/S*0@#'0!3PV4(`QT`8X-E"`(E('(E0.(E0/+H! ++M````B4@HQT!(````0(E(((E(+,9`,/^)2#2)4$")4$2)2$S'`-#90@#'0`3` ++MV4(`QT`(L-E"`,=`#*#90@#'0!",V4(`QT`4?-E"`,=`&&S90@##D)"0D)"0 ++MD)"0D)"0D)"+5"0,BT0D"%-65[D$````OQ#@0@"+\#/;QP(`````\Z=U%8M$ ++M)!!?B0)>BT@<6T&)2!PSP,(,`+D$````OS##0@"+\#/;\Z=U%8M$)!!?B0)> ++MBT@<6T&)2!PSP,(,`+D$````OW##0@"+\#/;\Z=U((M$)!"%P`^$`@$``(U( ++M!%^)"HM('$%>B4@<,\!;P@P`N00```"_L,-"`(OP,]OSIW4@BT0D$(7`#X30 ++M````C4@(7XD*BT@<05Z)2!PSP%O"#`"Y!````+^0PT(`B_`SV_.G=2"+1"00 ++MA<`/A)X```"-2`Q?B0J+2!Q!7HE('#/`6\(,`+D$````OS#$0@"+\#/;\Z=U ++M'(M$)!"%P'1PC4@07XD*BT@<05Z)2!PSP%O"#`"Y!````+^@PT(`B_`SV_.G ++M=1R+1"00A<!T0HU(%%^)"HM('$%>B4@<,\!;P@P`B_"Y!````+_0PT(`,\#S ++MIW4OBT0D$(7`=!2-2!A?B0J+2!Q!7HE('#/`6\(,`#/)7XD*BT@<05Z)2!PS ++MP%O"#`!?7K@"0`"`6\(,`)"0D(M$)`2+2!Q!B4@<B\'"!`!6BW0D"(M&'$B) ++M1AQU%H7V=!"+SN@7````5NBJ._[_@\0$,\!>P@0`D)"0D)"0D)#'`=#90@#' ++M003`V4(`QT$(L-E"`,=!#*#90@#'01",V4(`QT$4?-E"`,=!&&S90@"+22"% ++MR70%Z00\``##D)"0BT0D!(M,)`R)2"@SP,(,`(M$)`2+3"0,B4@L,\#"#`"# ++M?"0,`70(N`%``(#"#`"+1"0(B@`\*'8(N`%``(#"#`"+3"0$B$$L,\#"#`"0 ++MD)"+3"0(,\"%R8M,)`0/E<")02PSP,((`)"0D)"0D)"0D(/L8%-55HMT)'`S ++MVU>+1B")7B@[PXE>+'4ENB#<0@"Y&-Q"`.BW.@``.\.)1B!U#U]>7;@.``>` ++M6X/$8,(8`(U,)"CH:#H``(M./(M&.(E,)"R+3D")1"0HBT9$.\O'1"0P`0`` ++M`(E$)'0/A)0```"#^`$/@HL```"*1C"+7DB+;DP\*'4%@\C_ZQ,E_P```(O( ++M@^`!T>F#P0L,`M/@B\CH:P$``(O(,__!Z00#R#O`=5`[^G5,.\AR2(M4)#2) ++M1"0X`\)7B4PD0(V$"````0!055/H.)P``#/).\IR#'<&.40D='8$B40D=(M$ ++M)'2%P'4(QT0D=`$```"+3"1TB4PD,#/;BU0D>(U,)%A2Z,:"_O^-3"1`BT0D ++M?%#H*8/^_XU,)!R+O"2(````5^A*@O[_BTY`C50D'/??&_^)3"00(_J-1"00 ++M5XU,)!A0BT8TC50D8%&+C"20````4E"-5"1448M.((U$)$!2BE8P4(E<)#2) ++M7"0XZ-5#``"+R(-\)#`!=@>+5"00B59`BWPD%(M$)"2+;"08B7XH.\.);BQU ++M98M$)$@[PW5=BT0D8#O#=`6#^0AT4#O+=4<Y7C1T0HN4)(`````[TW02BP([ ++MQW4'BU($.]5T!;D!````BX0DA````#O#=!J+$(MT)%`[UG4+BT`$BU0D5#O" ++M=`6Y`0```.@:@?[_7UY=6X/$8,(8`%97B_$S_[D"````B\:+U^A<G```A=)W ++M&W('/0``$`!S"0D)"0D(M$)`2+3"0(BU`<B1&+0"") ++M000SP,((`)"0D)"0D)"0BT0D!(M,)`B)2#`SP,((`(M$)`2+3"0(BU0D#(E( ++M,(E0-#/`P@P`D)"0D)"0D)"0@VPD!`3IIOK__\S,S,S,S(-L)`0$Z3;\___, ++MS,S,S,R#;"0$!.DV_/__S,S,S,S,@VPD!`CI=OK__\S,S,S,S(-L)`0(Z0;\ ++M___,S,S,S,R#;"0$".D&_/__S,S,S,S,@VPD!`SI1OK__\S,S,S,S(-L)`0, ++MZ=;[___,S,S,S,R#;"0$#.G6^___S,S,S,S,@VPD!!#I%OK__\S,S,S,S(-L ++M)`00Z:;[___,S,S,S,R#;"0$$.FF^___S,S,S,S,@VPD!!3IYOG__\S,S,S, ++MS(-L)`04Z7;[___,S,S,S,R#;"0$%.EV^___S,S,S,S,@VPD!!CIMOG__\S, ++MS,S,S(-L)`08Z4;[___,S,S,S,R#;"0$&.E&^___S,S,S,S,:O]H:[A"`&2A ++M`````%!DB24`````46I0Z+@V_O^#Q`2)1"0`A<#'1"0,`````'06B\CHN?C_ ++M_XM,)`1DB0T`````@\00PXM,)`0SP&2)#0````"#Q!##D)"0D)"0D)"0Z0L` ++M``"0D)"0D)"0D)"0D+D`VD(`Z;-\_O^0D)"0D)"+P;H``!``,\G'0`3(RD(` ++MQT`(!-5"`,=`#/340@#'0!#\RD(`B4@4B4A`B$@8B$@9B$@:B5`<B4@@B5`D ++MB4@HB4@TQP!LVD(`QT`$7-I"`,=`"$S:0@#'0`P\VD(`QT`0*-I"`(E(1(E( ++M,(E(+(E(8(E(6,.0D)"0D)"0D)"0D(M4)`R+1"0(4U97N00```"_$.!"`(OP ++M,]O'`@````#SIW45BT0D$%^)`EZ+2!1;08E(%#/`P@P`N00```"_,,-"`(OP ++M,]OSIW45BT0D$%^)`EZ+2!1;08E(%#/`P@P`N00```"_<,-"`(OP,]OSIW4@ ++MBT0D$(7`#X2>````C4@$7XD*BT@405Z)2!0SP%O"#`"Y!````+^PPT(`B_`S ++MV_.G=1R+1"00A<!T<(U("%^)"HM(%$%>B4@4,\!;P@P`N00```"_D,-"`(OP ++M,]OSIW4<BT0D$(7`=$*-2`Q?B0J+2!1!7HE(%#/`6\(,`(OPN00```"_,,1" ++M`#/`\Z=U+XM$)!"%P'04C4@07XD*BT@405Z)2!0SP%O"#``SR5^)"HM(%$%> ++MB4@4,\!;P@P`7UZX`D``@%O"#`"0D)"0D)"0BT0D!(M(%$&)2!2+P<($`%:+ ++M="0(BT842(E&%'46A?9T$(O.Z!<```!6Z)HT_O^#Q`0SP%["!`"0D)"0D)"0 ++MD%:+\;HPW$(`C4Y0QP9LVD(`QT8$7-I"`,=&"$S:0@#'1@P\VD(`QT80*-I" ++M`.B>7P``BTXT7NE%(0``D)"0D)"+1"0$BTPD#(E(%#/`P@P`BT0D!(M,)`R) ++M2`PSP,(,`%:+\8M.-(7)=`J+1B2+5B`[PG0HZ`<A``"+3B3'1B``````Z-@@ ++M``"%P(E&-'4'N`X`!X!>PXM.)(E.(#/`7L.+1"0,BU0D"%:+="0(:##<0@!0 ++MC4Y,Z&5@``"+R.@>````A<!U#(U._,9&%0'HCO___U["#`"0D)"0D)"0D)"0 ++M@_D%=R+_)(T@[4$`,\##N`X`!X##N%<`!X##N`%``(##N`$```##N`5``(## ++MC4D`_.Q!`!'M00#_[$$`%^U!``OM00`%[4$`D)"0D)"0D)"+5"0$4S/;.].) ++M63@/E<`ZPXA!&HE9/'0+BP*)03B+4@2)43R)64B)64R)62B#P5#H"UD``%O" ++M!`"0D)"0D)"0BTPD!#/`B4%`B4%$B4$PB4$LBT0D"%#HI/___S/`P@@`D)"0 ++MD)"0D)"0D)"0D)"0BT0D"(M,)`2%P`^5P(A!$#/`P@@`D)"0D)"0D)"0D)"+ ++M1"0$BTPD"(M0-(D1BT`XB4$$,\#""`"0D)"0D)"0D(/L+%-55HOQ5XM&-(7` ++M#X2!`@``BD89A,`/A'8"``"+1D"+3D2+7FB)1"0LB4PD,(E<)!C'1"04```` ++M`(U^2(M6+(M.,(U&,#O1=2R+3"04A<EU)(M,)$#'``````!0BT8@4(M&-,=& ++M+`````"+$5!1_U(,B40D%(M&9(M.'(MN:(O0*],[T78#C009*\7'1"0@```` ++M`(O0BD8:A,")5"0H=#2+1CB+3DB+7DR-?D@KP8M./!O+,]L[V7(;=P0[T'(5 ++MB]"*1AB$P(E4)"AT",=$)"`!````BT8LBTXP*\B+7C2)3"0DC4PD'%&+3"0D ++M48U,)"P#PU%0`]6-3E#HKE<``(M4)!R+7BR+3D")5BB+5"0DB40D(`/:`\J) ++M7BR)3D"+1D2+3FB[`````!/#B49$B\$KQ8LO`^B)+XMO!!/K.%X:B6\$=!^+ ++M7DR+;CR-?D@[W7(2=PF+'XMN.#O=<@?&1"02`>L%QD0D$@"+7"0@A=MU:H72 ++M=02%P'1BBVPD'(/]`719BE0D$H32=`6#_0-U3(M4)"C&1"03`#O"<D:+1"08 ++MBU9@*\@#T%&+3"1(Z`&6_O^+3FB+5F0[RG4'QT9H`````(M>:(7`B5PD&`^% ++MQ@```(I$)!.$P'5+ZPO&1"03`>NZBUPD&(M$)$B%P`^$2O[__XM60(ML)"R+ ++M3D2+?"0P*]4;SXU^2(E,)#B-3"0TB50D-(L05U%0_U(,A<!U>.D8_O__BT0D ++M((7`=6:+1"0<@_@!=3:*1AB$P'0ABD8:A,!T&HM6.(M.2(U&2(/&.#O1=3^+ ++M3@2+4`0[RG4UBT0D%%]>75N#Q"S"#`"*3"02A,ET'X/X`W0:BDX8A,ET!8/X ++M!'4.BT0D%%]>75N#Q"S"#`"X`0```%]>75N#Q"S"#`"0D)"0D)"0D)"0D)!6 ++MBW0D"(M&-(7`=0FX5P`'@%["&`"+1"084%;HP/S__XM,)!R+5"00BT0D#%%2 ++M4(O.Z!K]__^%P'4KBDX8A,ET)(M4)!2%TG0<C4Y`BS)7BSD[]U]U"HM2!(MQ ++M!#O6=`6X`0```%["&`"0D)"0D)"0@VPD!`3I=OG__\S,S,S,S(-L)`0$Z:;Z ++M___,S,S,S,R#;"0$!.FF^O__S,S,S,S,@VPD!`CI1OG__\S,S,S,S(-L)`0( ++MZ7;Z___,S,S,S,R#;"0$".EV^O__S,S,S,S,@VPD!`SI%OG__\S,S,S,S(-L ++M)`0,Z4;Z___,S,S,S,R#;"0$#.E&^O__S,S,S,S,@VPD!!#IYOC__\S,S,S, ++MS(-L)`00Z1;Z___,S,S,S,R#;"0$$.D6^O__S,S,S,S,:O]HB[A"`&2A```` ++M`%!DB24`````46BX````Z'4N_O^#Q`2)1"0`A<#'1"0,`````'06B\CH!OC_ ++M_XM,)`1DB0T`````@\00PXM,)`0SP&2)#0````"#Q!##D)"0D)"0Z0L```"0 ++MD)"0D)"0D)"0D+F`VD(`Z7-T_O^0D)"0D)!6B_&+3A3'!MC:0@#'1@3(VD(` ++MQT8(N-I"`,=&#*C:0@#H2AL``+HHW$(`C4Y`Z.UM``"-3ACHNW?^_U[#D)"0 ++MBU0D#(M$)`A35E>Y!````+\0X$(`B_`SV\<"`````/.G=16+1"007XD"7HM( ++M$%M!B4@0,\#"#`"Y!````+\PPT(`B_`SV_.G=16+1"007XD"7HM($%M!B4@0 ++M,\#"#`"Y!````+]PPT(`B_`SV_.G=1R+1"00A<!T<(U(!%^)"HM($$%>B4@0 ++M,\!;P@P`N00```"_L,-"`(OP,]OSIW4<BT0D$(7`=$*-2`A?B0J+2!!!7HE( ++M$#/`6\(,`(OPN00```"_D,-"`#/`\Z=U+XM$)!"%P'04C4@,7XD*BT@005Z) ++M2!`SP%O"#``SR5^)"HM($$%>B4@0,\!;P@P`7UZX`D``@%O"#`"0D)"0D)"0 ++MD)"+1"0$BT@008E($(O!P@0`5HMT)`B+1A!(B480=1:%]G00B\[HA_[__U;H ++MRBS^_X/$!#/`7L($`)"0D)"0D)"0BT0D#%:#^`57<PI?N%<`!X!>P@P`BTPD ++M$(M\)`R*`8B'/$H``(MQ`3P"<DX\0'=*@?X`"```<D*#_MMW/6@``!``C4\4 ++MZ"UV_O^$P'4*7[@.``>`7L(,`&@HW$(`B]:-3SSH26P``/?8&\!?)?+_^']> ++M!0X`!X#"#`!?N`%``(!>P@P`D)"0D)"0D)"0D)"05HOQ5S/_BX9$2@``.\</ ++MA<(!``"+ADA*```KQW06@^@"#X23`0``2'5Y7[@!````7L((`(M&)(E^,(V. ++MB````(E&'(E&((E^-,9&.`")?CSH*WD``(7`#X1D`0``BD8XA,!T)8M&/,>& ++M2$H```,````[QP^%5P$``+@!````7XF&1$H``%[""``STHU.0(J60$H``,>& ++M2$H```$```#H37```(J&0DH``%.$P%5T,(N.4$H``(N>6$H``(N&5$H``(N6 ++M7$H``"O+BUPD&!O",]([T'(.=P0[V78(B]GK!(M<)!B+;"04,\`#W8O].^MT ++M&HU.0.C7>```BDXXA,EU"X7`?`>(!T<[^W7FBYY82@``BDXX*_U=`]^)GEA* ++M``"+EEQ*``"#T@!;A,F)EEQ*``!T)8M&/,>&2$H```,```"%P`^%B````+@! ++M````7XF&1$H``%[""`"%P'Q%BHY!2@``A,ET-(J.0DH``(3)="J+CE!*``"+ ++MEEA*```[RG4:BY942@``BXY<2@``.]%U"HN.C````(7)=0=?,\!>P@@`@_C_ ++M=1N+AHP```"%P'41QX9(2@```@```%\SP%[""`#'ADA*```#````N`$```") ++MAD1*``!?7L((`)"0D)"0@^P04U56BW0D(%>+1A2%P'4@N0```0#H-!<``(7` ++MB484=0]?7EVX#@`'@%N#Q!#"&`"+3"0TBT0D*%%6B48LZ$P!``"+1A2+EEQ* ++M``"+GEA*``"-OEA*``!H```!`%"+SHE4)"3HMOW__XM6%(OHBP>+3"0L*\-0 ++MZ-B._O^%P`^%``$``(7M#X6H````@[Y(2@```@^$IP```(M$)#B%P'0PBTX< ++MBU8DBVXPBUXT*\HST@/-5Q/3B4PD%(L(B50D&(U4)!124/]1#(7`#X6S```` ++MBH9"2@``A,!T&XM'!(N.5$H``#O!=UAR#(L/BX902@``.\AS2HM&%(M7!(L? ++M:````0!0B\Z)5"0DZ!#]__^+5A2+Z(L'BTPD+"O#4.@RCO[_A<`/A%K___]? ++M7EU;@\00PA@`7XO%7EU;@\00PA@`BH9!2@``A,!T.(M4)#"%TG0PBT8<BTXD ++MBVXPBUXTBS(KP3/)`\43RSOP=0>+4@0[T70/7UY=N`$```!;@\00PA@`,\!? ++M7EU;@\00PA@`D(M4)`B+1"0$4S/;.],/E<$ZRXB(0DH``'01BPJ)B%!*``"+ ++M4@2)D%1*``")F%A*``")F%Q*``")F$A*``")F$1*```SP%O""`"0D)"0D)"0 ++MBT0D"(M,)`2%P`^5P(B!.4H``#/`P@@`D)"0D)"0D)"+1"0$5HM($(M0&(MP ++M)"O*,](#SHMP*(M$)`P3UEZ)"(E0!#/`P@@`D)"0D)"0D)"#;"0$!.D&^O__ ++MS,S,S,S,@VPD!`3I%OO__\S,S,S,S(-L)`0(Z>;Y___,S,S,S,R#;"0$".GV ++M^O__S,S,S,S,@VPD!`SIQOG__\S,S,S,S(-L)`0,Z=;Z___,S,S,S,Q35FA@ ++M2@``Z'DG_O^+\#/;@\0$._-T9\<&$-M"`%?'1@3(RD(`QT8(!-5"`(U^&,=& ++M#/340@")7A"+SXE>%.C'<?[_C4Y`B)Y!2@``B)Y"2@``QP;8VD(`QT8$R-I" ++M`,=&"+C:0@#'1@RHVD(`Z#YF``")OI0```"+QE]>6\->,\!;PY"0D)"0D)"0 ++MD)"0D)#I"P```)"0D)"0D)"0D)"0N>C:0@#I,VW^_Y"0D)"0D%-5BVPD#(O1 ++M5E>+2@2+100[R'55BP*+=0`[QG5,A<EV'8O]OOC___\K^HU"""ORBA@Z'`=U ++M,T"-'`8[V7+QBTH<BT4<.\AU(87)=0E?7EVP`5O"!`"+<AB+?1@STO.F7UY= ++M6P^4P,($`%]>73+`6\($`)"0D)"0D)"0D)"0D)"0@^P<4XO955:+"U>#^3]U ++M:HM+!#/`A<EV$(I,`PB(3`,@BTL$0#O!<O"+2QPS]H7)=AR#^"`/@Y4!``"+ ++M4QA`B@PR1HA,&!^+2QP[\7+D@_@@#X-Y`0``N2````"-?!@@*\@SP(O1P>D" ++M\ZN+RH/A`_.J7UY=6X/$',.#^09V!;D&````BU,<N`$```#3X(M+!(UL$0B+ ++MS8E$)!@/K\B)3"0DC8QI@````(E,)"CHCA,``(O0A=*)5"00=1>-1"08:+#C ++M0@!0QT0D(`$```#H388``(M+!('"@````(O!C7,(B_K!Z0+SI8O(@^$#\Z2+ ++M2QR+>P2+<QB+P0/ZP>D"\Z6+R(/A`_.DC7PJ^#/)B]>)?"0@B0J)2@2+3"00 ++MZ,Z0``"+1"00BTPD&(/Y`8VP@````(ET)!R+QG8N28E,)!3K!(MT)!R+S0/% ++MB]&+^,'I`O.EB\J#X0/SI(M,)!1)B4PD%'7=BWPD((L+N`$```#3X#/VB40D ++M((M4)!B+QHO/`_*)`4`#S3O&<O>+3"00BT0D)%"-D8````#HH9```#MT)"!R ++MTXMT)!"-4R"+SNA-CP``BTPD*#/`B]&+_L'I`O.KB\J#X0/SJHO.Z*`2``!? ++M7EU;@\0<PY"0D)"0D)"04XO953/MBT,(5H7`5W8>BWPD%(M#!(O/BS2H5NA_ ++M_?__A,!U$8M#"$4[Z'+F7UY=,L!;P@0`N>#___\K]XU'("O/BA0&B!!`C10! ++M@_H@<O*%[70ABT,$C0RM`````%%0BS0(@\`$4/\5:,%"`(M#!(/$#(DP7UY= ++ML`%;P@0`D)!3BUPD"%:+\5<S_XM&"(7`=AJ+1@2+RXL$N%#H`/W__X3`=1:+ ++M1@A'._ARYE.+SN@\````7UY;P@0`A?]T]HM&!(T,O0````!14(L\"(/`!%#_ ++M%6C!0@"+3@2#Q`R).5]>6\($`)"0D)"0D)"0D)"05HOQBT8(BPX[P7(FBU8$ ++MB\A7BWR*_(7_=!"+S^@O````5^B2(_[_@\0$BT8(7TB)1@B+1"0(C4X$4&H` ++MZ.\+``!>P@0`D)"0D)"0D)"0D)"+T5>+2AR%R705BWH85HOQ,\#!Z0+SJXO. ++M7H/A`_.JC4H(,\#'`@````#'0@0`````B0&->B")002)00B)00RY"````/.K ++MBU(84N@:(_[_@\0$7\.0D)"0D)"0D)"0D)#H"P```.DV````D)"0D)"0:B"Y ++MN#1#`.@$````PY"0D(O!BTPD!(D(,\F)2`2)2`B)2`S"!`"0D)"0D)"0D)"0 ++M:.#]00#HH88``%G#D)"0D+FX-$,`Z08```"0D)"0D)!358OIBUT(A=MT9E97 ++MBT4$2XLTF(7V=%.+3AR%R703BWX8B]$SP,'I`O.KB\J#X0/SJHU."#/`QP8` ++M````QT8$`````(D!C7X@B4$$B4$(B4$,N0@```#SJXM6&%+H1R+^_U;H02+^ ++M_X/$"(7;=9Y?7HM%!%#H+R+^_X/$!%U;P^@+````Z18```"0D)"0D)"YR#1# ++M`.EV=P``D)"0D)"0:*#^00#HX84``%G#D)"0D&C(-$,`_Q4XP$(`PY"0D)"+ ++MP3/2,\G'`!````")2`2)2`B)2`R)2"B)2"R)2!")2!2)4!B)4!R)4"")4"2) ++M2&")2%")2%2)2%B)2%S#D)"0:O]HJ+A"`&2A`````%!DB24`````4597B_EH ++MR#1#`,=$)`S(-$,`_Q5`P$(`C7<0B\]6QT0D&`````#HP/S__X3`=2935KFX ++M-$,`Z+#\__^*V(3;=0>+SNC#^O__5HO/Z(O]__^$VUMU"U:YN#1#`.@+_?__ ++M:,@T0P#_%43`0@"+3"0,7UYDB0T`````@\00PY"0D)"0D)"0D)"0D)"0D&K_ ++M:-.X0@!DH0````!09(DE`````(/L"%-6B_$SVU>)="0,QP:$VT(`QT8$[,I" ++M`(U.#(E>".CE_O__B5YPQT9TR,I"`&HTB5PD(,<&;-M"`,=&!%S;0@#'1G1, ++MVT(`Z'$@_O^+^(/$!(E\)!`[^\9$)!P!="=J((O/Z)$+``#'!S3;0@#'1P0@ ++MVT(`QT<<X'="`*$4AD,`B4<8ZP(S_SO[B%PD''0&BP]7_U$$BT9P.\-T!HL0 ++M4/]2"(M,)!2)?G"+QE]>6V2)#0````"#Q!3#D)"0D)"0D)"0D)"0D)"0:O]H ++M![E"`&2A`````%!DB24`````45.+V5565XE<)!#'`ZC;0@#'0P28VT(`BT-P ++M,_8[QHET)!QT!HL(4/]1"#O>=`6#PPSK`C/;BTLL.\YT$XM[*(O1,\#!Z0+S ++MJXO*@^$#\ZJ-2Q@SP(ES$(ES%(D!C7LPB4$$B4$(B4$,N0@```#SJXM3*%+H ++MFQ_^_XMK"(/$!#ON=&*+0P1-BS2HA?9T4XM.'(7)=!.+?AB+T3/`P>D"\ZN+ ++MRH/A`_.JC4X(,\#'!@````#'1@0`````B0&-?B")002)00B)00RY"````/.K ++MBU884N@\'_[_5N@V'_[_@\0(A>UUGHM#!%#H)A_^_XM,)!B#Q`1DB0T````` ++M7UY=6X/$$,.0D)"0D)"05HOQZ-C^___V1"0(`70)5NCT'O[_@\0$B\9>P@0` ++MD)!3B]E55HM++#/V.\Y7=!.+>RB+T3/`P>D"\ZN+RH/A`_.JC4L8,\")<Q") ++M<Q2)`8U[,(E!!(E!"(E!#+D(````\ZN+4RA2Z)X>_O^+:PB#Q`0[[G1BBT,$ ++M38LTJ(7V=%.+3AR%R703BWX8B]$SP,'I`O.KB\J#X0/SJHU."#/`QP8````` ++MQT8$`````(D!C7X@B4$$B4$(B4$,N0@```#SJXM6&%+H/Q[^_U;H.1[^_X/$ ++M"(7M=9Z+0P10Z"D>_O^#Q`1?7EU;PY"0D)"0D)"0BU0D#(M$)`A35E>Y!``` ++M`+\0X$(`B_`SV\<"`````/.G=16+1"007XD"7HM("%M!B4@(,\#"#`"Y!``` ++M`+]@Q$(`B_`SV_.G=16+1"007XD"7HM("%M!B4@(,\#"#`"Y!````+^PQ$(` ++MB_`SV_.G=1R+1"00A<!T0HU(!%^)"HM("$%>B4@(,\!;P@P`B_"Y!````+]P ++MPT(`,\#SIW4OBT0D$(7`=!2-2'1?B0J+2`A!7HE("#/`6\(,`#/)7XD*BT@( ++M05Z)2`@SP%O"#`!?7K@"0`"`6\(,`)"0D)"0D)"+1"0$BT@(08E("(O!P@0` ++MBTPD!(M!"$B)00AU#87)=`>+`6H!_U`4,\#"!`"0D)"+5"0,BT0D"%-65[D$ ++M````OQ#@0@"+\#/;QP(`````\Z=U%8M$)!!?B0)>BT@(6T&)2`@SP,(,`+D$ ++M````OV#$0@"+\#/;\Z=U%8M$)!!?B0)>BT@(6T&)2`@SP,(,`(OPN00```"_ ++MD,1"`#/`\Z=U+XM$)!"%P'04C4@$7XD*BT@(05Z)2`@SP%O"#``SR5^)"HM( ++M"$%>B4@(,\!;P@P`7UZX`D``@%O"#`"0D)"0D,<!U-M"`,=!!,#;0@"+22#I ++M*PH``)"0D)"0D)"0D)"05HOQZ-C____V1"0(`70)5N@D'/[_@\0$B\9>P@0` ++MD)!6B_'H&````/9$)`@!=`E6Z`0<_O^#Q`2+QE["!`"0D&K_:$>Y0@!DH0`` ++M``!09(DE`````%%3B]E55E>)7"00QP.HVT(`QT,$F-M"`(M#<#/V.\:)="0< ++M=`:+"%#_40@[WG0%@\,,ZP(SVXM++#O.=!.+>RB+T3/`P>D"\ZN+RH/A`_.J ++MC4L8,\")<Q")<Q2)`8U[,(E!!(E!"(E!#+D(````\ZN+4RA2Z&L;_O^+:PB# ++MQ`0[[G1BBT,$38LTJ(7V=%.+3AR%R703BWX8B]$SP,'I`O.KB\J#X0/SJHU. ++M"#/`QP8`````QT8$`````(D!C7X@B4$$B4$(B4$,N0@```#SJXM6&%+H#!O^ ++M_U;H!AO^_X/$"(7M=9Z+0P10Z/8:_O^+3"08@\0$9(D-`````%]>75N#Q!## ++MD)"0D)"0D%.+7"0(,\DSP(E+J(E+K(E#L#/2B4.T58E#N%:)0[R-0^B)2_A7 ++MB1")4`2)4`B)4`R+1"0<.\$/A*\```"+="08B@Z+T8/B/_;!P(E3J'412%_W ++MV!O`7ETE5P`'@%O"#`"#^`%W#%]>7;A7``>`6\(,`#/2BE8!B_J+T<'I!L'J ++M!XOO@^$!@^</@^(!P>T$`\\#U8OIC4PJ`CO!=`Q?7EVX5P`'@%O"#`"#Q@(S ++M_X72B5.L=@R*!D:(1#NP1SOZ<O0SP(7M=@R*#D:(3`/H0#O%<O2+6ZB#^QAV ++M$8/[/W0,7UY=N`%``(!;P@P`7UY=,\!;P@P`D)"0D)"0D)"0D)!5B^QJ_VA@ ++MN4(`9*$`````4&2))0````!14XM="%8S]HM+-%<[SHEE\(EU_'03BWLPB]$S ++MP,'I`O.KB\J#X0/SJHM]$(M#-#OX="F+0S`[QG0,4.B!&?[_@\0$B7,P._Z) ++M<S1T*5?H.AG^_X/$!(E#,(E[-#O^=!:+=0R+SXM[,(O!P>D"\Z6+R(/A`_.D ++M,\"+3?1DB0T`````7UY;B^5=P@P`N&D'0@##BTWT7UZX#@`'@&2)#0````!; ++MB^5=P@P`D)"0D)"0D)"0D)"0D)"058OL:O]H>+E"`&2A`````%!DB24````` ++M45-6BW4(5S/;B67PC4X,B5W\Z#'W__^)70B+1G"-50A2:)#$0@"+"%#&1?P! ++M_Q&+^#O[="F+10B(7?P[PP^$E@```(L(4/]1"(O'BTWT9(D-`````%]>6XOE ++M7<($`(M%"#O#=1BX!4``@(M-]&2)#0````!?7EN+Y5W"!`"+$(U./&H@45#_ ++M4@R+^#O[="6+10B(7?P[PW0&BQ!0_U((B\>+3?1DB0T`````7UY;B^5=P@0` ++MBT4(C59<:A!2BPA0_U$0B_@[^W0EBT4(B%W\.\-T!HL(4/]1"(O'BTWT9(D- ++M`````%]>6XOE7<($`(MV<%:+%O]2#(OPBT4(.\.(7?QT!HL(4/]1"(O&BTWT ++M9(D-`````%]>6XOE7<($`+C,"$(`PXM-]%]>N`X`!X!DB0T`````6XOE7<($ ++M`)"0D)"0D)"0D)"0D(M$)`2+5"0,4HM4)`R+0'!24(L(_U$0P@P`D)"0D)"0 ++M9*$`````:O]HF[E"`%!DB24`````@^P(4U6+Z597BTT(BT4$.\%U?H'Y____ ++M?W(7C40D+&BPXT(`4,=$)#3E!P``Z-EW``"+P;K___]_P>@"*]%`.\)V`HO" ++MC30!N/___S^!_O___S^)="00=P*+QHT,A0````!1Z-@6_O^+302#Q`2%R8O8 ++M=`N+=0"+^_.EBW0D$(M%`%#H[!;^_X/$!(E=`(EU"&I`Z*@6_O^+V(/$!(E< ++M)!0SP#O8B40D('1TBW0D+(L6B1.+3@2-5@B)2P2-2PB+.HDYBWH$B7D$BWH( ++MB7D(BU(,B5$,B4,8B4,<BWX<._B)?"00="I7Z%06_O^+SXE#&(MV&(OXB\&# ++MQ`3!Z0+SI8O(@^$#\Z2+="0LB\B)2QR#QB"->R"Y"````/.EZP(SVXMT)"B+ ++M?02+10"+UL'B'BO6C0RP`]?!X@)2C52P!%%2_Q5HP4(`BT4`BTPD)(/$#(D< ++ML(M%!$!?B44$7EU;9(D-`````(/$%,((`)"0D)"0D)"0D)"0D)"0D(-L)`0$ ++MZ=;W___,S,S,S,R#;"0$=.G&]___S,S,S,S,@VPD!'3IEOC__\S,S,S,S(-L ++M)`1TZ9;X___,S,S,S,R#;"0$!.FF^/__S,S,S,S,@VPD!`3I=OC__\S,S,S, ++MS&K_:+NY0@!DH0````!09(DE`````%%J>.A(%?[_@\0$B40D`(7`QT0D#``` ++M``!T%HO(Z%GT__^+3"0$9(D-`````(/$$,.+3"0$,\!DB0T`````@\00PY"0 ++MD)"0D)"0D.D+````D)"0D)"0D)"0D)"Y\-M"`.E#6_[_D)"0D)"0Z0L```"0 ++MD)"0D)"0D)"0D.E;<@``D)"0D)"0D)"0D)"+1"0$5HOQN3`!``#'!H3;0@#' ++M1@38RD(`QT8(`````,9&#`")1A#'1B``````Z'T"``"%P(E&('47C4PD"&BP ++MXT(`4<=$)!`!````Z#]U``"-1B0STL<&U-M"`,=&!,#;0@")$(E0!(E0"(E0 ++M#(O&7L($`)"0D)"0D)"0D)"0D%:+="0(BTX@C58DQT84`````.@Y;```BD8, ++M7O;8&\`E_[__?P4!0`"`P@0`D)"0D(M$)`16BD@,A,EU!C/`7L(,`(MT)!"# ++M_A!S#8O&7O?8&\"#X!#"#`"+5"0,BT@@P>X$5O]0&(O&7L'@!,(,`)"+1"0, ++M5J@'=3&#^!!R+(/X('<GBW0D"(M.#(7)=`0[P748BTX<BU0D#%"#P1#_5AC& ++M1@@!,\!>P@P`N%<`!X!>P@P`D)"0D)"0D)"0D)"0D(-\)`P0=`BX5P`'@,(, ++M`(M$)`2+3"0(5HLQC5`@@\#\B3*+<010B7($BW$(B7((BTD,B4H,Z`;___\S ++MP%["#`!35597BWPD%(LWB]J+Z<<'`````(7V="B-1"044(M%`(O3B\V)="08 ++M_]"+3"04`0\#V2OQA<!U"H7)=`2%]G78,\!?7EU;P@0`S,S,S,S,S(7)=0,S ++MP,-1Z%-V``"#Q`3#S,S,S,S,S,S,S,S,S,S,4>A`=@``6</,S,S,S,S,S(7) ++M=0,SP,-J!&@`$```46H`_Q4LP$(`P\S,S,S,S,S,A<ET#F@`@```:@!1_Q4H ++MP$(`P\S,S,S,S,S,S,S,S,R%TG4#,\##4NCC=0``@\0$P\S,S,S,S,S,S,S, ++MS,S,S%+HT'4``%G#S,S,S,S,S,R%TG4#,\##:@1H`!```%)J`/\5+,!"`,/, ++MS,S,S,S,S(72=`YH`(```&H`4O\5*,!"`,/,S,S,S,S,S,S,S,S,C8&````` ++M.\%S`S/`PX7`=/E0Z&EU``"+R(/$!(7)=.J-@8````"#X(")2/S#S,S,A<ET ++M"HM!_%#H274``%G#S(V"@````#O"<P,SP,.%P'3Y4.@I=0``B\B#Q`2%R73J ++MC8&`````@^"`B4C\P\S,S(72=`J+0OQ0Z`EU``!9P\Q65XOYBT\,O@$```#3 ++MYH/^!',%O@0```"+1Q`[QG(%7S/`7L.#X`-3B]B-!#,#PCO"<@^+3PB+T(L! ++M_]"+R(7)=09;7S/`7L.+5Q"+P2O"`\,#QD[WUB/&`\);B]"#XOQ?B4K\7L/, ++MS,S,S,S,S,S,A=)T#HM)"(M!!(/B_(M2_/_@P\S,S,S,S,S,S,S,S,S'`=`. ++M0@#'001`#T(`P\S,,\")02R)03")032)03BX``0```^WT%>+PL=!*`,```"- ++M>3S!XA"Y@0````O"\ZM?P\S,S,S,S,S,S,S,S,S,S(M!,%-55HMQ-+L%```` ++M5SOS=TR+43C'02@)````=#20BWDT@_\!=0B%T@^%D@```(MQ##MQ'`^$D``` ++M``^V+L'B"$<+U4:)<0R)43B)>30[^W7-@_K_=&K'033_____BU$HC7+_@_X" ++M<R>+!)$[1)$0#X3Y`@``C7`$B321BP"+42R#P@0/R"O"B5$LN@0```"-<OR# ++M_@1S1XMQ(#MQ)'04B`9&0HEQ((/Z"'0SP>@(.W$D=>Q?7EV)03")42@SP%O# ++M7UY=N`$```!;PU]>7<=!*`,````SP%O#C9L`````BU$T@?H````!<R2+<0P[ ++M<1P/A.T!``#!X@B)430/MCZ+43C!X@@+UT:)43B)<0R+.8MQ((M9$(M1)"O? ++M*]8[TW("B].#XOR-+!<[_0^$O@````^V%\'@&(@6"\*#PAA&]L+^#X2=```` ++MC:0D`````(V0@/__\/?"\/___P^$A`````^V5P'!X!B(%@O"@\(81O;"_G1P ++MC9"`___P]\+P____=&(/ME<"P>`8B!8+PH/"&$;VPOYT3HV0@/__\/?"\/__ ++M_W1`#[97`\'@&(@6"\*#PAA&]L+^="R-D(#___#WPO#___]T'H/'!#O]="$/ ++MMA?!X!B(%@O"@\(81O;"_@^%:O___SO]=3R-FP`````[>1`/A/P````[<20/ ++MA/,````/MA?!X!B(%@O"@\(81O;"_G01C9"`___P]\+P____=`-'Z\J+UBM1 ++M((EQ(`$1`5$LC5`7P>H&@^(!B_KWWXM9.(OPP>X8(_<#\HOXP>\%@^<!`_X/ ++MMW1Y/(UL>3R+>32+U\'J"P^OUCO:<QB)432Z``@``"O6P>H%`]9FB54`Z5K^ ++M__\K^BO:B];!Z@4K\HU0U\'J!H/B`8EY-(E9.$)FB74`BS21.W21$`^$D0`` ++M`(L&@\8$B321BU$LBW$@@\($#\@KPHE1+(M1)"O6@_H$<D2)!L'H&(/&!(EQ ++M(.G\_?__7UY=B4$PQT$H`P```#/`6\.+URL1B3DK>1`!42SWWQO_@^<(B7DH ++M7XEQ(%Y=B4$P,\!;PX72=!N(!L'H"(/Z`781B$8!P>@(@_H"=@:(1@+!Z`B) ++M03"-!#*)02"#P@2+032)42@]`````7,@BU$,.U$<=!C!X`B)030/MC*+03C! ++MX`@+QD*)03B)40Q?7ETSP%O#S,S,S,S,S,S,4XO!BTPD"%:#XOQ7C3P0*\@[ ++MQP^$C0```(L0C;(```!L@\`$]\8```#\=%V!P@```'#WP@```)]UUX'"```0 ++M`/?"``#@`'7)B_*#YN"+VL'K&@OSC5P(_,'K"8'C^/]_`"OSB]Z!X___'P"! ++MZP``$`"#SN2!X^#__P#!YAH+WH/B'PO:B5C\ZXB-=`C\P>X"*]:!XO___P.! ++MR@```)2)4/SI:____U]>6\($`,S,S,Q3B\&+3"0(@^+\5@/05RO(L^L[PG,Q ++M@\`$.%C_=`P[PG,E@\`$.%C_=>B+>/R-=`@$P>X"*_Z!Y____P"!SP```.N) ++M>/SKRU]>6\($`,S,S(O!BTPD!%:#XOPKR%>--!"#Z00[QG0LBQ"-NKC___Z# ++MP`3WQ_P```-UZ0_**]`KT8'B____`X'*````2`_*B5#\Z]!?7L($`,S,S,S, ++MS,S,B\&+3"0$@^+\*\A6C300@^D$.\9T,HL0#\J#P`3!P@*!PO___P#WP@,` ++M`/YUY"O0*]&!XO___P&!ZO___P#!R@(/RHE0_.O*7L($`,S,S,R#XOZ+P8/Z ++M`@^&AP```%97BWPD#(UT`OXK^(V;``````^V2`$[QG-K#[90`X/Q""/*@\`" ++M@?GX````<Q@[QG-3#[9(`X/R""/1@\`"@?KX````<M`/MTC^#[<0@>+_!P`` ++MP>$+"\J#P`*-%#C1ZBO*B]'!Z@N!XO\'``"!R@#P``"!R0#X``!FB5#\9HE( ++M_CO&<HU?7L($`,S,S,S,S,S,4U6+;"0,@^+P5HO!@\7P5XT<$,'M`SO#='P/ ++MM@B#X1Z^``!+,]/N@\`0@\4"@^8#=.2-1`;\C42P\(V;`````(L0BW@!B\[3 ++MZM/O@\`%]L+@=3N-CP```/;WP0```!YU+8O7@>+__Q\!,_J!S0``P/\KU8'B ++M__\__X'"``#@`('B__\?`0O7B\[3XHE0_$:#Y@-UK.N`7UY=6\($`,S,S(/B ++M_HO!@_H	*`0``4U>+?"0,58U<$/HK^%:-9"0`.\,/@RP!```/MPB#\1!! ++M]L%W=!L/MT@"@_$008/`!/;!=W7<@^@".\,/@P4!``#VP0AU<('I@0```/?! ++M@`T``'0%@\`"Z[D/MU`"#\J+\8'F`/```,'F!<'J#PO6*]`KUXOR@>;^!P`` ++MP>8)B^J!Y0``\/\+]0/V`_:+ZH'E``@```OU@\%PP>8)@>'_#P``"_&!X@#P ++M#P`+\HDP@\`$Z5S___^+$/?!@`X``'5(B_+![AN!P?@.``"+[L'A$H/E'3O- ++M<]>+2`0/R2O(*\^-J0`(``"!Y0#P___!Y@?!X13!Z@P+RHUT+A>),(E(!(/` ++M".D*____BW`$P>$(C6[],^GWQ0.`#P!T"(/`!NGO_O__B\[!X0R!X@#P___! ++M[A2!R1<!```+UHD(B5`$@\`(Z<S^__]>75];P@0`S,S,S,R+P8/Z!0^"2@$` ++M`(M,)`A358ML)`Q6*^A7BSF-7!#\@\4$.\,/@R$!``"+$('RZ.CHZ(/`!/;" ++M_G4$2$CK%]'O]\(`_@``=0-(ZPK1[_?"``#^`'5[2(7_#X3!````.\,/A^0` ++M``"#_P1W6X/_`W16T>\/MA0'0O;"_G1,BS"!Q@````'WQ@```/YU/`/_C0PH ++M`_\K\0/_B]:+S]/J0O;"_G4.N@`!``#3XDHS\BOP*_6!YO___P&![@````$S ++M_XDP@\`$ZQ31[X//!.E2____,__WP@```/YT13O#<VV+$('RZ.CHZ(/`!/;" ++M_G0NB__WP@#^``!T)??"``#^`'0>]\(```#^=!<[PW,_BQ"!\NCHZ.B#P`3V ++MPOYUU$A(2#O#=R>+$('"`````??"````_G65*]`KU8'B____`8'J`````8D0 ++M@\`$ZY!(BTPD&(DY7UY=6\((`,S,S,S,S,S,:``!``!J`%'H_VH``(/$#,/, ++MS,S,S,S,S,S,S,S,S,Q7B_J+5"0,A=)T88M$)`A35C/VC1P0.]=W)E6+Z2OH ++MD(H4*``00$8[PW7U73O^=`LK_HH4#H@104]U]RO&ZR&0BA0.`!!&0#OW=?7W ++MWXU)`(H4!P`00#O#=?8#QXUD)`"*$(@10$$[PW7V7EM?P@@`@>S4`@``5O\5 ++M(,!"`&8]!@!T*FBLW$(`:)#<0@#_%5S`0@!0_Q64P$(`A<!T#V@`#```_]"% ++MP`^%F0```(U$)`AH!@$``%#_%=C`0@"%P`^$@0```#T$`0``=WIF@WQ$!EQT ++M"&;'1$0(7`!`BS4XW$(`@#X`=%]5C4Q$#%>+/>3`0@")3"0,O6P```"*#HM$ ++M)`Q&A,ET%&8STH/``HK11F:)4/Z*3O^$R77L9L<`+@!FQT`"9`!FB6@$9HEH ++M!F;'0`@``&H(C40D%&H`4/_7@#X`=;A?75Z!Q-0"``##D)"#[`A6B_&`^BAW ++M574%@\C_ZQ(/ML*+R-'I@^`!@\$+@\@"T^"+R(O0B$0D!<'H&(A$)`B+1"00 ++MP>D(P>H04(A,)`J(5"0+:@6-3A"-5"0,QD0D#`3H]S$``%Z#Q`C"!`"X!``` ++M`%Z#Q`C"!`#,S,S,@^P(5HOQ@/HH=U5U!8/(_^L2#[;"B\C1Z8/@`8/!"X/( ++M`M/@B\B+T(A$)`7!Z!B(1"0(BT0D$,'I",'J$%"(3"0*B%0D"VH%C4X0C50D ++M#,9$)`P$Z"<R``!>@\0(P@0`N`0```!>@\0(P@0`S,S,S#/`B0%FQT$%X`") ++M00R#P1#I2RL``,S,S,S,S,S,S,S,BQ&#^@5W-?\DE3`<0@`RTHA1!HA!!#K" ++M=0:X"````,.$P'@>/`%U"L9!!<"X`0```,,\`G<&@'D%X'4:N`D```##.D$% ++M<O4/ML"#X!_!X!"(406)00RX`0```,,/MM#!X@@)40RX`@```,,/ML`+00Q` ++MB4$,BDD$@.&`#[;!]]@;P(/@_8/`!L,/MM#!X@B)40BX!````,,/ML`+00A` ++MB4$(BDD$@.%`#[;!]]@;P(/`!L,\X7.%#[;`F5-6O@D```#W_KX%````#[;` ++MB]J9]_Z(01*-!!J#^`1V!HU&!%Y;PUZ(61"(41&X!@```%O#3AM"`)P;0@"K ++M&T(`R1M"`-@;0@#S&T(`S,S,S,S,S,R#[`Q358ML)!R+10!6B_&+3"0HQT4` ++M`````%>+^L<!`````(,^"8E\)!")1"08#X0H`@``ZPB+1"08BWPD$(L6@_H( ++M#X2W`0``BUXH.]]U"X-\)"@`#X2[`0``@_H&=$"#^@=T.XM-`#O(#X2\`0`` ++MBWPD($&)30"*!XO.Z&_^__]'B0:)?"0@.UPD$`^%8P$``(/X"`^%P0$``.E5 ++M`0``*T4`BTX,*_N)1"0DQT0D%``````[^7(*B_G'1"04`0```(I.!(3)#XB& ++M````A<`/A&T!``"#^@9U%C/2@/D!#Y3":@"-3A#H%"D``(M$)"0[QW8&B\>) ++M1"0DA<`/A%H!``"+5"0@4(OXBT8@`T8H4E#HW&,```%^*(/$#(-^/`!U#XM& ++M%(O(*TXX.\]W`XE&/`%^.(M$)"0!10`!1"0@*48,BT8,]]@;P(/@!XD&Z:(` ++M``"#^@9U'X#YH!O20H#YX%(;TD*-3A#HDR@``(M$)"3'!@<```"+3@@[P78$ ++MB4PD)(M$)"R+5"044%*+5"0HC40D+%!2C4X0C10?Z*\H``"+5"0D`54`BTXH ++M*58(`50D((M^""O+*4X,BUX,A<`/A9<```"+1"0LBP"#^`,/A(0```"%TG43 ++MA<EU#X/X!'5[A=MU=X7_=7.)#HM,)"S'`0````"#/@D/A3C^___K7(M4)"S' ++M`@$```!?7ETSP%N#Q`S"$`"+1"0L7UY=QP`"````,\!;@\0,PA``BTPD+%]> ++M7<<!`P```#/`6X/$#,(0`(M4)"Q?7EW'`@,````SP%N#Q`S"$`"%_W6NBT0D ++M+%_'``````#'!@D```!>7;@!````6X/$#,(0`,S,S,S,4U565XM\)!B+ZHL7 ++MB_''!P````"#/@F)5"08#X1;`0``BUPD%(L.@_D(#X07`0``A>UU"CEL)!P/ ++MA!4!``"#^09T5H/Y!W11BP<[P@^$DP```$")!XH#B\[H$OS__T.)!H/X`744 ++MBDX$.L@/A.X```"`^>`/@^4```"%[74)@_@(#X7,````@_@````BU0D ++M&.F6````A>T/A+(```"+PBL']D8$@'4MA<!T-HM.##O!=@*+P3O%=@*+Q0%& ++M*`$'*48,`]@KZ(M&#/?8&\"#X`>)!NM7QD8&`87`=1$Y1@AT'%]>7;@#```` ++M6\(,`(/Y!G4+QP8'````@#L`=7:+3@@[P78"B\$!!P/8*48(=1R+3@R+Q3OI ++M=@*+P2E&#(M.#`%&*"OHA<EU`HD.@SX)#X7M_O__7\<&"0```%Y=,\!;P@P` ++M7UY=N`$```!;P@P`7UY=N`(```!;P@P`7UY=N`4```!;P@P`7UY=N`8```!; ++MP@P`_P?_3@A?QP8)````7ETSP%O"#`#,S,S,S,<!```0`,=!!```$`#'00@! ++M````QT$,```$`,=!$````!#'010````1P\S,S,S,S%-55E>+^8L'B^JZR"P` ++M`/_0B_`SVSOS=0=?7ETSP%O#C4X$B2[HIN[__\=&$`<```")7A2)?@R)7FB) ++M7FR(7G")GO@```"-AD`'``"Y(````(A8_(D8B5@$!3`!``!)=?!?B\9>75O# ++MS,S,S,S,S,Q35HVW0`<``+L@````C4D`BQ:%TG04BP^+003_T,<&`````,=& ++M!`````"!QC`!``!+==U>6\/,S,S,S,S,S,S,4U565XOY,]LX7W!T$8U7!(V/ ++MA````.B%*@``B%]PBU=H.]-T"HL/BT$$_]")7VB)7VPYG_@```!T$8V/``$` ++M`.C[+P``B9_X````C;<\!P``O2`````X'G00C4Z<C9&,````Z!@J``"('H'& ++M,`$``$UUXXVW0`<``+T@````B_^+%CO3=`R+#XM!!/_0B1Z)7@2!QC`!``!- ++M=>6+3PR+002+UU]>75O_X,S,S,S,S,R#[!A358OJB\5IP#`!``!6BW0D*#/2 ++MB]E7C;P8R`8``(E6$#D6='0X5W1U.HV/G````(E7((E7&,9'=`'H+^W__VGM ++M0/G__X'E@`\``,>'J`````P```")KZP```"+2PR)CZ0```"+S^C#^/__,\") ++MAX@```")AXP```")AX0```")AX````")AY````")AY0```")AY@````STHM# ++M*(E4)!#'1"08`0```(E$)!0Y4T1T*XM#2"N#\````(M+3!N+]````#O1<A5W ++M!CE$)!1R#8E$)!0Y4T!U!(E4)!B+;@B)5"0@B58(B50D+(E4)"2+5"08B\TK ++M3@A2BU0D&"M7*(E,)""+3@@#3@2-1"0@4%&+S^C(^___BU0D'`%6"(M6"(/X ++M!G5QBTLH*T\H.4\,=K['1"0L`0```#/2BTPD(#O*="6#^`5T((/X`70;.\)T ++M%XE/*(M,)"2X!0```(E4)!")3@B)5"0LBTX(`8^(````B8>$````.50D+'1P ++MQT80`0```(M6$(F7@````%]>75N#Q!C"!`"#^`5U'(M/*(7)#X1(____@?D` ++M0```<XJ)3"0@Z3/___\STH/X`G43.50D&'0-QT0D+`$```#I:?___X!_!@!T ++M#(M/#(E,)!#I5____XE4)!#I3O___XM/*(/X`W1(@_@%=16#R/\!1@C'1A`" ++M`````8>(````ZR+'1A`#````@_@!=!:+;"00.^IT#HM$)!0KP3O%=@*+Q0/( ++M`8OP````$9/T````B4X8B58<B8^,````BT80B8>`````7UY=6X/$&,($`,S, ++MS&G2,`$``%97B_F#O#I0!P```(N$.D`'``"-M#K(!@``=0ZX`0```%^)AI@` ++M``!>PX7`="*+CHP````Y3GQS.XL/B]"+003_T,=&>`````#'1GP`````BP^+ ++MEHP```"+`?_0A<!U"%^X`@```%[#BXZ,````B49XB4Y\B4XDC8Z<````B48@ ++MQD9U`8I7,%&+SNA;]?__7U[#S,S,S,S,S,QITC`!``"+A`I8!P``4U6+;"0< ++M5HVT"L@&``"+3"0D,]M7BWPD((D'B5\$B5T`B5T$QP$!````.%YU=`J+SNCM ++M]?__B%YUBX:$````BU0D&(E4)"2#^`%T"8E<)""#^`5U",=$)"`!````,\DY ++M7"0@C40D%`^5P5"+1"08C50D*%%2BY:,````4(O.Z-#V__^+5"0D`9:0```` ++MBXZ0````B8:8````B0^)7P2+3BB)CI0```")30")700[PW56BT0D&(M,)"@[ ++MT'4"B1DY7"0@="P[PG4<BY:(````.Y:0````=2Z+AHP````[AI0```!T&E]> ++M7;@+````6\(8`(N6C````#N6E````'4&QP$!````,\!?7EU;PA@`S,S,S,Q1 ++M:=(P`0``4U56B_&+3"0DBZPR7`<``(N<,D`'``"-A#+(!@``BU0D*%<S_XDY ++MQP(!````BXB`````QT0D$`$```"#^0%T!8/Y`W4$B7PD$#E\)!@/A+8```"+ ++MB)`````!CG@!```1OGP!```YN)@```!U,(N(A````(/Y`70%@_D%=2"+B(P` ++M```[B)0````/A80```"+B(@````[B)````!U=HDZ.7XX=&_K`XU)`(O]@?T` ++M```!=@6_`````8M..(L!5XO3_]`!1E"#5E0`.\=U)0/?*^]T+&H`:@!J`&H` ++MC8Z8`0``Z',G``"%P'2_7UY=6UG"&`!?7EVX"0```%M9PA@`BTPD$(M4)"B) ++M"E]>73/`6UG"&`!?7EVX"P```%M9PA@`S,S,S,S,S,S,@'YP`'48QX:4```` ++M`````,>&C`````````#&1G`!BE8P5XU&!%"-3G3H0O/__X7`=42+5FB%TG0( ++MBTYL.TX8="N+#HM!!/_0BPZ+5AC'1FP`````BP'_T(E&:(7`=0>X`@```%_# ++MBTX8B4YLC4YTZ&SS__\SP%_#S,S,S,S,S,R#[$155C/M5XOP.6PD5'06B_[H ++M*?G__XV.``$``.B>)P``B40D5.A5____.\4/A?H"``"+1EB+3ER+5E")1"0X ++MBT94B4PD/(E4)$"+EIP````SR5.)1"1(B6PD%(E,)!");"0@B50D'.L,C9L` ++M````,^V+3"00.4PD%'5D.6PD6'0EC8X``0``C50D$.BO)P``B40D((EL)!0[ ++MQ775,\F);"18B4PD$#EN8'4TBT9LBTXTBU9HB40D$(U$)!!0BP&);"08B50D ++M)/_0BTPD$(E&9#O-=`0[Q70'QT9@`0```(N&F````(M6'(N^G````(OH*VPD ++M'#OJ=@:+1"0<`\(KQS/MB40D&#EN1'0NBT9(*T90BU9,&U94B50D4#/2.U0D ++M4'(6=P8Y1"08<@Z)1"08.59`=`6]`0```(M$)!0KR(E,)"B-3"0P48M,)"15 ++MC50D,%*+5"0D`\A1`]>-3G3H+//__XM,)"@!3"04`4Y8O0````"+T!%N7(N& ++MG````"O'`490B50D-!%N5#EN1'0<BWY,.WY4=Q1R"(M^2#M^4'<*QT0D)`$` ++M``#K!(EL)"0[U0^%"0$``#O-=0@[Q0^$_0```(-\)#`!#X3R````.6Y`=0HY ++M;"0D#X7C````B6PD+#M$)!AR58M$)!R+OIP```"+EI0```"+3C@K^`/0BP%7 ++M_]"+CIP````KQ_?8&\"#X`D[CI@```!U!HFNG````(N6G````(E4)!P[Q0^% ++M^0```#EL)"P/A9$```"+;CR%[0^$*/[__XM^6(M.7(O7*U0D/(O!&T0D0(7` ++M=RER"('Z``!``',?BT90*T0D1(M65!M4)$B)5"0X=0L]``!```^"Z?W__XM& ++M5(M64%"+10!245>+S?_0A<`/A8P```"+3EB+5ER+1E")3"0\BTY4B50D0(E$ ++M)$2)3"1(Z:_]___'1"0L`0```.D:____BT0D-#O%=5:+1"0P@_@!=2DY;D!T ++M+SEN1'0JBU9(.U90=0B+1DP[1E1T&EM?7K@!````78/$1,($`#EN0'42.6PD ++M)'0,6U]>,\!=@\1$P@0`@^@#]]@;P(/@^X/`!EM?7EV#Q$3"!`#,S,S,S,S, ++MS,S,@^P04U8SVU>+?"0TB_&)'XE?!(#Z*'8,7UZ-0P1;@\00PB``BT0D((A6 ++M,(L(B4X8BU`$B58<BT@(B4X@BU`,B58DBT@0B4XHBU`4BT0D,(M,)"2)1C2+ ++M1"0HB58LBU0D/(E..(E6/(E>2(E>3(E>1#O#=!+'1D0!````BPB)3DB+4`2) ++M5DR+1"0L58ML)#R)1D")7E")7E2)7EB)7ER)7F")7F2)70`SP(-^(`$/AB`! ++M```X7G!T$8U6!(V.A````.@:(```B%YPBU9H.]-T"HL.BT$$_]")7FB)7FR) ++MGO````")GO0````YGO@```!U%8V.``$``,>&^`````$```#H&B4``(M,)$"+ ++M5"0TB8X0`0``C48$C4PD$(F6#`$``(M6)(F&%`$``(M&((F.&`$``(V.``$` ++M`(FV'`$``(D1B88$`0``QT4``0```,=$)!#P(4(`QT0D%%`D0@#'1"08\"1" ++M`,=$)!P0)D(`Z+TE``"+CG@!``")#XN6?`$``(E7!#O#=7.+AIP!```[PW5I ++M.9Y$`0``=1"+AD@!``!=7UY;@\00PB``BXY(`0``BY9P`0``B4YDBXYX`0`` ++MB59@BY9\`0``N`$```")3EB)5EQ0B\:)70#HXOK__XM.6(D/BU9<B5<$@_@& ++M=`0[PW4)BW9D._-T`HO&75]>6X/$$,(@`,S,S,S,S,S,S,S,@^Q,BU0D4(M* ++M0(M"#(E,)`B+2C2)3"0PBTH\B40D((M",(E,)#@/MDH"4U6)1"0LBT(X5HE$ ++M)$`/M@*^`0```-/F#[9*`8E$)$R]``$``-/EB\B+0A!7OP`!``#3[XM*%(E$ ++M)#B+0AB)3"0\BTHHB40D'(M"+$Z)3"0LBTH<*^^)1"1,BT(@BU(DB70D5(EL ++M)%C'1"0H`````(E,)!"+_XM<)"R+3"0P(][!XP2)7"0D`UPD&`^WC%D`_O__ ++M/0````%S%(MT)!`/MC[!X@C!X`@+UT:)="00B_C![PL/K_D[UP^#.`<``+X` ++M"```*_'![@4#\8O.BW0D,&:)C%X`_O__@<:``@``@WPD+`"+QW4'@WPD3`!T ++M+(M,)!R%R74$BTPD/(M<)#@/MEP9_XM,)"S!X0@#V8M,)%`CW=/CC0Q;C31. ++MBTPD&/]$)"R#^0</@\0"``"+V8/Y!'(%NP,````KRXE,)!@/MTX"@?\````! ++M<Q;!YPB+QXM\)!`/MA_!X@@+TT>)?"00B_C![PL/K_D[UW,9B\>_``@``"OY ++MP>\%`_EFB7X"N0(```#K%"O'*]>+^<'O!2O/9HE.`KD#````BVPD$(T<"0^W ++M##,]`````7,1#[9]`,'B",'@"`O718EL)!"+^,'O"P^O^3O7<Q2+Q[\`"``` ++M*_G![P4#^6:)/#/K$"O'*]>+^<'O!2O/9HD,,T,#VP^W##,]`````7,1#[9] ++M`,'B",'@"`O718EL)!"+^,'O"P^O^3O7<Q2+Q[\`"```*_G![P4#^6:)/#/K ++M$"O'*]>+^<'O!2O/9HD,,T,#VP^W##,]`````7,1#[9]`,'B",'@"`O718EL ++M)!"+^,'O"P^O^3O7<Q2+Q[\`"```*_G![P4#^6:)/#/K$"O'*]>+^<'O!2O/ ++M9HD,,T,#VP^W##,]`````7,1#[9]`,'B",'@"`O718EL)!"+^,'O"P^O^3O7 ++M<Q2+Q[\`"```*_G![P4#^6:)/#/K$"O'*]>+^<'O!2O/9HD,,T,#VP^W##,] ++M`````7,1#[9]`,'B",'@"`O718EL)!"+^,'O"P^O^3O7<Q2+Q[\`"```*_G! ++M[P4#^6:)/#/K$"O'*]>+^<'O!2O/9HD,,T,#VP^W##,]`````7,1#[9]`,'B ++M",'@"`O718EL)!"+^,'O"P^O^3O7<Q2+Q[\`"```*_G![P4#^6:)/#/K$"O' ++M*]>+^<'O!2O/9HD,,T.-+!L/MPPN/0````%S%(M\)!`/MA_!X@C!X`@+TT>) ++M?"00B_C![PL/K_D[UW,IB\>_``@``"OYP>\%`_EFB3PNBW0D'(M\)#B+S8@, ++M/D:)="0<Z;<.```KQRO7B_G![P4KSXM\)#AFB0PNBW0D'(U-`8@,/D:)="0< ++MZ9`.``"+3"08@_D*&]N#X_V#PP8KRXM<)#2)3"08BTPD'#O+&^TC;"0\*^L# ++MZ8M,)#@/MBPI`^V+S8'A``$```^WG$X"`@``@?\````!<Q7!YPB+QXM\)!`/ ++MMC_!X@@+U_]$)!"+^,'O"P^O^SO7<R.+Q[\`"```*_O![P4#^V:)O$X"`@`` ++MNP(```"!\0`!``#K&"O'*]>+^\'O!2O?9HF<3@("``"[`P````/MB_F)?"0@ ++M(\T#^0/[C3Q^B7PD%`^W/XEL)"0]`````7,4BVPD$`^V;0#!X@C!X`@+U?]$ ++M)!"+Z,'M"P^O[SO5<QZ+Q;T`"```*^_![04#[XM\)!0S3"0@9HDOC2P;ZQ<K ++MQ2O5B^_![04K_8ML)!1FB7T`C6P;`8M\)"0#_XO9(\^)7"0@`]D#W8E\)"2- ++M/%Z)?"04#[<_/0````%S$XM<)!`/MAO!X@C!X`@+T_]$)!"+V,'K"P^OWSO3 ++M<QV+P[L`"```*]_!ZP4#WXM\)!0#[3-,)"!FB1_K%BO#*].+W\'K!2O[BUPD ++M%&:).XUL+0&+?"0D`_^+V2//B5PD(`/9`]V)?"0DC3Q>B7PD%`^W/ST````! ++M<Q.+7"00#[8;P>((P>`("]/_1"00B]C!ZPL/K]\[TW,=B\.[``@``"O?P>L% ++M`]^+?"04`^TS3"0@9HD?ZQ8KPRO3B]_!ZP4K^XM<)!1FB3N-;"T!BWPD)`/_ ++MB]DCSXE<)"`#V0/=B7PD)(T\7HE\)!0/MS\]`````7,3BUPD$`^V&\'B",'@ ++M"`O3_T0D$(O8P>L+#Z_?.]-S'8O#NP`(```KW\'K!0/?BWPD%`/M,TPD(&:) ++M'^L6*\,KTXO?P>L%*_N+7"049HD[C6PM`8M\)"0#_XO9(\^)7"0@`]D#W8E\ ++M)"2-/%Z)?"04#[<_/0````%S$XM<)!`/MAO!X@C!X`@+T_]$)!"+V,'K"P^O ++MWSO3<QV+P[L`"```*]_!ZP4#WXM\)!0#[3-,)"!FB1_K%BO#*].+W\'K!2O[ ++MBUPD%&:).XUL+0&+?"0D`_^+V2//B5PD(`/9`]V)?"0DC3Q>B7PD%`^W/ST` ++M```!<Q.+7"00#[8;P>((P>`("]/_1"00B]C!ZPL/K]\[TW,=B\.[``@``"O? ++MP>L%`]^+?"04`^TS3"0@9HD?ZQ8KPRO3B]_!ZP4K^XM<)!1FB3N-;"T!BWPD ++M)`/_(_D#^0/]#[<,?HTT?CT````!<Q2+?"00#[8?P>((P>`("]-'B7PD$(OX ++MP>\+#Z_Y.]=S*HO'OP`(```K^<'O!0/Y9HD^BW0D'(M\)#B-3"T`B`P^1HET ++M)!SIL`H``"O'*]>+^<'O!2O/BWPD.&:)#HMT)!R-3"T!B`P^1HET)!SIB0H` ++M`(OQP>X%*\Z+="0P9HF,7@#^__^+3"08#[=,3B`KQRO7/0````%S%(MT)!`/ ++MMC[!X@C!X`@+UT:)="00BVPD,(OPP>X+#Z_Q.]9S)8O&O@`(```K\<'N!0/Q ++MBTPD&&:)=$T@@\$,C;4`^O__Z>(!``"+?"08*\8KUHOQP>X%*\YFB4Q](`^W ++M='TX/0````%S$XM,)!`/M@G!X@C!X`@+T?]$)!"+R,'I"P^OSCO1#X.T```` ++MO0`(```K[L'M!0/NB_6+;"0P9HET?3@/M[1=`/3__XO!@?D````!<Q7!X0B+ ++MP8M,)!`/M@G!X@@+T?]$)!"+R,'I"P^OSCO1<U*+P;D`"```*\[!Z04#SHMT ++M)!QFB8Q=`/3__XM,)#2+;"0X._$;VR-<)#S_1"0L*]D#W@^V#"N(#"Y&@_\' ++M&\F#X?Z#P0N)="0<B4PD&.DZ"0``*\$KT8O.P>D%*_%FB;1=`/3__^G:```` ++M*\$KT8O.P>D%*_%FB71].`^W3'U0/0````%S%(MT)!`/MA[!X@C!X`@+TT:) ++M="00B_#![@L/K_$[UG,9B\:^``@``"OQP>X%`_&+3"1`9HET?5#K>2O&*]:+ ++M\<'N!2O.9HE,?5`/MTQ]:#T````!<Q2+="00#[8>P>((P>`("]-&B70D$(OP ++MP>X+#Z_Q.]9S&8O&O@`(```K\<'N!0/QBTPD1&:)='UHZQPKQBO6B_'![@4K ++MSHMT)$1FB4Q]:(M,)$B)="1(BW0D0(ET)$2+="0TB70D0(E,)#2#_P<;R8/A ++M_8/!"XVU`/;__P^W/HE,)!@]`````7,4BTPD$`^V&<'B",'@"`O308E,)!"+ ++MR,'I"P^OSSO1#X,C`0``NP`(```KW\'K!0/?BWPD)&:)'HTT?@^W?@*+P8'Y ++M`````7,6P>$(B\&+3"00#[89P>(("]-!B4PD$(O(P>D+#Z_/.]%S&8O!N0`( ++M```KS\'I!0//9HE.`KD"````ZQ0KP2O1B\_!Z04K^6:)?@*Y`P```(T<"0^W ++M##,]`````7,3BWPD$`^V/\'B",'@"`O7_T0D$(OXP>\+#Z_Y.]=S%(O'OP`( ++M```K^<'O!0/Y9HD\,^L0*\<KUXOYP>\%*\]FB0PS0XT,&P^W/#$]`````7,3 ++MBUPD$`^V&\'B",'@"`O3_T0D$(O8P>L+#Z_?.]-S&HO#NP`(```KW\'K!0/? ++M9HD<,8/I".D``@``*\,KTXO?P>L%*_MFB3PQ08/I".GH`0``*\$KT8O/P>D% ++M*_EFB3X/MWX0/0````%S%(M,)!`/MAG!X@C!X`@+TT&)3"00B\C!Z0L/K\\[ ++MT0^#'P$``+L`"```*]_!ZP4#WXM\)"1FB5X0C71^$`^W?@*+P8'Y`````7,6 ++MP>$(B\&+3"00#[89P>(("]-!B4PD$(O(P>D+#Z_/.]%S&8O!N0`(```KS\'I ++M!0//9HE.`KD"````ZQ0KP2O1B\_!Z04K^6:)?@*Y`P```(T<"0^W##,]```` ++M`7,3BWPD$`^V/\'B",'@"`O7_T0D$(OXP>\+#Z_Y.]=S%(O'OP`(```K^<'O ++M!0/Y9HD\,^L0*\<KUXOYP>\%*\]FB0PS0XT,&P^W/#$]`````7,3BUPD$`^V ++M&\'B",'@"`O3_T0D$(O8P>L+#Z_?.]-S%XO#NP`(```KW\'K!0/?9HD<,>FA ++M````*\,KTXO?P>L%*_MFB3PQ0>F,````*\$KT8O/P>D%*_EFB7X0N0$```#K ++M!XVD)`````"-'`D/MXPS``(``#T````!<Q.+?"00#[8_P>((P>`("]?_1"00 ++MB_C![PL/K_D[UW,:B\>_``@``"OYP>\%`_EFB;PS``(``(O+ZQ8KQRO7B_G! ++M[P4KSV:)C#,``@``C4L!@?D``0``<I>!Z?````"#?"08#(E,)"@/@G`$``"# ++M^01R!;D#````0<'A!P^W="D"`\T]`````7,4BWPD$`^V'\'B",'@"`O31XE\ ++M)!"+^,'O"P^O_CO7<QF+Q[\`"```*_[![P4#_F:)>0*^`@```.L4*\<KUXO^ ++MP>\%*_=FB7$"O@,```"+;"00C1PV#[<T"ST````!<Q$/MGT`P>((P>`("]=% ++MB6PD$(OXP>\+#Z_^.]=S%(O'OP`(```K_L'O!0/^9HD\"^L0*\<KUXO^P>\% ++M*_=FB30+0P/;#[<T"ST````!<Q$/MGT`P>((P>`("]=%B6PD$(OXP>\+#Z_^ ++M.]=S%(O'OP`(```K_L'O!0/^9HD\"^L0*\<KUXO^P>\%*_=FB30+0P/;#[<T ++M"ST````!<Q$/MGT`P>((P>`("]=%B6PD$(OXP>\+#Z_^.]=S%(O'OP`(```K ++M_L'O!0/^9HD\"^L0*\<KUXO^P>\%*_=FB30+0P/;#[<T"ST````!<Q$/MGT` ++MP>((P>`("]=%B6PD$(OXP>\+#Z_^.]=S%(O'OP`(```K_L'O!0/^9HD\"^L0 ++M*\<KUXO^P>\%*_=FB30+0XTT&P^W/`X]`````7,1#[9=`,'B",'@"`O318EL ++M)!"+V,'K"P^OWSO3<Q2+P[L`"```*]_!ZP4#WV:)'`[K$"O#*].+W\'K!2O[ ++M9HD\#D:#[D"#_@0/@BL"``"+SHO^T>F#Y@%)@\X"@_\.#X."````T^:]`0`` ++M`$:-20"+?"0P#[>\=P#S__\]`````7,3BUPD$`^V&\'B",'@"`O3_T0D$(O8 ++MP>L+#Z_?.]-S((O#NP`(```KW\'K!0/?BWPD,&:)G'<`\___`_4#[>L;*\,K ++MTXO?P>L%*_N+7"0P`^UFB;QS`//__P/U2760*_7IDP$``(ML)!"#Z02+_ST` ++M```!<PT/MGT`P>((P>`("]=%T>@KT(OZP>\?]]^-='<!(_@#UTEUUHM\)#`/ ++MMT\"P>8$B6PD$#T````!<Q$/MET`P>((P>`("]-%B6PD$(O8P>L+#Z_9.]-S ++M&8O#NP`(```KV<'K!0/99HE?`KD"````ZQ0KPRO3B]G!ZP4KRV:)3P*Y`P`` ++M``^W'$\]`````7,0#[9M`,'B",'@"`O5_T0D$(OHP>T+#Z_K.]5S%XO%O0`( ++M```KZ\'M!0/K9HDL3X/!`NL2*\4KU8OKP>T%*]UFB1Q/@\$$#[<<3ST````! ++M<Q2+;"00#[9M`,'B",'@"`O5_T0D$(OHP>T+#Z_K.]5S%XO%O0`(```KZ\'M ++M!0/K9HDL3X/!!.L2*\4KU8OKP>T%*]UFB1Q/@\$(#[<<3ST````!<Q2+;"00 ++M#[9M`,'B",'@"`O5_T0D$(OHP>T+#Z_K.]5S%XO%O0`(```KZ\'M!0/K9HDL ++M3X/I".L/*\4KU8OKP>T%*]UFB1Q/"_&#_O\/A.````"+3"1$@WPD&!.)3"1( ++MBTPD0(E,)$2+3"0TB4PD0(U.`8E,)#0;R8/A_8/!"HE,)!B+3"1,A<EU!(M, ++M)"P[\0^#JP```(M<)"B+3"1DBWPD'(/#`BO/#X2D````.\MR`HO+.WPD-!OV ++M(W0D/`%,)"PK="0T*]F)7"0HBUPD/`/W*]X[RW<?BUPD.(TL'ROW`_F-'"F) ++M?"0<B@PNB$T`13OK=?7K&XML)#B*'"Z('"]&1SMT)#QU`C/V277MB7PD'(M, ++M)!P[3"1D<RZ+3"00.TPD:',DBW0D5(ML)%CIUNW__X-L)!@,QT0D*!(!``#K ++M"(%$)"@"`@``BUPD*(M\)!R+3"1@BW0D$#T````!<PP/MB[!X@C!X`@+U4:) ++M02"+1"0TB4$PBT0D1(E1)(M4)"R)03B+1"08B7D87XE1*(M4)#R!^P`"``") ++M<1Q>B4%`B5$TBU0D0!O`78E91(E1/$!;@\1,P@P`@^P44U565XOXBT0D+(L( ++MBT<,BV]`BU<@BW<DB4PD$(I/`KL!````T^.)1"082R-?*,'C!(T,*P^WA$@` ++M_O__B4PD((E$)!2!^@````%S)HM$)"@[1"00<@Q?7ETSP%N#Q!3""``/M@C! ++MY@C!X@@+\4")1"0HB\+!Z`L/KT0D%#OP#X.%`0``B]"+1"08!8`"``"#?RP` ++MB40D&'4&@W\H`'0]BT\8A<EU`XM/%`^V!XM?$`^V7`O_N0@````JR-/KBD\! ++MN`$```#3X`^V#T@C1RC3X`/8:=L`!@```5PD&(/]!W-AN0$```"-I"0````` ++MBT0D&`^W/$B!^@````%S'HM$)"@[1"00#X-+____#[88P>8(P>(("_-`B40D ++M*(O"P>@+#Z_'._!S!HO0`\GK""O0*_"-3`D!@?D``0``<K#IE````(M/&(M? ++M,#O+<P6+1Q3K`C/`BW\0*_L#^0^V'`>_``$``+D!````ZP.-20"+;"08B\<# ++MVXE$)"`#P2/[`\</MT1%`(E$)!2!^@````%S'HM$)"@[1"00#X.X_O__#[8H ++MP>8(P>(("_5`B40D*(O"P>@+#Z]$)!0[\',*`\DS?"0@B]#K""O0*_"-3`D! ++M@?D``0``<I?'1"0<`0```(M$)"B!^@````%S"SM$)!`/@V+^__]`BTPD+%]> ++M78D!BT0D$%N#Q!3""`"+?"08#[=,;R`KT"OPB4PD%(M,)"B!^@````%S&CM, ++M)!`/@R;^__\/M@'!Y@C!X@@+\$&)3"0HB\+!Z`L/KT0D%#OP<QV+T,=$)"`` ++M````@<<`^O__QT0D'`(```#I)@$``"O0*_`/MT1O.,=$)!P#````@?H````! ++M<QH[3"00#X/(_?__#[8YP>8(P>(("_=!B4PD*(O*P>D+#Z_(BT0D&#OQ<TV+ ++M?"0@#[>L>`#T__^+T8'Y`````7,@BWPD*#M\)!`/@X3]___!X0B+T0^V#\'F ++M"`OQ1XE\)"B+RL'I"P^OS3OQ#X.'````B]'IX_[__XM\)"@KT2OQ#[=,:%") ++M3"04@?H````!<QH[?"00#X,X_?__#[8/P>8(P>(("_%'B7PD*(O*P>D+#Z], ++M)!0[\7,$B]'K/P^W;&AH*]$K\8'Z`````7,:.WPD$`^#^_S__P^V#\'F",'B ++M"`OQ1XE\)"B+RL'I"P^OS3OQ<P2+T>L$*]$K\8M,)"C'1"0@#````(VX`/;_ ++M_P^W!X'Z`````7,:.TPD$`^#L/S__P^V*<'F",'B"`OU08E,)"B+RL'I"P^O ++MR(M$)"@[\7,1B]&-'%\S[<=$)!0(````ZUX/MV\0*]$K\8'Z`````7,:.T0D ++M$`^#9?S__P^V",'F",'B"`OQ0(E$)"B+RL'I"P^OS3OQ<Q&]"````(O1C5Q? ++M$(EL)!3K%RO1*_&-GP`"``"]$````,=$)!0``0``OP$```"-20"!^@````%S ++M&CM$)!`/@P?\__\/M@C!Y@C!X@@+\4")1"0H#[<$>XO*P>D+#Z_(._%S!HO1 ++M`__K""O1*_&-?#\!BT0D%#OX<P:+1"0HZ[(KZ`/]@WPD(`0/@T3]__^#_P-R ++M!;\#````BT0D*(UO`<'E!P-L)!B_`0```(V;``````^W7'T`@?H````!<QZ+ ++M1"0H.T0D$`^#?OO__P^V",'F",'B"`OQ0(E$)"B+RL'I"P^ORSOQ<P:+T0/_ ++MZP@KT2OQC7P_`8/_0'*V@^]`@_\$#X+/_/__B\_1Z4F)3"04@_\.<Q6#YP&# ++MSP+3YXM,)!B-C'D`\___ZT2+?"00@^D$@?H````!<Q0[QP^#"?O__P^V&,'F ++M",'B"`OS0-'JB]XKVL'K'TLCVBOS2773BTPD&(E$)"C'1"04!````+T!```` ++MB4PD&(O=ZP:-FP````"+3"08#[<,:8'Z`````7,BBT0D$#E$)"@/@ZOZ__^+ ++M1"0H#[8XP>8(P>(("_=`B40D*(OZP>\+#Z_Y._=S"`/KB]<#V^L(`]LKUROW ++M`^O_3"04=:SI_/O__\S,S,S,S,PSP,=!1!,!``")04P[T'0-B4$HB4$LQT%$ ++M%`$``#E$)`1T!\=!1!0!``#"!`#,S,PSP(E!&(E!3(E!*(E!+,=!1!0!``## ++MS,S,S,S,S,S,S(/L$%-55E>+?"0HBR^+\8M,)##'!P````#'`0````"+1D2) ++M5"04B6PD$+H!````/1(!```/AA`!```]%`$``'89+?\!``#WV%\;P%Z#X/9= ++M@\`+6X/$$,(0`(M<)"2%[70FBT9,@_@%<Q:*$XA4,%"Z`0````%63`$7`]HK ++MZG7BB5PD)(EL)!"+1DPS_SO'=!*`?E``=`Q?7EV+PEN#Q!#"$`"#^`5S$E]> ++M7<<!`P```#/`6X/$$,(0``^V1E$/MDY2P>`("\$/MDY3P>`("\$/MDY4P>`( ++M"\&)1B0Y?BQU##E^*'4'/0#\_[]SJH%^1!,!``#'1B#_____B7Y,=D4/M@8/ ++MMDX!BWX(`\BX``,``-/@!<`'``!T&HO(N``$```/M^B+Q<'E$`O%T>GSJQ/) ++M9O.K,_^)5CR)5CB)5C2)5C")?D")?D3K!(M<)"2!?D02`0``#X2)`@``ZP>- ++M20"+7"0DBWY$BVPD$(O/A<ET7HM&&(M4)!0KT#O1<P:+RH72=$N#?BP`=0^+ ++M5@2+ZBMN*#OI=P.)5BP!3BB+5A2+;C`K^8E^1(M^$(E4)!R+_SO%&](C5"0< ++M0"O5`]=)BE0"_XA4!_]UZ(ML)!")1AB+3A@SP(E$)!@[3"04<BR+1D2%P'4) ++M.48D#X06`@``@WPD+``/A"$"``"%P`^%+P(``+@!````B40D&(M^3(7_#X7' ++M````@\__@_T4<@Z%P'4*BU0D$(UL&NSK.8U,)!R-!"M1B40D(%.+QNB!]___ ++MA<`/A`("``"+?"0<*_N#_Q1W7X-\)!@`=`F#^`(/A2$"``"+ZX-^+`"+3"04 ++MB5X<=1B+1@2+5A@K1BB+V2O:.]B+7"0D=@.-#`)545;HW^/__X-^+`!U"XM. ++M!#E.*'(#B4XLBTX<*\N%_WD<.TPD$'8:7\=&1/\!``!>7;@+````6X/$$,(0 ++M`#OY=>:+5"0H`]D!"HE<)"3I[P```#/M@\O_@_\4<R.+1"0DBTPD$(O_.^ES ++M$(H4*(A4/E!'18/_%'+NZP6#_Q1R!X-\)!@`=$&-5"0<C4904HT,.%"+QHE, ++M)"3HF?;__X7`#X2(`0``BUPD'"O>@^M0.UY,#X)P____@WPD&`!T"8/X`@^% ++MC@$``(-^+`"+5"04C4Y0B4X<=12+1@2+?A@K1BB+ZBOO.^AV`XT4!U%25NCS ++MXO__@WXL`'4+BTX$.4XH<@.)3BR+3AR+5DPKSH/I4(7;>1.#^10/APO___\[ ++MR@^"`____^L(.]D/A?G^__\KRHM4)"@!3"0D`0K'1DP`````*4PD$(7`#X4O ++M`0``@7Y$$@$```^%?/W__X-^)``/A1\!``"+1"0P7UY=QP`!````,\!;@\00 ++MPA``BTPD,%]>7<<!!````#/`6X/$$,(0`(M4)#!?7EW'`@(````SP%N#Q!#" ++M$`"+1"0P7UY=QP`"````N`$```!;@\00PA``@_T4#X-?_O__BT0D*`$H,\") ++M;DR%[70,B@P8B$P&4$`[Q7+TBU0D,%]>7<<"`P```#/`6X/$$,(0`(M$)"@! ++M.#/`B7Y,A?]T#(H,&(A,!E!`.\=R](M4)#!?7EW'`@(```"X`0```%N#Q!#" ++M$`"#_Q0/@_']__^+1"0HB7Y,`2B+1"0P7UY=QP`#````,\!;@\00PA``BT0D ++M*(M4)#"+RRM.3%\!"(E>3%Y=QP("````N`$```!;@\00PA``QT9$``(``%]> ++M7;@!````6X/$$,(0`,S,S,R+PE:+\8M6"(O(BT`$_]#'1@@`````7L/,S,S, ++MS,S,S%:+\HM&!%>+^8M7"(O._]"+5Q#'1P@`````BT8$B\[_T,='$`````!? ++M7L/,S,S,S(-\)`0%<PBX!````,($``^V0@16#[9R`\'@"`O&#[9R`L'@"`O& ++M#[9R`<'@"`O&/0`0``!S!;@`$```B4$$BA*`^N%R";@$````7L($``^VPIF^ ++M"0```/?^O@4````/ML"($9GW_EZ(00*(40$SP,($`,S,S,S,S,S,S,S,S,S, ++MBT0D!(/L"%:+\5"-3"0(Z&S___^%P'5D4XM<)`@/MM</MLM7`\J+5@B_``,` ++M`-/G@<?`!P``A=)T!3M^2'0P58ML)""+102+S?_0QT8(`````(M%`(T4/XO- ++M_]")1@A=A<!T'P4`#0``B48,B7Y(BTPD$%^)'HE.!#/`6UZ#Q`C""`!?6[@" ++M````7H/$",((`,S,S,S,S,S,S,S,S,S,S(M$)`2#[`A6B_%0C4PD".C,_O__ ++MA<`/A?````"+1"0$#[;450^VR`/*BU8(O0`#``#3Y5>+?"0<@<7`!P``A=)T ++M!3MN2'0JBT<$B\__T,=&"`````"+!XU4+0"+S__0B48(A<!T)`4`#0``B48, ++MB6Y(4XM<)!2X_P\``('[````0'(5N/__/P#K&U]=N`(```!>@\0(P@@`@?L` ++M`$``<@6X__\/`(TL&/?0(^@[ZW,"B^N+5A"%TG0%.VX4=#V+1P2+S__0QT80 ++M`````(L'B]6+S__0B480A<!U((M6"(M'!(O/_]!;7UW'1@@`````N`(```!> ++M@\0(P@@`BTPD$(E>!%M?B6X4B0XSP%U>@\0(P@@`S,S,S,S,S,S,S,S,S#/` ++MB1&)00B)01")002)00R)013#D)"0D)"0D)"0D)"05HOQ5XU^&%?_%4#`0@"+ ++M5@B+1"0,BTPD$`/0BT0D&(E6"(M6#!/1BTX0B58,BU0D%`/*B4X0BTX4$\B+ ++M1@2%P(E.%'4CBPZ%R70=BU84BT804HM6#%"+1@A24/\1A<!T!\=&!`H```"+ ++M=@17_Q5$P$(`B\9?7L(0`)"0D)"0D)!35HOQ5XO:C7X85_\50,!"`(M&!(7` ++M=0.)7@17_Q5$P$(`7UY;PY"0D)"0D)"0D)!7B_F+5PB%TG095L='"`````"+ ++M!XLRBT@4_U$$A?:+UG7P7E_#D)"0D)"0D)"0D)!6B_&+1ER%P'43BQ:+3A2# ++MPA#_$87`=0)>PXE&7(/`$%[#D)"0D)"0D)"0D)"0D)!7B_F+5UR%TG07BT=@ ++MBT]D.\%U#8M/%/]1!,='7`````!35C/VC9_(````BT=8._!W'(N/@````#OQ ++M<@:+QBO!ZP0KP0/&.8>$````=P>+R^A+____1H/#*(/^('+-BX>$````7H7` ++M6W4.BT]@BT=D.\AU!#/`7\.X`0```%_#D%-55HOQ5XOJBX:$````A<`/A+@` ++M``"+AH````"#P`6-!("-/,:+10"%P'1=BU<(BTX4BQK_402+3Q"+1Q0+R(E? ++M"'5%B\_HU?[__XN&A````$B)AH0```!T=(N6@````(M.6$*+PHF6@````#O! ++M=0K'AH``````````BX:`````@\`%C12`C3S6BT<,A<!T"<='#`````#K%HM/ ++M%(M?$(L&,]([T7((=P0[PW8"B\.+=Q`K\(EW$(M7%(/:`(E7%(E%`(M'"%]> ++M78/`$%O#BT9@BTYD*\AT%XM67(E-`#/)7XE.8(E.9%Y=C40"$%O#QT4````` ++M`(M67(72=`V+3A3_403'1EP`````7UY=,\!;PY"0D)"0D)"0D)"0D)"0D%8S ++M]L<!```$`(EQ!(EQ#(EQ7(EQ8(EQ9(FQA````(EQ$(EQ%(EQ&(EQ'(EQ(#/2 ++MC8'0````B5#\B4CXB3")<!2)<!B)<!!"@\`H@_H@<N:!P;````!>Z84D``"0 ++MD)"0D%:+\>@8````@<:P````5O\5.,!"`%[#D)"0D)"0D)"04U:+\5>[(``` ++M`,=&)`$```"-OL@```"+S^@B````@\<H2W7SBU9<A=)T#8M.%/]1!,=&7``` ++M``!?7EO#D)"0D%:+\>@(````B\Y>Z3#]__]6B_%7BT88C7X8A<!T%XU.(.B: ++M(@``C4X<Z)(B``"+S^CK(0``C4X<Z),A``"-3B!?7NF)(0``D)"0D)"0D)"0 ++M4U56B_&X`0```%>)1C")1D2#R/\S_XF&D````(F&E````(M&!(E^>(E^:(/X ++M((E^?(E^-(E^.(E^/(E^0(E^<(F^B````(E^;(E^2(E^3(E^4(E^8(E^9(F^ ++M@````(F^A````'8%N"````"+3B")1E2+!HE^6#O!=#*-GL@```"](````#E[ ++M"'0'B\OH7_S__X/#*$UU[HM67#O7=`F+3A3_402)?ER+#HE.((M6$(V.F``` ++M`.AF^___BT98B7XDB7XHC52`&4")1EB-+-:+S>A[````B]@[WW4TC4T@Z(TA ++M``"+V#O?=2:-31SH?R$``(O8.]]U&%7HDP```(O8.]]T(8O.B7Y$Z&,````[ ++MWWX.@>/__P``@<L```>`.]]T`XE>0#E^.'4-.7Y`=0@Y?CQU`XE^1(M&1%_W ++MV!O`7O?0(\-=6\.0D)"0D)"0D)"05HOQC4X@Z/4B``"%P'4,C4X<Z.DB``"% ++MP'4`7L.0D)!65XVQR````+\@````B\[H//[__X/&*$]U\U]>PY"0D%6+[%:+ ++M=0B+1@3!X`>#P`,D_.BY,```B\16B48DZ`X```"-9?Q>7<($`)"0D)"0D%97 ++MBWPD#(O/Z%,```"+/XOPA?:+1RAT0X7`=0.)=RB-C^0```#'1R0!````Z'\@ ++M``"-C^@```#H="```(7VB]9^#('B__\``('*```'@(V/F````.BG^O__B\9? ++M7L($`('LI````%.+&556B4PD&(M)'#/V5XET)$")="1$B;0D@````(ET)'") ++M="1LB70D-.A;'P``.\8/A08)``"+0R0S_SO'#X7W"```BTLTBT,PB^F+\(/` ++M`5565Q//B4,P5XE+-%>-5"0T5XO+B70D<(EL)'3H>`D``(M+<#O'B40D*(E, ++M)!")?"0\B;PDA````(E\)'R)O"2(````B7PD2(E\)!2)?"08#X6[`P``.7PD ++M(`^%L0,``(M4)!R+:V2+0V")?"0DBW((*^B)="1,._=U+8L3BTL4@\(0_Q&+ ++M\#OWB70D3`^$&@(``(M$)"2)/CO'=`2),.L'BT0D'(EP"(U&$#OOB40D+(E$ ++M)#!T)8M+7(M38(O%B6PD%(U,$1")?"08B6PD2(E$)#B)3"0PZ>L```"+$XM+ ++M#(U$)#B)5"0XBU0D+%#HAK?__S/)BU0D%(E$)"B+1"0X`]")5"04BU0D&!/1 ++MB50D&(M4)"0[UW4$B40D2(M3:`/0B5-HBU-L$]$SR8E3;(L3.\*Z`0````^5 ++MP3O/B4PD$'0#B5-PBTPD*#O/=`Z)2TB)4W")5"00B7PD*(M,)!2+5"1`BWPD ++M1"O*BU0D&!O7B90DL````'4%@_D!<D>+1"1<BTPD6%`S_U%75U>-5"0T5XO+ ++MZ``(```[QXE$)"@/A6P"```Y?"0@#X5#`@``BT0D&(M4)!2)1"1$BT0D.(E4 ++M)$#K`C/_BU0D)#/).]>+5"0P#Y3!B80DE````(M$)!")C"2,````B90DD``` ++M`(M4)!R-C"2,````B80DF````(M#&(M2!%&+2QS'A"2D`````0```/\0BY0D ++MG````(N$)*````"#^@''A"2$`````0```(E$)#0/A($```"+A"24````.^]T ++M+8MT)#"+?"0LB\B+T<'I`O.EB\J+E"2<````@^$#\Z2+2V"+="1,`\@S_XE+ ++M8#O7#X6)````.7PD$`^%C````#M$)#AU;(ET)"2+-COOB70D3`^$U_W__S/M ++MB7M@B7MDZ<K]__^X`0```(E$)!")1"1\Z3,!``"X`0```#OOB40D$(F$)(@` ++M``!T'(M,)#B+="0PBWPD+(O!P>D"\Z6+R(/A`_.D,_^)>V")>V3I^````,=$ ++M)"@+````Z0H!``"#^@-U",=$)!`!````BTPD.+X!````.\&)="0\=0N)>V") ++M>V3IP@```(/Z`W5!BU0D,"O(`]`[[XF4)(````")3"1P=`2)="1LBW0D%(M4 ++M)!@K\8M,)"0;USO/B70D%(E4)!@/A8(```")1"1(ZWP[[W0*B40D%(E\)!CK ++M8(O+Z![W__\[QW4*B70D$(ET)'SK68M,)#B+E"24````BVPD%(M\)!@KRKX` ++M````*^F)2V0;_HES8(MT)#")?"08B_B+P0/RB6PD%,'I`O.EB\B#X0/SI(N$ ++M))0````S_SE\)"1U!(E$)$B)?"00.7PD*'49BTPD7(M$)%A1C50D)%"+R^@L ++M!0``B40D*(M$)"B)?"0D.\=U-CE\)#QT*CE\)"!U*HM,)!R+0QB+402+2QS_ ++M4`0[QXE$)"1T#(E\)#S'1"00`0```#E\)"!T",=$)!`!````BT0D$(E\)#`[ ++MQXE\)$QU;(M#6(M+5#O!<S0Y?"0T="Z-5(`9C0S3Z'($```[QW4%_T-8ZQF+ ++M2UB#^0%U#HE,)!")?"0\B40D3.LQB4M4BT0D'(MK6(M(!$$[S1O`(\&#P`6- ++M#("-!,N)1"0PC4@<Z"H;```[QP^%%00``(M$)"@STC/M.\*)5"1`B50D1(E4 ++M)'2)5"1XB50D4(EL)%2)5"1@B50D9`^%<`$``(M$)#R%P`^$9`$``(M$)"2% ++MP`^%6`$``(M,)!RX`0```(M)"(E,)"R%P'0&BW0D2.L<BTPD%(M$)!B+,RO* ++M&\4S_SOX<@AW!#OQ=@*+\8M,)!0#UH/5`+@!````.]&)5"10B6PD5(E$)#1U ++M!CML)!AT`C/`C50D-(M[&%*-3"1DC50D5%&+3"0D4E"+1"0\BU$$BTL<@\`0 ++M5E#_5PB%P(E$)"0/A;8```"+1"0TA<`/A;L```"+5"10BT0D%(ML)%0[T'4* ++M.VPD&`^$H0```(M\)$"+="1$B\J+Q2O/BWPD=!O&BW0D8"OWBWPD9!M\)'B% ++MP'<0<@6#^0%S"87_=P6#_@%R28ML)%R-5"0@58ML)%Q55U9048O+Z'0#``"% ++MP(E$)"AU2HM$)""%P'5"BU0D4(ML)%2+1"1@BTPD9(E4)$");"1$B40D=(E, ++M)'B+1"0LBP@SP(E,)"SIR?[__XM4)%R+1"184E"+R^@2!```BTPD'(M)(.BV ++M&```,^T[Q0^%7P(``(M#)(N\)(0```"Y`0```#O%B6PD+(E,)#0/A3X"```Y ++M:U!T!HE,)"#K1HM$)"0[Q70-B4-,@_@"B4M0B\%T!(M$)'R+5"1,.]5T"(E+ ++M4(E30#/_.\5T"(E+4(E+.#/_.:PDB````'0(B4M0B4L\,_\Y;"0\=%TY;"0@ ++M=!HSR3/`,_8STHE,)%")1"14B70D8(E4)&3K$(M$)%2+3"10BU0D9(MT)&"+ ++M;"1`*\V+;"1$&\6+;"1T*_6+;"1X&]525E!1C8N8````Z&_R__^+\#/MZP2+ ++M="0HBTPD$(N$)(0````STCO-#Y3".\6)5"1H='4[]741._UT#3EL)"!U![@! ++M````ZP(SP(U,)#2+<QB-5"1H48M,)'!2BU0D>%&+C"2,````4HM4)"Q1BTL< ++M4(M2!/]6#(OP._5T#K@!````B40D+(E#4.L,.6PD:'47.6PD$'41BT0D7(M, ++M)%A048O+Z)8"```Y;"0T=&TY;"0\=",[]74?.6M0=1HY;"0D=10Y;"0@=0XY ++MJX0```!U'3EL)"QT1#FKA````'4/BW0D'(M6!(F3@````.L$BW0D'(M$)!2+ ++M3"08B]`+T74&.6PD$'4QBU0D2(E&$(E6#(E.%/^#A````.L$BW0D'#EL)!!U ++M$HM$)#"-2"#H?1<``#O%=6SK,CEL)&AT$8V+Z````.AF%P``.\5U5>L,.6X$ ++M=$S'0R0!````C8OD````Z$D7```[Q74XBTX<B6PD0(EL)$2)K"2`````B6PD ++M<(EL)&R);"0TZ&(6```[Q0^$!_?__U]>75N!Q*0```##,\!?7EU;@<2D```` ++MPY"05HOQZ-CU__^%P'4?BT88C4X8A<!T!#/`7L-6NL!30@#HFQ8``(7`=0)> ++MPWX*)?__```-```'@%[#D)"0D)"0D%-6B_%7B]J-OK````!7_Q5`P$(`BX:( ++M````A<!T)8M$)!2+CI0````[P7(7=PZ+3"00BX:0````.\AV![@!````ZP(S ++MP(D#B[:<````5_\51,!"`(O&7UY;P@@`D)"0D%-6B_%7B]J-OK````!7_Q5` ++MP$(`BY:@````BT0D$(M,)!0#T(M$)!R)EJ````"+EJ0````3T8N.J````(F6 ++MI````(M4)!@#RHF.J````(N.K````!/(BX:<````A<")CJP```!U-HN.F``` ++M`(7)="R+EJP```"+AJ@```!2BY:D````4(N&H````%)0_Q&%P'0*QX:<```` ++M"@```(N&B````(7`="6+3"0DBX:4````.\AR%W<.BU0D((N&D````#O0=@>X ++M`0```.L",\")`XNVG````%?_%43`0@"+QE]>6\(8`)"0D)"0D)"0D)"0D%:+ ++M\5>-OK````!7_Q5`P$(`BX:(````BTPD#(7`BT0D$'02.X:4````=R!R"#N. ++MD````',6B8Z0````B8:4````QX:(`````0```%?_%43`0@!?7L((`)"0D)"0 ++MD)"0D%:+\3/`QT8T`````#/2B_^#^`QR![D$````ZP:+R,'I`D&(A!:0```` ++M0DEU]8A4!FA`@_@F<MFX!`0$!&;'AJ@!`````HF&J@$``(F&K@$``&CU```` ++MB(:R`0``C8:S`0``:@90Z.(C``"#Q`PSP)"(A`:H`@``0(/X`W+SB\BZ`0`` ++M`#T``0``<QOK`XU)`$J(C`:H`@``=01!C5'^0#T``0``<NJ+#=#<0@")CJ@# ++M``"+%=3<0@")EJP#``"AV-Q"`(F&L`,``(L-W-Q"`(F.M`,``%[#S,S,S,S, ++MS,S,B\)6B_&+5C2+R(M`!/_0,\")1BB)1C1>P\S,S,S,S,Q35HOQB]J+5C2% ++MTG0%.5XH=#U7BWPD$(M'!(O/_]"+P_?8@^`#QT8H`````,=&-`````")1C"- ++M%!B+!XO/_]")1C1?A<!U!5Y;P@0`B5XH7K@!````6\($`,S,S,S,S,P/ME0! ++M:(M$)`@/MD0!:%:+="0(*\*-%%)7C3R6#[:4"(\````/MG0*:#OP="`/MG0* ++M9THKQE.+G($,`0``C31VC32WB1Z)M($,`0``6XN$D1`!``")!XF\D1`!``!? ++M7L((`,S,S,S,S,S,S,S,S,S,BT(X@^P,4U56,_97QT(L_P```#M"/'0(N0$` ++M``!FB0@S_XV*$`$``(E\)!")3"04BP$/MEPZ:,<!`````(7`=""+R(OXBP`S ++M[8EQ!&:)*6:)60*+]X7`=>B+3"04BWPD$$>#P02)?"00B4PD%(/_)G*^C4PD ++M$(ET)!")3"04A?9T9HU&`HE$)!@/MP"-3@2+WHLQA<!U"(M$)!2),.M!B4PD ++M%(T,0(T\BP^W;P*-3P(#Q6:#/P!U*#T```$`<R&+?"089HD',_]FB3F-#$"- ++M/(L/MV\"C4\"`\5F@S\`=-B%]G6>BW0D$(O>A?9T?XO_#[=#`HO+BUL$A<!T ++M;#V`````=B:-L'_____![@=&B_^+NJ0!``").8F*I`$``(/`@('!``8``$YU ++MY@^VO!"/````#[9T.F@[\'0>#[9T.F=/*\:+K((,`0``C31VC32QB2Z)M((, ++M`0``BX2Z$`$``(D!B8RZ$`$``(7;=8-?7EU;@\0,P\S,S,S,S,S,S,S,@WHL ++M`%:+\'4;Z'+^__^+A+(0`0``A<!T"XL(B8RR$`$``%[#B\Z-A+(0`0``C4D` ++M08/`!(/Y)G1N@S@`=/*+A(H0`0``4U>+.(F\BA`!```/MG0R:`^V3!%H*\Z- ++M-':-'+`/MK01CP````^V?!9H._ET(`^V?!9G3BO/58NLB@P!``"-/'^-/+N) ++M+XF\B@P!``!=BXRR$`$``(D+7XF<LA`!``!;7L,/MD0R:(M*1/]*+(T$0`/` ++MB_$K<D`#P#OP=@DKR(E*1(O!7L,SP%[#S(N$LA`!``"%P'0*BPB)C+(0`0`` ++MPP^V1#)H5XMZ/(T,0(M".`/)*_@#R3OY7W(&`\B)2CC#B\;I]/[__\S,S,Q1 ++M4U=HF````#/;C880`0``4U#HU1\``(M&-`-&,(M.*(T\`8E&0,'I`[BKJJJJ ++M]^&+1AC!Z@-KTE2+SRO*@\0,B7X\B4Y$B4XXB5XLB48,B]"#^`QR!;H,```` ++M@\C_*\*)1B2)1B"-1_2-D0`&``")5CB)1CR)!HE&!(E>%(E."+H``0``9HD0 ++MN@$!``!FB5`"B4@$B5@(,]*-00*-9"0`,\F(4/[&0/\!9HD(9HE(`D*#P`:! ++M^@`!``!RY(V6_`D``(E4)`A5ZP>-I"0`````BWPD##/MZPB-I"0`````D`^W ++MA>#<0@`STHU+`O?QN@!````KT`^WRC/`C9L`````9HD,1X/`"(/X0'+T@\4" ++M@\<"@_T0<LF#;"0,@$.!^X````!RJ[E0````C;Z\`P``C5FT78O'NA````#K ++M`XU)`&:)"&;'0`(#!`/#2G7R@\$H@\=`@?DX!```<MA?QX:X`P`````'0%M9 ++MP\S,S,S,S%:+\8E1&.B%_O__7L/,S,R![`0!``!3BYPD#`$``(M3"`^W0@)5 ++M#[=J!%:+,\'E$%<S_POH.7L,=`F)5"04OP$```"+1@B%P'13C9L`````B_!F ++M@SX!=!**`HM.!#@!=`R#P08X`77YZP.-3@(/MT$$#[=9`L'@$`O#.\5U#HM& ++M"(E,O!1'A<!UQNL*B_"%_P^$Y````(N<)!@!```/MQ:*30!%B$PD$X/Z`74) ++MBDX#B$PD$NM!BT8$.`AT"HU)`(/`!C@(=?D/MD`!#[=.`D@KRBO(C10`.]%W ++M"XT$@#O(&\#WV.L+C40*_P/),]+W\4#^P(A$)!*+0SP[0SAT"(/`](E#/.LF ++M@[L0`0```'00BX,0`0``BQ")DQ`!``#K#3/`B]/H5_S__X7`=$N*5"03B%`" ++MN0$```!FB0B*3"02B$@#BTR\$(O5P>H09HE0!D]FB6@$B]")<`C!ZA!FB4$" ++M9HE1!(OPA?]UC%]>75N!Q`0!``#"!``SP%]>75N!Q`0!``#"!`#,S,S,S,S, ++MS,R#["!35E>+^8M7"(!Z`1]S98L'BT@(A<ET7&:#.0%U#HI!`SP@<T_^P(A! ++M`^M(BT$$BA(X$'0L@\`&.!!U^8I0`3I0^W(=BUCZBQ!FBW`$B1AFBUC^B5#Z ++M9HE8!&:)</Z#P/J*4`&`^G-S"X#"`HA0`6:#00("@W\,`'4R5^C^_?__B0>) ++M1P2%P'4.B_?H;OS__U]>6X/$(,.+?PAFB4<"P>@09HE'!%]>6X/$(,.+1PB+ ++M3T"*$(@108E/0#M/1'/*BU<(#[="!`^W<@+!X!`+QHE,)!1T)CO!=PI7Z)_] ++M__^%P'2F_T\,=2"+3P0STCL/B40D%`^5PBE70.L-9HE*`L'I$&:)2@2+!XL/ ++M58MO!(E,)"R)!XE'!#OI#X0=`@``#[<Q#[=!`HM/"`^V40$KPBO&0(ET)!R) ++M1"0HC60D``^W70")7"04@_L!#X3!````]L,!#X6'````B\/1Z`^VC#B/```` ++MB40D$`^VA#B0````B4PD(#O(=&>-<0&+U^@\^___B40D)(7`#X2G`0``BTPD ++M$(MU!(O0B4PD$(U.""O&BUGXB1J+6?R)6@2+&8D<"(/"#(/!#/],)!!UY(M$ ++M)""+E(<0`0``BUPD%(D6B;2'$`$``(M$)"2+="0<B44$#[=%`HT,W0`````[ ++MR!O20HT,G0`````[\1O)02/1C0P;.\X;R??9`\B-#%'I@````(N'$`$``(7` ++M=`J+$(F7$`$``.LG#[9':(M7/(T,0(M'.`/)`\DKT#O1<@<#R(E/..L),\"+ ++MU^BC^?__A<`/A.(```"*30(/ME4#B`@/MTT$9HE(`@^W309FB4@$B44$@_H> ++M<P0#TNL%NG@```"(4`&X`P```#O&&\GWV0-/$`/*BT4$C11;BU\(C110#[9# ++M`8H;B!J+7"040XUQ!@^OQHMT)"AFB5T`BUPD&&:)6@+!ZQ`#\6:)6@2-''8# ++MP`/;B50D)#O#<QJ-'+4`````.\,;VSOP&\#WV(U$`P*#P0/K*XO6P>($*]8[ ++MPAO2C1QV`]M"`]L[PQO;0P/3C33V.\8;P(U$`@6+5"0D`\AFB4T"B$(!BVT( ++M.VPD+'00BW0D'.D)_O__B_?HPOG__UU?7EN#Q"##S,S,S,S,S,S,S(L&@^P4 ++M4U6+:`2+1@A7.\5T*HL09HMX!(U(^NL#C4D`BQF)&&:+601FB5@$@^@&@^D& ++M.\5UZHD09HEX!(L^#[9(`0^W7P(STBO9.58,#Y7"B50D%(U4"@0/MP_1ZDF) ++M3"00B%`!#[9(!P^V>`&#P`8KV0-,)!31Z0/1B50D#(A(`3O/=D"+$(E4)!AF ++MBU`$9HE4)!R+T(MZ^HDZ9HMZ_F:)>@2#Z@8[U70(#[9Z^SO/=^2+3"08B0IF ++MBTPD'&:)2@2+5"0,_TPD$'6:0(`X``^%_````#/)@^@&08`X`'3WBQ8/MSH# ++MV8O'*\&-3P'1Z6:)`H/X`754#[9%`>L&B_^+1"000-'KT>B)1"00@_L!=^Z- ++M0@*+50")$&:+501FB5`$BE0D$(A0`8E&"`^VA#&/````BXR&$`$``(E-`%^) ++MK(80`0``75N#Q!3#C5`!T>H[RG1X#[:\,8\````/MH0RCP```(E\)!0[^'1@ ++MBXR&$`$``(7)=$R+.8F\AA`!``"+!HE4)!"+T8E(!(U%""O5BWCXB3F+>/R) ++M>02+.(D\`H/!#(/`#/],)!!UY(M$)!2+C(80`0``B4T`B:R&$`$``.L)5U6+ ++MSNCC]/__BU0D#(L&B\O1Z2O1`]-?9HE0`HM0!%V)5@A;@\04P\S,S,Q65XLY ++M#[<W@?X``0``=&Y3B\8KP@^VG`BG`@``.\(;TE7WVHON:^T+C12:#[=?`HM_ ++M"`^W/SO=&]LK_O?;.\<;P(T44_?8C110`U$<#[>TD;P#``"-A)&\`P``BD@" ++MB];3ZC/)75LK\H72#Y3!9HDP7UX#RHM4)`2)"L($`(V!N`,``(M,)`Q?QP$! ++M````7L($`,S,S,S,S,S,S,S,S,S,5HOQBT8(BPX/ME`!9H-!`@0/MDC[@\($ ++MB%`!.]%V+U-FBU@$58MH^HU(^E>+.(DH9HMI!(DY7V:):`1FB5D$78E."%N# ++M^GQV!>@B_?__BTX(#[=!!`^W40+!X!`+PH-^#`!U##M&0'8'B0:)1@1>PXO. ++M7NFH^?__S,S,S,S,S,Q35HOQBU8(#[9"`5>+/@^W7P*-#``[V1O)]]D!3B"# ++MPP2#P`2)3A1FB5\"B$(!@_A\=@7HN/S__XM."`^W000/MU$"P>`0"\*#?@P` ++M=0X[1D!V"5^)!HE&!%Y;PU^+SEY;Z3KY___,S,S,S,S,S,S,5HOQBTX(#[9! ++M`8M6)(E6((L69H-"`@2#P`2(00&#^'QV!>A9_/__B\Y>Z0'Y___,5HOQBTX, ++MQT8$`````,<&_____XL!_]"$P'0$,\!>PU>_!````(M.#(L1_]*+3@0/ML#! ++MX0@+P4^)1@1UZ(/X_QO`7_?87L/,S,S,S,S,S,R![`P!``!355:+\8LN9H-] ++M``%7#X3@`0``BT4$#[==`HE$)!2+1D@STO?SBWY,,]*+R(O']_&+5"04B4Y( ++M#[92`8E,)!B+R"O">6J+1"08#Z_"B49(/0````%S.XM.5(L!_]"+5DS!9D@( ++M#[;(P>(("\J!?D@````!B4Y,<QF+3E2+`?_0BU9,#[;(P>(("\K!9D@(B4Y, ++MBT0D%(E&"(H8B\[H:?[__U]>70^VPUN!Q`P!``##QT84``````^W50!*B50D ++M$(M4)!2#P@:)5"04#[92`2O"#XBA````_TPD$'7C.\L/@W($```KR(M$)!@K ++MV8O0#Z_8BT8(#Z_1*_J)?DR)7D@/M@B!P<````#!Z06#X0B)3APSP(VD)``` ++M``"#R?^)3(0<B4R$((E,A"2)3(0HB4R$+(E,A#")3(0TB4R$.(/`"(/X0'+5 ++MBWPD%`^V%XM%!,9$%!P`C9L`````#[8(#[90!H/`#,9$#!P`QD04'``[QW+H ++MZ>,!``"+;"04#[95`8M>2"O**\@/K\N+PP^OPBOYB7Y,B49(/0````%S.XM. ++M5(L!_]"+5DS!9D@(#[;(P>(("\J!?D@````!B4Y,<QF+3E2+`?_0BU9,#[;( ++MP>(("\K!9D@(B4Y,B6X(BET`B\[HI?S__U]>70^VPUN!Q`P!``##BT8(#[8` ++M!<````#!Z`6#X`B)1AR+30@/MQ$/MHPRIP$```^V50*!PL````"-?0+!Z@2# ++MXA`#R@^V50/!X@8#T(M&(,'X&H/@(`/1`\(#1A0/MXQ&?`D``(V41GP)``"+ ++M1DC!Z`X/K\&-62#!ZP<KRSE&3`^#BP```(/I@&:)"HE&2#T````!<QF+3E2+ ++M$?_2BTY,#[;`P>$("\'!9D@(B49,#[='!`^W5P(/MD\!BA_!X!`+PKH!```` ++M`58@B584@?F`````#Y+"`M&)?@B(5P&#?@P`=1@[1D!V$U^)!HE&!%Y=#[;# ++M6X'$#`$``,.+SNC!]?__7UY=#[;#6X'$#`$``,-FB0K!Z0H/MHPQJ`,``"E& ++M3"E&2(E.$#/`ZPB-I"0`````D(/)_XE,A!R)3(0@B4R$)(E,A"B)3(0LB4R$ ++M,(E,A#2)3(0X@\`(@_A`<M6+%@^V0@+&1`0<`,=&%`````"-20"_`````3E^ ++M2',WBTY4BQ'_THM.3,%F2`@/ML#!X0@+P8E&3#E^2',9BTY4BQ'_THM.3`^V ++MP,'A"`O!P69("(E&3(L.#[<!B40D$+H!````D`%6#(M)"(7)#X36````#[<Y ++M._ATZXM1!`^V.@^W`0^V:@$/MGP\'(O8@^`!(_V+Z/?=C01`T>LC_8T$0HD. ++MB_\/ME`&#[8(#[9H!P^V5!0<#[9,#!R#P`PCU0^V:/4CS0/Y`_I+==F-5"08 ++M4HM4)!2+SNC)^?__BUPD&(E$)!"+1D@ST@/?]_.+3DPSTHE<)!B+Z(O!]_6) ++M;D@[QW)4.\,/@P8!``"+Q0^OQRO(BT0D$(E.3(O+*\\/K\V)3DAF`1B+#HM! ++M!`^W"8T428T,4)`/MA"#P`;&1!0<`#O!=?'IS/[__U]>78/(_UN!Q`P!``## ++MBPZ+>02+R(VD)``````/MA</ME\!#[94%!PCTX/'!BO">>L/ME?[@^\&*\B+ ++MW2O*#Z_+*4Y,B\,/K\*)1D@]`````7,[BTY4BP'_T(M63,%F2`@/MLC!X@@+ ++MRH%^2`````&)3DQS&8M.5(L!_]"+5DP/MLC!X@@+RL%F2`B)3DR+1"00BD@" ++M@/D'<Q3^2`-U#V;1(+(#TN+^P8A(`HA0`XE^"(H?B\[H,OK__U]>70^VPUN! ++MQ`P!``##7UY=N/[___];@<0,`0``P\S,S,Q6B_&+!H7`=")0_Q74P$(`A<!U ++M$?\5],!"`(7`=0^X`0```%[#QP8`````,\!>P\QJ_U'_%1S`0@"#^/]U#?\5 ++M],!"`(7`=0.#R/_#S,S,S%-65XOQBP9J_U#_%1S`0@"+/?3`0@"#^/]U"__7 ++MA<!U!8/+_^L"B]B+!H7`=!Y0_Q74P$(`A<!U#?_7A<!U#[@!````ZPC'!@`` ++M```SP(7;=`*+PU]>6\/,S,S,S,S,S%:-1"0(4&H`B_&+3"0045)J`&H`Z$<0 ++M``"#Q!B)!EZ%P'0%,\#"!`#_%?3`0@"%P'4%N`$```#"!`#,S,S,S,R+`5#_ ++M%13`0@"%P'0#,\##_Q7TP$(`A<!U!;@!````PXL!4/\5$,!"`(7`=`,SP,/_ ++M%?3`0@"%P'4%N`$```##,\"%TE8/E<!J`(OQ4&H!:@#_%1C`0@")!EZ%P'0# ++M,\##_Q7TP$(`A<!U!;@!````P\S,S,S,S,S,S,S,S,S,S%9J`&H`:@!J`(OQ ++M_Q48P$(`B09>A<!T`S/`P_\5],!"`(7`=06X`0```,/,S,S,S%:+\8L&5XOZ ++MA<!T$5#_%=3`0@"%P'0CQP8`````BT0D#&H`4%=J`/\5#,!"`(D&A<!T!U\S ++MP%["!`#_%?3`0@"%P'4%N`$```!?7L($`,S,BP%J`%)0_Q4(P$(`A<!T`S/` ++MP_\5],!"`(7`=06X`0```,/,S,S,S,S,S,S,S,S,BP%J`&H!4/\5",!"`(7` ++M=`,SP,/_%?3`0@"%P'4%N`$```##S,S,S,S,S,S,S,S,58OL:O]H"!M#`&C& ++MA$(`9*$`````4&2))0````"#[`A35E>)9>C'1?P`````4?\5!,!"`,=%_/__ ++M__\SP(M-\&2)#0````!?7EN+Y5W#N`$```##BV7HQT7\_____[@(````BTWP ++M9(D-`````%]>6XOE7</,S,S,S,S,S,S,S,Q6B_&+!H7`=`]0_Q40P$(`A<!T ++M&#/`7L-J`&H`:@!J`/\5&,!"`(D&A<!UZ/\5],!"`(7`=06X`0```%[#S,S, ++M4U56BW0D$,'N`HO&T>B#P`.)`8/!$#/`5[\!````A?9T#8L:B1R!0(/"!#O& ++M<O.+1+'\C11VC521<(E4)!0STH72=6"+T('B_P````^VD@#=0@"+V,'K&`^V ++MFP#=0@#!X@@+TXO8P>L0P>@(@>/_````#[:;`-U"`"7_````#[:``-U"`,'B ++M"`O3,\?!X@@#_PO"]\<``0``=`6_&P```(O6ZU6#^@1U4(/^!G9+B]C!ZQ"+ ++MZ,'M&`^VK0#=0@"!X_\````/MIL`W4(`P>4("]V+Z,'M"('E_P````^VK0#= ++M0@#!XP@E_P````^V@`#=0@`+W<'C"`O#,P&#P02)1+'\2CM,)!0/A3/___]? ++M7EU;P@0`S,S,S,S,S,S,S,S,5E>+?"0,5XOQZ-+^__^-5Q0SR872=&]3ZP:- ++MFP````"+1(X@B_C![Q"!Y_\````/MK\`W4(`BSR]`$U#`(O8P>L(@>/_```` ++M#[:;`-U"`#,\G0!)0P"+V,'K&`^VFP#=0@`S/)T`44,`)?\````/MH``W4(` ++M,SR%`$5#`$&)?(X<.\IRFUM?7L($`,S,S,S,BP*)`8M"!(E!!(M""(E!"(M2 ++M#(E1#,/,S,S,S,S,S,R#[$"#?"1$`(O!B40D#`^$/04``%-5C4H(5HE,)!!7 ++MD(M1^(LIBWG\BTD$B4PD/(M($(E,)!#!X06+=`@@BUP(*#/=,_*-1`@@BT@$ ++MB6PD.#//B50D,(M0##-4)#R)?"0TB_J+Z\'M$('E_P```,'O"('G_P```(L\ ++MO0!)0P`S/*T`34,`B^G![1@S/*T`44,`B^Z!Y?\````S/*T`14,`B50D+(ON ++MP>T(@>7_````P>H0@>+_````BQ25`$U#`#,4K0!)0P"+Z\'M&#,4K0!10P"+ ++MZ8'E_P```#,4K0!%0P")="0@B^G![A#![0B!YO\```"!Y?\```")="08BS2M ++M`$E#`(ML)!@S-*T`34,`BVPD+#-X\#-0],'M&#,TK0!10P"+Z\'K",'I$('C ++M_P```(L<G0!)0P"!X?\````S'(T`34,`BTPD(,'I&#,<C0!10P"+3"0L@>7_ ++M````,S2M`$5#`(/H(#-P&('A_P```#,<C0!%0P`S6!S_3"00#X0H`@``B\O! ++MZ0B!X?\```"+#(T`24,`B^[![1"!Y?\````S#*T`34,`B^K![1@S#*T`44,` ++MB^^!Y?\````S#*T`14,`B^\S",'M"(E,)""!Y?\```"+R\'I$('A_P```(L, ++MC0!-0P`S#*T`24,`B^[![1@S#*T`44,`B^J!Y?\````S#*T`14,`B^\S2`3! ++M[1")3"0DB\K!Z0B!Y?\```"!X?\```"+#(T`24,`,PRM`$U#`(OKP>T8,PRM ++M`%%#`,'J$(ON@>+_````@>7_````,PRM`$5#`,'N"#-("('F_P```(LLM0!) ++M0P`S+)4`34,`P>\8,RR]`%%#`('C_P```#,LG0!%0P"+\3-H#,'N$(O5P>H( ++M@>+_````BSR5`$E#`(M4)"3!ZAB!YO\````S/+4`34,`BW0D(#,\E0!10P"+ ++MUH'B_P```#,\E0!%0P"+U3-X\(/H(,'J$(O>P>L(@>+_````@>/_````BQ25 ++M`$U#`#,4G0!)0P"+V<'K&#,4G0!10P"+7"0D@>/_````,Q2=`$5#`(M<)"3! ++MZPB!X_\```"+')T`24,`P>X0@>;_````,QRU`$U#`(OUP>X8,QRU`%%#`(OQ ++M,U`4@>;_````,QRU`$5#`,'I"#-8&('A_P```(L,C0!)0P"+\XM<)"3!ZQ"! ++MX_\````S#)T`34,`@>7_````B]F+3"0@P>D8,QR-`%%#`#,<K0!%0P`S6!S_ ++M3"00#X78_?__B^K![1@/MJT`54,`P>4(B\[!Z1"!X?\````/MHD`54,`"\W! ++MX0B+Z\'M"('E_P````^VK0!50P`+S<'A"(OO@>7_````#[:M`%5#``O-,PB+ ++M[HE,)$#![1@/MJT`54,`P>4(B\O!Z1"!X?\````/MHD`54,`"\W!X0B+[\'M ++M"('E_P````^VK0!50P`+S<'A"(OJ@>7_````#[:M`%5#``O-,T@$B4PD1(O/ ++MP>D0@>'_````#[:I`%5#`(O+P>D8#[:)`%5#`,'A"`OIB\K!Z0B!X?\````/ ++MMHD`54,`P>4("^F+SH'A_P````^VB0!50P#!ZA#!Y0@+Z3-H"('B_P````^V ++MD@!50P#![Q@/MH\`54,`P>$("]'![@B!YO\````/MHX`54,`P>(("]&!X_\` ++M```/MHL`54,`P>(("]$S4`R+1"0<BS`S="1`BTPD%(EQ^(MP!#-T)$2#P1") ++M<>R+<`@S]8EQ\(MP##/RBU0D,(EQ](D0BU0D-(E0!(M4)#B)4`B+5"0\B5`, ++MBU0D5$J)5"14B4PD%(72#X73^O__7UY=6X/$0,($`,S,S,S,S,S,S#/`#[:( ++M`-U"`(B!`%5#`$`]``$``'+K5E-5,_97C4D`#[:.`-U"`(O1@.*`#[;"]]@; ++MP(/@&XT4"3/")?\```"+^#/YB]?!X@@+T<'B"`O1P>(("]")%+4`-4,`#[:N ++M`%5#`(O1P>((B]H+T`O9P>,("]C!X`@+Q\'@"`O!P>(("]?!X`@+P<'B"`O1 ++MB02U`$%#`,'C"`O?B\4D@`^VP/?8&\")%+4`/4,`@^`;C4PM`#/!)?\```"+ ++MT(#B@`^VRO?9&\F#X1N-%``SRH'A_P```(O1@.*`#[;2]]H;TH/B&XT\"3/7 ++M@>+_````B_J)'+4`.4,`B]HST3/X,_V+RC/"B]<SW3/-P>(("]'!X@@+T\'B ++M"`O0B12U`$5#`(O1P>(("]/!X@@+T,'B"`O7B12U`$E#`(O3P>(("]#!X`@+ ++MQ\'B",'@"`O7"\'!X@C!X`@+T0O#B12U`$U#`(D$M0!10P!&@?X``0``#X*P ++M_O__OI!X0@#H!@<``%]=6X7`=!J^\(Q"`.@5"```A<!T#+@`CD(`HQ2&0P!> ++MPXDU%(9#`%[#S,S,S,S,S,S,S,S,S(M$)`1H`%9#`%#H(1(``,($`,S,S,S, ++MS,S,S,S,S,S,4HO1@\G_Z-7____WT,/,S#/2B\*#X`'WV"4@@[CMB\K1Z3/! ++MB\B#X0'WV8'A((.X[='H,\B+P8/@`='I]]@E((.X[3/!B\B#X0'WV8'A((.X ++M[='H,\B+P8/@`='I]]@E((.X[3/!B\B#X0'WV8'A((.X[='H,\B+P8/@`='I ++M]]@E((.X[3/!B\B#X0'WV8'A((.X[='H,\B)#)4`5D,`0H'Z``$```^"9O__ ++M_[@$5D,`NL`"``!6BTC\B_'!Z0B!YO\````S#+4`5D,`@\`0B8CL`P``BTCP ++MB_'!Z0B!YO\````S#+4`5D,`B8CP`P``BTCTB_'!Z0B!YO\````S#+4`5D,` ++MB8CT`P``BTCXB_&!YO\```#!Z0@S#+4`5D,`2HF(^`,``'6.7L-6B_'H-P4` ++M`/9$)`@!=`=6Z)F?_?]9B\9>P@0`S/\E>,%"`,S,:O]09*$`````4(M$)`QD ++MB24`````B6PD#(UL)`Q0P\S_)73!0@#_)7#!0@#_)6S!0@#_)63!0@!5B^QJ ++M_V@XX$(`:,:$0@!DH0````!09(DE`````(/L#%-65X-EY`"+=0R+Q@^O11`! ++M10B#9?P`_TT0>`LI=0B+30C_513K\,=%Y`$```"#3?S_Z!$```"+3?!DB0T` ++M````7UY;R<(0`(-]Y`!U$?]U%/]U$/]U#/]U".@!````PU6+[&K_:$C@0@!H ++MQH1"`&2A`````%!DB24`````45%35E>)9>B#9?P`_TT0>!N+30@K30R)30C_ ++M513K[?]U[.@:````6<.+9>B#3?S_BTWP9(D-`````%]>6\G"$`"+1"0$BP"! ++M.&-S;>!T`S/`P^GT`P``58OL:O]H6.!"`&C&A$(`9*$`````4&2))0````"# ++M[!!35E<SP(E%X(E%_(E%Y(M%Y#M%$'T3BW4(B\[_510#=0R)=0C_1>3KY<=% ++MX`$```"#3?S_Z!$```"+3?!DB0T`````7UY;R<(4`(-]X`!U$?]U&/]UY/]U ++M#/]U".@+____P\S,4U:+1"08"\!U&(M,)!2+1"00,]+W\8O8BT0D#/?QB]/K ++M08O(BUPD%(M4)!"+1"0,T>G1V]'JT=@+R77T]_.+\/=D)!B+R(M$)!3WY@/1 ++M<@X[5"00=PAR!SM$)`QV`4XSTHO&7EO"$`#,S,S,S,S,S%.+1"04"\!U&(M, ++M)!"+1"0,,]+W\8M$)`CW\8O",]+K4(O(BUPD$(M4)`R+1"0(T>G1V]'JT=@+ ++MR77T]_.+R/=D)!21]V0D$`/1<@X[5"0,=PAR#CM$)`AV""M$)!`;5"04*T0D ++M"!M4)`SWVO?8@]H`6\(0`,S,S,S,S,S,S,S,@/E`<Q6`^2!S!@^MT-/JPXO" ++M,]*`X1_3Z,,SP#/2P\S_)6#!0@#_)5S!0@#_)0C!0@#,S,S,S,S,S,S,S,S, ++MS(M$)`B+3"00"\B+3"0,=0F+1"0$]^'"$`!3]^&+V(M$)`CW9"04`]B+1"0( ++M]^$#TUO"$`#_)0S!0@#,S,S,S,R`^4!S%8#Y(',&#Z7"T^##B]`SP(#A']/B ++MPS/`,]+#@ST@AD,`_W4,_W0D!/\5),%"`%G#:!R&0P!H((9#`/]T)`SHOP$` ++M`(/$#,/_="0$Z,O____WV!O`6??82,/,S,Q1/0`0``"-3"0(<A2!Z0`0```M ++M`!```(4!/0`0``!S["O(B\2%`8OABPB+0`10P\S_)1#!0@#_)13!0@!5B^QJ ++M_VAHX$(`:,:$0@!DH0````!09(DE`````(/L:%-65XEEZ#/;B5W\:@+_%5#! ++M0@!9@PT<AD,`_X,-((9#`/__%4S!0@"+#1"&0P")"/\52,%"`(L-#(9#`(D( ++MH43!0@"+`*,8AD,`Z"(!```Y'8`Q0P!U#&A:AD(`_Q5`P4(`6>CT````:%PP ++M0P!H6#!#`.C?````H0B&0P")192-1910_S4$AD,`C46<4(U%D%"-1:!0_Q4X ++MP4(`:%0P0P!H`#!#`.BL````@\0DH33!0@"+,(EUC(`^(G4Z1HEUC(H&.L-T ++M!#PB=?*`/B)U!$:)=8R*!CK#=`0\(';RB5W0C46D4/\5`,!"`/9%T`%T$0^W ++M1=3K#H`^(';81HEUC.OU:@I84%934_\5D,!"`%#H`(K]_XE%F%#_%3#!0@"+ ++M1>R+"(L)B4V(4%'H(0```%E9PXMEZ/]UB/\5*,%"`/\E&,%"`/\E',%"`/\E ++M(,%"`/\E+,%"`/\E/,%"`&@```,`:````0#H!P```%E9PS/`P\/_)53!0@#, ++MS,S,S,S,S,S,S,R#[!#_%2#`0@`\!7(DZ&X!``"%P'0;N@$```"-#"3H/0$` ++M`(M$)`C!Z!F#X`&#Q!##,\#!Z!F#X`&#Q!##S,S,@^P0:A'_%23`0@"%P'1# ++M_Q4@P$(`/`5R.>@B`0``A<!T,+H!````C0PDZ/$```"+1"0()0```!@]```` ++M&'43,\D/`="#X`8\!@^4P8O!@\00PS/`@\00P\S,S,S,S,S,@^P0_Q4@P$(` ++M/`5R)>C.````@_@'<ANZ!P```(T,).B<````BT0D!,'H'8/@`8/$$,,SP(/$ ++M$,/,S,S,S,S,S(/L$/\5(,!"`#P%<B3HC@```(7`=!NZ`0```(T,).A=```` ++MBT0D",'H"8/@`8/$$,,SP,'H"8/@`8/$$,/,S,R#[!#H&/___X7`="[H3P`` ++M`(/X!W(DN@<```"-#"3H'0```(M$)`2+3"0(P>@%P>D)(\&#X`&#Q!##,\"# ++MQ!##4U>+^8O",\D/HHD'B5\$B4\(B5<,7UO#S,S,S,S,S,R<G`^Z/"05G9Q8 ++M,P0DG24``"``=`A3,\`SR0^B6\/,S('L0`$``(.\)$0!````5XOYB50D'(E\ ++M)$`/A(\"``"+3PB+5PR+!XE4)!"+5Q13BU\0B4PD"(E,)"R+3"0458MO!(E4 ++M)!")5"0\BU0D)(E,)#2-3"1,5HMW&"O1BW\<B7PD((E$)"R);"0PB5PD/(ET ++M)$2)?"1(B50D*.L#C4D`,\F)3"08C7PD4`//B_O!SQF+%!$/RHD1B\O!R0LS ++M^8O+P<D&,_F+SC-,)!0CRS/.`_F+3"08`[D`WD(`B\@#^L')#0-\)""+U8ET ++M)"`+T(MT)!0C5"00B70D)(OPP<X6,_&)7"04BUPD'(O(P<D"`]\S\8O-(\@+ ++MRHM4)!`#SXEL)!`#SHE4)!R+="0DB^B+5"0HB\&+3"08@\$$B4PD&(/Y0`^" ++M7?___[I`````B50D&(MT%!2+5!1(B_J+RL'/$\')$3/YP>H*,_J+SL')!XO6 ++MP<H2,]'![@,SUHO+BW0D&`/7P<D+B_O!SQDS^8O+`U0T$`-4-#3!R08S^8E4 ++M-%"+3"0D,TPD%"/+,TPD)`/YB\Z^`-Y"``,\,8MT)"0#^@-\)""+U8M,)!0+ ++MT"-4)!")3"0DB\B)="0@B_#!R0W!SA8S\8E<)!2+7"0<B\C!R0(#WS/QB\TC ++MR`O1B\T#^HOHBU0D&`/^BW0D$(/"!(ET)!R+QXE,)!")5"08@?H``0``#X(I ++M____BU0D,(M$)"P#U8OJB50D,(M4)#0#QXM\)$P#T8M,)#@#SHE4)#2)3"0X ++MB4PD'(E/#(M,)#P#RXE4)!"+V8E,)#R+3"1``TPD%(E7"(O1B4PD0(E,)!2+ ++M3"1$`TPD)(OQB5<4BU0D*(E,)$2#PD"+3"1(`TPD((.L)%0!```!B40D+(D' ++MB6\$B5\0B7<8B4PD2(E,)"")3QR)5"0H#X75_?__7EU;7X'$0`$``,($`,S, ++MS,S,S,S,Z#O\__^%P'0>Z'+\__^%P'05QP58,4,`D)-"`,<%`(9#`)"30@## ++MQP4`AD,``````,<%6#%#`!"(0@##S,S,S%-55HOQ5XOZBU8(@^(_QD0R0(!" ++M@_HX=C&#^D!T&+A`````C4Y`*\(#RE!J`%'HF?C__X/$#(L&C5Y`C6X@B]-J ++M`8O-_]`STNL&C5Y`C6X@N#@````KPE"-1D`#PFH`4.AG^/__BTX(@\0,BT8, ++MB],/I,@#P>$##\@/R8E&>(L&B4Y\B\UJ`?_0B]6[!````(M*!(U_"(L"C5(( ++M#\B)1_@/R8E/_(/K`77F7XE>"(E>#,=&)(6N9[O'1BAR\VX\QT8L.O5/I<=& ++M,']2#E''1C2,:`6;QT8XJ]F#'\=&/!G-X%M>QT4`9^8):EU;P\S,S*%8,4,` ++MB0''00@`````QT$,`````,=!(&?F"6K'022%KF>[QT$H<O-N/,=!+#KU3Z7' ++M03!_4@Y1QT$TC&@%F\=!.*O9@Q_'03P9S>!;P\S,4U57BWPD$(OJB]F%_W1\ ++MBT,(5H/@/[Y`````*_`!>PB#4PP`._=V%U>#P$`#PU50Z+WT__^#Q`Q>7UU; ++MP@0`A<!T(%:#P$`K_@/#55#HH/3__XL#C5-`@\0,C4L@`^YJ`?_0BP.-2R"+ ++M]XO5P>X&5O_0@^<_=!/!Y@:-0T!7`_564.AK]/__@\0,7E]=6\($`,S,S,S, ++MS,S,S,S,S,S,S%97BT0D#(MQ$,'F!68/;RF#P2!F#V\T,68/;SF#[A#ID``` ++M`(VD)`````#K`\S,S&8/;PIF#V]2$&8/;UH@9@]O8C"+_F8/[\YF#^_69@_O ++MWF8/[^9F#V\$.68/.-[(9@\XWM!F#SC>V&8/.-[@@^\0=>)F#SC?SV8/.-_7 ++M9@\XW]]F#SC?YV8/[\UF#^\29@_O6A!F#^]B(&8/;VHP9@]_"F8/?U(09@]_ ++M6B!F#W]B,(/"0(/H!`^#<____X/`!(/N$.LV9@]O`HO^9@_OQF8/.-Y$.1!F ++M#SC>!#F#[R!U[F8/.-Y!$&8/.-_'9@_OQ68/;RIF#W\"@\(0@^@!<\5F#W]I ++MX%]>P@0`C9L`````5E>+1"0,BW$0P>8%@_@(#X+G_O__Q?EO*8/!(,3B?5HT ++M,<3B?5HY@^X0B_X#]E.![,`!``"+W(/CX,3B?5H$.<7]?P1[@^\0=?"#Z`B- ++M20"+_L7-[PK%S>]2(,7-[UI`Q<WO8F#%_6\$.\3B==[(Q.)MWM#$XF7>V,3B ++M7=[@@^\@=>+$XG7?S\3B;=_7Q.)EW]_$XEW?Y\3C53@J`<7U[\W%[>]2$,7E ++M[UHPQ=WO8E#%^6]J<,7^?PK%_G]2(,7^?UI`Q?Y_8F"!PH````"#Z`@/@WG_ ++M__^#P`C1[H'$P`$``%O%^'?IN?[__\($`(O_5E>+1"0,BW$0P>8%9@]O`8/! ++M(&8/;Q%F#V]9$&8/;V$@9@]O:3!F#V]Q0&8/;WE0`\[WWH/&8.M,C:0D```` ++M`&8/;PJ+_F8/[\IF#^_!9@\XW,-F#SC<Q&8/.-S%9@\XW,9F#SC<QV8/.-P$ ++M.68/.-Q$.1"#QR!U[F8/.-T!9@]_`H/"$(/H`7.V9@]_1#&`7U["!`"-I"0` ++M````C60D`%97BT0D#(MQ$,'F!68/;RF#P2!F#V\Y`\[WWH/&$+\!````9@]N ++M]^F5````C60D`&8/U.YF#V_-9@_4[F8/;]5F#]3N9@]OW68/U.YF#V_EB_YF ++M#^_/9@_OUV8/[]]F#^_G9@]O!#EF#SC<R&8/.-S09@\XW-AF#SC<X(/'$'7B ++M9@]O`68/.-W(9@\XW=!F#SC=V&8/.-W@9@_O"F8/[U(09@_O6B!F#^]B,&8/ ++M?PIF#W]2$&8/?UH@9@]_8C"#PD"#Z`0/@V;___^#P`2#Z1"#QA#K-F8/U.YF ++M#V_'B_YF#^_%9@\XW`0Y9@\XW$0Y$(/'('7N9@\XW`%F#SC=01!F#^\"9@]_ ++M`H/"$(/H`7/%9@]_;#'07U["!`#K`\S,S%97BT0D#(MQ$,'F!8/X"`^"U_[_ ++M_\3B?5HI@\$@Q.)]6CF_`0```,7Y;O?%U?ONQ<G4]L3C33CV`0/.@^X0]]Z+ ++M_@/V4XU<)."![.`!``"#X^#$XGU:`<7]?P/$XGU:!#G%_7\$>X/'$'7P@^@( ++MB_^+_L75U.[%U>_/Q=74[L75[]?%U=3NQ=7OW\75U.[%U>_GQ?UO!#O$XG7< ++MR,3B;=S0Q.)EW-C$XEW<X(/'('7BQ?UO`\3B==W(Q.)MW=#$XF7=V,3B7=W@ ++MQ?7O"L7M[U(@Q>7O6D#%W>]B8,7^?PK%_G]2(,7^?UI`Q?Y_8F"!PH````"# ++MZ`@/@W/___^#P`C$XWTY[0'1_H'$X`$``%O%^'?IY_W__\($`,S,S,S,S%-5 ++M5E>+P8M\)!2+;"08@_\?#X*)`0``]\(#````=!,/MC(/MMA"P>@(,_,S1+4` ++M3^OE,P*-?#KE*]>-FP````"+3!<,BUP7"`^V\S.,M0`,```/MO?!ZQ`SC+4` ++M"```#[;SP>L(,XRU``0``#-,G0"+7!<$#[;S,XRU`!P```^V]\'K$#.,M0`8 ++M```/MO/!ZP@SC+4`%```,XR=`!````^V\(O8P>L8,XRU`"P``#.,G0`@``#! ++MR!`/MO#!Z!@SC+4`)```,XR%`"@``(M$%QB+7!<4#[;S,X2U``P```^V]\'K ++M$#.$M0`(```/MO/!ZP@SA+4`!```,T2=`(M<%Q`/MO,SA+4`'```#[;WP>L0 ++M,X2U`!@```^V\\'K"#.$M0`4```SA)T`$```#[;QB]G!ZQ@SA+4`+```,X2= ++M`"```,')$`^V\<'I&#.$M0`D```SA(T`*```@\(8#X/?_O__@\<8@^H8#[;8 ++M#[;,P>@0#[;PP>@(BT2%`#.$G0`,```SA(T`"```,X2U``0``(/"!'(%,P07 ++MZ\X#UX/'`ROZA?]T$P^V,@^VV$+!Z`@S\S-$M0!/=>U?7EU;P@@`S,Q358OL ++MBUPD#(/D\(/L$(T%$-]"`(/[``^$#@,``/,/;Q'S#V]9$&8/<,(;9@]PTQMF ++M#V_:9@]LT&8/;=B-9"0`9@]_%"1F#V_+9@]O!0#?0@#S#V\B9@\X`.#S#V]J ++M$&8/.`#H\P]O<B!F#S@`\/,/;WHP9@\X`/AF#V\`9@_^Q`\XR]-F#W#`#@\X ++MR]IF#V]`$&8/_L4/.,O39@]PP`X/.,SE#SC+VF8/;T`@9@_^Q@\XR]-F#W#` ++M#@\XS.X/.,O:9@]OQV8/.@_&!&8/_N`/.,WG9@]O0#!F#_['#SC+TV8/<,`. ++M#SC,]P\XR]IF#V_$9@\Z#\<$9@_^Z`\XS>QF#V]`0&8/_L0/.,O39@]PP`X/ ++M.,S\#SC+VF8/;\5F#SH/Q`1F#_[P#SC-]68/;T!09@_^Q0\XR]-F#W#`#@\X ++MS.4/.,O:9@]OQF8/.@_%!&8/_O@/.,W^9@]O0&!F#_[&#SC+TV8/<,`.#SC, ++M[@\XR]IF#V_'9@\Z#\8$9@_^X`\XS>=F#V]`<&8/_L</.,O39@]PP`X/.,SW ++M#SC+VF8/;\1F#SH/QP1F#_[H#SC-[&8/;X"`````9@_^Q`\XR]-F#W#`#@\X ++MS/P/.,O:9@]OQ68/.@_$!&8/_O`/.,WU9@]O@)````!F#_[%#SC+TV8/<,`. ++M#SC,Y0\XR]IF#V_&9@\Z#\4$9@_^^`\XS?YF#V^`H````&8/_L8/.,O39@]P ++MP`X/.,SN#SC+VF8/;\=F#SH/Q@1F#_[@#SC-YV8/;X"P````9@_^QP\XR]-F ++M#W#`#@\XS/</.,O:9@]OQ&8/.@_'!&8/_N@/.,WL9@]O@,````!F#_[$#SC+ ++MTV8/<,`.#SC,_`\XR]IF#V_%9@\Z#\0$9@_^\`\XS?5F#V^`T````&8/_L4/ ++M.,O39@]PP`X/.,O:9@]OQF8/.@_%!&8/_O@/.,W^9@]O@.````!F#_[&#SC+ ++MTV8/<,`.#SC+VF8/;X#P````9@_^QP\XR]-F#W#`#@\XR]IF#_X4)&8/_MF# ++MPD"#ZP$/A33]__]F#W#"&V8/<-,;9@]OVF8/;-!F#VW8\P]_$?,/?UD0B^5= ++M6\($`,S,S,S,S,S,S,S,S,S,N,#@0@#I+NK__\S,C4WHZ5LO_O^X*.%"`.D: ++MZO__S,R-38CI1R_^_XU-H.D_+_[_C4VLZ9HX__^-3;CI+R_^_XU-E.DG+_[_ ++MC8U\____Z1PO_O__=>CH;HG]_UG#C8UL____Z6[1_O__=>CH68G]_UG#C4WL ++MZ5S1_O^-C1S____I'(/]_XU-W.GB+O[_C4W$Z3TX__^-3=#I-3C__XV-Z/[_ ++M_^G^@OW_C4VXZ;\N_O^-C7#____I,X3]_[A0X4(`Z7/I___,S,R-3=CI]'_] ++M_XU-Z.F7+O[_N/CA0@#I5NG__\S,BTWP@\$PZ8`N_O^X*.)"`.D_Z?__S,S, ++MBTWP@\$PZ6@N_O^+3?"#P3SI72[^_XM-\(/!2.E2+O[_BTWP@\%8Z4<N_O^+ ++M3?"#P63I/"[^_XM-\(/!<.DQ+O[_BTWP@\%\Z28N_O^+3?"!P8@```#I&"[^ ++M_[A0XD(`Z=?H___,S,R+3?"#P03I`"[^_XM-\(/!$.FI@OW_BTWP@\$<Z>^" ++M_?^XL.)"`.FIZ/__S(M-\.G7+?[_N.CB0@#IENC__\S,BTWPZ<,M_O^X$.-" ++M`.F"Z/__S,R+3?"#P1#IK"W^_[@XXT(`Z6OH___,S,R+3?#IERW^_[A@XT(` ++MZ5;H___,S/]U\.C=A_W_6<.XP.-"`.E`Z/__C4W<Z6\M_O^-3=#I9RW^_XU- ++MZ.E?+?[_N.CC0@#I'NC__\S,C4W<Z4LM_O^X6.1"`.D*Z/__S,R-3>3I-RW^ ++M_[B`Y$(`Z?;G___,S(U-Y.DC+?[_N*CD0@#IXN?__\S,C4WDZ0\M_O^XT.1" ++M`.G.Y___S,R-3>CI7C;__[CXY$(`Z;KG___,S(M-\.GG+/[_N'#E0@#IIN?_ ++M_\S,_W7PZ"V'_?]9P[B8Y4(`Z9#G____=?#H&8?]_UG#N,#E0@#I?.?___]U ++M\.@%A_W_6<.XZ.5"`.EHY___C4WDZ9<L_O^X$.9"`.E6Y___S,R-3>CI@RS^ ++M_XU-W.E[+/[_N#CF0@#I.N?__\S,C4V\Z:*C_?^X:.9"`.DFY___S,R-3>3I ++M4RS^_[B0YD(`Z1+G___,S(U-Z.D_+/[_N+CF0@#I_N;__\S,C4W4Z2LL_O^- ++M3>#I(RS^_XU-Q.F!K/W_C4W$Z8VC_?^-3:SI"RS^_XU-\.EIK/W_C4W(Z?LK ++M_O^XX.9"`.FZYO__S,R-3>SI'JW]_[@XYT(`Z:;F___,S(U-O.D.H_W_N&#G ++M0@#IDN;__\S,C4V\Z?JB_?^XB.="`.E^YO__S,R-3;SIYJ+]_[BPYT(`Z6KF ++M___,S(U-X.F7*_[_C4W4Z8\K_O^XV.="`.E.YO__S,R-3=#I>RO^_XU-Z.ES ++M*_[_C4W<Z6LK_O^X".A"`.DJYO__S,R-3>CI5RO^_[A0Z$(`Z1;F___,S(U- ++M].EVPOW_C4WPZ73"_?^X>.A"`.GZY?__S,R-3>CI)RO^_[BHZ$(`Z>;E___, ++MS+C0Z$(`Z=KE___,S(U-\.ENS?[__W7HZ%F%_?]9P[@HZ4(`Z;SE__^+3?#I ++M4LW^_[A8Z4(`Z:KE___,S(U-Y.G7*O[_C4W8Z<\J_O^-3<SIQRK^_[B`Z4(` ++MZ8;E___,S(M-\(/!&.GGJ_W_N+CI0@#I;^7__\S,S(M-\(M%\(/`-/?9&\DC ++MR.E4U_W_BTWP@\%8Z>O,_O^+3?"#P5SIX,S^_XM-\(/!;.G5S/[_BTWP@\%P ++MZ<K,_O^+3?"#P73IO\S^_[C@Z4(`Z1?E___,S,R+3?"#P0SII\S^_[@PZD(` ++MZ?_D___,S,R+3?"#P5#IC\S^_XM-\(/!6.F$S/[_BTWP@\%<Z7G,_O^+3?"# ++MP6#I!RK^_XM-\(/!;.G\*?[_BTWP@\%XZ2SM_?^+3?"!P9@```#IXRG^_XM- ++M\('!\````.G5*?[_BTWP@<$``0``Z2[,_O^+3?"!P00!``#IN2G^_XM-\('! ++M$`$``.D2S/[_BTWP@<$4`0``Z0`S__^+3?"!P3`!``#I)0C^_XM-\('!/`$` ++M`.D+\O[_N%CJ0@#I0.3__XM-\(/!4.G3R_[_BTWP@\%8Z<C+_O^+3?"#P5SI ++MO<O^_XM-\(/!8.E+*?[_BTWP@\%LZ4`I_O^+3?"#P7CI<.S]_XM-\('!F``` ++M`.DG*?[_BTWP@<'P````Z1DI_O^+3?"!P0`!``#I<LO^_XM-\('!!`$``.G] ++M*/[_BTWP@<$0`0``Z5;+_O^+3?"!P10!``#I1#+__XM-\('!,`$``.EI!_[_ ++MBTWLZ<LH_O^XZ.I"`.F*X___S,R+3?#IMRC^_[AXZT(`Z7;C___,S+B@ZT(` ++MZ6KC___,S+CXZT(`Z5[C___,S+A0[$(`Z5+C___,S(U-Y.G(N?W_N*CL0@#I ++M/N/__\S,C4WHZ6LH_O^XT.Q"`.DJX___S,R-3>CI5RC^_XU-W.E/*/[_N/CL ++M0@#I#N/__\S,C4WHZ3LH_O^-3=SI,RC^_[@H[4(`Z?+B___,S(U-X.EHN?W_ ++MC4W@Z6"Y_?^X6.U"`.G6XO__S,R-3>CI9C'__XU-W.G[)_[_C4VTZ;[U_?^X ++MB.U"`.FRXO__S,R-3:3I&I_]_XU-F.G7)_[_C4W<Z<\G_O^-3>CIQR?^_XU- ++MZ.F_)_[_C8U@____Z>^>_?^XP.U"`.ESXO__S,S,C4W0Z9\G_O^-3=SIER?^ ++M_XU-Q.F/)_[__W7LZ.&!_?]9PXU-Z.GDR?[_N!CN0@#I/.+__XU-X.EK)_[_ ++MN&#N0@#I*N+__\S,C4W@Z:"X_?^-30CIMLG^_[B([D(`Z0[B___,S+CP[D(` ++MZ0+B___,S+A([T(`Z?;A___,S+B@[T(`Z>KA___,S(U-Z.D7)_[_N/CO0@#I ++MUN'__\S,_W7PZ%V!_?]9P[@@\$(`Z<#A____=?#H28']_UG#N$CP0@#IK.'_ ++M_XU-Z.G;)O[_N'#P0@#IFN'__\S,N)CP0@#ICN'__\S,N/#P0@#I@N'__\S, ++MC4W@Z?BW_?^X2/%"`.ENX?__S,R+3?#I`Q+^_[BH\4(`Z5KA___,S/]U\.CA ++M@/W_6<.-3?#IY,C^_[C0\4(`Z3SA__^-3=#I:R;^_XU-W.EC)O[_C4VHZ0@1 ++M_O__=0CHK8#]_UG#C4T,Z;#(_O^-30SIJ,C^_[@`\D(`Z0#A__^+3?#IELC^ ++M_[B(\D(`Z>[@___,S(M-\(/!%.E_R/[_N+#R0@#IU^#__\S,S(U-".EJR/[_ ++MN-CR0@#IPN#__\S,BTWPZ>\E_O^X./-"`.FNX/__S,S_=?#H-8#]_UG#N&#S ++M0@#IF.#__XM-\.DNR/[_N(CS0@#IAN#__\S,C4WDZ;,E_O^XL/-"`.ERX/__ ++MS,R-3>#IGR7^_XU-U.F7)?[_N-CS0@#I5N#__\S,C4W`Z8,E_O^-C63____I ++MLYS]_XU-M.EP)?[_C4W@Z6@E_O__=2SHNG_]_UG#C8WP_O__Z;K'_O^-C63_ ++M___I@YS]_XV-]/[__^E9'_[_C4VDZ;1Z_?^-C:#^___I("7^_XU-M.DB)?[_ ++MN`CT0@#IX=___\R+3?#I&"7^_XM-\(/!#.EG+O__BTWP@\$DZ?DD_O^X@/1" ++M`.FXW___BTWP@\$8Z>0D_O^XN/1"`.FCW___S,S,BTWPZ=@D_O^+3?"#P0SI ++M)R[__XM-\(/!).FY)/[_BTWP@\$PZ2`?_O^XX/1"`.EMW___S(U-Z.F;)/[_ ++MN"#U0@#I6M___\S,C4W@Z8<D_O^-393IXBW__XU-Q.EW)/[_C8U\____Z6PD ++M_O^-3;3I9"3^_XU-B.E<)/[_C4W4Z50D_O^-C7#____I223^_XU-B.E!)/[_ ++MC4V@Z3DD_O^-3:#I;.?]_XU-H.DI)/[_C4V@Z2$D_O^-3:#I&23^_XU-$.GT ++M(_[_C4VPZ5*U_?^X2/5"`.G(WO__BTWPZ?<C_O^XZ/5"`.FVWO__S,R+3?#I ++MXR/^_[@0]D(`Z:+>___,S(M-\.DVQO[_BTWP@\$$Z2O&_O^+3?"#P0CI(,;^ ++M_[@X]D(`Z7C>__^-3>3IIR/^_[AP]D(`Z6;>___,S(U-Y.F3(_[_C4W8Z8LC ++M_O^XF/9"`.E*WO__S,R-3>#I=R/^_[C(]D(`Z3;>___,S(U-Z.G&+/__C4W< ++MZ;XL__^-3<3I4R/^_XU-Q.D^@_[_N/#V0@#I"M[__\S,C4VPZ?9X_?^-3=CI ++M+R/^_XU-Y.DG(_[_C4W`Z1\C_O^X,/="`.G>W?__S,S_=?#H97W]_UG#BTWP ++MZ0$C_O^X</="`.G`W?___W7PZ$E]_?]9P[B@]T(`Z:S=__^+3?"#P1#IV"+^ ++M_[C(]T(`Z9?=___,S,R+3?#IPR+^_[CP]T(`Z8+=___,S(U-U.GXL_W_N!CX ++M0@#I;MW__\S,C4WDZ>2S_?^X0/A"`.E:W?__S,R-3>3IT+/]_[AH^$(`Z4;= ++M___,S(U-Y.F\L_W_N)#X0@#I,MW__\S,C4W<Z:BS_?^-3=SIH+/]_XU-W.F8 ++ML_W_C4W<Z9"S_?^XN/A"`.D&W?__S,R-3>3I?+/]_[CX^$(`Z?+<___,S(U- ++MY.EHL_W_N"#Y0@#IWMS__\S,N$CY0@#ITMS__\S,C4VDZ?\A_O^-3;#I]R'^ ++M_XU-O.GO(?[_C4WPZ><A_O^-30CI1L3^_XU-Y.D^Q/[_N*#Y0@#IEMS__\S, ++MC4WHZ<,A_O^-3=SINR'^_XU-N.FS(?[_C4W$Z:LA_O^-3=#IHR'^_XU-N.F; ++M(?[_N/#Y0@#I6MS__\S,C4WPZ>[#_O^-3>SIYL/^__]U".C1>_W_6<.-3=#I ++M;2'^_XU-W.EE(?[_C4W$Z5TA_O^X0/I"`.D<W/__C8V$_?__Z1$B_O^-3;SI ++MB;+]_XU-\.F?P_[_C4WDZ9?#_O^-3>CIC\/^_XV-9/[__^GF(?[_C4W8Z7S# ++M_O^-3<SI#2'^_XV-9/___^GX(/[_N)#Z0@#IP=O__\R+3?#I5L/^_XM-\(/! ++M!.E+P_[_BTWP@\$(Z4##_O^+3?"#P0SI-</^_XM-\(/!&.G#(/[_BTWP@\$D ++MZ;@@_O^+3?"#P3#IK2#^_XM-\(/!>.D4&_[_N/CZ0@#I8=O__\S_=?#HZ7K] ++M_UG#C4WPZ>S"_O^-3>3I?2#^_XU-V.EU(/[_C4W,Z6T@_O^X6/M"`.DLV___ ++MBTWP@\$<Z;LI__^+3?"#P2CI32#^_XM-\(/!-.E"(/[_BTWP@\%(Z3<@_O^+ ++M3?"#P53I+"#^_XM-\(/!8.E<E_W_N*#[0@#IX-K__XM-\(/!'.EO*?__BTWP ++M@\$HZ0$@_O^+3?"#P33I]A_^_XM-\(/!2.GK'_[_BTWP@\%4Z>`?_O^+3?"# ++MP6#I$)?]_[CP^T(`Z93:____=?#H'7K]_UG#N$#\0@#I@-K__XM-\.D6PO[_ ++MBTWP@\$$Z0O"_O^+3?"#P0CI`,+^_XM-\(/!#.GUP?[_BTWP@\$8Z8,?_O^+ ++M3?"#P23I>!_^_XM-\(/!,.EM'_[_BTWP@\%XZ=09_O^X:/Q"`.DAVO__S(M- ++M\(/!&.E,'_[_N,C\0@#I"]K__\S,S(U-P.DW'_[_C4W`Z2\?_O^-3>3I)Q_^ ++M_XU-V.D?'_[_C4W,Z1<?_O^-3;3I#Q_^_[CP_$(`Z<[9___,S(U-Z.G['O[_ ++MN$#]0@#INMG__\S,C4W`Z9IE_O^-3<SI19_]_XU-S.E1EOW_C8U4____Z0>6 ++M_?^-3=SI)RC__XU-W.F\'O[_C4V,Z;0>_O^-3=#IK![^_[AH_4(`Z6O9___, ++MS,R-3>3IEQ[^_XU-V.F/'O[_N,C]0@#I3MG__\S,C4W<Z7L>_O^-3>CI<Q[^ ++M_[CX_4(`Z3+9___,S(U-Z.E?'O[_C4W<Z5<>_O^-3=#I3Q[^_XU-W.E''O[_ ++MN"C^0@#I!MG__\S,C4WHZ3,>_O^X:/Y"`.GRV/__S,R-3>3I'Q[^_XU-V.D7 ++M'O[_N)#^0@#IUMC__\S,C4WHZ0,>_O^-3=SI^QW^_[C`_D(`Z;K8___,S(V- ++M5/___^FO7_[_N/#^0@#IH]C__\S,S(M-\.DU7_[_BTWP@\$4Z7=D_O^+3?"# ++MP2#I0U_^_XM-\(/!5.FN'?[_BTWP@\%@Z:,=_O^+3?"#P73I@63^_XM-\('! ++M@````.F*'?[_N!C_0@#I2=C__\R+3?#I=QW^_XM-\(/!#.G/)O__N'#_0@#I ++M*]C__\S,S(M-\.F]7O[_BTWP@\$4Z?]C_O^+3?"#P2#IRU[^_XM-\(/!5.DV ++M'?[_BTWP@\%@Z2L=_O^XH/]"`.GJU___S,R-3>#I%QW^_XU-R.D/'?[_C4V\ ++MZ0<=_O^-3=3I_QS^_XV->/___^DOE/W_C4VPZ>P<_O^-3;SIY!S^_[CH_T(` ++MZ:/7___,S,R-3;CI5V+^_[A``$,`Z8[7___,S(M-\.DA7O[_BTWP@\$,Z;`< ++M_O^+3?"#P1CII1S^_[AH`$,`Z637__^+3?#I^5W^_XM-\(/!#.F('/[_BTWP ++M@\$8Z7T<_O^+3?"#P23I<AS^_[B@`$,`Z3'7___,_W7PZ+EV_?]9P[C@`$,` ++MZ1S7__^+3?#I2QS^_[@(`4,`Z0K7___,S/]U\.B1=OW_6<.X,`%#`.GTUO__ ++MBTWPZ8E=_O^+3?"#P1#I$FG^_[A8`4,`Z=?6___,S,R-3>3I`QS^_XU-V.G[ ++M&_[_N(@!0P#INM;__\S,C4W@Z><;_O^-3=3IWQO^_XU-R.G7&_[_N+@!0P#I ++MEM;__\S,C4V\Z<,;_O^-3<CINQO^_XU-X.FS&_[_C4W4Z:L;_O^-3:3IHQO^ ++M_XU-L.F;&_[_C4V8Z9,;_O^-3=3IBQO^_XU-F.F#&_[_C4W@Z7L;_O^-3;SI ++M<QO^_XU-R.EK&_[_C4W(Z6,;_O^-3;SI6QO^_[CP`4,`Z1K6___,S(U-Y.E' ++M&_[_C4WDZ3\;_O^-3>3I-QO^_XU-V.DO&_[_N(`"0P#I[M7__\S,C4WDZ1L; ++M_O^XP`)#`.G:U?__S,R-3>CI!QO^_[CH`D,`Z<;5___,S(U-Z.GS&O[_N!`# ++M0P#ILM7__\S,BTWPZ45<_O^X.`-#`.F>U?__S,R-3>3IRQK^_XU-V.G#&O[_ ++MN&`#0P#I@M7__\S,C4WDZ:\:_O^XD`-#`.ENU?__S,R-3>CIFQK^_XU-W.F3 ++M&O[_N+@#0P#I4M7__\S,C4W<Z7\:_O^-3>CI=QK^_XU-Z.EO&O[_C4WHZ6<: ++M_O^-39SIFI']_[CH`T,`Z1[5___,S(M-\(/!..E(&O[_BTWP@\%$Z3T:_O^+ ++M3?"#P5#I,AK^_XM-\(/!7.F*(___N#`$0P#IYM3__\S,BTWPZ1,:_O^+3?#I ++M_GG^_XM-[.D#&O[_N'`$0P#IPM3__\S,C4WPZ6%Z_O^XJ`1#`.FNU/__S,R- ++M3?#I37K^_XU-Y.G3&?[_N-`$0P#IDM3__\S,BTWLZ25;_O^+3>R#P23IM!G^ ++M_XM-[(/!,.FI&?[_BTWL@\$\Z9X9_O^+3>R#P4CIDQG^_XM-[(/!5.F(&?[_ ++MBTWL@\%@Z7T9_O^+3>R#P6SI<AG^_XM-[(/!>.EG&?[_BTWL@<&$````Z5D9 ++M_O^+3>R!P9P```#I2QG^_XM-[('!T````.F@(O__BTWL@<'<````Z9:[_O^+ ++M3>R!P2@!``#I(1G^_XM-[('!-`$``.D3&?[_BTWL@<%0`0``Z6JZ_O^+3>R! ++MP50!``#I7+K^_XM-[('!6`$``.F_?/[_N``%0P#IJ-/__XM-\(/!..G4&/[_ ++MBTWP@\%$Z<D8_O^+3?"#P5#IOAC^_XM-\(/!7.D6(O__N+`%0P#I<M/__\S, ++MBTWPZ05:_O^+3?"#P23IE!C^_XM-\(/!,.F)&/[_BTWP@\$\Z7X8_O^+3?"# ++MP4CI<QC^_XM-\(/!5.EH&/[_BTWP@\%@Z5T8_O^+3?"#P6SI4AC^_XM-\(/! ++M>.E'&/[_BTWP@<&$````Z3D8_O^+3?"!P9P```#I*QC^_XM-\('!T````.F` ++M(?__BTWP@<'<````Z7:Z_O^+3?"!P2@!``#I`1C^_XM-\('!-`$``.GS%_[_ ++MBTWP@<%0`0``Z4JY_O^+3?"!P50!``#I/+G^_[CP!4,`Z9;2___,S(U-G.DU ++M>/[_C4V@Z;L7_O^-3=#ILQ?^_XU-M.FK%_[_N)@&0P#I:M+__\S,C4W@Z4F1 ++M_O^XV`9#`.E6TO__S,R-3;#I=G?^_XU-L.FR>_[_C4WLZ>5W_O^X.`=#`.DR ++MTO__S,R+3?#I7Q?^_[AP!T,`Z1[2___,S(U-Z.E+%_[_C4W<Z4,7_O^XF`=# ++M`.D"TO__S,R-3>CI+Q?^_[C(!T,`Z>[1___,S(U-Z.D;%_[_C4W<Z1,7_O^X ++M\`=#`.G2T?__S,R-3>3I8B#__XU-\.EI=_[_N"`(0P#IMM'__\S,C4WDZ>,6 ++M_O^-3=CIVQ;^_[A0"$,`Z9K1___,S(U-\.DLN/[_N(`(0P#IAM'__\S,N*@( ++M0P#I>M'__\S,C4WHZ7J<_O^-3<SIGQ;^_XU-P.F7%O[_C4W`Z8\6_O^-3>SI ++M^7;^_[@`"4,`Z4;1___,S(U-Y.ES%O[_N,`)0P#I,M'__\S,C4W8Z5\6_O^X ++MZ`E#`.D>T?__S,S_=?#HI7#]_UG#N!`*0P#I"-'__XU-Z.DW%O[_N#@*0P#I ++M]M#__\S,C4W<Z2,6_O^-3=#I&Q;^_XU-Z.D3%O[_N&`*0P#ITM#__\S,C4WH ++MZ?\5_O^XF`I#`.F^T/__S,R-C03]___I_:;^_XU-Z.G@%?[_C4V<Z;:E_O^- ++M3=SIT!7^_XU-T.G(%?[_N,`*0P#IA]#__\S,S(M-\.D95_[_BTWP@\$,Z:@5 ++M_O^X"`M#`.EGT/__S,S,BTWPZ5ZF_O^+3?"!P7@"``#I[+?^_[@X"T,`Z430 ++M__^+3?#I[7G^_XM-\('!$`(``.G('O__N&@+0P#I)-#__XM-\.G->?[_BTWP ++M@<$0`@``Z:@>__^XF`M#`.D$T/__BTWPZ?ZE_O^+3?"!P7@"``#IC+?^_XM- ++M\('!?`(``.D7%?[_N,@+0P#IUL___\S,BTWPZ0,5_O^X``Q#`.G"S___S,R- ++M3?#I5K?^_XU-[.E.M_[_N"@,0P#IIL___\S,C4W8Z=,4_O^X6`Q#`.F2S___ ++MS,RX@`Q#`.F&S___S,R-3>3I,:W^_[C8#$,`Z7+/___,S(U-Z.D&M_[_C4WL ++MZ?ZV_O^X``U#`.E6S___S,S_=?#HW6[]_UG#N#`-0P#I0,___XM-\(M%\(/` ++M&/?9&\DCR.G-M?[_BTWPZ5RU_O^+3?"#P5#I4!3^_XM-\(/!7.E%%/[_BTWP ++M@\%PZ?6U_O^+3?"#P7SI0+;^_[A8#4,`Z>[.___,S(M-\(/!!.E]M?[_BTWP ++M@\$(Z7*U_O^+3?"#P0SI9[7^_[BH#4,`Z<'.___,BTWPZ5:V_O^XX`U#`.FN ++MSO__S,R+3?#IVQ/^_[@(#D,`Z9K.___,S(M-\.G'$_[_N#`.0P#IAL[__\S, ++MC4WLZ1JV_O^-3<SIJQ/^_XV-=/___^GII/W_C4VHZ9@3_O^-3<#ID!/^_XU- ++MX.F($_[_C4V,Z8`3_O^-38SI:W/^_XV-:/___^EM$_[_C4VTZ643_O^-30CI ++MQ+7^_XU-M.E5$_[_C4T(Z;2U_O^X6`Y#`.D,SO__C4WHZ3L3_O^XX`Y#`.GZ ++MS?__S,RX"`]#`.GNS?__S,R-31#I@K7^__]U%.AM;?W_6<.-30SI<+7^__]U ++M%.A;;?W_6<.-313I7K7^_[A@#T,`Z;;-___,S/]U#.@];?W_6<.-3>SI0+7^ ++M_XU-S.DXM?[_N.`/0P#ID,W__XM-\(/!(.DCM?[_N%`00P#I>\W__\S,S/]U ++M\.@!;?W_6<.X>!!#`.EDS?__BTWP@\$,Z4G'_O^+3?"#P1CIA1+^_[B@$$,` ++MZ43-__^+3?#I<Q+^_[C0$$,`Z3+-___,S(M-\.E?$O[_N/@00P#I'LW__\S, ++M_W7PZ*5L_?]9P[@@$4,`Z0C-__^-3:3IB]G^_XV--/___^D3U?[_C8TT____ ++MZ2W9_O__=83H<VS]_UG#C4W(Z2"T_?^-3<CI;K3^_XU-R.EFM/[_C4W(Z5ZT ++M_O^-3<CI5K3^_XU-\.E.M/[_C4WPZ4:T_O^-3?#I/K3^_XU-\.DVM/[_C4WD ++MZ2[4_O^-3=#IT-/^_XU-T.FW$?[_C4WDZ>'3_O^-3?#I#K3^_XU-Z.F?$?[_ ++MC4W`Z9<1_O^-38CI2K/^_XU-X.D1VO[_C4WDZ;'3_O^-3=#I=Q'^_XU-Y.FA ++MT_[_C4U`Z<ZS_O^-34#I7Q'^_XU-'.F^L_[__W4(Z*EK_?]9P[A($4,`Z0S, ++M__^+3?"#Z02+1?#WV1O)(\CI\=3^_XM-\(/!:.GIV/[_N%`20P#IX\O__\S, ++MS(M-\.D/$?[_N(`20P#ISLO__\S,_W7PZ%5K_?]9P[BH$D,`Z;C+__^-30CI ++M3K/^_[C0$D,`Z:;+___,S(U-Z.DZL_[_C4WLZ579_O^-C4S____I[^7^_XU- ++MY.D?L_[_C4W0Z1>S_O^-3=CI#[/^_XU-N.D,Y?[_C4VXZ9@0_O^-3;CID!#^ ++M_XU-N.F($/[_C4VXZ8`0_O^-3;CI>!#^_XU-N.EP$/[_N/@20P#I+\O__\S, ++MS(M-\(/!".F_LO[_N.@30P#I%\O__\S,S(M-\(/!!.E,U_[_N!`40P#I_\K_ ++M_\S,S(M-\(/!..F/LO[_BTWP@\%`Z:3G_O^X.!1#`.G<RO__BTWP@\$XZ6^R ++M_O^X:!1#`.G'RO__S,S,BTWPZ5'H_O^+3?"#P5CIZ`_^_XM-\(/!9.G0;_[_ ++MBTWP@\%\Z<5O_O^+3?"!P90```#IMV_^_XM-\('!K````.FI;_[_BTWLZ:X/ ++M_O^XD!1#`.EMRO__S(U-[.D"LO[_C4T4Z?JQ_O^-C63____I[['^_[CH%$,` ++MZ4?*___,S,RXB!5#`.DZRO__S,R-3>3II/;^_[A8%D,`Z2;*___,S(U-U.E& ++M;_[_N(`60P#I$LK__\S,C4VPZ5("__^-39CI-P_^_XU-I.DO#_[_N*@60P#I ++M[LG__\S,C4W`Z1L/_O^XX!9#`.G:R?__S,R-3>CI&@+__[@(%T,`Z<;)___, ++MS(V-9/___^E.Y_[_C4W4Z>@._O^-3;SIX`[^_XU-O.G+;O[_C8T(____Z?SC ++M_O^-3>CI3]?^_[@P%T,`Z83)__^-3=SI%AC__XU-E.FK#O[_C8UD____Z:`. ++M_O^-C63____IB&[^_XU-H.F-#O[_C4VLZ84._O^-3;CI?0[^_XV-?/___^F% ++M`?__C4V$Z7T!__^-38SI=0'__[B`%T,`Z2')___,C4WLZ4\._O^-3=SI6@'_ ++M_XU-R.FB%___N/`70P#I_LC__\S,N"@80P#I\LC__\S,_W7PZ'EH_?]9P[B0 ++M&$,`Z=S(____=?#H96C]_UG#N+@80P#IR,C__XM%\%#H4&C]_UG#N.`80P#I ++ML\C__\S,S,S,S,S,S,S,BT7P4.@P:/W_6<.X"!E#`.F3R/__S,S,S,S,S,S, ++MS,R+1?!0Z!!H_?]9P[@P&4,`Z7/(___,S,S,S,S,S,S,S(U-\.D);O[_N%@9 ++M0P#I5LC__\S,S,S,S,S,S,S,S,S,BTWLZ:A'__^+1?!0Z,AG_?]9P[B`&4,` ++MZ2O(___,S,R#??``#X0.````BT7P@\`,B470Z0<```#'1=``````BTW0Z:E( ++M__^XL!E#`.GWQ___S,S,S,S,S,S,S,S,S,S,@WWP``^$#@```(M%\(/`#(E% ++MT.D'````QT70`````(M-T.EI2/__N-@90P#IM\?__\S,S,S,S,S,S,S,S,S, ++MS+@`&D,`Z9['___,S,S,S,R-30CI+J_^_[A8&D,`Z8;'___,S,S,S,S,S,S, ++MS,S,S(M%\%#H`&?]_UG#N+@:0P#I8\?__\S,S,S,S,S,S,S,BT7P4.C@9OW_ ++M6<.XX!I#`.E#Q___```````````````````````````````````````````` ++M``````````````````````````````````"L)P,`D"<#`'PG`P!H)P,`6B<# ++M`$XG`P`^)P,`*"<#`!HG`P#^)@,`\"8#`.`F`P#,)@,`LB8#`)HF`P"2)@,` ++M>B8#`&(F`P!()@,`,B8#`"(F`P`.)@,`]"4#`.`E`P#&)0,`KB4#`)PE`P". ++M)0,`@"4#`'`E`P!D)0,`6"4#`$8E`P`X)0,`'B4#``@E`P#T)`,`XB0#`-(D ++M`P#`)`,`M"0#`*0D`P"&)`,`=B0#`%XD`P!.)`,`0"0#`"PD`P`@)`,`#"0# ++M`/8C`P#H(P,`VB,#`,PC`P"V(P,`I",#`((C`P!P(P,`8B,#`%(C`P`\(P,` ++M+",#`!HC`P`*(P,`F",#``````#:(0,`Y"$#`.XA`P``(@,`%"(#`#@B`P!, ++M(@,`6B(#`&0B`P!L(@,`>B(#`((B`P",(@,`G"(#`*@B`P"\(@,`S"(#`-PB ++M`P#J(@,`_"(#`,8A`P"^(0,`M"$#`*HA`P"@(0,`E"$#`(HA`P!T(0,`8"$# ++M`-`A`P``````!```@`(``(`)``"`!@``@`<``(``````+"$#`$(A`P`4(0,` ++M`````+@@`P"B(`,`E"`#`(@@`P!V(`,`:B`#`%X@`P!0(`,`/B`#`"P@`P`< ++M(`,`#"`#`/X?`P#L'P,`VA\#`,H@`P"\'P,`KA\#`*`?`P".'P,`@!\#`'`? ++M`P!@'P,`3!\#`#H?`P`B'P,`"A\#`/@>`P#H'@,`VAX#`,8>`P"T'@,`HAX# ++M`)(>`P"$'@,`UB`#`.(@`P#N(`,`_"`#`,@?`P``````1!X#`#0>`P!F'@,` ++M5AX#`"0>`P``````````````````````````````````````:0\7(\%`BB<` ++M```#``$``&D/%R/!0(HG`````P`"``!I#Q<CP4"*)P````,``P``:0\7(\%` ++MBB<````#``0``&D/%R/!0(HG`````P`&``!I#Q<CP4"*)P````,`!P``:0\7 ++M(\%`BB<````#``@``&D/%R/!0(HG`````P`)``!I#Q<CP4"*)P````,`"@`` ++M:0\7(\%`BB<````#`!```&D/%R/!0(HG````!``$``!I#Q<CP4"*)P````0` ++M!0``:0\7(\%`BB<````$`!@``&D/%R/!0(HG````!``?``!I#Q<CP4"*)P`` ++M``0`(```:0\7(\%`BB<````$`"(``&D/%R/!0(HG````!``C``!I#Q<CP4"* ++M)P````0`)```:0\7(\%`BB<````$`"4``&D/%R/!0(HG````!``F``!I#Q<C ++MP4"*)P````0`)P``:0\7(\%`BB<````$`"@``&D/%R/!0(HG````!``I``!I ++M#Q<CP4"*)P````0`,```:0\7(\%`BB<````$`#$``&D/%R/!0(HG````!``R ++M``!I#Q<CP4"*)P````0`-```:0\7(\%`BB<````$`#4``&D/%R/!0(HG```` ++M!``V``!I#Q<CP4"*)P````0`-P``:0\7(\%`BB<````$`$```&D/%R/!0(HG ++M````!`!@``!I#Q<CP4"*)P````0`80``:0\7(\%`BB<````$`(```&D/%R/! ++M0(HG````!`",``!I#Q<CP4"*)P````0`D```:0\7(\%`BB<````$`*```&D/ ++M%R/!0(HG````!`#```!I#Q<CP4"*)P````0`P0``:0\7(\%`BB<````%`!`` ++M`&D/%R/!0(HG````!0`1``!I#Q<CP4"*)P``````!0``:0\7(\%`BB<````& ++M`!```&D/%R/!0(HG````!@`@``!I#Q<CP4"*)P````8`(@``:0\7(\%`BB<` ++M```&`#```&D/%R/!0(HG````!@!```!I#Q<CP4"*)P````8`4```:0\7(\%` ++MBB<````&`&```&D/%R/!0(HG````!@!P``!I#Q<CP4"*)P````8`<0``:0\7 ++M(\%`BB<````&`&$``&D/%R/!0(HG````!@"```!I#Q<CP4"*)P````8`@@`` ++M:0\7(\%`BB<````&`(,``&D/%R/!0(HG````!@"$``!I#Q<CP4"*)P````8` ++MH```:0\7(\%`BB<````&``,``&D/%R/!0(HG````!@`$``!I#Q<CP4"*)P`` ++M``8`!0``:0\7(\%`BB<````&``D``&D/%R/!0(HG`````0`'``!I#Q<CP4"* ++M)P````$`"```:0\7(\%`BB<````!`"```&D/%R/!0(HG`````0`Q``"4QD(` ++M10!2`%(`3P!2`#H`(`!5`&X`:P!N`&\`=P!N`"``10!R`'(`;P!R`"$```"1 ++M^QKJ*)Z&2Y#IGI^*7N^O50!N`',`=0!P`'``;P!R`'0`90!D`"``5P!I`&X` ++M9`!O`'<`<P`@`'8`90!R`',`:0!O`&X```!%`'(`<@!O`'(`(`!I`&X`(`!A ++M`'(`8P!H`&D`=@!E``````!%`'(`<@!O`'(`(``Q`#,`,@`Y`#0`.``U```` ++M0@!A`&0`(`!C`&\`;0!M`&$`;@!D````10!R`'(`;P!R`"``,0`S`#(`.0`T ++M`#@`-````"H````ZY$``;Y]``+870`";'4``\')``*4=0`!@'4$`AQU``-)R ++M0`"1'4``@Q5!`-H000#H$$$`)Q%!`-H000!<$4$`QA5!`#T<00!:AD(`RQQ! ++M`$L=00"N&4``/QI``$P:0`"B$$$`P1!!`&T100!@$T$`PA-!`#0500`\@4(` ++M/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\ ++M@4(`/(%"`#R!0@`\@4(`/(%"`$#(0@`M+0``,#$R,S0U-C<X.4%"0T1%1C`Q ++M,C,T-38W.#EA8F-D968&!`(`"PD0#A,5&!H<'B`B/P```"H````N````17)R ++M;W(@(P!&:6YD3F5X=%-T<F5A;5<`1FEN9$9I<G-T4W1R96%M5P````!K97)N ++M96PS,BYD;&P`````.B1$051!``!3>7-T96T@5F]L=6UE($EN9F]R;6%T:6]N ++M7"H`Y,A"`%Q</UP`````4&AY<VEC86Q$<FEV90````#)0@!O=70@;V8@;65M ++M;W)Y````<P!H`&4`;`!L`#,`,@`N`&0`;`!L````4TA'9710871H1G)O;4E$ ++M3&ES=$5X````1VQO8F%L365M;W)Y4W1A='5S17@``````````.9R0`#P<D`` ++M^G)``%=P0`!+<4``R')``-)R0`#<<D``JV]``+1R0`"$\D``OG)``"%O0`"@ ++M<D``9O)``*IR0``!;T``>VQ``#\:0`!=;4``WFU``*QN0``\@4(`/(%"`#R! ++M0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%" ++M`#R!0@`\@4(`/(%"`"I_0``T?T``/G]``.9]0``,?T``%G]``"!_0`#F?4`` ++MSGU``.Y^0`#X?D```G]``.9]0`#0?D``VGY``.1^0``W<T``1W-``+)^0`"\ ++M?D``QGY```Q[0`"4?D``GGY``*A^0`!T>D``=GY``(!^0`"*?D``FGE``*]Y ++M0`!8?D``8GY``&Q^0`"#?$``.GY``$1^0`!.?D``4GQ``&=\0``<?D``)GY` ++M`#!^0`#J>T``_GU```A^0``2?D``'WQ``)]T0`"<=D``J79``&EW0``\@4(` ++M/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\ ++M@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R! ++M0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%" ++M`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(` ++M/(%"`#R!0@#;?T``;Y]``">`0`#,@$```!,3"`@("Q45$T!`0`L+"PL+$Q,( ++M"P@("`@(%0@5"!45"!,+%145%1,+"P@5%1,(%0@("!,3"`@5%1,("`@("PL+ ++M"P@("!43$P@5%145%145"`@("PL+%14("!45"P@("`M`$Q,3$Q,3````O9I! ++M`&^?0`";@D``CH%``+B(00!OGT``5()``'.!0`#,S$(`L,Q"`)3,0@!XS$(` ++M8,Q"`#S,0@!#86YN;W0@<V5T(&QE;F=T:"!F;W(@;W5T<'5T(&9I;&4```!# ++M86YN;W0@;W!E;B!O=71P=70@9FEL90!#86YN;W0@9&5L971E(&]U='!U="!F ++M;VQD97(`0V%N;F]T(&1E;&5T92!O=71P=70@9FEL90```$-A;FYO="!R96YA ++M;64@97AI<W1I;F<@9FEL90!#86YN;W0@8W)E871E(&9I;&4@=VET:"!A=71O ++M(&YA;64```!VIT``@*=``(JG0`"5C$``6*=``&*G0`!LIT``"Z-``#JG0`!$ ++MIT``3J=``"NB0`"KAT``/XA``$R(0``%BT``9HM``'*<0`"4GT``@J%``#R! ++M0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%" ++M`#R!0@`\@4(`/(%"`#R!0@!#86YN;W0@8W)E871E(&9O;&1E<@`````@.B`` ++M0V%N;F]T('-E96L@=&\@8F5G:6X@;V8@9FEL90````"]FD$`;Y]``'R?0`"N ++M@T``YIM``&^?0``RG$``BG%``,AQ0``=<D``.N1``&^?0`!\GT``07)``$-A ++M;FYO="!S970@9FEL92!A='1R:6)U=&4```"BLT``9:A!`*RS0`#AK$``X:]` ++M`$)Z00!HL$``2*Q``)VL0`!4:&4@:71E;2!I<R!A(&1I<F5C=&]R>0!#86YN ++M;W0@9FEN9"!A<F-H:79E(&9I;&4`````0V%N;F]T(&-R96%T92!O=71P=70@ ++M9&ER96-T;W)Y```N7```<&4``+S.0@"XSD(`M,Y"`+#.0@"LSD(`J,Y"`$Q0 ++M5`!#3TT`3E5,`$%56`!04DX`0T].`%L`1`!%`$P`10!4`$4`1`!=`%P````` ++M`%4`;@!K`&X`;P!W`&X`(`!W`&$`<@!N`&D`;@!G````50!N`&L`;@!O`'<` ++M;@`@`&4`<@!R`&\`<@```%-P;&ET````+C`P,0`````N97AE`````#KD0`!O ++MGT``?)]``#YN0`"L\D``\')``+;R0`"=L4``HK%``)CR0`#2<D``HO)```:Q ++M0`!Z\D``A/)``([R0``DJ$``7/)``&;R0`!P\D``_ZA``!ZM0``*[D``/QI` ++M`+GN0``]J$``GJA``#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(` ++M/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`W ++M`"T`6@!I`'`````Y`#D`.0`Y`"``30!"````,@`P`#``.0`M`#``.0`M`#`` ++M.0`@`#``.0`Z`#``.0``````,0`R`#,`-``U`#8`-P`X`#D`,``Q`#(`,P`T ++M`#4`-@`W`#$`,@`S`#0`-0`V`#<`.``Y`#`````J+BH`+@`N`%P```")!T$` ++MT?=``.SR0`#X]T``=_9``"\'00`4*D$`,_E``''Y0`!#!T$`3P=!`%L'00`B ++M^$``,@=!`'\(00`/8$``)P=!`)I@0``J!T$`+P=!`!0J00"U8$``-P=!`$,' ++M00!/!T$`6P=!`#('00`R!T$`K`=!``]@0``G!T$`FF!``"H'00`O!T$`%"I! ++M`+5@0``4*D$`%"I!`!0J00`4*D$`,@=!`#('00`5#$$`#V!``"T.00":8$`` ++MF0Y!`"\'00`4*D$`M6!``)H/00!#!T$`3P=!`%L'00`R!T$`,@=!`(\.``"0 ++M#@``D`X``+,.``"T#@``C0X``(X.``")#@``N`X``(H.``"+#@``4F5A9&EN ++M9P`=$T$`#V!``'$C00":8$``*@=!``LD00`4*D$`/"1!`#<'00!#!T$`3P=! ++M`%L'00`R!T$`,@=!`"<`)P``````(``G`"<````C````5P!A`'(`;@!I`&X` ++M9P```#H@``!7`&$`<@!N`&D`;@!G`',``````$<>00`/8$``T21!`)I@0``J ++M!T$`+P=!`!0J00`$)4$`-"5!`$,'00!/!T$`6P=!`#('00`R!T$`>P`P`'T` ++M```@`"X`+@`N`"````!I0@``7U]F:6QE7U\`````+FEC;P`````\#P``>``` ++M`#T/``!Y````"`0``&\`````````<````$(/``!^````/@\``'H````_#P`` ++M>P```$`/``!\````\`,``&X```!!#P``?0```$5R<F]R````G2I!`/=!00!$ ++M+$$`FF!``#0O00`O!T$`%"I!`+Q&00!=AD(`0P=!`/DQ00!;!T$`$4A!`'@^ ++M00`4*D$`)0```"``+P`@````4`!R`&\`9P!R`&4`<P!S`"``10!R`'(`;P!R ++M```````W+5II<`````T*``!?`%\`1`!)`%(`7P!?````7P!?`$8`20!,`$4` ++M7P!?`"X`,``P`#$``````%#30@!)`&X`8P!O`'(`<@!E`&,`=``@`&\`=0!T ++M`'``=0!T`"``9`!I`'(`90!C`'0`;P!R`'D`(`!P`&$`=`!H`````59!``]@ ++M0`#:4$$`FF!``"H'00`O!T$`%"I!`%I100`64D$`0P=!`$\'00!;!T$`,@=! ++M`#('00"O5T$`]T%!`$0L00":8$``-"]!`"\'00`4*D$`O$9!`%V&0@!#!T$` ++M^3%!`%L'00`12$$`>#Y!`!0J00":4D$`[E9!`/=!00!$+$$`FF!``#0O00`O ++M!T$`%"I!`+Q&00!=AD(`0P=!`/DQ00!;!T$`$4A!`'@^00`4*D$`/(%"`*MF ++M00#=7$$`B&=!`#R!0@`#!P``)T\```````#J`````````!3/0@"(U$(````` ++M```````\>4$````````````P,#$`9FEL90`````P,```,#$``&%A``"=?$$` ++M\')``*=\00"PX$$`B7Q!`-)R0`"3?$$`4-Y!`'5\00"$\D``?WQ!`&#@00!A ++M?$$`9O)``&M\00``X$$`0.!!`!!V00`_&D``WW9!`&#>00`\@4(`/(%"`#R! ++M0@`\@4(`/(%"`#R!0@`\@4(`/(%"`'IX00!OGT``W'A!`"!I00`Q:D$`37Q! ++M`&6H00!7?$$`!'=!`,YY00!">D$`3WI!``-R00!4<D$`?7)!`)1R00#T<D$` ++M$6M!`))J00"A:D$`DFI!`-EJ00`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\ ++M@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`+B( ++M00!OGT``3XM!`$A_0`"XB$$`;Y]``&"-00`G?4$`)HI!`%N*00!HBD$`J(I! ++M`,1>00!,7T$`P%]!`/M?00#67T$`AXI!`"-C00">9$$`Y8E!`,B)00`\@4(` ++M/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`VW]``&^?0`!/BT$`L7Q!`#KD0`!O ++MGT``.H]!`+V:00!OGT``"9M!`)>100!;J$$`9:A!`&^H00`5HD$`**)!`$:@ ++M00#_H4$`TYQ!`$)Z00!'G4$`Q*1!`%RF00`QH$$`E:)!`,V200!:H$$`1J!! ++M`%*@00!&H$$`4J!!`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`````` ++M"$`-``<&``!0,4,`Z-9"`.C60@```````0```&K000```````````#=Z``#@ ++MV$$`\-A!``#900!`TT$`8--!`+#800#`V$$`T-A!`$#800"`V$$`D-A!`*#8 ++M00!PTT$`\-%!`*#S00``TT$`\-1!`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%" ++M`#R!0@`\@4(`$-E!```````;`0,#`````'#70@`$``````````````!"0THR ++M`````.#900```````P$#`P````"8UT(``0````$`````````0D-*`%#;00`0 ++MVD$`(-I!`)#900"PV4$`(-M!```````%`@,#`````+S80@`!`````0`````` ++M``"PVT$```````$$`P,`````M-A"``$````!`````````.#;00```````04# ++M`P````"PV$(``0````$`````````$-Q!```````!!P,#`````*C80@`!```` ++M`0````````!`W$$```````4(`P,`````H-A"``$````!`````````*#<00`` ++M````"@````````"8V$(``0````$`````````L-U!```````+`````````)#8 ++M0@`!`````0````````!225-#5@```$%2338T````4U!!4D,```!!4DU4```` ++M`$%230!)038T`````%!00P!0VT$`$-I!`"#:00!@VD$`<-I!`%#B00!@XD$` ++M<.)!`.#:00#@W$$`8`-"`!#B00"@VD$`L-I!`-#@00#0X$$````````````8 ++MV4(``0``````````````0V]P>0````#0X4$```````,`````````0-E"``$` ++M```!`````````$1E;'1A````4.)!`&#B00!PXD$`H.%!`.#<00!@`T(`$.)! ++M`&#A00"`X4$`8.E!`'#I00"`Z4$`4.A!`##I00!`Z4$`4.E!`$#H00``Z4$` ++M$.E!`"#I00!`Y4$`4.5!`-#H00#@Z$$`\.A!`"#H00"@Z$$`L.A!`,#H00"0 ++MY4$`<.A!`(#H00"0Z$$`8.5!`"#C00#`Y$$`T.1!`+#E00`\@4(`/(%"`#R! ++M0@`\@4(`/(%"`#R!0@`\@4(`/(%"`)#I00``````(0`````````@VD(``0`` ++M````````````3%I-03(```"@\4$`L/%!`,#Q00!0[$$`8.Q!`'#Q00"`\4$` ++MD/%!`-#M00!`\4$`4/%!`&#Q00"P[4$`$/%!`"#Q00`P\4$`L.Q!`)#J00#0 ++MZT$`X.M!`*#P00``````T/%!```````!`0,``````*#:0@`!```````````` ++M``!,6DU!`````,#X00#PV$$`T/A!`%#X00"@^$$`P-A!`+#X00`P^$$`@/A! ++M`)#800"0^$$`X/-!`)#R00"@\T$`L/-!`%#V00#@^$$```````$$`P`````` ++M"-M"``$``````````````%!0340`````/(%"`#R!0@`\@4(`/(%"`.`*0@!@ ++MXD$`\`I"`)`,0@#@#$(`D`-"`&`#0@!P`T(`(`Q"`%`,0@!@!$(`L`I"`,`* ++M0@#0"D(`P`5"`*`*0@!@XD$`\`I"`,`&0@"``D(`8`-"`'`#0@"0!T(`\`A" ++M`(`$0@`\@4(`/(%"`#R!0@`\@4(`/(%"`#R!0@`\@4(`/(%"`,`&0@`\@4(` ++M/(%"`#R!0@"0!T(`\`A"`)`!0@#@"D(`8.)!`/`*0@"0#$(`X`Q"`)`#0@!@ ++M`T(`<`-"`"`,0@!0#$(`8`1"````````"T(```````$'\08`````$-Q"``$` ++M```!`````````#=Z0453````X`U"```.0@`0#D(`,`Y"`!`.0@`P#D(`D`Y" ++M`,`.0@`\W$(`=7-E<F5N=@!S971U<&%P:0!A<'!H96QP`'!R;W!S>7,`9'=M ++M87!I`&-R>7!T8F%S90!O;&5A8V,`8VQB8V%T<0!V97)S:6]N`'5X=&AE;64` ++M````:P!E`'(`;@!E`&P`,P`R`"X`9`!L`&P``````%-E=$1E9F%U;'1$;&Q$ ++M:7)E8W1O<FEE<P```````````````!D."0<%!00$!`,#`P("`@+=/#\?OUGS ++M2*%DO%HR9E%@`````````````````````&-\=WOR:V_%,`%G*_[7JW;*@LE] ++M^EE'\*W4HJ^<I'+`M_V3)C8_]\PTI>7Q<=@Q%03'(\,8E@6:!Q*`XNLGLG4) ++M@RP:&VY:H%([UK,IXR^$4]$`[2#\L5MJR[XY2DQ8S]#OJOM#33.%1?D"?U`\ ++MGZA1HT"/DITX];RVVB$0__/2S0P3[%^71!?$IWX]9%T9<V"!3]PB*I"(1NZX ++M%-Y>"]O@,CH*208D7,+3K&*1E>1YY\@W;8W53JEL5O3J97JN"+IX)2X<IK3& ++MZ-UT'TN]BXIP/K5F2`/V#F$U5[F&P1V>X?B8$6G9CI2;'H?ISE4HWXRAB0V_ ++MYD)H09DM#[!4NQ:8+XI"D40W<<_[P+6EV[7I6\)6.?$1\5FD@C^2U5X<JYBJ ++M!]@!6X,2OH4Q),-]#%5T7;YR_K'>@*<&W)MT\9O!P6F;Y(9'ON_&G<$/S*$, ++M)&\LZ2VJA'1*W*FP7-J(^79243Z8;<8QJ,@G`[#'?UF_\PO@QD>1I]518\H& ++M9RDI%(4*MR<X(1LN_&TL31,-.%-4<PIENPIJ=B[)PH&%+'*2H>B_HDMF&JAP ++MBTO"HU%LQQGHDM$D!IG6A34.]'"@:A`6P:09"&PW'DQW2">UO+`TLPP<.4JJ ++MV$Y/RIQ;\V\N:.Z"CW1O8Z5X%'C(A`@"QXSZ_[Z0ZVQ0I/>C^;[R>''&`P(! ++M``<&!00+"@D(#PX-#)@OBD*11#=QS_O`M:7;M>E;PE8Y\1'Q6:2"/Y+57ARK ++MF*H'V`%;@Q*^A3$DPWT,571=OG+^L=Z`IP;<FW3QF\'!:9ODAD>^[\:=P0_, ++MH0PD;RSI+:J$=$K<J;!<VHCY=E)1/IAMQC&HR"<#L,=_6;_S"^#&1Y&GU5%C ++MR@9G*2D4A0JW)S@A&R[\;2Q-$PTX4U1S"F6["FIV+LG"@84L<I*AZ+^B2V8: ++MJ'"+2\*C46S'&>B2T20&F=:%-0[T<*!J$!;!I!D(;#<>3'=()[6\L#2S#!PY ++M2JK83D_*G%OS;RYH[H*/=&]CI7@4>,B$"`+'C/K_OI#K;%"D]Z/YOO)X<<8` ++M`````````,````````!&1//]5FW]T!&5B@!@E\F@D*C@0@#K@$(`_____P`` ++M``"P@4(``````/____\$@D(`#H)"``````#_____`````*:"0@``````____ ++M_PJ&0@`>AD(``````&`Q0P```````````/____\``````````'C@0@`````` ++M```````````!````D.!"`````````````````&`Q0P"8X$(``````"`%DQD" ++M````X.!"``$```#PX$(`````````````````_____P````#_____```````` ++M`````````0````(````(X4(```````D```!H,$,``````%(00``````````` ++M``````!F$$``(`63&0$```!(X4(```````````````````````````#_____ ++MW)9"`"`%DQD1````<.%"````````````````````````````______"60@`` ++M````^)9"``$`````ET(``@````B70@`"````$)="``0````8ET(`!0```".7 ++M0@`%````+9="``<````XET(`!P```$*70@`)````2I="``H```!5ET(`"P`` ++M`%V70@`,````99="``T```!MET(`#@```'B70@`/````@)="`"`%DQD"```` ++M&.)"````````````````````````````_____YB70@``````H)="`"`%DQD! ++M````2.)"````````````````````````````_____[270@`@!9,9"````'#B ++M0@```````````````````````````/_____,ET(``````->70@`!````XI=" ++M``(```#MET(``P```/B70@`$`````YA"``4````.F$(`!@```!F80@`@!9,9 ++M`P```-#B0@```````````````````````````/____\TF$(``````#^80@`! ++M````2IA"`"`%DQD!````".-"````````````````````````````_____V"8 ++M0@`@!9,9`0```##C0@```````````````````````````/____]TF$(`(`63 ++M&0$```!8XT(```````````````````````````#_____B)A"`"`%DQD!```` ++M@.-"````````````````````````````_____Z"80@`!````B#!#``````#_ ++M____``````0```````````````$```"(XT(`````````````````J.-"`"`% ++MDQD!````X.-"````````````````````````````_____[280@`@!9,9`P`` ++M``CD0@```````````````````````````/_____(F$(``````-"80@`!```` ++MV)A"``````!H,$,``````/____\``````0```````````````0```"#D0@`` ++M``````````````!`Y$(`(`63&0$```!XY$(````````````````````````` ++M``#_____[)A"`"`%DQD!````H.1"````````````````````````````____ ++M_P"90@`@!9,9`0```,CD0@```````````````````````````/____\4F4(` ++M(`63&0$```#PY$(```````````````````````````#_____*)E"`"`%DQD! ++M````&.5"````````````````````````````_____SR90@`!````F#!#```` ++M``#_____``````0```````````````$```"H,$,``````/____\`````!``` ++M`````````````@```$#E0@`@Y4(``````"`%DQD!````D.5"```````````` ++M````````````````_____U"90@`@!9,9`0```+CE0@`````````````````` ++M`````````/____]DF4(`(`63&0$```#@Y4(````````````````````````` ++M``#_____>)E"`"`%DQD!````".9"````````````````````````````____ ++M_XR90@`@!9,9`0```##F0@```````````````````````````/____^@F4(` ++M(`63&0(```!8YD(```````````````````````````#_____M)E"``````"\ ++MF4(`(`63&0$```"(YD(```````````````````````````#_____T)E"`"`% ++MDQD!````L.9"````````````````````````````_____^290@`@!9,9`0`` ++M`-CF0@```````````````````````````/_____XF4(`(`63&0<`````YT(` ++M``````````````````````````#_____#)I"```````4FD(``0```!R:0@`! ++M````))I"``,````LFD(`_____S2:0@`%````/)I"`"`%DQD!````6.="```` ++M````````````````````````_____U":0@`@!9,9`0```(#G0@`````````` ++M`````````````````/____]DFD(`(`63&0$```"HYT(````````````````` ++M``````````#_____>)I"`"`%DQD!````T.="```````````````````````` ++M````_____XR:0@`@!9,9`@```/CG0@```````````````````````````/__ ++M__^@FD(``````*B:0@`@!9,9`P```"CH0@`````````````````````````` ++M`/____^\FD(`_____\2:0@`!````S)I"``$``````````````&#E0@`@!9,9 ++M`0```'#H0@```````````````````````````/_____@FD(`(`63&0(```"8 ++MZ$(```````````````````````````#_____])I"``````#\FD(`(`63&0$` ++M``#(Z$(```````````````````````````#_____$)M"`"`%DQD"````\.A" ++M``$`````Z4(`````````````````_____P````#_____```````````````` ++M`0````$````8Z4(``````````````````````*%E0``@!9,9`@```$CI0@`` ++M`````````````````````````/____\PFT(``````#B;0@`@!9,9`0```'CI ++M0@```````````````````````````/____],FT(`(`63&0,```"@Z4(````` ++M``````````````````````#_____8)M"``````!HFT(``0```'";0@`@!9,9 ++M`0```-CI0@```````````````````````````/____^$FT(`(`63&08````` ++MZD(```````````````````````````#_____G)M"``````"PFT(``0```+N; ++M0@`"````QIM"``,```#1FT(`!````-R;0@`@!9,9`0```%#J0@`````````` ++M`````````````````/_____TFT(`(`63&0X```!XZD(````````````````` ++M``````````#_____#)Q"```````7G$(``0```"*<0@`"````+9Q"``,````X ++MG$(`!````$.<0@`%````3IQ"``8```!<G$(`!P```&J<0@`(````>)Q"``D` ++M``"&G$(`"@```)2<0@`+````HIQ"``P```"PG$(`(`63&0X````(ZT(````` ++M``````````````````````#_____R)Q"``````#3G$(``0```-Z<0@`"```` ++MZ9Q"``,```#TG$(`!````/^<0@`%````"IU"``8````8G4(`!P```":=0@`( ++M````-)U"``D```!"G4(`"@```%"=0@`+````7IU"``0```!LG4(`(`63&0$` ++M``"8ZT(```````````````````````````#_____@)U"`"`%DQD"````P.M" ++M``$```#0ZT(`````````````````_____P````#_____```````````````` ++M`0````$```#HZT(``````````````````````$:+0``@!9,9`@```!CL0@`! ++M````*.Q"`````````````````/____\`````_____P````````````````$` ++M```!````0.Q"``````````````````````#DBT``(`63&0(```!P[$(``0`` ++M`(#L0@````````````````#_____`````/____\````````````````!```` ++M`0```)CL0@``````````````````````P8Q``"`%DQD!````R.Q"```````` ++M````````````````````_____[B=0@`@!9,9`0```/#L0@`````````````` ++M`````````````/_____,G4(`(`63&0(````8[4(````````````````````` ++M``````#_____X)U"``````#HG4(`(`63&0(```!([4(````````````````` ++M``````````#______)U"```````$GD(`(`63&0(```!X[4(````````````` ++M``````````````#_____&)Y"`/____\@GD(`(`63&0,```"H[4(````````` ++M``````````````````#_____-)Y"```````\GD(``0```$2>0@`@!9,9!P`` ++M`.#M0@```````````````````````````/____]8GD(``````&">0@`!```` ++M:)Y"``````!HGD(``````'">0@``````>)Y"``4```"`GD(`(`63&04````X ++M[D(```````````````````````````#_____F)Y"``````"@GD(``0```*B> ++M0@`!````L)Y"``$```"ZGD(`(`63&0$```"`[D(````````````````````` ++M``````#_____S)Y"`"`%DQD$````J.Y"``$```#([D(````````````````` ++M_____P``````````X)Y"``````#HGD(`_____P```````````@````,````! ++M````X.Y"``````````````````````!3GT``(`63&0(````0[T(``0```"#O ++M0@````````````````#_____`````/____\````````````````!`````0`` ++M`#CO0@``````````````````````]9]``"`%DQD"````:.]"``$```!X[T(` ++M````````````````_____P````#_____`````````````````0````$```"0 ++M[T(```````````````````````^B0``@!9,9`@```,#O0@`!````T.]"```` ++M`````````````/____\`````_____P````````````````$````!````Z.]" ++M``````````````````````!+HT``(`63&0$````8\$(````````````````` ++M``````````#_____()]"`"`%DQD!````0/!"```````````````````````` ++M````_____S2?0@`@!9,9`0```&CP0@```````````````````````````/__ ++M__](GT(`(`63&0$```"0\$(```````````````````````````#_____7)]" ++M`"`%DQD"````N/!"``$```#(\$(`````````````````_____P````#_____ ++M`````````````````0````$```#@\$(``````````````````````(*H0``@ ++M!9,9`@```!#Q0@`!````(/%"`````````````````/____\`````_____P`` ++M``````````````$````!````./%"``````````````````````#CJ$``(`63 ++M&0,```!H\4(``0```(#Q0@````````````````#_____``````````"(GT(` ++M_____P```````````0````(````!````F/%"``````````````````````"[ ++MJ4``(`63&0$```#(\4(```````````````````````````#_____G)]"`"`% ++MDQD"````\/%"````````````````````````````_____["?0@#_____NI]" ++M`"`%DQD(````(/)"``$```!@\D(`````````````````_____P`````````` ++MS)]"``$```#4GT(``@```-R?0@`#````Y)]"``,```#NGT(``P```/:?0@#_ ++M____```````````&````!P````$```!X\D(``````````````````````(.O ++M0``@!9,9`0```*CR0@```````````````````````````/____\(H$(`(`63 ++M&0$```#0\D(```````````````````````````#_____'*!"`"`%DQD#```` ++M^/)"``$````0\T(`````````````````_____P``````````-*!"`/____\` ++M``````````$````"`````0```"CS0@``````````````````````@;%``"`% ++MDQD!````6/-"````````````````````````````_____TB@0@`@!9,9`0`` ++M`(#S0@```````````````````````````/____]<H$(`(`63&0$```"H\T(` ++M``````````````````````````#_____<*!"`"`%DQD!````T/-"```````` ++M````````````````````_____X2@0@`@!9,9`@```/CS0@`````````````` ++M`````````````/____^8H$(`_____Z"@0@`@!9,9"P```"CT0@`````````` ++M`````````````````/____^TH$(``````+R@0@`!````QZ!"``````#/H$(` ++M`P```->@0@`#````X:!"``4```#LH$(`!@```/>@0@`'`````J%"``@````* ++MH4(`"0```!6A0@`@!9,9`P```*#T0@```````````````````````````/__ ++M__\HH4(``````#"A0@`!````.Z%"`"`%DQD!````V/1"```````````````` ++M````````````_____U"A0@`@!9,9!`````#U0@`````````````````````` ++M`````/____]HH4(``````'"A0@`!````>Z%"``(```"&H4(`(`63&0$```!` ++M]4(```````````````````````````#_____G*%"`"`%DQD0````:/5"```` ++M````````````````````````_____["A0@``````N*%"``$```#`H4(``@`` ++M`,BA0@`#````TZ%"``0```#;H4(``P```..A0@`&````ZZ%"``<```#VH4(` ++M!P```/ZA0@`'````!J)"``<````6HD(`!P````ZB0@`'````'J)"``<````F ++MHD(`#@```"ZB0@`@!9,9`0````CV0@```````````````````````````/__ ++M__]`HD(`(`63&0$````P]D(```````````````````````````#_____5*)" ++M`"`%DQD#````6/9"````````````````````````````_____VBB0@`````` ++M<*)"``$```![HD(`(`63&0$```"0]D(```````````````````````````#_ ++M____D*)"`"`%DQD"````N/9"````````````````````````````_____Z2B ++M0@#_____K*)"`"`%DQD!````Z/9"````````````````````````````____ ++M_\"B0@`@!9,9!````!#W0@```````````````````````````/_____4HD(` ++M`````-RB0@`!````Y*)"``$```#LHD(`(`63&00```!0]T(````````````` ++M``````````````#_____`*-"```````(HT(``0```!"C0@#_____&*-"`"`% ++MDQD"````D/="````````````````````````````_____RRC0@``````-J-" ++M`"`%DQD!````P/="````````````````````````````_____TBC0@`@!9,9 ++M`0```.CW0@```````````````````````````/____]<HT(`(`63&0$````0 ++M^$(```````````````````````````#_____=*-"`"`%DQD!````./A"```` ++M````````````````````````_____XBC0@`@!9,9`0```�@`````````` ++M`````````````````/____^<HT(`(`63&0$```"(^$(````````````````` ++M``````````#_____L*-"`"`%DQD!````L/A"```````````````````````` ++M````_____\2C0@`@!9,9!````-CX0@```````````````````````````/__ ++M___8HT(`_____^"C0@#_____Z*-"`/_____PHT(`(`63&0$````8^4(````` ++M``````````````````````#_____!*1"`"`%DQD!````0/E"```````````` ++M````````````````_____QBD0@`@!9,9`@```&CY0@`!````>/E"```````` ++M`````````/____\`````_____P````````````````$````!````D/E"```` ++M``````````````````"6V4``(`63&08```#`^4(````````````````````` ++M``````#_____.*1"``````!`I$(``0```$BD0@`"````4*1"``,```!8I$(` ++M!````&"D0@`@!9,9!@```!#Z0@```````````````````````````/____]T ++MI$(``````'RD0@`!````A*1"``(```",I$(``P```)2D0@`!````G*1"`"`% ++MDQD&````8/I"````````````````````````````_____["D0@``````N*1" ++M``$```#`I$(``0```,JD0@`#````TJ1"``0```#:I$(`(`63&0D```"P^D(` ++M``````````````````````````#_____[*1"`/_____WI$(`______^D0@`" ++M````!Z5"``,````/I4(`!````!>E0@`%````(J5"``4````JI4(`!P```#*E ++M0@`@!9,9"````!C[0@```````````````````````````/____](I4(````` ++M`%"E0@`!````6Z5"``(```!FI4(``P```'&E0@`$````?*5"``4```"'I4(` ++M!@```)*E0@`@!9,9!0```'C[0@```````````````````````````/____^H ++MI4(`_____[*E0@`!````NJ5"``(```#"I4(``P```,JE0@`@!9,9!@```,#[ ++M0@```````````````````````````/_____<I4(``````.>E0@`!````\J5" ++M``(```#]I4(``P````BF0@`$````$Z9"`"`%DQD&````$/Q"```````````` ++M````````````````_____RBF0@``````,Z9"``$````^ID(``@```$FF0@`# ++M````5*9"``0```!?ID(`(`63&0$```!@_$(````````````````````````` ++M``#_____=*9"`"`%DQD(````B/Q"````````````````````````````____ ++M_XBF0@``````D*9"``$```";ID(``@```*:F0@`#````L:9"``0```"\ID(` ++M!0```,>F0@`&````TJ9"`"`%DQD!````Z/Q"```````````````````````` ++M````_____^BF0@`@!9,9!@```!#]0@```````````````````````````/__ ++M__\`IT(`_____PBG0@#_____$*="``(````8IT(``P```""G0@`$````**=" ++M`"`%DQD!````8/U"````````````````````````````_____SRG0@`@!9,9 ++M"````(C]0@```````````````````````````/____]0IT(``````'.G0@`` ++M````6*="``````!@IT(``P```&BG0@``````>Z="``4```"#IT(`!@```(NG ++M0@`@!9,9`@```.C]0@```````````````````````````/____^@IT(````` ++M`*BG0@`@!9,9`@```!C^0@```````````````````````````/____^\IT(` ++M`````,2G0@`@!9,9!````$C^0@```````````````````````````/_____8 ++MIT(``````."G0@``````Z*="``(```#PIT(`(`63&0$```"(_D(````````` ++M``````````````````#_____!*A"`"`%DQD"````L/Y"```````````````` ++M````````````_____QBH0@``````(*A"`"`%DQD"````X/Y"```````````` ++M````````````````_____S2H0@``````/*A"`"`%DQD!````$/]"```````` ++M````````````````````_____U"H0@`@!9,9!P```#C_0@`````````````` ++M`````````````/____]HJ$(``````'"H0@`!````>ZA"``(```"&J$(``P`` ++M`)&H0@`$````G*A"``4```"GJ$(`(`63&0(```"0_T(````````````````` ++M``````````#_____P*A"``````#(J$(`(`63&04```#`_T(````````````` ++M``````````````#_____X*A"``````#HJ$(``0```/.H0@`"````_JA"``,` ++M```)J4(`(`63&0<````(`$,```````````````````````````#_____(*E" ++M```````HJ4(``0```#"I0@`!````.*E"``,```!`J4(`!````$NI0@`%```` ++M4ZE"`"`%DQD!````8`!#````````````````````````````_____VBI0@`@ ++M!9,9`P```(@`0P```````````````````````````/____]\J4(``````(2I ++M0@`!````CZE"`"`%DQD$````P`!#````````````````````````````____ ++M_Z2I0@``````K*E"``$```"WJ4(``@```,*I0@`@!9,9`0`````!0P`````` ++M`````````````````````/_____8J4(`(`63&0$````H`4,````````````` ++M``````````````#_____[*E"`"`%DQD!````4`%#```````````````````` ++M````````_____P"J0@`@!9,9`@```'@!0P`````````````````````````` ++M`/____\4JD(``````!RJ0@`@!9,9`@```*@!0P`````````````````````` ++M`````/____\TJD(``````#RJ0@`@!9,9`P```-@!0P`````````````````` ++M`````````/____]0JD(``````%BJ0@`!````8*I"`"`%DQD.````$`)#```` ++M````````````````````````_____W2J0@#_____?*I"`/____^$JD(``@`` ++M`(RJ0@#_____E*I"``0```"<JD(`_____ZRJ0@`&````M*I"``8```"\JD(` ++M"````,2J0@`)````S*I"``@```#4JD(`"P```-RJ0@#_____I*I"`"`%DQD$ ++M````H`)#````````````````````````````______"J0@#_____^*I"`/__ ++M__\`JT(`_____PBK0@`@!9,9`0```.`"0P`````````````````````````` ++M`/____\<JT(`(`63&0$````(`T,```````````````````````````#_____ ++M,*M"`"`%DQD!````,`-#````````````````````````````_____T2K0@`@ ++M!9,9`0```%@#0P```````````````````````````/____]8JT(`(`63&0(` ++M``"``T,```````````````````````````#_____;*M"``````!TJT(`(`63 ++M&0$```"P`T,```````````````````````````#_____B*M"`"`%DQD"```` ++MV`-#````````````````````````````_____YRK0@``````I*M"`"`%DQD% ++M````"`1#````````````````````````````_____[BK0@``````P*M"```` ++M``#(JT(`_____]"K0@`#````V*M"`"`%DQD$````4`1#```````````````` ++M````````````_____^RK0@``````]ZM"``$````"K$(``@````VL0@`@!9,9 ++M`P```)`$0P```````````````````````````/____\DK$(`_____RRL0@`! ++M````-*Q"`"`%DQD!````R`1#````````````````````````````_____TBL ++M0@`@!9,9`@```/`$0P```````````````````````````/____]<K$(````` ++M`&2L0@`@!9,9$@```"`%0P```````````````````````````/____]XK$(` ++M`````("L0@`!````BZQ"``(```"6K$(``P```*&L0@`$````K*Q"``4```"W ++MK$(`!@```,*L0@`'````S:Q"``@```#8K$(`"0```.:L0@`*````]*Q"``L` ++M```"K4(`#````!"M0@`-````'JU"``X````LK4(`#P```#JM0@`0````2*U" ++M`"`%DQD$````T`5#````````````````````````````_____V"M0@`````` ++M:ZU"``$```!VK4(``@```(&M0@`@!9,9$0```!`&0P`````````````````` ++M`````````/____^8K4(``````*"M0@`!````JZU"``(```"VK4(``P```,&M ++M0@`$````S*U"``4```#7K4(`!@```.*M0@`'````[:U"``@```#XK4(`"0`` ++M``:N0@`*````%*Y"``L````BKD(`#````#"N0@`-````/JY"``X```!,KD(` ++M#P```%JN0@`@!9,9!````+@&0P```````````````````````````/____]T ++MKD(`_____WRN0@#_____A*Y"``(```",KD(`(`63&0,```#X!D,``0```!`' ++M0P````````````````#_____``````````"@KD(`_____P```````````0`` ++M``(````!````*`=#``````````````````````!)/T$`(`63&0,```!8!T,` ++M``````````````````````````#_____M*Y"`/____^\KD(``0```,2N0@`@ ++M!9,9`0```)`'0P```````````````````````````/_____8KD(`(`63&0(` ++M``"X!T,```````````````````````````#_____[*Y"``````#TKD(`(`63 ++M&0$```#H!T,```````````````````````````#_____"*]"`"`%DQD"```` ++M$`A#````````````````````````````_____QRO0@``````)*]"`"`%DQD" ++M````0`A#````````````````````````````_____SBO0@``````0*]"`"`% ++MDQD"````<`A#````````````````````````````_____U2O0@``````7*]" ++M`"`%DQD!````H`A#````````````````````````````_____W"O0@`@!9,9 ++M`@```,@(0P`!````V`A#`````````````````/____\`````_____P`````` ++M``````````$````!````\`A#``````````````````````!"2D$`(`63&0<` ++M```@"4,``0```%@)0P````````````````#_____D*]"``````"8KT(``0`` ++M```````!``````````,```"@KT(``0```*BO0@`!````L*]"``(````"```` ++M!`````4```!P"4,```````$```#8,$,`Y/___Y!*00`)````P#!#`.#___^A ++M2D$``0```*@P0P#<____LDI!``````"(,$,`V/___]E*00`````````````` ++M``#W2D$`(`63&0$```#@"4,```````````````````````````#_____Q*]" ++M`"`%DQD!````"`I#````````````````````````````_____]BO0@`@!9,9 ++M`0```#`*0P```````````````````````````/_____LKT(`(`63&0$```!8 ++M"D,```````````````````````````#_____`+!"`"`%DQD#````@`I#```` ++M````````````````````````_____Q2P0@``````'+!"``$````DL$(`(`63 ++M&0$```"X"D,```````````````````````````#_____.+!"`"`%DQD%```` ++MX`I#````````````````````````````_____TRP0@``````5[!"``$```!? ++ML$(``@```&>P0@``````;[!"`"`%DQD"````*`M#```````````````````` ++M````````_____X2P0@``````C+!"`"`%DQD"````6`M#```````````````` ++M````````````_____Z2P0@``````K+!"`"`%DQD"````B`M#```````````` ++M````````````````_____\2P0@``````S+!"`"`%DQD"````N`M#```````` ++M````````````````````_____^2P0@``````[+!"`"`%DQD#````Z`M#```` ++M````````````````````````_____P2Q0@``````#+%"``$````:L4(`(`63 ++M&0$````@#$,```````````````````````````#_____-+%"`"`%DQD"```` ++M2`Q#````````````````````````````_____TBQ0@#_____4+%"`"`%DQD! ++M````>`Q#````````````````````````````_____V2Q0@`@!9,9`@```*`, ++M0P`!````L`Q#`````````````````/____\`````_____P`````````````` ++M``$````!````R`Q#```````````````````````,74$`(`63&0$```#X#$,` ++M``````````````````````````#_____A+%"`"`%DQD"````(`U#```````` ++M````````````````````_____YBQ0@``````H+%"`"`%DQD!````4`U#```` ++M````````````````````````_____[2Q0@`@!9,9!@```'@-0P`````````` ++M`````````````````/_____(L4(``````-RQ0@`!````Y+%"``(```#OL4(` ++M`P```/JQ0@`$````!;)"`"`%DQD#````R`U#```````````````````````` ++M````_____QRR0@``````)[)"``$````RLD(`(`63&0$`````#D,````````` ++M``````````````````#_____2+)"`"`%DQD!````*`Y#```````````````` ++M````````````_____URR0@`@!9,9`0```%`.0P`````````````````````` ++M`````/____]PLD(`(`63&0T```!X#D,```````````````````````````#_ ++M____A+)"``````",LD(``0```)2R0@`!````G[)"``,```"GLD(`!````*^R ++M0@`%````M[)"``4```"_LD(`!P```,>R0@`(````TK)"``<```#:LD(`!P`` ++M`.*R0@`+````ZK)"`"`%DQD!``````]#```````````````````````````` ++M______RR0@`@!9,9`@```"@/0P`!````.`]#`````````````````/____\` ++M````_____P````````````````$````!````4`]#```````````````````` ++M```X<D$`(`63&0<```"`#T,``0```+@/0P````````````````#_____```` ++M```````<LT(``0```"2S0@`!````+K-"``,````VLT(``P```$"S0@#_____ ++M```````````%````!@````$```#0#T,``````````````````````*)U00`@ ++M!9,9!0`````00P`!````*!!#`````````````````/____\``````````%2S ++M0@``````7K-"``(```!FLT(`_____P```````````P````0````!````0!!# ++M``````````````````````#M=T$`(`63&0$```!P$$,````````````````` ++M``````````#_____>+-"`"`%DQD!````F!!#```````````````````````` ++M````_____Y"S0@`@!9,9`@```,`00P```````````````````````````/__ ++M__^DLT(``````*^S0@`@!9,9`0```/`00P`````````````````````````` ++M`/_____$LT(`(`63&0$````8$4,```````````````````````````#_____ ++MV+-"`"`%DQD!````0!%#````````````````````````````_____^RS0@`@ ++M!9,9'0```&@10P```````````````````````````/____\`M$(```````BT ++M0@``````$[1"``(````>M$(``@```"BT0@`"````.+1"``(```!`M$(``@`` ++M`$BT0@`"````,+1"``(```!0M$(``@```%BT0@`"````8+1"``(```!HM$(` ++M#````'"T0@`,````N+1"``T```!XM$(`#0```,"T0@`,````R+1"``T```"` ++MM$(`#````(BT0@`"````D+1"``(```"8M$(`%0```*"T0@`"````J+1"`!<` ++M``"PM$(`&````-"T0@`8````V+1"`!H```#@M$(`&P```.BT0@`@!9,9`@`` ++M`'`20P```````````````````````````/_____\M$(``````!"U0@`@!9,9 ++M`0```*`20P```````````````````````````/____\HM4(`(`63&0$```#( ++M$D,```````````````````````````#_____/+5"`"`%DQD!````\!)#```` ++M````````````````````````_____U"U0@`@!9,9$0```!@30P`"````H!-# ++M`````````````````/____\``````````&2U0@`!````;+5"``(```!TM4(` ++M`P```'^U0@`$````A[5"``4```"/M4(`!@`````````'````E[5"``<```"W ++MM4(`!P```+^U0@`'````Q[5"``<```"?M4(`!P```*>U0@`'````K[5"``8` ++M````````_____P`````'````#@````\````!````R!-#```````/````$``` ++M``$```#8$T,`````````````````"II!`````````````````(^:00`@!9,9 ++M`0````@40P```````````````````````````/_____<M4(`(`63&0$````P ++M%$,```````````````````````````#_____]+5"`"`%DQD"````6!1#```` ++M````````````````````````_____PRV0@``````%[9"`"`%DQD!````B!1# ++M````````````````````````````_____RRV0@`@!9,9!P```+`40P`````` ++M`````````````````````/____]$MD(``````$RV0@`!````5[9"``(```!B ++MMD(``P```&VV0@`$````>[9"``4```")MD(`(`63&0<````(%4,``@```$`5 ++M0P````````````````#_____`````````````````0```)RV0@`"````I+9" ++M``,```"LMD(```````````#_____``````$````$````!0````$```!H%4,` ++M``````4````&`````0```'@50P`````````````````QID$````````````` ++M````0*9!`"`%DQD"````J!5#``$```"X%4,`````````````````_____P`` ++M``#_____`````````````````0````$```#0%4,````````````````````` ++M`*BF00``````Z#!#``````#_____``````$```````````````$```#@%4,` ++M`````````````````!9#```````8,4,``````/____\``````0`````````` ++M`````@```!@60P#@%4,``````````````````````#@60P`@!9,9`0```'@6 ++M0P```````````````````````````/_____0MD(`(`63&0$```"@%D,````` ++M``````````````````````#_____Y+9"`"`%DQD#````R!9#```````````` ++M````````````````______BV0@```````+="``$````(MT(`(`63&0$````` ++M%T,```````````````````````````#_____'+="`"`%DQD!````*!=#```` ++M````````````````````````_____S"W0@`@!9,9!@```%`70P`````````` ++M`````````````````/____]$MT(``````$^W0@`!````5[="``$```!?MT(` ++M`P```&>W0@`$````<K="`"`%DQD*````H!=#```````````````````````` ++M````_____X2W0@``````C+="``$```"4MT(``0```)^W0@`#````JK="``0` ++M``"RMT(`!0```+JW0@`&````PK="``<```#-MT(`!P```-6W0@`@!9,9`P`` ++M`!`80P```````````````````````````/_____HMT(``````/"W0@`!```` ++M^+="`"`%DQD"````2!A#``$```!8&$,`````````````````_____P````#_ ++M____`````````````````0````(```!P&$,```````@````8,4,``````%O- ++M00`(````Z#!#``````!KS4$`(`63&0$```"P&$,````````````````````` ++M``````#_____&+A"`"`%DQD!````V!A#```````````````````````````` ++M_____RRX0@`@!9,9`0`````90P```````````````````````````/____]` ++MN$(`(`63&0$````H&4,```````````````````````````#_____8+A"`"`% ++MDQD!````4!E#````````````````````````````_____X"X0@`@!9,9`0`` ++M`'@90P```````````````````````````/____^@N$(`(`63&0(```"@&4,` ++M``````````````````````````#_____P+A"``````#(N$(`(`63&0$```#0 ++M&4,```````````````````````````#_____X+A"`"`%DQD!````^!E#```` ++M````````````````````````_____R"Y0@`@!9,9`@```"`:0P`!````,!I# ++M`````````````````/____\`````_____P````````````````$````!```` ++M2!I#``````````````````````!C!T(`(`63&0,```!X&D,``0```)`:0P`` ++M``````````````#_____``````````!PN4(`_____P```````````0````(` ++M```!````J!I#``````````````````````#&"$(`(`63&0$```#8&D,````` ++M``````````````````````#_____D+E"`"`%DQD!`````!M#```````````` ++M````````````````_____["Y0@#_____3G9"`%1V0@`D'0,````````````6 ++M'@,`A,$"`/`=`P```````````'H>`P!0P@(`3!T#````````````""$#`*S! ++M`@`\'0,```````````!4(0,`G,$"`*@<`P```````````"PB`P`(P0(`H!L# ++M````````````OB<#``#``@```````````````````````````*PG`P"0)P,` ++M?"<#`&@G`P!:)P,`3B<#`#XG`P`H)P,`&B<#`/XF`P#P)@,`X"8#`,PF`P"R ++M)@,`FB8#`)(F`P!Z)@,`8B8#`$@F`P`R)@,`(B8#``XF`P#T)0,`X"4#`,8E ++M`P"N)0,`G"4#`(XE`P"`)0,`<"4#`&0E`P!8)0,`1B4#`#@E`P`>)0,`""4# ++M`/0D`P#B)`,`TB0#`,`D`P"T)`,`I"0#`(8D`P!V)`,`7B0#`$XD`P!`)`,` ++M+"0#`"`D`P`,)`,`]B,#`.@C`P#:(P,`S",#`+8C`P"D(P,`@B,#`'`C`P!B ++M(P,`4B,#`#PC`P`L(P,`&B,#``HC`P"8(P,``````-HA`P#D(0,`[B$#```B ++M`P`4(@,`."(#`$PB`P!:(@,`9"(#`&PB`P!Z(@,`@B(#`(PB`P"<(@,`J"(# ++M`+PB`P#,(@,`W"(#`.HB`P#\(@,`QB$#`+XA`P"T(0,`JB$#`*`A`P"4(0,` ++MBB$#`'0A`P!@(0,`T"$#```````$``"``@``@`D``(`&``"`!P``@``````L ++M(0,`0B$#`!0A`P``````N"`#`*(@`P"4(`,`B"`#`'8@`P!J(`,`7B`#`%`@ ++M`P`^(`,`+"`#`!P@`P`,(`,`_A\#`.P?`P#:'P,`RB`#`+P?`P"N'P,`H!\# ++M`(X?`P"`'P,`<!\#`&`?`P!,'P,`.A\#`"(?`P`*'P,`^!X#`.@>`P#:'@,` ++MQAX#`+0>`P"B'@,`DAX#`(0>`P#6(`,`XB`#`.X@`P#\(`,`R!\#``````!$ ++M'@,`-!X#`&8>`P!6'@,`)!X#``````!C;VUD;&<S,BYD;&P``$],14%55#,R ++M+F1L;```[0!/;&5);FET:6%L:7IE`&0`0V]487-K365M1G)E90!H`$-O56YI ++M;FET:6%L:7IE```Z`$-O26YI=&EA;&EZ90``$`!#;T-R96%T94EN<W1A;F-E ++M``!O;&4S,BYD;&P`-P!#:&%R57!P97)7``#U`4]P96Y#;&EP8F]A<F0`0@!# ++M;&]S94-L:7!B;V%R9```P0!%;7!T>4-L:7!B;V%R9```20)3971#;&EP8F]A ++M<F1$871A``#+`4QO8613=')I;F=7`#\"4V5N9$UE<W-A9V57``!Z`4=E=%=I ++M;F1O=U1E>'17``!Y`4=E=%=I;F1O=U1E>'1,96YG=&A7``"9`E-Y<W1E;5!A ++M<F%M971E<G-);F9O5P`_`4=E=$UO;FET;W));F9O00#J`4UO;FET;W)&<F]M ++M5VEN9&]W`-0!36%P1&EA;&]G4F5C=`!T`4=E=%=I;F1O=U)E8W0`$0%'971$ ++M;&=)=&5M```P`E-C<F5E;E1O0VQI96YT``#K`4UO=F57:6YD;W<``)$"4VAO ++M=U=I;F1O=P``10%'971087)E;G0`;P%'9717:6YD;W=,;VYG5P``@`)39717 ++M:6YD;W=,;VYG5P``GP!$:6%L;V=";WA087)A;5<`Y0%-97-S86=E0F]X5P`" ++M`E!O<W1-97-S86=E5P``Q`!%;F%B;&57:6YD;W<``(8"4V5T5VEN9&]W5&5X ++M=%<``),!26YV86QI9&%T95)E8W0``"$!1V5T2V5Y4W1A=&4`50)3971&;V-U ++M<P``%@%'971&;V-U<P``4P)3971$;&=)=&5M5&5X=%<`Q@!%;F1$:6%L;V<` ++ME@!$97-T<F]Y26-O;@"C`4ES1&QG0G5T=&]N0VAE8VME9```.`!#:&5C:T1L ++M9T)U='1O;@``>0)39714:6UE<@``O@%,;V%D26-O;E<`3`)3971#=7)S;W(` ++MO`%,;V%D0W5R<V]R5P"T`4MI;&Q4:6UE<@!54T52,S(N9&QL``"]`%-(1V5T ++M4&%T:$9R;VU)1$QI<W17``!Z`%-(0G)O=W-E1F]R1F]L9&5R5P``K0!32$=E ++M=$9I;&5);F9O5P``4TA%3$PS,BYD;&P`20!?7T-X>$9R86UE2&%N9&QE<@!! ++M`%]#>'A4:')O=T5X8V5P=&EO;@``E@)M96UC;7```)(!7W!U<F5C86QL`)@" ++M;65M;6]V90"7`FUE;6-P>0``D0)M86QL;V,``%X"9G)E90``[0)W8W-S='(` ++M`.$"=V-S8VUP``"9`FUE;7-E=```O@)S=')L96X``*8`7V)E9VEN=&AR96%D ++M97@``,H`7V5X8V5P=%]H86YD;&5R,P``#@`_/S%T>7!E7VEN9F]`0%5!14!8 ++M6@``35-60U)4+F1L;```+@`_=&5R;6EN871E0$!905A86@!5`%]?9&QL;VYE ++M>&ET`(8!7V]N97AI=`#3`%]E>&ET`$@`7UAC<'1&:6QT97(`20)E>&ET``"/ ++M`%]A8VUD;&X`6`!?7V=E=&UA:6YA<F=S``\!7VEN:71T97)M`(,`7U]S971U ++M<V5R;6%T:&5R<@``G0!?861J=7-T7V9D:78``&H`7U]P7U]C;VUM;V1E``!O ++M`%]?<%]?9FUO9&4``($`7U]S971?87!P7W1Y<&4``+<`7V-O;G1R;VQF<``` ++MX`%'971697)S:6]N17A7``D!1V5T0V]M;6%N9$QI;F57`&D!1V5T3&%S=$5R ++M<F]R``!K`DUU;'1I0GET951O5VED94-H87(```)';&]B86Q5;FQO8VL``/D! ++M1VQO8F%L3&]C:P``2@),;V%D3&EB<F%R>45X5P``=@%'971-;V1U;&5&:6QE ++M3F%M95<``%("3&]C86Q&<F5E`.L`1F]R;6%T365S<V%G95<``+H!1V5T4WES ++M=&5M1&ER96-T;W)Y5P`N`$-L;W-E2&%N9&QE`!0#4V5T1FEL951I;64`4`!# ++M<F5A=&5&:6QE5P`/`U-E=$9I;&5!='1R:6)U=&5S5P``NP)296UO=F5$:7)E ++M8W1O<GE7``!G`DUO=F5&:6QE5P!(`$-R96%T941I<F5C=&]R>5<``'T`1&5L ++M971E1FEL95<`'0-3971,87-T17)R;W(``#D!1V5T0W5R<F5N=$1I<F5C=&]R ++M>5<``-4!1V5T5&EC:T-O=6YT``!:`4=E=$9I;&5);F9O<FUA=&EO;D)Y2&%N ++M9&QE``"Q`4=E=%-T9$AA;F1L90``Q0!&:6YD0VQO<V4`S`!&:6YD1FER<W1& ++M:6QE5P``U`!&:6YD3F5X=$9I;&57`)@!1V5T4')O8T%D9')E<W,``'<!1V5T ++M36]D=6QE2&%N9&QE00``60%'971&:6QE071T<FEB=71E<U<``&\!1V5T3&]G ++M:6-A;$1R:79E4W1R:6YG<U<`6P%'971&:6QE4VEZ90`0`U-E=$9I;&50;VEN ++M=&5R``"K`E)E861&:6QE``"7`U=R:71E1FEL90`%`U-E=$5N9$]F1FEL90`` ++M[@%';&]B86Q!;&QO8P#U`4=L;V)A;$9R964``#,`0V]M<&%R949I;&54:6UE ++M`+P`1FEL951I;654;U-Y<W1E;51I;64``+L`1FEL951I;654;TQO8V%L1FEL ++M951I;64`>@%'971-;V1U;&5(86YD;&57``"9`4=E=%!R;V-E<W-!9F9I;FET ++M>4UA<VL``#H!1V5T0W5R<F5N=%!R;V-E<W,`NP%'9713>7-T96U);F9O`/H! ++M1VQO8F%L365M;W)Y4W1A='5S``#``4=E=%-Y<W1E;51I;65!<T9I;&54:6UE ++M`$<"3&5A=F5#<FET:6-A;%-E8W1I;VX``(\`16YT97)#<FET:6-A;%-E8W1I ++M;VX``$D#4VQE97``>@!$96QE=&5#<FET:6-A;%-E8W1I;VX`@P-786ET1F]R ++M375L=&EP;&5/8FIE8W1S```F`U-E=%!R:6]R:71Y0VQA<W,``'4#5FER='5A ++M;$%L;&]C``!X`U9I<G1U86Q&<F5E`#("27-0<F]C97-S;W)&96%T=7)E4')E ++M<V5N=`#>`4=E=%9E<G-I;VX``(4#5V%I=$9O<E-I;F=L94]B:F5C=`!*`$-R ++M96%T945V96YT5P``"P-3971%=F5N=```Q`)297-E=$5V96YT``!F`$-R96%T ++M95-E;6%P:&]R95<``+D"4F5L96%S95-E;6%P:&]R90``&0));FET:6%L:7IE ++M0W)I=&EC86Q396-T:6]N`*\!1V5T4W1A<G1U<$EN9F]!`$M%4DY%3#,R+F1L ++M;``````````````````````````````````````````````````````````` ++M``````````````````"O'4``WCA``%=!0`#P3$$`DWI!`)_000!PV4$`0-I! ++M`'#<00"0W4$`\-U!`$#A00`PXD$`\.E!`##R00!P^4$`D/U!`'#^00!@"T(` ++M@`M"``````````````````$`````````-.!"```````N/T%60TYE=T5X8V5P ++M=&EO;D!````````TX$(``````"Y(````````-.!"```````N4$%8`````#3@ ++M0@``````+E!!1``````!`````````#3@0@``````+C]!5E53=')I;F=`0``` ++M`#3@0@``````+E!!1P`````TX$(``````"X_059#26Y!<F-H:79E17AC97!T ++M:6]N0$XW>D!.07)C:&EV94!````TX$(``````"X_059#56YS=7!P;W)T961& ++M96%T=7)E17AC97!T:6]N0$XW>D!.07)C:&EV94!``#AZO*\G'```$(A"```` ++M```TX$(``````"X_059T>7!E7VEN9F]`0`````````````$````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````?P`````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````8``P```$```(`%````8```@`8```"0``"`#@```"`! ++M`(`0````.`$`@!@```!0`0"````````````````````"``$```!H`0"``@`` ++M`(`!`(````````````````````0`80```)@!`(!(#0``L`$`@*P-``#(`0"` ++MV`X``.`!`(```````````````````!``&@```/@!`(`<````$`(`@!T````H ++M`@"`0````$`"`("\````6`(`@+T```!P`@"`SP```(@"`(#0````H`(`@-4` ++M``"X`@"`U@```-`"`(#7````Z`(`@-P``````P"`Z````!@#`(#I````,`,` ++M@.H```!(`P"`[````&`#`(````````````````````$``0```'@#`(`````` ++M``````````````$``0```)`#`(````````````````````$``0```*@#`(`` ++M``````````````````$`"00``,`#``````````````````````$`"00``-`# ++M``````````````````````$`"00``.`#``````````````````````$`"00` ++M`/`#``````````````````````$`"00````$``````````````````````$` ++M"00``!`$``````````````````````$`"00``"`$```````````````````` ++M``$`"00``#`$``````````````````````$`"00``$`$```````````````` ++M``````$`"00``%`$``````````````````````$`"00``&`$```````````` ++M``````````$`"00``'`$``````````````````````$`"00``(`$```````` ++M``````````````$`"00``)`$``````````````````````$`"00``*`$```` ++M``````````````````$`"00``+`$``````````````````````$`"00``,`$ ++M``````````````````````$`"00``-`$``````````````````````$`"00` ++M`.`$``````````````````````$`"00``/`$``````````````````````$` ++M"00````%``````````````````````$`"00``!`%```````````````````` ++M``$`"00``"`%``````````````````````$`"00``#`%```````````````` ++M``````$`"00``$`%````J`,`Z`(`````````````Z*H#`"@!```````````` ++M`,"Q`P!<!``````````````XK`,`+@$`````````````:*T#`"P#```````` ++M`````)BP`P`F`0````````````!XO`,`/@``````````````,+P#`$(````` ++M`````````+B\`P!@``````````````#(Q@,`,```````````````&+T#``@" ++M`````````````""_`P#B```````````````(P`,`-```````````````0,`# ++M`#```````````````'#``P!N``````````````#@P`,`&@$````````````` ++M`,(#`&H``````````````/B[`P`R``````````````!PP@,`Z@$````````` ++M````8,0#`%8!`````````````+C%`P!6```````````````0Q@,`M@`````` ++M````````$*P#`"(``````````````%"E`P"P`@`````````````@M@,`UP4` ++M````````````L`(T````5@!3`%\`5@!%`%(`4P!)`$\`3@!?`$D`3@!&`$\` ++M`````+T$[_X```$`"0`8```````)`!@``````#\`````````!``$``$````` ++M```````````````0`@```0!3`'0`<@!I`&X`9P!&`&D`;`!E`$D`;@!F`&\` ++M``#L`0```0`P`#0`,``Y`#``-`!B`#`````X``P``0!#`&\`;0!P`&$`;@!Y ++M`$X`80!M`&4``````$D`9P!O`'(`(`!0`&$`=@!L`&\`=@```#8`!P`!`$8` ++M:0!L`&4`1`!E`',`8P!R`&D`<`!T`&D`;P!N```````W`'H`(`!3`$8`6``` ++M````+``&``$`1@!I`&P`90!6`&4`<@!S`&D`;P!N```````R`#0`+@`P`#D` ++M```N``<``0!)`&X`=`!E`'(`;@!A`&P`3@!A`&T`90```#<`>@`N`',`9@!X ++M``````!L`"0``0!,`&4`9P!A`&P`0P!O`'``>0!R`&D`9P!H`'0```!#`&\` ++M<`!Y`'(`:0!G`&@`=``@`"@`8P`I`"``,0`Y`#D`.0`M`#(`,``R`#0`(`!) ++M`&<`;P!R`"``4`!A`'8`;`!O`'8````^``L``0!/`'(`:0!G`&D`;@!A`&P` ++M1@!I`&P`90!N`&$`;0!E````-P!Z`"X`<P!F`'@`+@!E`'@`90``````+``& ++M``$`4`!R`&\`9`!U`&,`=`!.`&$`;0!E```````W`"T`6@!I`'`````P``8` ++M`0!0`'(`;P!D`'4`8P!T`%8`90!R`',`:0!O`&X````R`#0`+@`P`#D```!$ ++M`````0!6`&$`<@!&`&D`;`!E`$D`;@!F`&\``````"0`!````%0`<@!A`&X` ++M<P!L`&$`=`!I`&\`;@``````"02P!"@````@````0`````$`!```````@`(` ++M``````````````````````````````"```"`````@(``@````(``@`"`@``` ++MP,#``("`@````/\``/\```#__P#_````_P#_`/__``#___\````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````__________________\``/__ ++M________________``#__________________P``__````````#_````#_\` ++M`/_P````````_P````__``#_\```__```/\`#____P``__```/_P``#_``__ ++M__\``/_P``#_\```__``____``#_\```__```/__``___P``__```/_P``#_ ++M__``__\``/_P```/_P``____``__``#_\````/_P`/\````/_P``__`````/ ++M_P#_````#_\``/_P#_____\`________``#_\`______`/_______P``__`` ++M``````#_______\``/_P````````________``#_\````````/_______P`` ++M__________________\``/__________________``#_________________ ++M_P`````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````#_______________\````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````````____________________ ++M_R@````0````(`````$`!```````P``````````````````````````````` ++M``"```"`````@(``@````(``@`"`@```P,#``("`@````/\``/\```#__P#_ ++M````_P#_`/__``#___\`````````````````````````````````#_______ ++M__`/````#P``\`\`_P`/`/_P#P#_``_P#_`/`/\`#_`/\`\`#_`/_P#P#P`` ++M_P\``/`/#___#___\`\````/___P#_________`````````````````````` ++M``````````#__P``__\````````````````````````````````````````` ++M`````````````````````````/__``#__P`````!``(`("`0``$`!`#H`@`` ++M`0`0$!```0`$`"@!```"`````````,`(R(``````!0````````%0```````W ++M`"T`6@!I`'``(`!S`&4`;`!F`"T`90!X`'0`<@!A`&,`=`!I`&X`9P`@`&$` ++M<@!C`&@`:0!V`&4````(`$T`4P`@`%,`:`!E`&P`;``@`$0`;`!G```````` ++M``)0``````@`"`#P``@`20W__X(`10`F`'@`=`!R`&$`8P!T`"``=`!O`#H` ++M````````@`"!4``````(`!4`T``.`&0`__^!`````````````U``````Y``4 ++M`!0`$`!E`/__@``N`"X`+@```````0`#4`````!P`#@`0``0``$`__^``$4` ++M>`!T`'(`80!C`'0``````````5``````N``X`$``$``"`/__@`!#`&$`;@!C ++M`&4`;`````````#`",B```````\``````&0!V```````0P!O`&X`9@!I`'(` ++M;0`@`$8`:0!L`&4`(`!2`&4`<`!L`&$`8P!E````"`!-`%,`(`!3`&@`90!L ++M`&P`(`!$`&P`9P```````E``````"``'`%0!"`"M#?__@@!$`&4`<P!T`&D` ++M;@!A`'0`:0!O`&X`(`!F`&\`;`!D`&4`<@`@`&$`;`!R`&4`80!D`'D`(`!C ++M`&\`;@!T`&$`:0!N`',`(`!P`'(`;P!C`&4`<P!S`&4`9``@`&8`:0!L`&4` ++M+@`````````"4``````(`!P`5`$(`*X-__^"`%<`;P!U`&P`9``@`'D`;P!U ++M`"``;`!I`&L`90`@`'0`;P`@`'(`90!P`&P`80!C`&4`(`!T`&@`90`@`&4` ++M>`!I`',`=`!I`&X`9P`@`&8`:0!L`&4```````,``%``````"``L`!@`&`!D ++M`/__@@`````````#``!0``````@`1``8`!@`90#__X(`````````@``"4``` ++M```H`"P`-`$R`&8`__^"`````````````E``````"`!B`%0!"`"O#?__@@!W ++M`&D`=`!H`"``=`!H`&D`<P`@`&\`;@!E`#\``````````P``4``````(`'(` ++M&``8`&X`__^"``````````,``%``````"`"*`!@`&`!O`/__@@````````"` ++M``)0`````"@`<@`T`3(`<`#__X(````````````!4`````!D`*@`0``0``8` ++M__^``"8`60!E`',````````````!4`````"L`*@`0``0`+@!__^``%D`90!S ++M`"``=`!O`"``)@!!`&P`;``````````!4`````#T`*@`:``0`+$-__^``$$` ++M)@!U`'0`;P`@`%(`90!N`&$`;0!E`````````````5``````9`#``$``$``' ++M`/__@``F`$X`;P`````````!4`````"L`,``0``0`+D!__^``$X`;P`@`'0` ++M;P`@`$$`)@!L`&P````````````!4``````<`<``0``0``(`__^``"8`0P!A ++M`&X`8P!E`&P```````````#`",B```````4``````-@`6```````10!N`'0` ++M90!R`"``<`!A`',`<P!W`&\`<@!D````"`!-`%,`(`!3`&@`90!L`&P`(`!$ ++M`&P`9P```````E``````"``(`,@`"`#9#O__@@`F`$4`;@!T`&4`<@`@`'`` ++M80!S`',`=P!O`'(`9``Z`````````*``@5``````"``4`,@`#@!X`/__@0`` ++M```````#``%0``````@`*@#(``H`VP[__X``)@!3`&@`;P!W`"``<`!A`',` ++M<P!W`&\`<@!D``````````$``5``````2`!``$``$``!`/__@`!/`$L````` ++M```````!4`````"0`$``0``0``(`__^``$,`80!N`&,`90!L`````````,`( ++MSX``````&@``````>`',``````!0`'(`;P!G`'(`90!S`',````(`$T`4P`@ ++M`%,`:`!E`&P`;``@`$0`;`!G`````0`!4`````!P`+0`4``0`+P!__^``"8` ++M0@!A`&,`:P!G`'(`;P!U`&X`9``````````!4`````#(`+0`4``0`+X!__^` ++M`"8`4`!A`'4`<P!E`````````````5``````(`&T`%``$``"`/__@`!#`&$` ++M;@!C`&4`;`````````````)0``````@`"`!:``@`/`___X(`10!L`&$`<`!S ++M`&4`9``@`'0`:0!M`&4`.@`````````"4``````(`!,`6@`(`#T/__^"`%(` ++M90!M`&$`:0!N`&D`;@!G`"``=`!I`&T`90`Z``````````)0``````@`'@!: ++M``@`"`3__X(`1@!I`&P`90!S`#H````````````"4``````(`#0`6@`(`$(/ ++M__^"`$4`<@!R`&\`<@!S`#H``````````E``````S@`(`%H`"``^#___@@!4 ++M`&\`=`!A`&P`(`!S`&D`>@!E`#H``````````E``````S@`3`%H`"``_#___ ++M@@!3`'``90!E`&0`.@````````````)0`````,X`'@!:``@`0`___X(`4`!R ++M`&\`8P!E`',`<P!E`&0`.@````````````)0`````,X`*0!:``@`\`/__X(` ++M0P!O`&T`<`!R`&4`<P!S`&4`9``@`',`:0!Z`&4`.@````````````)0```` ++M`,X`-`!:``@`00___X(`0P!O`&T`<`!R`&4`<P!S`&D`;P!N`"``<@!A`'0` ++M:0!O`#H`````````@@`"4`````!B``@`2``(`'@`__^"`````````((``E`` ++M````8@`3`$@`"`!Y`/__@@````````""``)0`````&(`'@!(``@`;P#__X(` ++M````````@@`"4`````!B`"D`2``(`'``__^"`````````((``E``````8@`T ++M`$@`"`!^`/__@@````````""``)0`````"@!"`!(``@`>@#__X(````````` ++M@@`"4``````H`1,`2``(`'L`__^"`````````((``E``````*`$>`$@`"`!\ ++M`/__@@````````""``)0`````"@!*0!(``@`;@#__X(`````````@@`"4``` ++M```H`30`2``(`'T`__^"`````````(```E``````"`!``&@!"`!G`/__@@`` ++M``````",``!0``````@`3`!H`1@`9@#__X(``````````0"`4``````(`&0` ++M:`$0`&0`;0!S`&,`=`!L`',`7P!P`'(`;P!G`'(`90!S`',`,P`R````4`!R ++M`&\`9P!R`&4`<P!S`#$```````G`@5``````"`!\`&@!,`!E`%,`>0!S`$P` ++M:0!S`'0`5@!I`&4`=P`S`#(```!,`&D`<P!T`#$````````````\/WAM;"!V ++M97)S:6]N/2(Q+C`B(&5N8V]D:6YG/2)55$8M."(@<W1A;F1A;&]N93TB>65S ++M(C\^#0H\87-S96UB;'D@>&UL;G,](G5R;CIS8VAE;6%S+6UI8W)O<V]F="UC ++M;VTZ87-M+G8Q(B!M86YI9F5S=%9E<G-I;VX](C$N,"(@>&UL;G,Z87-M=C,] ++M(G5R;CIS8VAE;6%S+6UI8W)O<V]F="UC;VTZ87-M+G8S(CX-"B`@/&%S<V5M ++M8FQY261E;G1I='D@=F5R<VEO;CTB,2XP+C`N,"(@<')O8V5S<V]R07)C:&ET ++M96-T=7)E/2(J(B!N86UE/2(W+5II<"XW+5II<"XW>D<B('1Y<&4](G=I;C,R ++M(B\^#0H@(#QD97-C<FEP=&EO;CXW+5II<"!'54DN/"]D97-C<FEP=&EO;CX- ++M"B`@/&1E<&5N9&5N8WD^#0H@("`@/&1E<&5N9&5N=$%S<V5M8FQY/CQA<W-E ++M;6)L>4ED96YT:71Y('1Y<&4](G=I;C,R(B!N86UE/2)-:6-R;W-O9G0N5VEN ++M9&]W<RY#;VUM;VXM0V]N=')O;',B('9E<G-I;VX](C8N,"XP+C`B('!R;V-E ++M<W-O<D%R8VAI=&5C='5R93TB*B(@<'5B;&EC2V5Y5&]K96X](C8U.35B-C0Q ++M-#1C8V8Q9&8B(&QA;F=U86=E/2(J(B\^/"]D97!E;F1E;G1!<W-E;6)L>3X- ++M"B`@/"]D97!E;F1E;F-Y/@T*/&-O;7!A=&EB:6QI='D@>&UL;G,](G5R;CIS ++M8VAE;6%S+6UI8W)O<V]F="UC;VTZ8V]M<&%T:6)I;&ET>2YV,2(^/&%P<&QI ++M8V%T:6]N/@T*/"$M+2!6:7-T82`@("TM/B`\<W5P<&]R=&5D3U,@260](GME ++M,C`Q,30U-RTQ-30V+30S8S4M835F92TP,#AD965E,V0S9C!](B\^#0H\(2TM ++M(%=I;B`W("`@+2T^(#QS=7!P;W)T961/4R!)9#TB>S,U,3,X8CEA+35D.38M ++M-&9B9"TX93)D+6$R-#0P,C(U9CDS87TB+SX-"CPA+2T@5VEN(#@@("`M+3X@ ++M/'-U<'!O<G1E9$]3($ED/2)[-&$R9C(X93,M-3-B.2TT-#0Q+6)A.6,M9#8Y ++M9#1A-&$V93,X?2(O/@T*/"$M+2!7:6X@."XQ("TM/B`\<W5P<&]R=&5D3U,@ ++M260](GLQ9C8W-F,W-BTX,&4Q+30R,SDM.35B8BTX,V0P9C9D,&1A-SA](B\^ ++M#0H\(2TM(%=I;B`Q,"`@+2T^(#QS=7!P;W)T961/4R!)9#TB>SAE,&8W83$R ++M+6)F8C,M-&9E."UB.6$U+30X9F0U,&$Q-6$Y87TB+SX-"CPO87!P;&EC871I ++M;VX^/"]C;VUP871I8FEL:71Y/@T*("`\87-M=C,Z87!P;&EC871I;VX^#0H@ ++M("`@/&%S;78S.G=I;F1O=W-3971T:6YG<R!X;6QN<STB:'1T<#HO+W-C:&5M ++M87,N;6EC<F]S;V9T+F-O;2]334DO,C`P-2]7:6YD;W=S4V5T=&EN9W,B/@T* ++M("`@("`@/&1P:4%W87)E/G1R=64\+V1P:4%W87)E/@T*("`@(#PO87-M=C,Z ++M=VEN9&]W<U-E='1I;F=S/@T*("`\+V%S;78S.F%P<&QI8V%T:6]N/@T*/&%P ++M<&QI8V%T:6]N('AM;&YS/2)U<FXZ<V-H96UA<RUM:6-R;W-O9G0M8V]M.F%S ++M;2YV,R(^#0H\=VEN9&]W<U-E='1I;F=S('AM;&YS.G=S,CTB:'1T<#HO+W-C ++M:&5M87,N;6EC<F]S;V9T+F-O;2]334DO,C`Q-B]7:6YD;W=S4V5T=&EN9W,B ++M/@T*/'=S,CIL;VYG4&%T:$%W87)E/G1R=64\+W=S,CIL;VYG4&%T:$%W87)E ++M/CPO=VEN9&]W<U-E='1I;F=S/CPO87!P;&EC871I;VX^#0H\+V%S<V5M8FQY ++M/@T*``D`>P`P`'T`(`!B`'D`=`!E`',````````````````````````````` ++M```````````````````````````````````````````````````````+`"8` ++M1@!O`'(`90!G`'(`;P!U`&X`9`````8`4`!A`'4`<P!E`&0````````````` ++M``````````````````8`)@!#`&P`;P!S`&4```````D`)@!#`&\`;@!T`&D` ++M;@!U`&4``````````````"``00!R`&4`(`!Y`&\`=0`@`',`=0!R`&4`(`!Y ++M`&\`=0`@`'<`80!N`'0`(`!T`&\`(`!C`&$`;@!C`&4`;``_```````````` ++M```````````````````````````````````````````````````X`%0`:`!E ++M`"``<P!Y`',`=`!E`&T`(`!C`&$`;@!N`&\`=``@`&$`;`!L`&\`8P!A`'0` ++M90`@`'0`:`!E`"``<@!E`'$`=0!I`'(`90!D`"``80!M`&\`=0!N`'0`(`!O ++M`&8`(`!M`&4`;0!O`'(`>0``````&@!#`&$`;@!N`&\`=``@`&,`<@!E`&$` ++M=`!E`"``9@!O`&P`9`!E`'(`(``G`'L`,`!]`"<`-0!5`'``9`!A`'0`90`@ ++M`&\`<`!E`'(`80!T`&D`;P!N`',`(`!A`'(`90`@`&X`;P!T`"``<P!U`'`` ++M<`!O`'(`=`!E`&0`(`!F`&\`<@`@`'0`:`!I`',`(`!A`'(`8P!H`&D`=@!E ++M`"X`(0!#`&$`;@!N`&\`=``@`&\`<`!E`&X`(`!F`&D`;`!E`"``)P![`#`` ++M?0`G`"``80!S`"``80!R`&,`:`!I`'8`90`T`$,`80!N`&X`;P!T`"``;P!P ++M`&4`;@`@`&4`;@!C`'(`>0!P`'0`90!D`"``80!R`&,`:`!I`'8`90`@`"<` ++M>P`P`'T`)P`N`"``5P!R`&\`;@!G`"``<`!A`',`<P!W`&\`<@!D`#\`&`!5 ++M`&X`<P!U`'``<`!O`'(`=`!E`&0`(`!A`'(`8P!H`&D`=@!E`"``=`!Y`'`` ++M90`````````````````````````C`$,`80!N`&X`;P!T`"``;P!P`&4`;@`@ ++M`'0`:`!E`"``9@!I`&P`90`@`&$`<P`@`'L`,`!]`"``80!R`&,`:`!I`'8` ++M90`?`%0`:`!E`"``9@!I`&P`90`@`&D`<P`@`&\`<`!E`&X`(`!A`',`(`![ ++M`#``?0`@`&$`<@!C`&@`:0!V`&4`'P!4`&@`90`@`&$`<@!C`&@`:0!V`&4` ++M(`!I`',`(`!O`'``90!N`"``=P!I`'0`:``@`&\`9@!F`',`90!T```````` ++M```````````````````````*`$4`>`!T`'(`80!C`'0`:0!N`&<````````` ++M```````````````````````````````````````````````````````````` ++M``@`4P!K`&D`<`!P`&D`;@!G`````````````````````````````````"<` ++M4P!P`&4`8P!I`&8`>0`@`&$`(`!L`&\`8P!A`'0`:0!O`&X`(`!F`&\`<@`@ ++M`&4`>`!T`'(`80!C`'0`90!D`"``9@!I`&P`90!S`"X````````````````` ++M````````#@!&`'4`;`!L`"``<`!A`'0`:`!N`&$`;0!E`',`#`!.`&\`(`!P ++M`&$`=`!H`&X`80!M`&4`<P`2`$$`8@!S`&\`;`!U`'0`90`@`'``80!T`&@` ++M;@!A`&T`90!S`!(`4@!E`&P`80!T`&D`=@!E`"``<`!A`'0`:`!N`&$`;0!E ++M`',`````````````````%`!!`',`:P`@`&(`90!F`&\`<@!E`"``;P!V`&4` ++M<@!W`'(`:0!T`&4`&`!/`'8`90!R`'<`<@!I`'0`90`@`'<`:0!T`&@`;P!U ++M`'0`(`!P`'(`;P!M`'``=``3`%,`:P!I`'``(`!E`'@`:0!S`'0`:0!N`&<` ++M(`!F`&D`;`!E`',`````````"P!!`'4`=`!O`"``<@!E`&X`80!M`&4`&@!! ++M`'4`=`!O`"``<@!E`&X`80!M`&4`(`!E`'@`:0!S`'0`:0!N`&<`(`!F`&D` ++M;`!E`',````````````````````````````````````````````````````` ++M````*0!5`&X`<P!U`'``<`!O`'(`=`!E`&0`(`!C`&\`;0!P`'(`90!S`',` ++M:0!O`&X`(`!M`&4`=`!H`&\`9``@`&8`;P!R`"``)P![`#``?0`G`"X`(P!$ ++M`&$`=`!A`"``90!R`'(`;P!R`"``:0!N`"``)P![`#``?0`G`"X`(`!&`&D` ++M;`!E`"``:0!S`"``8@!R`&\`:P!E`&X`)`!#`%(`0P`@`&8`80!I`&P`90!D ++M`"``:0!N`"``)P![`#``?0`G`"X`(`!&`&D`;`!E`"``:0!S`"``8@!R`&\` ++M:P!E`&X`+@`S`$0`80!T`&$`(`!E`'(`<@!O`'(`(`!I`&X`(`!E`&X`8P!R ++M`'D`<`!T`&4`9``@`&8`:0!L`&4`(``G`'L`,`!]`"<`+@`@`%<`<@!O`&X` ++M9P`@`'``80!S`',`=P!O`'(`9``_`#,`0P!2`$,`(`!F`&$`:0!L`&4`9``@ ++M`&D`;@`@`&4`;@!C`'(`>0!P`'0`90!D`"``9@!I`&P`90`@`"<`>P`P`'T` ++M)P`N`"``5P!R`&\`;@!G`"``<`!A`',`<P!W`&\`<@!D`#\````````````` ++M``\`5P!R`&\`;@!G`"``<`!A`',`<P!W`&\`<@!D`#\````````````````` ++M```````````````````>`%4`;@!S`'4`<`!P`&\`<@!T`&4`9``@`&,`;P!M ++M`'``<@!E`',`<P!I`&\`;@`@`&T`90!T`&@`;P!D``H`1`!A`'0`80`@`&4` ++M<@!R`&\`<@`*`$,`4@!#`"``9@!A`&D`;`!E`&0`$`!5`&X`80!V`&$`:0!L ++M`&$`8@!L`&4`(`!D`&$`=`!A`!8`50!N`&4`>`!P`&4`8P!T`&4`9``@`&4` ++M;@!D`"``;P!F`"``9`!A`'0`80`U`%0`:`!E`'(`90`@`&$`<@!E`"``<P!O ++M`&T`90`@`&0`80!T`&$`(`!A`&8`=`!E`'(`(`!T`&@`90`@`&4`;@!D`"`` ++M;P!F`"``=`!H`&4`(`!P`&$`>0!L`&\`80!D`"``9`!A`'0`80`.`$D`<P`@ ++M`&X`;P!T`"``80!R`&,`:`!I`'8`90````T`2`!E`&$`9`!E`'(`<P`@`$4` ++M<@!R`&\`<@`.`%<`<@!O`&X`9P`@`'``80!S`',`=P!O`'(`9``````````` ++M```````````````````````````````````````<`%4`;@!A`'8`80!I`&P` ++M80!B`&P`90`@`',`=`!A`'(`=``@`&\`9@`@`&$`<@!C`&@`:0!V`&4`'`!5 ++M`&X`8P!O`&X`9@!I`'(`;0!E`&0`(`!S`'0`80!R`'0`(`!O`&8`(`!A`'(` ++M8P!H`&D`=@!E`````````!,`50!N`',`=0!P`'``;P!R`'0`90!D`"``9@!E ++M`&$`=`!U`'(`90`````````````````````````````````(`$T`;P!D`&D` ++M9@!I`&4`9``````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````-WJ\KR<<``3%FR"8!P````````!B ++M`````````-*[P;(!``(Q,C,``00&``$)!P`'"P$``2$A`0`,`P`("@'28TB( ++M```%`1D,````````````````$1L`=`!E`',`=``N`'0`>`!T`"X`=`!X`'0` ++:```9`!0*`0"SO`Y\`,';`14&`0"````````` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_7zip_zstd_sparc.7z.uu +@@ -0,0 +1,59 @@ ++begin 664 test_read_format_7zip_zstd_sparc.7z ++M-WJ\KR<<``3"/F,50PD```````!R`````````&JZD5PHM2_]`$@!``!0*DT8 ++M!````"X)```HM2_]H%@1$`#,%P#VY81(\-"H-?,C>D3."L@6'/;(Z"_OIG-< ++M&K,3C)Y#S,RFL.J-K#=E?%`M<*T];K]*&Z!'F&=H'7BNL.%[O^W'36\1$@F5 ++ML25C;RE39P!U`'$`MAH8R!8>B!DH;E@X$*JU?FFQ@'_(SU+1;*J;FIG9V2!V ++MDB8GL-E)TFW5<'2+V0Q'MUAHX5$A^4D?7\5P\H?T8?KIK?2V@XK\%?S%>_3P ++M+_T%-O!='.5[_3<`L!<7VI_!=5KKBLL%G+V.,&3U)2MV?$KV3YUF,P&H!Z]3 ++M#V>,K8R]8FADM[*\G*')?"C+31ZP5*Q2I4*+"\LG*II-!0.;G<_,7C+EC>9U ++MLY4PL-E9EMMN-;4=Q='5J?0(P;3R_P&0$#\BR-8$'!U_Z)J6?EI#$`1?6BST ++MMRD5"0.0`B^;J_?<6%.@LVES/Y*3[@?I53>N%NP\GG1[@.PQZ"(R`BHM6XWT ++MP""QZ$6.N7CIUL2C+?%H?4)2)QT-!Q'B@212\#C06.T0_+QU82-'+(*1\]/: ++MXOUI.*YN[G"TU\$GFJC<#_:,1()6])MDFG01&0$%L9.&9C.6T,XS1G9U$1D! ++MT:V*312=1RI;O";,ZF@XB,-+X!O!L[F!VN9DY*#9>P1ROQ?IHZ/-H=#O/6WN ++M<+_7AX]>T]!8(UMLC@S]$:ZOTEI*#[V5AT*-U0/64G3$F^+YO2S/C^2D$XMB ++M?'LG;J]N!MBLXMWA?@%KJ`$]!%%)0"-!"HJ:M`'``J$9*FX2X`!1J"\5929= ++M4%!.O2K+_AF)^77`/:-'"SXW\6%YIU\F^,G;UASI9MI_Z9;A^(47[B^6XR"F ++M)5>`7MKK@4\P`2F&4I)_/6!LZWDI8IMCY5@U4[/JEM;N?MIKQ5$9,RTVTNEX ++MG;Z-F@\+0`!*3I@5-@FGL?SC,_@K$;VM_4S_7>XI!WD*?B^HQ%Q3$`@KC"+' ++MCR'^M.NC^7L!=`08@Z(RCIUT3^?(6X6B),J1MP"Q/(MO/WYIR]X_$RA(U5#O ++MI9<G/X_"ZSI[*IQ(D;88*`(`$``"`!```@`0``(`$``"`!```@`0`,P&`(0% ++M`!`&!<@```````P0!#@```T0!D@``!D`&B_]^```'`00`F!O__[U$`*0!0-( ++M$`*X"E0+&```,!07$`/P$`/88```"1AP<&____X0`ZAO____`6___Q`#G#<@ ++M@09"(B/Q]P'8@&W$L7<2-DRC_0-PMUT,_=^?Q9QS!;&NSPS_9V#-2/<V^&\C ++MM!M],<I_-4C2_V3>_'^@"ZOZ5T"^S&29;WDF^K]`P(--U]F:3-Q0PHPW^EZQ ++MW?\>+/@?<4/]3^'&-E#&\(W8=$S_.Z:5?V(;YW^WQ??G@Q"5*0"F\:)&\)23 ++MQJP5#??[N\QK\8K/R8D['_38TJ)4>6XX00;0;J0:4<^0-42()$,8$.<$/@?X ++M-]A*ERF\-K>$<><HO+N%>,XR9C?9*9``E`"3`']06$@RE)4>=$H\+#(34:E) ++MD",,4H#T\<D<+)%#9!#)0^*P(5F`5,B;7\J8'RLH``UX,@:B?R1#2F)_Y'-) ++MFO-(4H*?STG3P,]%/W_N`FES$2"MP,\)_'P^G\\YG\_GW)!I,]/FVJ3`\KJP ++MHD*B*_2"A=&K@J\4B`DC#283C)!82/+QLT@L).G\/!(+23D_#R[[GE`MI9L] ++MP90ZT,B@]F0#PN5DJK'QL.^ZT)SV-%.R>=F=HR=6]0._W1W6:KVZ]5J;B#-, ++MK*"WL$T4M_W`#V=)M/.JQW*U0FX4KVU',:S=LK94R%)MV.T^>F#(XK955_3J ++M^*D\T>OF*`[.JXY5Y%9M=;_4MGM(+521.V%00V:9B$8,^2P'0"YZ<N231!KD ++MWT13(0]_X(=#KRB\2NF5Y0)A'=U8GD@7%PR_4?1,B+4%&T%81U^-VVK55E5D ++M6DK=I]*QOE>*OD`5]6H(TEVB5\%O)=:1GMIJ"S;2^H&?:>9F=QQ3NW>@MW?> ++M^%KPZ^JX-3*[Q^K`;;7AV*UL=>MV?ZM;YW'(P*(EP->J+N?:ZJF6$S?7N#>G ++M#R\O-8LJM=2@8':3S$R)9D1)O@`:BLPA3[29$JKP*_AU`&01-J+U$-&TG7_$ ++M(^5)BS^D!?DU($V:W.,/K>,;H4QGQNB'S)'Q_WG0"P0Q/3TM*_Z4E)V=%*&3 ++M$G^6#<A(_,L/\:?`V+%CFO\)9TQBL=#E_X`^B_F\`</_9P@_^,\65-!KM4*. ++M/HXI>@U5=.YK;2"L6WDT%&F!4*@A86:&1)*"@I0RK`%Q!08AA!2J,V5U$D"Q ++M0"1L65R9H1$2B5,_MC8#:.`!CH&`8X3!\O=`W"N)K*++$/418+A*NBEL:!0- ++M,:)]QOG,8+P[Q596>NE0>)@R]!R(D<5G>&C',BX,>MP+%Z#R`SF$D[#G!7A< ++MK$WSC0;<'+!<;C>MS((#J%_WY_.':K+X#YNUOTE,2LZQXPR@:%Z3182?V20/ ++M+NM&7>9T6=#7T")Z!S_,?U3.=0$&+.I9E/_!AE_UK+482*C309H.X/.8NO]A ++MXS8<5[@W$$8#R)4[!)]8`,6A8+/B5R_Z#S*;UL5;*7WFT%MR,=B$;I/+E`Q6 ++M_$;&<LHPW\F-3`NX@W4>CT5P[0*I/&R8BXFXS^O2%G$)?#T`,ALPS[61>02@ ++M'N%$.9)8Z>E!GJ^`S_M-"-`BV-U9ISY8-0`0P#D<3DRRJ`!_)1-9IO1-6?,V ++M8Y4>V5$$UZ,>%_=48D5U8P**U_GCO*:GEK+\.MTVVX0N@!?.U[,7P']+9YF, ++M!4!6JSA;``\O7`'\G\B+C!7`R\U=`?RD"*%K.8`=D:(J%9K16'"C!,`J=AAM ++M+),P?%7]6?!PW78<:++M.^&QC09HV6)V`$PH]VCY4ZEXX*\!;Z;?A!>^,`": ++M`+(=Z:&T/^K,^OX$SNV[PRW3ANQZ\U6;MG#C$F-JD*'0YZ/]?57+NMG:&/+4 ++M,%:\T9IL$9.A]`EQ"-108&:J,A1P*/4^H5U/W))T+V:-`C!8I"#M_T1/D[T" ++M`,*+WPN,7"HVPM``,,ZTX&^E<YL3[,9(N+D^MT4D=1Q,FIW=I7J3G!S,`+(; ++M:,`"Y3,GJ!H`@GHM0%0L=+"=J<4DF/M_257I?]QS7D/::E8*?A[&&M'$+[KP ++M(O`![\GAEO])A",Z[?^"*;$$`00&``$)B4,`!PL!``(D!/<1`04!!0,```0# ++M`P@%`0`,T%@1T%@1``@*`4TV6VL```4!&0@``````````!$7`&@`=P`M`',` ++J<`!A`'(`8P`V`#0````9!``````4"@$`@,:@07(HVP$5!@$`((#]@0`` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_gtar_redundant_L.c +@@ -0,0 +1,40 @@ ++/*- ++ * SPDX-License-Identifier: BSD-2-Clause ++ * ++ * Copyright (c) 2024 Tim Kientzle ++ * All rights reserved. ++ */ ++#include "test.h" ++ ++#include <string.h> ++ ++DEFINE_TEST(test_read_format_gtar_redundant_L) ++{ ++ const char *refname = "test_read_format_gtar_redundant_L.tar.Z"; ++ struct archive *a; ++ struct archive_entry *ae; ++ ++ extract_reference_file(refname); ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_read_open_filename(a, refname, 10240)); ++ ++ /* First file has redundant 'L' headers; this should prompt ++ * a suitable ARCHIVE_WARN message */ ++ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae)); ++ assertEqualInt(archive_errno(a), -1); ++ assert(strstr(archive_error_string(a), "Redundant 'L'") != NULL); ++ ++ /* End of archive. */ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ /* Verify archive format. */ ++ assertEqualIntA(a, ARCHIVE_FILTER_COMPRESS, archive_filter_code(a, 0)); ++ assertEqualIntA(a, ARCHIVE_FORMAT_TAR_GNUTAR, archive_format(a)); ++ ++ /* Close the archive. */ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_gtar_redundant_L.tar.Z.uu +@@ -0,0 +1,16 @@ ++begin 644 test_read_format_gtar_redundant_L.tar.Z ++M'YV0+EX$!,+DC9LS3-*X60.@H<.'$"-*G$BQHL6+%&%HA&&#!@T`&T."#*EQ ++M)$D8,F#$,'FRI,H8-6Y\!,$$H\V;.'/JE%AG#ITP<D"``"#GS1LZ.RD6/9JT ++MJ=.G4*-*G?K4YQLY8<Z4>5&F31TV8>B4(?,"QHL@;L@434.63-@P+_#(G4NW ++MKMV[>//JW<NW;UVJ@`,+'DRXL.'#B!,W#3BPX,&$"Q5+GABRX\>6+#=FWACC ++MQLJ6(E_:0`F`YN33.7O^##IT*=*IKE'+GDV;L%6L6KEZ!2N6K%FT:M^P?>'V ++M9UR_R),K7WZWMO/GT*-+GWZ:\0N"!A$J9$A]<&6/FV&$#X]2)7G-+V/.K-E= ++MMFJ@0HD:?2TU=OO[^!7?SKJUZ]>P8Y5U5EIKM?76<<PEJ.""?.7GX(,01BCA ++M3=9A]]AV$SKUW64GC0=:9Y^!YE(,,8PF0VGL93C8>ZS)QQ1L\ZDHXXP2[9>; ++M?[P%^!N!PAEH'(-`!ID<C406:>21@Z%1!AMLO.$"'7C0AR1&*FED&4LWV%!# ++M9C)P"-H,`,1`PPTSS&"###74`,,-()%(`PPSB3?E4RS&1T<:;0#F4QAFF#'G ++MG]VAD88"@!9JZ*&()JKHHHPVZNBCD$8JZ:245FKII9AFJNFFG';JZ:>@ABKJ ++MJ*26:NJIJ*:JZJJLMNKJJ[#&*NNLM-9JZZVXYJKKKKSVZNNOP`8K[+#$%FOL ++3L<@FJ^RRS#;K[+/01BOMM-0N"@`` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_gtar_sparse.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_gtar_sparse.c +@@ -30,13 +30,13 @@ + const char *d; + }; + +-struct contents archive_contents_sparse[] = { ++static struct contents archive_contents_sparse[] = { + { 1000000, 1, "a" }, + { 2000000, 1, "a" }, + { 3145728, 0, NULL } + }; + +-struct contents archive_contents_sparse2[] = { ++static struct contents archive_contents_sparse2[] = { + { 1000000, 1, "a" }, + { 2000000, 1, "a" }, + { 3000000, 1, "a" }, +@@ -139,7 +139,7 @@ + { 99000001, 0, NULL } + }; + +-struct contents archive_contents_nonsparse[] = { ++static struct contents archive_contents_nonsparse[] = { + { 0, 1, "a" }, + { 1, 0, NULL } + }; +@@ -159,7 +159,7 @@ + * * contains a single byte 'a' + */ + +-struct archive_contents { ++static struct archive_contents { + const char *filename; + struct contents *contents; + } files[] = { +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_gtar_sparse_length.c +@@ -0,0 +1,53 @@ ++/*- ++ * Copyright (c) 2003-2025 Tim Kientzle ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++ ++DEFINE_TEST(test_read_format_gtar_sparse_length) ++{ ++ const char *refname = "test_read_format_gtar_sparse_length.tar.Z"; ++ int err; ++ struct archive *a; ++ struct archive_entry *ae; ++ ++ extract_reference_file(refname); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert(0 == archive_read_support_filter_all(a)); ++ assert(0 == archive_read_support_format_tar(a)); ++ failure("Can't open %s", refname); ++ assert(0 == archive_read_open_filename(a, refname, 3)); ++ ++ err = archive_read_next_header(a, &ae); ++ assertEqualIntA(a, ARCHIVE_OK, err); ++ err = archive_read_next_header(a, &ae); ++ assertEqualIntA(a, ARCHIVE_OK, err); ++ ++ err = archive_read_next_header(a, &ae); ++ assertEqualIntA(a, ARCHIVE_EOF, err); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_gtar_sparse_length.tar.Z.uu +@@ -0,0 +1,12 @@ ++begin 644 test_read_format_gtar_sparse_length.tar.Z ++M'YV09-+(>0$E#!XD9<*0*3/03!HV96(`F$BQHL6+&#-JW,BQ(T48(&W0H`$" ++M`,@8-VK$*'DRY4J3(&.>C`$#1`P:-V#,J#$CAHP8-D#``%IC)``0>#PJ7<JT ++MJ5.,=>;0"2,')APV=<Z(J?.0S-.*5[-N[?KUH\R:,&66+,NVK=NW<.'*D`'B ++MB),J+N;`H3JGC(LV8=2\D=,CAH*Y=>_FW2NG[]\T;@;W@'$81V*\>OGZE9.0 ++MS9PT>LH4EG$CAX*XJ%.K7LVZM>O7L&/+GLTQX$"[5:8P[FODH5\8+QQ"E$C; ++M=4R1)&&B5,ERJ,OF9VF"M(E3)T^?0(6BG#'CQE$8Q<,WC3JU*LBP6KFR\<H6 ++M_=CU;<^BE;]6O/W[KF4HH$S99^G]I^$GX(`$%FC@@0@F.*!M,KR@(&TQI51# ++M<\N]U!)S:<DWW4TY[=333T$-U1T-,AQ5PX/VD4>555BE1U9[+;['7EGT93@= ++.BCCFJ...//;HXX]`_@@` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu.orig ++++ contrib/libarchive/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu +@@ -1,15 +1,15 @@ + begin 644 test_read_format_gtar_sparse_skip_entry.tar.Z + M'YV04,+@05(F#)DR<EZ$`<"PH<.'$"-*G$BQHL6*,#+:L$$#!(",,6[4@.$1 + MI$B2'S.JS#A#A@P0,63,L`$C!HP9-VB\K"FCAHT8`$#@N4BTJ-&C2"/6F4,G +-MC)R48^J424HQZE2J$E=F+*G5(]:O8,.*'3M6!LDY:?24Z6'S!DX:,7#(H$%# +-MP0R2;>BD:;,V!@T8-6)NE&'#10T<-#;>R(%CAEV28_3R9?LW\(P8-F[`<#%C +-M)@T<->#6>`PBC.2^E07;J#'#Q>J-F5DJ<`GBB),J+N;`<3JGC(LV8=2\D<-V +-M]DO;N'7S]MTFC9OA/6#,CE'[=N[=<GJ[<!-F<AB[-:HGQZY=3D$V:-6RA>$V +-M9]RY=<G*GT^_OOW[^/.#13Z%?!DC:;!1AD+Z%6B12AMUE%)((W'%($I:U603 +-M#!W%-%---^6T4PPM8184#`:&"-9233V5D57SH2A?A%RMY)6(,,8HHPP*2/=7 +-M#C8HT-9;[_VE0'PR!BGDD$06:>212"9YD1EOO*&`DE!&*>645%9IY9589JGE ++MC)R48^J424HQZE2J$E=F+*G5(]:O8,.*'3M6!LDY:?24Z:$U(XV?,A3,(-F& ++M3IHV:V/0@%$CYD89-ES4P/'6QHT<.&;()3G&+MX>>OG&F!'#,`P7,V;2P%&# ++M1HP:BT&$<9QW;U_`-FK,<)%ZH^6;"ER"..*DBHLY<)S.*>.B31@U;^1`COV2 ++MMFW<NGFW2>,F.-O8,6;7OIU;SFX7;L(\#B.WAO3CU:_+*<@&K5K(,&[@](Q# ++M!@T:"LC*GT^_OOW[^/.#-3XE?!DC:;!1AD+Z%6B12AMUE%)((W'%($IMK=11 ++M3#/5=%-..TTF@UY!P6#@AV`MU=13&5DUGXGRM<752EZ!Z.*+,,8%@P)[Y6"# ++M`C:IEU,,[>TE5WPP!BGDD$06:>212"9YD1EOO`&DDE!&*>645%9IY9589JGE + MEEQVZ>678(8IYIADEFGFF6BFJ>::;+;IYIMPQBGGG'36:>>=>.:IYYY\]NGG +-MGX`&*NB@A!9JJ)YB](D@1PZ>U&B#*468484RT11###7<8!8(&-)4PX=^DN@4 +-B5%*E6.J*746JTHN'2LFDDZW&*NNLM-9JZZVXYJKKKKR&!0`` ++MGX`&*NB@A!9J*)YB](D@1PZ>U&B#*44(PX0RT13#9S>8!8*%--70H9\B.@65 ++A5">2FF)7D:K4XJ%2,NDDJ[#&*NNLM-9JZZVXYJKKKF$! + ` + end +--- contrib/libarchive/libarchive/test/test_read_format_rar.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_rar.c +@@ -3810,6 +3810,26 @@ + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); + } + ++DEFINE_TEST(test_read_format_rar_endarc_huge) ++{ ++ const char* reffile = "test_read_format_rar_endarc_huge.rar"; ++ ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertA(0 == archive_read_support_filter_all(a)); ++ assertA(0 == archive_read_support_format_all(a)); ++ assertA(0 == archive_read_open_filename(a, reffile, 10240)); ++ ++ /* Test for truncation */ ++ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} ++ + DEFINE_TEST(test_read_format_rar_ppmd_use_after_free) + { + uint8_t buf[16]; +@@ -3829,8 +3849,8 @@ + assertA(ARCHIVE_OK == archive_read_next_header(a, &ae)); + assertA(archive_read_data(a, buf, sizeof(buf)) <= 0); + +- /* Test EOF */ +- assertA(1 == archive_read_next_header(a, &ae)); ++ /* Test for truncation */ ++ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae)); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +@@ -3856,8 +3876,56 @@ + assertA(archive_read_data(a, buf, sizeof(buf)) <= 0); + + /* Test EOF */ +- assertA(1 == archive_read_next_header(a, &ae)); ++ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae)); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + } ++ ++DEFINE_TEST(test_read_format_rar_newsub_huge) ++{ ++#if SIZE_MAX == UINT64_MAX ++ skipping("not relevant on 64 bit platforms"); ++#else ++ const char* reffile = "test_read_format_rar_newsub_huge.rar"; ++ ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertA(0 == archive_read_support_filter_all(a)); ++ assertA(0 == archive_read_support_format_all(a)); ++ assertA(0 == archive_read_open_filename(a, reffile, 10240)); ++ ++ /* Test for truncation */ ++ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++#endif ++} ++ ++DEFINE_TEST(test_read_format_rar_symlink_huge) ++{ ++#if SIZE_MAX == UINT64_MAX ++ skipping("not relevant on 64 bit platforms"); ++#else ++ const char* reffile = "test_read_format_rar_symlink_huge.rar"; ++ ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertA(0 == archive_read_support_filter_all(a)); ++ assertA(0 == archive_read_support_format_all(a)); ++ assertA(0 == archive_read_open_filename(a, reffile, 10240)); ++ ++ /* Test for invalid entry */ ++ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++#endif ++} +--- contrib/libarchive/libarchive/test/test_read_format_rar5.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_rar5.c +@@ -27,7 +27,6 @@ + /* Some tests will want to calculate some CRC32's, and this header can + * help. */ + #define __LIBARCHIVE_BUILD +-#include <archive_crc32.h> + #include <archive_endian.h> + + #define PROLOGUE(reffile) \ +@@ -82,7 +81,7 @@ + /* *lptr is a value inside unpacked test file, val is the + * value that should be in the unpacked test file. */ + +- if(archive_le32dec(lptr) != (uint32_t) val) ++ if(i4le(lptr) != (uint32_t) val) + return 0; + } + +@@ -107,7 +106,7 @@ + goto fn_exit; + } + +- computed_crc = crc32(0, buf, fsize); ++ computed_crc = bitcrc32(0, buf, fsize); + assertEqualInt(computed_crc, crc); + ret = 0; + +@@ -336,7 +335,7 @@ + assertA(proper_size == archive_read_data(a, buf, proper_size)); + + /* To be extra pedantic, let's also check crc32 of the poem. */ +- assertEqualInt(crc32(0, buf, proper_size), 0x7E5EC49E); ++ assertEqualInt(bitcrc32(0, buf, proper_size), 0x7E5EC49E); + + assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae)); + EPILOGUE(); +@@ -359,7 +358,7 @@ + /* Yes, RARv5 unpacker itself should calculate the CRC, but in case + * the DONT_FAIL_ON_CRC_ERROR define option is enabled during compilation, + * let's still fail the test if the unpacked data is wrong. */ +- assertEqualInt(crc32(0, buf, proper_size), 0x886F91EB); ++ assertEqualInt(bitcrc32(0, buf, proper_size), 0x886F91EB); + + assertA(ARCHIVE_EOF == archive_read_next_header(a, &ae)); + EPILOGUE(); +@@ -870,7 +869,7 @@ + if(bytes_read <= 0) + break; + +- computed_crc = crc32(computed_crc, buf, bytes_read); ++ computed_crc = bitcrc32(computed_crc, buf, bytes_read); + } + + assertEqualInt(computed_crc, 0x7CCA70CD); +@@ -1127,7 +1126,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_READONLY; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_READONLY; + #endif + assertEqualInt(flag, set & flag); +@@ -1139,7 +1138,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_HIDDEN; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_HIDDEN; + #endif + assertEqualInt(flag, set & flag); +@@ -1150,8 +1149,8 @@ + assertEqualString("system", archive_entry_fflags_text(ae)); + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) +- flag = UF_SYSTEM;; +-#elif defined(_WIN32) && !defined(CYGWIN) ++ flag = UF_SYSTEM; ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_SYSTEM; + #endif + assertEqualInt(flag, set & flag); +@@ -1163,7 +1162,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_READONLY | UF_HIDDEN; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN; + #endif + assertEqualInt(flag, set & flag); +@@ -1175,7 +1174,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_READONLY; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_READONLY; + #endif + assertEqualInt(flag, set & flag); +@@ -1187,7 +1186,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_HIDDEN; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_HIDDEN; + #endif + assertEqualInt(flag, set & flag); +@@ -1199,7 +1198,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_SYSTEM; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_SYSTEM; + #endif + assertEqualInt(flag, set & flag); +@@ -1211,7 +1210,7 @@ + archive_entry_fflags(ae, &set, &clear); + #if defined(__FreeBSD__) + flag = UF_READONLY | UF_HIDDEN; +-#elif defined(_WIN32) && !defined(CYGWIN) ++#elif defined(_WIN32) && !defined(__CYGWIN__) + flag = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN; + #endif + assertEqualInt(flag, set & flag); +--- contrib/libarchive/libarchive/test/test_read_format_rar5_unicode.rar.uu.orig ++++ contrib/libarchive/libarchive/test/test_read_format_rar5_unicode.rar.uu +@@ -1,9 +1,9 @@ +-begin 0744 test_read_format_rar5_unicode.rar
+-M4F%R(1H'`0#SX8+K"P$%!P`&`0&`@(``//TR$"@"`PN-``2-`"#FQN;K@```
+-M#/"?D8OPGXR.+G1X=`H#`D:)>%;RZ]D!2&5L;&\L('=O<FQD(2/9BPA(`@,<
+-M``0-(`````"````=XI*]XI.0XI.AXI.3(.*3@>*3F.*3G>*3FBYT>'0*`P)&
+-MB7A6\NO9`1`%!``,\)^1B_"?C(XN='ATD-'.1V$"`QP`!`"@"`````"````U
+-M\)V2KO"=DX[PG9."\)V2M_"=D9SPG9.!\)V2OO"=DK@@\)V0O_"=DK[PG9.#
+-L\)V3@"YT>'0*`P(>7'J>!.S9`1`%`@`,\)^1B_"?C(XN='AT'7=640,%!```
+-`
+-end
++begin 0744 test_read_format_rar5_unicode.rar ++M4F%R(1H'`0#SX8+K"P$%!P`&`0&`@(``//TR$"@"`PN-``2-`"#FQN;K@``` ++M#/"?D8OPGXR.+G1X=`H#`D:)>%;RZ]D!2&5L;&\L('=O<FQD(2/9BPA(`@,< ++M``0-(`````"````=XI*]XI.0XI.AXI.3(.*3@>*3F.*3G>*3FBYT>'0*`P)& ++MB7A6\NO9`1`%!``,\)^1B_"?C(XN='ATD-'.1V$"`QP`!`"@"`````"````U ++M\)V2KO"=DX[PG9."\)V2M_"=D9SPG9.!\)V2OO"=DK@@\)V0O_"=DK[PG9.# ++L\)V3@"YT>'0*`P(>7'J>!.S9`1`%`@`,\)^1B_"?C(XN='AT'7=640,%!``` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_rar_encryption.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_rar_encryption.c +@@ -26,8 +26,8 @@ + #include "test.h" + + /* +- * All of the archives for this teset contain four files: a.txt, b.txt, c.txt, and d.txt +- * For solid archives or archvies or archives where filenames are encrypted, all four files are encrypted with the ++ * All of the archives for this test contain four files: a.txt, b.txt, c.txt, and d.txt ++ * For solid archives or archives or archives where filenames are encrypted, all four files are encrypted with the + * password "password". For non-solid archives without filename encryption, a.txt and c.txt are not encrypted, b.txt is + * encrypted with the password "password", and d.txt is encrypted with the password "password2". + * +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_rar_endarc_huge.rar.uu +@@ -0,0 +1,4 @@ ++begin 644 test_read_format_rar_endarc_huge.rar ++24F%R(1H'````>P"`"P#W____ ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_rar_newsub_huge.rar.uu +@@ -0,0 +1,5 @@ ++begin 644 test_read_format_rar_newsub_huge.rar.uu ++M4F%R(1H'`",E>@`!*```````````````````````````````````____?P`` ++"```` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_rar_overflow.c +@@ -0,0 +1,48 @@ ++/*- ++ * Copyright (c) 2003-2025 Tim Kientzle ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++DEFINE_TEST(test_read_format_rar_overflow) ++{ ++ struct archive *a; ++ struct archive_entry *ae; ++ const char reffile[] = "test_read_format_rar_overflow.rar"; ++ const void *buff; ++ size_t size; ++ int64_t offset; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, reffile, 1024)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); ++ assertEqualInt(48, archive_entry_size(ae)); ++ /* The next call should reproduce Issue #2565 */ ++ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data_block(a, &buff, &size, &offset)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_rar_overflow.rar.uu +@@ -0,0 +1,11 @@ ++begin 644 test_read_format_rar_overflow.rar ++M4F%R(1H'`,($=```(0`@`0``,`````(````````````S`0``````,`"_B%_: ++MZ?^[:7``?S!!,`@P,KB@,T@RN33)MTEB@5Z3<`DP`K35`.0P63@P<,Q&0?#, ++MA##,,",S,(@P,#,@##`&,#":(3`!,#"(`9HPS,,S13`P,#`P,*`PHPS,,S1A ++M,!,!,#","9H@S12D#$PP!C`P`*'F03":,,T8H`@\,/DPJS!/,"30,#`3N%LP ++MCQ6:S3"!,#LP22<-,$5%B"5B$S!)(&*>G#+@!`E`%0ODC])62=DO,)BYJX'P ++M=/LPZ3!!008?%S`P,#`P,#`P,#`P,#`P,#`P,#`P2$PP,#`P03!(,#`P,#`& ++M,`7),#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P ++-,#`P,#`P,#`P,#`P,``` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_rar_symlink_huge.rar.uu +@@ -0,0 +1,5 @@ ++begin 644 test_read_format_rar_symlink_huge.rar ++M4F%R(1H'`'6E=``!*0````````````,``````````````0``H```____?P`` ++#``!X ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_tar_empty_with_gnulabel.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_tar_empty_with_gnulabel.c +@@ -45,7 +45,7 @@ + + /* Verify that the format detection worked. */ + assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); +- assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR); ++ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_GNUTAR); + + assertEqualInt(ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_tar_mac_metadata.c +@@ -0,0 +1,85 @@ ++/*- ++ * SPDX-License-Identifier: BSD-2-Clause ++ * ++ * Copyright (c) 2025 Zhaofeng Li ++ * All rights reserved. ++ */ ++#include "test.h" ++ ++DEFINE_TEST(test_read_format_tar_mac_metadata) ++{ ++ /* ++ This test tar file is crafted with two files in a specific order: ++ ++ 1. A ._-prefixed file with pax header containing the path attribute. ++ 2. A file with a pax header but without the path attribute. ++ ++ It's designed to trigger the case encountered in: ++ <https://github.com/libarchive/libarchive/pull/2636> ++ ++ GNU tar is required to reproduce this tar file: ++ ++ ```sh ++ NAME1="._101_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ++ NAME2="goodname" ++ OUT="test_read_format_tar_mac_metadata_1.tar" ++ ++ echo "content of badname" >"${NAME1}" ++ echo "content of goodname" >"${NAME2}" ++ ++ rm -f "${OUT}" ++ gnutar \ ++ --mtime="@0" \ ++ --owner=0 --group=0 --numeric-owner \ ++ --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0,ctime:=0,foo:=bar \ ++ --format=pax \ ++ -cf "${OUT}" \ ++ "${NAME1}" \ ++ "${NAME2}" ++ uuencode "${OUT}" "${OUT}" >"${OUT}.uu" ++ ++ sha256sum "${OUT}" ++ sha256sum "${OUT}.uu" ++ ``` ++ */ ++ const char *refname = "test_read_format_tar_mac_metadata_1.tar"; ++ char *p; ++ size_t s; ++ struct archive *a; ++ struct archive_entry *ae; ++ ++ /* ++ * This is not a valid AppleDouble metadata file. It is merely to test that ++ * the correct bytes are read. ++ */ ++ const unsigned char appledouble[] = { ++ 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x62, ++ 0x61, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x0a ++ }; ++ ++ extract_reference_file(refname); ++ p = slurpfile(&s, "%s", refname); ++ ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_tar(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_set_option(a, "tar", "mac-ext", "1")); ++ assertEqualIntA(a, ARCHIVE_OK, read_open_memory_seek(a, p, s, 1)); ++ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); ++ ++ /* Correct name and metadata bytes */ ++ assertEqualString("goodname", archive_entry_pathname(ae)); ++ ++ const void *metadata = archive_entry_mac_metadata(ae, &s); ++ if (assert(metadata != NULL)) { ++ assertEqualMem(metadata, appledouble, ++ sizeof(appledouble)); ++ } ++ ++ /* ... and nothing else */ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); ++ ++ free(p); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_tar_mac_metadata_1.tar.uu +@@ -0,0 +1,231 @@ ++begin 644 test_read_format_tar_mac_metadata_1.tar ++M+B]087A(96%D97)S+RY?,3`Q7V%A86%A86%A86%A86%A86%A86%A86%A86%A ++M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A ++M86%A86%A86%A83`P,#`V-#0`,#`P,#`P,``P,#`P,#`P`#`P,#`P,#`P,C(P ++M`#`P,#`P,#`P,#`P`#`S,#,Q,0`@>``````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````!U<W1A<@`P,``````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````Q,3$@<&%T:#TN7S$P,5]A86%A86%A86%A86%A ++M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A ++M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A80HQ,2!F;V\] ++M8F%R"C$Q(&-T:6UE/3`*,3$@871I;64],`H````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````"Y?,3`Q7V%A86%A ++M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A ++M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86$P ++M,#`P-C0T`#`P,#`P,#``,#`P,#`P,``P,#`P,#`P,#`R,P`P,#`P,#`P,#`P ++M,``P,S`S-S8`(#`````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````=7-T87(`,#`````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````8V]N=&5N="!O9B!B861N86UE"@`````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````N+U!A>$AE861E<G,O9V]O9&YA;64` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````````````,#`P,#8T-``P,#`P ++M,#`P`#`P,#`P,#``,#`P,#`P,#`P-#$`,#`P,#`P,#`P,#``,#$Q-S0U`"!X ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````'5S=&%R`#`P```````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````````````#$Q(&9O ++M;SUB87(*,3$@8W1I;64],`HQ,2!A=&EM93TP"@`````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````9V]O9&YA;64````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````#`P,#`V-#0`,#`P,#`P,``P,#`P,#`P ++M`#`P,#`P,#`P,#(T`#`P,#`P,#`P,#`P`#`P-S0U-0`@,``````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````````````````````!U ++M<W1A<@`P,``````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````!C;VYT96YT(&]F(&=O;V1N ++M86UE"@`````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++9```````````````````````````````````` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_tar_pax_g_large.c +@@ -0,0 +1,53 @@ ++/*- ++ * Copyright (c) 2025 Tobias Stoeckmann ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++/* ++ * Read a pax formatted tar archive that has an extremely large ++ * (4 GB) global header. The pax reader should correctly skip the header and ++ * jump to (or past) end of file without encountering any further entry. ++ */ ++DEFINE_TEST(test_read_format_tar_pax_g_large) ++{ ++ char name[] = "test_read_format_tar_pax_g_large.tar"; ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ extract_reference_file(name); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240)); ++ ++ /* Verify that no data entry is found. */ ++ assertA(archive_read_next_header(a, &ae) != ARCHIVE_OK); ++ ++ /* Verify that the format detection worked. */ ++ assertEqualInt(ARCHIVE_FILTER_NONE, archive_filter_code(a, 0)); ++ assertEqualInt(ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE, archive_format(a)); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_tar_pax_g_large.tar.uu +@@ -0,0 +1,49 @@ ++begin 644 test_read_format_tar_pax_g_large.tar.uu ++M96UP='D````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````#`P,#`V-#0`,#`P,3<U,``P,#`Q-S4P`#0P,#`P,#`P,#`P ++M`#$T-S<V-S0V,34T`#`Q,#<W-0`@9P`````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````!U<W1A<B`@`')O;W0` ++M````````````````````````````````````<F]O=``````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````!E;7!T>0`````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````,#`P,#8T-``P,#`Q-S4P`#`P ++M,#$W-3``,#`P,#`P,#`P,#``,30W-S8W-#8Q-30`,#$P-S`R`"`P```````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````'5S=&%R("``<F]O=`````````````````````````````````````!R ++M;V]T```````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++7```````````````````````````````` ++` ++end +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_tar_pax_negative_time.c +@@ -0,0 +1,68 @@ ++/*- ++ * Copyright (c) 2025 Tobias Stoeckmann ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++/* ++ * Read a pax formatted tar archive that has a negative modification time. ++ */ ++DEFINE_TEST(test_read_format_tar_pax_negative_time) ++{ ++ char name[] = "test_read_format_tar_pax_negative_time.tar"; ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ extract_reference_file(name); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240)); ++ ++ /* Read first entry. */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); ++ assertEqualString("empty", archive_entry_pathname(ae)); ++ assertEqualInt(-2146608000, archive_entry_atime(ae)); ++ assertEqualInt(0, archive_entry_atime_nsec(ae)); ++ assertEqualInt(1748089464, archive_entry_ctime(ae)); ++ assertEqualInt(951928467, archive_entry_ctime_nsec(ae)); ++ assertEqualInt(-2146608000, archive_entry_mtime(ae)); ++ assertEqualInt(0, archive_entry_mtime_nsec(ae)); ++ assertEqualInt(0, archive_entry_uid(ae)); ++ assertEqualString("root", archive_entry_uname(ae)); ++ assertEqualInt(0, archive_entry_gid(ae)); ++ assertEqualString("root", archive_entry_gname(ae)); ++ assertEqualInt(0100644, archive_entry_mode(ae)); ++ assertEqualInt(archive_entry_is_encrypted(ae), 0); ++ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED); ++ ++ /* Verify the end-of-archive. */ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ /* Verify that the format detection worked. */ ++ assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); ++ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_tar_pax_negative_time.tar.uu +@@ -0,0 +1,60 @@ ++begin 644 test_read_format_tar_pax_negative_time.tar ++M4&%X2&5A9&5R+V5M<'1Y```````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````#`P,#8T-"``,#`P,#`P(``P,#`P,#`@`#`P,#`P,#`P,3$P ++M(#`P,#`P,#`P,#`P(#`Q-#`Q-P`@>``````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````!U<W1A<@`P,')O;W0` ++M````````````````````````````````````<F]O=``````````````````` ++M```````````````````P,#`P,#`@`#`P,#`P,"`````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````S,"!C=&EM93TQ-S0X,#@Y-#8T+CDU,3DR.#0V ++M-PHR,2!A=&EM93TM,C$T-C8P.#`P,`HR,2!M=&EM93TM,C$T-C8P.#`P,`H` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````&5M<'1Y```````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````P ++M,#`V-#0@`#`P,#`P,"``,#`P,#`P(``P,#`P,#`P,#`P,"#_________@`U< ++M@"`P,34Q-C8`(#`````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````=7-T87(`,#!R;V]T```````````````` ++M`````````````````````')O;W0````````````````````````````````` ++M````,#`P,#`P(``P,#`P,#`@```````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++H```````````````````````````````````````````````````````` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_warc.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_warc.c +@@ -78,3 +78,27 @@ + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + } ++ ++DEFINE_TEST(test_read_format_warc_incomplete) ++{ ++ const char reffile[] = "test_read_format_warc_incomplete.warc"; ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ extract_reference_file(reffile); ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_read_open_filename(a, reffile, 10240)); ++ ++ /* Entry cannot be parsed */ ++ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae)); ++ ++ /* Verify archive format. */ ++ assertEqualIntA(a, ARCHIVE_FILTER_NONE, archive_filter_code(a, 0)); ++ ++ /* Verify closing and resource freeing */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_format_warc_incomplete.warc.uu +@@ -0,0 +1,10 @@ ++begin 644 test_read_format_warc_incomplete.warc ++M5T%20R\Q+C`-"E=!4D,M5'EP93H@8V]N=F5R<VEO;@T*5T%20RU$871E.B`R ++M,#(U+3`S+3,P5#$U.C`P.C0P6@T*0V]N=&5N="U,96YG=&@Z(#DR,C,S-S(P ++M,S8X-30W-S4X,#<-"@T*5T%20R\Q+C`-"E=!4D,M5'EP93H@<F5S;W5R8V4- ++M"E=!4D,M5&%R9V5T+55223H@9FEL93HO+W)E861M92YT>'0-"E=!4D,M1&%T ++M93H@,C`R-2TP,RTS,%0Q-3HP,#HT,%H-"D-O;G1E;G0M5'EP93H@=&5X="]P ++M;&%I;@T*0V]N=&5N="U,96YG=&@Z(#,X#0H-"E1H92!R96%D;64N='AT('-H ++4;W5L9"!N;W0@8F4@=FES:6)L90H` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_format_zip.c.orig ++++ contrib/libarchive/libarchive/test/test_read_format_zip.c +@@ -26,7 +26,6 @@ + #include "test.h" + + #define __LIBARCHIVE_BUILD +-#include <archive_crc32.h> + + static + int extract_one(struct archive* a, struct archive_entry* ae, uint32_t crc) +@@ -47,7 +46,7 @@ + goto fn_exit; + } + +- computed_crc = crc32(0, buf, fsize); ++ computed_crc = bitcrc32(0, buf, fsize); + assertEqualInt(computed_crc, crc); + ret = 0; + +@@ -84,7 +83,7 @@ + /* ok */ + } + +- computed_crc = crc32(computed_crc, buf, bytes_read); ++ computed_crc = bitcrc32(computed_crc, buf, bytes_read); + } + + assertEqualInt(computed_crc, crc); +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_pax_empty_val_no_nl.c +@@ -0,0 +1,65 @@ ++/*- ++ * Copyright (c) 2025 Tobias Stoeckmann ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include "test.h" ++ ++/* ++ * Read a pax formatted tar archive that contains an invalid attribute, ++ * because it does not end in a newline. Additionally, value is empty. ++ * The pax reader should stop and tar reader should continue with warning. ++ */ ++DEFINE_TEST(test_read_pax_empty_val_no_nl) ++{ ++ char name[] = "test_read_pax_empty_val_no_nl.tar"; ++ struct archive_entry *ae; ++ struct archive *a; ++ ++ assert((a = archive_read_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ extract_reference_file(name); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 10240)); ++ ++ /* Read first entry. */ ++ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae)); ++ assertEqualString("empty", archive_entry_pathname(ae)); ++ assertEqualInt(1748163748, archive_entry_mtime(ae)); ++ assertEqualInt(0, archive_entry_uid(ae)); ++ assertEqualString("root", archive_entry_uname(ae)); ++ assertEqualInt(0, archive_entry_gid(ae)); ++ assertEqualString("root", archive_entry_gname(ae)); ++ assertEqualInt(0100600, archive_entry_mode(ae)); ++ assertEqualInt(archive_entry_is_encrypted(ae), 0); ++ assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED); ++ ++ /* Verify the end-of-archive. */ ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ ++ /* Verify that the format detection worked. */ ++ assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_NONE); ++ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE); ++ ++ assertEqualInt(ARCHIVE_OK, archive_read_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_read_free(a)); ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_read_pax_empty_val_no_nl.tar.uu +@@ -0,0 +1,60 @@ ++begin 600 test_read_pax_empty_val_no_nl.tar ++M4&%X2&5A9&5R+V5M<'1Y```````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````#`P,#8P,"``,#`P,#`P(``P,#`P,#`@`#`P,#`P,#`P,#`T ++M(#$U,#$T-34V,C0T(#`Q-#`U-@`@>``````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````!U<W1A<@`P,')O;W0` ++M````````````````````````````````````<F]O=``````````````````` ++M```````````````````P,#`P,#`@`#`P,#`P,"`````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````T('@]```````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````H````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````&5M<'1Y```````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````P ++M,#`V,#`@`#`P,#`P,"``,#`P,#`P(``P,#`P,#`P,#`P,"`Q-3`Q-#4U-C(T ++M-"`P,3(Q,#$`(#`````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````=7-T87(`,#!R;V]T```````````````` ++M`````````````````````')O;W0````````````````````````````````` ++M````,#`P,#`P(``P,#`P,#`@```````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++H```````````````````````````````````````````````````````` ++` ++end +--- contrib/libarchive/libarchive/test/test_read_position.c.orig ++++ contrib/libarchive/libarchive/test/test_read_position.c +@@ -27,7 +27,7 @@ + static unsigned char nulls[1000]; + static unsigned char tmp[1000]; + static unsigned char buff[10000]; +-size_t data_sizes[] = {0, 5, 511, 512, 513}; ++static size_t data_sizes[] = {0, 5, 511, 512, 513}; + + static void verify_read_positions(struct archive *a); + +--- contrib/libarchive/libarchive/test/test_sparse_basic.c.orig ++++ contrib/libarchive/libarchive/test/test_sparse_basic.c +@@ -198,7 +198,7 @@ + return (0); + fm = (struct fiemap *)buff; + fm->fm_start = 0; +- fm->fm_length = ~0ULL;; ++ fm->fm_length = ~0ULL; + fm->fm_flags = FIEMAP_FLAG_SYNC; + fm->fm_extent_count = (sizeof(buff) - sizeof(*fm))/ + sizeof(struct fiemap_extent); +@@ -608,7 +608,8 @@ + verify_sparse_file(a, "file2", sparse_file2, 20); + /* Encoded non sparse; expect a data block but no sparse entries. */ + verify_sparse_file(a, "file3", sparse_file3, 0); +- verify_sparse_file(a, "file4", sparse_file4, 2); ++ if (sizeof(off_t) > 4) ++ verify_sparse_file(a, "file4", sparse_file4, 2); + + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + +@@ -635,7 +636,8 @@ + verify_sparse_file(a, "file1", sparse_file1, 0); + verify_sparse_file(a, "file2", sparse_file2, 0); + verify_sparse_file(a, "file3", sparse_file3, 0); +- verify_sparse_file(a, "file4", sparse_file4, 0); ++ if (sizeof(off_t) > 4) ++ verify_sparse_file(a, "file4", sparse_file4, 0); + + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + +--- contrib/libarchive/libarchive/test/test_tar_large.c.orig ++++ contrib/libarchive/libarchive/test/test_tar_large.c +@@ -175,7 +175,7 @@ + } + if (private->filebytes > 0) { + if (private->filebytes < skip) +- skip = (off_t)private->filebytes; ++ skip = private->filebytes; + private->filebytes -= skip; + } else { + skip = 0; +--- contrib/libarchive/libarchive/test/test_write_disk_perms.c.orig ++++ contrib/libarchive/libarchive/test/test_write_disk_perms.c +@@ -216,7 +216,7 @@ + + /* Check original owner. */ + assertEqualInt(0, stat("dir_owner", &st)); +- failure("dir_owner: st.st_uid=%d", st.st_uid); ++ failure("dir_owner: st.st_uid=%jd", (intmax_t)st.st_uid); + assertEqualInt(st.st_uid, original_uid); + /* Shouldn't try to edit the owner when no overwrite option is set. */ + assert((ae = archive_entry_new()) != NULL); +@@ -230,7 +230,7 @@ + assertEqualIntA(a, ARCHIVE_OK, archive_write_finish_entry(a)); + /* Make sure they're unchanged. */ + assertEqualInt(0, stat("dir_owner", &st)); +- failure("dir_owner: st.st_uid=%d", st.st_uid); ++ failure("dir_owner: st.st_uid=%jd", (intmax_t)st.st_uid); + assertEqualInt(st.st_uid, original_uid); + + /* Write a regular file with SUID bit, but don't use _EXTRACT_PERM. */ +@@ -475,8 +475,8 @@ + assertEqualInt(0, stat("file_bad_owner", &st)); + failure("file_bad_owner: st.st_mode=%o", st.st_mode); + assertEqualInt(st.st_mode & 07777, 0744); +- failure("file_bad_owner: st.st_uid=%d getuid()=%d", +- st.st_uid, getuid()); ++ failure("file_bad_owner: st.st_uid=%jd getuid()=%jd", ++ (intmax_t)st.st_uid, (intmax_t)getuid()); + /* The entry had getuid()+1, but because we're + * not root, we should not have been able to set that. */ + assertEqualInt(st.st_uid, getuid()); +--- contrib/libarchive/libarchive/test/test_write_disk_secure_noabsolutepaths.c.orig ++++ contrib/libarchive/libarchive/test/test_write_disk_secure_noabsolutepaths.c +@@ -79,8 +79,8 @@ + assert(ARCHIVE_OK != archive_read_extract(a, ae, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS)); + + // This should also fail. +- assert((ad = archive_write_new()) != NULL); +- assertEqualInt(ARCHIVE_OK, archive_write_disk_set_options(a, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS)); ++ assert((ad = archive_write_disk_new()) != NULL); ++ assertEqualInt(ARCHIVE_OK, archive_write_disk_set_options(ad, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS)); + assert(ARCHIVE_OK != archive_read_extract2(a, ae, ad)); + + assertEqualInt(ARCHIVE_OK, archive_write_free(ad)); +--- contrib/libarchive/libarchive/test/test_write_filter_gzip.c.orig ++++ contrib/libarchive/libarchive/test/test_write_filter_gzip.c +@@ -145,6 +145,8 @@ + archive_write_set_filter_option(a, NULL, "compression-level", "99")); + assertEqualIntA(a, ARCHIVE_OK, + archive_write_set_options(a, "gzip:compression-level=9")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "gzip:original-filename=testorgfilename")); + assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, buffsize, &used2)); + for (i = 0; i < 100; i++) { + snprintf(path, sizeof(path), "file%03d", i); +@@ -164,8 +166,9 @@ + assertEqualInt(rbuff[0], 0x1f); + assertEqualInt(rbuff[1], 0x8b); + assertEqualInt(rbuff[2], 0x08); +- assertEqualInt(rbuff[3], 0x00); ++ assertEqualInt(rbuff[3], 0x08); + assertEqualInt(rbuff[8], 2); /* RFC 1952 flag for compression level 9 */ ++ assertEqualString((const char*)rbuff+10, "testorgfilename"); + + /* Curiously, this test fails; the test data above compresses + * better at default compression than at level 9. */ +--- contrib/libarchive/libarchive/test/test_write_format_7zip.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_7zip.c +@@ -567,3 +567,9 @@ + /* Test that making a 7-Zip archive file with PPMd compression. */ + test_basic("ppmd"); + } ++ ++DEFINE_TEST(test_write_format_7zip_basic_zstd) ++{ ++ /* Test that making a 7-Zip archive file with zstandard compression. */ ++ test_basic("zstd"); ++} +--- contrib/libarchive/libarchive/test/test_write_format_7zip_large.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_7zip_large.c +@@ -169,3 +169,9 @@ + /* Test that making a 7-Zip archive file with PPMd compression. */ + test_large("ppmd"); + } ++ ++DEFINE_TEST(test_write_format_7zip_large_zstd) ++{ ++ /* Test that making a 7-Zip archive file with zstd compression. */ ++ test_large("zstd"); ++} +--- contrib/libarchive/libarchive/test/test_write_format_gnutar.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_gnutar.c +@@ -93,6 +93,29 @@ + "12345678901234567890123456789012345678901234567890" + "12345678901234567890123456789012345678901234567890"; + ++static const char *longfilename_largeuid = "large_uid_gid---" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890" ++ "12345678901234567890123456789012345678901234567890"; ++ ++ + + DEFINE_TEST(test_write_format_gnutar) + { +@@ -162,7 +185,7 @@ + * A file with large UID/GID that overflow octal encoding. + */ + assert((ae = archive_entry_new()) != NULL); +- archive_entry_copy_pathname(ae, "large_uid_gid"); ++ archive_entry_copy_pathname(ae, longfilename_largeuid); + archive_entry_set_mode(ae, S_IFREG | 0755); + archive_entry_set_size(ae, 8); + archive_entry_set_uid(ae, 123456789); +@@ -185,7 +208,7 @@ + /* Verify GNU tar magic/version fields */ + assertEqualMem(buff + 257, "ustar \0", 8); + +- assertEqualInt(15360, used); ++ assertEqualInt(16896, used); + + /* + * +@@ -243,7 +266,7 @@ + assertEqualIntA(a, 0, archive_read_next_header(a, &ae)); + assertEqualInt(123456789, archive_entry_uid(ae)); + assertEqualInt(987654321, archive_entry_gid(ae)); +- assertEqualString("large_uid_gid", archive_entry_pathname(ae)); ++ assertEqualString(longfilename_largeuid, archive_entry_pathname(ae)); + assertEqualInt(S_IFREG | 0755, archive_entry_mode(ae)); + + /* +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_write_format_mtree_preset_digests.c +@@ -0,0 +1,2107 @@ ++/*- ++ * Copyright (c) 2025 Nicholas Vinson ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer ++ * in this position and unchanged. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "test.h" ++ ++#define __LIBARCHIVE_BUILD 1 ++#include "archive_digest_private.h" ++ ++struct expected_digests { ++ unsigned char md5[16]; ++ unsigned char rmd160[20]; ++ unsigned char sha1[20]; ++ unsigned char sha256[32]; ++ unsigned char sha384[48]; ++ unsigned char sha512[64]; ++}; ++ ++archive_md5_ctx expectedMd5Ctx; ++archive_rmd160_ctx expectedRmd160Ctx; ++archive_sha1_ctx expectedSha1Ctx; ++archive_sha256_ctx expectedSha256Ctx; ++archive_sha384_ctx expectedSha384Ctx; ++archive_sha512_ctx expectedSha512Ctx; ++ ++DEFINE_TEST(test_write_format_mtree_digests_no_digests_set_no_data) ++{ ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_no_digests_set_empty_data) ++{ ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_no_digests_set_non_empty_data) ++{ ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ char *data = "abcd"; ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, data, 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, data, 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, data, 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, data, 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, data, 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, data, 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, data, 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_md5_digest_set_no_data) ++{ ++#ifdef ARCHIVE_HAS_MD5 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.md5, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ }, sizeof(ed.md5)); ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5, ed.md5); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support MD5"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_md5_digest_set_empty_data) ++{ ++#ifdef ARCHIVE_HAS_MD5 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.md5, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ }, sizeof(ed.md5)); ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5, ed.md5); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support MD5"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_md5_digest_set_non_empty_data) ++{ ++#ifdef ARCHIVE_HAS_MD5 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.md5, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ }, sizeof(ed.md5)); ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5, ed.md5); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "abcd", 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support MD5"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_rmd160_digest_set_no_data) ++{ ++#ifdef ARCHIVE_HAS_RMD160 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support RMD160"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_rmd160_digest_set_empty_data) ++{ ++#ifdef ARCHIVE_HAS_RMD160 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.rmd160, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.rmd160)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160, ed.rmd160); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support RMD160"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_rmd160_digest_set_non_empty_data) ++{ ++#ifdef ARCHIVE_HAS_RMD160 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.rmd160, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.rmd160)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160, ed.rmd160); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "abcd", 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support RMD160"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha1_digest_set_no_data) ++{ ++#ifdef ARCHIVE_HAS_SHA1 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha1, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha1)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1, ed.sha1); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA1"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha1_digest_set_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA1 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha1, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha1)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1, ed.sha1); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA1"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha1_digest_set_non_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA1 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha1, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha1)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1, ed.sha1); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "abcd", 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA1"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha256_digest_set_no_data) ++{ ++#ifdef ARCHIVE_HAS_SHA256 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha256, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed ++ }, sizeof(ed.sha256)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256, ed.sha256); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA256"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha256_digest_set_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA256 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha256, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed ++ }, sizeof(ed.sha256)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256, ed.sha256); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA256"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha256_digest_set_non_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA256 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha256, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed ++ }, sizeof(ed.sha256)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256, ed.sha256); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "abcd", 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA256"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha384_digest_set_no_data) ++{ ++#ifdef ARCHIVE_HAS_SHA384 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha384, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha384)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384, ed.sha384); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA384"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha384_digest_set_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA384 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha384, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha384)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384, ed.sha384); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA384"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha384_digest_set_non_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA384 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha384, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha384)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384, ed.sha384); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "abcd", 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++ ++#ifdef ARCHIVE_HAS_SHA512 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++#endif ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA384"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha512_digest_set_no_data) ++{ ++#ifdef ARCHIVE_HAS_SHA512 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha512, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha512)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512, ed.sha512); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++ ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA512"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha512_digest_set_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA512 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha512, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha512)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512, ed.sha512); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "", 0); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "", 0)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++ ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA512"); ++ return; ++#endif ++} ++ ++DEFINE_TEST(test_write_format_mtree_digests_sha512_digest_set_non_empty_data) ++{ ++#ifdef ARCHIVE_HAS_SHA512 ++ char buff[4096] = {0}; ++ size_t used = 0; ++ struct archive *a; ++ struct archive_entry *entry; ++ struct expected_digests ed; ++ ++ memcpy(ed.sha512, (unsigned char[]) { ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xed, ++ 0xfe, 0xed, 0xfe, 0xed ++ }, sizeof(ed.sha512)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assertEqualInt(ARCHIVE_OK, archive_md5_init(&expectedMd5Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_update(&expectedMd5Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_md5_final(&expectedMd5Ctx, ed.md5)); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_init(&expectedRmd160Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_update(&expectedRmd160Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_rmd160_final(&expectedRmd160Ctx, ed.rmd160)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assertEqualInt(ARCHIVE_OK, archive_sha1_init(&expectedSha1Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_update(&expectedSha1Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha1_final(&expectedSha1Ctx, ed.sha1)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assertEqualInt(ARCHIVE_OK, archive_sha256_init(&expectedSha256Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_update(&expectedSha256Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha256_final(&expectedSha256Ctx, ed.sha256)); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assertEqualInt(ARCHIVE_OK, archive_sha384_init(&expectedSha384Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_update(&expectedSha384Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha384_final(&expectedSha384Ctx, ed.sha384)); ++#endif ++ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_mtree(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_options(a, "all")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff) - 1, &used)); ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, "test.data"); ++ archive_entry_set_filetype(entry, AE_IFREG); ++ archive_entry_set_size(entry, 4); ++ archive_entry_set_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512, ed.sha512); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, entry)); ++ archive_write_data(a, "abcd", 4); ++ archive_entry_free(entry); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_free(a)); ++ ++ assert((a = archive_read_new()) != NULL); ++ assert((entry = archive_entry_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &entry)); ++ ++#ifdef ARCHIVE_HAS_MD5 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_MD5), ed.md5, sizeof(ed.md5)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_RMD160 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_RMD160), ed.rmd160, sizeof(ed.rmd160)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA1 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA1), ed.sha1, sizeof(ed.sha1)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA256 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA256), ed.sha256, sizeof(ed.sha256)) == 0); ++#endif ++ ++#ifdef ARCHIVE_HAS_SHA384 ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA384), ed.sha384, sizeof(ed.sha384)) == 0); ++#endif ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) != 0); ++ ++ assertEqualInt(ARCHIVE_OK, archive_sha512_init(&expectedSha512Ctx)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_update(&expectedSha512Ctx, "abcd", 4)); ++ assertEqualInt(ARCHIVE_OK, archive_sha512_final(&expectedSha512Ctx, ed.sha512)); ++ ++ assert(memcmp(archive_entry_digest(entry, ARCHIVE_ENTRY_DIGEST_SHA512), ed.sha512, sizeof(ed.sha512)) == 0); ++ ++ archive_entry_free(entry); ++#else ++ skipping("This platform does not support SHA512"); ++ return; ++#endif ++} +--- contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c +@@ -38,7 +38,7 @@ + char *buff2; + size_t buff2_size = 0x13000; + char buff3[1024]; +- long i; ++ unsigned long i; + + assert((buff2 = malloc(buff2_size)) != NULL); + /* Repeat the following for a variety of odd blocksizes. */ +@@ -181,7 +181,7 @@ + char *buff2; + size_t buff2_size = 0x11000; + char buff3[1024]; +- long i; ++ unsigned long i; + + assert((buff2 = malloc(buff2_size)) != NULL); + /* Create a new archive in memory. */ +--- contrib/libarchive/libarchive/test/test_write_format_xar.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_xar.c +@@ -25,6 +25,8 @@ + */ + #include "test.h" + ++#include <locale.h> ++ + static void + test_xar(const char *option) + { +@@ -146,6 +148,20 @@ + assertEqualIntA(a, ARCHIVE_FAILED, archive_write_header(a, ae)); + archive_entry_free(ae); + ++ /* ++ * "dir/file{UNICODE}" has a name that requires base64 encoding ++ */ ++ assert((ae = archive_entry_new()) != NULL); ++ archive_entry_set_atime(ae, 2, 20); ++ archive_entry_set_ctime(ae, 4, 40); ++ archive_entry_set_mtime(ae, 5, 50); ++ archive_entry_copy_pathname_w(ae, L"dir/file\U0001F574"); ++ archive_entry_set_mode(ae, AE_IFREG | 0755); ++ archive_entry_set_size(ae, 8); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae)); ++ archive_entry_free(ae); ++ assertEqualIntA(a, 8, archive_write_data(a, "ghijklmn", 9)); ++ + /* + * XXX TODO XXX Archive directory, other file types. + * Archive extended attributes, ACLs, other metadata. +@@ -261,6 +277,22 @@ + assertEqualString("dir/dir3", archive_entry_pathname(ae)); + assert((AE_IFDIR | 0755) == archive_entry_mode(ae)); + ++ /* ++ * Read "dir/file{UNICODE}" ++ */ ++ assertEqualIntA(a, 0, archive_read_next_header(a, &ae)); ++ assertEqualInt(2, archive_entry_atime(ae)); ++ assertEqualInt(0, archive_entry_atime_nsec(ae)); ++ assertEqualInt(4, archive_entry_ctime(ae)); ++ assertEqualInt(0, archive_entry_ctime_nsec(ae)); ++ assertEqualInt(5, archive_entry_mtime(ae)); ++ assertEqualInt(0, archive_entry_mtime_nsec(ae)); ++ assertEqualWString(L"dir/file\U0001F574", archive_entry_pathname_w(ae)); ++ assert((AE_IFREG | 0755) == archive_entry_mode(ae)); ++ assertEqualInt(8, archive_entry_size(ae)); ++ assertEqualIntA(a, 8, archive_read_data(a, buff2, 10)); ++ assertEqualMem(buff2, "ghijklmn", 8); ++ + /* + * Verify the end of the archive. + */ +@@ -273,6 +305,13 @@ + + DEFINE_TEST(test_write_format_xar) + { ++ /* xar mandates the use of UTF-8 XML; if we cannot ++ * use UTF-8, perhaps we should not write xar. */ ++ if (NULL == setlocale(LC_ALL, "en_US.UTF-8")) { ++ skipping("en_US.UTF-8 locale not available on this system."); ++ return; ++ } ++ + /* Default mode. */ + test_xar(NULL); + +--- contrib/libarchive/libarchive/test/test_write_format_zip64_stream.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip64_stream.c +@@ -31,40 +31,6 @@ + * written in streaming mode with Zip64 extensions enabled. + */ + +-static unsigned long +-bitcrc32(unsigned long c, void *_p, size_t s) +-{ +- /* This is a drop-in replacement for crc32() from zlib. +- * Libarchive should be able to correctly generate +- * uncompressed zip archives (including correct CRCs) even +- * when zlib is unavailable, and this function helps us verify +- * that. Yes, this is very, very slow and unsuitable for +- * production use, but it's correct, compact, and works well +- * enough for this particular usage. Libarchive internally +- * uses a much more efficient implementation. */ +- const unsigned char *p = _p; +- int bitctr; +- +- if (p == NULL) +- return (0); +- +- for (; s > 0; --s) { +- c ^= *p++; +- for (bitctr = 8; bitctr > 0; --bitctr) { +- if (c & 1) c = (c >> 1); +- else c = (c >> 1) ^ 0xedb88320; +- c ^= 0x80000000; +- } +- } +- return (c); +-} +- +-/* Quick and dirty: Read 2-byte and 4-byte integers from Zip file. */ +-static unsigned i2(const unsigned char *p) { return ((p[0] & 0xff) | ((p[1] & 0xff) << 8)); } +-static unsigned i4(const unsigned char *p) { return (i2(p) | (i2(p + 2) << 16)); } +-/* We're only working with small values here; ignore the 4 high bytes. */ +-static unsigned i8(const unsigned char *p) { return (i4(p)); } +- + DEFINE_TEST(test_write_format_zip64_stream) + { + struct archive *a; +@@ -72,7 +38,7 @@ + size_t used, buffsize = 1000000; + unsigned long crc; + unsigned long compressed_size = 0; +- int file_perm = 00644; ++ __LA_MODE_T file_perm = 00644; + int zip_version = 45; + int zip_compression = 8; + short file_uid = 10, file_gid = 20; +@@ -119,54 +85,54 @@ + failure("End-of-central-directory begins with PK\\005\\006 signature"); + assertEqualMem(p, "PK\005\006", 4); + failure("This must be disk 0"); +- assertEqualInt(i2(p + 4), 0); ++ assertEqualInt(i2le(p + 4), 0); + failure("Central dir must start on disk 0"); +- assertEqualInt(i2(p + 6), 0); ++ assertEqualInt(i2le(p + 6), 0); + failure("All central dir entries are on this disk"); +- assertEqualInt(i2(p + 8), i2(p + 10)); +- eocd = buff + i4(p + 12) + i4(p + 16); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ eocd = buff + i4le(p + 12) + i4le(p + 16); + failure("no zip comment"); +- assertEqualInt(i2(p + 20), 0); ++ assertEqualInt(i2le(p + 20), 0); + + /* Get address of first entry in central directory. */ +- central_header = p = buff + i4(buffend - 6); +- failure("Central file record at offset %d should begin with" ++ central_header = p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" + " PK\\001\\002 signature", +- i4(buffend - 10)); ++ i4le(buffend - 10)); + + /* Verify file entry in central directory. */ + assertEqualMem(p, "PK\001\002", 4); /* Signature */ +- assertEqualInt(i2(p + 4), 3 * 256 + zip_version); /* Version made by */ +- assertEqualInt(i2(p + 6), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 8), 8); /* Flags */ +- assertEqualInt(i2(p + 10), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 12), 0); /* File time */ +- assertEqualInt(i2(p + 14), 33); /* File date */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + zip_version); /* Version made by */ ++ assertEqualInt(i2le(p + 6), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 12), 0); /* File time */ ++ assertEqualInt(i2le(p + 14), 33); /* File date */ + crc = bitcrc32(0, file_data, sizeof(file_data)); +- assertEqualInt(i4(p + 16), crc); /* CRC-32 */ +- compressed_size = i4(p + 20); /* Compressed size */ +- assertEqualInt(i4(p + 24), sizeof(file_data)); /* Uncompressed size */ +- assertEqualInt(i2(p + 28), strlen(file_name)); /* Pathname length */ +- /* assertEqualInt(i2(p + 30), 28); */ /* Extra field length: See below */ +- assertEqualInt(i2(p + 32), 0); /* File comment length */ +- assertEqualInt(i2(p + 34), 0); /* Disk number start */ +- assertEqualInt(i2(p + 36), 0); /* Internal file attrs */ +- assertEqualInt(i4(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ +- assertEqualInt(i4(p + 42), 0); /* Offset of local header */ ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ compressed_size = i4le(p + 20); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ /* assertEqualInt(i2le(p + 30), 28); */ /* Extra field length: See below */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ + assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = central_header + 46 + strlen(file_name); +- extension_end = extension_start + i2(central_header + 30); ++ extension_end = extension_start + i2le(central_header + 30); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + /* TODO: verify 'ux' contents */ +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), 0); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), 0); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + + /* Note: We don't expect to see zip64 extension in the central + * directory, since the writer knows the actual full size by +@@ -176,9 +142,9 @@ + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -188,21 +154,21 @@ + + /* After Central dir, we find Zip64 eocd and Zip64 eocd locator. */ + assertEqualMem(p, "PK\006\006", 4); /* Zip64 eocd */ +- assertEqualInt(i8(p + 4), 44); /* We're using v1 Zip64 eocd */ +- assertEqualInt(i2(p + 12), 45); /* Written by Version 4.5 */ +- assertEqualInt(i2(p + 14), 45); /* Needs version 4.5 to extract */ +- assertEqualInt(i4(p + 16), 0); /* This is disk #0 */ +- assertEqualInt(i4(p + 20), 0); /* Dir starts on disk #0 */ +- assertEqualInt(i8(p + 24), 1); /* 1 entry on this disk */ +- assertEqualInt(i8(p + 32), 1); /* 1 entry total */ +- assertEqualInt(i8(p + 40), eocd - central_header); /* size of cd */ +- assertEqualInt(i8(p + 48), central_header - buff); /* start of cd */ +- p += 12 + i8(p + 4); ++ assertEqualInt(i8le(p + 4), 44); /* We're using v1 Zip64 eocd */ ++ assertEqualInt(i2le(p + 12), 45); /* Written by Version 4.5 */ ++ assertEqualInt(i2le(p + 14), 45); /* Needs version 4.5 to extract */ ++ assertEqualInt(i4le(p + 16), 0); /* This is disk #0 */ ++ assertEqualInt(i4le(p + 20), 0); /* Dir starts on disk #0 */ ++ assertEqualInt(i8le(p + 24), 1); /* 1 entry on this disk */ ++ assertEqualInt(i8le(p + 32), 1); /* 1 entry total */ ++ assertEqualInt(i8le(p + 40), eocd - central_header); /* size of cd */ ++ assertEqualInt(i8le(p + 48), central_header - buff); /* start of cd */ ++ p += 12 + i8le(p + 4); + + assertEqualMem(p, "PK\006\007", 4); /* Zip64 eocd locator */ +- assertEqualInt(i4(p + 4), 0); /* Zip64 eocd is on disk #0 */ +- assertEqualInt(i8(p + 8), eocd - buff); /* Offset of Zip64 eocd */ +- assertEqualInt(i4(p + 16), 1); /* 1 disk */ ++ assertEqualInt(i4le(p + 4), 0); /* Zip64 eocd is on disk #0 */ ++ assertEqualInt(i8le(p + 8), eocd - buff); /* Offset of Zip64 eocd */ ++ assertEqualInt(i4le(p + 16), 1); /* 1 disk */ + p += 20; + + /* Regular EOCD immediately follows Zip64 records. */ +@@ -211,48 +177,48 @@ + /* Verify local header of file entry. */ + p = local_header = buff; + assertEqualMem(p, "PK\003\004", 4); /* Signature */ +- assertEqualInt(i2(p + 4), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 6), 8); /* Flags: bit 3 = length-at-end */ +- assertEqualInt(i2(p + 8), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 10), 0); /* File time */ +- assertEqualInt(i2(p + 12), 33); /* File date */ +- assertEqualInt(i4(p + 14), 0); /* CRC-32 */ +- assertEqualInt(i4(p + 18), 0); /* Compressed size must be zero for length-at-end */ +- assertEqualInt(i4(p + 22), 0); /* Uncompressed size must be zero for length-at-end */ +- assertEqualInt(i2(p + 26), strlen(file_name)); /* Pathname length */ +- assertEqualInt(i2(p + 28), 37); /* Extra field length */ ++ assertEqualInt(i2le(p + 4), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 6), 8); /* Flags: bit 3 = length-at-end */ ++ assertEqualInt(i2le(p + 8), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 10), 0); /* File time */ ++ assertEqualInt(i2le(p + 12), 33); /* File date */ ++ assertEqualInt(i4le(p + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(p + 18), 0); /* Compressed size must be zero for length-at-end */ ++ assertEqualInt(i4le(p + 22), 0); /* Uncompressed size must be zero for length-at-end */ ++ assertEqualInt(i2le(p + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 28), 37); /* Extra field length */ + assertEqualMem(p + 30, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = local_header + 30 + strlen(file_name); +- extension_end = extension_start + i2(local_header + 28); ++ extension_end = extension_start + i2le(local_header + 28); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + assertEqualInt(p[4], 1); /* 'ux' version */ + assertEqualInt(p[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(p + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(i4le(p + 6), file_uid); /* 'Ux' UID */ + assertEqualInt(p[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(p + 11), file_gid); /* 'Ux' GID */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 11), file_gid); /* 'Ux' GID */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), 0); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), 0); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x6c78); /* 'xl' experimental extension header */ +- assertEqualInt(i2(p + 2), 9); /* size */ ++ assertEqualInt(i2le(p), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(p + 2), 9); /* size */ + assertEqualInt(p[4], 7); /* bitmap of included fields */ +- assertEqualInt(i2(p + 5) >> 8, 3); /* system & version made by */ +- assertEqualInt(i2(p + 7), 0); /* internal file attributes */ +- assertEqualInt(i4(p + 9) >> 16 & 01777, file_perm); /* external file attributes */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i2le(p + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(p + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(p + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ p += 4 + i2le(p + 2); + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -265,9 +231,9 @@ + data_end = p; + assertEqualInt(data_end - data_start, compressed_size); + assertEqualMem(p, "PK\007\010", 4); +- assertEqualInt(i4(p + 4), crc); /* CRC-32 */ +- assertEqualInt(i8(p + 8), compressed_size); /* compressed size */ +- assertEqualInt(i8(p + 16), sizeof(file_data)); /* uncompressed size */ ++ assertEqualInt(i4le(p + 4), crc); /* CRC-32 */ ++ assertEqualInt(i8le(p + 8), compressed_size); /* compressed size */ ++ assertEqualInt(i8le(p + 16), sizeof(file_data)); /* uncompressed size */ + + /* Central directory should immediately follow the only entry. */ + assertEqualAddress(p + 24, central_header); +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_write_format_zip_compression_bzip2.c +@@ -0,0 +1,362 @@ ++/*-SPDX-License-Identifier: BSD-2-Clause ++ * Copyright (c) 2024 ARJANEN LoĂ¯c Jean David ++ * All rights reserved. ++ */ ++ ++#include "test.h" ++#ifdef HAVE_BZLIB_H ++#include <bzlib.h> ++ ++/* File data */ ++static const char file_name[] = "file"; ++static const char file_data1[] = {'1', '2', '3', '4', '5', '6', '7', '8'}; ++static const char file_data2[] = {'9', '0', 'A', 'B', 'C', 'D', 'E', 'F'}; ++static const int file_perm = 00644; ++static const short file_uid = 10; ++static const short file_gid = 20; ++ ++/* Folder data */ ++static const char folder_name[] = "folder/"; ++static const int folder_perm = 00755; ++static const short folder_uid = 30; ++static const short folder_gid = 40; ++ ++static time_t now; ++ ++static void verify_write_bzip2(struct archive *a) ++{ ++ struct archive_entry *entry; ++ ++ /* Write entries. */ ++ ++ /* Regular file */ ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, file_name); ++ archive_entry_set_mode(entry, S_IFREG | 0644); ++ archive_entry_set_size(entry, sizeof(file_data1) + sizeof(file_data2)); ++ archive_entry_set_uid(entry, file_uid); ++ archive_entry_set_gid(entry, file_gid); ++ archive_entry_set_mtime(entry, now, 0); ++ archive_entry_set_atime(entry, now + 3, 0); ++ assertEqualIntA(a, 0, archive_write_header(a, entry)); ++ assertEqualIntA(a, sizeof(file_data1), archive_write_data(a, file_data1, sizeof(file_data1))); ++ assertEqualIntA(a, sizeof(file_data2), archive_write_data(a, file_data2, sizeof(file_data2))); ++ archive_entry_free(entry); ++ ++ /* Folder */ ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, folder_name); ++ archive_entry_set_mode(entry, S_IFDIR | folder_perm); ++ archive_entry_set_size(entry, 0); ++ archive_entry_set_uid(entry, folder_uid); ++ archive_entry_set_gid(entry, folder_gid); ++ archive_entry_set_mtime(entry, now, 0); ++ archive_entry_set_ctime(entry, now + 5, 0); ++ assertEqualIntA(a, 0, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++} ++ ++static void verify_bzip2_contents(const char *buff, size_t used) ++{ ++ const char *buffend; ++ struct archive* zip_archive; ++ struct archive_entry *ae; ++ char filedata[sizeof(file_data1) + sizeof(file_data2)]; ++ /* Misc variables */ ++ unsigned long crc; ++ struct tm *tm; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++ /* p is the pointer to walk over the central directory, ++ * q walks over the local headers, the data and the data descriptors. */ ++ const char *p, *q, *local_header, *extra_start; ++ ++#if defined(HAVE_LOCALTIME_S) ++ tm = localtime_s(&tmbuf, &now) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ tm = localtime_r(&now, &tmbuf); ++#else ++ tm = localtime(&now); ++#endif ++ ++ /* Open archive from memory, we'll need it for checking the file ++ * value */ ++ assert((zip_archive = archive_read_new()) != NULL); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_support_format_zip(zip_archive)); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_support_filter_all(zip_archive)); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_open_memory(zip_archive, buff, used)); ++ ++ /* Remember the end of the archive in memory. */ ++ buffend = buff + used; ++ ++ /* Verify "End of Central Directory" record. */ ++ /* Get address of end-of-central-directory record. */ ++ p = buffend - 22; /* Assumes there is no zip comment field. */ ++ failure("End-of-central-directory begins with PK\\005\\006 signature"); ++ assertEqualMem(p, "PK\005\006", 4); ++ failure("This must be disk 0"); ++ assertEqualInt(i2le(p + 4), 0); ++ failure("Central dir must start on disk 0"); ++ assertEqualInt(i2le(p + 6), 0); ++ failure("All central dir entries are on this disk"); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ failure("CD start (%u) + CD length (%u) should == archive size - 22", ++ i4le(p + 12), i4le(p + 16)); ++ assertEqualInt(i4le(p + 12) + i4le(p + 16), used - 22); ++ failure("no zip comment"); ++ assertEqualInt(i2le(p + 20), 0); ++ ++ /* Get address of first entry in central directory. */ ++ p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" ++ " PK\\001\\002 signature", ++ i4le(buffend - 10)); ++ ++ /* Verify file entry in central directory, except compressed size (offset 20). */ ++ assertEqualMem(p, "PK\001\002", 4); /* Signature */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 46); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 46); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), 12); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ crc = bitcrc32(0, file_data1, sizeof(file_data1)); ++ crc = bitcrc32(crc, file_data2, sizeof(file_data2)); ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ ++ assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ ++ p = p + 46 + strlen(file_name); ++ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ ++/* TODO */ ++ p = p + 4 + i2le(p + 2); ++ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(p[4], 1); /* 'UT' flags */ ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); ++ ++ /* Verify local header of file entry. */ ++ local_header = q = buff; ++ assertEqualMem(q, "PK\003\004", 4); /* Signature */ ++ assertEqualInt(i2le(q + 4), 46); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 8); /* Flags: bit 3 = length-at-end (required because CRC32 is unknown) */ ++ assertEqualInt(i2le(q + 8), 12); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size, must be zero because of length-at-end */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size, must be zero because of length-at-end */ ++ assertEqualInt(i2le(q + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ ++ assertEqualMem(q + 30, file_name, strlen(file_name)); /* Pathname */ ++ extra_start = q = q + 30 + strlen(file_name); ++ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(q[4], 1); /* 'ux' version */ ++ assertEqualInt(q[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(q + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(q[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(q + 11), file_gid); /* 'Ux' GID */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(q[4], 3); /* 'UT' flags */ ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 3); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ ++ assertEqualInt(q[4], 7); /* Bitmap of fields included. */ ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); ++ ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); ++ ++ /* Verify data of file entry, using our own zip reader to test. */ ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_next_header(zip_archive, &ae)); ++ assertEqualString("file", archive_entry_pathname(ae)); ++ assertEqualIntA(zip_archive, sizeof(filedata), archive_read_data(zip_archive, filedata, sizeof(filedata))); ++ assertEqualMem(filedata, file_data1, sizeof(file_data1)); ++ assertEqualMem(filedata + sizeof(file_data1), file_data2, ++ sizeof(file_data2)); ++ ++ /* Skip data of file entry in q */ ++ while (q < buffend - 3) { ++ if (memcmp(q, "PK\007\010", 4) == 0) { ++ break; ++ } ++ q++; ++ } ++ ++ /* Verify data descriptor of file entry, except compressed size (offset 8). */ ++ assertEqualMem(q, "PK\007\010", 4); /* Signature */ ++ assertEqualInt(i4le(q + 4), crc); /* CRC-32 */ ++ assertEqualInt(i4le(q + 12), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ q = q + 16; ++ ++ /* Verify folder entry in central directory. */ ++ assertEqualMem(p, "PK\001\002", 4); /* Signature */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 20); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 0); /* Flags */ ++ assertEqualInt(i2le(p + 10), 0); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ crc = 0; ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 20), 0); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, folder_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), q - buff); /* Offset of local header */ ++ assertEqualMem(p + 46, folder_name, strlen(folder_name)); /* Pathname */ ++ p = p + 46 + strlen(folder_name); ++ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(p[4], 1); /* 'ux' version */ ++ assertEqualInt(p[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(p + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(p[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(p + 11), folder_gid); /* 'ux' GID */ ++ p = p + 4 + i2le(p + 2); ++ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(p[4], 1); /* 'UT' flags */ ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); ++ ++ /* Verify local header of folder entry. */ ++ local_header = q; ++ assertEqualMem(q, "PK\003\004", 4); /* Signature */ ++ assertEqualInt(i2le(q + 4), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 0); /* Flags */ ++ assertEqualInt(i2le(q + 8), 0); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(q + 26), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ ++ assertEqualMem(q + 30, folder_name, strlen(folder_name)); /* Pathname */ ++ extra_start = q = q + 30 + strlen(folder_name); ++ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(q[4], 1); /* 'ux' version */ ++ assertEqualInt(q[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(q + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(q[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(q + 11), folder_gid); /* 'ux' GID */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(q[4], 5); /* 'UT' flags */ ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 5); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ ++ assertEqualInt(q[4], 7); /* bitmap of fields */ ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, folder_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); ++ ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); ++ ++ /* There should not be any data in the folder entry, ++ * so the first central directory entry should be next: */ ++ assertEqualMem(q, "PK\001\002", 4); /* Signature */ ++ ++ /* Close archive, in case. */ ++ archive_read_free(zip_archive); ++} ++ ++#endif /* HAVE_BZLIB_H */ ++DEFINE_TEST(test_write_format_zip_compression_bzip2) ++{ ++#ifndef HAVE_BZLIB_H ++ skipping("bzip2 is not fully supported on this platform"); ++#else /* HAVE_BZLIB_H */ ++ /* Buffer data */ ++ struct archive *a; ++ char buff[100000]; ++ size_t used; ++ ++ /* Time data */ ++ now = time(NULL); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use the setter function to use BZIP2 compression. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_zip_set_compression_bzip2(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_bzip2(a); ++ ++ /* Close the archive . */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_bzip2_contents(buff, used); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use compression-level=3 to check that compression ++ * levels are somewhat supported. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression=bzip2")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression-level=3")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_bzip2(a); ++ ++ /* Close the archive. */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_bzip2_contents(buff, used); ++#endif /* HAVE_BZLIB_H */ ++} +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_write_format_zip_compression_lzmaxz.c +@@ -0,0 +1,425 @@ ++/*-SPDX-License-Identifier: BSD-2-Clause ++ * Copyright (c) 2024 ARJANEN LoĂ¯c Jean David ++ * All rights reserved. ++ */ ++ ++#include "test.h" ++#ifdef HAVE_LZMA_H ++#include <lzma.h> ++ ++/* File data */ ++static const char file_name[] = "file"; ++static const char file_data1[] = {'.', ';', ':', '!', '?', ',', '"', '\'', ')', '(', '*'}; ++static const char file_data2[] = {'-', '/', '>', '$', '\\', '#', '@', '+', '=', '{', ']', '[', '}', '&', '<', '%'}; ++static const int file_perm = 00644; ++static const short file_uid = 10; ++static const short file_gid = 20; ++ ++/* Folder data */ ++static const char folder_name[] = "folder/"; ++static const int folder_perm = 00755; ++static const short folder_uid = 30; ++static const short folder_gid = 40; ++ ++static time_t now; ++ ++static void verify_write_lzma(struct archive *a) ++{ ++ struct archive_entry *entry; ++ ++ /* Write entries. */ ++ ++ /* Regular file */ ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, file_name); ++ archive_entry_set_mode(entry, S_IFREG | 0644); ++ archive_entry_set_size(entry, sizeof(file_data1) + sizeof(file_data2)); ++ archive_entry_set_uid(entry, file_uid); ++ archive_entry_set_gid(entry, file_gid); ++ archive_entry_set_mtime(entry, now, 0); ++ archive_entry_set_atime(entry, now + 3, 0); ++ assertEqualIntA(a, 0, archive_write_header(a, entry)); ++ assertEqualIntA(a, sizeof(file_data1), archive_write_data(a, file_data1, sizeof(file_data1))); ++ assertEqualIntA(a, sizeof(file_data2), archive_write_data(a, file_data2, sizeof(file_data2))); ++ archive_entry_free(entry); ++ ++ /* Folder */ ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, folder_name); ++ archive_entry_set_mode(entry, S_IFDIR | folder_perm); ++ archive_entry_set_size(entry, 0); ++ archive_entry_set_uid(entry, folder_uid); ++ archive_entry_set_gid(entry, folder_gid); ++ archive_entry_set_mtime(entry, now, 0); ++ archive_entry_set_ctime(entry, now + 5, 0); ++ assertEqualIntA(a, 0, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++} ++ ++static void verify_xz_lzma(const char *buff, size_t used, uint16_t id, ++ uint16_t flags) ++{ ++ const char *buffend; ++ struct archive* zip_archive; ++ struct archive_entry *ae; ++ char filedata[sizeof(file_data1) + sizeof(file_data2)]; ++ /* Misc variables */ ++ unsigned long crc; ++ struct tm *tm; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++ /* p is the pointer to walk over the central directory, ++ * q walks over the local headers, the data and the data descriptors. */ ++ const char *p, *q, *local_header, *extra_start; ++ ++#if defined(HAVE_LOCALTIME_S) ++ tm = localtime_s(&tmbuf, &now) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ tm = localtime_r(&now, &tmbuf); ++#else ++ tm = localtime(&now); ++#endif ++ ++ /* Open archive from memory, we'll need it for checking the file ++ * value */ ++ assert((zip_archive = archive_read_new()) != NULL); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_support_format_all(zip_archive)); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_support_filter_all(zip_archive)); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_open_memory(zip_archive, buff, used)); ++ ++ /* Remember the end of the archive in memory. */ ++ buffend = buff + used; ++ ++ /* Verify "End of Central Directory" record. */ ++ /* Get address of end-of-central-directory record. */ ++ p = buffend - 22; /* Assumes there is no zip comment field. */ ++ failure("End-of-central-directory begins with PK\\005\\006 signature"); ++ assertEqualMem(p, "PK\005\006", 4); ++ failure("This must be disk 0"); ++ assertEqualInt(i2le(p + 4), 0); ++ failure("Central dir must start on disk 0"); ++ assertEqualInt(i2le(p + 6), 0); ++ failure("All central dir entries are on this disk"); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ failure("CD start (%u) + CD length (%u) should == archive size - 22", ++ i4le(p + 12), i4le(p + 16)); ++ assertEqualInt(i4le(p + 12) + i4le(p + 16), used - 22); ++ failure("no zip comment"); ++ assertEqualInt(i2le(p + 20), 0); ++ ++ /* Get address of first entry in central directory. */ ++ p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" ++ " PK\\001\\002 signature", ++ i4le(buffend - 10)); ++ ++ /* Verify file entry in central directory, except compressed size (offset 20). */ ++ assertEqualMem(p, "PK\001\002", 4); /* Signature */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 63); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 63); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), flags); /* Flags */ ++ assertEqualInt(i2le(p + 10), id); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ crc = bitcrc32(0, file_data1, sizeof(file_data1)); ++ crc = bitcrc32(crc, file_data2, sizeof(file_data2)); ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ ++ assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ ++ p = p + 46 + strlen(file_name); ++ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ ++/* TODO */ ++ p = p + 4 + i2le(p + 2); ++ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(p[4], 1); /* 'UT' flags */ ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); ++ ++ /* Verify local header of file entry. */ ++ local_header = q = buff; ++ assertEqualMem(q, "PK\003\004", 4); /* Signature */ ++ assertEqualInt(i2le(q + 4), 63); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), flags); /* Flags: bit 3 = length-at-end (required because CRC32 is unknown) and bit 1 = EOPM (because we always write it) */ ++ assertEqualInt(i2le(q + 8), id); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size, must be zero because of length-at-end */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size, must be zero because of length-at-end */ ++ assertEqualInt(i2le(q + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ ++ assertEqualMem(q + 30, file_name, strlen(file_name)); /* Pathname */ ++ extra_start = q = q + 30 + strlen(file_name); ++ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(q[4], 1); /* 'ux' version */ ++ assertEqualInt(q[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(q + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(q[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(q + 11), file_gid); /* 'Ux' GID */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(q[4], 3); /* 'UT' flags */ ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 3); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ ++ assertEqualInt(q[4], 7); /* Bitmap of fields included. */ ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); ++ ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); ++ ++ /* Verify data of file entry, using our own zip reader to test. */ ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_next_header(zip_archive, &ae)); ++ assertEqualString("file", archive_entry_pathname(ae)); ++ assertEqualIntA(zip_archive, sizeof(filedata), archive_read_data(zip_archive, filedata, sizeof(filedata))); ++ assertEqualMem(filedata, file_data1, sizeof(file_data1)); ++ assertEqualMem(filedata + sizeof(file_data1), file_data2, ++ sizeof(file_data2)); ++ ++ /* Skip data of file entry in q */ ++ while (q < buffend - 3) { ++ if (memcmp(q, "PK\007\010", 4) == 0) { ++ break; ++ } ++ q++; ++ } ++ ++ /* Verify data descriptor of file entry, except compressed size (offset 8). */ ++ assertEqualMem(q, "PK\007\010", 4); /* Signature */ ++ assertEqualInt(i4le(q + 4), crc); /* CRC-32 */ ++ assertEqualInt(i4le(q + 12), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ q = q + 16; ++ ++ /* Verify folder entry in central directory. */ ++ assertEqualMem(p, "PK\001\002", 4); /* Signature */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 20); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 0); /* Flags */ ++ assertEqualInt(i2le(p + 10), 0); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ crc = 0; ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 20), 0); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, folder_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), q - buff); /* Offset of local header */ ++ assertEqualMem(p + 46, folder_name, strlen(folder_name)); /* Pathname */ ++ p = p + 46 + strlen(folder_name); ++ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(p[4], 1); /* 'ux' version */ ++ assertEqualInt(p[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(p + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(p[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(p + 11), folder_gid); /* 'ux' GID */ ++ p = p + 4 + i2le(p + 2); ++ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(p[4], 1); /* 'UT' flags */ ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); ++ ++ /* Verify local header of folder entry. */ ++ local_header = q; ++ assertEqualMem(q, "PK\003\004", 4); /* Signature */ ++ assertEqualInt(i2le(q + 4), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 0); /* Flags */ ++ assertEqualInt(i2le(q + 8), 0); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(q + 26), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ ++ assertEqualMem(q + 30, folder_name, strlen(folder_name)); /* Pathname */ ++ extra_start = q = q + 30 + strlen(folder_name); ++ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(q[4], 1); /* 'ux' version */ ++ assertEqualInt(q[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(q + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(q[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(q + 11), folder_gid); /* 'ux' GID */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(q[4], 5); /* 'UT' flags */ ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 5); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ ++ assertEqualInt(q[4], 7); /* bitmap of fields */ ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, folder_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); ++ ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); ++ ++ /* There should not be any data in the folder entry, ++ * so the first central directory entry should be next: */ ++ assertEqualMem(q, "PK\001\002", 4); /* Signature */ ++ ++ /* Close archive, in case. */ ++ archive_read_free(zip_archive); ++} ++ ++static void verify_xz_contents(const char *buff, size_t used) ++{ ++ verify_xz_lzma(buff, used, 95, 0x8); ++} ++ ++static void verify_lzma_contents(const char *buff, size_t used) ++{ ++ verify_xz_lzma(buff, used, 14, 0xA); ++} ++ ++#endif /* HAVE_LZMA_H */ ++DEFINE_TEST(test_write_format_zip_compression_lzmaxz) ++{ ++#ifndef HAVE_LZMA_H ++ skipping("lzma is not fully supported on this platform"); ++#else /* HAVE_LZMA_H */ ++ /* Buffer data */ ++ struct archive *a; ++ char buff[100000]; ++ size_t used; ++ ++ /* Time data */ ++ now = time(NULL); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use the setter function to use LZMA Alone compression. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_zip_set_compression_lzma(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_lzma(a); ++ ++ /* Close the archive . */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_lzma_contents(buff, used); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use compression-level=9 to check that compression ++ * levels are somewhat supported. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression=lzma")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression-level=9")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_lzma(a); ++ ++ /* Close the archive. */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_lzma_contents(buff, used); ++ ++ /* Same song and dance, but for XZ */ ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use the setter function to use XZ compression. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_zip_set_compression_xz(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_lzma(a); ++ ++ /* Close the archive . */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_xz_contents(buff, used); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use compression-level=9 to check that compression levels are ++ * somewhat supported as well as threads=2 to check the multi-threaded ++ * encoder, if available. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression=xz")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression-level=9")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:threads=2")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_lzma(a); ++ ++ /* Close the archive. */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_xz_contents(buff, used); ++#endif /* HAVE_LZMA_H */ ++} ++ +--- contrib/libarchive/libarchive/test/test_write_format_zip_compression_store.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip_compression_store.c +@@ -45,34 +45,6 @@ + + static time_t now; + +-static unsigned long +-bitcrc32(unsigned long c, const void *_p, size_t s) +-{ +- /* This is a drop-in replacement for crc32() from zlib. +- * Libarchive should be able to correctly generate +- * uncompressed zip archives (including correct CRCs) even +- * when zlib is unavailable, and this function helps us verify +- * that. Yes, this is very, very slow and unsuitable for +- * production use, but it's correct, compact, and works well +- * enough for this particular usage. Libarchive internally +- * uses a much more efficient implementation. */ +- const unsigned char *p = _p; +- int bitctr; +- +- if (p == NULL) +- return (0); +- +- for (; s > 0; --s) { +- c ^= *p++; +- for (bitctr = 8; bitctr > 0; --bitctr) { +- if (c & 1) c = (c >> 1); +- else c = (c >> 1) ^ 0xedb88320; +- c ^= 0x80000000; +- } +- } +- return (c); +-} +- + static void verify_write_uncompressed(struct archive *a) + { + struct archive_entry *entry; +@@ -106,21 +78,6 @@ + archive_entry_free(entry); + } + +-/* Quick and dirty: Read 2-byte and 4-byte integers from Zip file. */ +-static unsigned int +-i2(const void *p_) +-{ +- const unsigned char *p = p_; +- return (p[0] | (p[1] << 8)); +-} +- +-static unsigned int +-i4(const void *p_) +-{ +- const unsigned char *p = p_; +- return (i2(p) | (i2(p + 2) << 16)); +-} +- + static void verify_uncompressed_contents(const char *buff, size_t used) + { + const char *buffend; +@@ -152,99 +109,99 @@ + failure("End-of-central-directory begins with PK\\005\\006 signature"); + assertEqualMem(p, "PK\005\006", 4); + failure("This must be disk 0"); +- assertEqualInt(i2(p + 4), 0); ++ assertEqualInt(i2le(p + 4), 0); + failure("Central dir must start on disk 0"); +- assertEqualInt(i2(p + 6), 0); ++ assertEqualInt(i2le(p + 6), 0); + failure("All central dir entries are on this disk"); +- assertEqualInt(i2(p + 8), i2(p + 10)); +- failure("CD start (%d) + CD length (%d) should == archive size - 22", +- i4(p + 12), i4(p + 16)); +- assertEqualInt(i4(p + 12) + i4(p + 16), used - 22); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ failure("CD start (%u) + CD length (%u) should == archive size - 22", ++ i4le(p + 12), i4le(p + 16)); ++ assertEqualInt(i4le(p + 12) + i4le(p + 16), used - 22); + failure("no zip comment"); +- assertEqualInt(i2(p + 20), 0); ++ assertEqualInt(i2le(p + 20), 0); + + /* Get address of first entry in central directory. */ +- p = buff + i4(buffend - 6); +- failure("Central file record at offset %d should begin with" ++ p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" + " PK\\001\\002 signature", +- i4(buffend - 10)); ++ i4le(buffend - 10)); + + /* Verify file entry in central directory. */ + assertEqualMem(p, "PK\001\002", 4); /* Signature */ +- assertEqualInt(i2(p + 4), 3 * 256 + 10); /* Version made by */ +- assertEqualInt(i2(p + 6), 10); /* Version needed to extract */ +- assertEqualInt(i2(p + 8), 8); /* Flags */ +- assertEqualInt(i2(p + 10), 0); /* Compression method */ +- assertEqualInt(i2(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 10); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 10); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), 0); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ + crc = bitcrc32(0, file_data1, sizeof(file_data1)); + crc = bitcrc32(crc, file_data2, sizeof(file_data2)); +- assertEqualInt(i4(p + 16), crc); /* CRC-32 */ +- assertEqualInt(i4(p + 20), sizeof(file_data1) + sizeof(file_data2)); /* Compressed size */ +- assertEqualInt(i4(p + 24), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ +- assertEqualInt(i2(p + 28), strlen(file_name)); /* Pathname length */ +- assertEqualInt(i2(p + 30), 24); /* Extra field length */ +- assertEqualInt(i2(p + 32), 0); /* File comment length */ +- assertEqualInt(i2(p + 34), 0); /* Disk number start */ +- assertEqualInt(i2(p + 36), 0); /* Internal file attrs */ +- assertEqualInt(i4(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ +- assertEqualInt(i4(p + 42), 0); /* Offset of local header */ ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 20), sizeof(file_data1) + sizeof(file_data2)); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ + assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ + p = p + 46 + strlen(file_name); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + /* TODO */ +- p = p + 4 + i2(p + 2); ++ p = p + 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), now); /* 'UT' mtime */ +- p = p + 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); + + /* Verify local header of file entry. */ + local_header = q = buff; + assertEqualMem(q, "PK\003\004", 4); /* Signature */ +- assertEqualInt(i2(q + 4), 10); /* Version needed to extract */ +- assertEqualInt(i2(q + 6), 8); /* Flags: bit 3 = length-at-end. Required because CRC32 is unknown */ +- assertEqualInt(i2(q + 8), 0); /* Compression method */ +- assertEqualInt(i2(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ +- assertEqualInt(i4(q + 14), 0); /* CRC-32 */ +- assertEqualInt(i4(q + 18), 0); /* Compressed size, must be zero because of length-at-end */ +- assertEqualInt(i4(q + 22), 0); /* Uncompressed size, must be zero because of length-at-end */ +- assertEqualInt(i2(q + 26), strlen(file_name)); /* Pathname length */ +- assertEqualInt(i2(q + 28), 41); /* Extra field length */ ++ assertEqualInt(i2le(q + 4), 10); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 8); /* Flags: bit 3 = length-at-end. Required because CRC32 is unknown */ ++ assertEqualInt(i2le(q + 8), 0); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size, must be zero because of length-at-end */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size, must be zero because of length-at-end */ ++ assertEqualInt(i2le(q + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ + assertEqualMem(q + 30, file_name, strlen(file_name)); /* Pathname */ + extra_start = q = q + 30 + strlen(file_name); + +- assertEqualInt(i2(q), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ + assertEqualInt(q[4], 1); /* 'ux' version */ + assertEqualInt(q[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(q + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(i4le(q + 6), file_uid); /* 'Ux' UID */ + assertEqualInt(q[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(q + 11), file_gid); /* 'Ux' GID */ +- q = q + 4 + i2(q + 2); ++ assertEqualInt(i4le(q + 11), file_gid); /* 'Ux' GID */ ++ q = q + 4 + i2le(q + 2); + +- assertEqualInt(i2(q), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ + assertEqualInt(q[4], 3); /* 'UT' flags */ +- assertEqualInt(i4(q + 5), now); /* 'UT' mtime */ +- assertEqualInt(i4(q + 9), now + 3); /* 'UT' atime */ +- q = q + 4 + i2(q + 2); ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 3); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); + +- assertEqualInt(i2(q), 0x6c78); /* 'xl' experimental extension header */ +- assertEqualInt(i2(q + 2), 9); /* size */ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ + assertEqualInt(q[4], 7); /* Bitmap of fields included. */ +- assertEqualInt(i2(q + 5) >> 8, 3); /* system & version made by */ +- assertEqualInt(i2(q + 7), 0); /* internal file attributes */ +- assertEqualInt(i4(q + 9) >> 16 & 01777, file_perm); /* external file attributes */ +- q = q + 4 + i2(q + 2); ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); + +- assert(q == extra_start + i2(local_header + 28)); +- q = extra_start + i2(local_header + 28); ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); + + /* Verify data of file entry. */ + assertEqualMem(q, file_data1, sizeof(file_data1)); +@@ -253,90 +210,90 @@ + + /* Verify data descriptor of file entry. */ + assertEqualMem(q, "PK\007\010", 4); /* Signature */ +- assertEqualInt(i4(q + 4), crc); /* CRC-32 */ +- assertEqualInt(i4(q + 8), sizeof(file_data1) + sizeof(file_data2)); /* Compressed size */ +- assertEqualInt(i4(q + 12), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ assertEqualInt(i4le(q + 4), crc); /* CRC-32 */ ++ assertEqualInt(i4le(q + 8), sizeof(file_data1) + sizeof(file_data2)); /* Compressed size */ ++ assertEqualInt(i4le(q + 12), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ + q = q + 16; + + /* Verify folder entry in central directory. */ + assertEqualMem(p, "PK\001\002", 4); /* Signature */ +- assertEqualInt(i2(p + 4), 3 * 256 + 20); /* Version made by */ +- assertEqualInt(i2(p + 6), 20); /* Version needed to extract */ +- assertEqualInt(i2(p + 8), 0); /* Flags */ +- assertEqualInt(i2(p + 10), 0); /* Compression method */ +- assertEqualInt(i2(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 20); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 0); /* Flags */ ++ assertEqualInt(i2le(p + 10), 0); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ + crc = 0; +- assertEqualInt(i4(p + 16), crc); /* CRC-32 */ +- assertEqualInt(i4(p + 20), 0); /* Compressed size */ +- assertEqualInt(i4(p + 24), 0); /* Uncompressed size */ +- assertEqualInt(i2(p + 28), strlen(folder_name)); /* Pathname length */ +- assertEqualInt(i2(p + 30), 24); /* Extra field length */ +- assertEqualInt(i2(p + 32), 0); /* File comment length */ +- assertEqualInt(i2(p + 34), 0); /* Disk number start */ +- assertEqualInt(i2(p + 36), 0); /* Internal file attrs */ +- assertEqualInt(i4(p + 38) >> 16 & 01777, folder_perm); /* External file attrs */ +- assertEqualInt(i4(p + 42), q - buff); /* Offset of local header */ ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 20), 0); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, folder_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), q - buff); /* Offset of local header */ + assertEqualMem(p + 46, folder_name, strlen(folder_name)); /* Pathname */ + p = p + 46 + strlen(folder_name); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + assertEqualInt(p[4], 1); /* 'ux' version */ + assertEqualInt(p[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(p + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(i4le(p + 6), folder_uid); /* 'ux' UID */ + assertEqualInt(p[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(p + 11), folder_gid); /* 'ux' GID */ +- p = p + 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 11), folder_gid); /* 'ux' GID */ ++ p = p + 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), now); /* 'UT' mtime */ +- p = p + 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); + + /* Verify local header of folder entry. */ + local_header = q; + assertEqualMem(q, "PK\003\004", 4); /* Signature */ +- assertEqualInt(i2(q + 4), 20); /* Version needed to extract */ +- assertEqualInt(i2(q + 6), 0); /* Flags */ +- assertEqualInt(i2(q + 8), 0); /* Compression method */ +- assertEqualInt(i2(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ +- assertEqualInt(i4(q + 14), 0); /* CRC-32 */ +- assertEqualInt(i4(q + 18), 0); /* Compressed size */ +- assertEqualInt(i4(q + 22), 0); /* Uncompressed size */ +- assertEqualInt(i2(q + 26), strlen(folder_name)); /* Pathname length */ +- assertEqualInt(i2(q + 28), 41); /* Extra field length */ ++ assertEqualInt(i2le(q + 4), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 0); /* Flags */ ++ assertEqualInt(i2le(q + 8), 0); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(q + 26), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ + assertEqualMem(q + 30, folder_name, strlen(folder_name)); /* Pathname */ + extra_start = q = q + 30 + strlen(folder_name); + +- assertEqualInt(i2(q), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ + assertEqualInt(q[4], 1); /* 'ux' version */ + assertEqualInt(q[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(q + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(i4le(q + 6), folder_uid); /* 'ux' UID */ + assertEqualInt(q[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(q + 11), folder_gid); /* 'ux' GID */ +- q = q + 4 + i2(q + 2); ++ assertEqualInt(i4le(q + 11), folder_gid); /* 'ux' GID */ ++ q = q + 4 + i2le(q + 2); + +- assertEqualInt(i2(q), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ + assertEqualInt(q[4], 5); /* 'UT' flags */ +- assertEqualInt(i4(q + 5), now); /* 'UT' mtime */ +- assertEqualInt(i4(q + 9), now + 5); /* 'UT' atime */ +- q = q + 4 + i2(q + 2); ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 5); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); + +- assertEqualInt(i2(q), 0x6c78); /* 'xl' experimental extension header */ +- assertEqualInt(i2(q + 2), 9); /* size */ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ + assertEqualInt(q[4], 7); /* bitmap of fields */ +- assertEqualInt(i2(q + 5) >> 8, 3); /* system & version made by */ +- assertEqualInt(i2(q + 7), 0); /* internal file attributes */ +- assertEqualInt(i4(q + 9) >> 16 & 01777, folder_perm); /* external file attributes */ +- q = q + 4 + i2(q + 2); ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, folder_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); + +- assert(q == extra_start + i2(local_header + 28)); +- q = extra_start + i2(local_header + 28); ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); + + /* There should not be any data in the folder entry, + * so the first central directory entry should be next: */ +--- /dev/null ++++ contrib/libarchive/libarchive/test/test_write_format_zip_compression_zstd.c +@@ -0,0 +1,366 @@ ++/*-SPDX-License-Identifier: BSD-2-Clause ++ * Copyright (c) 2024 ARJANEN LoĂ¯c Jean David ++ * All rights reserved. ++ */ ++ ++#include "test.h" ++#ifdef HAVE_ZSTD_H ++#include <zstd.h> ++ ++/* File data */ ++static const char file_name[] = "file"; ++static const char file_data1[] = {'~', 'Z', '`', '^', 'Y', 'X', 'N', 'W', 'V', 'G', 'H', 'I', 'J'}; ++static const char file_data2[] = {'U', 'T', 'S', 'M', 'R', 'Q', 'P', 'O', 'K', 'L'}; ++static const int file_perm = 00644; ++static const short file_uid = 10; ++static const short file_gid = 20; ++ ++/* Folder data */ ++static const char folder_name[] = "folder/"; ++static const int folder_perm = 00755; ++static const short folder_uid = 30; ++static const short folder_gid = 40; ++ ++static time_t now; ++ ++static void verify_write_zstd(struct archive *a) ++{ ++ struct archive_entry *entry; ++ ++ /* Write entries. */ ++ ++ /* Regular file */ ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, file_name); ++ archive_entry_set_mode(entry, S_IFREG | 0644); ++ archive_entry_set_size(entry, sizeof(file_data1) + sizeof(file_data2)); ++ archive_entry_set_uid(entry, file_uid); ++ archive_entry_set_gid(entry, file_gid); ++ archive_entry_set_mtime(entry, now, 0); ++ archive_entry_set_atime(entry, now + 3, 0); ++ assertEqualIntA(a, 0, archive_write_header(a, entry)); ++ assertEqualIntA(a, sizeof(file_data1), archive_write_data(a, file_data1, sizeof(file_data1))); ++ assertEqualIntA(a, sizeof(file_data2), archive_write_data(a, file_data2, sizeof(file_data2))); ++ archive_entry_free(entry); ++ ++ /* Folder */ ++ assert((entry = archive_entry_new()) != NULL); ++ archive_entry_set_pathname(entry, folder_name); ++ archive_entry_set_mode(entry, S_IFDIR | folder_perm); ++ archive_entry_set_size(entry, 0); ++ archive_entry_set_uid(entry, folder_uid); ++ archive_entry_set_gid(entry, folder_gid); ++ archive_entry_set_mtime(entry, now, 0); ++ archive_entry_set_ctime(entry, now + 5, 0); ++ assertEqualIntA(a, 0, archive_write_header(a, entry)); ++ archive_entry_free(entry); ++} ++ ++static void verify_zstd_contents(const char *buff, size_t used) ++{ ++ const char *buffend; ++ struct archive* zip_archive; ++ struct archive_entry *ae; ++ char filedata[sizeof(file_data1) + sizeof(file_data2)]; ++ /* Misc variables */ ++ unsigned long crc; ++ struct tm *tm; ++#if defined(HAVE_LOCALTIME_R) || defined(HAVE_LOCALTIME_S) ++ struct tm tmbuf; ++#endif ++ /* p is the pointer to walk over the central directory, ++ * q walks over the local headers, the data and the data descriptors. */ ++ const char *p, *q, *local_header, *extra_start; ++ ++#if defined(HAVE_LOCALTIME_S) ++ tm = localtime_s(&tmbuf, &now) ? NULL : &tmbuf; ++#elif defined(HAVE_LOCALTIME_R) ++ tm = localtime_r(&now, &tmbuf); ++#else ++ tm = localtime(&now); ++#endif ++ ++ /* Open archive from memory, we'll need it for checking the file ++ * value */ ++ assert((zip_archive = archive_read_new()) != NULL); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_support_format_zip(zip_archive)); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_support_filter_all(zip_archive)); ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_open_memory(zip_archive, buff, used)); ++ ++ /* Remember the end of the archive in memory. */ ++ buffend = buff + used; ++ ++ /* Verify "End of Central Directory" record. */ ++ /* Get address of end-of-central-directory record. */ ++ p = buffend - 22; /* Assumes there is no zip comment field. */ ++ failure("End-of-central-directory begins with PK\\005\\006 signature"); ++ assertEqualMem(p, "PK\005\006", 4); ++ failure("This must be disk 0"); ++ assertEqualInt(i2le(p + 4), 0); ++ failure("Central dir must start on disk 0"); ++ assertEqualInt(i2le(p + 6), 0); ++ failure("All central dir entries are on this disk"); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ failure("CD start (%u) + CD length (%u) should == archive size - 22", ++ i4le(p + 12), i4le(p + 16)); ++ assertEqualInt(i4le(p + 12) + i4le(p + 16), used - 22); ++ failure("no zip comment"); ++ assertEqualInt(i2le(p + 20), 0); ++ ++ /* Get address of first entry in central directory. */ ++ p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" ++ " PK\\001\\002 signature", ++ i4le(buffend - 10)); ++ ++ /* Verify file entry in central directory, except compressed size (offset 20). */ ++ assertEqualMem(p, "PK\001\002", 4); /* Signature */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 63); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 63); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), 93); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ crc = bitcrc32(0, file_data1, sizeof(file_data1)); ++ crc = bitcrc32(crc, file_data2, sizeof(file_data2)); ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ ++ assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ ++ p = p + 46 + strlen(file_name); ++ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ ++/* TODO */ ++ p = p + 4 + i2le(p + 2); ++ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(p[4], 1); /* 'UT' flags */ ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); ++ ++ /* Verify local header of file entry. */ ++ local_header = q = buff; ++ assertEqualMem(q, "PK\003\004", 4); /* Signature */ ++ assertEqualInt(i2le(q + 4), 63); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 8); /* Flags: bit 3 = length-at-end (required because CRC32 is unknown) */ ++ assertEqualInt(i2le(q + 8), 93); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size, must be zero because of length-at-end */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size, must be zero because of length-at-end */ ++ assertEqualInt(i2le(q + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ ++ assertEqualMem(q + 30, file_name, strlen(file_name)); /* Pathname */ ++ extra_start = q = q + 30 + strlen(file_name); ++ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(q[4], 1); /* 'ux' version */ ++ assertEqualInt(q[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(q + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(q[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(q + 11), file_gid); /* 'Ux' GID */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(q[4], 3); /* 'UT' flags */ ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 3); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ ++ assertEqualInt(q[4], 7); /* Bitmap of fields included. */ ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); ++ ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); ++ ++ /* Verify data of file entry, using our own zip reader to test. */ ++ assertEqualIntA(zip_archive, ARCHIVE_OK, archive_read_next_header(zip_archive, &ae)); ++ assertEqualString("file", archive_entry_pathname(ae)); ++ assertEqualIntA(zip_archive, sizeof(filedata), archive_read_data(zip_archive, filedata, sizeof(filedata))); ++ assertEqualMem(filedata, file_data1, sizeof(file_data1)); ++ assertEqualMem(filedata + sizeof(file_data1), file_data2, ++ sizeof(file_data2)); ++ ++ /* Skip data of file entry in q */ ++ while (q < buffend - 3) { ++ if (memcmp(q, "PK\007\010", 4) == 0) { ++ break; ++ } ++ q++; ++ } ++ ++ /* Verify data descriptor of file entry, except compressed size (offset 8). */ ++ assertEqualMem(q, "PK\007\010", 4); /* Signature */ ++ assertEqualInt(i4le(q + 4), crc); /* CRC-32 */ ++ assertEqualInt(i4le(q + 12), sizeof(file_data1) + sizeof(file_data2)); /* Uncompressed size */ ++ q = q + 16; ++ ++ /* Verify folder entry in central directory. */ ++ assertEqualMem(p, "PK\001\002", 4); /* Signature */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + 20); /* Version made by */ ++ assertEqualInt(i2le(p + 6), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 0); /* Flags */ ++ assertEqualInt(i2le(p + 10), 0); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ crc = 0; ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 20), 0); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 30), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, folder_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), q - buff); /* Offset of local header */ ++ assertEqualMem(p + 46, folder_name, strlen(folder_name)); /* Pathname */ ++ p = p + 46 + strlen(folder_name); ++ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(p[4], 1); /* 'ux' version */ ++ assertEqualInt(p[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(p + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(p[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(p + 11), folder_gid); /* 'ux' GID */ ++ p = p + 4 + i2le(p + 2); ++ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(p[4], 1); /* 'UT' flags */ ++ assertEqualInt(i4le(p + 5), now); /* 'UT' mtime */ ++ p = p + 4 + i2le(p + 2); ++ ++ /* Verify local header of folder entry. */ ++ local_header = q; ++ assertEqualMem(q, "PK\003\004", 4); /* Signature */ ++ assertEqualInt(i2le(q + 4), 20); /* Version needed to extract */ ++ assertEqualInt(i2le(q + 6), 0); /* Flags */ ++ assertEqualInt(i2le(q + 8), 0); /* Compression method */ ++ assertEqualInt(i2le(q + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(q + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(q + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(q + 18), 0); /* Compressed size */ ++ assertEqualInt(i4le(q + 22), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(q + 26), strlen(folder_name)); /* Pathname length */ ++ assertEqualInt(i2le(q + 28), 41); /* Extra field length */ ++ assertEqualMem(q + 30, folder_name, strlen(folder_name)); /* Pathname */ ++ extra_start = q = q + 30 + strlen(folder_name); ++ ++ assertEqualInt(i2le(q), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(q + 2), 11); /* 'ux' size */ ++ assertEqualInt(q[4], 1); /* 'ux' version */ ++ assertEqualInt(q[5], 4); /* 'ux' uid size */ ++ assertEqualInt(i4le(q + 6), folder_uid); /* 'ux' UID */ ++ assertEqualInt(q[10], 4); /* 'ux' gid size */ ++ assertEqualInt(i4le(q + 11), folder_gid); /* 'ux' GID */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* 'UT' size */ ++ assertEqualInt(q[4], 5); /* 'UT' flags */ ++ assertEqualInt(i4le(q + 5), now); /* 'UT' mtime */ ++ assertEqualInt(i4le(q + 9), now + 5); /* 'UT' atime */ ++ q = q + 4 + i2le(q + 2); ++ ++ assertEqualInt(i2le(q), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(q + 2), 9); /* size */ ++ assertEqualInt(q[4], 7); /* bitmap of fields */ ++ assertEqualInt(i2le(q + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(q + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(q + 9) >> 16 & 01777, folder_perm); /* external file attributes */ ++ q = q + 4 + i2le(q + 2); ++ ++ assert(q == extra_start + i2le(local_header + 28)); ++ q = extra_start + i2le(local_header + 28); ++ ++ /* There should not be any data in the folder entry, ++ * so the first central directory entry should be next: */ ++ assertEqualMem(q, "PK\001\002", 4); /* Signature */ ++ ++ /* Close archive, in case. */ ++ archive_read_free(zip_archive); ++} ++ ++#endif /* HAVE_ZSTD_H */ ++DEFINE_TEST(test_write_format_zip_compression_zstd) ++{ ++#ifndef HAVE_ZSTD_H ++ skipping("zstd is not fully supported on this platform"); ++#else /* HAVE_ZSTD_H */ ++ /* Buffer data */ ++ struct archive *a; ++ char buff[100000]; ++ size_t used; ++ ++ /* Time data */ ++ now = time(NULL); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use the setter function to use ZSTD compression. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_zip_set_compression_zstd(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_zstd(a); ++ ++ /* Close the archive . */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_zstd_contents(buff, used); ++ ++ /* Create new ZIP archive in memory without padding. */ ++ /* Use compression-level=1 to check that compression levels are ++ * somewhat supported as well as threads=2 to check the multi-threaded ++ * encoder, if available. */ ++ assert((a = archive_write_new()) != NULL); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression=zstd")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:compression-level=1")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:threads=2")); ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_options(a, "zip:experimental")); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_per_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_bytes_in_last_block(a, 1)); ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, sizeof(buff), &used)); ++ ++ verify_write_zstd(a); ++ ++ /* Close the archive. */ ++ assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a)); ++ assertEqualInt(ARCHIVE_OK, archive_write_free(a)); ++ dumpfile("constructed.zip", buff, used); ++ ++ verify_zstd_contents(buff, used); ++#endif /* HAVE_ZSTD_H */ ++} ++ +--- contrib/libarchive/libarchive/test/test_write_format_zip_entry_size_unset.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip_entry_size_unset.c +@@ -42,42 +42,6 @@ + + #define ZIP_ENTRY_FLAG_LENGTH_AT_END (1 << 3) + +-/* Quick and dirty: Read 2-byte and 4-byte integers from Zip file. */ +-static unsigned i2(const char *p) { return ((p[0] & 0xff) | ((p[1] & 0xff) << 8)); } +-static unsigned i4(const char *p) { return (i2(p) | (i2(p + 2) << 16)); } +- +-static unsigned long +-bitcrc32(unsigned long c, const void *_p, size_t s) +-{ +- /* This is a drop-in replacement for crc32() from zlib. +- * Libarchive should be able to correctly generate +- * uncompressed zip archives (including correct CRCs) even +- * when zlib is unavailable, and this function helps us verify +- * that. Yes, this is very, very slow and unsuitable for +- * production use, but it's correct, compact, and works well +- * enough for this particular usage. Libarchive internally +- * uses a much more efficient implementation. */ +- const unsigned char *p = _p; +- int bitctr; +- +- if (p == NULL) +- return (0); +- +- for (; s > 0; --s) +- { +- c ^= *p++; +- for (bitctr = 8; bitctr > 0; --bitctr) +- { +- if (c & 1) +- c = (c >> 1); +- else +- c = (c >> 1) ^ 0xedb88320; +- c ^= 0x80000000; +- } +- } +- return (c); +-} +- + static void write_archive(struct archive *a) + { + struct archive_entry *entry = archive_entry_new(); +@@ -116,52 +80,52 @@ + /* Check for end of central directory signature */ + assertEqualMem(end_of_central_dir, "PK\x5\x6", 4); + /* Check for number of disk */ +- assertEqualInt(i2(end_of_central_dir + 4), 0); ++ assertEqualInt(i2le(end_of_central_dir + 4), 0); + /* Check for disk where central directory starts */ +- assertEqualInt(i2(end_of_central_dir + 6), 0); ++ assertEqualInt(i2le(end_of_central_dir + 6), 0); + /* Check for number of central directory records on disk */ +- assertEqualInt(i2(end_of_central_dir + 8), 2); ++ assertEqualInt(i2le(end_of_central_dir + 8), 2); + /* Check for total number of central directory records */ +- assertEqualInt(i2(end_of_central_dir + 10), 2); ++ assertEqualInt(i2le(end_of_central_dir + 10), 2); + /* Check for size of central directory and offset + * The size + offset must equal the end of the central directory */ +- assertEqualInt(i4(end_of_central_dir + 12) + i4(end_of_central_dir + 16), end_of_central_dir - zip_buff); ++ assertEqualInt(i4le(end_of_central_dir + 12) + i4le(end_of_central_dir + 16), end_of_central_dir - zip_buff); + /* Check for empty comment length */ +- assertEqualInt(i2(end_of_central_dir + 20), 0); ++ assertEqualInt(i2le(end_of_central_dir + 20), 0); + + /* Get address of central directory */ +- const char *central_directory = zip_buff + i4(end_of_central_dir + 16); ++ const char *central_directory = zip_buff + i4le(end_of_central_dir + 16); + + /* Check for entry in central directory signature */ + assertEqualMem(central_directory, "PK\x1\x2", 4); + /* Check for version used to write entry */ +- assertEqualInt(i2(central_directory + 4), 3 * 256 + 10); ++ assertEqualInt(i2le(central_directory + 4), 3 * 256 + 10); + /* Check for version needed to extract entry */ +- assertEqualInt(i2(central_directory + 6), 10); ++ assertEqualInt(i2le(central_directory + 6), 10); + /* Check flags */ +- assertEqualInt(i2(central_directory + 8), ZIP_ENTRY_FLAG_LENGTH_AT_END); ++ assertEqualInt(i2le(central_directory + 8), ZIP_ENTRY_FLAG_LENGTH_AT_END); + /* Check compression method */ +- assertEqualInt(i2(central_directory + 10), 0); ++ assertEqualInt(i2le(central_directory + 10), 0); + /* Check crc value */ +- assertEqualInt(i4(central_directory + 16), crc); ++ assertEqualInt(i4le(central_directory + 16), crc); + /* Check compressed size*/ +- assertEqualInt(i4(central_directory + 20), sizeof(file_data1) + sizeof(file_data2)); ++ assertEqualInt(i4le(central_directory + 20), sizeof(file_data1) + sizeof(file_data2)); + /* Check uncompressed size */ +- assertEqualInt(i4(central_directory + 24), sizeof(file_data1) + sizeof(file_data2)); ++ assertEqualInt(i4le(central_directory + 24), sizeof(file_data1) + sizeof(file_data2)); + /* Check file name length */ +- assertEqualInt(i2(central_directory + 28), strlen(file_name)); ++ assertEqualInt(i2le(central_directory + 28), strlen(file_name)); + /* Check extra field length */ +- assertEqualInt(i2(central_directory + 30), 15); ++ assertEqualInt(i2le(central_directory + 30), 15); + /* Check file comment length */ +- assertEqualInt(i2(central_directory + 32), 0); ++ assertEqualInt(i2le(central_directory + 32), 0); + /* Check disk number where file starts */ +- assertEqualInt(i2(central_directory + 34), 0); ++ assertEqualInt(i2le(central_directory + 34), 0); + /* Check internal file attrs */ +- assertEqualInt(i2(central_directory + 36), 0); ++ assertEqualInt(i2le(central_directory + 36), 0); + /* Check external file attrs */ +- assertEqualInt(i4(central_directory + 38) >> 16 & 01777, file_perm); ++ assertEqualInt(i4le(central_directory + 38) >> 16 & 01777, file_perm); + /* Check offset of local header */ +- assertEqualInt(i4(central_directory + 42), 0); ++ assertEqualInt(i4le(central_directory + 42), 0); + /* Check for file name contents */ + assertEqualMem(central_directory + 46, file_name, strlen(file_name)); + +@@ -171,28 +135,28 @@ + /* Check local file header signature */ + assertEqualMem(local_file_header, "PK\x3\x4", 4); + /* Check version needed to extract */ +- assertEqualInt(i2(local_file_header + 4), 10); ++ assertEqualInt(i2le(local_file_header + 4), 10); + /* Check flags */ +- assertEqualInt(i2(local_file_header + 6), 8); ++ assertEqualInt(i2le(local_file_header + 6), 8); + /* Check compression method */ +- assertEqualInt(i2(local_file_header + 8), 0); ++ assertEqualInt(i2le(local_file_header + 8), 0); + /* Check crc */ +- assertEqualInt(i4(local_file_header + 14), 0); ++ assertEqualInt(i4le(local_file_header + 14), 0); + /* Check compressed size + * 0 because it was unknown at time of writing */ +- assertEqualInt(i4(local_file_header + 18), 0); ++ assertEqualInt(i4le(local_file_header + 18), 0); + /* Check uncompressed size + * 0 because it was unknown at time of writing */ +- assertEqualInt(i4(local_file_header + 22), 0); ++ assertEqualInt(i4le(local_file_header + 22), 0); + /* Check pathname length */ +- assertEqualInt(i2(local_file_header + 26), strlen(file_name)); ++ assertEqualInt(i2le(local_file_header + 26), strlen(file_name)); + /* Check extra field length */ +- assertEqualInt(i2(local_file_header + 28), 15); ++ assertEqualInt(i2le(local_file_header + 28), 15); + /* Check path name match */ + assertEqualMem(local_file_header + 30, file_name, strlen(file_name)); + + /* Start of data */ +- const char *data = local_file_header + i2(local_file_header + 28) + strlen(file_name) + 30; ++ const char *data = local_file_header + i2le(local_file_header + 28) + strlen(file_name) + 30; + /* Check for file data match */ + assertEqualMem(data, file_data1, sizeof(file_data1)); + assertEqualMem(data + sizeof(file_data1), file_data2, sizeof(file_data2)); +@@ -202,14 +166,14 @@ + /* Check data descriptor signature */ + assertEqualMem(data_descriptor, "PK\x7\x8", 4); + /* Check crc value */ +- assertEqualInt(i4(data_descriptor + 4), crc); ++ assertEqualInt(i4le(data_descriptor + 4), crc); + /* Check compressed size */ +- assertEqualInt(i4(data_descriptor + 8), sizeof(file_data1) + sizeof(file_data2)); ++ assertEqualInt(i4le(data_descriptor + 8), sizeof(file_data1) + sizeof(file_data2)); + /* Check uncompressed size */ +- assertEqualInt(i4(data_descriptor + 12), sizeof(file_data1) + sizeof(file_data2)); ++ assertEqualInt(i4le(data_descriptor + 12), sizeof(file_data1) + sizeof(file_data2)); + + /* Get folder entry in central directory */ +- const char *central_directory_folder_entry = central_directory + 46 + i2(local_file_header + 28) + strlen(file_name); ++ const char *central_directory_folder_entry = central_directory + 46 + i2le(local_file_header + 28) + strlen(file_name); + + /* Get start of folder entry */ + const char *local_folder_header = data_descriptor + 16; +@@ -217,58 +181,58 @@ + /* Check for entry in central directory signature */ + assertEqualMem(central_directory_folder_entry, "PK\x1\x2", 4); + /* Check version made by */ +- assertEqualInt(i2(central_directory_folder_entry + 4), 3 * 256 + 20); ++ assertEqualInt(i2le(central_directory_folder_entry + 4), 3 * 256 + 20); + /* Check version needed to extract */ +- assertEqualInt(i2(central_directory_folder_entry + 6), 20); ++ assertEqualInt(i2le(central_directory_folder_entry + 6), 20); + /* Check flags */ +- assertEqualInt(i2(central_directory_folder_entry + 8), 0); ++ assertEqualInt(i2le(central_directory_folder_entry + 8), 0); + /* Check compression method */ +- assertEqualInt(i2(central_directory_folder_entry + 10), 0); ++ assertEqualInt(i2le(central_directory_folder_entry + 10), 0); + /* Check crc */ +- assertEqualInt(i2(central_directory_folder_entry + 16), 0); ++ assertEqualInt(i2le(central_directory_folder_entry + 16), 0); + /* Check compressed size */ +- assertEqualInt(i4(central_directory_folder_entry + 20), 0); ++ assertEqualInt(i4le(central_directory_folder_entry + 20), 0); + /* Check uncompressed size */ +- assertEqualInt(i4(central_directory_folder_entry + 24), 0); ++ assertEqualInt(i4le(central_directory_folder_entry + 24), 0); + /* Check path name length */ +- assertEqualInt(i2(central_directory_folder_entry + 28), strlen(folder_name)); ++ assertEqualInt(i2le(central_directory_folder_entry + 28), strlen(folder_name)); + /* Check extra field length */ +- assertEqualInt(i2(central_directory_folder_entry + 30), 15); ++ assertEqualInt(i2le(central_directory_folder_entry + 30), 15); + /* Check file comment length */ +- assertEqualInt(i2(central_directory_folder_entry + 32), 0); ++ assertEqualInt(i2le(central_directory_folder_entry + 32), 0); + /* Check disk number start */ +- assertEqualInt(i2(central_directory_folder_entry + 34), 0); ++ assertEqualInt(i2le(central_directory_folder_entry + 34), 0); + /* Check internal file attrs */ +- assertEqualInt(i2(central_directory_folder_entry + 36), 0); ++ assertEqualInt(i2le(central_directory_folder_entry + 36), 0); + /* Check external file attrs */ +- assertEqualInt(i4(central_directory_folder_entry + 38) >> 16 & 01777, folder_perm); ++ assertEqualInt(i4le(central_directory_folder_entry + 38) >> 16 & 01777, folder_perm); + /* Check offset of local header*/ +- assertEqualInt(i4(central_directory_folder_entry + 42), local_folder_header - zip_buff); ++ assertEqualInt(i4le(central_directory_folder_entry + 42), local_folder_header - zip_buff); + /* Check path name */ + assertEqualMem(central_directory_folder_entry + 46, folder_name, strlen(folder_name)); + + /* Check local header */ + assertEqualMem(local_folder_header, "PK\x3\x4", 4); + /* Check version to extract */ +- assertEqualInt(i2(local_folder_header + 4), 20); ++ assertEqualInt(i2le(local_folder_header + 4), 20); + /* Check flags */ +- assertEqualInt(i2(local_folder_header + 6), 0); ++ assertEqualInt(i2le(local_folder_header + 6), 0); + /* Check compression method */ +- assertEqualInt(i2(local_folder_header + 8), 0); ++ assertEqualInt(i2le(local_folder_header + 8), 0); + /* Check crc */ +- assertEqualInt(i4(local_folder_header + 14), 0); ++ assertEqualInt(i4le(local_folder_header + 14), 0); + /* Check compressed size */ +- assertEqualInt(i2(local_folder_header + 18), 0); ++ assertEqualInt(i2le(local_folder_header + 18), 0); + /* Check uncompressed size */ +- assertEqualInt(i4(local_folder_header + 22), 0); ++ assertEqualInt(i4le(local_folder_header + 22), 0); + /* Check path name length */ +- assertEqualInt(i2(local_folder_header + 26), strlen(folder_name)); ++ assertEqualInt(i2le(local_folder_header + 26), strlen(folder_name)); + /* Check extra field length */ +- assertEqualInt(i2(local_folder_header + 28), 15); ++ assertEqualInt(i2le(local_folder_header + 28), 15); + /* Check path name */ + assertEqualMem(local_folder_header + 30, folder_name, strlen(folder_name)); + +- const char *post_local_folder = local_folder_header + 30 + i2(local_folder_header + 28) + strlen(folder_name); ++ const char *post_local_folder = local_folder_header + 30 + i2le(local_folder_header + 28) + strlen(folder_name); + assertEqualMem(post_local_folder, central_directory, 4); + } + +--- contrib/libarchive/libarchive/test/test_write_format_zip_file.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip_file.c +@@ -35,38 +35,6 @@ + * with a single file written to it. + */ + +-static unsigned long +-bitcrc32(unsigned long c, void *_p, size_t s) +-{ +- /* This is a drop-in replacement for crc32() from zlib. +- * Libarchive should be able to correctly generate +- * uncompressed zip archives (including correct CRCs) even +- * when zlib is unavailable, and this function helps us verify +- * that. Yes, this is very, very slow and unsuitable for +- * production use, but it's correct, compact, and works well +- * enough for this particular usage. Libarchive internally +- * uses a much more efficient implementation. */ +- const unsigned char *p = _p; +- int bitctr; +- +- if (p == NULL) +- return (0); +- +- for (; s > 0; --s) { +- c ^= *p++; +- for (bitctr = 8; bitctr > 0; --bitctr) { +- if (c & 1) c = (c >> 1); +- else c = (c >> 1) ^ 0xedb88320; +- c ^= 0x80000000; +- } +- } +- return (c); +-} +- +-/* Quick and dirty: Read 2-byte and 4-byte integers from Zip file. */ +-static unsigned i2(const unsigned char *p) { return ((p[0] & 0xff) | ((p[1] & 0xff) << 8)); } +-static unsigned i4(const unsigned char *p) { return (i2(p) | (i2(p + 2) << 16)); } +- + DEFINE_TEST(test_write_format_zip_file) + { + struct archive *a; +@@ -78,7 +46,7 @@ + #endif + size_t used, buffsize = 1000000; + unsigned long crc; +- int file_perm = 00644; ++ __LA_MODE_T file_perm = 00644; + int zip_version = 20; + int zip_compression = 8; + short file_uid = 10, file_gid = 20; +@@ -131,60 +99,60 @@ + failure("End-of-central-directory begins with PK\\005\\006 signature"); + assertEqualMem(p, "PK\005\006", 4); + failure("This must be disk 0"); +- assertEqualInt(i2(p + 4), 0); ++ assertEqualInt(i2le(p + 4), 0); + failure("Central dir must start on disk 0"); +- assertEqualInt(i2(p + 6), 0); ++ assertEqualInt(i2le(p + 6), 0); + failure("All central dir entries are on this disk"); +- assertEqualInt(i2(p + 8), i2(p + 10)); +- eocd = buff + i4(p + 12) + i4(p + 16); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ eocd = buff + i4le(p + 12) + i4le(p + 16); + failure("no zip comment"); +- assertEqualInt(i2(p + 20), 0); ++ assertEqualInt(i2le(p + 20), 0); + + /* Get address of first entry in central directory. */ +- central_header = p = buff + i4(buffend - 6); +- failure("Central file record at offset %d should begin with" ++ central_header = p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" + " PK\\001\\002 signature", +- i4(buffend - 10)); ++ i4le(buffend - 10)); + + /* Verify file entry in central directory. */ + assertEqualMem(p, "PK\001\002", 4); /* Signature */ +- assertEqualInt(i2(p + 4), 3 * 256 + zip_version); /* Version made by */ +- assertEqualInt(i2(p + 6), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 8), 8); /* Flags */ +- assertEqualInt(i2(p + 10), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + zip_version); /* Version made by */ ++ assertEqualInt(i2le(p + 6), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ + crc = bitcrc32(0, file_data, sizeof(file_data)); +- assertEqualInt(i4(p + 16), crc); /* CRC-32 */ +- /* assertEqualInt(i4(p + 20), sizeof(file_data)); */ /* Compressed size */ +- assertEqualInt(i4(p + 24), sizeof(file_data)); /* Uncompressed size */ +- assertEqualInt(i2(p + 28), strlen(file_name)); /* Pathname length */ +- /* assertEqualInt(i2(p + 30), 28); */ /* Extra field length: See below */ +- assertEqualInt(i2(p + 32), 0); /* File comment length */ +- assertEqualInt(i2(p + 34), 0); /* Disk number start */ +- assertEqualInt(i2(p + 36), 0); /* Internal file attrs */ +- assertEqualInt(i4(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ +- assertEqualInt(i4(p + 42), 0); /* Offset of local header */ ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ /* assertEqualInt(i4le(p + 20), sizeof(file_data)); */ /* Compressed size */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ /* assertEqualInt(i2le(p + 30), 28); */ /* Extra field length: See below */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ + assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = central_header + 46 + strlen(file_name); +- extension_end = extension_start + i2(central_header + 30); ++ extension_end = extension_start + i2le(central_header + 30); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + /* TODO: verify 'ux' contents */ +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), t); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), t); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -198,48 +166,48 @@ + /* Verify local header of file entry. */ + p = local_header = buff; + assertEqualMem(p, "PK\003\004", 4); /* Signature */ +- assertEqualInt(i2(p + 4), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 6), 8); /* Flags: bit 3 = length-at-end */ +- assertEqualInt(i2(p + 8), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(p + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ +- assertEqualInt(i4(p + 14), 0); /* CRC-32 stored as zero because we're using length-at-end */ +- assertEqualInt(i4(p + 18), 0); /* Compressed size stored as zero because we're using length-at-end. */ +- assertEqualInt(i4(p + 22), 0); /* Uncompressed size stored as zero because we're using length-at-end. */ +- assertEqualInt(i2(p + 26), strlen(file_name)); /* Pathname length */ +- assertEqualInt(i2(p + 28), 37); /* Extra field length */ ++ assertEqualInt(i2le(p + 4), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 6), 8); /* Flags: bit 3 = length-at-end */ ++ assertEqualInt(i2le(p + 8), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(p + 14), 0); /* CRC-32 stored as zero because we're using length-at-end */ ++ assertEqualInt(i4le(p + 18), 0); /* Compressed size stored as zero because we're using length-at-end. */ ++ assertEqualInt(i4le(p + 22), 0); /* Uncompressed size stored as zero because we're using length-at-end. */ ++ assertEqualInt(i2le(p + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 28), 37); /* Extra field length */ + assertEqualMem(p + 30, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = local_header + 30 + strlen(file_name); +- extension_end = extension_start + i2(local_header + 28); ++ extension_end = extension_start + i2le(local_header + 28); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* size */ + assertEqualInt(p[4], 1); /* 'ux' version */ + assertEqualInt(p[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(p + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(i4le(p + 6), file_uid); /* 'Ux' UID */ + assertEqualInt(p[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(p + 11), file_gid); /* 'Ux' GID */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 11), file_gid); /* 'Ux' GID */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), t); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), t); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x6c78); /* 'xl' experimental extension block */ +- assertEqualInt(i2(p + 2), 9); /* size */ ++ assertEqualInt(i2le(p), 0x6c78); /* 'xl' experimental extension block */ ++ assertEqualInt(i2le(p + 2), 9); /* size */ + assertEqualInt(p[4], 7); /* bitmap of fields in this block */ +- assertEqualInt(i2(p + 5) >> 8, 3); /* System & version made by */ +- assertEqualInt(i2(p + 7), 0); /* internal file attributes */ +- assertEqualInt(i4(p + 9) >> 16 & 01777, file_perm); /* external file attributes */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i2le(p + 5) >> 8, 3); /* System & version made by */ ++ assertEqualInt(i2le(p + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(p + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ p += 4 + i2le(p + 2); + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -249,9 +217,9 @@ + while (p < central_header && memcmp(p, "PK\007\010", 4) != 0) + ++p; + assertEqualMem(p, "PK\007\010", 4); +- assertEqualInt(i4(p + 4), crc); /* CRC-32 */ +- assertEqualInt(i4(p + 8), p - extension_end); /* compressed size */ +- assertEqualInt(i4(p + 12), sizeof(file_data)); /* uncompressed size */ ++ assertEqualInt(i4le(p + 4), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 8), p - extension_end); /* compressed size */ ++ assertEqualInt(i4le(p + 12), sizeof(file_data)); /* uncompressed size */ + + /* Central directory should immediately follow the only entry. */ + assertEqualAddress(p + 16, central_header); +--- contrib/libarchive/libarchive/test/test_write_format_zip_file_zip64.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip_file_zip64.c +@@ -35,40 +35,6 @@ + * with a single file written to it that uses Zip64 extensions. + */ + +-static unsigned long +-bitcrc32(unsigned long c, void *_p, size_t s) +-{ +- /* This is a drop-in replacement for crc32() from zlib. +- * Libarchive should be able to correctly generate +- * uncompressed zip archives (including correct CRCs) even +- * when zlib is unavailable, and this function helps us verify +- * that. Yes, this is very, very slow and unsuitable for +- * production use, but it's correct, compact, and works well +- * enough for this particular usage. Libarchive internally +- * uses a much more efficient implementation. */ +- const unsigned char *p = _p; +- int bitctr; +- +- if (p == NULL) +- return (0); +- +- for (; s > 0; --s) { +- c ^= *p++; +- for (bitctr = 8; bitctr > 0; --bitctr) { +- if (c & 1) c = (c >> 1); +- else c = (c >> 1) ^ 0xedb88320; +- c ^= 0x80000000; +- } +- } +- return (c); +-} +- +-/* Quick and dirty: Read 2-byte and 4-byte integers from Zip file. */ +-static unsigned i2(const unsigned char *p) { return ((p[0] & 0xff) | ((p[1] & 0xff) << 8)); } +-static unsigned i4(const unsigned char *p) { return (i2(p) | (i2(p + 2) << 16)); } +-/* We're only working with small values here; ignore the 4 high bytes. */ +-static unsigned i8(const unsigned char *p) { return (i4(p)); } +- + DEFINE_TEST(test_write_format_zip_file_zip64) + { + struct archive *a; +@@ -80,7 +46,7 @@ + #endif + size_t used, buffsize = 1000000; + unsigned long crc; +- int file_perm = 00644; ++ __LA_MODE_T file_perm = 00644; + int zip_version = 45; + int zip_compression = 8; + short file_uid = 10, file_gid = 20; +@@ -134,54 +100,54 @@ + failure("End-of-central-directory begins with PK\\005\\006 signature"); + assertEqualMem(p, "PK\005\006", 4); + failure("This must be disk 0"); +- assertEqualInt(i2(p + 4), 0); ++ assertEqualInt(i2le(p + 4), 0); + failure("Central dir must start on disk 0"); +- assertEqualInt(i2(p + 6), 0); ++ assertEqualInt(i2le(p + 6), 0); + failure("All central dir entries are on this disk"); +- assertEqualInt(i2(p + 8), i2(p + 10)); +- eocd = buff + i4(p + 12) + i4(p + 16); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ eocd = buff + i4le(p + 12) + i4le(p + 16); + failure("no zip comment"); +- assertEqualInt(i2(p + 20), 0); ++ assertEqualInt(i2le(p + 20), 0); + + /* Get address of first entry in central directory. */ +- central_header = p = buff + i4(buffend - 6); +- failure("Central file record at offset %d should begin with" ++ central_header = p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" + " PK\\001\\002 signature", +- i4(buffend - 10)); ++ i4le(buffend - 10)); + + /* Verify file entry in central directory. */ + assertEqualMem(p, "PK\001\002", 4); /* Signature */ +- assertEqualInt(i2(p + 4), 3 * 256 + zip_version); /* Version made by */ +- assertEqualInt(i2(p + 6), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 8), 8); /* Flags */ +- assertEqualInt(i2(p + 10), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + zip_version); /* Version made by */ ++ assertEqualInt(i2le(p + 6), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 12), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 14), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ + crc = bitcrc32(0, file_data, sizeof(file_data)); +- assertEqualInt(i4(p + 16), crc); /* CRC-32 */ +- /* assertEqualInt(i4(p + 20), sizeof(file_data)); */ /* Compressed size */ +- assertEqualInt(i4(p + 24), sizeof(file_data)); /* Uncompressed size */ +- assertEqualInt(i2(p + 28), strlen(file_name)); /* Pathname length */ +- /* assertEqualInt(i2(p + 30), 28); */ /* Extra field length: See below */ +- assertEqualInt(i2(p + 32), 0); /* File comment length */ +- assertEqualInt(i2(p + 34), 0); /* Disk number start */ +- assertEqualInt(i2(p + 36), 0); /* Internal file attrs */ +- assertEqualInt(i4(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ +- assertEqualInt(i4(p + 42), 0); /* Offset of local header */ ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ /* assertEqualInt(i4le(p + 20), sizeof(file_data)); */ /* Compressed size */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ /* assertEqualInt(i2le(p + 30), 28); */ /* Extra field length: See below */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ + assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = central_header + 46 + strlen(file_name); +- extension_end = extension_start + i2(central_header + 30); ++ extension_end = extension_start + i2le(central_header + 30); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + /* TODO: verify 'ux' contents */ +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), t); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), t); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + + /* Note: We don't expect to see zip64 extension in the central + * directory, since the writer knows the actual full size by +@@ -191,9 +157,9 @@ + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -203,21 +169,21 @@ + + /* After Central dir, we find Zip64 eocd and Zip64 eocd locator. */ + assertEqualMem(p, "PK\006\006", 4); /* Zip64 eocd */ +- assertEqualInt(i8(p + 4), 44); /* We're using v1 Zip64 eocd */ +- assertEqualInt(i2(p + 12), 45); /* Written by Version 4.5 */ +- assertEqualInt(i2(p + 14), 45); /* Needs version 4.5 to extract */ +- assertEqualInt(i4(p + 16), 0); /* This is disk #0 */ +- assertEqualInt(i4(p + 20), 0); /* Dir starts on disk #0 */ +- assertEqualInt(i8(p + 24), 1); /* 1 entry on this disk */ +- assertEqualInt(i8(p + 32), 1); /* 1 entry total */ +- assertEqualInt(i8(p + 40), eocd - central_header); /* size of cd */ +- assertEqualInt(i8(p + 48), central_header - buff); /* start of cd */ +- p += 12 + i8(p + 4); ++ assertEqualInt(i8le(p + 4), 44); /* We're using v1 Zip64 eocd */ ++ assertEqualInt(i2le(p + 12), 45); /* Written by Version 4.5 */ ++ assertEqualInt(i2le(p + 14), 45); /* Needs version 4.5 to extract */ ++ assertEqualInt(i4le(p + 16), 0); /* This is disk #0 */ ++ assertEqualInt(i4le(p + 20), 0); /* Dir starts on disk #0 */ ++ assertEqualInt(i8le(p + 24), 1); /* 1 entry on this disk */ ++ assertEqualInt(i8le(p + 32), 1); /* 1 entry total */ ++ assertEqualInt(i8le(p + 40), eocd - central_header); /* size of cd */ ++ assertEqualInt(i8le(p + 48), central_header - buff); /* start of cd */ ++ p += 12 + i8le(p + 4); + + assertEqualMem(p, "PK\006\007", 4); /* Zip64 eocd locator */ +- assertEqualInt(i4(p + 4), 0); /* Zip64 eocd is on disk #0 */ +- assertEqualInt(i8(p + 8), eocd - buff); /* Offset of Zip64 eocd */ +- assertEqualInt(i4(p + 16), 1); /* 1 disk */ ++ assertEqualInt(i4le(p + 4), 0); /* Zip64 eocd is on disk #0 */ ++ assertEqualInt(i8le(p + 8), eocd - buff); /* Offset of Zip64 eocd */ ++ assertEqualInt(i4le(p + 16), 1); /* 1 disk */ + p += 20; + + /* Regular EOCD immediately follows Zip64 records. */ +@@ -226,48 +192,48 @@ + /* Verify local header of file entry. */ + p = local_header = buff; + assertEqualMem(p, "PK\003\004", 4); /* Signature */ +- assertEqualInt(i2(p + 4), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 6), 8); /* Flags: bit 3 = length-at-end */ +- assertEqualInt(i2(p + 8), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ +- assertEqualInt(i2(p + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ +- assertEqualInt(i4(p + 14), 0); /* CRC-32 must be 0 because of length-at-end */ +- assertEqualInt(i4(p + 18), 0); /* Compressed size must be 0 because of length-at-end */ +- assertEqualInt(i4(p + 22), 0); /* Uncompressed size must be 0 because of length-at-end. */ +- assertEqualInt(i2(p + 26), strlen(file_name)); /* Pathname length */ +- assertEqualInt(i2(p + 28), 37); /* Extra field length */ ++ assertEqualInt(i2le(p + 4), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 6), 8); /* Flags: bit 3 = length-at-end */ ++ assertEqualInt(i2le(p + 8), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 10), (tm->tm_hour * 2048) + (tm->tm_min * 32) + (tm->tm_sec / 2)); /* File time */ ++ assertEqualInt(i2le(p + 12), ((tm->tm_year - 80) * 512) + ((tm->tm_mon + 1) * 32) + tm->tm_mday); /* File date */ ++ assertEqualInt(i4le(p + 14), 0); /* CRC-32 must be 0 because of length-at-end */ ++ assertEqualInt(i4le(p + 18), 0); /* Compressed size must be 0 because of length-at-end */ ++ assertEqualInt(i4le(p + 22), 0); /* Uncompressed size must be 0 because of length-at-end. */ ++ assertEqualInt(i2le(p + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 28), 37); /* Extra field length */ + assertEqualMem(p + 30, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = local_header + 30 + strlen(file_name); +- extension_end = extension_start + i2(local_header + 28); ++ extension_end = extension_start + i2le(local_header + 28); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + assertEqualInt(p[4], 1); /* 'ux' version */ + assertEqualInt(p[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(p + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(i4le(p + 6), file_uid); /* 'Ux' UID */ + assertEqualInt(p[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(p + 11), file_gid); /* 'Ux' GID */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 11), file_gid); /* 'Ux' GID */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), t); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), t); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x6c78); /* 'xl' experimental extension header */ +- assertEqualInt(i2(p + 2), 9); /* size */ ++ assertEqualInt(i2le(p), 0x6c78); /* 'xl' experimental extension header */ ++ assertEqualInt(i2le(p + 2), 9); /* size */ + assertEqualInt(p[4], 7); /* bitmap of included fields */ +- assertEqualInt(i2(p + 5) >> 8, 3); /* system & version made by */ +- assertEqualInt(i2(p + 7), 0); /* internal file attributes */ +- assertEqualInt(i4(p + 9) >> 16 & 01777, file_perm); /* external file attributes */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i2le(p + 5) >> 8, 3); /* system & version made by */ ++ assertEqualInt(i2le(p + 7), 0); /* internal file attributes */ ++ assertEqualInt(i4le(p + 9) >> 16 & 01777, file_perm); /* external file attributes */ ++ p += 4 + i2le(p + 2); + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -277,9 +243,9 @@ + while (p < central_header && memcmp(p, "PK\007\010", 4) != 0) + ++p; + assertEqualMem(p, "PK\007\010", 4); +- assertEqualInt(i4(p + 4), crc); /* CRC-32 */ +- assertEqualInt(i8(p + 8), p - extension_end); /* compressed size */ +- assertEqualInt(i8(p + 16), sizeof(file_data)); /* uncompressed size */ ++ assertEqualInt(i4le(p + 4), crc); /* CRC-32 */ ++ assertEqualInt(i8le(p + 8), p - extension_end); /* compressed size */ ++ assertEqualInt(i8le(p + 16), sizeof(file_data)); /* uncompressed size */ + + /* Central directory should immediately follow the only entry. */ + assertEqualAddress(p + 24, central_header); +--- contrib/libarchive/libarchive/test/test_write_format_zip_large.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip_large.c +@@ -62,25 +62,6 @@ + #define GB ((int64_t)1024 * MB) + #define TB ((int64_t)1024 * GB) + +-static int64_t memory_read_skip(struct archive *, void *, int64_t request); +-static ssize_t memory_read(struct archive *, void *, const void **buff); +-static ssize_t memory_write(struct archive *, void *, const void *, size_t); +- +-static uint16_t le16(const void *_p) { +- const uint8_t *p = _p; +- return p[0] | (p[1] << 8); +-} +- +-static uint32_t le32(const void *_p) { +- const uint8_t *p = _p; +- return le16(p) | ((uint32_t)le16(p + 2) << 16); +-} +- +-static uint64_t le64(const void *_p) { +- const uint8_t *p = _p; +- return le32(p) | ((uint64_t)le32(p + 4) << 32); +-} +- + static ssize_t + memory_write(struct archive *a, void *_private, const void *buff, size_t size) + { +@@ -436,7 +417,7 @@ + eocd = p - 22; + assertEqualMem(eocd, "PK\005\006\0\0\0\0", 8); + assertEqualMem(eocd + 8, "\010\0\010\0", 4); /* 8 entries total */ +- cd_size = le32(eocd + 12); ++ cd_size = i4le(eocd + 12); + /* Start of CD offset should be 0xffffffff */ + assertEqualMem(eocd + 16, "\xff\xff\xff\xff", 4); + assertEqualMem(eocd + 20, "\0\0", 2); /* No Zip comment */ +@@ -444,25 +425,25 @@ + /* Verify Zip64 locator */ + zip64_locator = p - 42; + assertEqualMem(zip64_locator, "PK\006\007\0\0\0\0", 8); +- zip64_eocd = p - (fileblocks->filesize - le64(zip64_locator + 8)); ++ zip64_eocd = p - (fileblocks->filesize - i8le(zip64_locator + 8)); + assertEqualMem(zip64_locator + 16, "\001\0\0\0", 4); + + /* Verify Zip64 end-of-cd record. */ + assert(zip64_eocd == p - 98); + assertEqualMem(zip64_eocd, "PK\006\006", 4); +- assertEqualInt(44, le64(zip64_eocd + 4)); // Size of EoCD record - 12 ++ assertEqualInt(44, i8le(zip64_eocd + 4)); // Size of EoCD record - 12 + assertEqualMem(zip64_eocd + 12, "\055\0", 2); // Made by version: 45 + assertEqualMem(zip64_eocd + 14, "\055\0", 2); // Requires version: 45 + assertEqualMem(zip64_eocd + 16, "\0\0\0\0", 4); // This disk + assertEqualMem(zip64_eocd + 20, "\0\0\0\0", 4); // Total disks +- assertEqualInt(8, le64(zip64_eocd + 24)); // Entries on this disk +- assertEqualInt(8, le64(zip64_eocd + 32)); // Total entries +- cd_size = le64(zip64_eocd + 40); +- cd_start = p - (fileblocks->filesize - le64(zip64_eocd + 48)); ++ assertEqualInt(8, i8le(zip64_eocd + 24)); // Entries on this disk ++ assertEqualInt(8, i8le(zip64_eocd + 32)); // Total entries ++ cd_size = i8le(zip64_eocd + 40); ++ cd_start = p - (fileblocks->filesize - i8le(zip64_eocd + 48)); + + assert(cd_start + cd_size == zip64_eocd); + +- assertEqualInt(le64(zip64_eocd + 48) // Start of CD ++ assertEqualInt(i8le(zip64_eocd + 48) // Start of CD + + cd_size + + 56 // Size of Zip64 EOCD + + 20 // Size of Zip64 locator +--- contrib/libarchive/libarchive/test/test_write_format_zip_stream.c.orig ++++ contrib/libarchive/libarchive/test/test_write_format_zip_stream.c +@@ -31,38 +31,6 @@ + * written in streaming mode WITHOUT Zip64 extensions enabled. + */ + +-static unsigned long +-bitcrc32(unsigned long c, void *_p, size_t s) +-{ +- /* This is a drop-in replacement for crc32() from zlib. +- * Libarchive should be able to correctly generate +- * uncompressed zip archives (including correct CRCs) even +- * when zlib is unavailable, and this function helps us verify +- * that. Yes, this is very, very slow and unsuitable for +- * production use, but it's correct, compact, and works well +- * enough for this particular usage. Libarchive internally +- * uses a much more efficient implementation. */ +- const unsigned char *p = _p; +- int bitctr; +- +- if (p == NULL) +- return (0); +- +- for (; s > 0; --s) { +- c ^= *p++; +- for (bitctr = 8; bitctr > 0; --bitctr) { +- if (c & 1) c = (c >> 1); +- else c = (c >> 1) ^ 0xedb88320; +- c ^= 0x80000000; +- } +- } +- return (c); +-} +- +-/* Quick and dirty: Read 2-byte and 4-byte integers from Zip file. */ +-static unsigned i2(const unsigned char *p) { return ((p[0] & 0xff) | ((p[1] & 0xff) << 8)); } +-static unsigned i4(const unsigned char *p) { return (i2(p) | (i2(p + 2) << 16)); } +- + DEFINE_TEST(test_write_format_zip_stream) + { + struct archive *a; +@@ -70,7 +38,7 @@ + size_t used, buffsize = 1000000; + unsigned long crc; + unsigned long compressed_size = 0; +- int file_perm = 00644; ++ __LA_MODE_T file_perm = 00644; + #ifdef HAVE_ZLIB_H + int zip_version = 20; + #else +@@ -120,58 +88,58 @@ + failure("End-of-central-directory begins with PK\\005\\006 signature"); + assertEqualMem(p, "PK\005\006", 4); + failure("This must be disk 0"); +- assertEqualInt(i2(p + 4), 0); ++ assertEqualInt(i2le(p + 4), 0); + failure("Central dir must start on disk 0"); +- assertEqualInt(i2(p + 6), 0); ++ assertEqualInt(i2le(p + 6), 0); + failure("All central dir entries are on this disk"); +- assertEqualInt(i2(p + 8), i2(p + 10)); +- eocd = buff + i4(p + 12) + i4(p + 16); ++ assertEqualInt(i2le(p + 8), i2le(p + 10)); ++ eocd = buff + i4le(p + 12) + i4le(p + 16); + failure("no zip comment"); +- assertEqualInt(i2(p + 20), 0); ++ assertEqualInt(i2le(p + 20), 0); + + /* Get address of first entry in central directory. */ +- central_header = p = buff + i4(buffend - 6); +- failure("Central file record at offset %d should begin with" ++ central_header = p = buff + i4le(buffend - 6); ++ failure("Central file record at offset %u should begin with" + " PK\\001\\002 signature", +- i4(buffend - 10)); ++ i4le(buffend - 10)); + + /* Verify file entry in central directory. */ + assertEqualMem(p, "PK\001\002", 4); /* Signature */ +- assertEqualInt(i2(p + 4), 3 * 256 + zip_version); /* Version made by */ +- assertEqualInt(i2(p + 6), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 8), 8); /* Flags */ +- assertEqualInt(i2(p + 10), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 12), 0); /* File time */ +- assertEqualInt(i2(p + 14), 33); /* File date */ ++ assertEqualInt(i2le(p + 4), 3 * 256 + zip_version); /* Version made by */ ++ assertEqualInt(i2le(p + 6), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 8), 8); /* Flags */ ++ assertEqualInt(i2le(p + 10), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 12), 0); /* File time */ ++ assertEqualInt(i2le(p + 14), 33); /* File date */ + crc = bitcrc32(0, file_data, sizeof(file_data)); +- assertEqualInt(i4(p + 16), crc); /* CRC-32 */ +- compressed_size = i4(p + 20); /* Compressed size */ +- assertEqualInt(i4(p + 24), sizeof(file_data)); /* Uncompressed size */ +- assertEqualInt(i2(p + 28), strlen(file_name)); /* Pathname length */ +- /* assertEqualInt(i2(p + 30), 28); */ /* Extra field length: See below */ +- assertEqualInt(i2(p + 32), 0); /* File comment length */ +- assertEqualInt(i2(p + 34), 0); /* Disk number start */ +- assertEqualInt(i2(p + 36), 0); /* Internal file attrs */ +- assertEqualInt(i4(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ +- assertEqualInt(i4(p + 42), 0); /* Offset of local header */ ++ assertEqualInt(i4le(p + 16), crc); /* CRC-32 */ ++ compressed_size = i4le(p + 20); /* Compressed size */ ++ assertEqualInt(i4le(p + 24), sizeof(file_data)); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 28), strlen(file_name)); /* Pathname length */ ++ /* assertEqualInt(i2le(p + 30), 28); */ /* Extra field length: See below */ ++ assertEqualInt(i2le(p + 32), 0); /* File comment length */ ++ assertEqualInt(i2le(p + 34), 0); /* Disk number start */ ++ assertEqualInt(i2le(p + 36), 0); /* Internal file attrs */ ++ assertEqualInt(i4le(p + 38) >> 16 & 01777, file_perm); /* External file attrs */ ++ assertEqualInt(i4le(p + 42), 0); /* Offset of local header */ + assertEqualMem(p + 46, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = central_header + 46 + strlen(file_name); +- extension_end = extension_start + i2(central_header + 30); ++ extension_end = extension_start + i2le(central_header + 30); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + assertEqualInt(p[4], 1); /* 'ux' version */ + assertEqualInt(p[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(p + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(i4le(p + 6), file_uid); /* 'Ux' UID */ + assertEqualInt(p[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(p + 11), file_gid); /* 'Ux' GID */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 11), file_gid); /* 'Ux' GID */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), 0); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), 0); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + + /* Note: We don't expect to see zip64 extension in the central + * directory, since the writer knows the actual full size by +@@ -181,9 +149,9 @@ + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -195,40 +163,40 @@ + /* Verify local header of file entry. */ + p = local_header = buff; + assertEqualMem(p, "PK\003\004", 4); /* Signature */ +- assertEqualInt(i2(p + 4), zip_version); /* Version needed to extract */ +- assertEqualInt(i2(p + 6), 8); /* Flags */ +- assertEqualInt(i2(p + 8), zip_compression); /* Compression method */ +- assertEqualInt(i2(p + 10), 0); /* File time */ +- assertEqualInt(i2(p + 12), 33); /* File date */ +- assertEqualInt(i4(p + 14), 0); /* CRC-32 */ +- assertEqualInt(i4(p + 18), 0); /* Compressed size */ +- assertEqualInt(i4(p + 22), 0); /* Uncompressed size */ +- assertEqualInt(i2(p + 26), strlen(file_name)); /* Pathname length */ +- assertEqualInt(i2(p + 28), 24); /* Extra field length */ ++ assertEqualInt(i2le(p + 4), zip_version); /* Version needed to extract */ ++ assertEqualInt(i2le(p + 6), 8); /* Flags */ ++ assertEqualInt(i2le(p + 8), zip_compression); /* Compression method */ ++ assertEqualInt(i2le(p + 10), 0); /* File time */ ++ assertEqualInt(i2le(p + 12), 33); /* File date */ ++ assertEqualInt(i4le(p + 14), 0); /* CRC-32 */ ++ assertEqualInt(i4le(p + 18), 0); /* Compressed size */ ++ assertEqualInt(i4le(p + 22), 0); /* Uncompressed size */ ++ assertEqualInt(i2le(p + 26), strlen(file_name)); /* Pathname length */ ++ assertEqualInt(i2le(p + 28), 24); /* Extra field length */ + assertEqualMem(p + 30, file_name, strlen(file_name)); /* Pathname */ + p = extension_start = local_header + 30 + strlen(file_name); +- extension_end = extension_start + i2(local_header + 28); ++ extension_end = extension_start + i2le(local_header + 28); + +- assertEqualInt(i2(p), 0x7875); /* 'ux' extension header */ +- assertEqualInt(i2(p + 2), 11); /* 'ux' size */ ++ assertEqualInt(i2le(p), 0x7875); /* 'ux' extension header */ ++ assertEqualInt(i2le(p + 2), 11); /* 'ux' size */ + assertEqualInt(p[4], 1); /* 'ux' version */ + assertEqualInt(p[5], 4); /* 'ux' uid size */ +- assertEqualInt(i4(p + 6), file_uid); /* 'Ux' UID */ ++ assertEqualInt(i4le(p + 6), file_uid); /* 'Ux' UID */ + assertEqualInt(p[10], 4); /* 'ux' gid size */ +- assertEqualInt(i4(p + 11), file_gid); /* 'Ux' GID */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 11), file_gid); /* 'Ux' GID */ ++ p += 4 + i2le(p + 2); + +- assertEqualInt(i2(p), 0x5455); /* 'UT' extension header */ +- assertEqualInt(i2(p + 2), 5); /* 'UT' size */ ++ assertEqualInt(i2le(p), 0x5455); /* 'UT' extension header */ ++ assertEqualInt(i2le(p + 2), 5); /* 'UT' size */ + assertEqualInt(p[4], 1); /* 'UT' flags */ +- assertEqualInt(i4(p + 5), 0); /* 'UT' mtime */ +- p += 4 + i2(p + 2); ++ assertEqualInt(i4le(p + 5), 0); /* 'UT' mtime */ ++ p += 4 + i2le(p + 2); + + /* Just in case: Report any extra extensions. */ + while (p < extension_end) { +- failure("Unexpected extension 0x%04X", i2(p)); ++ failure("Unexpected extension 0x%04X", i2le(p)); + assert(0); +- p += 4 + i2(p + 2); ++ p += 4 + i2le(p + 2); + } + + /* Should have run exactly to end of extra data. */ +@@ -241,9 +209,9 @@ + data_end = p; + assertEqualInt(data_end - data_start, compressed_size); + assertEqualMem(p, "PK\007\010", 4); +- assertEqualInt(i4(p + 4), crc); /* CRC-32 */ +- assertEqualInt(i4(p + 8), compressed_size); /* compressed size */ +- assertEqualInt(i4(p + 12), sizeof(file_data)); /* uncompressed size */ ++ assertEqualInt(i4le(p + 4), crc); /* CRC-32 */ ++ assertEqualInt(i4le(p + 8), compressed_size); /* compressed size */ ++ assertEqualInt(i4le(p + 12), sizeof(file_data)); /* uncompressed size */ + + /* Central directory should immediately follow the data descriptor. */ + assert(p + 16 == central_header); +--- contrib/libarchive/libarchive_fe/passphrase.c.orig ++++ contrib/libarchive/libarchive_fe/passphrase.c +@@ -119,7 +119,7 @@ + return (buf); + } + +-#else /* _WIN32 && !__CYGWIN__ */ ++#elif defined(HAVE_TCGETATTR) && defined(HAVE_TCSETATTR) + + #include <assert.h> + #include <ctype.h> +@@ -314,7 +314,13 @@ + errno = save_errno; + return(nr == -1 ? NULL : buf); + } +-#endif /* _WIN32 && !__CYGWIN__ */ ++#else ++static char * ++readpassphrase(const char *prompt, char *buf, size_t bufsiz, int flags) ++{ ++ return (NULL); ++} ++#endif + #endif /* HAVE_READPASSPHRASE */ + + char * +--- contrib/libarchive/tar/bsdtar.1.orig ++++ contrib/libarchive/tar/bsdtar.1 +@@ -32,19 +32,22 @@ + .Nm + creates and manipulates streaming archive files. + This implementation can extract from tar, pax, cpio, zip, jar, ar, xar, +-rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip, +-7-zip, and shar archives. ++rar, rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, ++cpio, ar, zip, 7-zip, and shar archives. + .Pp + The first synopsis form shows a + .Dq bundled + option word. + This usage is provided for compatibility with historical implementations. +-See COMPATIBILITY below for details. ++See ++.Sx COMPATIBILITY ++below for details. + .Pp + The other synopsis forms show the preferred usage. + The first option to + .Nm + is a mode indicator from the following list: ++.Pp + .Bl -tag -compact -width indent + .It Fl c + Create a new archive containing the specified items. +@@ -109,16 +112,22 @@ + The specified archive is opened and the entries + in it will be appended to the current archive. + As a simple example, ++.Pp + .Dl Nm Fl c Fl f Pa - Pa newfile Cm @ Ns Pa original.tar ++.Pp + writes a new archive to standard output containing a file + .Pa newfile + and all of the entries from + .Pa original.tar . + In contrast, ++.Pp + .Dl Nm Fl c Fl f Pa - Pa newfile Pa original.tar ++.Pp + creates a new archive with only two entries. + Similarly, ++.Pp + .Dl Nm Fl czf Pa - Fl Fl format Cm pax Cm @ Ns Pa - ++.Pp + reads an archive from standard input (whose format will be determined + automatically) and converts it into a gzip-compressed + pax-format archive on stdout. +@@ -130,19 +139,29 @@ + Use the archive suffix to decide a set of the format and + the compressions. + As a simple example, ++.Pp + .Dl Nm Fl a Fl cf Pa archive.tgz source.c source.h ++.Pp + creates a new archive with restricted pax format and gzip compression, ++.Pp + .Dl Nm Fl a Fl cf Pa archive.tar.bz2.uu source.c source.h ++.Pp + creates a new archive with restricted pax format and bzip2 compression + and uuencode compression, ++.Pp + .Dl Nm Fl a Fl cf Pa archive.zip source.c source.h ++.Pp + creates a new archive with zip format, ++.Pp + .Dl Nm Fl a Fl jcf Pa archive.tgz source.c source.h ++.Pp + ignores the + .Dq -j + option, and creates a new archive with restricted pax format + and gzip compression, ++.Pp + .Dl Nm Fl a Fl jcf Pa archive.xxx source.c source.h ++.Pp + if it is unknown suffix or no suffix, creates a new archive with + restricted pax format and bzip2 compression. + .It Fl Fl acls +@@ -177,6 +196,11 @@ + to the current directory after processing any + .Fl C + options and before extracting any files. ++.It Fl Fl clamp-mtime ++(use with ++.Fl Fl mtime ) ++Only set the modification time if the file is newer than the date specified in ++.Fl Fl mtime . + .It Fl Fl clear-nochange-fflags + (x mode only) + Before removing file system objects to replace them, clear platform-specific +@@ -295,7 +319,9 @@ + .Fl Fl include + option is especially useful when filtering archives. + For example, the command ++.Pp + .Dl Nm Fl c Fl f Pa new.tar Fl Fl include='*foo*' Cm @ Ns Pa old.tgz ++.Pp + creates a new archive + .Pa new.tar + containing only the entries from +@@ -393,7 +419,11 @@ + .Nm + is run in x mode as root. + Currently supported only for pax formats +-(including "pax restricted", the default tar format for bsdtar.) ++.Po including "pax restricted", the default tar format for ++.Nm bsdtar Pc ++.It Fl Fl mtime Ar date ++(c, r, u modes only) ++Set the modification times of added files to the specified date. + .It Fl n , Fl Fl norecurse , Fl Fl no-recursion + Do not operate recursively on the content of directories. + .It Fl Fl newer Ar date +@@ -450,7 +480,7 @@ + .Nm + is run as non-root in x mode. + .It Fl Fl no-mac-metadata +-(x mode only) ++(c, r, u and x mode only) + Mac OS X specific. + Do not archive or extract ACLs and extended file attributes + using +@@ -556,6 +586,7 @@ + These are passed to the modules that handle particular + formats to control how those formats will behave. + Each option has one of the following forms: ++.Pp + .Bl -tag -compact -width indent + .It Ar key=value + The key will be set to the specified value in every module that supports it. +@@ -579,6 +610,7 @@ + .Xr archive_read_set_options 3 . + .Pp + Examples of supported options: ++.Pp + .Bl -tag -compact -width indent + .It Cm iso9660:joliet + Support Joliet extensions. +@@ -738,6 +770,7 @@ + .Fl i , Fl Fl ignore-zeros + option of GNU tar. + .El ++.Pp + If a provided option is not supported by any module, that + is a fatal error. + .It Fl P , Fl Fl absolute-paths +@@ -910,7 +943,9 @@ + .Nm + to remove intervening directory symlinks instead of + reporting an error. +-See the SECURITY section below for more details. ++See the ++.Sx SECURITY ++section below for more details. + .It Fl Fl uid Ar id + Use the provided user id number and ignore the user + name from the archive. +@@ -1048,24 +1083,31 @@ + .Ar source.c + and + .Ar source.h : ++.Pp + .Dl Nm Fl czf Pa file.tar.gz Pa source.c Pa source.h + .Pp + To view a detailed table of contents for this + archive: ++.Pp + .Dl Nm Fl tvf Pa file.tar.gz + .Pp + To extract all entries from the archive on + the default tape drive: ++.Pp + .Dl Nm Fl x + .Pp + To examine the contents of an ISO 9660 cdrom image: ++.Pp + .Dl Nm Fl tf Pa image.iso + .Pp + To move file hierarchies, invoke + .Nm + as ++.Pp + .Dl Nm Fl cf Pa - Fl C Pa srcdir \&. | Nm Fl xpf Pa - Fl C Pa destdir ++.Pp + or more traditionally ++.Pp + .Dl cd srcdir \&; Nm Fl cf Pa - \&. | ( cd destdir \&; Nm Fl xpf Pa - ) + .Pp + In create mode, the list of files and directories to be archived +@@ -1074,7 +1116,9 @@ + and archive inclusions of the form + .Cm @ Ns Pa archive-file . + For example, the command line ++.Pp + .Dl Nm Fl c Fl f Pa new.tar Pa foo1 Cm @ Ns Pa old.tgz Cm -C Ns Pa /tmp Pa foo2 ++.Pp + will create a new archive + .Pa new.tar . + .Nm +@@ -1122,9 +1166,13 @@ + and + .Cm uid + keywords: ++.Pp + .Dl Nm Fl cf Pa file.tar Fl Fl format=mtree Fl Fl options='!all,type,time,uid' Pa dir ++.Pp + or you can set the compression level used by gzip or xz compression: ++.Pp + .Dl Nm Fl czf Pa file.tar Fl Fl options='compression-level=9' . ++.Pp + For more details, see the explanation of the + .Fn archive_read_set_options + and +@@ -1142,7 +1190,9 @@ + The order of the arguments must match the order + of the corresponding characters in the bundled command word. + For example, ++.Pp + .Dl Nm Cm tbf 32 Pa file.tar ++.Pp + specifies three flags + .Cm t , + .Cm b , +@@ -1240,10 +1290,13 @@ + .Nm + will refuse to extract the entry. + .El ++.Pp + To protect yourself, you should be wary of any archives that + come from untrusted sources. + You should examine the contents of an archive with ++.Pp + .Dl Nm Fl tf Pa filename ++.Pp + before extraction. + You should use the + .Fl k +@@ -1294,7 +1347,7 @@ + There have been numerous other implementations, + many of which extended the file format. + John Gilmore's +-.Nm pdtar ++.Sy pdtar + public-domain implementation (circa November, 1987) + was quite influential, and formed the basis of GNU tar. + GNU tar was included as the standard system tar +@@ -1347,8 +1400,11 @@ + The compression and decompression is implemented internally, so + there may be insignificant differences between the compressed output + generated by ++.Pp + .Dl Nm Fl czf Pa - file ++.Pp + and that generated by ++.Pp + .Dl Nm Fl cf Pa - file | Nm gzip + .Pp + The default should be to read and write archives to the standard I/O paths, +@@ -1393,5 +1449,5 @@ + Converting between dissimilar archive formats (such as tar and cpio) using the + .Cm @ Ns Pa - + convention can cause hard link information to be lost. +-(This is a consequence of the incompatible ways that different archive +-formats store hardlink information.) ++This is a consequence of the incompatible ways that different archive ++formats store hardlink information. +--- contrib/libarchive/tar/bsdtar.c.orig ++++ contrib/libarchive/tar/bsdtar.c +@@ -7,6 +7,9 @@ + + #include "bsdtar_platform.h" + ++#ifdef HAVE_LIMITS_H ++#include <limits.h> ++#endif + #ifdef HAVE_SYS_PARAM_H + #include <sys/param.h> + #endif +@@ -101,7 +104,7 @@ + static __LA_NORETURN void long_help(void); + static void only_mode(struct bsdtar *, const char *opt, + const char *valid); +-static void set_mode(struct bsdtar *, char opt); ++static void set_mode(struct bsdtar *, int opt); + static __LA_NORETURN void version(void); + + /* A basic set of security flags to request from libarchive. */ +@@ -136,13 +139,14 @@ + { + struct bsdtar *bsdtar, bsdtar_storage; + int opt, t; +- char compression, compression2; ++ int compression, compression2; + const char *compression_name, *compression2_name; + const char *compress_program; + char *tptr, *uptr; + char possible_help_request; + char buff[16]; + long l; ++ time_t now; + + /* + * Use a pointer for consistency, but stack-allocated storage +@@ -157,6 +161,7 @@ + compression = compression2 = '\0'; + compression_name = compression2_name = NULL; + compress_program = NULL; ++ time(&now); + + #if defined(HAVE_SIGACTION) + { /* Set up signal handling. */ +@@ -331,7 +336,7 @@ + if (archive_match_exclude_pattern( + bsdtar->matching, bsdtar->argument) != ARCHIVE_OK) + lafe_errc(1, 0, +- "Couldn't exclude %s\n", bsdtar->argument); ++ "Couldn't exclude %s", bsdtar->argument); + break; + case OPTION_EXCLUDE_VCS: /* GNU tar */ + for(t=0; vcs_files[t]; t++) { +@@ -339,7 +344,7 @@ + bsdtar->matching, + vcs_files[t]) != ARCHIVE_OK) + lafe_errc(1, 0, "Couldn't " +- "exclude %s\n", vcs_files[t]); ++ "exclude %s", vcs_files[t]); + } + break; + case OPTION_FFLAGS: +@@ -673,6 +678,16 @@ + } + } + break; ++ case OPTION_MTIME: /* GNU tar */ ++ bsdtar->has_mtime = 1; ++ bsdtar->mtime = archive_parse_date(now, bsdtar->argument); ++ if (bsdtar->mtime == (time_t)-1) { ++ lafe_errc(1, 0, "Invalid argument to --mtime (bad date string)"); ++ } ++ break; ++ case OPTION_CLAMP_MTIME: /* GNU tar */ ++ bsdtar->clamp_mtime = 1; ++ break; + #if 0 + /* + * The common BSD -P option is not necessary, since +@@ -740,6 +755,8 @@ + bsdtar->strip_components = (int)l; + break; + case 'T': /* GNU tar */ ++ if (bsdtar->names_from_file) ++ lafe_errc(1, 0, "Multiple --files-from/-T options are not supported"); + bsdtar->names_from_file = bsdtar->argument; + break; + case 't': /* SUSv2 */ +@@ -935,7 +952,7 @@ + switch (compression) { + case 'J': case 'j': case 'y': case 'Z': case 'z': + strcpy(buff, "-?"); +- buff[1] = compression; ++ buff[1] = (char)compression; + break; + default: + strcpy(buff, "--"); +@@ -959,6 +976,10 @@ + only_mode(bsdtar, buff, "cru"); + } + ++ if (!bsdtar->has_mtime && bsdtar->clamp_mtime) ++ lafe_errc(1, 0, ++ "--clamp-mtime is not valid without --mtime <date>"); ++ + /* + * When creating an archive from a directory tree, the directory + * walking code will already avoid entering directories when +@@ -1005,7 +1026,7 @@ + } + + static void +-set_mode(struct bsdtar *bsdtar, char opt) ++set_mode(struct bsdtar *bsdtar, int opt) + { + if (bsdtar->mode != '\0' && bsdtar->mode != opt) + lafe_errc(1, 0, +@@ -1063,6 +1084,8 @@ + " -z, -j, -J, --lzma Compress archive with gzip/bzip2/xz/lzma\n" + " --format {ustar|pax|cpio|shar} Select archive format\n" + " --exclude <pattern> Skip files that match pattern\n" ++ " --mtime <date> Set modification times for added files\n" ++ " --clamp-mtime Only set modification times for files newer than --mtime\n" + " -C <dir> Change to <dir> before processing remaining files\n" + " @<archive> Add entries from <archive> to output\n" + "List: %p -t [options] [<patterns>]\n" +--- contrib/libarchive/tar/bsdtar.h.orig ++++ contrib/libarchive/tar/bsdtar.h +@@ -42,10 +42,13 @@ + int uid; /* --uid */ + const char *uname; /* --uname */ + const char *passphrase; /* --passphrase */ +- char mode; /* Program mode: 'c', 't', 'r', 'u', 'x' */ ++ int mode; /* Program mode: 'c', 't', 'r', 'u', 'x' */ + char symlink_mode; /* H or L, per BSD conventions */ + const char *option_options; /* --options */ + char day_first; /* show day before month in -tv output */ ++ char has_mtime; /* --mtime exists (0 or 1) */ ++ char clamp_mtime; /* --clamp-mtime (0 or 1)*/ ++ time_t mtime; /* --mtime */ + struct creation_set *cset; + + /* Option parser state */ +@@ -114,7 +117,7 @@ + + /* Fake short equivalents for long options that otherwise lack them. */ + enum { +- OPTION_ACLS = 1, ++ OPTION_ACLS = 256, + OPTION_B64ENCODE, + OPTION_CHECK_LINKS, + OPTION_CHROOT, +@@ -175,14 +178,17 @@ + OPTION_VERSION, + OPTION_XATTRS, + OPTION_ZSTD, ++ OPTION_MTIME, ++ OPTION_CLAMP_MTIME, + }; + + int bsdtar_getopt(struct bsdtar *); + void do_chdir(struct bsdtar *); + int edit_pathname(struct bsdtar *, struct archive_entry *); ++void edit_mtime(struct bsdtar *, struct archive_entry *); + int need_report(void); + int pathcmp(const char *a, const char *b); +-void safe_fprintf(FILE *, const char *fmt, ...) __LA_PRINTF(2, 3); ++void safe_fprintf(FILE * restrict, const char * restrict fmt, ...) __LA_PRINTF(2, 3); + void set_chdir(struct bsdtar *, const char *newdir); + const char *tar_i64toa(int64_t); + void tar_mode_c(struct bsdtar *bsdtar); +--- contrib/libarchive/tar/cmdline.c.orig ++++ contrib/libarchive/tar/cmdline.c +@@ -57,6 +57,7 @@ + { "cd", 1, 'C' }, + { "check-links", 0, OPTION_CHECK_LINKS }, + { "chroot", 0, OPTION_CHROOT }, ++ { "clamp-mtime", 0, OPTION_CLAMP_MTIME }, + { "clear-nochange-fflags", 0, OPTION_CLEAR_NOCHANGE_FFLAGS }, + { "compress", 0, 'Z' }, + { "confirmation", 0, 'w' }, +@@ -95,6 +96,7 @@ + { "lzop", 0, OPTION_LZOP }, + { "mac-metadata", 0, OPTION_MAC_METADATA }, + { "modification-time", 0, 'm' }, ++ { "mtime", 1, OPTION_MTIME }, + { "newer", 1, OPTION_NEWER_CTIME }, + { "newer-ctime", 1, OPTION_NEWER_CTIME }, + { "newer-ctime-than", 1, OPTION_NEWER_CTIME_THAN }, +--- contrib/libarchive/tar/subst.c.orig ++++ contrib/libarchive/tar/subst.c +@@ -229,6 +229,7 @@ + + if (rule->from_begin && *result) { + realloc_strcat(result, name); ++ if (buffer) buffer[0] = 0; + realloc_strcat(&buffer, *result); + name = buffer; + (*result)[0] = 0; +--- /dev/null ++++ contrib/libarchive/tar/test/test_list_item.c +@@ -0,0 +1,63 @@ ++/*-SPDX-License-Identifier: BSD-2-Clause ++ * Copyright (c) 2024 Tarsnap Backup Inc. ++ * All rights reserved. ++ */ ++#include "test.h" ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++#include <winbase.h> ++#endif ++ ++/* These lists of files come from 'test_list_archive.tar.uu', which includes ++ * the script which generated it. */ ++ ++static const char *tf_out = ++"f\n" ++"hl\n" ++"sl\n" ++"d/\n" ++"d/f\n" ++"fake-username\n" ++"fake-groupname\n" ++"f\n"; ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++static const char *tvf_out = ++"-rw-r--r-- 0 1000 1000 0 Jan 01 1980 f\n" ++"hrw-r--r-- 0 1000 1000 0 Jan 01 1980 hl link to f\n" ++"lrwxr-xr-x 0 1000 1000 0 Jan 01 1980 sl -> f\n" ++"drwxrwxrwx 0 1000 1000 0 Jan 01 1980 d/\n" ++"-r-------- 0 1000 1000 0 Jan 01 1980 d/f\n" ++"-rw-r--r-- 0 long-fake-uname 1000 0 Jan 01 1980 fake-username\n" ++"-rw-r--r-- 0 1000 long-fake-gname 0 Jan 01 1980 fake-groupname\n" ++"-rw-r--r-- 0 1000 1000 0 Jan 01 1980 f\n"; ++#else ++static const char *tvf_out = ++"-rw-r--r-- 0 1000 1000 0 Jan 1 1980 f\n" ++"hrw-r--r-- 0 1000 1000 0 Jan 1 1980 hl link to f\n" ++"lrwxr-xr-x 0 1000 1000 0 Jan 1 1980 sl -> f\n" ++"drwxrwxrwx 0 1000 1000 0 Jan 1 1980 d/\n" ++"-r-------- 0 1000 1000 0 Jan 1 1980 d/f\n" ++"-rw-r--r-- 0 long-fake-uname 1000 0 Jan 1 1980 fake-username\n" ++"-rw-r--r-- 0 1000 long-fake-gname 0 Jan 1 1980 fake-groupname\n" ++"-rw-r--r-- 0 1000 1000 0 Jan 1 1980 f\n"; ++#endif ++ ++DEFINE_TEST(test_list_item) ++{ ++ extract_reference_file("test_list_item.tar"); ++ ++ /* Run 'tf' and check output. */ ++ assertEqualInt(0, ++ systemf("%s tf test_list_item.tar >tf.out 2>tf.err", testprog)); ++ failure("'t' mode should write results to stdout"); ++ assertTextFileContents(tf_out, "tf.out"); ++ assertEmptyFile("tf.err"); ++ ++ /* Run 'tvf' and check output. */ ++ assertEqualInt(0, ++ systemf("%s tvf test_list_item.tar >tvf.out 2>tvf.err", testprog)); ++ failure("'t' mode with 'v' should write more results to stdout"); ++ assertTextFileContents(tvf_out, "tvf.out"); ++ assertEmptyFile("tvf.err"); ++} +--- /dev/null ++++ contrib/libarchive/tar/test/test_list_item.tar.uu +@@ -0,0 +1,169 @@ ++begin 644 test_list_item.tar ++M9@`````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````#`P,#8T-"``,#`Q-S4P(``P,#$W-3`@`#`P,#`P,#`P,#`P ++M(#`R,C8S-C$S,C`Q(#`P-S0P-P`@,``````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````!U<W1A<@`P,``````` ++M```````````````````````````````````````````````````````````` ++M```````````````````P,#`P,#`@`#`P,#`P,"`````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````!H;``````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````,#`P-C0T(``P,#$W-3`@`#`P ++M,3<U,"``,#`P,#`P,#`P,#`@,#(R-C,V,3,R,#$@,#`W-S,T`"`Q9@`````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````'5S=&%R`#`P```````````````````````````````````````````` ++M`````````````````````````````````````````#`P,#`P,"``,#`P,#`P ++M(``````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````'-L```````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````P ++M,#`W-34@`#`P,3<U,"``,#`Q-S4P(``P,#`P,#`P,#`P,"`P,C(V,S8Q,S(P ++M,2`P,#<W-3,`(#)F```````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````=7-T87(`,#`````````````````````` ++M```````````````````````````````````````````````````````````` ++M````,#`P,#`P(``P,#`P,#`@```````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````9"\````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````#`P,#<W-R``,#`Q-S4P(``P,#$W-3`@`#`P,#`P ++M,#`P,#`P(#`R,C8S-C$S,C`Q(#`P-S4P,``@-0`````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````````````!U<W1A<@`P ++M,``````````````````````````````````````````````````````````` ++M```````````````````````````P,#`P,#`@`#`P,#`P,"`````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````!D+V8````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````````````,#`P-#`P(``P,#$W ++M-3`@`#`P,3<U,"``,#`P,#`P,#`P,#`@,#(R-C,V,3,R,#$@,#`W-C(P`"`P ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````'5S=&%R`#`P```````````````````````````````````` ++M`````````````````````````````````````````````````#`P,#`P,"`` ++M,#`P,#`P(``````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````````````````````````````&9A:V4M ++M=7-E<FYA;64````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````P,#`V-#0@`#`P,3<U,"``,#`Q-S4P(``P,#`P,#`P,#`P,"`P,C(V ++M,S8Q,S(P,2`P,30U-S0`(#`````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````=7-T87(`,#!L;VYG+69A:V4M ++M=6YA;64````````````````````````````````````````````````````` ++M````````````,#`P,#`P(``P,#`P,#`@```````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````9F%K92UG<F]U<&YA;64````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````````````#`P,#8T-"``,#`Q-S4P(``P,#$W-3`@ ++M`#`P,#`P,#`P,#`P(#`R,C8S-C$S,C`Q(#`Q-#<S-``@,``````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````````````````````````!U ++M<W1A<@`P,```````````````````````````````````````````;&]N9RUF ++M86ME+6=N86UE```````````````````````P,#`P,#`@`#`P,#`P,"`````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M``````````````````````````````````````!F```````````````````` ++M```````````````````````````````````````````````````````````` ++M````````````````````````````````````````````````````,#`P-C0T ++M(``P,#$W-3`@`#`P,3<U,"``,#`P,#`P,#`P,#`@,#(R-C,V,3,R,#$@,#`W ++M-#`W`"`P```````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M`````````````````````'5S=&%R`#`P```````````````````````````` ++M`````````````````````````````````````````````````````````#`P ++M,#`P,"``,#`P,#`P(``````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++M```````````````````````````````````````````````````````````` ++C```````````````````````````````````````````````` ++` ++end ++#!/bin/sh ++ ++set -e ++ ++mkdir test-list-item ++cd test-list-item ++ ++# Create files ++touch f ++ln f hl ++ln -s f sl ++ ++mkdir d ++chmod 777 d ++touch d/f ++chmod 400 d/f ++ ++touch fake-username ++touch fake-groupname ++ ++# Set all the dates to 1980 ++touch -d "1980-01-01T00:00:01" -h -a -m ./* ++touch -d "1980-01-01T00:00:01" -h -a -m d/* ++ ++# Archive ++tar -cf test_list_item.tar \ ++ --uid 1000 --gid 1000 \ ++ f hl sl d ++ ++# Append to archive, with fake username and groupname ++tar --append -f test_list_item.tar \ ++ --uid 1000 --gid 1000 \ ++ --uname long-fake-uname \ ++ fake-username ++tar --append -f test_list_item.tar \ ++ --uid 1000 --gid 1000 \ ++ --gname long-fake-gname \ ++ fake-groupname ++# Add f again, to print with the expanded field lengths ++tar --append -f test_list_item.tar \ ++ --uid 1000 --gid 1000 \ ++ f ++ ++# uuencode for the test suite ++uuencode -o test_list_item.tar.uu test_list_item.tar test_list_item.tar ++ ++# Append this script, and overwrite file in git ++cat ../"$0" >> test_list_item.tar.uu ++mv test_list_item.tar.uu ../ ++ ++# Don't delete the temporary directory; leave that up to the developer to ++# delete manually when they want to. +--- contrib/libarchive/tar/test/test_option_C_mtree.c.orig ++++ contrib/libarchive/tar/test/test_option_C_mtree.c +@@ -17,7 +17,7 @@ + p0 = NULL; + char *content = "./foo type=file uname=root gname=root mode=0755\n"; + char *filename = "output.tar"; +-#if defined(_WIN32) && !defined(CYGWIN) ++#if defined(_WIN32) && !defined(__CYGWIN__) + char *p; + #endif + +@@ -32,7 +32,7 @@ + assertMakeDir("bar", 0775); + assertMakeFile("bar/foo", 0777, "abc"); + +-#if defined(_WIN32) && !defined(CYGWIN) ++#if defined(_WIN32) && !defined(__CYGWIN__) + p = absolute_path; + while(*p != '\0') { + if (*p == '/') +--- contrib/libarchive/tar/test/test_option_P.c.orig ++++ contrib/libarchive/tar/test/test_option_P.c +@@ -1,82 +0,0 @@ +-/*- +- * SPDX-License-Identifier: BSD-2-Clause +- * +- * Copyright (c) 2024 Mostyn Bramley-Moore <mostyn@antipode.se> +- */ +- +-#include "test.h" +- +-#include <stdlib.h> +-#include <string.h> +- +-#if defined(_WIN32) && !defined(__CYGWIN__) +-#define UNLINK _unlink +-#else +-#define UNLINK unlink +-#endif +- +-DEFINE_TEST(test_extract_tar_absolute_paths) +-{ +- int r; +- +- // Create an absolute path for a test file inside testworkdir. +- char *entry_suffix = "/tar-noabs"; +- size_t entry_suffix_length = strlen(entry_suffix); +- size_t testworkdir_length = strlen(testworkdir); +- size_t temp_absolute_file_name_length = testworkdir_length + entry_suffix_length; +- char *temp_absolute_file_name = calloc(1, temp_absolute_file_name_length + 1); // +1 for null character. +- assertEqualInt(snprintf(temp_absolute_file_name, temp_absolute_file_name_length + 1, "%s%s", testworkdir, entry_suffix), +- temp_absolute_file_name_length); +- +-#if defined(_WIN32) && !defined(__CYGWIN__) +- // I'm unsure how to specify paths with spaces for the test invocation on windows. +- // Adding quotes doesn't seem to work. We should find a way to escape these paths, +- // but for now let's fail in a place that's obviously related to the test setup if +- // testworkdir contains spaces. +- for (char *p = temp_absolute_file_name; *p != '\0'; p++) +- { +- assert(*p != ' '); +- if (*p == ' ') break; +- } +-#endif +- +- // Create the file. +- const char *sample_data = "test file from test_extract_tar_absolute_paths"; +- assertMakeFile(temp_absolute_file_name, 0644, sample_data); +- +- // Create an archive with the test file, using an absolute path. +-#if defined(_WIN32) && !defined(__CYGWIN__) +- r = systemf("%s --absolute-paths -cf test.tar %s", testprog, temp_absolute_file_name); +-#else +- r = systemf("%s --absolute-paths -cf test.tar \"%s\"", testprog, temp_absolute_file_name); +-#endif +- assertEqualInt(r, 0); +- +- UNLINK(temp_absolute_file_name); +- +- // Extracting the archive without -P / --absolute-paths should strip leading drive letter or slash +- r = systemf("%s -xf test.tar 2>test.err", testprog); +- assertEqualInt(r, 0); +- assertFileNotExists(temp_absolute_file_name); +- +- // Check that the mangled path exists. +-#if defined(_WIN32) && !defined(__CYGWIN__) +- assertFileExists(temp_absolute_file_name + 3); // Skip the drive letter, colon and slash. +- UNLINK(temp_absolute_file_name + 3); +-#else +- assertFileExists(temp_absolute_file_name + 1); // Skip the slash. +- UNLINK(temp_absolute_file_name + 1); +-#endif +- +- // Extracting the archive with -P / --absolute-paths should create the file. +- r = systemf("%s --absolute-paths -xf test.tar", testprog); +- assertEqualInt(r, 0); +- assertFileExists(temp_absolute_file_name); +- +- // Check that the mangled path wasn't created. +-#if defined(_WIN32) && !defined(__CYGWIN__) +- assertFileNotExists(temp_absolute_file_name + 3); // Skip the drive letter, colon and slash. +-#else +- assertFileNotExists(temp_absolute_file_name + 1); // Skip the slash. +-#endif +-} +--- /dev/null ++++ contrib/libarchive/tar/test/test_option_P_upper.c +@@ -0,0 +1,82 @@ ++/*- ++ * SPDX-License-Identifier: BSD-2-Clause ++ * ++ * Copyright (c) 2024 Mostyn Bramley-Moore <mostyn@antipode.se> ++ */ ++ ++#include "test.h" ++ ++#include <stdlib.h> ++#include <string.h> ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++#define UNLINK _unlink ++#else ++#define UNLINK unlink ++#endif ++ ++DEFINE_TEST(test_extract_tar_absolute_paths) ++{ ++ int r; ++ ++ // Create an absolute path for a test file inside testworkdir. ++ char *entry_suffix = "/tar-noabs"; ++ size_t entry_suffix_length = strlen(entry_suffix); ++ size_t testworkdir_length = strlen(testworkdir); ++ size_t temp_absolute_file_name_length = testworkdir_length + entry_suffix_length; ++ char *temp_absolute_file_name = calloc(1, temp_absolute_file_name_length + 1); // +1 for null character. ++ assertEqualInt(snprintf(temp_absolute_file_name, temp_absolute_file_name_length + 1, "%s%s", testworkdir, entry_suffix), ++ temp_absolute_file_name_length); ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++ // I'm unsure how to specify paths with spaces for the test invocation on windows. ++ // Adding quotes doesn't seem to work. We should find a way to escape these paths, ++ // but for now let's fail in a place that's obviously related to the test setup if ++ // testworkdir contains spaces. ++ for (char *p = temp_absolute_file_name; *p != '\0'; p++) ++ { ++ assert(*p != ' '); ++ if (*p == ' ') break; ++ } ++#endif ++ ++ // Create the file. ++ const char *sample_data = "test file from test_extract_tar_absolute_paths"; ++ assertMakeFile(temp_absolute_file_name, 0644, sample_data); ++ ++ // Create an archive with the test file, using an absolute path. ++#if defined(_WIN32) && !defined(__CYGWIN__) ++ r = systemf("%s --absolute-paths -cf test.tar %s", testprog, temp_absolute_file_name); ++#else ++ r = systemf("%s --absolute-paths -cf test.tar \"%s\"", testprog, temp_absolute_file_name); ++#endif ++ assertEqualInt(r, 0); ++ ++ UNLINK(temp_absolute_file_name); ++ ++ // Extracting the archive without -P / --absolute-paths should strip leading drive letter or slash ++ r = systemf("%s -xf test.tar 2>test.err", testprog); ++ assertEqualInt(r, 0); ++ assertFileNotExists(temp_absolute_file_name); ++ ++ // Check that the mangled path exists. ++#if defined(_WIN32) && !defined(__CYGWIN__) ++ assertFileExists(temp_absolute_file_name + 3); // Skip the drive letter, colon and slash. ++ UNLINK(temp_absolute_file_name + 3); ++#else ++ assertFileExists(temp_absolute_file_name + 1); // Skip the slash. ++ UNLINK(temp_absolute_file_name + 1); ++#endif ++ ++ // Extracting the archive with -P / --absolute-paths should create the file. ++ r = systemf("%s --absolute-paths -xf test.tar", testprog); ++ assertEqualInt(r, 0); ++ assertFileExists(temp_absolute_file_name); ++ ++ // Check that the mangled path wasn't created. ++#if defined(_WIN32) && !defined(__CYGWIN__) ++ assertFileNotExists(temp_absolute_file_name + 3); // Skip the drive letter, colon and slash. ++#else ++ assertFileNotExists(temp_absolute_file_name + 1); // Skip the slash. ++#endif ++} +--- contrib/libarchive/tar/test/test_option_ignore_zeros.c.orig ++++ contrib/libarchive/tar/test/test_option_ignore_zeros.c +@@ -76,8 +76,7 @@ + // bsdtar.exe: b: Can't translate uname '(null)' to UTF-8 + skipping("TODO: figure out why this test fails on github workflows with MSVC"); + return; +-#endif +- ++#else + if (make_files()) + return; + +@@ -97,6 +96,7 @@ + assertEqualFile("out/a", "in/a"); + assertEqualFile("out/b", "in/b"); + assertEqualFile("out/c", "in/c"); ++#endif + } + + static void +--- /dev/null ++++ contrib/libarchive/tar/test/test_option_mtime.c +@@ -0,0 +1,82 @@ ++/*- ++ * SPDX-License-Identifier: BSD-2-Clause ++ * ++ * Copyright (c) 2025 Zhaofeng Li ++ * All rights reserved. ++ */ ++#include "test.h" ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++/* system() on Windows runs its arguments through CMD.EXE, which has ++ * notoriously unfriendly quoting rules. The current best documented way around ++ * them is to wrap your *entire commandline* in sacrificial quotes. ++ * ++ * See CMD.EXE /? for more information. Excerpted here: ++ * | Otherwise, old behavior is to see if the first character is ++ * | a quote character and if so, strip the leading character and ++ * | remove the last quote character on the command line, preserving ++ * | any text after the last quote character. ++ * ++ * Since this test makes heavy use of systemf() with quoted arguments inside ++ * the commandline, this macro is unfortunately an easier workaround. ++ */ ++#define systemf(command, ...) systemf("\"" command "\"", __VA_ARGS__) ++#endif ++ ++DEFINE_TEST(test_option_mtime) ++{ ++ /* Create three files with different mtimes. */ ++ assertMakeDir("in", 0755); ++ assertChdir("in"); ++ assertMakeFile("new_mtime", 0666, "new"); ++ assertUtimes("new_mtime", 100000, 0, 100000, 0); ++ assertMakeFile("mid_mtime", 0666, "mid"); ++ assertUtimes("mid_mtime", 10000, 0, 10000, 0); ++ assertMakeFile("old_mtime", 0666, "old"); ++ // assertion_utimes silently discards 0 :( ++ assertUtimes("old_mtime", 1, 0, 1, 0); ++ ++ /* Archive with --mtime 86400 */ ++ assertEqualInt(0, ++ systemf("%s --format pax -cf ../noclamp.tar " ++ "--mtime \"1970/1/2 0:0:0 UTC\" .", ++ testprog)); ++ assertChdir(".."); ++ ++ assertMakeDir("out.noclamp", 0755); ++ assertChdir("out.noclamp"); ++ assertEqualInt(0, systemf("%s xf ../noclamp.tar", testprog)); ++ assertFileMtime("new_mtime", 86400, 0); ++ assertFileMtime("mid_mtime", 86400, 0); ++ assertFileMtime("old_mtime", 86400, 0); ++ assertChdir(".."); ++ ++ /* Archive with --mtime 86400 --clamp-mtime */ ++ assertChdir("in"); ++ assertEqualInt(0, ++ systemf("%s --format pax -cf ../clamp.tar " ++ "--mtime \"1970/1/2 0:0:0 UTC\" --clamp-mtime .", ++ testprog)); ++ assertChdir(".."); ++ ++ assertMakeDir("out.clamp", 0755); ++ assertChdir("out.clamp"); ++ assertEqualInt(0, systemf("%s xf ../clamp.tar", testprog)); ++ assertFileMtime("new_mtime", 86400, 0); ++ assertFileMtime("mid_mtime", 10000, 0); ++ assertFileMtime("old_mtime", 1, 0); ++ assertChdir(".."); ++ ++ /* Archive-to-archive copy with --mtime 0 */ ++ assertEqualInt(0, ++ systemf("%s --format pax -cf ./archive2archive.tar " ++ "--mtime \"1970/1/1 0:0:0 UTC\" @noclamp.tar", ++ testprog)); ++ assertMakeDir("out.archive2archive", 0755); ++ assertChdir("out.archive2archive"); ++ assertEqualInt(0, systemf("%s xf ../archive2archive.tar", testprog)); ++ assertFileMtime("new_mtime", 0, 0); ++ assertFileMtime("mid_mtime", 0, 0); ++ assertFileMtime("old_mtime", 0, 0); ++ assertChdir(".."); ++} +--- contrib/libarchive/tar/test/test_option_s.c.orig ++++ contrib/libarchive/tar/test/test_option_s.c +@@ -70,7 +70,7 @@ + assertFileContents("bar", 3, "test4/in/d1/baz"); + + /* +- * Test 4b: Multiple substitutions behavior with option b). ++ * Test 4b: Multiple substitutions behavior with option b. + */ + assertMakeDir("test4b", 0755); + systemf("%s -cf test4b.tar in/d1/foo in/d1/bar", +@@ -80,6 +80,18 @@ + assertFileContents("foo", 3, "test4b/in/d1/faz"); + assertFileContents("bar", 3, "test4b/in/d1/baz"); + ++ /* ++ * Test 4bb: Multiple substitutions with option b ++ * (libarchive/libarchive#2414 GitHub issue regression test). ++ */ ++ assertMakeDir("test4bb", 0755); ++ systemf("%s -cf test4bb.tar in/d1/foo in/d1/bar", ++ testprog); ++ systemf("%s -xf test4bb.tar -s /oo/ar/ -s }ar}az}b -s :az:end:b -C test4bb", ++ testprog); ++ assertFileContents("foo", 3, "test4bb/in/d1/fend"); ++ assertFileContents("bar", 3, "test4bb/in/d1/bend"); ++ + /* + * Test 5: Name-switching substitutions when extracting archive. + */ +--- contrib/libarchive/tar/test/test_stdio.c.orig ++++ contrib/libarchive/tar/test/test_stdio.c +@@ -6,6 +6,28 @@ + */ + #include "test.h" + ++/* ++ * This data would fit onto one line, but it's easier to understand when it's ++ * on mulitple lines (and thus matches the output files). ++ */ ++static const char *cvf_err = ++"a f\n" ++"a l\n"; ++ ++static const char *tf_out = ++"f\n" ++"l\n"; ++ ++static const char *xvf_err = ++"x f\n" ++"x l\n"; ++ ++/* ++ * This string should appear in the verbose listing regardless of platform, ++ * locale, username, or groupname. ++ */ ++static const char * tvf_contains = "l link to f"; ++ + DEFINE_TEST(test_stdio) + { + FILE *filelist; +@@ -47,35 +69,43 @@ + failure("'cv' writes filenames to stderr, nothing to stdout (SUSv2)\n" + "Note that GNU tar writes the file list to stdout by default."); + assertEmptyFile("cvf.out"); +- /* TODO: Verify cvf.err has file list in SUSv2-prescribed format. */ ++ assertTextFileContents(cvf_err, "cvf.err"); + + /* 'cvf -' should generate file list on stderr, archive on stdout. */ + r = systemf("%s cvf - f l >cvf-.out 2>cvf-.err", testprog); + assertEqualInt(r, 0); + failure("cvf - should write archive to stdout"); +- /* TODO: Verify cvf-.out has archive. */ + failure("cvf - should write file list to stderr (SUSv2)"); +- /* TODO: Verify cvf-.err has verbose file list. */ ++ assertEqualFile("cvf.err", "cvf-.err"); ++ /* Check that stdout from 'cvf -' was a valid archive. */ ++ r = systemf("%s tf cvf-.out >cvf-tf.out 2>cvf-tf.err", testprog); ++ assertEqualInt(r, 0); ++ assertEmptyFile("cvf-tf.err"); ++ assertTextFileContents(tf_out, "cvf-tf.out"); + + /* 'tf' should generate file list on stdout, empty stderr. */ + r = systemf("%s tf archive >tf.out 2>tf.err", testprog); + assertEqualInt(r, 0); + assertEmptyFile("tf.err"); + failure("'t' mode should write results to stdout"); +- /* TODO: Verify tf.out has file list. */ ++ assertTextFileContents(tf_out, "tf.out"); + + /* 'tvf' should generate file list on stdout, empty stderr. */ + r = systemf("%s tvf archive >tvf.out 2>tvf.err", testprog); + assertEqualInt(r, 0); + assertEmptyFile("tvf.err"); + failure("'tv' mode should write results to stdout"); +- /* TODO: Verify tvf.out has file list. */ ++ /* Check that it contains a string only found in the verbose listing. */ ++ p = slurpfile(&s, "%s", "tvf.out"); ++ assert(strstr(p, tvf_contains) != NULL); ++ free(p); + + /* 'tvf -' uses stdin, file list on stdout, empty stderr. */ + r = systemf("%s tvf - < archive >tvf-.out 2>tvf-.err", testprog); + assertEqualInt(r, 0); + assertEmptyFile("tvf-.err"); +- /* TODO: Verify tvf-.out has file list. */ ++ failure("'tvf-' mode should write the same results as 'tvf'"); ++ assertEqualFile("tvf.out", "tvf-.out"); + + /* Basic 'xf' should generate no output on stdout or stderr. */ + r = systemf("%s xf archive >xf.out 2>xf.err", testprog); +@@ -87,7 +117,7 @@ + r = systemf("%s xvf archive >xvf.out 2>xvf.err", testprog); + assertEqualInt(r, 0); + assertEmptyFile("xvf.out"); +- /* TODO: Verify xvf.err */ ++ assertTextFileContents(xvf_err, "xvf.err"); + + /* 'xvOf' should generate list on stderr, file contents on stdout. */ + r = systemf("%s xvOf archive >xvOf.out 2>xvOf.err", testprog); +@@ -96,12 +126,12 @@ + p = slurpfile(&s, "xvOf.out"); + assertEqualInt((int)s, 3); + assertEqualMem(p, "abc", 3); +- /* TODO: Verify xvf.err */ ++ assertEqualFile("xvf.err", "xvOf.err"); + free(p); + + /* 'xvf -' should generate list on stderr, empty stdout. */ + r = systemf("%s xvf - < archive >xvf-.out 2>xvf-.err", testprog); + assertEqualInt(r, 0); + assertEmptyFile("xvf-.out"); +- /* TODO: Verify xvf-.err */ ++ assertEqualFile("xvf.err", "xvf-.err"); + } +--- contrib/libarchive/tar/util.c.orig ++++ contrib/libarchive/tar/util.c +@@ -67,26 +67,26 @@ + * malloc()), partly out of expedience (we have to call vsnprintf() + * before malloc() anyway to find out how big a buffer we need; we may + * as well point that first call at a small local buffer in case it +- * works), but mostly for safety (so we can use this to print messages +- * about out-of-memory conditions). ++ * works). + */ + + void +-safe_fprintf(FILE *f, const char *fmt, ...) ++safe_fprintf(FILE * restrict f, const char * restrict fmt, ...) + { + char fmtbuff_stack[256]; /* Place to format the printf() string. */ + char outbuff[256]; /* Buffer for outgoing characters. */ + char *fmtbuff_heap; /* If fmtbuff_stack is too small, we use malloc */ + char *fmtbuff; /* Pointer to fmtbuff_stack or fmtbuff_heap. */ +- int fmtbuff_length; ++ size_t fmtbuff_length; + int length, n; + va_list ap; + const char *p; +- unsigned i; ++ size_t i; + wchar_t wc; + char try_wc; + + /* Use a stack-allocated buffer if we can, for speed and safety. */ ++ memset(fmtbuff_stack, '\0', sizeof(fmtbuff_stack)); + fmtbuff_heap = NULL; + fmtbuff_length = sizeof(fmtbuff_stack); + fmtbuff = fmtbuff_stack; +@@ -96,17 +96,21 @@ + length = vsnprintf(fmtbuff, fmtbuff_length, fmt, ap); + va_end(ap); + ++ /* If vsnprintf will always fail, stop early. */ ++ if (length < 0 && errno == EOVERFLOW) ++ return; ++ + /* If the result was too large, allocate a buffer on the heap. */ +- while (length < 0 || length >= fmtbuff_length) { +- if (length >= fmtbuff_length) +- fmtbuff_length = length+1; ++ while (length < 0 || (size_t)length >= fmtbuff_length) { ++ if (length >= 0 && (size_t)length >= fmtbuff_length) ++ fmtbuff_length = (size_t)length + 1; + else if (fmtbuff_length < 8192) + fmtbuff_length *= 2; + else if (fmtbuff_length < 1000000) + fmtbuff_length += fmtbuff_length / 4; + else { +- length = fmtbuff_length; +- fmtbuff_heap[length-1] = '\0'; ++ fmtbuff[fmtbuff_length - 1] = '\0'; ++ length = (int)strlen(fmtbuff); + break; + } + free(fmtbuff_heap); +@@ -121,8 +125,9 @@ + } else { + /* Leave fmtbuff pointing to the truncated + * string in fmtbuff_stack. */ ++ fmtbuff_stack[sizeof(fmtbuff_stack) - 1] = '\0'; + fmtbuff = fmtbuff_stack; +- length = sizeof(fmtbuff_stack) - 1; ++ length = (int)strlen(fmtbuff); + break; + } + } +@@ -153,13 +158,13 @@ + } else { + /* Not printable, format the bytes. */ + while (n-- > 0) +- i += (unsigned)bsdtar_expand_char( ++ i += bsdtar_expand_char( + outbuff, sizeof(outbuff), i, *p++); + } + } else { + /* After any conversion failure, don't bother + * trying to convert the rest. */ +- i += (unsigned)bsdtar_expand_char(outbuff, sizeof(outbuff), i, *p++); ++ i += bsdtar_expand_char(outbuff, sizeof(outbuff), i, *p++); + try_wc = 0; + } + +@@ -202,7 +207,8 @@ + case '\v': buff[i++] = 'v'; break; + case '\\': buff[i++] = '\\'; break; + default: +- snprintf(buff + i, buffsize - i, "%03o", 0xFF & (int)c); ++ snprintf(buff + i, buffsize - i, "%03o", ++ 0xFF & (unsigned int)c); + i += 3; + } + } +@@ -328,7 +334,7 @@ + return; + + if (chdir(bsdtar->pending_chdir) != 0) { +- lafe_errc(1, 0, "could not chdir to '%s'\n", ++ lafe_errc(1, 0, "could not chdir to '%s'", + bsdtar->pending_chdir); + } + free(bsdtar->pending_chdir); +@@ -561,6 +567,20 @@ + return (0); + } + ++/* ++ * Apply --mtime and --clamp-mtime options. ++ */ ++void ++edit_mtime(struct bsdtar *bsdtar, struct archive_entry *entry) ++{ ++ if (!bsdtar->has_mtime) ++ return; ++ ++ __LA_TIME_T entry_mtime = archive_entry_mtime(entry); ++ if (!bsdtar->clamp_mtime || entry_mtime > bsdtar->mtime) ++ archive_entry_set_mtime(entry, bsdtar->mtime, 0); ++} ++ + /* + * It would be nice to just use printf() for formatting large numbers, + * but the compatibility problems are quite a headache. Hence the +@@ -684,7 +704,7 @@ + } + if (!now) + time(&now); +- fprintf(out, "%s %d ", ++ fprintf(out, "%s %u ", + archive_entry_strmode(entry), + archive_entry_nlink(entry)); + +@@ -748,7 +768,10 @@ + #else + ltime = localtime(&tim); + #endif +- strftime(tmp, sizeof(tmp), fmt, ltime); ++ if (ltime) ++ strftime(tmp, sizeof(tmp), fmt, ltime); ++ else ++ sprintf(tmp, "-- -- ----"); + fprintf(out, " %s ", tmp); + safe_fprintf(out, "%s", archive_entry_pathname(entry)); + +--- contrib/libarchive/tar/write.c.orig ++++ contrib/libarchive/tar/write.c +@@ -682,6 +682,7 @@ + if ((bsdtar->flags & OPTFLAG_INTERACTIVE) && + !yes("copy '%s'", archive_entry_pathname(in_entry))) + continue; ++ edit_mtime(bsdtar, in_entry); + if (bsdtar->verbose > 1) { + safe_fprintf(stderr, "a "); + list_item_verbose(bsdtar, stderr, in_entry); +@@ -908,6 +909,9 @@ + if (edit_pathname(bsdtar, entry)) + continue; + ++ /* Rewrite the mtime. */ ++ edit_mtime(bsdtar, entry); ++ + /* Display entry as we process it. */ + if (bsdtar->verbose > 1) { + safe_fprintf(stderr, "a "); +--- contrib/libarchive/test_utils/test_common.h.orig ++++ contrib/libarchive/test_utils/test_common.h +@@ -467,4 +467,4 @@ + + #include "test_utils.h" + +-#endif /* TEST_COMMON_H */ ++#endif /* !TEST_COMMON_H */ +--- contrib/libarchive/test_utils/test_main.c.orig ++++ contrib/libarchive/test_utils/test_main.c +@@ -370,6 +370,8 @@ + static int dump_on_failure = 0; + /* Default is to remove temp dirs and log data for successful tests. */ + static int keep_temp_files = 0; ++/* Default is to only return a failure code (1) if there were test failures. If enabled, exit with code 2 if there were no failures, but some tests were skipped. */ ++static int fail_if_tests_skipped = 0; + /* Default is to run the specified tests once and report errors. */ + static int until_failure = 0; + /* Default is to just report pass/fail for each test. */ +@@ -609,9 +611,10 @@ + assertion_chmod(const char *file, int line, const char *pathname, int mode) + { + assertion_count(file, line); +- if (chmod(pathname, mode) == 0) ++ if (chmod(pathname, (mode_t)mode) == 0) + return (1); +- failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, mode); ++ failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, ++ (unsigned int)mode); + failure_finish(NULL); + return (0); + +@@ -626,8 +629,10 @@ + if (v1 == v2) + return (1); + failure_start(file, line, "%s != %s", e1, e2); +- logprintf(" %s=%lld (0x%llx, 0%llo)\n", e1, v1, v1, v1); +- logprintf(" %s=%lld (0x%llx, 0%llo)\n", e2, v2, v2, v2); ++ logprintf(" %s=%lld (0x%llx, 0%llo)\n", e1, v1, ++ (unsigned long long)v1, (unsigned long long)v1); ++ logprintf(" %s=%lld (0x%llx, 0%llo)\n", e2, v2, ++ (unsigned long long)v2, (unsigned long long)v2); + failure_finish(extra); + return (0); + } +@@ -755,7 +760,7 @@ + case '\r': logprintf("\\r"); break; + default: + if (c >= 32 && c < 127) +- logprintf("%c", c); ++ logprintf("%c", (int)c); + else + logprintf("\\x%02X", c); + } +@@ -829,7 +834,7 @@ + while (*w != L'\0') { + unsigned int c = *w++; + if (c >= 32 && c < 127) +- logprintf("%c", c); ++ logprintf("%c", (int)c); + else if (c < 256) + logprintf("\\x%02X", c); + else if (c < 0x10000) +@@ -896,7 +901,7 @@ + for (j = 0; j < 16 && i + j < l; j++) { + if (ref != NULL && p[i + j] != ref[i + j]) + sep = '_'; +- logprintf("%c%02x", sep, 0xff & (int)p[i+j]); ++ logprintf("%c%02x", sep, 0xff & (unsigned int)p[i+j]); + if (ref != NULL && p[i + j] == ref[i + j]) + sep = ' '; + } +@@ -1600,7 +1605,7 @@ + if (r == 0 && mode == expected_mode) + return (1); + failure_start(file, line, "File %s has mode %o, expected %o", +- pathname, mode, expected_mode); ++ pathname, (unsigned int)mode, (unsigned int)expected_mode); + #endif + failure_finish(NULL); + return (0); +@@ -1710,8 +1715,8 @@ + /* TODO: Can we do better here? */ + if (mode >= 0 && (mode_t)mode != (st.st_mode & 07777)) { + failure_start(file, line, "Dir %s has wrong mode", pathname); +- logprintf(" Expected: 0%3o\n", mode); +- logprintf(" Found: 0%3o\n", st.st_mode & 07777); ++ logprintf(" Expected: 0%3o\n", (unsigned int)mode); ++ logprintf(" Found: 0%3o\n", (unsigned int)st.st_mode & 07777); + failure_finish(NULL); + return (0); + } +@@ -1743,8 +1748,8 @@ + /* TODO: Can we do better here? */ + if (mode >= 0 && (mode_t)mode != (st.st_mode & 07777)) { + failure_start(file, line, "File %s has wrong mode", pathname); +- logprintf(" Expected: 0%3o\n", mode); +- logprintf(" Found: 0%3o\n", st.st_mode & 07777); ++ logprintf(" Expected: 0%3o\n", (unsigned int)mode); ++ logprintf(" Found: 0%3o\n", (unsigned int)st.st_mode & 07777); + failure_finish(NULL); + return (0); + } +@@ -1945,8 +1950,8 @@ + if (0 == _mkdir(dirname)) + return (1); + #else +- if (0 == mkdir(dirname, mode)) { +- if (0 == chmod(dirname, mode)) { ++ if (0 == mkdir(dirname, (mode_t)mode)) { ++ if (0 == chmod(dirname, (mode_t)mode)) { + assertion_file_mode(file, line, dirname, mode); + return (1); + } +@@ -2000,9 +2005,9 @@ + return (0); + } + #ifdef HAVE_FCHMOD +- if (0 != fchmod(fd, mode)) ++ if (0 != fchmod(fd, (mode_t)mode)) + #else +- if (0 != chmod(path, mode)) ++ if (0 != chmod(path, (mode_t)mode)) + #endif + { + failure_start(file, line, "Could not chmod %s", path); +@@ -2091,7 +2096,7 @@ + assertion_count(file, line); + (void)file; /* UNUSED */ + (void)line; /* UNUSED */ +- umask(mask); ++ umask((mode_t)mask); + return (1); + } + +@@ -2103,7 +2108,7 @@ + int r; + + #if defined(_WIN32) && !defined(__CYGWIN__) +-#define WINTIME(sec, nsec) ((Int32x32To64(sec, 10000000) + EPOC_TIME)\ ++#define WINTIME(sec, nsec) (((sec * 10000000LL) + EPOC_TIME)\ + + (((nsec)/1000)*10)) + HANDLE h; + ULARGE_INTEGER wintm; +@@ -2451,7 +2456,7 @@ + + /* Skip arbitrary third-party version numbers. */ + while (s > 0 && (*q == ' ' || *q == '-' || *q == '/' || *q == '.' || +- isalnum((unsigned char)*q))) { ++ *q == '_' || isalnum((unsigned char)*q))) { + ++q; + --s; + } +@@ -3317,7 +3322,8 @@ + ret = 1; + failure_start(file, line, "type=%#010x, " + "permset=%#010x, tag=%d, qual=%d name=%s", +- acls[i].type, acls[i].permset, acls[i].tag, ++ (unsigned int)acls[i].type, ++ (unsigned int)acls[i].permset, acls[i].tag, + acls[i].qual, acls[i].name); + failure_finish(NULL); + } +@@ -3411,8 +3417,9 @@ + } + if ((permset << 6) != (mode & 0700)) { + failure_start(file, line, "USER_OBJ permset " +- "(%02o) != user mode (%02o)", permset, +- 07 & (mode >> 6)); ++ "(%02o) != user mode (%02o)", ++ (unsigned int)permset, ++ (unsigned int)(07 & (mode >> 6))); + failure_finish(NULL); + ret = 1; + } +@@ -3426,8 +3433,9 @@ + } + if ((permset << 3) != (mode & 0070)) { + failure_start(file, line, "GROUP_OBJ permset " +- "(%02o) != group mode (%02o)", permset, +- 07 & (mode >> 3)); ++ "(%02o) != group mode (%02o)", ++ (unsigned int)permset, ++ (unsigned int)(07 & (mode >> 3))); + failure_finish(NULL); + ret = 1; + } +@@ -3441,15 +3449,17 @@ + } + if ((permset << 0) != (mode & 0007)) { + failure_start(file, line, "OTHER permset " +- "(%02o) != other mode (%02o)", permset, +- mode & 07); ++ "(%02o) != other mode (%02o)", ++ (unsigned int)permset, ++ (unsigned int)mode & 07); + failure_finish(NULL); + ret = 1; + } + } else if (matched != 1) { + failure_start(file, line, "Could not find match for " + "ACL (type=%#010x,permset=%#010x,tag=%d,qual=%d," +- "name=``%s'')", type, permset, tag, qual, name); ++ "name=``%s'')", (unsigned int)type, ++ (unsigned int)permset, tag, qual, name); + failure_finish(NULL); + ret = 1; + } +@@ -3462,14 +3472,16 @@ + if ((want_type & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0 && + (mode_t)(mode & 0777) != (archive_entry_mode(ae) & 0777)) { + failure_start(file, line, "Mode (%02o) and entry mode (%02o) " +- "mismatch", mode, archive_entry_mode(ae)); ++ "mismatch", (unsigned int)mode, ++ (unsigned int)archive_entry_mode(ae)); + failure_finish(NULL); + ret = 1; + } + if (n != 0) { + failure_start(file, line, "Could not find match for ACL " + "(type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s'')", +- acls[marker[0]].type, acls[marker[0]].permset, ++ (unsigned int)acls[marker[0]].type, ++ (unsigned int)acls[marker[0]].permset, + acls[marker[0]].tag, acls[marker[0]].qual, + acls[marker[0]].name); + failure_finish(NULL); +@@ -3526,7 +3538,7 @@ + fflush(stdout); + break; + case VERBOSITY_PASSFAIL: +- printf(failed ? "FAIL\n" : skips_num ? "ok (S)\n" : "ok\n"); ++ printf(failed ? "FAIL\n" : skips_num ? "skipped\n" : "ok\n"); + break; + } + +@@ -3534,7 +3546,7 @@ + + for (i = 0; i < sizeof(failed_lines)/sizeof(failed_lines[0]); i++) { + if (failed_lines[i].count > 1 && !failed_lines[i].skip) +- logprintf("%s:%d: Summary: Failed %d times\n", ++ logprintf("%s:%u: Summary: Failed %d times\n", + failed_filename, i, failed_lines[i].count); + } + /* Clear the failure history for the next file. */ +@@ -3542,6 +3554,59 @@ + memset(failed_lines, 0, sizeof(failed_lines)); + } + ++/* ++ * Set or unset environment variable. ++ */ ++static void ++set_environment(const char *key, const char *value) ++{ ++ ++#if defined(_WIN32) && !defined(__CYGWIN__) ++ if (!SetEnvironmentVariable(key, value)) { ++ fprintf(stderr, "SetEnvironmentVariable failed with %d\n", ++ (int)GetLastError()); ++ } ++#else ++ if (value == NULL) { ++ if (unsetenv(key) == -1) ++ fprintf(stderr, "unsetenv: %s\n", strerror(errno)); ++ } else { ++ if (setenv(key, value, 1) == -1) ++ fprintf(stderr, "setenv: %s\n", strerror(errno)); ++ } ++#endif ++} ++ ++/* ++ * Enforce C locale for (sub)processes. ++ */ ++static void ++set_c_locale(void) ++{ ++ static const char *lcs[] = { ++ "LC_ADDRESS", ++ "LC_ALL", ++ "LC_COLLATE", ++ "LC_CTYPE", ++ "LC_IDENTIFICATION", ++ "LC_MEASUREMENT", ++ "LC_MESSAGES", ++ "LC_MONETARY", ++ "LC_NAME", ++ "LC_NUMERIC", ++ "LC_PAPER", ++ "LC_TELEPHONE", ++ "LC_TIME", ++ NULL ++ }; ++ size_t i; ++ ++ setlocale(LC_ALL, "C"); ++ set_environment("LANG", "C"); ++ for (i = 0; lcs[i] != NULL; i++) ++ set_environment(lcs[i], NULL); ++} ++ + /* + * Actually run a single test, with appropriate setup and cleanup. + */ +@@ -3553,10 +3618,11 @@ + #else + char workdir[1024 * 2]; + #endif +- char logfilename[64]; ++ char logfilename[256]; + int failures_before = failures; + int skips_before = skips; +- int oldumask; ++ int tmp; ++ mode_t oldumask; + + switch (verbosity) { + case VERBOSITY_SUMMARY_ONLY: /* No per-test reports at all */ +@@ -3576,11 +3642,38 @@ + exit(1); + } + /* Create a log file for this test. */ +- snprintf(logfilename, sizeof(logfilename), "%s.log", tests[i].name); ++ tmp = snprintf(logfilename, sizeof(logfilename), "%s.log", tests[i].name); ++ if (tmp < 0) { ++ fprintf(stderr, ++ "ERROR can't create %s.log: %s\n", ++ tests[i].name, strerror(errno)); ++ exit(1); ++ } ++ if ((size_t)tmp >= sizeof(logfilename)) { ++ fprintf(stderr, ++ "ERROR can't create %s.log: Name too long. " ++ "Length %d; Max allowed length %zu\n", ++ tests[i].name, tmp, sizeof(logfilename) - 1); ++ exit(1); ++ } + logfile = fopen(logfilename, "w"); + fprintf(logfile, "%s\n\n", tests[i].name); + /* Chdir() to a work dir for this specific test. */ +- snprintf(workdir, sizeof(workdir), "%s/%s", tmpdir, tests[i].name); ++ tmp = snprintf(workdir, ++ sizeof(workdir), "%s/%s", tmpdir, tests[i].name); ++ if (tmp < 0) { ++ fprintf(stderr, ++ "ERROR can't create %s/%s: %s\n", ++ tmpdir, tests[i].name, strerror(errno)); ++ exit(1); ++ } ++ if ((size_t)tmp >= sizeof(workdir)) { ++ fprintf(stderr, ++ "ERROR can't create %s/%s: Path too long. " ++ "Length %d; Max allowed length %zu\n", ++ tmpdir, tests[i].name, tmp, sizeof(workdir) - 1); ++ exit(1); ++ } + testworkdir = workdir; + if (!assertMakeDir(testworkdir, 0755) + || !assertChdir(testworkdir)) { +@@ -3589,7 +3682,7 @@ + exit(1); + } + /* Explicitly reset the locale before each test. */ +- setlocale(LC_ALL, "C"); ++ set_c_locale(); + /* Record the umask before we run the test. */ + umask(oldumask = umask(0)); + /* +@@ -3603,7 +3696,7 @@ + /* Restore umask */ + umask(oldumask); + /* Reset locale. */ +- setlocale(LC_ALL, "C"); ++ set_c_locale(); + /* Reset directory. */ + if (!assertChdir(tmpdir)) { + fprintf(stderr, "ERROR: Couldn't chdir to temp dir %s\n", +@@ -3672,7 +3765,8 @@ + printf(" -q Quiet.\n"); + printf(" -r <dir> Path to dir containing reference files.\n"); + printf(" Default: Current directory.\n"); +- printf(" -u Keep running specifies tests until one fails.\n"); ++ printf(" -s Exit with code 2 if any tests were skipped.\n"); ++ printf(" -u Keep running specified tests until one fails.\n"); + printf(" -v Verbose.\n"); + printf("Available tests:\n"); + for (i = 0; i < limit; i++) +@@ -4065,6 +4159,9 @@ + case 'r': + refdir = option_arg; + break; ++ case 's': ++ fail_if_tests_skipped = 1; ++ break; + case 'u': + until_failure++; + break; +@@ -4118,6 +4215,19 @@ + strncat(testprg, "\"", testprg_len); + testprog = testprg; + } ++ ++ /* Sanity check: reject a relative path for refdir. */ ++ if (refdir != NULL) { ++#if defined(_WIN32) && !defined(__CYGWIN__) ++ /* TODO: probably use PathIsRelative() from <shlwapi.h>. */ ++#else ++ if (refdir[0] != '/') { ++ fprintf(stderr, ++ "ERROR: Cannot use relative path for refdir\n"); ++ exit(1); ++ } ++#endif ++ } + #endif + + #if !defined(_WIN32) && defined(SIGPIPE) +@@ -4263,5 +4373,9 @@ + assertChdir(".."); + rmdir(tmpdir); + +- return (tests_failed ? 1 : 0); ++ if (tests_failed) return 1; ++ ++ if (fail_if_tests_skipped == 1 && skips > 0) return 2; ++ ++ return 0; + } +--- contrib/libarchive/test_utils/test_utils.c.orig ++++ contrib/libarchive/test_utils/test_utils.c +@@ -109,3 +109,51 @@ + } + fill_with_pseudorandom_data_seed(seed, buffer, size); + } ++ ++unsigned long ++bitcrc32(unsigned long c, const void *_p, size_t s) ++{ ++ /* This is a drop-in replacement for crc32() from zlib. ++ * Libarchive should be able to correctly read archives (including ++ * correct CRCs) even when zlib is unavailable, and this function ++ * helps us verify that. Yes, this is very, very slow and unsuitable ++ * for production use, but it's obviously correct, compact, and ++ * works well enough for this particular usage. Libarchive ++ * internally uses a much more efficient implementation if zlib is ++ * unavailable. */ ++ const unsigned char *p = _p; ++ char bitctr; ++ ++ if (p == NULL) ++ return (0); ++ ++ for (; s > 0; --s) { ++ c ^= *p++; ++ for (bitctr = 8; bitctr > 0; --bitctr) { ++ if (c & 1) c = (c >> 1); ++ else c = (c >> 1) ^ 0xedb88320; ++ c ^= 0x80000000; ++ } ++ } ++ return (c); ++} ++ ++/* Read little-endian integers */ ++unsigned short ++i2le(const void* p_) ++{ ++ const unsigned char *p = p_; ++ return (p[0] | (p[1] << 8)); ++} ++unsigned int ++i4le(const void* p_) ++{ ++ const char *p = p_; ++ return (i2le(p) | (i2le(p + 2) << 16)); ++} ++unsigned long long ++i8le(const void* p_) ++{ ++ const char *p = p_; ++ return (i4le(p) | ((unsigned long long)i4le(p + 4) << 32)); ++} +--- contrib/libarchive/test_utils/test_utils.h.orig ++++ contrib/libarchive/test_utils/test_utils.h +@@ -31,6 +31,11 @@ + #include <stdint.h> + + /* Fill a buffer with pseudorandom data */ +-void fill_with_pseudorandom_data(void* buffer, size_t size); +- +-#endif /* TEST_UTILS_H */ ++void fill_with_pseudorandom_data(void*, size_t); ++/* A simplistic CRC-32 function for testing purposes */ ++unsigned long bitcrc32(unsigned long, const void*, size_t); ++/* Read little-endian integers */ ++unsigned short i2le(const void*); ++unsigned int i4le(const void*); ++unsigned long long i8le(const void*); ++#endif /* !TEST_UTILS_H */ +--- contrib/libarchive/unzip/bsdunzip.c.orig ++++ contrib/libarchive/unzip/bsdunzip.c +@@ -9,6 +9,7 @@ + #include "bsdunzip_platform.h" + + #include "la_queue.h" ++#include "la_getline.h" + #ifdef HAVE_SYS_STAT_H + #include <sys/stat.h> + #endif +@@ -110,7 +111,7 @@ + static char *passphrase_buf; + + /* fatal error message + errno */ +-static void ++static void __LA_NORETURN + error(const char *fmt, ...) + { + va_list ap; +@@ -127,7 +128,7 @@ + } + + /* fatal error message, no errno */ +-static void ++static void __LA_NORETURN + errorx(const char *fmt, ...) + { + va_list ap; +@@ -232,7 +233,7 @@ + } + if (L_opt) { + for (i = 0; i < len; ++i) +- str[i] = tolower((unsigned char)path[i]); ++ str[i] = (char)tolower((unsigned char)path[i]); + } else { + memcpy(str, path, len); + } +@@ -355,7 +356,7 @@ + */ + (void)unlink(path); + } +- if (mkdir(path, mode) != 0 && errno != EEXIST) ++ if (mkdir(path, (mode_t)mode) != 0 && errno != EEXIST) + error("mkdir('%s')", path); + } + +@@ -699,7 +700,7 @@ + error("symlink('%s')", *path); + info(" extracting: %s -> %s\n", *path, linkname); + #ifdef HAVE_LCHMOD +- if (lchmod(*path, mode) != 0) ++ if (lchmod(*path, (mode_t)mode) != 0) + warning("Cannot set mode for '%s'", *path); + #endif + /* set access and modification time */ +@@ -875,6 +876,7 @@ + char buf[20]; + time_t mtime; + struct tm *tm; ++ const char *pathname; + + mtime = archive_entry_mtime(e); + tm = localtime(&mtime); +@@ -883,22 +885,25 @@ + else + strftime(buf, sizeof(buf), "%m-%d-%g %R", tm); + ++ pathname = archive_entry_pathname(e); ++ if (!pathname) ++ pathname = ""; + if (!zipinfo_mode) { + if (v_opt == 1) { + printf(" %8ju %s %s\n", + (uintmax_t)archive_entry_size(e), +- buf, archive_entry_pathname(e)); ++ buf, pathname); + } else if (v_opt == 2) { + printf("%8ju Stored %7ju 0%% %s %08x %s\n", + (uintmax_t)archive_entry_size(e), + (uintmax_t)archive_entry_size(e), + buf, + 0U, +- archive_entry_pathname(e)); ++ pathname); + } + } else { + if (Z1_opt) +- printf("%s\n",archive_entry_pathname(e)); ++ printf("%s\n", pathname); + } + ac(archive_read_data_skip(a)); + } +--- /dev/null ++++ contrib/libarchive/unzip/la_getline.h +@@ -0,0 +1,16 @@ ++/*- ++ * SPDX-License-Identifier: BSD-2-Clause ++ * ++ * Copyright (c) 2011 The NetBSD Foundation, Inc. ++ * All rights reserved. ++ */ ++ ++#ifndef LA_GETLINE_H_INCLUDED ++#define LA_GETLINE_H_INCLUDED ++ ++#include <stdio.h> ++#ifndef HAVE_GETLINE ++ssize_t getline(char **buf, size_t *bufsiz, FILE *fp); ++#endif ++ ++#endif /* !LA_GETLINE_H_INCLUDED */ +--- lib/libarchive/Makefile.orig ++++ lib/libarchive/Makefile +@@ -42,11 +42,11 @@ + archive_entry_stat.c \ + archive_entry_strmode.c \ + archive_entry_xattr.c \ +- archive_getdate.c \ + archive_hmac.c \ + archive_match.c \ + archive_options.c \ + archive_pack_dev.c \ ++ archive_parse_date.c \ + archive_pathmatch.c \ + archive_ppmd7.c \ + archive_ppmd8.c \ +@@ -101,6 +101,7 @@ + archive_read_support_format_zip.c \ + archive_string.c \ + archive_string_sprintf.c \ ++ archive_time.c \ + archive_util.c \ + archive_version_details.c \ + archive_virtual.c \ +--- lib/libarchive/tests/Makefile.orig ++++ lib/libarchive/tests/Makefile +@@ -17,6 +17,7 @@ + CFLAGS+= -I${.CURDIR} -I${.CURDIR:H} -I${.OBJDIR} + CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive -I${_LIBARCHIVEDIR}/libarchive/test + CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils ++CFLAGS+= -I${SRCTOP}/sys/contrib/zstd/lib + + CFLAGS.test_utils.c+= -Wno-cast-align + +@@ -38,11 +39,11 @@ + test_archive_clear_error.c \ + test_archive_cmdline.c \ + test_archive_digest.c \ +- test_archive_getdate.c \ + test_archive_match_time.c \ + test_archive_match_owner.c \ + test_archive_match_path.c \ + test_archive_pathmatch.c \ ++ test_archive_parse_date.c \ + test_archive_read.c \ + test_archive_read_add_passphrase.c \ + test_archive_read_close_twice.c \ +@@ -72,6 +73,7 @@ + test_compat_bzip2.c \ + test_compat_cpio.c \ + test_compat_gtar.c \ ++ test_compat_gtar_large.c \ + test_compat_gzip.c \ + test_compat_lz4.c \ + test_compat_lzip.c \ +@@ -148,7 +150,9 @@ + test_read_format_gtar_filename.c \ + test_read_format_gtar_gz.c \ + test_read_format_gtar_lzma.c \ ++ test_read_format_gtar_redundant_L.c \ + test_read_format_gtar_sparse.c \ ++ test_read_format_gtar_sparse_length.c \ + test_read_format_gtar_sparse_skip_entry.c \ + test_read_format_huge_rpm.c \ + test_read_format_iso_Z.c \ +@@ -178,6 +182,7 @@ + test_read_format_rar_encryption_partially.c \ + test_read_format_rar_filter.c \ + test_read_format_rar_invalid1.c \ ++ test_read_format_rar_overflow.c \ + test_read_format_raw.c \ + test_read_format_tar.c \ + test_read_format_tar_concatenated.c \ +@@ -186,7 +191,10 @@ + test_read_format_tar_empty_with_gnulabel.c \ + test_read_format_tar_filename.c \ + test_read_format_tar_invalid_pax_size.c \ ++ test_read_format_tar_mac_metadata.c \ ++ test_read_format_tar_pax_g_large.c \ + test_read_format_tar_pax_large_attr.c \ ++ test_read_format_tar_pax_negative_time.c \ + test_read_format_tbz.c \ + test_read_format_tgz.c \ + test_read_format_tlz.c \ +@@ -219,6 +227,7 @@ + test_read_format_zip_with_invalid_traditional_eocd.c \ + test_read_format_zip_zip64.c \ + test_read_large.c \ ++ test_read_pax_empty_val_no_nl.c \ + test_read_pax_xattr_rht_security_selinux.c \ + test_read_pax_xattr_schily.c \ + test_read_pax_truncated.c \ +@@ -287,6 +296,7 @@ + test_write_format_mtree_classic_indent.c \ + test_write_format_mtree_fflags.c \ + test_write_format_mtree_no_separator.c \ ++ test_write_format_mtree_preset_digests.c \ + test_write_format_mtree_quoted_filename.c \ + test_write_format_pax.c \ + test_write_format_raw.c \ +@@ -303,6 +313,9 @@ + test_write_format_xar_empty.c \ + test_write_format_zip.c \ + test_write_format_zip_compression_store.c \ ++ test_write_format_zip_compression_zstd.c \ ++ test_write_format_zip_compression_bzip2.c \ ++ test_write_format_zip_compression_lzmaxz.c \ + test_write_format_zip_empty.c \ + test_write_format_zip_empty_zip64.c \ + test_write_format_zip_entry_size_unset.c \ +@@ -447,6 +460,7 @@ + ${PACKAGE}FILES+= test_read_format_7zip_bcj2_copy_lzma.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_bcj2_deflate.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_deflate_arm64.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_deflate_powerpc.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma1_1.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma1_2.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma2_1.7z.uu +@@ -476,16 +490,24 @@ + ${PACKAGE}FILES+= test_read_format_7zip_lzma2.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_lzma2_arm.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_lzma2_arm64.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_lzma2_powerpc.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_lzma2_riscv.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_lzma2_sparc.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_lzma2_powerpc.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_malformed.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_malformed2.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_packinfo_digests.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_ppmd.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_sfx_elf.elf.uu ++${PACKAGE}FILES+= test_read_format_7zip_sfx_modified_pe.exe.uu ++${PACKAGE}FILES+= test_read_format_7zip_sfx_pe.exe.uu + ${PACKAGE}FILES+= test_read_format_7zip_solid_zstd.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_symbolic_name.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_zstd.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_zstd_arm.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_zstd_bcj.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_zstd_nobcj.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_zstd_sparc.7z.uu + ${PACKAGE}FILES+= test_read_format_7zip_win_attrib.7z.uu + ${PACKAGE}FILES+= test_read_format_ar.ar.uu + ${PACKAGE}FILES+= test_read_format_cab_1.cab.uu +@@ -504,12 +526,14 @@ + ${PACKAGE}FILES+= test_read_format_gtar_filename_cp866.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_gtar_filename_eucjp.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_gtar_filename_koi8r.tar.Z.uu ++${PACKAGE}FILES+= test_read_format_gtar_redundant_L.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_1_13.tar.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_1_17.tar.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_1_17_posix00.tar.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_1_17_posix01.tar.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_1_17_posix10.tar.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu ++${PACKAGE}FILES+= test_read_format_gtar_sparse_length.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_gtar_sparse_skip_entry.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_huge_rpm.rpm.uu + ${PACKAGE}FILES+= test_read_format_iso.iso.Z.uu +@@ -550,6 +574,7 @@ + ${PACKAGE}FILES+= test_read_format_rar_encryption_data.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_encryption_header.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_encryption_partially.rar.uu ++${PACKAGE}FILES+= test_read_format_rar_endarc_huge.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_filter.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_invalid1.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_multi_lzss_blocks.rar.uu +@@ -557,12 +582,15 @@ + ${PACKAGE}FILES+= test_read_format_rar_multivolume.part0002.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_multivolume.part0003.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_multivolume.part0004.rar.uu ++${PACKAGE}FILES+= test_read_format_rar_newsub_huge.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_noeof.rar.uu ++${PACKAGE}FILES+= test_read_format_rar_overflow.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_ppmd_lzss_conversion.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_ppmd_use_after_free.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_ppmd_use_after_free2.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_sfx.exe.uu + ${PACKAGE}FILES+= test_read_format_rar_subblock.rar.uu ++${PACKAGE}FILES+= test_read_format_rar_symlink_huge.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_unicode.rar.uu + ${PACKAGE}FILES+= test_read_format_rar_windows.rar.uu + ${PACKAGE}FILES+= test_read_format_rar4_encrypted.rar.uu +@@ -627,11 +655,15 @@ + ${PACKAGE}FILES+= test_read_format_tar_empty_pax.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_tar_filename_koi8r.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_tar_invalid_pax_size.tar.uu ++${PACKAGE}FILES+= test_read_format_tar_mac_metadata_1.tar.uu ++${PACKAGE}FILES+= test_read_format_tar_pax_g_large.tar.uu + ${PACKAGE}FILES+= test_read_format_tar_pax_large_attr.tar.Z.uu ++${PACKAGE}FILES+= test_read_format_tar_pax_negative_time.tar.uu + ${PACKAGE}FILES+= test_read_format_ustar_filename_cp866.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_ustar_filename_eucjp.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_ustar_filename_koi8r.tar.Z.uu + ${PACKAGE}FILES+= test_read_format_warc.warc.uu ++${PACKAGE}FILES+= test_read_format_warc_incomplete.warc.uu + ${PACKAGE}FILES+= test_read_format_xar_doublelink.xar.uu + ${PACKAGE}FILES+= test_read_format_xar_duplicate_filename_node.xar.uu + ${PACKAGE}FILES+= test_read_format_zip.zip.uu +@@ -691,6 +723,7 @@ + ${PACKAGE}FILES+= test_read_large_splitted_rar_ac.uu + ${PACKAGE}FILES+= test_read_large_splitted_rar_ad.uu + ${PACKAGE}FILES+= test_read_large_splitted_rar_ae.uu ++${PACKAGE}FILES+= test_read_pax_empty_val_no_nl.tar.uu + ${PACKAGE}FILES+= test_read_pax_xattr_rht_security_selinux.tar.uu + ${PACKAGE}FILES+= test_read_pax_xattr_schily.tar.uu + ${PACKAGE}FILES+= test_read_splitted_rar_aa.uu +--- usr.bin/tar/tests/Makefile.orig ++++ usr.bin/tar/tests/Makefile +@@ -42,13 +42,14 @@ + test_format_newc.c \ + test_help.c \ + test_leading_slash.c \ ++ test_list_item.c \ + test_missing_file.c \ + test_option_C_mtree.c \ + test_option_C_upper.c \ + test_option_H_upper.c \ + test_option_L_upper.c \ + test_option_O_upper.c \ +- test_option_P.c \ ++ test_option_P_upper.c \ + test_option_T_upper.c \ + test_option_U_upper.c \ + test_option_X_upper.c \ +@@ -69,6 +70,7 @@ + test_option_lz4.c \ + test_option_lzma.c \ + test_option_lzop.c \ ++ test_option_mtime.c \ + test_option_n.c \ + test_option_newer_than.c \ + test_option_nodump.c \ +@@ -120,6 +122,7 @@ + ${PACKAGE}FILES+= test_extract.tar.xz.uu + ${PACKAGE}FILES+= test_extract.tar.zst.uu + ${PACKAGE}FILES+= test_leading_slash.tar.uu ++${PACKAGE}FILES+= test_list_item.tar.uu + ${PACKAGE}FILES+= test_option_keep_newer_files.tar.Z.uu + ${PACKAGE}FILES+= test_option_passphrase.zip.uu + ${PACKAGE}FILES+= test_option_s.tar.Z.uu diff --git a/website/static/security/patches/SA-25:07/libarchive.patch.asc b/website/static/security/patches/SA-25:07/libarchive.patch.asc new file mode 100644 index 0000000000..5c753ed8bf --- /dev/null +++ b/website/static/security/patches/SA-25:07/libarchive.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmiVSiIACgkQbljekB8A +Gu+eXg/8DFHbkFyvCv6vC0JDEdHDlM1juW1y5WV6WFF8F84bB6mvg0KYGbOID3nG +6AGs5xfW06KgymC/OlWCMTrDV2sJoM1iEOL+ZmpFTv8wWdfjnXJlKboUQVzIZQs0 +OyvpfZVBC0o+zMalWq7GuTioWlSPoX+dA858jft1Bg5cDT6dLQWb5+kaUfzH8Xqc +9oMPgcnXGYnkShKztoTbgT9/QEAUFc6+YePeeA8aAE5tD4QXqfbOOQkSeT2KIaJG +oy8c5nUuXutuer/n0h7CrRf3cS8GfQZHBnkM8NOzolixDZYZTPu0m5FtuEMuL28w +CSvuSzZIxvyKiZdmwkS/uU2UCdZ4+UQfa10nz1+Z7HxLBOtse8gRK4WYYYupqM1F +wlLeIE7V64L7XLaBtwyztrDT9qZ2AgaVLwemeRfibeNBDpWbIZ+TPcxGVEovAp69 +MkyYcbWYNVNs6fYtyRHaNvLxW6Sszh0uGmv0nDLaiQl6oaD0tBBgRdYA2X8DIxIE +NeEcSAzXtd2wTQmFn4/LNEEE066PR+Jw1CDRkxIwNPyf+b9gUVetl4b2KiXpJJQ4 +H1kMIL40Ms4k/wKvzkNBBp/jkyOdCNcSEbFNBEOJco9UbHIgWBpk1T0Rfj5GbYJV +JG2k3dnJOBJSNOQdWbT9N8vlAQSUZDvV5AFiPs68Kk2eq+gtWgc= +=bX2E +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:08/openssl-13.patch b/website/static/security/patches/SA-25:08/openssl-13.patch new file mode 100644 index 0000000000..ff46f32c81 --- /dev/null +++ b/website/static/security/patches/SA-25:08/openssl-13.patch @@ -0,0 +1,11 @@ +--- crypto/openssl/crypto/cms/cms_pwri.c.orig ++++ crypto/openssl/crypto/cms/cms_pwri.c +@@ -215,7 +215,7 @@ + /* Check byte failure */ + goto err; + } +- if (inlen < (size_t)(tmp[0] - 4)) { ++ if (inlen < 4 + (size_t)tmp[0]) { + /* Invalid length value */ + goto err; + } diff --git a/website/static/security/patches/SA-25:08/openssl-13.patch.asc b/website/static/security/patches/SA-25:08/openssl-13.patch.asc new file mode 100644 index 0000000000..b8cb1f7718 --- /dev/null +++ b/website/static/security/patches/SA-25:08/openssl-13.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjb+0IACgkQbljekB8A +Gu+lIg/+Lolkw+WssmbgxxZdypCud/7HTk/+M4YdBPMtoZYFec/Mzpw9ok+MUs2O +7Ev1mc0rQ9Rcfw5PEe6tKvC3MMFtWOcHNr3QqkkvkAA2nsxCeEPIBHyQiEm347PU +ntraIANMy+MbmaegU5+vyzpZQxBl6erAc+9p7eyMFBJtFzRCZV2SIPV4lUrgYsKq +WyjM7o7jRfOcn7aZ6X+pPnUjQY6jkJQIiHqytdG8XTIkzDvcpy88g9Yg1qxBwi// +ESgZWIHdU4kbChQJPFfYGYUFZ2tn15iMRjmjQA6SKCWpJNq56r3PLNCQ7Z99KCe8 +dAs0Uw0ZPQZuZVMNb3XV4W/MEDWc+2I9HUXwJfA6RFDbm71sj9XTwBYskEDPcD+q +w3OMkG184EUgqrZazaO2MLas+X7aaMwn7Dvr+zCjREfKp8s6Qar5nKgjP7XoBmTg +ewez2FEUmjdt7SIq5K81Xjmnd7Qu069Yztw/YavCHcQOpwf7Iea1etH9ynMQ0jEb +zAgO++HJJiN6+Noahcauet8L5TsjJIoZd8DTB2g0fONt1S5HCtklnBptyDfispBO +pWf059PG079wiTmL/qT1x4UnYnyZs32HghR9+R4tOkSFs3RiVMaGk8ZnIL+Nmp3v +sRx3so9zFU0TBVww9eRe9/ve4MKd+AqJJe8X1iioDvk7l8JyUTw= +=NXRd +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:08/openssl-14.patch b/website/static/security/patches/SA-25:08/openssl-14.patch new file mode 100644 index 0000000000..10c55dd60a --- /dev/null +++ b/website/static/security/patches/SA-25:08/openssl-14.patch @@ -0,0 +1,21 @@ +--- crypto/openssl/crypto/cms/cms_pwri.c.orig ++++ crypto/openssl/crypto/cms/cms_pwri.c +@@ -228,7 +228,7 @@ + /* Check byte failure */ + goto err; + } +- if (inlen < (size_t)(tmp[0] - 4)) { ++ if (inlen < 4 + (size_t)tmp[0]) { + /* Invalid length value */ + goto err; + } +--- crypto/openssl/crypto/http/http_lib.c.orig ++++ crypto/openssl/crypto/http/http_lib.c +@@ -267,6 +267,7 @@ + /* strip leading '[' and trailing ']' from escaped IPv6 address */ + sl -= 2; + strncpy(host, server + 1, sl); ++ host[sl] = '\0'; + server = host; + } + diff --git a/website/static/security/patches/SA-25:08/openssl-14.patch.asc b/website/static/security/patches/SA-25:08/openssl-14.patch.asc new file mode 100644 index 0000000000..43ac390451 --- /dev/null +++ b/website/static/security/patches/SA-25:08/openssl-14.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjb+0MACgkQbljekB8A +Gu8Mrg//Wx7TovEbu7hCYrBcs3+LwhVEQh2S6V7APXHtoXIY6Tp56b0ii60F5nBY +a8LSKYqb+sZlTgRt2IHU/gFAzHJAPB5zb2Vc+//T6l192mS8sI+Z3lgJQ8IvWaW5 +g3RI/iukDMo2He7xrXgtGukJjKOen/Y0gphb5kXApBgdw5I/yPXFhbF1WmfB13aN +M8gfhr7fuRBd+BXQ6S/q0WSNg0cwQkiA1fy0iE6xaIfeX6I44sxGBU7yKWnxfGfS +crExJdfVFTv+9duMRIjQovDAEheQBAd5ZJLnTUHmJX0pCP9Qv1Mg0rGchvVzKlSg +Q0GXLABmuyq81XwMHz9enW0xzTWmp1/9gCyL9+O/x5EeQnYqOSarWDxFg3G9qYyF +1TGAX7oj3PJ3s7HkHoBKKN3tR7pHjIi+EHkXFnbpA8Pik8rLY54kwMPHXSL153o7 +DNKyn41sx76+yBckiWKvNq6yIzRiFCcuQ8IwOVMNZ+bkw4M14HjSRs0+aDlmkvgG +Hs5tqWH0qdo5wMMp09aVizlXgTfTSZhdRxW/cUdS+XPBKJ7ogvTI/M9TDn33BzuP +oex1SeoBIRInKKMW6EipisAE9B6jnvfH5gsh2f0XpUDqX5vWBjOpxiF4hZLmPvti +nt18T+/ScdIwHebnKUob70hf3mTGxLpnPNH5eM8SdkMsJORGook= +=DhAy +-----END PGP SIGNATURE----- diff --git a/website/static/security/patches/SA-25:08/openssl-15.patch b/website/static/security/patches/SA-25:08/openssl-15.patch new file mode 100644 index 0000000000..f4678a9583 --- /dev/null +++ b/website/static/security/patches/SA-25:08/openssl-15.patch @@ -0,0 +1,173 @@ +--- crypto/openssl/crypto/cms/cms_pwri.c.orig ++++ crypto/openssl/crypto/cms/cms_pwri.c +@@ -242,7 +242,7 @@ + /* Check byte failure */ + goto err; + } +- if (inlen < (size_t)(tmp[0] - 4)) { ++ if (inlen < 4 + (size_t)tmp[0]) { + /* Invalid length value */ + goto err; + } +--- crypto/openssl/crypto/ec/ecp_sm2p256.c.orig ++++ crypto/openssl/crypto/ec/ecp_sm2p256.c +@@ -56,10 +56,6 @@ + 0xffffffffffffffff, 0xffffffff00000000, + 0xffffffffffffffff, 0xfffffffeffffffff + }; +-ALIGN32 static const BN_ULONG def_ord[P256_LIMBS] = { +- 0x53bbf40939d54123, 0x7203df6b21c6052b, +- 0xffffffffffffffff, 0xfffffffeffffffff +-}; + + ALIGN32 static const BN_ULONG ONE[P256_LIMBS] = {1, 0, 0, 0}; + +@@ -177,13 +173,6 @@ + BN_MOD_INV(out, in, ecp_sm2p256_div_by_2, ecp_sm2p256_sub, def_p); + } + +-/* Modular inverse mod order |out| = |in|^(-1) % |ord|. */ +-static ossl_inline void ecp_sm2p256_mod_ord_inverse(BN_ULONG* out, +- const BN_ULONG* in) { +- BN_MOD_INV(out, in, ecp_sm2p256_div_by_2_mod_ord, ecp_sm2p256_sub_mod_ord, +- def_ord); +-} +- + /* Point double: R <- P + P */ + static void ecp_sm2p256_point_double(P256_POINT *R, const P256_POINT *P) + { +@@ -454,52 +443,6 @@ + } + #endif + +-/* +- * Convert Jacobian coordinate point into affine coordinate (x,y) +- */ +-static int ecp_sm2p256_get_affine(const EC_GROUP *group, +- const EC_POINT *point, +- BIGNUM *x, BIGNUM *y, BN_CTX *ctx) +-{ +- ALIGN32 BN_ULONG z_inv2[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG z_inv3[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG x_aff[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG y_aff[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG point_x[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG point_y[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG point_z[P256_LIMBS] = {0}; +- +- if (EC_POINT_is_at_infinity(group, point)) { +- ECerr(ERR_LIB_EC, EC_R_POINT_AT_INFINITY); +- return 0; +- } +- +- if (ecp_sm2p256_bignum_field_elem(point_x, point->X) <= 0 +- || ecp_sm2p256_bignum_field_elem(point_y, point->Y) <= 0 +- || ecp_sm2p256_bignum_field_elem(point_z, point->Z) <= 0) { +- ECerr(ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE); +- return 0; +- } +- +- ecp_sm2p256_mod_inverse(z_inv3, point_z); +- ecp_sm2p256_sqr(z_inv2, z_inv3); +- +- if (x != NULL) { +- ecp_sm2p256_mul(x_aff, point_x, z_inv2); +- if (!bn_set_words(x, x_aff, P256_LIMBS)) +- return 0; +- } +- +- if (y != NULL) { +- ecp_sm2p256_mul(z_inv3, z_inv3, z_inv2); +- ecp_sm2p256_mul(y_aff, point_y, z_inv3); +- if (!bn_set_words(y, y_aff, P256_LIMBS)) +- return 0; +- } +- +- return 1; +-} +- + /* r = sum(scalar[i]*point[i]) */ + static int ecp_sm2p256_windowed_mul(const EC_GROUP *group, + P256_POINT *r, +@@ -689,44 +632,6 @@ + return 1; + } + +-static int ecp_sm2p256_inv_mod_ord(const EC_GROUP *group, BIGNUM *r, +- const BIGNUM *x, BN_CTX *ctx) +-{ +- int ret = 0; +- ALIGN32 BN_ULONG t[P256_LIMBS] = {0}; +- ALIGN32 BN_ULONG out[P256_LIMBS] = {0}; +- +- if (bn_wexpand(r, P256_LIMBS) == NULL) { +- ECerr(ERR_LIB_EC, ERR_R_BN_LIB); +- goto err; +- } +- +- if ((BN_num_bits(x) > 256) || BN_is_negative(x)) { +- BIGNUM *tmp; +- +- if ((tmp = BN_CTX_get(ctx)) == NULL +- || !BN_nnmod(tmp, x, group->order, ctx)) { +- ECerr(ERR_LIB_EC, ERR_R_BN_LIB); +- goto err; +- } +- x = tmp; +- } +- +- if (!ecp_sm2p256_bignum_field_elem(t, x)) { +- ECerr(ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE); +- goto err; +- } +- +- ecp_sm2p256_mod_ord_inverse(out, t); +- +- if (!bn_set_words(r, out, P256_LIMBS)) +- goto err; +- +- ret = 1; +-err: +- return ret; +-} +- + const EC_METHOD *EC_GFp_sm2p256_method(void) + { + static const EC_METHOD ret = { +@@ -747,7 +652,7 @@ + ossl_ec_GFp_simple_point_copy, + ossl_ec_GFp_simple_point_set_to_infinity, + ossl_ec_GFp_simple_point_set_affine_coordinates, +- ecp_sm2p256_get_affine, ++ ossl_ec_GFp_simple_point_get_affine_coordinates, + 0, 0, 0, + ossl_ec_GFp_simple_add, + ossl_ec_GFp_simple_dbl, +@@ -763,7 +668,7 @@ + ecp_sm2p256_field_mul, + ecp_sm2p256_field_sqr, + 0 /* field_div */, +- 0 /* field_inv */, ++ ossl_ec_GFp_simple_field_inv, + 0 /* field_encode */, + 0 /* field_decode */, + 0 /* field_set_to_one */, +@@ -779,7 +684,7 @@ + ossl_ecdsa_simple_sign_setup, + ossl_ecdsa_simple_sign_sig, + ossl_ecdsa_simple_verify_sig, +- ecp_sm2p256_inv_mod_ord, ++ 0, /* use constant‑time fallback for inverse mod order */ + 0, /* blind_coordinates */ + 0, /* ladder_pre */ + 0, /* ladder_step */ +--- crypto/openssl/crypto/http/http_lib.c.orig ++++ crypto/openssl/crypto/http/http_lib.c +@@ -263,6 +263,7 @@ + /* strip leading '[' and trailing ']' from escaped IPv6 address */ + sl -= 2; + strncpy(host, server + 1, sl); ++ host[sl] = '\0'; + server = host; + } + diff --git a/website/static/security/patches/SA-25:08/openssl-15.patch.asc b/website/static/security/patches/SA-25:08/openssl-15.patch.asc new file mode 100644 index 0000000000..452a1fbaaa --- /dev/null +++ b/website/static/security/patches/SA-25:08/openssl-15.patch.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmjb+0QACgkQbljekB8A +Gu+tUg//daQG6OHScuUNTvwR9d3kOqeiEcA2hiaMg7BuPlaimq6+o4/Nsrxuu5z1 +l2l1seZXGP1iTXAWAjxL1d8ceVBJ4mqO3yhIg5qDF3rlhCNpHf8Fphl0yu7SQohx +wBVx2RcZ8ldq+TmvgNywWeEeuuJ5D4CukPHPAjIv1+/NB/P+NsrkC37YZ88bfckF +0oAqF6b2KONV3hBVVSAjMhoR3esDOoqp7yGwpzBsiDb7EANj+wMd1aYuUtp3bOHH +dZa0uGLEBITzd2s/rGEfsF7os0UdJFv0GJ2SZXxHUV80coIyKSxccFAwnxI1/CVY +8ji20zfYtdVmwn2ZhnVCO3n95HqAsiglX35LrrXSoohC3nx9XcCQr3BlYc6G6icC +9RnCeI6sFjAQ7x46fnYy51BrfgTmmRrTmGDbbGrrwphNP8QrrrXBRD7TIaHKmQgj +nTS7VsQya/X9pnQHTIxjmOPQ6gVLrZ0w6nBRyNC8HkjcCv+jOLXcyf+8flNTI84/ +dmuh9c/xDqzhXgUaEe4SHW9NtL9ohV7/l/Qt1FgXOV/VzHuK+kLtCXz9KskIsUYc +kKg0UPFuP0t0UgDimkXx3eLctEyfmJtbL/j1iLUqV442REkK+QttyJILV0GmMpQy +KvIHb9/sQnC65TpP3oyxbVcrasosNRhvaILmtzXvIInlqHC0OhQ= +=lGPI +-----END PGP SIGNATURE----- |