From cd0b1b947d7afe02b6deaa176ae6767f25818f1b Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Wed, 26 Apr 2023 12:39:46 -0400 Subject: [PATCH 1/3] Vendor import of libfido2 1.11.0 --- CMakeLists.txt | 65 ++++-- NEWS | 11 + README.adoc | 123 +++++++--- examples/CMakeLists.txt | 11 - examples/info.c | 15 +- examples/select.c | 4 +- examples/setpin.c | 2 +- fuzz/CMakeLists.txt | 6 + fuzz/Dockerfile | 16 +- fuzz/Makefile | 25 +- fuzz/dummy.h | 4 +- fuzz/export.gnu | 14 +- fuzz/functions.txt | 242 +++++++++++--------- fuzz/fuzz_mgmt.c | 5 +- fuzz/fuzz_pcsc.c | 266 ++++++++++++++++++++++ fuzz/mutator_aux.c | 9 +- fuzz/mutator_aux.h | 12 +- fuzz/pcsc.c | 152 +++++++++++++ fuzz/report.tgz | Bin 323706 -> 341098 bytes fuzz/summary.txt | 64 +++--- fuzz/wiredata_fido2.h | 76 ++++++- fuzz/wrap.c | 51 ++++- fuzz/wrapped.sym | 9 + man/CMakeLists.txt | 27 +-- man/fido2-token.1 | 24 +- man/fido_assert_new.3 | 6 +- man/fido_assert_set_authdata.3 | 6 +- man/fido_cbor_info_new.3 | 13 +- man/fido_dev_enable_entattest.3 | 4 +- man/fido_dev_info_manifest.3 | 4 +- openbsd-compat/bsd-asprintf.c | 88 ++++++++ openbsd-compat/openbsd-compat.h | 4 + regress/CMakeLists.txt | 39 +++- regress/assert.c | 13 +- regress/compress.c | 267 ++++++++++++++++++++++ regress/cred.c | 14 +- regress/dev.c | 42 +++- regress/eddsa.c | 158 +++++++++++++ regress/es256.c | 198 ++++++++++++++++ regress/rs256.c | 200 ++++++++++++++++ src/CMakeLists.txt | 22 +- src/compress.c | 144 ++++++++++-- src/dev.c | 228 +++---------------- src/eddsa.c | 11 + src/es256.c | 65 ++++-- src/export.gnu | 3 +- src/export.llvm | 3 +- src/export.msvc | 3 +- src/extern.h | 22 +- src/fido.h | 5 +- src/fido/types.h | 31 +-- src/hid_freebsd.c | 8 +- src/hid_openbsd.c | 100 ++++---- src/hid_osx.c | 25 +- src/info.c | 8 + src/nfc.c | 320 ++++++++++++++++++++++++++ src/nfc_linux.c | 374 ++++-------------------------- src/pcsc.c | 389 ++++++++++++++++++++++++++++++++ src/rs1.c | 2 +- src/rs256.c | 28 ++- src/touch.c | 108 +++++++++ src/util.c | 30 +++ src/webauthn.h | 75 +++++- src/winhello.c | 90 +++++++- tools/CMakeLists.txt | 7 - tools/token.c | 9 + udev/70-u2f.rules | 3 + udev/fidodevs | 1 + windows/build.ps1 | 26 +-- windows/const.ps1 | 6 +- windows/cygwin.ps1 | 1 + windows/release.ps1 | 20 +- 72 files changed, 3466 insertions(+), 990 deletions(-) create mode 100644 fuzz/fuzz_pcsc.c create mode 100644 fuzz/pcsc.c create mode 100644 openbsd-compat/bsd-asprintf.c create mode 100644 regress/compress.c create mode 100644 regress/eddsa.c create mode 100644 regress/es256.c create mode 100644 regress/rs256.c create mode 100644 src/nfc.c create mode 100644 src/pcsc.c create mode 100644 src/touch.c create mode 100644 src/util.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 11a51ac5a645..2f10727d40e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2018-2021 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. @@ -28,18 +28,19 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_COLOR_MAKEFILE OFF) set(CMAKE_VERBOSE_MAKEFILE ON) set(FIDO_MAJOR "1") -set(FIDO_MINOR "10") +set(FIDO_MINOR "11") set(FIDO_PATCH "0") set(FIDO_VERSION ${FIDO_MAJOR}.${FIDO_MINOR}.${FIDO_PATCH}) option(BUILD_EXAMPLES "Build example programs" ON) option(BUILD_MANPAGES "Build man pages" ON) -option(BUILD_SHARED_LIBS "Build the shared library" ON) -option(BUILD_STATIC_LIBS "Build the static library" ON) +option(BUILD_SHARED_LIBS "Build a shared library" ON) +option(BUILD_STATIC_LIBS "Build a static library" ON) option(BUILD_TOOLS "Build tool programs" ON) option(FUZZ "Enable fuzzing instrumentation" OFF) option(LIBFUZZER "Build libfuzzer harnesses" OFF) option(USE_HIDAPI "Use hidapi as the HID backend" OFF) +option(USE_PCSC "Enable experimental PCSC support" OFF) option(USE_WINHELLO "Abstract Windows Hello as a FIDO device" ON) option(NFC_LINUX "Enable NFC support on Linux" ON) @@ -91,6 +92,7 @@ check_include_files(sys/random.h HAVE_SYS_RANDOM_H) check_include_files(unistd.h HAVE_UNISTD_H) check_symbol_exists(arc4random_buf stdlib.h HAVE_ARC4RANDOM_BUF) +check_symbol_exists(asprintf stdio.h HAVE_ASPRINTF) check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME) check_symbol_exists(explicit_bzero string.h HAVE_EXPLICIT_BZERO) check_symbol_exists(freezero stdlib.h HAVE_FREEZERO) @@ -116,6 +118,7 @@ try_compile(HAVE_POSIX_IOCTL list(APPEND CHECK_VARIABLES HAVE_ARC4RANDOM_BUF + HAVE_ASPRINTF HAVE_CBOR_H HAVE_CLOCK_GETTIME HAVE_ENDIAN_H @@ -166,8 +169,8 @@ if(MSVC) "building under msvc") endif() set(CBOR_LIBRARIES cbor) - set(ZLIB_LIBRARIES zlib) - set(CRYPTO_LIBRARIES crypto-47) + set(ZLIB_LIBRARIES zlib1) + set(CRYPTO_LIBRARIES crypto-49) set(MSVC_DISABLED_WARNINGS_LIST "C4152" # nonstandard extension used: function/data pointer # conversion in expression; @@ -237,6 +240,17 @@ else() add_compile_options(-Wno-unused-parameter) endif() + if(FUZZ) + set(USE_PCSC ON) + add_definitions(-DFIDO_FUZZ) + endif() + + # If building with PCSC, look for pcsc-lite. + if(USE_PCSC AND NOT (APPLE OR CYGWIN OR MSYS OR MINGW)) + pkg_search_module(PCSC libpcsclite REQUIRED) + set(PCSC_LIBRARIES pcsclite) + endif() + if(USE_HIDAPI) add_definitions(-DUSE_HIDAPI) pkg_search_module(HIDAPI hidapi${HIDAPI_SUFFIX} REQUIRED) @@ -244,7 +258,7 @@ else() endif() if(NFC_LINUX) - add_definitions(-DNFC_LINUX) + add_definitions(-DUSE_NFC) endif() if(WIN32) @@ -285,10 +299,6 @@ else() add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) endif() - if(FUZZ) - add_definitions(-DFIDO_FUZZ) - endif() - if(LIBFUZZER) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer-no-link") endif() @@ -309,6 +319,10 @@ elseif(WIN32) endif() add_definitions(-DTLS=${TLS}) +if(USE_PCSC) + add_definitions(-DUSE_PCSC) +endif() + # export list if(APPLE AND (CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")) @@ -345,16 +359,18 @@ else() " /def:\"${CMAKE_CURRENT_SOURCE_DIR}/src/export.msvc\"") endif() -include_directories(${CMAKE_SOURCE_DIR}/src) +include_directories(${PROJECT_SOURCE_DIR}/src) include_directories(${CBOR_INCLUDE_DIRS}) include_directories(${CRYPTO_INCLUDE_DIRS}) include_directories(${HIDAPI_INCLUDE_DIRS}) +include_directories(${PCSC_INCLUDE_DIRS}) include_directories(${UDEV_INCLUDE_DIRS}) include_directories(${ZLIB_INCLUDE_DIRS}) link_directories(${CBOR_LIBRARY_DIRS}) link_directories(${CRYPTO_LIBRARY_DIRS}) link_directories(${HIDAPI_LIBRARY_DIRS}) +link_directories(${PCSC_LIBRARY_DIRS}) link_directories(${UDEV_LIBRARY_DIRS}) link_directories(${ZLIB_LIBRARY_DIRS}) @@ -372,9 +388,14 @@ message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") message(STATUS "CMAKE_C_COMPILER_ID: ${CMAKE_C_COMPILER_ID}") message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") +message(STATUS "CMAKE_CROSSCOMPILING: ${CMAKE_CROSSCOMPILING}") +message(STATUS "CMAKE_GENERATOR_PLATFORM: ${CMAKE_GENERATOR_PLATFORM}") +message(STATUS "CMAKE_HOST_SYSTEM_NAME: ${CMAKE_HOST_SYSTEM_NAME}") +message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR: ${CMAKE_HOST_SYSTEM_PROCESSOR}") message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") message(STATUS "CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") +message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") message(STATUS "CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}") message(STATUS "CRYPTO_INCLUDE_DIRS: ${CRYPTO_INCLUDE_DIRS}") message(STATUS "CRYPTO_LIBRARIES: ${CRYPTO_LIBRARIES}") @@ -392,6 +413,10 @@ if(USE_HIDAPI) message(STATUS "HIDAPI_LIBRARY_DIRS: ${HIDAPI_LIBRARY_DIRS}") message(STATUS "HIDAPI_VERSION: ${HIDAPI_VERSION}") endif() +message(STATUS "PCSC_INCLUDE_DIRS: ${PCSC_INCLUDE_DIRS}") +message(STATUS "PCSC_LIBRARIES: ${PCSC_LIBRARIES}") +message(STATUS "PCSC_LIBRARY_DIRS: ${PCSC_LIBRARY_DIRS}") +message(STATUS "PCSC_VERSION: ${PCSC_VERSION}") message(STATUS "LIBFUZZER: ${LIBFUZZER}") message(STATUS "TLS: ${TLS}") message(STATUS "UDEV_INCLUDE_DIRS: ${UDEV_INCLUDE_DIRS}") @@ -400,10 +425,22 @@ message(STATUS "UDEV_LIBRARY_DIRS: ${UDEV_LIBRARY_DIRS}") message(STATUS "UDEV_RULES_DIR: ${UDEV_RULES_DIR}") message(STATUS "UDEV_VERSION: ${UDEV_VERSION}") message(STATUS "USE_HIDAPI: ${USE_HIDAPI}") +message(STATUS "USE_PCSC: ${USE_PCSC}") message(STATUS "USE_WINHELLO: ${USE_WINHELLO}") message(STATUS "NFC_LINUX: ${NFC_LINUX}") +if(BUILD_SHARED_LIBS) + set(_FIDO2_LIBRARY fido2_shared) +elseif(BUILD_STATIC_LIBS) + set(_FIDO2_LIBRARY fido2) +else() + message(FATAL_ERROR "Nothing to build (BUILD_*_LIBS=OFF)") +endif() + +enable_testing() + subdirs(src) +subdirs(regress) if(BUILD_EXAMPLES) subdirs(examples) endif() @@ -415,10 +452,6 @@ if(BUILD_MANPAGES) endif() if(NOT WIN32) - if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT FUZZ) - enable_testing() - subdirs(regress) - endif() if(FUZZ) subdirs(fuzz) endif() diff --git a/NEWS b/NEWS index a48b685156c1..f5bd414297dd 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +* Version 1.11.0 (2022-05-03) + ** Experimental PCSC support; enable with -DUSE_PCSC. + ** Improved OpenSSL 3.0 compatibility. + ** Use RFC1951 raw deflate to compress CTAP 2.1 largeBlobs. + ** winhello: advertise "uv" instead of "clientPin". + ** winhello: support hmac-secret in fido_dev_get_assert(). + ** New API calls: + - fido_cbor_info_maxlargeblob. + ** Documentation and reliability fixes. + ** Separate build and regress targets. + * Version 1.10.0 (2022-01-17) ** hid_osx: handle devices with paths > 511 bytes; gh#462. ** bio: fix CTAP2 canonical CBOR encoding in fido_bio_dev_enroll_*(); gh#480. diff --git a/README.adoc b/README.adoc index 114cc5eed762..c9cdafb5fea8 100644 --- a/README.adoc +++ b/README.adoc @@ -7,7 +7,7 @@ image:https://github.com/yubico/libfido2/workflows/fuzzer/badge.svg["Fuzz Status image:https://oss-fuzz-build-logs.storage.googleapis.com/badges/libfido2.svg["Fuzz Status (oss-fuzz)", link="https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libfido2"] *libfido2* provides library functionality and command-line tools to -communicate with a FIDO device over USB, and to verify attestation and +communicate with a FIDO device over USB or NFC, and to verify attestation and assertion signatures. *libfido2* supports the FIDO U2F (CTAP 1) and FIDO2 (CTAP 2) protocols. @@ -23,8 +23,6 @@ file for the full license text. *libfido2* is known to work on Linux, macOS, Windows, OpenBSD, and FreeBSD. -NFC support is available on Linux and Windows. - === Documentation Documentation is available in troff and HTML formats. An @@ -38,19 +36,29 @@ is also available. * Perl: https://github.com/jacquesg/p5-FIDO-Raw[p5-FIDO-Raw] * Rust: https://github.com/PvdBerg1998/libfido2[libfido2] +=== Releases + +The current release of *libfido2* is 1.11.0. Signed release tarballs are +available at Yubico's +https://developers.yubico.com/libfido2/Releases[release page]. + +=== Dependencies + +*libfido2* depends on https://github.com/pjk/libcbor[libcbor], +https://www.openssl.org[OpenSSL] 1.1 or newer, and https://zlib.net[zlib]. +On Linux, libudev +(part of https://www.freedesktop.org/wiki/Software/systemd[systemd]) is also +required. + === Installation -==== Releases +==== Fedora 35 and 34 -The current release of *libfido2* is 1.10.0. Please consult Yubico's -https://developers.yubico.com/libfido2/Releases[release page] for source -and binary releases. + $ sudo dnf install libfido2 libfido2-devel fido2-tools -==== Ubuntu 20.04 (Focal) +==== Ubuntu 22.04 (Jammy) and 20.04 (Focal) - $ sudo apt install libfido2-1 - $ sudo apt install libfido2-dev - $ sudo apt install libfido2-doc + $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools Alternatively, newer versions of *libfido2* are available in Yubico's PPA. Follow the instructions for Ubuntu 18.04 (Bionic) below. @@ -60,33 +68,10 @@ Follow the instructions for Ubuntu 18.04 (Bionic) below. $ sudo apt install software-properties-common $ sudo apt-add-repository ppa:yubico/stable $ sudo apt update - $ sudo apt install libfido2-dev + $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools -==== macOS - - $ brew install libfido2 - -Or from source, on UNIX-like systems: - - $ cmake -B build - $ make -C build - $ sudo make -C build install - -Depending on the platform, -https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] may need to -be installed, or the PKG_CONFIG_PATH environment variable set. - -*libfido2* depends on https://github.com/pjk/libcbor[libcbor], -https://www.openssl.org[OpenSSL] 1.1 or newer, and https://zlib.net[zlib]. -On Linux, libudev -(part of https://www.freedesktop.org/wiki/Software/systemd[systemd]) is also -required. - -For complete, OS-specific installation instructions, please refer to the -`.actions/` (Linux, macOS) and `windows/` directories. - -On Linux, you will need to add a udev rule to be able to access the FIDO -device, or run as root. For example, the udev rule may contain the following: +On Linux, you may need to add a udev rule to be able to access the FIDO +device. For example, the udev rule may contain the following: ---- #udev rule for allowing HID access to Yubico devices for FIDO support. @@ -94,3 +79,67 @@ device, or run as root. For example, the udev rule may contain the following: KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \ MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050" ---- + +==== macOS + + $ brew install libfido2 + +==== Windows + +Please consult Yubico's +https://developers.yubico.com/libfido2/Releases[release page] for ARM, ARM64, +Win32, and Win64 artefacts. + +=== Building from source + +On UNIX-like systems: + + $ cmake -B build + $ make -C build + $ sudo make -C build install + +Depending on the platform, +https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] may need to +be installed, or the PKG_CONFIG_PATH environment variable set. For complete, +OS-specific build instructions, please refer to the `.actions/` +(Linux, macOS, BSD) and `windows/` directories. + +=== Build-time Customisation + +*libfido2* supports a number of CMake options. Some of the options require +additional dependencies. Options that are disabled by default are not +officially supported. + +[%autowidth.stretch] +|=== +|*Option* |*Description* |*Default* +| BUILD_EXAMPLES | Build example programs | ON +| BUILD_MANPAGES | Build man pages | ON +| BUILD_SHARED_LIBS | Build a shared library | ON +| BUILD_STATIC_LIBS | Build a static library | ON +| BUILD_TOOLS | Build auxiliary tools | ON +| FUZZ | Enable fuzzing instrumentation | OFF +| LIBFUZZER | Build libfuzzer harnesses | OFF +| NFC_LINUX | Enable netlink NFC support on Linux | ON +| USE_HIDAPI | Use hidapi as the HID backend | OFF +| USE_PCSC | Enable experimental PCSC support | OFF +| USE_WINHELLO | Abstract Windows Hello as a FIDO device | ON +|=== + +The USE_HIDAPI option requires https://github.com/libusb/hidapi[hidapi]. The +USE_PCSC option requires https://github.com/LudovicRousseau/PCSC[pcsc-lite] on +Linux. + +=== Development + +Please use https://github.com/Yubico/libfido2/discussions[GitHub Discussions] +to ask questions and suggest features, and +https://github.com/Yubico/libfido2/pulls[GitHub pull-requests] for code +contributions. + +=== Reporting bugs + +Please use https://github.com/Yubico/libfido2/issues[GitHub Issues] to report +bugs. To report security issues, please contact security@yubico.com. A PGP +public key can be found at +https://www.yubico.com/support/security-advisories/issue-rating-system/. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index ad3d44faad6b..e558b620fd6e 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -13,17 +13,6 @@ if(WIN32 AND BUILD_SHARED_LIBS AND NOT CYGWIN AND NOT MSYS) list(APPEND COMPAT_SOURCES ../openbsd-compat/posix_win.c) endif() -# set the library to link against -if(BUILD_STATIC_LIBS) - # drop -rdynamic - set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") - set(_FIDO2_LIBRARY fido2) -elseif(BUILD_SHARED_LIBS) - set(_FIDO2_LIBRARY fido2_shared) -else() - set(_FIDO2_LIBRARY ${CRYPTO_LIBRARIES} fido2) -endif() - # enable -Wconversion -Wsign-conversion if(NOT MSVC) set_source_files_properties(assert.c cred.c info.c manifest.c reset.c diff --git a/examples/info.c b/examples/info.c index 72b786a8bd83..1098580eec6f 100644 --- a/examples/info.c +++ b/examples/info.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -182,6 +182,16 @@ print_maxcredidlen(uint64_t maxcredidlen) printf("maxcredlen: %d\n", (int)maxcredidlen); } +/* + * Auxiliary function to print the maximum size of an authenticator's + * serialized largeBlob array. + */ +static void +print_maxlargeblob(uint64_t maxlargeblob) +{ + printf("maxlargeblob: %d\n", (int)maxlargeblob); +} + /* * Auxiliary function to print an authenticator's firmware version on stdout. */ @@ -264,6 +274,9 @@ getinfo(const char *path) /* print maximum length of a credential ID */ print_maxcredidlen(fido_cbor_info_maxcredidlen(ci)); + /* print maximum length of largeBlob array */ + print_maxlargeblob(fido_cbor_info_maxlargeblob(ci)); + /* print firmware version */ print_fwversion(fido_cbor_info_fwversion(ci)); diff --git a/examples/select.c b/examples/select.c index 6ede9b490a95..05f6a331fd4c 100644 --- a/examples/select.c +++ b/examples/select.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -23,7 +23,7 @@ nanosleep(const struct timespec *rqtp, struct timespec *rmtp) return (-1); } - Sleep(rqtp->tv_nsec / 1000000); + Sleep((DWORD)(rqtp->tv_sec * 1000) + (DWORD)(rqtp->tv_nsec / 1000000)); return (0); } diff --git a/examples/setpin.c b/examples/setpin.c index 4b9e792769d9..7fa0dcc764f3 100644 --- a/examples/setpin.c +++ b/examples/setpin.c @@ -29,7 +29,7 @@ setpin(const char *path, const char *pin, const char *oldpin) errx(1, "fido_dev_open: %s (0x%x)", fido_strerr(r), r); if ((r = fido_dev_set_pin(dev, pin, oldpin)) != FIDO_OK) - errx(1, "fido_setpin: %s (0x%x)", fido_strerr(r), r); + errx(1, "fido_dev_set_pin: %s (0x%x)", fido_strerr(r), r); if ((r = fido_dev_close(dev)) != FIDO_OK) errx(1, "fido_dev_close: %s (0x%x)", fido_strerr(r), r); diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index b1eebd55481b..4b6fdfbfca4f 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -61,3 +61,9 @@ add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCE target_compile_options(fuzz_largeblob PRIVATE ${FUZZ_LDFLAGS}) set_target_properties(fuzz_largeblob PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) target_link_libraries(fuzz_largeblob fido2_shared) + +# fuzz_pcsc +add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) +target_compile_options(fuzz_pcsc PRIVATE ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_pcsc PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +target_link_libraries(fuzz_pcsc fido2_shared) diff --git a/fuzz/Dockerfile b/fuzz/Dockerfile index aefe1980ada4..a899df2c3ddd 100644 --- a/fuzz/Dockerfile +++ b/fuzz/Dockerfile @@ -1,12 +1,16 @@ -# Copyright (c) 2019-2021 Yubico AB. All rights reserved. +# Copyright (c) 2019-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. FROM ubuntu:focal ENV DEBIAN_FRONTEND=noninteractive +ENV CC=clang-14 +ENV CXX=clang++-14 RUN apt-get update -RUN apt-get install -y clang-12 cmake git libssl-dev libudev-dev make pkg-config -RUN apt-get install -y zlib1g-dev -RUN git clone --branch v0.9.0 https://github.com/PJK/libcbor -RUN git clone https://github.com/yubico/libfido2 -RUN CC=clang-12 CXX=clang++-12 /libfido2/fuzz/build-coverage /libcbor /libfido2 +RUN apt-get install -y cmake git libssl-dev libudev-dev make pkg-config +RUN apt-get install -y libpcsclite-dev zlib1g-dev software-properties-common +RUN git clone --branch v0.9.0 --depth=1 https://github.com/PJK/libcbor +RUN git clone --depth=1 https://github.com/yubico/libfido2 +WORKDIR /libfido2 +RUN ./.actions/setup_clang "${CC}" +RUN ./fuzz/build-coverage /libcbor /libfido2 diff --git a/fuzz/Makefile b/fuzz/Makefile index ce3fee73c69c..6abf59c3e69d 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -1,13 +1,13 @@ -# Copyright (c) 2019-2021 Yubico AB. All rights reserved. +# Copyright (c) 2019-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -IMAGE := libfido2-coverage:1.10.0 +IMAGE := libfido2-coverage:1.11.2 RUNNER := libfido2-runner -PROFDATA := llvm-profdata-12 -COV := llvm-cov-12 +PROFDATA := llvm-profdata-14 +COV := llvm-cov-14 TARGETS := fuzz_assert fuzz_bio fuzz_cred fuzz_credman fuzz_hid \ - fuzz_largeblob fuzz_netlink fuzz_mgmt + fuzz_largeblob fuzz_netlink fuzz_mgmt fuzz_pcsc CORPORA := $(foreach f,${TARGETS},${f}/corpus) MINIFY := $(foreach f,${TARGETS},/minify/${f}/corpus) REMOTE := gs://libfido2-corpus.clusterfuzz-external.appspot.com @@ -24,7 +24,7 @@ run: build sync: run tar Ccf .. - src fuzz | docker exec -i ${RUNNER} tar Cxf /libfido2 - - docker exec ${RUNNER} make -C libfido2/build + docker exec ${RUNNER} make -C /libfido2/build corpus: sync docker exec ${RUNNER} /bin/sh -c 'cd /libfido2/fuzz && rm -rf ${TARGETS}' @@ -45,23 +45,24 @@ corpus.tgz-: ${MINIFY} profdata: run docker exec ${RUNNER} /bin/sh -c 'rm -f /$@ && ${PROFDATA} \ - merge -sparse profraw/* -o $@' + merge -sparse /profraw/* -o /$@' report.tgz: profdata docker exec ${RUNNER} /bin/sh -c 'rm -rf /report && mkdir /report && \ ${COV} show -format=html -tab-size=8 -instr-profile=/$< \ - --show-branch-summary=false -output-dir=/report \ - /libfido2/build/src/libfido2.so' + -ignore-filename-regex=pcsclite.h --show-branch-summary=false \ + -output-dir=/report /libfido2/build/src/libfido2.so' docker exec -i ${RUNNER} tar Czcf / - report > $@ summary.txt: profdata docker exec ${RUNNER} ${COV} report -use-color=false \ - --show-branch-summary=false /libfido2/build/src/libfido2.so \ - -instr-profile=/$< > $@ + -ignore-filename-regex=pcsclite.h --show-branch-summary=false \ + /libfido2/build/src/libfido2.so -instr-profile=/$< > $@ functions.txt: profdata docker exec ${RUNNER} /bin/sh -c '${COV} report -use-color=false \ - -show-functions --show-branch-summary=false -instr-profile=/$< \ + -ignore-filename-regex=pcsclite.h -show-functions \ + --show-branch-summary=false -instr-profile=/$< \ /libfido2/build/src/libfido2.so /libfido2/src/*.[ch]' > $@ clean: run diff --git a/fuzz/dummy.h b/fuzz/dummy.h index 95744eba634b..b0225440e5da 100644 --- a/fuzz/dummy.h +++ b/fuzz/dummy.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -18,6 +18,8 @@ const char dummy_rp_name[] = "sweet home localhost"; const char dummy_user_icon[] = "an icon"; const char dummy_user_name[] = "john smith"; const char dummy_user_nick[] = "jsmith"; +const char dummy_pcsc_list[] = "reader1\0reader2\0reader3\0\0"; +const char dummy_pcsc_path[] = "pcsc://slot7"; const uint8_t dummy_id[] = { 0x5e, 0xd2 }; const uint8_t dummy_user_id[] = { diff --git a/fuzz/export.gnu b/fuzz/export.gnu index cac142ae970e..0ce72434fbd8 100644 --- a/fuzz/export.gnu +++ b/fuzz/export.gnu @@ -85,10 +85,11 @@ fido_cbor_info_extensions_len; fido_cbor_info_extensions_ptr; fido_cbor_info_free; - fido_cbor_info_maxmsgsiz; fido_cbor_info_maxcredbloblen; fido_cbor_info_maxcredcntlst; fido_cbor_info_maxcredidlen; + fido_cbor_info_maxlargeblob; + fido_cbor_info_maxmsgsiz; fido_cbor_info_fwversion; fido_cbor_info_new; fido_cbor_info_options_len; @@ -212,6 +213,7 @@ fido_dev_protocol; fido_dev_reset; fido_dev_set_io_functions; + fido_dev_set_pcsc; fido_dev_set_pin; fido_dev_set_pin_minlen; fido_dev_set_pin_minlen_rpid; @@ -237,6 +239,13 @@ fido_nl_get_nfc_target; fido_nl_new; fido_nl_power_nfc; + fido_pcsc_close; + fido_pcsc_manifest; + fido_pcsc_open; + fido_pcsc_read; + fido_pcsc_rx; + fido_pcsc_tx; + fido_pcsc_write; fido_set_log_handler; fido_strerr; rs256_pk_free; @@ -246,8 +255,11 @@ rs256_pk_new; rs256_pk_to_EVP_PKEY; prng_init; + prng_up; fuzz_clock_reset; set_netlink_io_functions; + set_pcsc_parameters; + set_pcsc_io_functions; set_udev_parameters; uniform_random; local: diff --git a/fuzz/functions.txt b/fuzz/functions.txt index 946682d07d00..9c1a03cffb0b 100644 --- a/fuzz/functions.txt +++ b/fuzz/functions.txt @@ -1,16 +1,16 @@ File '/libfido2/src/aes256.c': Name Regions Miss Cover Lines Miss Cover -------------------------------------------------------------------------------------------------------- -aes256_cbc_enc 3 0 100.00% 4 0 100.00% -aes256_cbc_dec 3 0 100.00% 4 0 100.00% +aes256_cbc_enc 4 0 100.00% 4 0 100.00% +aes256_cbc_dec 4 0 100.00% 4 0 100.00% aes256_gcm_enc 1 0 100.00% 3 0 100.00% aes256_gcm_dec 1 0 100.00% 3 0 100.00% aes256.c:aes256_cbc_fips 26 2 92.31% 42 7 83.33% aes256.c:aes256_cbc 29 1 96.55% 36 3 91.67% aes256.c:aes256_cbc_proto1 1 0 100.00% 5 0 100.00% -aes256.c:aes256_gcm 51 1 98.04% 60 4 93.33% +aes256.c:aes256_gcm 52 1 98.08% 60 4 93.33% -------------------------------------------------------------------------------------------------------- -TOTAL 115 4 96.52% 157 14 91.08% +TOTAL 118 4 96.61% 157 14 91.08% File '/libfido2/src/assert.c': Name Regions Miss Cover Lines Miss Cover @@ -18,7 +18,7 @@ Name Regions Miss Cover Lines Miss fido_dev_get_assert 40 0 100.00% 35 0 100.00% fido_check_flags 13 0 100.00% 15 0 100.00% fido_get_signed_hash 36 0 100.00% 46 0 100.00% -fido_assert_verify 48 4 91.67% 67 5 92.54% +fido_assert_verify 48 4 91.67% 67 7 89.55% fido_assert_set_clientdata 12 12 0.00% 11 11 0.00% fido_assert_set_clientdata_hash 8 0 100.00% 6 0 100.00% fido_assert_set_hmac_salt 10 0 100.00% 6 0 100.00% @@ -26,7 +26,7 @@ fido_assert_set_hmac_secret 12 12 0.00% 7 7 fido_assert_set_rp 12 0 100.00% 11 0 100.00% fido_assert_allow_cred 13 2 84.62% 22 3 86.36% fido_assert_set_extensions 14 0 100.00% 10 0 100.00% -fido_assert_set_options 6 6 0.00% 5 5 0.00% +fido_assert_set_options 8 8 0.00% 5 5 0.00% fido_assert_set_up 2 0 100.00% 4 0 100.00% fido_assert_set_uv 2 0 100.00% 4 0 100.00% fido_assert_clientdata_hash_ptr 1 0 100.00% 3 0 100.00% @@ -72,7 +72,7 @@ assert.c:check_extensions 5 0 100.00% 9 0 assert.c:fido_assert_reset_extattr 1 0 100.00% 5 0 100.00% assert.c:fido_assert_clean_authdata 1 0 100.00% 5 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 563 40 92.90% 694 40 94.24% +TOTAL 565 42 92.57% 694 42 93.95% File '/libfido2/src/authkey.c': Name Regions Miss Cover Lines Miss Cover @@ -88,10 +88,10 @@ TOTAL 44 0 100.00% 59 0 File '/libfido2/src/bio.c': Name Regions Miss Cover Lines Miss Cover ----------------------------------------------------------------------------------------------------------------- -fido_bio_dev_get_template_array 5 2 60.00% 6 0 100.00% +fido_bio_dev_get_template_array 5 2 60.00% 6 1 83.33% fido_bio_dev_set_template_name 7 0 100.00% 6 0 100.00% -fido_bio_dev_enroll_begin 25 2 92.00% 31 0 100.00% -fido_bio_dev_enroll_continue 5 2 60.00% 6 0 100.00% +fido_bio_dev_enroll_begin 25 2 92.00% 31 1 96.77% +fido_bio_dev_enroll_continue 5 2 60.00% 6 1 83.33% fido_bio_dev_enroll_cancel 1 1 0.00% 4 4 0.00% fido_bio_dev_enroll_remove 1 0 100.00% 4 0 100.00% fido_bio_dev_get_info 1 0 100.00% 4 0 100.00% @@ -138,7 +138,7 @@ bio.c:bio_reset_template_array 4 0 100.00% 7 0 bio.c:bio_reset_template 1 0 100.00% 5 0 100.00% bio.c:bio_reset_enroll 3 0 100.00% 6 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 419 20 95.23% 559 21 96.24% +TOTAL 419 20 95.23% 559 24 95.71% File '/libfido2/src/blob.c': Name Regions Miss Cover Lines Miss Cover @@ -187,9 +187,9 @@ cbor_encode_str_array 18 0 100.00% 19 0 cbor_encode_cred_ext 55 0 100.00% 50 0 100.00% cbor_encode_cred_opt 13 0 100.00% 11 0 100.00% cbor_encode_assert_opt 13 0 100.00% 11 0 100.00% -cbor_encode_pin_auth 20 1 95.00% 22 3 86.36% +cbor_encode_pin_auth 21 1 95.24% 22 3 86.36% cbor_encode_pin_opt 4 0 100.00% 8 0 100.00% -cbor_encode_change_pin_auth 31 1 96.77% 36 3 91.67% +cbor_encode_change_pin_auth 32 1 96.88% 36 3 91.67% cbor_encode_assert_ext 33 0 100.00% 32 0 100.00% cbor_decode_fmt 13 0 100.00% 15 0 100.00% cbor_decode_pubkey 21 1 95.24% 30 2 93.33% @@ -200,7 +200,7 @@ cbor_decode_uint64 4 0 100.00% 8 0 cbor_decode_cred_id 8 0 100.00% 9 0 100.00% cbor_decode_user 8 0 100.00% 9 0 100.00% cbor_decode_rp_entity 8 0 100.00% 9 0 100.00% -cbor_build_uint 10 1 90.00% 9 2 77.78% +cbor_build_uint 10 1 90.00% 9 1 88.89% cbor_array_append 17 0 100.00% 21 0 100.00% cbor_array_drop 18 2 88.89% 17 3 82.35% cbor.c:ctap_check_cbor 28 0 100.00% 26 0 100.00% @@ -222,16 +222,18 @@ cbor.c:decode_cred_id_entry 10 0 100.00% 19 0 cbor.c:decode_user_entry 25 0 100.00% 35 0 100.00% cbor.c:decode_rp_entity_entry 15 0 100.00% 25 0 100.00% ------------------------------------------------------------------------------------------------------------------ -TOTAL 1047 23 97.80% 1237 46 96.28% +TOTAL 1049 23 97.81% 1237 45 96.36% File '/libfido2/src/compress.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------ fido_compress 1 0 100.00% 3 0 100.00% -fido_uncompress 1 0 100.00% 3 0 100.00% -compress.c:do_compress 32 4 87.50% 22 3 86.36% +fido_uncompress 6 0 100.00% 5 0 100.00% +compress.c:rfc1951_deflate 33 2 93.94% 47 3 93.62% +compress.c:rfc1950_inflate 27 2 92.59% 22 4 81.82% +compress.c:rfc1951_inflate 38 10 73.68% 45 17 62.22% ------------------------------------------------------------------------------------------------------------------ -TOTAL 34 4 88.24% 28 3 89.29% +TOTAL 105 14 86.67% 122 24 80.33% File '/libfido2/src/config.c': Name Regions Miss Cover Lines Miss Cover @@ -255,8 +257,8 @@ Name Regions Miss Cover Lines Mis ------------------------------------------------------------------------------------------------------------------- fido_dev_make_cred 12 0 100.00% 10 0 100.00% fido_check_rp_id 4 0 100.00% 11 0 100.00% -fido_cred_verify 56 2 96.43% 72 5 93.06% -fido_cred_verify_self 58 4 93.10% 83 5 93.98% +fido_cred_verify 56 2 96.43% 72 4 94.44% +fido_cred_verify_self 58 4 93.10% 83 7 91.57% fido_cred_new 1 0 100.00% 3 0 100.00% fido_cred_reset_tx 1 0 100.00% 19 0 100.00% fido_cred_reset_rx 1 0 100.00% 7 0 100.00% @@ -273,13 +275,13 @@ fido_cred_set_clientdata_hash 8 0 100.00% 6 fido_cred_set_rp 18 0 100.00% 22 0 100.00% fido_cred_set_user 32 0 100.00% 41 0 100.00% fido_cred_set_extensions 16 0 100.00% 10 0 100.00% -fido_cred_set_options 6 6 0.00% 5 5 0.00% +fido_cred_set_options 8 8 0.00% 5 5 0.00% fido_cred_set_rk 2 0 100.00% 4 0 100.00% fido_cred_set_uv 2 0 100.00% 4 0 100.00% fido_cred_set_prot 21 0 100.00% 14 0 100.00% fido_cred_set_pin_minlen 7 0 100.00% 8 0 100.00% fido_cred_set_blob 13 2 84.62% 8 1 87.50% -fido_cred_set_fmt 20 4 80.00% 12 1 91.67% +fido_cred_set_fmt 20 4 80.00% 12 2 83.33% fido_cred_set_type 17 0 100.00% 7 0 100.00% fido_cred_type 1 0 100.00% 3 0 100.00% fido_cred_flags 1 0 100.00% 3 0 100.00% @@ -319,11 +321,11 @@ cred.c:fido_dev_make_cred_rx 29 0 100.00% 32 cred.c:parse_makecred_reply 14 0 100.00% 27 0 100.00% cred.c:check_extensions 2 0 100.00% 6 0 100.00% cred.c:get_signed_hash_u2f 27 0 100.00% 26 0 100.00% -cred.c:verify_attstmt 23 2 91.30% 40 5 87.50% +cred.c:verify_attstmt 23 2 91.30% 40 6 85.00% cred.c:fido_cred_clean_authdata 1 0 100.00% 8 0 100.00% cred.c:fido_cred_clean_attstmt 1 0 100.00% 8 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 632 34 94.62% 830 36 95.66% +TOTAL 634 36 94.32% 830 39 95.30% File '/libfido2/src/credman.c': Name Regions Miss Cover Lines Miss Cover @@ -334,15 +336,15 @@ fido_credman_del_dev_rk 1 0 100.00% 4 fido_credman_get_dev_rp 1 0 100.00% 4 0 100.00% fido_credman_set_dev_rk 1 0 100.00% 4 0 100.00% fido_credman_rk_new 1 0 100.00% 3 0 100.00% -fido_credman_rk_free 6 1 83.33% 8 0 100.00% +fido_credman_rk_free 6 1 83.33% 8 1 87.50% fido_credman_rk_count 1 0 100.00% 3 0 100.00% fido_credman_rk 4 0 100.00% 5 0 100.00% fido_credman_metadata_new 1 0 100.00% 3 0 100.00% -fido_credman_metadata_free 6 1 83.33% 7 0 100.00% +fido_credman_metadata_free 6 1 83.33% 7 1 85.71% fido_credman_rk_existing 1 0 100.00% 3 0 100.00% fido_credman_rk_remaining 1 0 100.00% 3 0 100.00% fido_credman_rp_new 1 0 100.00% 3 0 100.00% -fido_credman_rp_free 6 1 83.33% 8 0 100.00% +fido_credman_rp_free 6 1 83.33% 8 1 87.50% fido_credman_rp_count 1 0 100.00% 3 0 100.00% fido_credman_rp_id 4 0 100.00% 5 0 100.00% fido_credman_rp_name 4 0 100.00% 5 0 100.00% @@ -369,21 +371,17 @@ credman.c:credman_set_dev_rk_wait 11 0 100.00% 8 credman.c:credman_reset_rk 4 0 100.00% 9 0 100.00% credman.c:credman_reset_rp 4 0 100.00% 12 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 382 10 97.38% 518 15 97.10% +TOTAL 382 10 97.38% 518 18 96.53% File '/libfido2/src/dev.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_dev_register_manifest_func 10 2 80.00% 14 3 78.57% -fido_dev_unregister_manifest_func 7 7 0.00% 11 11 0.00% -fido_dev_info_manifest 22 4 81.82% 24 0 100.00% +fido_dev_info_manifest 2 0 100.00% 11 0 100.00% fido_dev_open_with_info 5 5 0.00% 6 6 0.00% -fido_dev_open 5 1 80.00% 19 12 36.84% -fido_dev_close 9 2 77.78% 8 0 100.00% +fido_dev_open 13 6 53.85% 16 6 62.50% +fido_dev_close 9 2 77.78% 8 1 87.50% fido_dev_set_sigmask 18 18 0.00% 11 11 0.00% fido_dev_cancel 11 0 100.00% 8 0 100.00% -fido_dev_get_touch_begin 50 0 100.00% 59 0 100.00% -fido_dev_get_touch_status 17 0 100.00% 20 0 100.00% fido_dev_set_io_functions 18 4 77.78% 14 6 57.14% fido_dev_set_transport_functions 6 2 66.67% 9 3 66.67% fido_dev_io_handle 1 1 0.00% 3 3 0.00% @@ -410,17 +408,17 @@ fido_dev_force_fido2 2 2 0.00% 3 fido_dev_get_pin_protocol 11 0 100.00% 7 0 100.00% fido_dev_maxmsgsize 1 0 100.00% 3 0 100.00% fido_dev_set_timeout 6 2 66.67% 6 1 83.33% -dev.c:find_manifest_func_node 5 0 100.00% 8 0 100.00% +dev.c:run_manifest 10 0 100.00% 13 0 100.00% dev.c:fido_dev_open_wait 10 0 100.00% 7 0 100.00% dev.c:fido_dev_open_tx 56 15 73.21% 56 26 53.57% dev.c:set_random_report_len 11 0 100.00% 6 0 100.00% dev.c:fido_dev_open_rx 36 1 97.22% 53 1 98.11% dev.c:fido_dev_set_flags 1 0 100.00% 5 0 100.00% dev.c:fido_dev_set_extension_flags 7 0 100.00% 7 0 100.00% -dev.c:fido_dev_set_option_flags 29 0 100.00% 18 0 100.00% +dev.c:fido_dev_set_option_flags 31 0 100.00% 20 0 100.00% dev.c:fido_dev_set_protocol_flags 11 0 100.00% 17 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 421 79 81.24% 491 105 78.62% +TOTAL 332 71 78.61% 378 86 77.25% File '/libfido2/src/ecdh.c': Name Regions Miss Cover Lines Miss Cover @@ -438,15 +436,15 @@ Name Regions Miss Cover Lines Mis eddsa_pk_decode 8 0 100.00% 9 0 100.00% eddsa_pk_new 1 0 100.00% 3 0 100.00% eddsa_pk_free 6 0 100.00% 7 0 100.00% -eddsa_pk_from_ptr 6 0 100.00% 6 0 100.00% +eddsa_pk_from_ptr 10 0 100.00% 12 0 100.00% eddsa_pk_to_EVP_PKEY 3 0 100.00% 7 0 100.00% -eddsa_pk_from_EVP_PKEY 14 0 100.00% 10 0 100.00% +eddsa_pk_from_EVP_PKEY 18 2 88.89% 12 1 91.67% eddsa_verify_sig 19 2 89.47% 30 6 80.00% eddsa_pk_verify_sig 7 1 85.71% 13 2 84.62% eddsa.c:decode_pubkey_point 8 0 100.00% 11 0 100.00% eddsa.c:decode_coord 8 0 100.00% 10 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 80 3 96.25% 106 8 92.45% +TOTAL 88 5 94.32% 114 9 92.11% File '/libfido2/src/err.c': Name Regions Miss Cover Lines Miss Cover @@ -464,21 +462,21 @@ es256_sk_new 1 0 100.00% 3 es256_sk_free 6 0 100.00% 7 0 100.00% es256_pk_new 1 0 100.00% 3 0 100.00% es256_pk_free 6 0 100.00% 7 0 100.00% -es256_pk_from_ptr 11 0 100.00% 10 0 100.00% +es256_pk_from_ptr 15 0 100.00% 17 0 100.00% es256_pk_set_x 1 0 100.00% 4 0 100.00% es256_pk_set_y 1 0 100.00% 4 0 100.00% -es256_sk_create 39 0 100.00% 41 0 100.00% -es256_pk_to_EVP_PKEY 42 0 100.00% 54 0 100.00% -es256_pk_from_EC_KEY 38 0 100.00% 36 0 100.00% -es256_pk_from_EVP_PKEY 7 2 71.43% 7 0 100.00% -es256_sk_to_EVP_PKEY 28 0 100.00% 40 0 100.00% -es256_derive_pk 25 0 100.00% 30 0 100.00% +es256_sk_create 39 0 100.00% 40 0 100.00% +es256_pk_to_EVP_PKEY 42 0 100.00% 53 0 100.00% +es256_pk_from_EC_KEY 42 2 95.24% 47 4 91.49% +es256_pk_from_EVP_PKEY 8 2 75.00% 7 1 85.71% +es256_sk_to_EVP_PKEY 28 0 100.00% 39 0 100.00% +es256_derive_pk 25 0 100.00% 29 0 100.00% es256_verify_sig 12 2 83.33% 19 5 73.68% es256_pk_verify_sig 7 1 85.71% 13 2 84.62% es256.c:decode_pubkey_point 9 0 100.00% 13 0 100.00% es256.c:decode_coord 8 0 100.00% 10 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 306 5 98.37% 358 7 98.04% +TOTAL 315 7 97.78% 372 12 96.77% File '/libfido2/src/extern.h': Name Regions Miss Cover Lines Miss Cover @@ -511,7 +509,7 @@ TOTAL 87 2 97.70% 145 File '/libfido2/src/hid_linux.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_hid_manifest 35 4 88.57% 41 1 97.56% +fido_hid_manifest 35 4 88.57% 41 2 95.12% fido_hid_open 27 27 0.00% 40 40 0.00% fido_hid_close 3 3 0.00% 6 6 0.00% fido_hid_set_sigmask 2 2 0.00% 6 6 0.00% @@ -526,15 +524,15 @@ hid_linux.c:parse_uevent 12 0 100.00% 24 hid_linux.c:get_usb_attr 1 0 100.00% 3 0 100.00% hid_linux.c:get_report_descriptor 14 1 92.86% 17 3 82.35% ------------------------------------------------------------------------------------------------------------------- -TOTAL 173 68 60.69% 250 104 58.40% +TOTAL 173 68 60.69% 250 105 58.00% File '/libfido2/src/hid_unix.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_hid_unix_open 18 11 38.89% 22 14 36.36% -fido_hid_unix_wait 10 9 10.00% 21 10 52.38% +fido_hid_unix_wait 11 10 9.09% 21 12 42.86% ------------------------------------------------------------------------------------------------------------------- -TOTAL 28 20 28.57% 43 24 44.19% +TOTAL 29 21 27.59% 43 26 39.53% File '/libfido2/src/info.c': Name Regions Miss Cover Lines Miss Cover @@ -559,6 +557,7 @@ fido_cbor_info_maxcredbloblen 1 0 100.00% 3 fido_cbor_info_maxmsgsiz 1 0 100.00% 3 0 100.00% fido_cbor_info_maxcredcntlst 1 0 100.00% 3 0 100.00% fido_cbor_info_maxcredidlen 1 0 100.00% 3 0 100.00% +fido_cbor_info_maxlargeblob 1 0 100.00% 3 0 100.00% fido_cbor_info_fwversion 1 0 100.00% 3 0 100.00% fido_cbor_info_protocols_ptr 1 0 100.00% 3 0 100.00% fido_cbor_info_protocols_len 1 0 100.00% 3 0 100.00% @@ -567,7 +566,7 @@ fido_cbor_info_algorithm_type 4 0 100.00% 5 fido_cbor_info_algorithm_cose 4 0 100.00% 5 0 100.00% info.c:fido_dev_get_cbor_info_tx 8 0 100.00% 9 0 100.00% info.c:fido_dev_get_cbor_info_rx 6 0 100.00% 14 0 100.00% -info.c:parse_reply_element 19 0 100.00% 37 0 100.00% +info.c:parse_reply_element 20 0 100.00% 39 0 100.00% info.c:decode_string_array 12 0 100.00% 17 0 100.00% info.c:decode_string 4 0 100.00% 10 0 100.00% info.c:decode_aaguid 8 0 100.00% 10 0 100.00% @@ -579,37 +578,37 @@ info.c:decode_algorithms 12 0 100.00% 17 info.c:decode_algorithm 9 0 100.00% 17 0 100.00% info.c:decode_algorithm_entry 20 0 100.00% 27 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 184 0 100.00% 316 0 100.00% +TOTAL 186 0 100.00% 321 0 100.00% File '/libfido2/src/io.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_tx 13 0 100.00% 11 0 100.00% +fido_tx 14 0 100.00% 11 0 100.00% fido_rx 13 1 92.31% 14 3 78.57% fido_rx_cbor_status 8 0 100.00% 10 0 100.00% io.c:transport_tx 7 0 100.00% 10 0 100.00% io.c:tx_empty 9 0 100.00% 14 0 100.00% io.c:tx_pkt 7 0 100.00% 10 0 100.00% io.c:tx 13 0 100.00% 19 0 100.00% -io.c:tx_preamble 16 1 93.75% 20 1 95.00% -io.c:tx_frame 15 1 93.33% 18 1 94.44% +io.c:tx_preamble 17 1 94.12% 20 1 95.00% +io.c:tx_frame 16 1 93.75% 18 1 94.44% io.c:transport_rx 7 0 100.00% 10 0 100.00% -io.c:rx 40 2 95.00% 52 1 98.08% +io.c:rx 40 2 95.00% 52 2 96.15% io.c:rx_preamble 23 2 91.30% 22 5 77.27% io.c:rx_frame 11 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 182 7 96.15% 221 11 95.02% +TOTAL 185 7 96.22% 221 12 94.57% File '/libfido2/src/iso7816.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- iso7816_new 4 0 100.00% 16 0 100.00% iso7816_free 6 0 100.00% 7 0 100.00% -iso7816_add 6 1 83.33% 8 0 100.00% +iso7816_add 6 1 83.33% 8 1 87.50% iso7816_ptr 1 0 100.00% 3 0 100.00% iso7816_len 1 0 100.00% 4 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 18 1 94.44% 38 0 100.00% +TOTAL 18 1 94.44% 38 1 97.37% File '/libfido2/src/largeblob.c': Name Regions Miss Cover Lines Miss Cover @@ -620,7 +619,7 @@ fido_dev_largeblob_remove 12 0 100.00% 18 fido_dev_largeblob_get_array 15 2 86.67% 27 4 85.19% fido_dev_largeblob_set_array 14 0 100.00% 19 0 100.00% largeblob.c:largeblob_get_array 32 0 100.00% 36 0 100.00% -largeblob.c:get_chunklen 9 1 88.89% 9 0 100.00% +largeblob.c:get_chunklen 10 1 90.00% 9 1 88.89% largeblob.c:largeblob_get_tx 19 0 100.00% 24 0 100.00% largeblob.c:largeblob_get_rx 15 0 100.00% 21 0 100.00% largeblob.c:parse_largeblob_reply 8 0 100.00% 9 0 100.00% @@ -629,7 +628,7 @@ largeblob.c:largeblob_array_digest 10 0 100.00% 9 largeblob.c:largeblob_array_load 14 2 85.71% 19 7 63.16% largeblob.c:largeblob_array_lookup 25 0 100.00% 33 0 100.00% largeblob.c:largeblob_decode 16 2 87.50% 16 6 62.50% -largeblob.c:largeblob_do_decode 27 3 88.89% 30 5 83.33% +largeblob.c:largeblob_do_decode 27 3 88.89% 30 7 76.67% largeblob.c:largeblob_decrypt 15 0 100.00% 24 0 100.00% largeblob.c:largeblob_aad 1 0 100.00% 10 0 100.00% largeblob.c:largeblob_reset 1 0 100.00% 5 0 100.00% @@ -645,34 +644,34 @@ largeblob.c:largeblob_get_uv_token 19 0 100.00% 23 largeblob.c:largeblob_set_tx 35 0 100.00% 36 0 100.00% largeblob.c:prepare_hmac 13 2 84.62% 23 7 69.57% ------------------------------------------------------------------------------------------------------------------- -TOTAL 513 19 96.30% 684 43 93.71% +TOTAL 514 19 96.30% 684 46 93.27% File '/libfido2/src/log.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_log_init 1 0 100.00% 4 0 100.00% -fido_log_debug 6 1 83.33% 8 0 100.00% -fido_log_xxd 16 1 93.75% 24 0 100.00% -fido_log_error 8 2 75.00% 11 1 90.91% +fido_log_debug 6 1 83.33% 8 1 87.50% +fido_log_xxd 16 1 93.75% 24 1 95.83% +fido_log_error 8 2 75.00% 11 2 81.82% fido_set_log_handler 3 0 100.00% 4 0 100.00% log.c:log_on_stderr 1 1 0.00% 3 3 0.00% log.c:do_log 4 0 100.00% 9 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 39 5 87.18% 63 4 93.65% +TOTAL 39 5 87.18% 63 7 88.89% File '/libfido2/src/netlink.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_nl_power_nfc 18 1 94.44% 24 3 87.50% fido_nl_get_nfc_target 17 1 94.12% 31 3 90.32% -fido_nl_free 10 2 80.00% 9 1 88.89% +fido_nl_free 10 2 80.00% 9 2 77.78% fido_nl_new 16 1 93.75% 26 3 88.46% set_netlink_io_functions 1 0 100.00% 4 0 100.00% netlink.c:nlmsg_new 8 0 100.00% 15 0 100.00% netlink.c:nlmsg_set_genl 1 0 100.00% 7 0 100.00% netlink.c:nlmsg_write 6 1 83.33% 7 1 85.71% netlink.c:nlmsg_set_u32 1 0 100.00% 3 0 100.00% -netlink.c:nlmsg_setattr 14 1 92.86% 17 0 100.00% +netlink.c:nlmsg_setattr 15 1 93.33% 17 0 100.00% netlink.c:nlmsg_tx 10 1 90.00% 13 3 76.92% netlink.c:nlmsg_ptr 1 0 100.00% 3 0 100.00% netlink.c:nlmsg_len 1 0 100.00% 3 0 100.00% @@ -704,36 +703,62 @@ netlink.c:parse_mcastgrps 1 0 100.00% 3 netlink.c:parse_mcastgrp 15 0 100.00% 24 0 100.00% netlink.c:nla_get_str 10 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 328 14 95.73% 498 32 93.57% +TOTAL 329 14 95.74% 498 33 93.37% + +File '/libfido2/src/nfc.c': +Name Regions Miss Cover Lines Miss Cover +------------------------------------------------------------------------------------------------------------------- +fido_nfc_tx 28 0 100.00% 43 0 100.00% +fido_nfc_rx 8 0 100.00% 13 0 100.00% +fido_is_nfc 3 0 100.00% 3 0 100.00% +fido_dev_set_nfc 4 4 0.00% 18 18 0.00% +nfc.c:nfc_do_tx 20 0 100.00% 25 0 100.00% +nfc.c:tx_short_apdu 14 0 100.00% 32 0 100.00% +nfc.c:rx_init 25 0 100.00% 27 0 100.00% +nfc.c:rx_cbor 4 0 100.00% 6 0 100.00% +nfc.c:rx_msg 18 2 88.89% 23 6 73.91% +nfc.c:rx_apdu 14 1 92.86% 22 3 86.36% +nfc.c:tx_get_response 4 0 100.00% 11 0 100.00% +------------------------------------------------------------------------------------------------------------------- +TOTAL 142 7 95.07% 223 27 87.89% File '/libfido2/src/nfc_linux.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_nfc_tx 28 0 100.00% 43 0 100.00% -fido_nfc_rx 8 1 87.50% 13 3 76.92% -fido_nfc_manifest 35 5 85.71% 45 13 71.11% -fido_nfc_open 20 3 85.00% 23 5 78.26% +fido_nfc_manifest 35 7 80.00% 45 15 66.67% +fido_nfc_open 20 3 85.00% 23 4 82.61% fido_nfc_close 1 1 0.00% 4 4 0.00% fido_nfc_set_sigmask 2 2 0.00% 6 6 0.00% fido_nfc_read 14 14 0.00% 30 30 0.00% fido_nfc_write 12 12 0.00% 18 18 0.00% -nfc_linux.c:nfc_do_tx 20 2 90.00% 25 6 76.00% -nfc_linux.c:tx_short_apdu 14 0 100.00% 32 0 100.00% -nfc_linux.c:rx_init 25 6 76.00% 27 5 81.48% -nfc_linux.c:rx_cbor 4 0 100.00% 6 0 100.00% -nfc_linux.c:rx_msg 18 2 88.89% 23 6 73.91% -nfc_linux.c:rx_apdu 14 1 92.86% 22 3 86.36% -nfc_linux.c:tx_get_response 4 0 100.00% 11 0 100.00% -nfc_linux.c:copy_info 41 9 78.05% 44 3 93.18% +nfc_linux.c:copy_info 41 8 80.49% 47 5 89.36% nfc_linux.c:get_usb_attr 1 0 100.00% 3 0 100.00% nfc_linux.c:get_parent_attr 6 0 100.00% 9 0 100.00% -nfc_linux.c:to_int 21 6 71.43% 14 1 92.86% -nfc_linux.c:sysnum_from_syspath 12 0 100.00% 17 0 100.00% +nfc_linux.c:sysnum_from_syspath 15 0 100.00% 17 0 100.00% nfc_linux.c:nfc_new 6 0 100.00% 11 0 100.00% nfc_linux.c:nfc_target_connect 9 9 0.00% 21 21 0.00% nfc_linux.c:nfc_free 12 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 327 73 77.68% 458 124 72.93% +TOTAL 174 56 67.82% 245 103 57.96% + +File '/libfido2/src/pcsc.c': +Name Regions Miss Cover Lines Miss Cover +------------------------------------------------------------------------------------------------------------------- +fido_pcsc_manifest 51 0 100.00% 55 0 100.00% +fido_pcsc_open 32 0 100.00% 43 0 100.00% +fido_pcsc_close 6 0 100.00% 9 0 100.00% +fido_pcsc_read 8 0 100.00% 16 0 100.00% +fido_pcsc_write 8 0 100.00% 22 0 100.00% +fido_pcsc_tx 1 0 100.00% 3 0 100.00% +fido_pcsc_rx 1 0 100.00% 3 0 100.00% +fido_is_pcsc 3 0 100.00% 3 0 100.00% +fido_dev_set_pcsc 4 1 75.00% 18 3 83.33% +pcsc.c:list_readers 24 0 100.00% 24 0 100.00% +pcsc.c:copy_info 27 0 100.00% 37 0 100.00% +pcsc.c:get_reader 25 0 100.00% 28 0 100.00% +pcsc.c:prepare_io_request 11 0 100.00% 17 0 100.00% +------------------------------------------------------------------------------------------------------------------- +TOTAL 201 1 99.50% 278 3 98.92% File '/libfido2/src/pin.c': Name Regions Miss Cover Lines Miss Cover @@ -744,7 +769,7 @@ fido_dev_set_pin 1 0 100.00% 4 fido_dev_get_retry_count 1 0 100.00% 4 0 100.00% fido_dev_get_uv_retry_count 1 0 100.00% 4 0 100.00% cbor_add_uv_params 17 0 100.00% 23 0 100.00% -pin.c:uv_token_wait 14 2 85.71% 12 0 100.00% +pin.c:uv_token_wait 14 2 85.71% 12 1 91.67% pin.c:ctap21_uv_token_tx 49 0 100.00% 53 0 100.00% pin.c:pin_sha256_enc 19 0 100.00% 24 0 100.00% pin.c:encode_uv_permission 20 1 95.00% 19 3 84.21% @@ -765,7 +790,7 @@ pin.c:fido_dev_get_uv_retry_count_wait 10 0 100.00% 7 pin.c:fido_dev_get_uv_retry_count_rx 11 0 100.00% 17 0 100.00% pin.c:parse_uv_retry_count 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 403 3 99.26% 495 3 99.39% +TOTAL 403 3 99.26% 495 4 99.19% File '/libfido2/src/random.c': Name Regions Miss Cover Lines Miss Cover @@ -786,11 +811,11 @@ TOTAL 24 0 100.00% 23 File '/libfido2/src/rs1.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -rs1_verify_sig 20 0 100.00% 30 0 100.00% -rs1.c:rs1_get_EVP_MD 4 0 100.00% 6 0 100.00% +rs1_verify_sig 20 1 95.00% 30 3 90.00% +rs1.c:rs1_get_EVP_MD 4 1 75.00% 6 1 83.33% rs1.c:rs1_free_EVP_MD 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 25 0 100.00% 39 0 100.00% +TOTAL 25 2 92.00% 39 4 89.74% File '/libfido2/src/rs256.c': Name Regions Miss Cover Lines Miss Cover @@ -801,7 +826,7 @@ rs256_pk_free 6 0 100.00% 7 rs256_pk_from_ptr 6 0 100.00% 6 0 100.00% rs256_pk_to_EVP_PKEY 32 0 100.00% 39 0 100.00% rs256_pk_from_RSA 32 4 87.50% 26 6 76.92% -rs256_pk_from_EVP_PKEY 7 2 71.43% 7 0 100.00% +rs256_pk_from_EVP_PKEY 7 2 71.43% 7 1 85.71% rs256_verify_sig 20 1 95.00% 30 2 93.33% rs256_pk_verify_sig 7 1 85.71% 13 2 84.62% rs256.c:decode_rsa_pubkey 9 0 100.00% 13 0 100.00% @@ -809,31 +834,39 @@ rs256.c:decode_bignum 8 0 100.00% 10 rs256.c:rs256_get_EVP_MD 4 0 100.00% 6 0 100.00% rs256.c:rs256_free_EVP_MD 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 141 8 94.33% 172 10 94.19% +TOTAL 141 8 94.33% 172 11 93.60% File '/libfido2/src/time.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- fido_time_now 4 0 100.00% 7 0 100.00% fido_time_delta 23 1 95.65% 23 0 100.00% -time.c:timespec_to_ms 16 2 87.50% 13 1 92.31% +time.c:timespec_to_ms 16 2 87.50% 13 2 84.62% --------------------------------------------------------------------------------------------------------------------- -TOTAL 43 3 93.02% 43 1 97.67% +TOTAL 43 3 93.02% 43 2 95.35% + +File '/libfido2/src/touch.c': +Name Regions Miss Cover Lines Miss Cover +--------------------------------------------------------------------------------------------------------------------- +fido_dev_get_touch_begin 50 0 100.00% 59 0 100.00% +fido_dev_get_touch_status 17 0 100.00% 20 0 100.00% +--------------------------------------------------------------------------------------------------------------------- +TOTAL 67 0 100.00% 79 0 100.00% File '/libfido2/src/tpm.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -fido_get_signed_hash_tpm 25 0 100.00% 39 0 100.00% -tpm.c:check_es256_pubarea 18 0 100.00% 30 0 100.00% +fido_get_signed_hash_tpm 25 1 96.00% 39 3 92.31% +tpm.c:check_es256_pubarea 19 1 94.74% 30 3 90.00% tpm.c:bswap_es256_pubarea 1 0 100.00% 12 0 100.00% -tpm.c:check_rs256_pubarea 16 0 100.00% 28 0 100.00% +tpm.c:check_rs256_pubarea 17 1 94.12% 28 3 89.29% tpm.c:bswap_rs256_pubarea 1 0 100.00% 10 0 100.00% -tpm.c:check_sha1_certinfo 14 0 100.00% 38 0 100.00% +tpm.c:check_sha1_certinfo 15 0 100.00% 38 0 100.00% tpm.c:get_signed_sha1 17 0 100.00% 19 0 100.00% tpm.c:get_signed_name 7 0 100.00% 10 0 100.00% tpm.c:bswap_sha1_certinfo 1 0 100.00% 8 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 100 0 100.00% 194 0 100.00% +TOTAL 103 3 97.09% 194 9 95.36% File '/libfido2/src/types.c': Name Regions Miss Cover Lines Miss Cover @@ -869,3 +902,10 @@ u2f.c:parse_auth_reply 23 0 100.00% 23 u2f.c:authdata_fake 12 0 100.00% 27 0 100.00% --------------------------------------------------------------------------------------------------------------------- TOTAL 528 4 99.24% 685 12 98.25% + +File '/libfido2/src/util.c': +Name Regions Miss Cover Lines Miss Cover +--------------------------------------------------------------------------------------------------------------------- +fido_to_uint64 14 1 92.86% 14 1 92.86% +--------------------------------------------------------------------------------------------------------------------- +TOTAL 14 1 92.86% 14 1 92.86% diff --git a/fuzz/fuzz_mgmt.c b/fuzz/fuzz_mgmt.c index 7c28979fb624..41077e23766c 100644 --- a/fuzz/fuzz_mgmt.c +++ b/fuzz/fuzz_mgmt.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -288,6 +288,9 @@ dev_get_cbor_info(const struct param *p) n = fido_cbor_info_maxcredidlen(ci); consume(&n, sizeof(n)); + n = fido_cbor_info_maxlargeblob(ci); + consume(&n, sizeof(n)); + n = fido_cbor_info_fwversion(ci); consume(&n, sizeof(n)); diff --git a/fuzz/fuzz_pcsc.c b/fuzz/fuzz_pcsc.c new file mode 100644 index 000000000000..4a066ec32e1f --- /dev/null +++ b/fuzz/fuzz_pcsc.c @@ -0,0 +1,266 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#define _FIDO_INTERNAL + +#include +#include +#include +#include +#include +#include + +#include "mutator_aux.h" +#include "wiredata_fido2.h" +#include "dummy.h" + +#include "../src/extern.h" + +struct param { + int seed; + char path[MAXSTR]; + struct blob pcsc_list; + struct blob tx_apdu; + struct blob wiredata_init; + struct blob wiredata_msg; +}; + +static const uint8_t dummy_tx_apdu[] = { WIREDATA_CTAP_EXTENDED_APDU }; +static const uint8_t dummy_wiredata_init[] = { WIREDATA_CTAP_NFC_INIT }; +static const uint8_t dummy_wiredata_msg[] = { WIREDATA_CTAP_NFC_MSG }; + +struct param * +unpack(const uint8_t *ptr, size_t len) +{ + cbor_item_t *item = NULL, **v; + struct cbor_load_result cbor; + struct param *p; + int ok = -1; + + if ((p = calloc(1, sizeof(*p))) == NULL || + (item = cbor_load(ptr, len, &cbor)) == NULL || + cbor.read != len || + cbor_isa_array(item) == false || + cbor_array_is_definite(item) == false || + cbor_array_size(item) != 6 || + (v = cbor_array_handle(item)) == NULL) + goto fail; + + if (unpack_int(v[0], &p->seed) < 0 || + unpack_string(v[1], p->path) < 0 || + unpack_blob(v[2], &p->pcsc_list) < 0 || + unpack_blob(v[3], &p->tx_apdu) < 0 || + unpack_blob(v[4], &p->wiredata_init) < 0 || + unpack_blob(v[5], &p->wiredata_msg) < 0) + goto fail; + + ok = 0; +fail: + if (ok < 0) { + free(p); + p = NULL; + } + + if (item) + cbor_decref(&item); + + return p; +} + +size_t +pack(uint8_t *ptr, size_t len, const struct param *p) +{ + cbor_item_t *argv[6], *array = NULL; + size_t cbor_alloc_len, cbor_len = 0; + unsigned char *cbor = NULL; + + memset(argv, 0, sizeof(argv)); + + if ((array = cbor_new_definite_array(6)) == NULL || + (argv[0] = pack_int(p->seed)) == NULL || + (argv[1] = pack_string(p->path)) == NULL || + (argv[2] = pack_blob(&p->pcsc_list)) == NULL || + (argv[3] = pack_blob(&p->tx_apdu)) == NULL || + (argv[4] = pack_blob(&p->wiredata_init)) == NULL || + (argv[5] = pack_blob(&p->wiredata_msg)) == NULL) + goto fail; + + for (size_t i = 0; i < 6; i++) + if (cbor_array_push(array, argv[i]) == false) + goto fail; + + if ((cbor_len = cbor_serialize_alloc(array, &cbor, + &cbor_alloc_len)) > len) { + cbor_len = 0; + goto fail; + } + + memcpy(ptr, cbor, cbor_len); +fail: + for (size_t i = 0; i < 6; i++) + if (argv[i]) + cbor_decref(&argv[i]); + + if (array) + cbor_decref(&array); + + free(cbor); + + return cbor_len; +} + +size_t +pack_dummy(uint8_t *ptr, size_t len) +{ + struct param dummy; + uint8_t blob[4096]; + size_t blob_len; + + memset(&dummy, 0, sizeof(dummy)); + + strlcpy(dummy.path, dummy_pcsc_path, sizeof(dummy.path)); + + dummy.pcsc_list.len = sizeof(dummy_pcsc_list); + memcpy(&dummy.pcsc_list.body, &dummy_pcsc_list, dummy.pcsc_list.len); + + dummy.tx_apdu.len = sizeof(dummy_tx_apdu); + memcpy(&dummy.tx_apdu.body, &dummy_tx_apdu, dummy.tx_apdu.len); + + dummy.wiredata_init.len = sizeof(dummy_wiredata_init); + memcpy(&dummy.wiredata_init.body, &dummy_wiredata_init, + dummy.wiredata_init.len); + + dummy.wiredata_msg.len = sizeof(dummy_wiredata_msg); + memcpy(&dummy.wiredata_msg.body, &dummy_wiredata_msg, + dummy.wiredata_msg.len); + + assert((blob_len = pack(blob, sizeof(blob), &dummy)) != 0); + + if (blob_len > len) { + memcpy(ptr, blob, len); + return len; + } + + memcpy(ptr, blob, blob_len); + + return blob_len; +} + +static void +test_manifest(void) +{ + size_t ndevs, nfound; + fido_dev_info_t *devlist = NULL; + int16_t vendor_id, product_id; + int r; + + r = fido_pcsc_manifest(NULL, 0, &nfound); + assert(r == FIDO_OK && nfound == 0); + r = fido_pcsc_manifest(NULL, 1, &nfound); + assert(r == FIDO_ERR_INVALID_ARGUMENT); + + ndevs = uniform_random(64); + if ((devlist = fido_dev_info_new(ndevs)) == NULL || + fido_pcsc_manifest(devlist, ndevs, &nfound) != FIDO_OK) + goto out; + + for (size_t i = 0; i < nfound; i++) { + const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i); + consume_str(fido_dev_info_path(di)); + consume_str(fido_dev_info_manufacturer_string(di)); + consume_str(fido_dev_info_product_string(di)); + vendor_id = fido_dev_info_vendor(di); + product_id = fido_dev_info_product(di); + consume(&vendor_id, sizeof(vendor_id)); + consume(&product_id, sizeof(product_id)); + } + +out: + fido_dev_info_free(&devlist, ndevs); +} + +static void +test_tx(const char *path, const struct blob *apdu, uint8_t cmd, u_char *rx_buf, + size_t rx_len) +{ + fido_dev_t dev; + const u_char *tx_ptr = NULL; + size_t tx_len = 0; + int n; + + memset(&dev, 0, sizeof(dev)); + + if (fido_dev_set_pcsc(&dev) < 0) + return; + if ((dev.io_handle = fido_pcsc_open(path)) == NULL) + return; + + if (apdu) { + tx_ptr = apdu->body; + tx_len = apdu->len; + } + + fido_pcsc_tx(&dev, cmd, tx_ptr, tx_len); + + if ((n = fido_pcsc_rx(&dev, cmd, rx_buf, rx_len, -1)) >= 0) + consume(rx_buf, n); + + fido_pcsc_close(dev.io_handle); +} + +static void +test_misc(void) +{ + assert(fido_pcsc_open(NULL) == NULL); + assert(fido_pcsc_write(NULL, NULL, INT_MAX + 1LL) == -1); +} + +void +test(const struct param *p) +{ + u_char buf[512]; + + prng_init((unsigned int)p->seed); + fuzz_clock_reset(); + fido_init(FIDO_DEBUG); + fido_set_log_handler(consume_str); + + set_pcsc_parameters(&p->pcsc_list); + set_pcsc_io_functions(nfc_read, nfc_write, consume); + + test_manifest(); + test_misc(); + + set_wire_data(p->wiredata_init.body, p->wiredata_init.len); + test_tx(p->path, NULL, CTAP_CMD_INIT, buf, uniform_random(20)); + + set_wire_data(p->wiredata_msg.body, p->wiredata_msg.len); + test_tx(p->path, &p->tx_apdu, CTAP_CMD_MSG, buf, sizeof(buf)); + + set_wire_data(p->wiredata_msg.body, p->wiredata_msg.len); + test_tx(p->path, &p->tx_apdu, CTAP_CMD_CBOR, buf, sizeof(buf)); + + set_wire_data(p->wiredata_msg.body, p->wiredata_msg.len); + test_tx(p->path, &p->tx_apdu, CTAP_CMD_LOCK, buf, sizeof(buf)); +} + +void +mutate(struct param *p, unsigned int seed, unsigned int flags) NO_MSAN +{ + if (flags & MUTATE_SEED) + p->seed = (int)seed; + + if (flags & MUTATE_PARAM) { + mutate_string(p->path); + mutate_blob(&p->pcsc_list); + mutate_blob(&p->tx_apdu); + } + + if (flags & MUTATE_WIREDATA) { + mutate_blob(&p->wiredata_init); + mutate_blob(&p->wiredata_msg); + } +} diff --git a/fuzz/mutator_aux.c b/fuzz/mutator_aux.c index 92a67be78106..660fbe4e67e7 100644 --- a/fuzz/mutator_aux.c +++ b/fuzz/mutator_aux.c @@ -15,9 +15,6 @@ #include "mutator_aux.h" -#define HID_DEV_HANDLE 0x68696421 -#define NFC_DEV_HANDLE 0x6e666321 - int fido_nfc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); int fido_nfc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); size_t LLVMFuzzerMutate(uint8_t *, size_t, size_t); @@ -241,16 +238,16 @@ nfc_close(void *handle) assert(handle == (void *)NFC_DEV_HANDLE); } -static int +int nfc_read(void *handle, unsigned char *ptr, size_t len, int ms) { assert(handle == (void *)NFC_DEV_HANDLE); - assert(len > 0 && len <= 256 + 2); + assert(len > 0 && len <= 264); return buf_read(ptr, len, ms); } -static int +int nfc_write(void *handle, const unsigned char *ptr, size_t len) { assert(handle == (void *)NFC_DEV_HANDLE); diff --git a/fuzz/mutator_aux.h b/fuzz/mutator_aux.h index a9bebe232bae..730f58635b16 100644 --- a/fuzz/mutator_aux.h +++ b/fuzz/mutator_aux.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -51,6 +51,9 @@ #define MAXSTR 1024 #define MAXBLOB 3600 +#define HID_DEV_HANDLE 0x68696421 +#define NFC_DEV_HANDLE 0x6e666321 + struct blob { uint8_t body[MAXBLOB]; size_t len; @@ -85,6 +88,9 @@ void mutate_string(char *); ssize_t fd_read(int, void *, size_t); ssize_t fd_write(int, const void *, size_t); +int nfc_read(void *, unsigned char *, size_t, int); +int nfc_write(void *, const unsigned char *, size_t); + fido_dev_t *open_dev(int); void set_wire_data(const uint8_t *, size_t); @@ -94,4 +100,8 @@ unsigned long prng_uint32(void); uint32_t uniform_random(uint32_t); +void set_pcsc_parameters(const struct blob *); +void set_pcsc_io_functions(int (*)(void *, u_char *, size_t, int), + int (*)(void *, const u_char *, size_t), void (*)(const void *, size_t)); + #endif /* !_MUTATOR_AUX_H */ diff --git a/fuzz/pcsc.c b/fuzz/pcsc.c new file mode 100644 index 000000000000..f8400a5e766d --- /dev/null +++ b/fuzz/pcsc.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#include +#include +#include +#include +#include +#include + +#include "mutator_aux.h" + +static const struct blob *reader_list; +static int (*xread)(void *, u_char *, size_t, int); +static int (*xwrite)(void *, const u_char *, size_t); +static void (*xconsume)(const void *, size_t); + +LONG __wrap_SCardEstablishContext(DWORD, LPCVOID, LPCVOID, LPSCARDCONTEXT); +LONG __wrap_SCardListReaders(SCARDCONTEXT, LPCSTR, LPSTR, LPDWORD); +LONG __wrap_SCardReleaseContext(SCARDCONTEXT); +LONG __wrap_SCardConnect(SCARDCONTEXT, LPCSTR, DWORD, DWORD, LPSCARDHANDLE, + LPDWORD); +LONG __wrap_SCardDisconnect(SCARDHANDLE, DWORD); +LONG __wrap_SCardTransmit(SCARDHANDLE, const SCARD_IO_REQUEST *, LPCBYTE, + DWORD, SCARD_IO_REQUEST *, LPBYTE, LPDWORD); + +LONG +__wrap_SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, + LPCVOID pvReserved2, LPSCARDCONTEXT phContext) +{ + assert(dwScope == SCARD_SCOPE_SYSTEM); + assert(pvReserved1 == NULL); + assert(pvReserved2 == NULL); + + *phContext = 1; + + if (uniform_random(400) < 1) + return SCARD_E_NO_SERVICE; + if (uniform_random(400) < 1) + return SCARD_E_NO_SMARTCARD; + if (uniform_random(400) < 1) + return SCARD_E_NO_MEMORY; + if (uniform_random(400) < 1) + *phContext = 0; + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardListReaders(SCARDCONTEXT hContext, LPCSTR mszGroups, + LPSTR mszReaders, LPDWORD pcchReaders) +{ + assert(hContext == 1); + assert(mszGroups == NULL); + assert(mszReaders != NULL); + assert(pcchReaders != 0); + + if (reader_list == NULL || uniform_random(400) < 1) + return SCARD_E_NO_READERS_AVAILABLE; + if (uniform_random(400) < 1) + return SCARD_E_NO_MEMORY; + + memcpy(mszReaders, reader_list->body, reader_list->len > *pcchReaders ? + *pcchReaders : reader_list->len); + *pcchReaders = (DWORD)reader_list->len; /* on purpose */ + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardReleaseContext(SCARDCONTEXT hContext) +{ + assert(hContext == 1); + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardConnect(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, + DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol) +{ + uint32_t r; + + assert(hContext == 1); + xconsume(szReader, strlen(szReader) + 1); + assert(dwShareMode == SCARD_SHARE_SHARED); + assert(dwPreferredProtocols == SCARD_PROTOCOL_ANY); + assert(phCard != NULL); + assert(pdwActiveProtocol != NULL); + + if ((r = uniform_random(400)) < 1) + return SCARD_E_UNEXPECTED; + + *phCard = 1; + *pdwActiveProtocol = (r & 1) ? SCARD_PROTOCOL_T0 : SCARD_PROTOCOL_T1; + + if (uniform_random(400) < 1) + *pdwActiveProtocol = SCARD_PROTOCOL_RAW; + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition) +{ + assert(hCard == 1); + assert(dwDisposition == SCARD_LEAVE_CARD); + + return SCARD_S_SUCCESS; +} + +extern void consume(const void *body, size_t len); + +LONG +__wrap_SCardTransmit(SCARDHANDLE hCard, const SCARD_IO_REQUEST *pioSendPci, + LPCBYTE pbSendBuffer, DWORD cbSendLength, SCARD_IO_REQUEST *pioRecvPci, + LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength) +{ + void *ioh = (void *)NFC_DEV_HANDLE; + int n; + + assert(hCard == 1); + xconsume(pioSendPci, sizeof(*pioSendPci)); + xwrite(ioh, pbSendBuffer, cbSendLength); + assert(pioRecvPci == NULL); + + if (uniform_random(400) < 1 || + (n = xread(ioh, pbRecvBuffer, *pcbRecvLength, -1)) == -1) + return SCARD_E_UNEXPECTED; + *pcbRecvLength = (DWORD)n; + + return SCARD_S_SUCCESS; +} + +void +set_pcsc_parameters(const struct blob *reader_list_ptr) +{ + reader_list = reader_list_ptr; +} + +void +set_pcsc_io_functions(int (*read_f)(void *, u_char *, size_t, int), + int (*write_f)(void *, const u_char *, size_t), + void (*consume_f)(const void *, size_t)) +{ + xread = read_f; + xwrite = write_f; + xconsume = consume_f; +} diff --git a/fuzz/report.tgz b/fuzz/report.tgz index d78f4628de5980e7da4412f97f2c71ab17648c13..1b44addb69823f8b265165a0b3c92bc4ebc61283 100644 GIT binary patch literal 341098 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

ptBo&w&PKg;5qTyp3)4%E32Vv5 zOMyd0j36V{D~zun%LWowN6ieyInm~rxOa+NDP@!T;BRj9?WTTdy;hujOuvxR2A39D zqg#r%`e?RG)IsAx0=nUBr^8An)oFP7vy6;oe^Ko6d{fMe#f;P5lic*J#3{X@l0{Sd zKjg&=N^$$Q#EC$Wock|DqDJea+sWjo@4fa%^L^H=lwR;D@8~)5_^}e8-MAj_v6Ne@ zM*NeU*yOK5rnQ5X3;u}DW1PR<>~-qg+b1X>(2h8?UA4%69)?2AN7I_Due=27Dok+ey zBe%JR(Z1w_VbotvsKnBLEoHv_PP$AEl`MKZc&l+WUghZg?4!>{w#txav8Y!BXHi2u zmC^LOyU%$v<0q2tP*sp#qN5L@gQ429>ECczI_ELGvo`Nw#r%=?hOcSPuBH1vB`99( zKkD4KA8SU3C%phWKlqq$8H|kKWKZ&m%YC%J^K%C#cyTm!o z;hD@QlhrT6^+9Fz(aVP4N;|umjk(qOddS0IzTYLHKIJ}t~5@#?sEUD5nRXi{;y) zFIU3+TL~cy`Yo3==(kc(ZGPt}kqiOTety-2k@DO*&`rSD_!fE_(@v<)&){}o1PvrZz_`}P^e;0v^>y?pa zIbH5rCtgz!Hk|QZGgklg#qx?lTV>}DW;(%|RFh}_PXK#p4{rf;QyG|>WPgn{YB3Dy zyC@75rCbVLVmvKq^SOXJs*dwEO8d`crpU*n&HOBTX9T)JiMcny8JHe^Yi!*A>hYIA zrWIe9?f%Jy;5WZC3N%F3%e4(w40@Sf#qrXkO{aM4wdu}^s1fq$p^wTX{?a*Vcfi+g zua1jUjtz;H7?kYuYYG1xng5U5R_C6tXG(? z*>|>NI#?i{{LY_v-u@8@20>{s2u2hbaE-i4)rs)u&@atBvoQQed3)Z`u2;`MiIUKN zqr-~?-sg6oxQuJS1oBY)({j<7{`J6%YHvc$qGu+_$rgdfbNm~&L%jm^)CT-J4GL}= zweD&zjM?7h7a!NG0-wSJytYz#oo3I^UED9^Ce2EMNU+Q~K@U3lAbIS5HFlyV->M?= zJ)h_+y+7eyWZ^t9GqmWvgwirP5Rd#H18>g!Bg{h_$bvSN%b2EFP`_02g2br6cWRua zlK6mj((vyrI=-6JODd)|M-5;4IL5T^()2}(6QMN4T~mAKSR(}Y36Iggz?M@K)N|^b z=7*F1n^>;@ODvJ=u#Z04ZdCubxT;6~#)RahJ4z>V8R%|-$hpEm z9mj&3AMB0|d+P}E&?kfl(shNpDaDsXzl`kX1ziR$H3uzuX>yd^JNY78ZU>h8Xuopy z+ph>)dL-5^y_9-J$rU7Yu;=V&WOk&J24k6&w0XFZ@M>F=P0#j$BzXOD=(o4iJ^PVF zei!@a;ob5F%zpzeYn7^Qx@k4hkziHpD-9)Ob5Nak}%#eelP(wB+N{ zgQ=w3&{^Z@cgzDHPMG~Q`ahWLedhgX^1(phGC274&~D6IBEJ^jHTV8Y+ZWb+U?>#{ zyfkxP;nb1e*v-Z(q$e3>63j7z2O4Efaz@3{PmO%mD@?Dqei$Gxq-`n9c+RK!aU#iz z%2{>GWu&<%?g52<@%KiDr7ufH49wyF*Z-36qTTH+vmmgfUps0txf>k}YD@FhNt`FS#+?dd zdQ@)zJi4^0;d296j{W!UkqxNlpaYtK4p{pnZ=YvKX@h&FJnl~NOEAt&8;m=Zy9t)= zQ*Ww!y0qQ9taP;AKAUq7ihuhqu)07d=sz_<)PZO@D6%dQ&AY!MM_wjww#&rLd3)Y` z*`d+re5@mr%V_W~qlPp;9*8<+%nn})ahd2Nqd=egCq&_s8asf?P#&c8;8|>nm1g9quyz^?Vil6CVA&j4{s0e`6u&%L0hX zs7+iyvR*6vzoq8Ml(kq_eXi?|o^6(`hL4t6Z>(=+N$|ZGIbtc>PPjS2ZtKo)72m&Z z%k-azb^0mX_npwXbW)~ndr#kAX#Q_CFT-zgZh7s+ zWgS-cucm|yae^-M@UlkcF?sQ7bO`jxw5vz|hhWtHL;B|+B$59BkF22uSD-EiSKzM{ zWeT1=zsA`WWQTYnQ+m6oAyrA$(EXA?^W^r3x7tyqV(cuUna zxk-Y*)v+L7%2d~~VAP#YZ%wP8)?IJo*hbs}w-gTGmI4xOT*+6f@P3{}b<48T_%Auk zKI}i=0PBTRmFT~!HZT1ZFl`Lw+;9XYBv`LC!g9=6Q4SiRqh|99^|$z~G> z0#gnGQ!(hAqDwgWYlh|M*jei8!M=K4bz=b${Xf3uY3{!leFX12uXl4XYy4@!Z{kLUx*Bd#uhp#_fOH&!zUi+$HsL;UR zQ?(05q(}FIsyp@esgz9H{+4k?4cfp&@28Y=bG>o6n>&RzZG8&t0w=bY~lMb8_(|0O7xm3kA?vFAovsj)$6@^rmDUFvYJBuQee~={lgeCig zHH`(EznF~CkZIDCQ8HVzZvBE-QZrpr}{z=c42j|O!+b4xMQBq+msIX`?B+Qnj zKdPcX3a!RR*F{}06H(1xQq7*!N6t`S&!qeQoyPCzglv`MY?b#Rvxp-$4sLx;?!=1M zs5|eOC_B^*JJdP&Sh{QJS(mW9OW1pFL$4gLy`|F6qe_g?6c$jLMHtN@I-8*xoi6s|7~{LqZfAVOt}ykd)%K^E8ryY~toEE}o?o!a(6M$z z@^wVob1p{CGDaA3l^JrS7`+UAV@D&$8uUk3CsKvGOocmzmf68nFJYD=8SK?WeIs2V zGDv@GkglTUlt#yzbBj0U*1fP+krHkV&*z$+RHK2#^O(^k`vKMwa}K3joJx@;@Y47V zE{1ei^tRsQ(tHkKalm?oZh|>yvN`8_=b_oLXMkKPL8va4b(n1{Nb4y(=fmo?`J zd>XHz5>j8fUskE%JC?j&Z7wBQ ze=>;wQ1V2W-I6I%{S#IEhZw)h-^+$Y&kq5zl|D)_)jsQDJ+>0iO=Mg@f6mFw? zt+u5P9(uogRz&xlY)AFz!SA3kTvCO_l+c&t#AV%NP^KJtMR}43+9L zDMj3&5AnVuH)v7{ze5{rG%h=0Qp&(Y8>%0oezNgBZgj_TNV6i4=qLB5`wnlG#uc(o zYrI}Ml(T?m@y?8@0*V=>9fV?D9C1WSX7)b{iZ5nSZqo!d0~jn{r}xp#F?pklC>%2 zDmqqswBl?FtSPTN$Rqtdg{uEEXCpmJ@q}N8@$IcHO=|ylrIqAPKUf7yljTJIwb|N?|rq^xL>TFw{ z3q3x3?~)dtM_!;s97;w5e&rOITg4I{SNL^&VqyHw*6TkvWvTE8Xb=QRWFi$Ec3k0R z5Mpacry9vmYgn`R1##4Qa_MpqH6@~$U~rZ1PTx5J_%(4Pg&#~lJUk)$&gv=N5c2Q| zr=eav-gNX=d+Dz8=emUSR(HQ=dengL_;VUQXspgIGt84xz&!TY8lLOuv>7a>pPCab zSopoyTTrg|x$XM6GQS%7eR-J6{?^2l=Llf3$;b1{q)GgA^_`I5gbBK?JWT7L>vleo zW?AQjmy0pKKDr+qeOyO{={lkv+~La!d0GaW(R_-ZcdA*Kk_8@E;N)2_Q5rh^PKCiI zCO%0<+h4d534d*T@$^@EG|3sQ;W6JYgNyO4X}V>?5o({5x+ZG?{~o{@Ltw40rwyPn z0J@13c%8I7oNgKo5M_tG1SYa0Zvw<9KobkYk)<<0vN4eCFeCt;Y4`%*qljz(i%>2C zC=U|K!^(kM%Rahn9IamAB!KZCVLUb}xVs`%-9LNRHkx!@dJ!x~c31i6W?)IedKhLA zk((%pG>WJSuM=zbq3Dj6Z4w5Wf}wgwFwg)D)hwY$Y|}Cn zfN-iHJjhwr!Ch^&JV<6xRtZ5&w!!>w%0 zt?aOD7^r6_kPPZc6!qh1ZmG9i;qz>kzKv!uR6Cezmc}q}t!-rC3sK*D zv>863%k72x_N}MF%*;=Wy!39Lcfa!BFX7swV1^unt~2p9ejHRU-bfcF%&L*kG!Bh6*!w;@c!N)+9+{ACV7kr>Zp* zDH#p4?c#>Eg?j2=i0uYZP z!Xv5`K@7lYX5dMPcnlMs$TJiq0!0)I2S19h1E9fFN{A$p&6+!JxCy9ukW?UrzG{*_ z(%5cJgW|u2a>95qHY-WLBOl`vWAHW8OlJ_MVhc2mGc=A)x{#0f;tmv!))bC5`@oHD zCsK+Z0L2fbO~B#zK-!h;;49hTX%LHCsH-8MMwIzk>ifCaGpHj5>d49iL7$go2MC>C7ePeUMN0H)%-Txq0DWmJ?0c z+6a2QJly$&nLS)6SNTOzEpOUqlnHSb(F(Ey5 z8lR;<6)+s=6(@EfN?Lcx=?`24BE|7F4{Fd$^5hBmyTt=tUurQU;$=%C=mAi)W1CaK z5eewyKv}bj5r5V97UvO>P=Zem@jfy5KQQ<|luR+5Li?kYt+D`_EFjR0mu6)o@?ic= zxXwy_HD3z5HJ+o51Rxn@%Znl4#n8QhdgStOK^&0~M^-8TJSriDJ}(dNyx=r-WxN51 z2?Ny#yzFI{ykv*q$(y}%OFg@{$3*BVN?W&KF@Qib9FyqAHs5a368jFqSO_u4G9oKy zTYm#&zX1Vlaw!idl^Eh57~&sIg@C(Qv;8?^=V=Z4rGg~mtoc*2np5+?F_ezHaArh_ z_HMbF9k8d(p2^9|3Mp-G-g0Rn8X+J6& z7NBW^L}hyhH$H=cyqFQ9VyJ9F)qrpBM{s#NtCR?$x68w|&g+6HO%7cOH^EiTCve!V zUGbzPmmJYR@a&~>wv-hK?P4zO&y(Yru5Iz8d6!@B1Fq6>4}2|fPpMzkpLGr-8#*>G zG;a)^!IB(_(`>usC_Rmw!4@Bj8}7N}6g^Fx!D^j|C+)lZ>VN9v(Yy@J0~JfkV!m3L zjZ*zWSJZx=F??lHeDIe`j`XQB+1Y;2(#pXp4ja88PBZQDYxbm5H#OAR0$ZMg07aRd zj(fHf=_k@)PvKxuP@bb}MKZLcrJ`a{U7q6zzQ3kiB`v{DM^`vG(o}OYk%r~l6E|FT z$fQIa+3@V)69EfdimyKqJ)h|5kEU04Tj!jD zggd!os=oIsRHhEp&RQzBG|&~*er(e~B?WWo&~Z;#(FL78`9qZS#nGa*JSWDABzeoE z?7iL>PsPS(As}skG+s5PXgF>B9NwejE+`OHLri>H;}NVN**;tUl*}6>d07_IJ+&Hy`dixF z2DY}VmZ>+d+rNqLa%U7A9zmCshez#Y6hzj#S}Biyq2nEopc5RgalKtI+$@U6d1_u8 zmc_*3`RmKGCQz%|Ub5%4YF5gzAkck_U@(VuZr7mAzPKbb(;hMMZr6CI%ELMWR4npy zzhi>+HRw<+=SqjBZo#D}Amh!w)5RhOLSftmX9W&H;^n$z?}{k}2b@@0JoIcn4NWqnqW z;jVV#62_sGO`j}Xwp-}E+S{m8@8|_sOm8R$HVPR|Z!j_hS}biS=YcPl;_>Ek7JnwN zeh`Ccu{6Jojn_I0q2*F1Z<)z{W?CQoy4qSSI`kxS)j2vw8A-e6)e**QV?Y>=4j zC^x@+R50n%Hu@&smc0ubpC#{yx_$_&gnEg?}aaU6a#Dq500aULNvPR0=uD` z!T2*IRX}YYLKz6a0EbG5zk%UGKI!a4$^HUN{vN2ma&0h@d1f?Hc%Ogq$hatVY?q+d zBB41yQ3}6cdMRY9iJ?dWtguuwR~bcwaDZTEDvcQzn~+97gC~Te zpT+lJ=lEZNK!93cQRjgD=caw$u3HhyG@@kMn z40JOb4G3q`-xrQPxz|vWdW}Y%WXHc|TY+MLQUPYY2hGL^!DtEtyrf$8MegDV>oGzq z^qAoY5{u|oZ#Sb7H16tV_)EMATofgqJdz-QwHc7Cuti}gFn|>tfdfN60u2dZ<;59T zd%u}DX26@lBf!zO0@in!xBUZR@HZhOGbA<;cO9kT+wR!n)!^6;hQL?KA17EoXzqPet02To91%bqUaB(twLSLnsYR^VMdI&IVh68xtnO-u8 z&)_-Z=#|L$AKar`Tb{@?#Q-;FNZ1K$6RE541FT67m0Th2zncLF3jpem!nn}TU9l!O zRO$vs+9N$7@-xr?8w;G~??=*St#Akn0vx0?v%cBE(qZ}G zW&L>J&v2aSeL!J`WR9>_pX&eANor;QScHKu2!cy>Xn4*K!lN$k=5mzn9OQfly?Q6Y zRu~$3y`0I1lY&|GIX}L zARM3)FzYs@643OU;YdI`*JBd&t&1<{$wn9cW}^#v!?TknqYJG?Ve$i!!~Za`3HX^G zwP3wqckJ!Ss%)2f<1meP2G0mb|AyF5_r1{lO%ZDxArABbhT0lxGl{Ah0Wx_9#32s3 z8GZ#e@iQt1PaZ`W!1@P}{9qf0p|}dM!m@*`??U_lIs61zc)kevHAHgmDY-y!h$Gt! zuY#`LEoY-bbWMlxYZHD@&g3O957Fu4l%U^ zKuEvg*Y;6_!U6!ILnR~x%mmc{%U`%Itx0SRJ5-7RzW#~01-cJN4g;L*@shCZc;q}R z4aD>Yis#&h6A}WhfIwh_Agx3&3^hE=1NwbS2!{#=FwkIOH0H_$R2u=uAQ5m%SQ_{S zxO2+}g24jS#SjxqjN>`FMQA0UUu~VKSWQn9ltSS-8)WMY#`^ zloAq9yYPcH3#bi79|FmSLRk$l8c6Mma3WJ4e(qB`SG$uj>*-J_cOqeSB%p>uHp6EK zlt`g)0EU47ErEM5+ZU+9Q!DUG*bpcHi9s>IFnGW0H`3ksQy6BTFeMA%B?@~T0zrc} z*TkqGo7*u!0wfqAijzawI--Cd;1ot2d6=mhh7ti6f&L6eL=z^R5rW|tx^q@qdAU4?k}|>pF;EMF3U%xEo~$2h=MosM zS?{8NKfx#lxfwRoG!X<~hfHuFHEd|$eJJ$gV`^g}c;v~~?LNN?3WUT7YGL+`BN)(t z1|x1^_*~Lx5da?&VT%uL*{~P@0V>Isogkh|qf46s;Ua*cNa0~v2>AKg$|PP4B^+Q! zz-?gnxc1VJ2tW~u;DXmSYiN_fF^mX}+jxfpSR;ZN5VETnrZZs%Bp{4J!U$&66uKdB z3?2gRdAa|{`Dc9akRdOQ0Rsqw3?Q(+zM2t7V8(scR6|n*fm-9ilw1LZ3KGuiRDLBl z9zS@z-$uos1}+4kjYNbHdF0AJgTnwyco-52W=k4~GH3vBcNa)X4F|Xo z@UO6xH|G(z8ee&8?csIP!ZCaZxEKB~;n@&bg8Q(*x5lnFbX9~Flkcc;AhIiLjQ|;V4P?$(O2!ar5GmHCrm)qHEf1qAj{9LNd8DA;{#h^a(elO}V z9%PdMYBPmX^hUHixWz9IT!V*w#aqQj)(|@41tZ)rOd=xoNT3siRJj6b*Mg4(uiit6 z+S+cTfZxF=tSp9&tFar2I}HX7@q&eetaC-E@ra=S4Xg#W|<@33(#~K^U4i^Iay@cZw zwjDzO)gVPAJZ1*5rgs4;1RRgBR)lf@2F)gdDTzVAJpoNHzyrdl3dX_|3Je^kgn)ca z!{X!Df)`D!b+lzK((~dxDZ9uJpq-jfqn{UMzJ6McJN`zK|Ki)DM=$SIMo6hqz%ZcQ z`tSrjsX_^%0LY%1;LswoyW`X=cby$RU6yNQ4r_-xkte zGa~6lMPiTugCY{fZb~oOX1A|MK|loqIN)KyFv3<9p{&D+it;SD@N*=uOwo*H<2`pZm{#P9aulr>=bxkyuz;mP%)Lb%nLcr%|UP zz7Z*5sKc5(pd;C7*6h^6+lp6v!_ssS&+ z{5TuR0b-?W+OVc-sJm%%NeIFeKL=5aVWz800&pz@pP(@_zt`3?JlSC$_G*%DuOuYvTH;MeUIW%p+m%!n5JMv5X2$`!`f00EQV*&oBE3pw!gn`}}j>Gc}Q#mKTN=>AMqzY3~fiBTX{l|7_d^SZ&7t$GG zB^!%iJ9P6~5P4AkcNiub5f>zE7{$}fc-d&9fkUn%h*|ML`Okm^6c3Clfg~!85djrP z(&Q7Az*McOdRol!7=qDo_6i!Bz_qJ1B9=(lXB1BueF8ixO&kGr0aYW@z*j91z+8og zC*rMUW4-aE@Ny9MFBjuS!c4*2lKgGoAs{&jHk2TbtrQCGfk88nS5VR9V%!9W8ME=j zl&Ud#*$nvK6)A7Sl(OMrN;HtjY-}Qw6^XCJ`WAymH{T0Jv_o@*!HSbcL=Oqe1eKt+ zCRF9;z`)?)373uErvMyD1BK8iQnFmpuE%?tXoI~4uqFUXHdH8^KiPT55Yz?5t-fTX;w z9}2z+PP~STjjugd2s^$&7oLN??G!4WBZ_d%^9Op2N0pStB!j0BP2v~frISn5Cqv@W zwv!MzXaa~MzqG9;3Z8^PW2umo%p#&l*gepWqzRF640H%6Ka%DdzDF*5D=Z8{1P>R6 zO#H#}ohcXYQiSuK)v4LA2G5?O3u_y(apdz{tYu3SIr$1SWlQQJo)2$)vSo@+CeS=p z&Y`+cRcWrQs5l0j1&k~P=beZf5G8A9n36W8Gd6nNqjmV2HXI&|07C*aJ8v;|j@vQj;!ud@3mwAxs z9p97H01b-+7NyA`9>ar1d35@8>I;_W4ALEvpnG=SPy^5*h!K%VX-o*HB$8&9fM17; zf|-fBi#!2O$>t#-qix#)(Ex2jH1q71#R-ej8hD=*u>HYDoOBYQG=KiEK&w0f<31{s7zl(f|nron(0mLFp_h2p2K+X zzXuVj_v_8VYye6ez{bh|kls(_V`7gX09&I7q8tcE2-^Zo1xJJplY;z+I;CrV4}RjH zkw$?d!!i&cAf!mD5QqmJo8WPL_8$c*-eYj%UW2!M%AO;AA^NHyt+m3RF@>^lD?ZHS zG+IMSs~~j!hv_&od7Ipa7E`d7*DVU1E=sbPliH}-kZB3 z7D#9mY*y8G`*a89T_8RkA!xjI8?59 zP`pkPL_qE$sq#s#8kSm0lzZjcibGpb9Ni4oZ8{~YI2vqN8g#WbvW7qknut)xIMFN+ zsDSu})k4ZVslD*nW(ZW2CNM>>_6DMDB(?O^L$!T>=G#J`X($dDHOA(Y!iyd~){vQo zdwh42?EE@&O3-KBs$$Q^)15^N^46@NtM{sw{YQkN^&ZMKvk}}2(ZFhBd|8N-+w+fZ z)Sa3yHJ@7MJd$RLQI8l>-%jzkqhc4M2xADFcGaX%z3?3%%zb#0jqC2U5KgH)Es=L3f{nXv+fMWtyIuk6@nSrIlE zs)2oiGg8o&!D4(6M1ACGYBoO=VHKeoa35=1!-Ad1V;PSYsH))8sxbduyb<@3Xq+-O z%nzP7S@%-e^HZe;l!cXQmK{v@^#n9w8rYBoN%|2%ejS_)IEv8MTU)HWmSL*9tagsM z3c+U0sv<$x6t%WscmC%6oUYz^gbVBNRRFw-fDS07jac{*O6GoT@q04)(#K1&K^_i% zRl`&eX%&m?Ub~%t$R0eKD3L6^qLtccJbqbRr|Q)bPuAq=;je;+&fmyMO{;(k#3(?b zd+jvZh1*!fT2Mu)JG`^LAiiOA=+NQkf!dL*%ko`s?iY{lNyzP(1*YqT4@{{GZKzHm zcdjYe*M~%sQX;OfF(ul#9q4_SIuj{lg<2@z`zDTk6hwVJ>$J^&U-{s+ukdQjPQgz1 ziO2DA;Ns9$`9vaym7EfFm5r%c(TCrJFL^}hr=YbWey8%iTv=CpVY_~1*xLvV>@L_l zSm6S$u`$iqtX0IgNKT)2ly@I?I-zdjTl>OFDlp+#S5vqH*2Wi7@*0Q5hA~ir+-HDN zuu;t_W*gn|m3X;eWqCE}6<>VnfjN0YZZ7+IRhuSJ5>^9C^;L}c29nJhrJ_U%KR0A~ z!NP`AP*M6FA(QDN-^AUecRDN0$09vKR&p1Jz`A;1#pmQm$61(O?b<1+z{0TYYS@`{ z)0Ppv$?qNsA3c4Wn6(&?ln@l#dkBX`tc1R8=LdQhh6+wL)(eI2ctb!%{Pam!8@K#msebdE0 zzL9kztM58j*$qhm?|=Pu?4quZa6B9Inkq+gE?AM|Q3%r{k||gEm~y?v$ad8atY*Jj zu_}AKdXxN_kqS_Zb*&&a880~caRSq{)bwK=pCp#Jc*C1gj^+9TN(w+3CRk zsB*v>E_ZwshjfXt4}MLscEVeSonzi(0ei|(G@XUnXXcNYbah)t8)sh&PDge;FI>*Y zjeO)z2Og~Z=?rxErOOGp{;|y0iwO04k^C+zj(h1(z;IAMla*fm=)kA*rx_-EK`l1L z;1hTa@iLsF|l=8!?I+3bmXG&qwm3ImFnTg$XIv++At zJ2(Gio%>}t7+IhE=aIxJTu;CL{whTl;o0i4nZlXapFF)NA#$D4`D~d0(G~BAr5iVn zc%Futk@fbUmIwG<3{c--?O~s6lkF$ZI z%+E~%cH0BmnyZ^|qPV+D3UXP#RvUNwGIlmrPS0ladJCK+wN9q}>+|+r7;mbyWfFgp zjC^zCdyy7#3tL>L$3?uT5O7VUPqK>%o|TsG_nhp#4Q;SXd zvxTOE+zl#60_RGE!?|@GolSK}?R``-<@cvP%RN4u8ztH3`81HFXT{QZI@LAaTCKO? zWajH%tn*V{z%j+Nhti(>vzKJl$isVUBlhw0q^h>)7>X ztRi7F<6_c!kZEf7_J+dwMvv5q%}s5VyU82du4*#0L-H*Wl5?JG3Q6ZAM&}pq9>2~$ zSYLm87HSoD@v#5q(cW6uz+%CMi~{&<^e4&q&li6z^`7!PH4CWNu_`DJ?3p-i%?4&* za2qIi2x}4|ia{_~_vu88Qsh}KWb8a27Z>3Mgds{vK)$MmCP0Z)fzK2%slfnN6daL2 z(!M?M)&IHHVL6kV0XZaMkeZJ2)-i>DuxlkljcZ_=58EF zC16lQU(opSzHC^&%^bk0@LWC%o*8!>>NM8X>2z0q<5k=P!Sc^#2Tro94oADauVM%t z4*I%Ur;NU+G}K-pZ+vq1%eC3%K%Oc3qRC!n(JRDy4x@hQ-xo`(CSteRwIYtP)WLtL z^Q#|Zu8R8lc!Vp^9BK_6R2?iP?4xuV(YG%6yT(gRwspy`3Dvi{`WStez1CB3ZK!)L z@t|ZC-Hnc4IRrnhER4zm4>_{%OwbpN`!Z;01Z9g_6$&@z)Nz)LL_7?+5c{puc+be-~or)wm$tjyQ9&QvAxL)X1-cCc4dZJv@=uxR~;t07#lXO60 za}L9@`Z0eNe|&*egMRw{eYFQ9zt-|zyvbC^Qd?9wvs=FV`yxHD z`pUq~x0dKpp}RjXex^+`>Gce~W8=jW>88%vXKW z{+Wu!Zwm4ACeCw*bdj`A5==2q>V8QMOq6cx+!$}q51mpk_s_ieJyB&Tl+n`}3G%PL z_GR9U2MHqgS<*-WYrsYj@TUuLImxM>HXiLI&vY1Pk=T(jnKWBuTU*%TnQujNmN~-CPcq41BJMBax2g;8dOY5f}XTrK-ZEr-5Q;I+VI3NK4(DqQQP*5Q;HQSZUsth^d?ZE0qLAWRCgqDy)-J_!r@ao^mBYivT_-#r|0dV`+`Qu> zoP2pWFU@1!S5laRD5d$XESQ2PhX_{=&$*aEj2kmcKht0MTQii0>gQou4%Hp&ayRWe ziH3!P;887T*i^S~`kWI5*VE5UO93d?QOWCir&GqVhJ&I|i{;GjN{XZf*VJ{3kx=e# z27my&?rG67$#XI-dWjrsa*M2x6C9{uu~NMLX-2mTxH)tY#D6ul`Em>Gj@!!dF0t8M z^Kyo|KJD%g3L)P;G6mJY{PuczlD@jy!@daexta2F@x6aJxH_)jym&lNWPN+Sh%@OH z6*i;8=1$AAOZu&{^|sq72!T8ro%dv||6HFApRUR4e!1Mey_*gvEvdN%x}LxGkzY)z zV6zT#dz~zdwjXxy(^0&6KV9Fxnnah}%pE^3eX+5TZPnO3<=q@LQ8w;=m0fFv=-#(9U1MKrdfw{hi654==rorbABWYgq+5Zr#Rt zDaHh!24l)zfFGxi_l-nA#^i*#&;~Md5XZbjA1g0!Q}6eUpXpU=rouAG^qttO0S{hb z(KwdGZ@1_B0}c|x9od^d)2B}ptkzA(oEptk4}vWI%ym37+xTP*L|;2<8I-{15o;V?7IE2>S})bud7THq` z&SD3~Sd#)K@xUY#la2z6K#_>+L*tbslvv!`(#Zf=im zoF`d($Zp2h*SC<-(|WuM^Mv>-R4zWR@Pdf<}PZ!dUJsUL>oqn&o zw~ro&gie$WmsF-`2j;ooy!OAl0x!LL$`GOLpM+IE4_vJ^v#JQ>+|lPzzt+!$AH|TZzmh_l#K-JlfR&)dgqlej1B3ano#&SPfdwo#lsrBOqM58ps7<-9FGL`%N+Gs|B~VN+!zSLc`q2O-(dpU zGHDChnC%jx&86;4Yh$nGxRfSYyblu}rh^Lp#p;AXN3x?*x9pva7im8qq_MPL3~Xps$YMe z!I5n%?#rjvs0$w5&{s(w7*hg^-PJLhKYnmDDzTsHnm9g^Z8(MVeZXoN|U zJ+#dMA5P!fc-?v3V^%zB>$c!~K0o{7bUl7N57;X^M{A zB})?4q|H|5=dUz7(o_&Gb0==wvy$f@OE2pwZr zrzVbKB#vtC9+UsS+a1;n4`}5yk`y$Oz}o!7teX^hIi0Tu8&|}PYpv3wU%8lE|yHC*?NHyZ#{muqJ1`n%dDoIugoAnjj2V zl~Y+w&24DzR#}t@ovlVH>YNOypumPRdrH}mrpVHg+}yp1`MA_F?X_NOw;aiWY}5a!cUg})o5zkmnnFv z(X~$wM%nFTE)(DnHf8G9>{~z%j_uDSq#M7fIiQ!D8z>cO+PwBImj%{^Gg=v_GOQ)3 zrL4SwgyRLk_0f`(kY`9ejYbC!(ocrhf#LFgXr535EpJ^G)vw5%c`F<5iD`e?LKs+S-@>H3vvA8Lb_N$vnC&#^%uO?&DQdtRI4nB z_ii>XgiUw4kpvN_^h1b2#+7N_Sm^m-_%l1zX+lIXb+Rwz_>BXex;^9+2peW-7k{<| z9SAS~NO|j0Q6LdxkJCUO&;GT~EnNhei<(plqsN7P80jSw_OM9?LZ1hpEZZb6j*cRP zuLjsqk-1Pmhr4|{&H>Hm!!6{0*Tppaou(>|uAM;3RN4}LPS7#Ui%{GrhDV9>DLl3^w7UF@>*0!Mv+^f=rV6poWkoH^WV4D)?5&J3k%Ae(37O@ z)sMmH3ut78=_I_Q;=nzuux>V>80&h_)<3&UE{RL&^&C<$fX->}m+e1OJsLAkug`&V z{4>1YqJw^VT5PMapf$<|ACW)o3}SAEEKw<@*r+C_4?139bXw)Njf>5 z1ednCBT^1b!XBIllP8x%Zr7w$R1_-*PpFf&8Zc)qGsbJ^ z_-iLO*p_LjV0qcef0tyUe6o-_IhgHmH`|hk_+7`WfGM*K;|su)VTSQ_2iy*Z7&tr7 z$oq%LK<@zGdnodQaZK!$_Qo83R`<6!piY>rRw8aWiAVCrlV8B^jJegl$p^Iv%k_Q!QaeWJuz7R?aJGW z&CJ+ocXaItAg@eFM<;LcG`?QmOEaKY&P&e@i8USlCQ{Vwh!f!K{AzSj*8F&C4GS`~ zhvHFGL7Jg9P+{vZ{ypnSRD*}6B@$5`<3Z)PhY3NSSMb7U1!Z=JE9#tr4>vY99YCOM zAEUy<bEtYJLCZGY{@S7Pp9S3kKMab=O6A%)v3pKXvYy|&gU9$*U zp>dJ{be%Mphv+OMw0A;bwoF(@YtG!yUfVp;#@>_o9Zhj@0;_S}$ z#7AW0`*vuZ=3{i>pFqxGWS_tiWB8oy`&ug>m%V0eSu-_zOqJuahwkj@I7@4zCy+tz zyI1kD*Z+xAzDS3QCujnf{wanb_cuR(eBjFTF}wCiv;mg=5nje2uE zENlJyqP<*{+_y?HKK^@=M2hrl=JfodV7Fy)T?FLKoJ0|sS&(>~yH5O`19lsY^h~n~ zmK7eV&3IR>NHYOO1nO!JdvF}-J{vAQp*r%y7$DYd-89}2XKQ__BF^ZkA{Ii|(KIoR zR6X-No9aNYT}hoHrSBkXDyN|wed<2b5xVv@gzeSI#dj?faovCH=;U)M*1wa3ZXwj9 zT28{YP3!R!yw*-gU3Iq>3ENh@Pw)p|v9xAjgFT^M>yES~n?}fNwFoF$Jm$b5%qx%U z-|Ba_NH2wFs^sEU8P1YfCD)QXk$dCpmw8A{@}4LqQ;~)6Q%L8=9Bn`*Q0;dNkZMx5 zT+|T6xn+!fsFnW4*}a}72cySa#8@mK(zYsStVXa=8 zOf7ji*Ks$3#PY!bU3Q-8^=BF1WPvXQMq;U+_jFo>)TFv!lOnAh!CJi*wOajpt|M+_ zX3@Pvy4?KNE*n9q0+bz5e+T8T7fRSX73zOZgG=l_Xs$PI638tFHPfG`nlF(jPz&4t z&u~(JQ+>qLX15>Y1>{F*lso}DNNVxy4@*%KbgU=uedgnIBN=%9&oX(pf8!pQv|>RA zfb@CH=lRqFryUehR2ELB>!|J5_ucoq|I@?S*|u=8TKJltQ82Pn`R`^y(9Nq#yhG)D zVK8>olXvmZcz=p4E#oTLsY{cxm~iDc&9vZD$LUoioS=}}pt5&!deI#5+%J??F}lv6 z1VQ)QG(q$Li`PrHhtmn#Y@dvkSR#*lcWt2(cOFIxm5f*?I+WuhD(5iSc#vBU9lT_# z{Y8}9ot_nN6Nl1g%cn-!B+LD%|KuM8{>S0IT)k$&9C|X%B|UE)lL6DjbTO~>0H~_K zrN)bMGKgsDNd_oo=&KSY_ltux7f6`OAXQtDZ9k2-8+86|Ewc&F~K--X`ntck5r4sy2k znLA2LI>`KzouFtp4=v`@p;Q9uGt-TJV}}*JY0pP}OO4<~**UbtK&@FAq zGXb%5t4Ujz$wI~3hF2Cf4u8Bpr=gO=LoVNd7n&i?+z#i`K9>G@9wbhNt$6ze~u0tBO>|LySx!00q|VfT4I7h5{<+q zTEP=+XM zWoV}*bHY)dVQ)w;GfMi<6>h(YJ=J+m2ruM)rHj*~m4^`MK;ujO@x#$i$U|P{d_`8G zp7DM(X1$9+jv#15nTPm$RJYml=-HwY$2SlGcSLn-MOu-7@Qe1KdNY)U)UZTWCuTQ( zYu)5+CTc<9_2+fiqrvMio$=O*C|F#w0s5PaS<4op{i4=L_~71FR)Cqz667XAc6+VY z+LTB{*NXdAm8Ral+hwAxcvKnP+LMa`rAOxx}9y;L!aV8a)a{@>- zxUr8r1pGE3pUb zWEQWsX6-8YhBYUvbF?6O>nib!5`jDucahsOx9;P%YmjcTG&+p?QOP~he=@RewB!Q? zFRbl7VLiY>x~;UF?aFh{aJrJK$3J~u-mA1uSFHe(Y|?H zu!oX-@E_g=TsMCAhM;Mf-qpg{uPFbGz&ENaC9F=;oAHvB{TZWC!tt87^ke<7$h%bF zYwd&RU3P*;Rd1HBj*<`?_DN(U$x6u-(^8F1u1}PrbHE|_I#c&uSbIF?=BxdkOT*CU z3<<03h*CA|08Ph`m3`@nSZ;BTt)qbW_1TZQm{h9h5>Y5q zoRqFtvNt*^8ukKY)*_v!Xqk|G6K=tq#IJ8u9`Rve2IX&OE6giF`>!^f=kHVE5*n|z zn@$d=@0!j1qBA27gi@RvKfJ}U zO1uu6{!hs)M3-<5U%M1k%J#P^^$A;ae(U^gdE^xK*Afy_SPEi-_4Vo$QbXA|M|iv{ zhN}p^IzNn1ezy~LY|K09(FlZ6bvZY7oI0f$73Iy`QDC2YVmlouBo}=eUjl-D+!?#q zpdQ->X36wkkopeFT0_2N!Jt46EQVpyG!vtiZeG3)H}7NVoKaT5A4!yqG3$yLxkx%b zez#E#^YRtSe&)>Vq_b3fu;KEfAMw1Hw!L>ssM^e%Ia{Dw>k$3Dk|o~c7bH{f73OdN zjghHA+JTLk3V(pDpV5QtHu7BT)drl`QS3uNiZv(|!I>ShzkAg`6-z4-AaAtE?!6vY z2<7LJzq!vst{@f7>(5*yOxWi7^QLBhO$YYFdG$yea1F2&sBcTI@-Ku%bUq6CLmN>% zA0wUz%8DdUf%T)WhZ=ww>Q?IrM^g`P?WW5~Tb`DQpG#yz!fKnG(+zKXkvu`OSqxOJ zp2PSuN^?xSZG(+I57E(!6y+4*cLp;KDC95Ou~82HIzD4&C!wE~5Rg@IiU?gFx0)4` zzT9LSPizGozPJXXOPAwpP}$W_*S$iYtCD_DrCpGL-lB@xeGcu9aJ^loi*i7 zlsNUY)LD7>rcj|e%s4H&IMaOd7TeL4^A?@`wl_l^u-N@QKy&L)JoQ>b#m__i|CbCK zdI(mcgYyS{!VOh{aeR0n8rCR&1RzWe8f=H zJ2C!e7k>e_&D8&cck&Z?qBJarBgEUBr+-5f%r;qR;jW!^Y;UUNd_eWw%~esT6Q8!Y z;NtNC7@ruzBC4{SIWmV=`C-@|!HkDTi>Jm_hmPYEKhrRk1wq9;vKTDNZI{-S`d;lg z=emA#RwnYhVv{e#I)-J#+xDK=eZTWJmILV_Y*~(`jqGmM>CHKZCC)Gz7d9nBbuM68 z!Mnno&8!{!vwUSGi&HEqoxVGA=L4p$smiTbs`14+$epWtSJJ=h_>j?8r$sb$Zj zjSyIn3GkCp|CLoqUhbA5MG9Wg)^ykO&*PHwZ+{=I7cT*dFHlO}177S-*uCNM+r9>Z55JluJw7oT`U~;C^SUAgU1U$Vd{fmO!8A z!6DUWlvv=EQGeY*~J1%n52AC?F{lM4T*R3n$kk zO`Hm_^}LKEOVpYocYdp-G3vpp$GH}7jz_s8MF_mIva)V^2ktoL-}^ z(sx=mvXk~Zw#T%%L7;7dAd!}144D-gAv8E`B3=pAkaBw=;|Zeg)KW79>WLu$&D5*E z+#CsNWlq+dG?K|98nAjr{rKrqB^qN~Jl0B^r8T`@eDCexMTU$zdoeZXC+q5mH3(7! zuo><**9AI`u$Pxrfg8J$#vZod53~<*$JkUC%WfWK`pm&NTD8-7>ASQug^BoIkj{RT zgoRs?{tp*~f05&^7FQ#{k|uSFOcn{cN3 z!nq7v6^k=Jti1#3X#(}6q^O=BD4RHncq9rwY88CM`8CKr(calL*5S%w-KWFq?BFyn zK|-iSLWomiLd8eLt`U)#KbV?7xQ5?Agr;wZrVpspq-!uogm|$h)wCqlcxN%z5*=$9 z9%}(Q(1ZV$T5lC$wDZBUzTd~YG%xgXDe_~NewaYzO$yfG8Of0sbD9jM<*BCSDVD3$ z4zDM_E{;xWSfi%mv?Tt|YO_se|6 z@po%ZLgs@On;+~+r!7gRAP`SObXh3ce_=@9L26Q7WbqVfE4Jndns{Nb&-32prlAd@ zWeuXgn2iDg-nNIr5bIDtG@r!l!wNIWX&Y8ToETl>*_sIZcVPUmx${!dE)ll1ci!I& zSa96lo1q?s|%nKzd;#VhkS$C}?x+ynXb&r>YiH_y+|e?!+1e*`P&A2;#fz5X)& zGMdC)ZP1gr0jfE2vD)g~gz~s71+%3?K!G`46b->lf(g@Blue0K&5SwDcy2!Gf8r(Pc(tvX^Q5)6x?MeWe;xDT$ zEHJ@4e=Sw4IT9gfUL`0EblsfD*UaeRgg59@izbWR@=c{vw+VX@$PKwj$p{GA$WR* zn!>hT*fkcpJY0{QIoP8i;^&ejDhRhmpJ-zS!BaN6j$=p-^g6? z1WNb(%9DpTC^KhHed2$t9@ z1JS9|<~;zpU&MbKm|HSa=}9SQYf64?IW71Mw-_31C27jeT!~O46z_zV(P(Oo^Ggq( zvM|IQ6k7xrSLEQ%B#RAxm?gq!=s$tStHh_OOo=r+ux*BuS7BwRCQKNqI-!UF6#uo#SEK@zyl6vS<#Y!7wo<^; z1%YbVWE9|K6<|N#wQ8Z5oN$bjIEMAKO>!nDA23`l) zQ^n0DQW2(7>q4q21Oime+ENiZQmKu?4^EN|5W@Q2F(P9yN`Kc?v(QpP*g5$$z)WH0 zQdmR{Wf7J!qc=69XTY%k#oNGKRRtzt04%EqFRRZRv=dFW7bvE5OEnssRz)s(;s6ev zqD;lo5G2xY+qx_2&W|l>)-L??9%c=xT-hj?;{t{?ShKLIqc4mA!%Ktz&>@B6w=6fk zfdX$-&r|wQc}&Q;d{BE(VMZb+HX~sk23%KC)a>I3Y!xW4%dKen5|UaF4naigv=h z$_HTfLMa=CB0Qxc4!jPF-wHohN&dBoDVWWRt8~%?yx^pqx$} z+IG|>fc<28+!j3;K-hqH{q&HxQE#tdmE67EAc zJ`UuwZf3(eh3jur6*Rba#Sv0}CMCx|%7oIJhSF2xS6=DUhPRr$?=i8f*k=u&F?qji z67}xw{W~e{Y_?Hu5_InEZv4czBE+W`r$Epr@emy%oZ?`dVuyr39>yOyri~Oh@WDUn z;Uefs#V2MA4Sow&!T2-)cxM0_{IK@qw9ZMgi%Th&ylnl--&5n9VNh+0Cxc8TyK0F-z%_huZ%u9gCx$ zhO=~&I@gI zc;DkNCS&d9zSvQ^{|q^k=rIzifIG>mGutBh*6iPOP{VAK(%sjWY|=zp zk=KN!x{G#-jR*Ty2Si;0M^h3()~fW~v+@ZpMMJ8<@WbU|#>;tpBL$o5*ifRI0loVd z2=y;k8XlrACBa`x9K>2Za{5ayA{I?3U(UKjdSV2S69l9S=UvvhY7PX*`~mc}5!5=8$ushGoZu?5d^v&}kFY`+8cm0y5aGarb zQ;g{&<3pz6v!dzcraWOQRe~>5T2Xb36Yje!CJIlqdk?Z3L(#I3v8gUK(3!dzjqr*IoeVcCm|m44>q;*<+CXl8y+#&`Ae2QAUEL7Z zvGQus_GUTpy21K(HM>6m(I0@fV{w=Jm9xcuf^e>faE_--cMtZB2oOpHs7ZW)2WOod z91PqJ29l!2AdBebw8ESoGa$s`5X53fvOkl3Dj;zai`#UR+jP2u?w3a>nWFW`646l+ z{83S)Sd9QdHIo0pGX0b0N=V0USe1>?-|#1PHZteIT^7lkP^y`I8UAT|G?1ids@ocTVM zY@LnSXDScPodIX)HpXv{zkPE;2@e#=y3h4=u46=$ydWnoS$>mY43ZXCeaY?C4#f8V zh}x|da^HyMM!wh$EaSTm+wx`>7rpS`n5a9SzX{|dkLO%FJb#A9bwMB3ps=vVoI>Ln z=QqAL?tkE%7lFz0kb7W4AP@NgHeHhS@mIh5pVMK1o_9p)fV|T zX}$1A>o+b=9=r2Bc;f4xs^IzR#4bd2)wH%WjS zPge$5IrD$);JD|o)=K`@J_+KXvFYv!nkm<8`mG?5F1_5Znp=E~P%|(XWp%Zbheyi& z{@B90QYNu2s-2_n?f(O)S!K9_`nri6#dhvd#&_)P{AKJCyqQ2dg(W_T?m~jyyVQL$ zkX_IF|LgneIJ0BB8KXGN!1jiur-O%MX1ieC?o(gU+)i)x7?fOWTRPQA#P13q3cr3> z^WIgouEGg?*G6+8bjNbN>Bz<{?Yj$eX@9AiR=&>A5drz!(+t+!8ryD6OlAxa%1;L^ z@~D_yZKT{#($?F*wD*?sc8s=LW;EDHY|UsvY;ubpeaj%-pWLX&IZ;i7*x$rCqBU$@ zE@nUDXmO?M{Z@|Q^8)X3o4kjiW#*=+6l-+SLKQE9{sT=>*%KEvu~1@Nq1BI(s}iEA zE|!^ z84oYRycYsLlG6E7Xm?J+$G%YaMja+!4GZNUy{KX7UGm{IxQ2m@Do(aq8dD~l3A8<& zKG;L3Wtk2F=*!Bk6Ld-YFTZuwyZ!aO4Wkz!HjEpZOELLY=Z<3FBTlP>(_!jtvbSNs z+_8DG$-Vg$n!{>Npop6sUyUvH>!}PfFV2n!Qv8@T6LY)-*WFZGvtssh4e^qW_3X+? zLzaDkB!5u?V82Aq_`?8kZS_YJ-7-om-i^r8XcyV~*a-Vs%_&;Sq1()Fclh9Bz z25|9`5Q{lk?b+tsCtOfs>SK4;y+8EZT2V3L^^V2FbvXS<8;-T<&Re(sN|{ozE=$K5 zy>>3Q0r$&+<}2^kxi>2w4`<|(K*DN3V6CJJ{Tg!D+D@o2uxH*fm~IU;s;&%z3pHXh zx#<+sM>Dh}C1{0Ah3sRq4e>;==SgpnnwWUW-Y|ZgWy+aaRz#clf+ED8s0@f1M`1OH zkUzcn(c$1uN1lOAz@M`xuU+WYW?{{qNi;Gb#l}9#eZyd+vAqhJG+oZC`P&F*OW+m_ zZvZGHsQAspPJXwk<$GK*&p|F3AL0X$qPWTC^4`u;Gpr@O?t_fnk}!*+%A#ZG5P)xCMoNK zn2-$lpT~W0gmiV`K;ujueizA+3XUjn^o4n^(bLO`^v=UCFSSiNe;3X54=JnzMrGi5$XYw8G0C8oJ#G;&W!;z_Ur~5X~o4x!PDYCX0>=F4H)6)0jwn zi_jH-QO~ydHo@AT!PrxTA0H6IKoL|}apn@SU)|?;gTNy8h1GD>bgmJnllkP2pF!*x z5oV-jy4Ln*8mr^iTkmg&9TRtDxBw(5f7uc_0qZO5SonSYO~mw!s$q_Qx52|CNy7QB zxMtlA+LduWkFgPj7`mNOn$De_nZ$cNHk6%-xQJ8lMMBQS?CRqFP)8ggbaFCR&ARmhtad$-piNFf21l> zy5Q#yK?>fTUaGh0?rscea!=?pgqXWCC)h`B>t}9(wN@~Dhmk0pOeA*S$r+H&G(oz) z&wsFO&`lkR@|T9fD-in1F=XnD(y9(S0!HszI!z zu@^{sF+;?Oo}x!;=^4goJ&}Z*QW;BoT4xSjC$}Wk{mrO+8VJ%*C7m$Z9yk zD=x=l%fdyp57AK^SXewgnkYk(nLsdGL;*QM^=QlxsVZYp+tHBlWqJ_cwco+DlO*zR z1oS-W<`1uK*JkC4n8q=gS~}wE)h0LHxwWm4^kSmPJ;Qyrrx|_!<9k3b?Z2z>si4fs zSs*wnsO~1OkMEsi<5QUPrsG^fsw~q6@&!1;|{5oVbOc<$_7PdnN2z=z^Z zqHDC1BIii^((-;zig8@+`A9d3lUcs#`?SpXw!=#ZS*^=sCAqmfKSOm+D~7!J!BA+| z1vHbncnWMew&Vr$9JxqSk>E%lZp9%Qy!?ItHl-o-6(1){hk1Qo{qMi4iimt|7CLE3 z<74u0Z`9J_zV!Yofbp-Loh8`wxby2&)4l{kq$uItKMsoDl)E~~T2blm;ZYt)TIq6={wzOy zID2?&;lE|L7^{imJv56vX8IWadAHJs*{*ESeR0hhEW*lBC42UPu4iFY;pk(qH8-Vi z8Ac_zOcb}Ld{Dhc`)IJ8vA$vTo?)v;n8-%HPMibbYlRq_cGaB`1|yAFw>jUbi1#QL z6K{X(L^TSU9v~X&ov!?=rvb0cSP5Wo^#O*eKM3n6ji>;VY6pu-+v+yN_cZ9hebxFB z<0gysk$6D}7_Jbux*ejCj8W=?W{wwq2 ze&T|k;me8Zx>T_ux9C372ek%k$CHjQj5yc(feyPIuRmYLaF6ImBkLY91*r2Gp!>Su zh+vHR)iJ47`JRt3FVmvkYsBYl@T3TK-R6Q2lqv71cDNL2guxIWZSz#JCJR;muJgEA zm=FFT=E-f23Rz4CA5|OmlSnNag$GK2yR`*Zv+g>^)7dpC4pgfG`i_|*k%c0$jN-(r zp5^UWbyO#=X)SlkpFU z&a(Oz?M!&w9F8vuaY&8NJT5r3wxFY#gfzXRxUxd9W#LAP2p9g{Q7EelWoP*(_-rs` zVNE&Lr34Y95)T|4g)+Mm3iL4%^|8n%F@2{@vA>daZ58Q>viQ*ccO}A~dnIK_2?ww>B`rXX}vPq*+SC(lgK| z2v;tzXv4}QvsA1}16?kCZh#u^*kn}}x57x=dN*-9*peWFk4!w13aGwIuP^dUECvE1 zf`UE|xu>ykpJH}nmvgEu&vkC7_!*|gYw5FEVDJ>Up-b^=Pfd>Zl@N(zlob;#N$_bk zbQxy9gYgZ^(!oK`_MY5CMw!hrz|}XEd*7G|G`H9fNo|!Oo317d+8;t0>c-9(94tkyJx|-9~Skh z@bVpVo5e((*vsPBi!_hu5i+yjfR7k3zlP6-Va6d+a|vs>2B+XSwy`@C1_I{=oHZj@i-w))L{NaeEqOhqgu1 zJt*}p65QD1v*K-Bmm6KagL`Bz{#5s?%d*oYZSXVOawvwiWZ0;8&%*F${bd9~>%DM( znRiV^x}${KtfY_%pU)=d0nDZ*QmZ-uIegujfm=mS_l=x@{l57$HWTzILY&)!=3`;c zUmu|55-HFO{61W+ZiW~LFN}X`m~zUU3(xeyj7J8Pumt9YeEsALqA!MHD0a}S_4xIJ zgfsg|GWIq)LGA)O+R3bkgOSzA4+vzyzvu>GihnqmJZxvk!|FuQ5=CUtyF0z-a`-X-J{yc2FtIt9Os) zi*0FsQ9`9V_(jdy5wPX+cHS>vMl{H3xb)`_A{St#)Xe^i>!&guNtwAbYjY=bkO$rI ztuI^FK|Ij9;S#5tMAqyGgm40)HXnWo&dtQqDf>9~_uqpcZ{9>_*2bwG{blDV)G?Ly zIv1dx5m z-98>;lYi7fKE-gp#S!zIQP^jTL!8Ll8T6!oDgfjFc3w zAD^lpKarRKxLSxD*)wU0vvruWIAL*J-SNcZr53+q{{F~3DuVDvGTm`&J5D+P`jSSv z$M#@oE*xWK_1@NM><6Pkb8=(i!MDwK=21TrZQp}zquxpHJu|nF483q7!*NN|=3nKw z5I9e8X~1!7NR<s0Y62iQe4`M4T-wl z;uY9?TzO__y`4xW>IEGcfzHHl40?$t302)FA^M>{cJG7jqU1CsOTIP^*X9g>0uqxk zg=FDSvI-=YiC9?BhMrAUuuMBq6<~tz>UXkl1ZV&^jbJwop4_b8$A&&V4!p?Uct1;d z?U96Y6C^l9jaZ@^+}T|Iwc2{gc%7*Ii%_hD!|&*kgsn9Fl5782+j#pAJ!yne!TITb zYaf_GNY!!?ySKE`-`{S`Oi;gjzg;)3%j0!S)(F#%m})$OxpitLUk}#m**a zed>^uG!IAoo=MFyfASs8(|r&Z#UG}O7jnOqvSTX2V=19s{mpi6?ziPacHpuK`^~SN zsba5_DM(<&hyj2>;xsfZ^p zu_0-!OKd*_ij9lB@(J7{J_257+$V-TJdd3Y1`oyt8kinj49MNDWLXJ-J<(-V*Ms;d zG4xb1^rYqvMmI8d*l{{-IO{Wg?r<6-_@*N%v66IW!L9xm870eDrvH%7LAVI#B?*mIw50H~o&*4noZk{9<@x)LFT zzo+s4Os8N5HfhW4BV0J@4DPbf714_o(NiO!sr#>t*c`!l+`Rs`0gB6f%LW;n^YX>Yp$dsb1D9z7*T>%r zx0ad~@6u4-r8SBF$)p@7(kp`3D~cRp__wsxj+e;?jLDu2&YqRp*Ub4k5V)-?0#8%q zNK}R?^sN#k_G6ZZW1jAdG6=CK1hL4G?CVnG+|cz2my9e>OcqEg5XHaT68e*0orF(4 zb0o3gd)R*m6@X$2Kx*}<-Dr2?oFV_OnEqdt_9gjSd$`FhesP)pYQRKa@W1RIp~D=Z zQgFou2j=qwsV5_i`Mb*2S!0h?NRCuiWrA>B zRN3wnEp$^*bW@so3$p#Urv})l6cDKt*5K4g-^u9O!~ZLEwEbcY*74#R=>j8U-HX)4 zuX7FY0DE|V)J^g?7oH& zgF?(RY{-@Y)0V+eQlqM(i7)NBzCc<6T@{906*|V0-P-_y+|(-rGz3<6Ohmmkt#@&E+qt{hmKSs zp;ze`Po&YJ+o)lUVG21J!^kIoOMms zFk5wyt@=Dv15A3~7zfBIjQ+)a{3dwH5&Zhqis4tH?+(<^9Eu>(Db-=)Nu2SdQa{~U zZ6~9@*!$XIn6Em>SA8C*0o+=?j4BpLuusz)IisTxNc`|9X@h}#9$SgbO(D)rX(Y(X zWS_+@7h;wRqpyph6*-XWOGl{Y!HmcwRa&Peik2>RP}U;=-f4a*eMOtH|bQ6z0a@cEc=m}_hnS{ z2a9?UfqD^2jbBxwIaYM|<0S6mq~ZsDy#87vMym+rRpxE7Sr!!D`i=iyUCE>Bl1E8$ z1`kqlZg4d#z<_7-GcUltE5>dFkRlY#$LE#Zu>W>Q!jr!au7ACgy(=r*K936CLPl&! z>_5%TNZ;!zc!Vpcr;#0`EEgBpPuMo9?69g#C9X{6^(b;&_|=tVY-N*5Y?Io^Suh>` z2FT|r`)L&3{^UvEKyaH=H#Yd7?ckzLB`$jsojs{^np#G!M(_Y1z%Q*!@xS_AGl0%= zk2HC~YWyN|AQLHRZ`;@Z=eTw4{a)GfNb6Q@Cl>?V@FGb>l&Se#UvMIeW)XpAQ8a@8 z-*132QmIAahs?p|>L;Voh?4(wnBJG~yrT6BHy?RVv>BEeWxoRy(|PG?FDl*a&ash2n8+fOtY8vNS0l4FKOn6rx>PV^ z%Y&*BBD%qYqf&B8+fRwAVxL zZ(8#3#$UZG52;ulKJQigUgz!*^T=}Iy^;Id{WJ>t*Y>zcqSS||0!^taj40u=$Gq(3 zpK&3?#{8%rJ*j{i)3XipF%OaBRo&rCq3i$_h(UZiAZETf?Y?q*J$YF*^#hNQ3%rbQdXWAUC+h&-iq_q< zdQDii?+@Fv7#)0N>&NzIZ9`;*NaC&aMhfvpN+V|ui%W%8N(|qnAGGyZWDm@+W>Yr) ziQgh?fL1t6mldjON=kp$=Jk!;%|2d)V zM3#6}sP_7`gM3i^Uo`cPH+K8dKJ`~vyG_v8VAD}W=EHVb{K~%nUz8otp-LW5h~t{$ zZ#)X~W`9u=n2Wqr)EBJOm4^?K6xauJ`$1zJx+s~Dp(bChO~ASWxKrlERl!%PLhNES zfe7TK60f05KK+~cmn|$tB!U7~vwQ27K6dOQO)rQ2q7pF1@_?E^FpZPBKf2gj?BHHM zyG70$->W|(ZRZa}hU2$OTrEyWJi=eS7}ujUnt_a?Bg~T4p2CDPI0^*b(COiHfMvgqe&~ zd1BNhVD30NS7@$4pxAI10yVwI`fOFC>TQnCs8)8TjNffkl?=}0kEYztVD+I zRp0{by~C>wep&J8>pu2D=b$Jg-K#A5;=oIV%VSh(Rl{aTdxqHQyi5|$$yQ?7-YHCB zm;{Y=1x1lv?fM@yByd{GEA$6~Z8QgnDp{>Ou+$sS9JMv1@r$=>Nh_R!iuz^hBR4wLwsvRvNRF=A(-?-wQuQ~dgjPKG}o^%g!~)J*TZ z?#&uN%BEBM3g$$8iE-4&x!L8hSZ{**2Ol6Sc8q-w+UtDpj0G)EHkDRHZk}Jb0|nSu z$^#)C&w9VU|5~?vPJJSrcKdq%`P9+zQvV2Aq)^J9!u~|oaUxSNNn8oj zmkdTbO6B-LP3C6%bR*oexjXYtuW*jq-tjhq@>z4)hqPED<5hy|&3T-qsKxT#s$+Kf zX8gN&*}k<4mU;o2GeE_4(Mx5_@^2G#J=E0InMrNTvb_nK9C`rx++7+(9`E@*C4s

C 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

Kx_3s7h^KxA;g4E?%s@nWE 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%0A!m=6gw<@X+{a)C# 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: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 HWx)RcV2S4G diff --git a/fuzz/summary.txt b/fuzz/summary.txt index 05c000aa7757..305cb0d84c45 100644 --- a/fuzz/summary.txt +++ b/fuzz/summary.txt @@ -1,52 +1,58 @@ Filename Regions Missed Regions Cover Functions Missed Functions Executed Lines Missed Lines Cover ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -fuzz/clock.c 24 1 95.83% 4 0 100.00% 35 0 100.00% -fuzz/prng.c 31 0 100.00% 2 0 100.00% 35 0 100.00% -fuzz/udev.c 103 1 99.03% 17 0 100.00% 126 3 97.62% +fuzz/clock.c 24 1 95.83% 4 0 100.00% 35 1 97.14% +fuzz/pcsc.c 59 0 100.00% 8 0 100.00% 75 12 84.00% +fuzz/prng.c 31 0 100.00% 2 0 100.00% 35 1 97.14% +fuzz/udev.c 109 1 99.08% 17 0 100.00% 126 11 91.27% fuzz/uniform_random.c 7 1 85.71% 1 0 100.00% 12 1 91.67% -fuzz/wrap.c 6 0 100.00% 1 0 100.00% 7 0 100.00% +fuzz/wrap.c 17 0 100.00% 3 0 100.00% 29 0 100.00% openbsd-compat/explicit_bzero.c 4 0 100.00% 1 0 100.00% 7 0 100.00% openbsd-compat/freezero.c 4 0 100.00% 1 0 100.00% 6 0 100.00% openbsd-compat/recallocarray.c 41 7 82.93% 1 0 100.00% 36 7 80.56% openbsd-compat/strlcat.c 12 1 91.67% 1 0 100.00% 21 1 95.24% openbsd-compat/timingsafe_bcmp.c 4 0 100.00% 1 0 100.00% 7 0 100.00% -src/aes256.c 115 4 96.52% 8 0 100.00% 157 14 91.08% -src/assert.c 563 40 92.90% 56 3 94.64% 694 40 94.24% +src/aes256.c 118 4 96.61% 8 0 100.00% 157 14 91.08% +src/assert.c 565 42 92.57% 56 3 94.64% 694 42 93.95% src/authkey.c 44 0 100.00% 5 0 100.00% 59 0 100.00% -src/bio.c 419 20 95.23% 49 2 95.92% 559 21 96.24% +src/bio.c 419 20 95.23% 49 2 95.92% 559 24 95.71% src/blob.c 53 2 96.23% 10 0 100.00% 83 4 95.18% src/buf.c 8 1 87.50% 2 0 100.00% 16 1 93.75% -src/cbor.c 1047 23 97.80% 54 0 100.00% 1237 46 96.28% -src/compress.c 34 4 88.24% 3 0 100.00% 28 3 89.29% +src/cbor.c 1049 23 97.81% 54 0 100.00% 1237 45 96.36% +src/compress.c 105 14 86.67% 5 0 100.00% 122 24 80.33% src/config.c 108 0 100.00% 11 0 100.00% 151 0 100.00% -src/cred.c 632 34 94.62% 69 2 97.10% 830 36 95.66% -src/credman.c 382 10 97.38% 40 0 100.00% 518 15 97.10% -src/dev.c 421 79 81.24% 45 7 84.44% 491 105 78.62% +src/cred.c 634 36 94.32% 69 2 97.10% 830 39 95.30% +src/credman.c 382 10 97.38% 40 0 100.00% 518 18 96.53% +src/dev.c 332 71 78.61% 41 6 85.37% 378 86 77.25% src/ecdh.c 117 2 98.29% 4 0 100.00% 146 5 96.58% -src/eddsa.c 80 3 96.25% 10 0 100.00% 106 8 92.45% +src/eddsa.c 88 5 94.32% 10 0 100.00% 114 9 92.11% src/err.c 122 10 91.80% 1 0 100.00% 126 10 92.06% -src/es256.c 306 5 98.37% 19 0 100.00% 358 7 98.04% +src/es256.c 315 7 97.78% 19 0 100.00% 372 12 96.77% src/hid.c 87 2 97.70% 14 0 100.00% 145 3 97.93% -src/hid_linux.c 173 68 60.69% 14 7 50.00% 250 104 58.40% -src/hid_unix.c 28 20 28.57% 2 0 100.00% 43 24 44.19% -src/info.c 184 0 100.00% 39 0 100.00% 316 0 100.00% -src/io.c 182 7 96.15% 13 0 100.00% 221 11 95.02% -src/iso7816.c 18 1 94.44% 5 0 100.00% 38 0 100.00% -src/largeblob.c 513 19 96.30% 30 0 100.00% 684 43 93.71% -src/log.c 39 5 87.18% 7 1 85.71% 63 4 93.65% -src/netlink.c 328 14 95.73% 40 0 100.00% 498 32 93.57% -src/nfc_linux.c 327 73 77.68% 23 5 78.26% 458 124 72.93% -src/pin.c 403 3 99.26% 26 0 100.00% 495 3 99.39% +src/hid_linux.c 173 68 60.69% 14 7 50.00% 250 105 58.00% +src/hid_unix.c 29 21 27.59% 2 0 100.00% 43 26 39.53% +src/info.c 186 0 100.00% 40 0 100.00% 321 0 100.00% +src/io.c 185 7 96.22% 13 0 100.00% 221 12 94.57% +src/iso7816.c 18 1 94.44% 5 0 100.00% 38 1 97.37% +src/largeblob.c 514 19 96.30% 30 0 100.00% 684 46 93.27% +src/log.c 39 5 87.18% 7 1 85.71% 63 7 88.89% +src/netlink.c 329 14 95.74% 40 0 100.00% 498 33 93.37% +src/nfc.c 142 7 95.07% 11 1 90.91% 223 27 87.89% +src/nfc_linux.c 174 56 67.82% 13 5 61.54% 245 103 57.96% +src/pcsc.c 201 1 99.50% 13 0 100.00% 278 3 98.92% +src/pin.c 403 3 99.26% 26 0 100.00% 495 4 99.19% src/random.c 6 1 83.33% 1 0 100.00% 6 1 83.33% src/reset.c 24 0 100.00% 3 0 100.00% 23 0 100.00% -src/rs1.c 25 0 100.00% 3 0 100.00% 39 0 100.00% -src/rs256.c 141 8 94.33% 13 0 100.00% 172 10 94.19% -src/time.c 43 3 93.02% 3 0 100.00% 43 1 97.67% -src/tpm.c 100 0 100.00% 9 0 100.00% 194 0 100.00% +src/rs1.c 25 2 92.00% 3 0 100.00% 39 4 89.74% +src/rs256.c 141 8 94.33% 13 0 100.00% 172 11 93.60% +src/time.c 43 3 93.02% 3 0 100.00% 43 2 95.35% +src/touch.c 67 0 100.00% 2 0 100.00% 79 0 100.00% +src/tpm.c 103 3 97.09% 9 0 100.00% 194 9 95.36% src/types.c 25 0 100.00% 6 0 100.00% 46 0 100.00% src/u2f.c 528 4 99.24% 17 0 100.00% 685 12 98.25% +src/util.c 14 1 92.86% 1 0 100.00% 14 1 92.86% Files which contain no functions: +fuzz/mutator_aux.h 0 0 - 0 0 - 0 0 - openbsd-compat/openbsd-compat.h 0 0 - 0 0 - 0 0 - openbsd-compat/time.h 0 0 - 0 0 - 0 0 - src/extern.h 0 0 - 0 0 - 0 0 - @@ -54,4 +60,4 @@ src/fido.h 0 0 - src/fido/err.h 0 0 - 0 0 - 0 0 - src/fido/param.h 0 0 - 0 0 - 0 0 - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -TOTAL 7861 476 93.94% 684 27 96.05% 10270 699 93.19% +TOTAL 8227 484 94.12% 710 27 96.20% 10756 777 92.78% diff --git a/fuzz/wiredata_fido2.h b/fuzz/wiredata_fido2.h index da905516f92a..68504325450e 100644 --- a/fuzz/wiredata_fido2.h +++ b/fuzz/wiredata_fido2.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -630,4 +630,78 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +#define WIREDATA_CTAP_NFC_INIT \ + 0x55, 0x32, 0x46, 0x5f, 0x56, 0x32, 0x90, 0x00 + +#define WIREDATA_CTAP_NFC_MSG \ + 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00 + +#define WIREDATA_CTAP_EXTENDED_APDU \ + 0x00, 0xa4, 0x04, 0x00, 0x00, 0x02, 0x00, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, \ + 0x00 + #endif /* _WIREDATA_FIDO2_H */ diff --git a/fuzz/wrap.c b/fuzz/wrap.c index 8d7be6bb6247..4d6ac77a98bb 100644 --- a/fuzz/wrap.c +++ b/fuzz/wrap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -16,6 +16,7 @@ #include <stdint.h> #include <stdio.h> #include <stdlib.h> +#include <zlib.h> #include "mutator_aux.h" @@ -635,3 +636,51 @@ WRAP(int, (sockfd, addr, addrlen), 1 ) + +WRAP(int, + deflateInit2_, + (z_streamp strm, int level, int method, int windowBits, int memLevel, + int strategy, const char *version, int stream_size), + Z_STREAM_ERROR, + (strm, level, method, windowBits, memLevel, strategy, version, + stream_size), + 1 +) + +int __wrap_deflate(z_streamp, int); +int __real_deflate(z_streamp, int); + +int +__wrap_deflate(z_streamp strm, int flush) +{ + if (uniform_random(400) < 1) { + return Z_BUF_ERROR; + } + /* should never happen, but we check for it */ + if (uniform_random(400) < 1) { + strm->avail_out = UINT_MAX; + return Z_STREAM_END; + } + + return __real_deflate(strm, flush); +} + +int __wrap_asprintf(char **, const char *, ...); + +int +__wrap_asprintf(char **strp, const char *fmt, ...) +{ + va_list ap; + int r; + + if (uniform_random(400) < 1) { + *strp = (void *)0xdeadbeef; + return -1; + } + + va_start(ap, fmt); + r = vasprintf(strp, fmt, ap); + va_end(ap); + + return r; +} diff --git a/fuzz/wrapped.sym b/fuzz/wrapped.sym index 0e9d34627f86..59224565ee0a 100644 --- a/fuzz/wrapped.sym +++ b/fuzz/wrapped.sym @@ -1,3 +1,4 @@ +asprintf bind BN_bin2bn BN_bn2bin @@ -24,6 +25,8 @@ cbor_new_definite_bytestring cbor_new_definite_map cbor_serialize_alloc clock_gettime +deflate +deflateInit2_ EC_KEY_get0_group EC_KEY_get0_private_key EC_KEY_new_by_curve_name @@ -71,6 +74,12 @@ realloc RSA_new RSA_pkey_ctx_ctrl RSA_set0_key +SCardConnect +SCardDisconnect +SCardEstablishContext +SCardListReaders +SCardReleaseContext +SCardTransmit SHA1 SHA256 strdup diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 5ce2fc7b83ed..910ee684e9fb 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. @@ -117,10 +117,11 @@ list(APPEND MAN_ALIAS fido_cbor_info_new fido_cbor_info_extensions_len fido_cbor_info_new fido_cbor_info_extensions_ptr fido_cbor_info_new fido_cbor_info_free - fido_cbor_info_new fido_cbor_info_maxmsgsiz fido_cbor_info_new fido_cbor_info_maxcredbloblen fido_cbor_info_new fido_cbor_info_maxcredcntlst fido_cbor_info_new fido_cbor_info_maxcredidlen + fido_cbor_info_new fido_cbor_info_maxlargeblob + fido_cbor_info_new fido_cbor_info_maxmsgsiz fido_cbor_info_new fido_cbor_info_fwversion fido_cbor_info_new fido_cbor_info_options_len fido_cbor_info_new fido_cbor_info_options_name_ptr @@ -263,7 +264,7 @@ math(EXPR MAN_ALIAS_MAX "${MAN_ALIAS_LEN} - 2") # man_copy foreach(f ${MAN_SOURCES}) add_custom_command(OUTPUT ${f} - COMMAND cp -f ${CMAKE_SOURCE_DIR}/man/${f} . + COMMAND cp -f ${PROJECT_SOURCE_DIR}/man/${f} . DEPENDS ${f}) list(APPEND COPY_FILES ${f}) endforeach() @@ -289,7 +290,7 @@ endforeach() foreach(f ${MAN_SOURCES}) string(REGEX REPLACE ".[13]" "" g ${f}) add_custom_command(OUTPUT ${g}.partial - COMMAND cat ${CMAKE_SOURCE_DIR}/man/dyc.css > ${g}.partial + COMMAND cat ${PROJECT_SOURCE_DIR}/man/dyc.css > ${g}.partial COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial DEPENDS ${f}) list(APPEND HTML_PARTIAL_FILES ${g}.partial) @@ -337,17 +338,17 @@ add_custom_target(man ALL) if(MANDOC_PATH) add_dependencies(man man_symlink_html) add_dependencies(man_gzip man_lint) - install(FILES ${CMAKE_SOURCE_DIR}/man/style.css + install(FILES ${PROJECT_SOURCE_DIR}/man/style.css DESTINATION "${CMAKE_INSTALL_DOCDIR}/html") foreach(f ${MAN_SOURCES}) string(REGEX REPLACE ".[13]" "" f ${f}) - install(FILES ${CMAKE_BINARY_DIR}/man/${f}.html + install(FILES ${PROJECT_BINARY_DIR}/man/${f}.html DESTINATION "${CMAKE_INSTALL_DOCDIR}/html") endforeach() foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) math(EXPR j "${i} + 1") list(GET MAN_ALIAS ${j} DST) - install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.html + install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.html DESTINATION "${CMAKE_INSTALL_DOCDIR}/html") endforeach() endif() @@ -358,34 +359,34 @@ if(GZIP_PATH) add_dependencies(man man_symlink_gzip) foreach(f ${MAN_SOURCES}) if (${f} MATCHES ".1$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz + install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") elseif(${f} MATCHES ".3$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz + install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() endforeach() foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) math(EXPR j "${i} + 1") list(GET MAN_ALIAS ${j} DST) - install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3.gz + install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3.gz DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endforeach() elseif(NOT MSVC) add_dependencies(man man_symlink) foreach(f ${MAN_SOURCES}) if (${f} MATCHES ".1$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f} + install(FILES ${PROJECT_BINARY_DIR}/man/${f} DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") elseif(${f} MATCHES ".3$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f} + install(FILES ${PROJECT_BINARY_DIR}/man/${f} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() endforeach() foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) math(EXPR j "${i} + 1") list(GET MAN_ALIAS ${j} DST) - install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3 + install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3 DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endforeach() endif() diff --git a/man/fido2-token.1 b/man/fido2-token.1 index 1aa2feb86859..4f8b8d08efe6 100644 --- a/man/fido2-token.1 +++ b/man/fido2-token.1 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: September 13 2019 $ +.Dd $Mdocdate: April 11 2022 $ .Dt FIDO2-TOKEN 1 .Os .Sh NAME @@ -147,7 +147,7 @@ from .Ar device , where .Ar key_path -must hold the blob's base64-encoded encryption key. +holds the blob's base64-encoded 32-byte AES-256 GCM encryption key. A PIN or equivalent user-verification gesture is required. .It Fl D Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar device Deletes a @@ -189,7 +189,7 @@ from .Ar device , where .Ar key_path -must hold the blob's base64-encoded encryption key. +holds the blob's base64-encoded 32-byte AES-256 GCM encryption key. The blob is written to .Ar blob_path . A PIN or equivalent user-verification gesture is required. @@ -267,29 +267,27 @@ The user will be prompted for the PIN. Enables CTAP 2.1 Enterprise Attestation on .Ar device . .It Fl S Fl b Fl k Ar key_path Ar blob_path Ar device -Sets -.Ar blob_path -as a CTAP 2.1 +Sets a CTAP 2.1 .Dq largeBlob encrypted with .Ar key_path on .Ar device , where -.Ar blob_path -holds the blob's plaintext, and .Ar key_path -the blob's base64-encoded encryption. +holds the blob's base64-encoded 32-byte AES-256 GCM encryption key. +The blob is read from +.Fa blob_path . A PIN or equivalent user-verification gesture is required. .It Fl S Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar blob_path Ar device -Sets -.Ar blob_path -as a CTAP 2.1 +Sets a CTAP 2.1 .Dq largeBlob associated with .Ar rp_id on .Ar device . +The blob is read from +.Fa blob_path . If .Ar rp_id has multiple credentials enrolled on diff --git a/man/fido_assert_new.3 b/man/fido_assert_new.3 index a1a3c101ba33..413b7a7ba2ef 100644 --- a/man/fido_assert_new.3 +++ b/man/fido_assert_new.3 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: October 22 2019 $ +.Dd $Mdocdate: April 27 2022 $ .Dt FIDO_ASSERT_NEW 3 .Os .Sh NAME @@ -180,6 +180,8 @@ in The HMAC Secret Extension .Pq hmac-secret is a CTAP 2.0 extension. +Note that the resulting hmac-secret varies according to whether +user verification was performed by the authenticator. .Pp The .Fn fido_assert_blob_ptr diff --git a/man/fido_assert_set_authdata.3 b/man/fido_assert_set_authdata.3 index 51cdcc97c292..0d512b655012 100644 --- a/man/fido_assert_set_authdata.3 +++ b/man/fido_assert_set_authdata.3 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: May 23 2018 $ +.Dd $Mdocdate: April 27 2022 $ .Dt FIDO_ASSERT_SET_AUTHDATA 3 .Os .Sh NAME @@ -182,6 +182,8 @@ is made, and no references to the passed pointer are kept. The HMAC Secret .Pq hmac-secret Extension is a CTAP 2.0 extension. +Note that the resulting hmac-secret varies according to whether +user verification was performed by the authenticator. The .Fn fido_assert_set_hmac_secret function is normally only useful when writing tests. diff --git a/man/fido_cbor_info_new.3 b/man/fido_cbor_info_new.3 index 86f2a887f99a..45c143f5df62 100644 --- a/man/fido_cbor_info_new.3 +++ b/man/fido_cbor_info_new.3 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: May 24 2018 $ +.Dd $Mdocdate: April 22 2022 $ .Dt FIDO_CBOR_INFO_NEW 3 .Os .Sh NAME @@ -29,6 +29,7 @@ .Nm fido_cbor_info_maxcredbloblen , .Nm fido_cbor_info_maxcredcntlst , .Nm fido_cbor_info_maxcredidlen , +.Nm fido_cbor_info_maxlargeblob , .Nm fido_cbor_info_fwversion .Nd FIDO2 CBOR Info API .Sh SYNOPSIS @@ -80,6 +81,8 @@ .Ft uint64_t .Fn fido_cbor_info_maxcredidlen "const fido_cbor_info_t *ci" .Ft uint64_t +.Fn fido_cbor_info_maxlargeblob "const fido_cbor_info_t *ci" +.Ft uint64_t .Fn fido_cbor_info_fwversion "const fido_cbor_info_t *ci" .Sh DESCRIPTION The @@ -201,6 +204,12 @@ as reported in .Fa ci . .Pp The +.Fn fido_cbor_info_maxlargeblob +function returns the maximum length in bytes of an authenticator's +serialized largeBlob array as reported in +.Fa ci . +.Pp +The .Fn fido_cbor_info_fwversion function returns the firmware version attribute of .Fa ci . diff --git a/man/fido_dev_enable_entattest.3 b/man/fido_dev_enable_entattest.3 index bfc1b2834e55..a06746b61317 100644 --- a/man/fido_dev_enable_entattest.3 +++ b/man/fido_dev_enable_entattest.3 @@ -2,7 +2,7 @@ .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: September 22 2020 $ +.Dd $Mdocdate: March 30 2022 $ .Dt FIDO_DEV_ENABLE_ENTATTEST 3 .Os .Sh NAME @@ -65,7 +65,7 @@ does not have a PIN set. .Pp The .Fn fido_dev_force_pin_change -instructs +function instructs .Fa dev to require a PIN change. Subsequent PIN authentication attempts against diff --git a/man/fido_dev_info_manifest.3 b/man/fido_dev_info_manifest.3 index 9539a0dda7c5..4be7e3a60490 100644 --- a/man/fido_dev_info_manifest.3 +++ b/man/fido_dev_info_manifest.3 @@ -2,7 +2,7 @@ .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: May 25 2018 $ +.Dd $Mdocdate: March 30 2022 $ .Dt FIDO_DEV_INFO_MANIFEST 3 .Os .Sh NAME @@ -97,7 +97,7 @@ Please note that the first slot has index 0. .Pp The .Fn fido_dev_info_path -returns the filesystem path or subsystem-specific identification +function returns the filesystem path or subsystem-specific identification string of .Fa di . .Pp diff --git a/openbsd-compat/bsd-asprintf.c b/openbsd-compat/bsd-asprintf.c new file mode 100644 index 000000000000..fbcb8679258f --- /dev/null +++ b/openbsd-compat/bsd-asprintf.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2004 Darren Tucker. + * + * Based originally on asprintf.c from OpenBSD: + * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * 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. + */ + +#include "openbsd-compat.h" + +#ifndef HAVE_ASPRINTF + +#include <errno.h> +#include <limits.h> /* for INT_MAX */ +#include <stdarg.h> +#include <stdio.h> /* for vsnprintf */ +#include <stdlib.h> + +#define VA_COPY(dest, src) va_copy(dest, src) + +#define INIT_SZ 128 + +int +vasprintf(char **str, const char *fmt, va_list ap) +{ + int ret; + va_list ap2; + char *string, *newstr; + size_t len; + + if ((string = malloc(INIT_SZ)) == NULL) + goto fail; + + VA_COPY(ap2, ap); + ret = vsnprintf(string, INIT_SZ, fmt, ap2); + va_end(ap2); + if (ret >= 0 && ret < INIT_SZ) { /* succeeded with initial alloc */ + *str = string; + } else if (ret == INT_MAX || ret < 0) { /* Bad length */ + free(string); + goto fail; + } else { /* bigger than initial, realloc allowing for nul */ + len = (size_t)ret + 1; + if ((newstr = realloc(string, len)) == NULL) { + free(string); + goto fail; + } + VA_COPY(ap2, ap); + ret = vsnprintf(newstr, len, fmt, ap2); + va_end(ap2); + if (ret < 0 || (size_t)ret >= len) { /* failed with realloc'ed string */ + free(newstr); + goto fail; + } + *str = newstr; + } + return (ret); + +fail: + *str = NULL; + errno = ENOMEM; + return (-1); +} + +int asprintf(char **str, const char *fmt, ...) +{ + va_list ap; + int ret; + + *str = NULL; + va_start(ap, fmt); + ret = vasprintf(str, fmt, ap); + va_end(ap); + + return ret; +} +#endif diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index dc9acec4c0a8..1518ff755b97 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -115,4 +115,8 @@ ssize_t getline(char **, size_t *, FILE *); #define IOCTL_REQ(x) ((int)(x)) #endif +#if !defined(HAVE_ASPRINTF) +int asprintf(char **, const char *, ...); +#endif + #endif /* !_OPENBSD_COMPAT_H */ diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt index c550b3141822..87482ef35362 100644 --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt @@ -1,20 +1,45 @@ -# Copyright (c) 2018-2021 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -add_custom_target(regress ALL) +add_custom_target(regress) macro(add_regress_test NAME SOURCES) add_executable(${NAME} ${SOURCES}) - target_link_libraries(${NAME} fido2_shared) + target_link_libraries(${NAME} fido2) add_test(${NAME} ${NAME}) add_dependencies(regress ${NAME}) endmacro() -add_custom_command(TARGET regress POST_BUILD - COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) +if(MSVC AND BUILD_SHARED_LIBS) + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + "${CBOR_BIN_DIRS}/${CBOR_LIBRARIES}.dll" + "${CRYPTO_BIN_DIRS}/${CRYPTO_LIBRARIES}.dll" + "${ZLIB_BIN_DIRS}/${ZLIB_LIBRARIES}.dll" + "${CMAKE_CURRENT_BINARY_DIR}") +endif() + +if(CMAKE_CROSSCOMPILING OR (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64" AND + CMAKE_GENERATOR_PLATFORM MATCHES "^ARM.*$")) + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E echo + "Cross-compilation detected. Skipping regress tests.") +else() + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_CTEST_COMMAND}" --output-on-failure + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) +endif() -add_regress_test(regress_cred cred.c) add_regress_test(regress_assert assert.c) +add_regress_test(regress_compress compress.c) +add_regress_test(regress_cred cred.c) add_regress_test(regress_dev dev.c) +add_regress_test(regress_eddsa eddsa.c) +add_regress_test(regress_es256 es256.c) +add_regress_test(regress_rs256 rs256.c) + +if(MINGW) + # needed for nanosleep() in mingw + target_link_libraries(regress_dev winpthread) +endif() diff --git a/regress/assert.c b/regress/assert.c index 23d666a61173..695a3b78edcc 100644 --- a/regress/assert.c +++ b/regress/assert.c @@ -4,16 +4,19 @@ * license that can be found in the LICENSE file. */ -#define _FIDO_INTERNAL +#undef NDEBUG #include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + #include <fido.h> #include <fido/es256.h> #include <fido/rs256.h> #include <fido/eddsa.h> -#include <string.h> -#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) +static int fake_dev_handle; static const unsigned char es256_pk[64] = { 0x34, 0xeb, 0x99, 0x77, 0x02, 0x9c, 0x36, 0x38, @@ -94,13 +97,13 @@ dummy_open(const char *path) { (void)path; - return (FAKE_DEV_HANDLE); + return (&fake_dev_handle); } static void dummy_close(void *handle) { - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); } static int diff --git a/regress/compress.c b/regress/compress.c new file mode 100644 index 000000000000..5d537838bdeb --- /dev/null +++ b/regress/compress.c @@ -0,0 +1,267 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#include <openssl/sha.h> + +#define _FIDO_INTERNAL + +#include <fido.h> + +/* + * zlib compressed data (RFC1950); see https://www.ietf.org/rfc/rfc6713.txt + */ +static /* const */ unsigned char rfc1950_blob[694] = { + 0x78, 0x9c, 0xb5, 0x52, 0x3b, 0x6f, 0xdb, 0x30, + 0x10, 0xde, 0xf5, 0x2b, 0x0e, 0x99, 0x12, 0x40, + 0x75, 0x13, 0x4f, 0x45, 0x3b, 0xd1, 0x12, 0x6d, + 0x1d, 0x20, 0x8b, 0x2a, 0x49, 0xd9, 0xf5, 0x28, + 0x4b, 0x4c, 0x42, 0xc0, 0x12, 0x03, 0x3d, 0x12, + 0xe4, 0xdf, 0xf7, 0xc8, 0x3a, 0x88, 0xd3, 0x0c, + 0x9d, 0xea, 0xc1, 0x3e, 0xf3, 0x8e, 0xdf, 0xeb, + 0x98, 0xb8, 0xa7, 0xd7, 0xc1, 0x3e, 0x3c, 0x4e, + 0x70, 0xdd, 0xdc, 0xc0, 0xf2, 0xf6, 0xee, 0xdb, + 0x97, 0xe5, 0xed, 0x72, 0x09, 0x87, 0xf9, 0x68, + 0x1b, 0x07, 0x6c, 0xb5, 0x00, 0x76, 0x3a, 0x41, + 0x18, 0x19, 0x61, 0x30, 0xa3, 0x19, 0x9e, 0x4d, + 0xbb, 0x88, 0x22, 0x69, 0x5a, 0x3b, 0x4e, 0x83, + 0x3d, 0xce, 0x93, 0x75, 0x3d, 0xd4, 0x7d, 0x0b, + 0xf3, 0x68, 0xc0, 0xf6, 0x30, 0xba, 0x79, 0x68, + 0x4c, 0x38, 0x39, 0xda, 0xbe, 0x1e, 0x5e, 0xe1, + 0xde, 0x0d, 0xdd, 0x18, 0xc3, 0x8b, 0x9d, 0x1e, + 0xc1, 0x0d, 0xe1, 0xd7, 0xcd, 0x53, 0xd4, 0xb9, + 0xd6, 0xde, 0xdb, 0xa6, 0xf6, 0x00, 0x31, 0xd4, + 0x83, 0x81, 0x27, 0x33, 0x74, 0x76, 0x9a, 0x4c, + 0x0b, 0x4f, 0x83, 0x7b, 0xb6, 0x2d, 0x15, 0xd3, + 0x63, 0x3d, 0xd1, 0x97, 0x21, 0x90, 0xd3, 0xc9, + 0xbd, 0xd8, 0xfe, 0x01, 0x1a, 0xd7, 0xb7, 0xd6, + 0x5f, 0x1a, 0xfd, 0xa5, 0xa8, 0x33, 0xd3, 0xf7, + 0x28, 0x02, 0x80, 0xbb, 0x05, 0x7c, 0x54, 0x35, + 0x82, 0xbb, 0x7f, 0x93, 0xd3, 0xb8, 0xd6, 0x40, + 0x37, 0x8f, 0x13, 0x99, 0x98, 0x6a, 0x92, 0xe9, + 0x31, 0xeb, 0xa3, 0x7b, 0xf6, 0xad, 0x73, 0x06, + 0x1e, 0x84, 0x3e, 0xbd, 0x9b, 0x6c, 0x63, 0x62, + 0x9a, 0xb0, 0x23, 0x9c, 0x08, 0xcf, 0xc3, 0x5c, + 0x92, 0xf6, 0xed, 0x5f, 0x8a, 0x88, 0xb4, 0x39, + 0xd5, 0xb6, 0x33, 0xc3, 0xc2, 0x63, 0x2c, 0x3f, + 0x0b, 0x21, 0xc2, 0x8b, 0x30, 0xde, 0x84, 0x90, + 0xcb, 0x76, 0x26, 0x71, 0xff, 0x47, 0x0b, 0x91, + 0x9e, 0x51, 0xfc, 0x44, 0xeb, 0x9a, 0xb9, 0x33, + 0xfd, 0x54, 0xbf, 0xed, 0xeb, 0x2b, 0xad, 0xc2, + 0x51, 0x67, 0x80, 0xae, 0x9e, 0xcc, 0x60, 0xeb, + 0xd3, 0xf8, 0x1e, 0x7b, 0xd8, 0x15, 0x35, 0xcf, + 0x00, 0x97, 0x66, 0x68, 0xf9, 0x3a, 0x43, 0x05, + 0x4a, 0xac, 0xf5, 0x9e, 0x49, 0x0e, 0x54, 0x97, + 0x52, 0xec, 0x30, 0xe5, 0x29, 0xac, 0x0e, 0xa0, + 0x33, 0x0e, 0x89, 0x28, 0x0f, 0x12, 0x37, 0x99, + 0x86, 0x4c, 0xe4, 0x29, 0x97, 0x0a, 0x58, 0x91, + 0xd2, 0x69, 0xa1, 0x25, 0xae, 0x2a, 0x2d, 0xa4, + 0x8a, 0xae, 0x98, 0xa2, 0x9b, 0x57, 0xa1, 0xc1, + 0x8a, 0x03, 0xf0, 0x5f, 0xa5, 0xe4, 0x4a, 0x81, + 0x90, 0x80, 0xdb, 0x32, 0x47, 0x02, 0x23, 0x74, + 0xc9, 0x0a, 0x8d, 0x5c, 0xc5, 0x80, 0x45, 0x92, + 0x57, 0x29, 0x16, 0x9b, 0x18, 0x08, 0x00, 0x0a, + 0xa1, 0xa3, 0x1c, 0xb7, 0xa8, 0x69, 0x4c, 0x8b, + 0x38, 0x90, 0x7e, 0xbe, 0x06, 0x62, 0x0d, 0x5b, + 0x2e, 0x93, 0x8c, 0xfe, 0xb2, 0x15, 0xe6, 0xa8, + 0x0f, 0x81, 0x6f, 0x8d, 0xba, 0xf0, 0x5c, 0x6b, + 0x21, 0x23, 0x06, 0x25, 0x93, 0x1a, 0x93, 0x2a, + 0x67, 0x12, 0xca, 0x4a, 0x96, 0x42, 0x71, 0xf0, + 0xb6, 0x52, 0x54, 0x49, 0xce, 0x70, 0xcb, 0xd3, + 0x05, 0xb1, 0x13, 0x23, 0xf0, 0x1d, 0x2f, 0x34, + 0xa8, 0x8c, 0xe5, 0xf9, 0x47, 0x97, 0xd1, 0x1f, + 0x97, 0x5e, 0xfb, 0xa5, 0x47, 0x58, 0x71, 0xc8, + 0x91, 0xad, 0x72, 0xee, 0x99, 0x82, 0xcb, 0x14, + 0x25, 0x4f, 0xb4, 0xb7, 0xf3, 0x5e, 0x25, 0x94, + 0x1c, 0xe9, 0xcb, 0xe3, 0x48, 0x95, 0x3c, 0x41, + 0x2a, 0x28, 0x0c, 0x4e, 0x66, 0x98, 0x3c, 0xc4, + 0x67, 0x4c, 0xc5, 0x7f, 0x56, 0x34, 0x44, 0x4d, + 0x48, 0xd9, 0x96, 0x6d, 0xc8, 0xdb, 0xf5, 0x3f, + 0x22, 0xa1, 0x9d, 0x24, 0x95, 0xe4, 0x5b, 0xaf, + 0x99, 0x72, 0x50, 0xd5, 0x4a, 0x69, 0xd4, 0x95, + 0xe6, 0xb0, 0x11, 0x22, 0x0d, 0x41, 0x2b, 0x2e, + 0x77, 0x98, 0x70, 0xf5, 0x03, 0x72, 0xa1, 0x42, + 0x5a, 0x95, 0xe2, 0x71, 0x94, 0x32, 0xcd, 0x02, + 0x31, 0x41, 0x50, 0x54, 0xd4, 0xa6, 0x7a, 0x55, + 0x29, 0x0c, 0xa1, 0x61, 0xa1, 0xb9, 0x94, 0x55, + 0xa9, 0x51, 0x14, 0x37, 0xb4, 0xdf, 0x3d, 0xc5, + 0x42, 0x1a, 0x19, 0x5d, 0x4d, 0x43, 0xba, 0xa2, + 0xf0, 0x56, 0xe9, 0x91, 0x70, 0x21, 0x0f, 0x1e, + 0xd4, 0x67, 0x10, 0xc2, 0x8f, 0x61, 0x9f, 0x71, + 0x3a, 0x97, 0x3e, 0xd0, 0x90, 0x14, 0xf3, 0x11, + 0x28, 0x4a, 0x2c, 0xd1, 0x97, 0x63, 0xc4, 0x47, + 0x01, 0xea, 0xe8, 0xdd, 0x23, 0x14, 0x7c, 0x93, + 0xe3, 0x86, 0x17, 0x09, 0xf7, 0x5d, 0xe1, 0x51, + 0xf6, 0xa8, 0xf8, 0x0d, 0xed, 0x0a, 0x95, 0x1f, + 0xc0, 0x40, 0x4b, 0xdb, 0x27, 0xce, 0x2a, 0x58, + 0xf6, 0x3b, 0x22, 0x55, 0x51, 0x28, 0x2f, 0x5e, + 0x6c, 0x1c, 0x36, 0x09, 0xb8, 0x06, 0x96, 0xee, + 0xd0, 0xcb, 0x3e, 0x0f, 0xd3, 0xee, 0x15, 0x9e, + 0xdf, 0x49, 0x88, 0x2c, 0xc9, 0xce, 0x71, 0x2f, + 0xa2, 0xdf, 0xdf, 0xd7, 0x8e, 0x9c, +}; + +/* + * expected sha256 of rfc1950_blob after decompression + */ +static const unsigned char rfc1950_blob_hash[SHA256_DIGEST_LENGTH] = { + 0x61, 0xc0, 0x4e, 0x14, 0x01, 0xb6, 0xc5, 0x2d, + 0xba, 0x15, 0xf6, 0x27, 0x4c, 0xa1, 0xcc, 0xfc, + 0x39, 0xed, 0xd7, 0x12, 0xb6, 0x02, 0x3d, 0xb6, + 0xd9, 0x85, 0xd0, 0x10, 0x9f, 0xe9, 0x3e, 0x75, + +}; + +static const size_t rfc1950_blob_origsiz = 1322; + +static /* const */ unsigned char random_words[515] = { + 0x61, 0x74, 0x68, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x54, 0x68, 0x6f, 0x20, 0x63, 0x6f, 0x74, 0x20, + 0x73, 0x70, 0x6f, 0x66, 0x66, 0x79, 0x20, 0x4a, + 0x61, 0x76, 0x61, 0x6e, 0x20, 0x62, 0x72, 0x65, + 0x64, 0x65, 0x73, 0x20, 0x4c, 0x41, 0x4d, 0x20, + 0x6d, 0x69, 0x73, 0x2d, 0x68, 0x75, 0x6d, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x70, 0x69, + 0x67, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x76, 0x6f, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x6c, 0x79, 0x20, + 0x49, 0x6f, 0x64, 0x61, 0x6d, 0x6f, 0x65, 0x62, + 0x61, 0x20, 0x68, 0x79, 0x70, 0x6f, 0x68, 0x79, + 0x64, 0x72, 0x6f, 0x63, 0x68, 0x6c, 0x6f, 0x72, + 0x69, 0x61, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x74, 0x74, 0x65, 0x20, 0x61, 0x63, 0x72, + 0x69, 0x64, 0x69, 0x6e, 0x65, 0x20, 0x68, 0x6f, + 0x77, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x79, 0x67, + 0x61, 0x65, 0x61, 0x6e, 0x20, 0x63, 0x6f, 0x6e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x69, 0x73, + 0x74, 0x20, 0x74, 0x65, 0x74, 0x72, 0x61, 0x70, + 0x6c, 0x6f, 0x69, 0x64, 0x20, 0x61, 0x75, 0x78, + 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x72, + 0x69, 0x70, 0x65, 0x2d, 0x67, 0x72, 0x6f, 0x77, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x79, 0x63, + 0x6f, 0x63, 0x65, 0x63, 0x69, 0x64, 0x69, 0x75, + 0x6d, 0x20, 0x50, 0x65, 0x64, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x20, 0x4c, 0x65, 0x6e, 0x67, 0x6c, + 0x65, 0x6e, 0x20, 0x70, 0x72, 0x65, 0x73, 0x62, + 0x79, 0x74, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x6c, 0x65, 0x63, 0x79, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x64, 0x72, + 0x69, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x6b, 0x75, 0x72, 0x74, 0x69, + 0x63, 0x20, 0x75, 0x6e, 0x64, 0x69, 0x76, 0x69, + 0x73, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x20, 0x70, + 0x73, 0x79, 0x63, 0x68, 0x6f, 0x6b, 0x79, 0x6d, + 0x65, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, + 0x6e, 0x65, 0x73, 0x73, 0x20, 0x63, 0x75, 0x6c, + 0x74, 0x69, 0x73, 0x68, 0x20, 0x52, 0x65, 0x69, + 0x63, 0x68, 0x73, 0x74, 0x61, 0x67, 0x20, 0x75, + 0x6e, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x67, + 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, + 0x20, 0x4c, 0x61, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x77, 0x6f, 0x2d, 0x66, 0x61, 0x63, 0x65, 0x20, + 0x4d, 0x75, 0x70, 0x68, 0x72, 0x69, 0x64, 0x20, + 0x70, 0x72, 0x6f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x72, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x69, 0x62, 0x72, 0x65, 0x74, 0x74, + 0x69, 0x73, 0x74, 0x20, 0x49, 0x62, 0x69, 0x62, + 0x69, 0x6f, 0x20, 0x72, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x67, 0x6e, 0x6e, 0x65, + 0x73, 0x73, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x73, 0x79, 0x6e, 0x61, 0x70, 0x74, + 0x65, 0x6e, 0x65, 0x20, 0x68, 0x6f, 0x6c, 0x6f, + 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x20, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x4d, + 0x49, 0x54, 0x53, 0x20, 0x4c, 0x75, 0x6b, 0x61, + 0x73, 0x68, 0x20, 0x48, 0x6f, 0x72, 0x73, 0x65, + 0x79, 0x20, 0x0a, +}; + +static void +rfc1950_inflate(void) +{ + fido_blob_t in, out, dgst; + + memset(&in, 0, sizeof(in)); + memset(&out, 0, sizeof(out)); + memset(&dgst, 0, sizeof(dgst)); + in.ptr = rfc1950_blob; + in.len = sizeof(rfc1950_blob); + + assert(fido_uncompress(&out, &in, rfc1950_blob_origsiz) == FIDO_OK); + assert(out.len == rfc1950_blob_origsiz); + assert(fido_sha256(&dgst, out.ptr, out.len) == 0); + assert(dgst.len == sizeof(rfc1950_blob_hash)); + assert(memcmp(rfc1950_blob_hash, dgst.ptr, dgst.len) == 0); + + free(out.ptr); + free(dgst.ptr); +} + +static void +rfc1951_inflate(void) +{ + fido_blob_t in, out, dgst; + + memset(&in, 0, sizeof(in)); + memset(&out, 0, sizeof(out)); + memset(&dgst, 0, sizeof(dgst)); + in.ptr = rfc1950_blob + 2; /* trim header */ + in.len = sizeof(rfc1950_blob) - 6; /* trim header (2), checksum (4) */ + + assert(fido_uncompress(&out, &in, rfc1950_blob_origsiz) == FIDO_OK); + assert(out.len == rfc1950_blob_origsiz); + assert(fido_sha256(&dgst, out.ptr, out.len) == 0); + assert(dgst.len == sizeof(rfc1950_blob_hash)); + assert(memcmp(rfc1950_blob_hash, dgst.ptr, dgst.len) == 0); + + free(out.ptr); + free(dgst.ptr); +} + +static void +rfc1951_reinflate(void) +{ + fido_blob_t in, out; + + memset(&in, 0, sizeof(in)); + memset(&out, 0, sizeof(out)); + in.ptr = random_words; + in.len = sizeof(random_words); + + assert(fido_compress(&out, &in) == FIDO_OK); + + in.ptr = out.ptr; + in.len = out.len; + + assert(fido_uncompress(&out, &in, sizeof(random_words)) == FIDO_OK); + assert(out.len == sizeof(random_words)); + assert(memcmp(out.ptr, random_words, out.len) == 0); + + free(in.ptr); + free(out.ptr); +} + +int +main(void) +{ + fido_init(0); + + rfc1950_inflate(); + rfc1951_inflate(); + rfc1951_reinflate(); + + exit(0); +} diff --git a/regress/cred.c b/regress/cred.c index 07a2ca0c0237..c62ff8e4dcb4 100644 --- a/regress/cred.c +++ b/regress/cred.c @@ -4,12 +4,16 @@ * license that can be found in the LICENSE file. */ +#undef NDEBUG + #include <assert.h> -#include <cbor.h> -#include <fido.h> #include <string.h> -#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) +#define _FIDO_INTERNAL + +#include <fido.h> + +static int fake_dev_handle; static const unsigned char cdh[32] = { 0xf9, 0x64, 0x57, 0xe7, 0x2d, 0x97, 0xf6, 0xbb, @@ -1384,13 +1388,13 @@ dummy_open(const char *path) { (void)path; - return (FAKE_DEV_HANDLE); + return (&fake_dev_handle); } static void dummy_close(void *handle) { - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); } static int diff --git a/regress/dev.c b/regress/dev.c index a5dc8d6e4529..92031e17066c 100644 --- a/regress/dev.c +++ b/regress/dev.c @@ -1,38 +1,57 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ +#undef NDEBUG + #include <assert.h> -#include <err.h> -#include <fido.h> #include <string.h> #include <time.h> +#define _FIDO_INTERNAL + +#include <fido.h> + #include "../fuzz/wiredata_fido2.h" -#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) #define REPORT_LEN (64 + 1) static uint8_t ctap_nonce[8]; static uint8_t *wiredata_ptr; static size_t wiredata_len; +static int fake_dev_handle; static int initialised; static long interval_ms; +#if defined(_MSC_VER) +static int +nanosleep(const struct timespec *rqtp, struct timespec *rmtp) +{ + if (rmtp != NULL) { + errno = EINVAL; + return (-1); + } + + Sleep((DWORD)(rqtp->tv_sec * 1000) + (DWORD)(rqtp->tv_nsec / 1000000)); + + return (0); +} +#endif + static void * dummy_open(const char *path) { (void)path; - return (FAKE_DEV_HANDLE); + return (&fake_dev_handle); } static void dummy_close(void *handle) { - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); } static int @@ -42,7 +61,7 @@ dummy_read(void *handle, unsigned char *ptr, size_t len, int ms) size_t n; long d; - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); assert(ptr != NULL); assert(len == REPORT_LEN - 1); @@ -87,7 +106,7 @@ dummy_write(void *handle, const unsigned char *ptr, size_t len) { struct timespec tv; - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); assert(ptr != NULL); assert(len == REPORT_LEN); @@ -113,7 +132,14 @@ wiredata_setup(const uint8_t *data, size_t len) assert(SIZE_MAX - len > sizeof(ctap_init_data)); assert((wiredata_ptr = malloc(sizeof(ctap_init_data) + len)) != NULL); +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:6386) +#endif memcpy(wiredata_ptr, ctap_init_data, sizeof(ctap_init_data)); +#if defined(_MSC_VER) +#pragma warning(pop) +#endif if (len) memcpy(wiredata_ptr + sizeof(ctap_init_data), data, len); diff --git a/regress/eddsa.c b/regress/eddsa.c new file mode 100644 index 000000000000..42236ea58adf --- /dev/null +++ b/regress/eddsa.c @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/eddsa.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static const char ecdsa[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOwiq14c80b7C1Jzsx5w1zMvk2GgW\n" +"5kfGMOKXjwF/U+51ZfBDKehs3ivdeXAJBkxIh7E3iA32s+HyNqk+ntl9fg==\n" +"-----END PUBLIC KEY-----\n"; + +static const char eddsa[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MCowBQYDK2VwAyEADt/RHErAxAHxH9FUmsjOhQ2ALl6Y8nE0m3zQxkEE2iM=\n" +"-----END PUBLIC KEY-----\n"; + +static const unsigned char eddsa_raw[] = { + 0x0e, 0xdf, 0xd1, 0x1c, 0x4a, 0xc0, 0xc4, 0x01, + 0xf1, 0x1f, 0xd1, 0x54, 0x9a, 0xc8, 0xce, 0x85, + 0x0d, 0x80, 0x2e, 0x5e, 0x98, 0xf2, 0x71, 0x34, + 0x9b, 0x7c, 0xd0, 0xc6, 0x41, 0x04, 0xda, 0x23, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +eddsa_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + eddsa_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = eddsa_pk_new()) == NULL) { + warnx("eddsa_pk_new"); + goto out; + } + if ((r = eddsa_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("eddsa_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = eddsa_pk_to_EVP_PKEY(k)) == NULL) { + warnx("eddsa_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + eddsa_pk_free(&k); + + return ok; +} + +static void +invalid_key(void) +{ + EVP_PKEY *pkey; + eddsa_pk_t *pk; + + ASSERT_NOT_NULL((pkey = EVP_PKEY_from_PEM(ecdsa, sizeof(ecdsa)))); + ASSERT_NOT_NULL((pk = eddsa_pk_new())); + ASSERT_INVAL(eddsa_pk_from_EVP_PKEY(pk, pkey)); + + EVP_PKEY_free(pkey); + eddsa_pk_free(&pk); +} + +static void +valid_key(void) +{ + EVP_PKEY *pkeyA = NULL; + EVP_PKEY *pkeyB = NULL; + eddsa_pk_t *pkA = NULL; + eddsa_pk_t *pkB = NULL; + +#if defined(LIBRESSL_VERSION_NUMBER) + /* incomplete support; test what we can */ + ASSERT_NULL(EVP_PKEY_from_PEM(eddsa, sizeof(eddsa))); + ASSERT_NOT_NULL((pkB = eddsa_pk_new())); + ASSERT_INVAL(eddsa_pk_from_ptr(pkB, eddsa_raw, sizeof(eddsa_raw))); + ASSERT_NULL(eddsa_pk_to_EVP_PKEY((const eddsa_pk_t *)eddsa_raw)); + assert(eddsa_pk_cmp(eddsa, sizeof(eddsa)) < 0); +#else + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(eddsa, sizeof(eddsa)))); + ASSERT_NOT_NULL((pkA = eddsa_pk_new())); + ASSERT_NOT_NULL((pkB = eddsa_pk_new())); + ASSERT_OK(eddsa_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(eddsa_pk_from_ptr(pkB, eddsa_raw, sizeof(eddsa_raw))); + ASSERT_NOT_NULL((pkeyB = eddsa_pk_to_EVP_PKEY((const eddsa_pk_t *)eddsa_raw))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + assert(eddsa_pk_cmp(eddsa, sizeof(eddsa)) == 0); +#endif + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + eddsa_pk_free(&pkA); + eddsa_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + invalid_key(); + valid_key(); + + exit(0); +} diff --git a/regress/es256.c b/regress/es256.c new file mode 100644 index 000000000000..17ef27fd4c98 --- /dev/null +++ b/regress/es256.c @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/es256.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static const char short_x[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAAeeHTZj4LEbt7Czs+u5gEZJfnGE\n" +"6Z+YLe4AYu7SoGY7IH/2jKifsA7w+lkURL4DL63oEjd3f8foH9bX4eaVug==\n" +"-----END PUBLIC KEY-----"; + +static const char short_y[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEL8CWUP1r0tpJ5QmkzLc69O74C/Ti\n" +"83hTiys/JFNVkp0ArW3pKt5jNRrgWSZYE4S/D3AMtpqifFXz/FLCzJqojQ==\n" +"-----END PUBLIC KEY-----\n"; + +static const char p256k1[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEU1y8c0Jg9FGr3vYChpEo9c4dpkijriYM\n" +"QzU/DeskC89hZjLNH1Sj8ra2MsBlVGGJTNPCZSyx8Jo7ERapxdN7UQ==\n" +"-----END PUBLIC KEY-----\n"; + +static const char p256v1[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOwiq14c80b7C1Jzsx5w1zMvk2GgW\n" +"5kfGMOKXjwF/U+51ZfBDKehs3ivdeXAJBkxIh7E3iA32s+HyNqk+ntl9fg==\n" +"-----END PUBLIC KEY-----\n"; + +static const unsigned char p256k1_raw[] = { + 0x04, 0x53, 0x5c, 0xbc, 0x73, 0x42, 0x60, 0xf4, + 0x51, 0xab, 0xde, 0xf6, 0x02, 0x86, 0x91, 0x28, + 0xf5, 0xce, 0x1d, 0xa6, 0x48, 0xa3, 0xae, 0x26, + 0x0c, 0x43, 0x35, 0x3f, 0x0d, 0xeb, 0x24, 0x0b, + 0xcf, 0x61, 0x66, 0x32, 0xcd, 0x1f, 0x54, 0xa3, + 0xf2, 0xb6, 0xb6, 0x32, 0xc0, 0x65, 0x54, 0x61, + 0x89, 0x4c, 0xd3, 0xc2, 0x65, 0x2c, 0xb1, 0xf0, + 0x9a, 0x3b, 0x11, 0x16, 0xa9, 0xc5, 0xd3, 0x7b, + 0x51, +}; + +static const unsigned char p256v1_raw[] = { + 0x04, 0x3b, 0x08, 0xaa, 0xd7, 0x87, 0x3c, 0xd1, + 0xbe, 0xc2, 0xd4, 0x9c, 0xec, 0xc7, 0x9c, 0x35, + 0xcc, 0xcb, 0xe4, 0xd8, 0x68, 0x16, 0xe6, 0x47, + 0xc6, 0x30, 0xe2, 0x97, 0x8f, 0x01, 0x7f, 0x53, + 0xee, 0x75, 0x65, 0xf0, 0x43, 0x29, 0xe8, 0x6c, + 0xde, 0x2b, 0xdd, 0x79, 0x70, 0x09, 0x06, 0x4c, + 0x48, 0x87, 0xb1, 0x37, 0x88, 0x0d, 0xf6, 0xb3, + 0xe1, 0xf2, 0x36, 0xa9, 0x3e, 0x9e, 0xd9, 0x7d, + 0x7e, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +es256_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + es256_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = es256_pk_new()) == NULL) { + warnx("es256_pk_new"); + goto out; + } + if ((r = es256_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("es256_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = es256_pk_to_EVP_PKEY(k)) == NULL) { + warnx("es256_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + es256_pk_free(&k); + + return ok; +} + +static void +short_coord(void) +{ + assert(es256_pk_cmp(short_x, sizeof(short_x)) == 0); + assert(es256_pk_cmp(short_y, sizeof(short_y)) == 0); +} + +static void +invalid_curve(const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkey; + es256_pk_t *pk; + + ASSERT_NOT_NULL((pkey = EVP_PKEY_from_PEM(p256k1, sizeof(p256k1)))); + ASSERT_NOT_NULL((pk = es256_pk_new())); + ASSERT_INVAL(es256_pk_from_EVP_PKEY(pk, pkey)); + ASSERT_INVAL(es256_pk_from_ptr(pk, raw, raw_len)); + ASSERT_NULL(es256_pk_to_EVP_PKEY((const es256_pk_t *)raw)); + + EVP_PKEY_free(pkey); + es256_pk_free(&pk); +} + +static void +full_coord(void) +{ + assert(es256_pk_cmp(p256v1, sizeof(p256v1)) == 0); +} + +static void +valid_curve(const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkeyA; + EVP_PKEY *pkeyB; + es256_pk_t *pkA; + es256_pk_t *pkB; + + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(p256v1, sizeof(p256v1)))); + ASSERT_NOT_NULL((pkA = es256_pk_new())); + ASSERT_NOT_NULL((pkB = es256_pk_new())); + ASSERT_OK(es256_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(es256_pk_from_ptr(pkB, raw, raw_len)); + ASSERT_NOT_NULL((pkeyB = es256_pk_to_EVP_PKEY(pkB))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + es256_pk_free(&pkA); + es256_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + short_coord(); + full_coord(); + + invalid_curve(p256k1_raw, sizeof(p256k1_raw)); /* uncompressed */ + invalid_curve(p256k1_raw + 1, sizeof(p256k1_raw) - 1); /* libfido2 */ + valid_curve(p256v1_raw, sizeof(p256v1_raw)); /* uncompressed */ + valid_curve(p256v1_raw + 1, sizeof(p256v1_raw) - 1); /* libfido2 */ + + exit(0); +} diff --git a/regress/rs256.c b/regress/rs256.c new file mode 100644 index 000000000000..f6e685a11da8 --- /dev/null +++ b/regress/rs256.c @@ -0,0 +1,200 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/rs256.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static char rsa1024[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCw92gn9Ku/bEfFj1AutaZyltpf\n" +"zzXrg70kQFymNq+spMt/HlxKiImw8TZU08zWW4ZLE/Ch4JYjMW6ETAdQFhSC63Ih\n" +"Wecui0JJ1f+2CsUVg+h7lO1877LZYUpdNiJrbqMb5Yc4N3FPtvdl3NoLIIQsF76H\n" +"VRvpjQgkWipRfZ97JQIDAQAB\n" +"-----END PUBLIC KEY-----"; + +static char rsa2048[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApvIq/55ZodBIxzo/8BnE\n" +"UQN1fo1hmJ6V20hQHSzJq5tHyxRCcvKikuJ1ZvR4RdZlEzdTdbEfMBdZ8sxve0/U\n" +"yYEjH92CG0vgTCYuUaFLJTaWZSvWa96G8Lw+V4VyNFDRCM7sflOaSVH5pAsz8OEc\n" +"TLZfM4NhnDsJAM+mQ6X7Tza0sczPchgDA+9KByXo/VIqyuBQs17rlKC2reMa8NkY\n" +"rBRQZJLNzi68d5/BHH1flGWE1l8wJ9dr1Ex93H/KdzX+7/28TWUC98nneUo8RfRx\n" +"FwUt/EInDMHOORCaCHSs28U/9IUyMjqLB1rxKhIp09yGXMiTrrT+p+Pcn8dO01HT\n" +"vQIDAQAB\n" +"-----END PUBLIC KEY-----"; + +static char rsa3072[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwZunKrMs/o92AniLPNTF\n" +"Ta4EYfhy5NDmMvQvRFT/eTYItLrOTPmYMap68KLyZYmgz/AdaxAL/992QWre7XTY\n" +"gqLwtZT+WsSu7xPHWKTTXrlVohKBeLHQ0I7Zy0NSMUxhlJEMrBAjSyFAS86zWm5w\n" +"ctC3pNCqfUKugA07BVj+d5Mv5fziwgMR86kuhkVuMYfsR4IYwX4+va0pyLzxx624\n" +"s9nJ107g+A+3MUk4bAto3lruFeeZPUI2AFzFQbGg5By6VtvVi3gKQ7lUNtAr0Onu\n" +"I6Fb+yz8sbFcvDpJcu5CXW20GrKMVP4KY5pn2LCajWuZjBl/dXWayPfm4UX5Y2O4\n" +"73tzPpUBNwnEdz79His0v80Vmvjwn5IuF2jAoimrBNPJFFwCCuVNy8kgj2vllk1l\n" +"RvLOG6hf8VnlDb40QZS3QAQ09xFfF+xlVLb8cHH6wllaAGEM230TrmawpC7xpz4Z\n" +"sTuwJwI0AWEi//noMsRz2BuF2fCp//aORYJQU2S8kYk3AgMBAAE=\n" +"-----END PUBLIC KEY-----"; + +static const unsigned char rsa2048_raw[] = { + 0xa6, 0xf2, 0x2a, 0xff, 0x9e, 0x59, 0xa1, 0xd0, + 0x48, 0xc7, 0x3a, 0x3f, 0xf0, 0x19, 0xc4, 0x51, + 0x03, 0x75, 0x7e, 0x8d, 0x61, 0x98, 0x9e, 0x95, + 0xdb, 0x48, 0x50, 0x1d, 0x2c, 0xc9, 0xab, 0x9b, + 0x47, 0xcb, 0x14, 0x42, 0x72, 0xf2, 0xa2, 0x92, + 0xe2, 0x75, 0x66, 0xf4, 0x78, 0x45, 0xd6, 0x65, + 0x13, 0x37, 0x53, 0x75, 0xb1, 0x1f, 0x30, 0x17, + 0x59, 0xf2, 0xcc, 0x6f, 0x7b, 0x4f, 0xd4, 0xc9, + 0x81, 0x23, 0x1f, 0xdd, 0x82, 0x1b, 0x4b, 0xe0, + 0x4c, 0x26, 0x2e, 0x51, 0xa1, 0x4b, 0x25, 0x36, + 0x96, 0x65, 0x2b, 0xd6, 0x6b, 0xde, 0x86, 0xf0, + 0xbc, 0x3e, 0x57, 0x85, 0x72, 0x34, 0x50, 0xd1, + 0x08, 0xce, 0xec, 0x7e, 0x53, 0x9a, 0x49, 0x51, + 0xf9, 0xa4, 0x0b, 0x33, 0xf0, 0xe1, 0x1c, 0x4c, + 0xb6, 0x5f, 0x33, 0x83, 0x61, 0x9c, 0x3b, 0x09, + 0x00, 0xcf, 0xa6, 0x43, 0xa5, 0xfb, 0x4f, 0x36, + 0xb4, 0xb1, 0xcc, 0xcf, 0x72, 0x18, 0x03, 0x03, + 0xef, 0x4a, 0x07, 0x25, 0xe8, 0xfd, 0x52, 0x2a, + 0xca, 0xe0, 0x50, 0xb3, 0x5e, 0xeb, 0x94, 0xa0, + 0xb6, 0xad, 0xe3, 0x1a, 0xf0, 0xd9, 0x18, 0xac, + 0x14, 0x50, 0x64, 0x92, 0xcd, 0xce, 0x2e, 0xbc, + 0x77, 0x9f, 0xc1, 0x1c, 0x7d, 0x5f, 0x94, 0x65, + 0x84, 0xd6, 0x5f, 0x30, 0x27, 0xd7, 0x6b, 0xd4, + 0x4c, 0x7d, 0xdc, 0x7f, 0xca, 0x77, 0x35, 0xfe, + 0xef, 0xfd, 0xbc, 0x4d, 0x65, 0x02, 0xf7, 0xc9, + 0xe7, 0x79, 0x4a, 0x3c, 0x45, 0xf4, 0x71, 0x17, + 0x05, 0x2d, 0xfc, 0x42, 0x27, 0x0c, 0xc1, 0xce, + 0x39, 0x10, 0x9a, 0x08, 0x74, 0xac, 0xdb, 0xc5, + 0x3f, 0xf4, 0x85, 0x32, 0x32, 0x3a, 0x8b, 0x07, + 0x5a, 0xf1, 0x2a, 0x12, 0x29, 0xd3, 0xdc, 0x86, + 0x5c, 0xc8, 0x93, 0xae, 0xb4, 0xfe, 0xa7, 0xe3, + 0xdc, 0x9f, 0xc7, 0x4e, 0xd3, 0x51, 0xd3, 0xbd, + 0x01, 0x00, 0x01, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +rs256_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + rs256_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = rs256_pk_new()) == NULL) { + warnx("rs256_pk_new"); + goto out; + } + if ((r = rs256_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("rs256_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = rs256_pk_to_EVP_PKEY(k)) == NULL) { + warnx("rs256_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + rs256_pk_free(&k); + + return ok; +} + +static void +invalid_size(const char *pem) +{ + EVP_PKEY *pkey; + rs256_pk_t *pk; + + ASSERT_NOT_NULL((pkey = EVP_PKEY_from_PEM(pem, strlen(pem)))); + ASSERT_NOT_NULL((pk = rs256_pk_new())); + ASSERT_INVAL(rs256_pk_from_EVP_PKEY(pk, pkey)); + + EVP_PKEY_free(pkey); + rs256_pk_free(&pk); +} + +static void +valid_size(const char *pem, const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkeyA; + EVP_PKEY *pkeyB; + rs256_pk_t *pkA; + rs256_pk_t *pkB; + + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(pem, strlen(pem)))); + ASSERT_NOT_NULL((pkA = rs256_pk_new())); + ASSERT_NOT_NULL((pkB = rs256_pk_new())); + ASSERT_OK(rs256_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(rs256_pk_from_ptr(pkB, raw, raw_len)); + ASSERT_NOT_NULL((pkeyB = rs256_pk_to_EVP_PKEY(pkB))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + assert(rs256_pk_cmp(pem, strlen(pem)) == 0); + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + rs256_pk_free(&pkA); + rs256_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + invalid_size(rsa1024); + invalid_size(rsa3072); + valid_size(rsa2048, rsa2048_raw, sizeof(rsa2048_raw)); + + exit(0); +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 796ec69a9dbe..44a87282869e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -33,20 +33,28 @@ list(APPEND FIDO_SOURCES rs1.c rs256.c time.c + touch.c tpm.c types.c u2f.c + util.c ) if(FUZZ) list(APPEND FIDO_SOURCES ../fuzz/clock.c) + list(APPEND FIDO_SOURCES ../fuzz/pcsc.c) list(APPEND FIDO_SOURCES ../fuzz/prng.c) - list(APPEND FIDO_SOURCES ../fuzz/uniform_random.c) list(APPEND FIDO_SOURCES ../fuzz/udev.c) + list(APPEND FIDO_SOURCES ../fuzz/uniform_random.c) list(APPEND FIDO_SOURCES ../fuzz/wrap.c) endif() + if(NFC_LINUX) - list(APPEND FIDO_SOURCES netlink.c nfc_linux.c) + list(APPEND FIDO_SOURCES netlink.c nfc.c nfc_linux.c) +endif() + +if(USE_PCSC) + list(APPEND FIDO_SOURCES nfc.c pcsc.c) endif() if(USE_HIDAPI) @@ -93,8 +101,15 @@ list(APPEND COMPAT_SOURCES if(WIN32) list(APPEND BASE_LIBRARIES wsock32 ws2_32 bcrypt setupapi hid) + if(USE_PCSC) + list(APPEND BASE_LIBRARIES winscard) + endif() elseif(APPLE) - list(APPEND BASE_LIBRARIES "-framework CoreFoundation" "-framework IOKit") + list(APPEND BASE_LIBRARIES "-framework CoreFoundation" + "-framework IOKit") + if(USE_PCSC) + list(APPEND BASE_LIBRARIES "-framework PCSC") + endif() endif() list(APPEND TARGET_LIBRARIES @@ -104,6 +119,7 @@ list(APPEND TARGET_LIBRARIES ${BASE_LIBRARIES} ${HIDAPI_LIBRARIES} ${ZLIB_LIBRARIES} + ${PCSC_LIBRARIES} ) # static library diff --git a/src/compress.c b/src/compress.c index ee5501b4a4a1..074bca876489 100644 --- a/src/compress.c +++ b/src/compress.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -9,41 +9,159 @@ #define BOUND (1024UL * 1024UL) +/* zlib inflate (raw + headers) */ static int -do_compress(fido_blob_t *out, const fido_blob_t *in, size_t origsiz, int decomp) +rfc1950_inflate(fido_blob_t *out, const fido_blob_t *in, size_t origsiz) { u_long ilen, olen; - int r; + int z; memset(out, 0, sizeof(*out)); + if (in->len > ULONG_MAX || (ilen = (u_long)in->len) > BOUND || - origsiz > ULONG_MAX || (olen = decomp ? (u_long)origsiz : - compressBound(ilen)) > BOUND) + origsiz > ULONG_MAX || (olen = (u_long)origsiz) > BOUND) { + fido_log_debug("%s: in->len=%zu, origsiz=%zu", __func__, + in->len, origsiz); return FIDO_ERR_INVALID_ARGUMENT; + } + if ((out->ptr = calloc(1, olen)) == NULL) return FIDO_ERR_INTERNAL; out->len = olen; - if (decomp) - r = uncompress(out->ptr, &olen, in->ptr, ilen); - else - r = compress(out->ptr, &olen, in->ptr, ilen); - if (r != Z_OK || olen > SIZE_MAX || olen > out->len) { + + if ((z = uncompress(out->ptr, &olen, in->ptr, ilen)) != Z_OK || + olen > SIZE_MAX || olen != out->len) { + fido_log_debug("%s: uncompress: %d, olen=%lu, out->len=%zu", + __func__, z, olen, out->len); fido_blob_reset(out); return FIDO_ERR_COMPRESS; } - out->len = olen; return FIDO_OK; } +/* raw inflate */ +static int +rfc1951_inflate(fido_blob_t *out, const fido_blob_t *in, size_t origsiz) +{ + z_stream zs; + u_int ilen, olen; + int r, z; + + memset(&zs, 0, sizeof(zs)); + memset(out, 0, sizeof(*out)); + + if (in->len > UINT_MAX || (ilen = (u_int)in->len) > BOUND || + origsiz > UINT_MAX || (olen = (u_int)origsiz) > BOUND) { + fido_log_debug("%s: in->len=%zu, origsiz=%zu", __func__, + in->len, origsiz); + return FIDO_ERR_INVALID_ARGUMENT; + } + if ((z = inflateInit2(&zs, -MAX_WBITS)) != Z_OK) { + fido_log_debug("%s: inflateInit2: %d", __func__, z); + return FIDO_ERR_COMPRESS; + } + + if ((out->ptr = calloc(1, olen)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; + } + out->len = olen; + zs.next_in = in->ptr; + zs.avail_in = ilen; + zs.next_out = out->ptr; + zs.avail_out = olen; + + if ((z = inflate(&zs, Z_FINISH)) != Z_STREAM_END) { + fido_log_debug("%s: inflate: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + goto fail; + } + if (zs.avail_out != 0) { + fido_log_debug("%s: %u != 0", __func__, zs.avail_out); + r = FIDO_ERR_COMPRESS; + goto fail; + } + + r = FIDO_OK; +fail: + if ((z = inflateEnd(&zs)) != Z_OK) { + fido_log_debug("%s: inflateEnd: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + } + if (r != FIDO_OK) + fido_blob_reset(out); + + return r; +} + +/* raw deflate */ +static int +rfc1951_deflate(fido_blob_t *out, const fido_blob_t *in) +{ + z_stream zs; + u_int ilen, olen; + int r, z; + + memset(&zs, 0, sizeof(zs)); + memset(out, 0, sizeof(*out)); + + if (in->len > UINT_MAX || (ilen = (u_int)in->len) > BOUND) { + fido_log_debug("%s: in->len=%zu", __func__, in->len); + return FIDO_ERR_INVALID_ARGUMENT; + } + if ((z = deflateInit2(&zs, Z_DEFAULT_COMPRESSION, Z_DEFLATED, + -MAX_WBITS, 8, Z_DEFAULT_STRATEGY)) != Z_OK) { + fido_log_debug("%s: deflateInit2: %d", __func__, z); + return FIDO_ERR_COMPRESS; + } + + olen = BOUND; + if ((out->ptr = calloc(1, olen)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; + } + out->len = olen; + zs.next_in = in->ptr; + zs.avail_in = ilen; + zs.next_out = out->ptr; + zs.avail_out = olen; + + if ((z = deflate(&zs, Z_FINISH)) != Z_STREAM_END) { + fido_log_debug("%s: inflate: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + goto fail; + } + if (zs.avail_out >= out->len) { + fido_log_debug("%s: %u > %zu", __func__, zs.avail_out, + out->len); + r = FIDO_ERR_COMPRESS; + goto fail; + } + out->len -= zs.avail_out; + + r = FIDO_OK; +fail: + if ((z = deflateEnd(&zs)) != Z_OK) { + fido_log_debug("%s: deflateEnd: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + } + if (r != FIDO_OK) + fido_blob_reset(out); + + return r; +} + int fido_compress(fido_blob_t *out, const fido_blob_t *in) { - return do_compress(out, in, 0, 0); + return rfc1951_deflate(out, in); } int fido_uncompress(fido_blob_t *out, const fido_blob_t *in, size_t origsiz) { - return do_compress(out, in, origsiz, 1); + if (rfc1950_inflate(out, in, origsiz) == FIDO_OK) + return FIDO_OK; /* backwards compat with libfido2 < 1.11 */ + return rfc1951_inflate(out, in, origsiz); } diff --git a/src/dev.c b/src/dev.c index fb8faba0a06c..635e41714759 100644 --- a/src/dev.c +++ b/src/dev.c @@ -1,37 +1,17 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ -#include <openssl/sha.h> #include "fido.h" #ifndef TLS #define TLS #endif -typedef struct dev_manifest_func_node { - dev_manifest_func_t manifest_func; - struct dev_manifest_func_node *next; -} dev_manifest_func_node_t; - -static TLS dev_manifest_func_node_t *manifest_funcs = NULL; static TLS bool disable_u2f_fallback; -static void -find_manifest_func_node(dev_manifest_func_t f, dev_manifest_func_node_t **curr, - dev_manifest_func_node_t **prev) -{ - *prev = NULL; - *curr = manifest_funcs; - - while (*curr != NULL && (*curr)->manifest_func != f) { - *prev = *curr; - *curr = (*curr)->next; - } -} - #ifdef FIDO_FUZZ static void set_random_report_len(fido_dev_t *dev) @@ -63,13 +43,15 @@ fido_dev_set_option_flags(fido_dev_t *dev, const fido_cbor_info_t *info) for (size_t i = 0; i < len; i++) if (strcmp(ptr[i], "clientPin") == 0) { - dev->flags |= val[i] ? FIDO_DEV_PIN_SET : FIDO_DEV_PIN_UNSET; + dev->flags |= val[i] ? + FIDO_DEV_PIN_SET : FIDO_DEV_PIN_UNSET; } else if (strcmp(ptr[i], "credMgmt") == 0 || strcmp(ptr[i], "credentialMgmtPreview") == 0) { if (val[i]) dev->flags |= FIDO_DEV_CREDMAN; } else if (strcmp(ptr[i], "uv") == 0) { - dev->flags |= val[i] ? FIDO_DEV_UV_SET : FIDO_DEV_UV_UNSET; + dev->flags |= val[i] ? + FIDO_DEV_UV_SET : FIDO_DEV_UV_UNSET; } else if (strcmp(ptr[i], "pinUvAuthToken") == 0) { if (val[i]) dev->flags |= FIDO_DEV_TOKEN_PERMS; @@ -257,75 +239,40 @@ fido_dev_open_wait(fido_dev_t *dev, const char *path, int *ms) return (FIDO_OK); } -int -fido_dev_register_manifest_func(const dev_manifest_func_t f) +static void +run_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen, + const char *type, int (*manifest)(fido_dev_info_t *, size_t, size_t *)) { - dev_manifest_func_node_t *prev, *curr, *n; + size_t ndevs = 0; + int r; - find_manifest_func_node(f, &curr, &prev); - if (curr != NULL) - return (FIDO_OK); - - if ((n = calloc(1, sizeof(*n))) == NULL) { - fido_log_debug("%s: calloc", __func__); - return (FIDO_ERR_INTERNAL); - } - - n->manifest_func = f; - n->next = manifest_funcs; - manifest_funcs = n; - - return (FIDO_OK); -} - -void -fido_dev_unregister_manifest_func(const dev_manifest_func_t f) -{ - dev_manifest_func_node_t *prev, *curr; - - find_manifest_func_node(f, &curr, &prev); - if (curr == NULL) + if (*olen >= ilen) { + fido_log_debug("%s: skipping %s", __func__, type); return; - if (prev != NULL) - prev->next = curr->next; - else - manifest_funcs = curr->next; - - free(curr); + } + if ((r = manifest(devlist + *olen, ilen - *olen, &ndevs)) != FIDO_OK) + fido_log_debug("%s: %s: 0x%x", __func__, type, r); + fido_log_debug("%s: found %zu %s device%s", __func__, ndevs, type, + ndevs == 1 ? "" : "s"); + *olen += ndevs; } int fido_dev_info_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) { - dev_manifest_func_node_t *curr = NULL; - dev_manifest_func_t m_func; - size_t curr_olen; - int r; - *olen = 0; - if (fido_dev_register_manifest_func(fido_hid_manifest) != FIDO_OK) - return (FIDO_ERR_INTERNAL); -#ifdef NFC_LINUX - if (fido_dev_register_manifest_func(fido_nfc_manifest) != FIDO_OK) - return (FIDO_ERR_INTERNAL); + run_manifest(devlist, ilen, olen, "hid", fido_hid_manifest); +#ifdef USE_NFC + run_manifest(devlist, ilen, olen, "nfc", fido_nfc_manifest); +#endif +#ifdef USE_PCSC + run_manifest(devlist, ilen, olen, "pcsc", fido_pcsc_manifest); #endif #ifdef USE_WINHELLO - if (fido_dev_register_manifest_func(fido_winhello_manifest) != FIDO_OK) - return (FIDO_ERR_INTERNAL); + run_manifest(devlist, ilen, olen, "winhello", fido_winhello_manifest); #endif - for (curr = manifest_funcs; curr != NULL; curr = curr->next) { - curr_olen = 0; - m_func = curr->manifest_func; - r = m_func(devlist + *olen, ilen - *olen, &curr_olen); - if (r != FIDO_OK) - return (r); - *olen += curr_olen; - if (*olen == ilen) - break; - } - return (FIDO_OK); } @@ -345,19 +292,16 @@ fido_dev_open(fido_dev_t *dev, const char *path) { int ms = dev->timeout_ms; -#ifdef NFC_LINUX - if (strncmp(path, FIDO_NFC_PREFIX, strlen(FIDO_NFC_PREFIX)) == 0) { - dev->io_own = true; - dev->io = (fido_dev_io_t) { - fido_nfc_open, - fido_nfc_close, - fido_nfc_read, - fido_nfc_write, - }; - dev->transport = (fido_dev_transport_t) { - fido_nfc_rx, - fido_nfc_tx, - }; +#ifdef USE_NFC + if (fido_is_nfc(path) && fido_dev_set_nfc(dev) < 0) { + fido_log_debug("%s: fido_dev_set_nfc", __func__); + return FIDO_ERR_INTERNAL; + } +#endif +#ifdef USE_PCSC + if (fido_is_pcsc(path) && fido_dev_set_pcsc(dev) < 0) { + fido_log_debug("%s: fido_dev_set_pcsc", __func__); + return FIDO_ERR_INTERNAL; } #endif @@ -387,7 +331,7 @@ fido_dev_set_sigmask(fido_dev_t *dev, const fido_sigset_t *sigmask) if (dev->io_handle == NULL || sigmask == NULL) return (FIDO_ERR_INVALID_ARGUMENT); -#ifdef NFC_LINUX +#ifdef USE_NFC if (dev->transport.rx == fido_nfc_rx && dev->io.read == fido_nfc_read) return (fido_nfc_set_sigmask(dev->io_handle, sigmask)); #endif @@ -414,106 +358,6 @@ fido_dev_cancel(fido_dev_t *dev) return (FIDO_OK); } -int -fido_dev_get_touch_begin(fido_dev_t *dev) -{ - fido_blob_t f; - cbor_item_t *argv[9]; - const char *clientdata = FIDO_DUMMY_CLIENTDATA; - const uint8_t user_id = FIDO_DUMMY_USER_ID; - unsigned char cdh[SHA256_DIGEST_LENGTH]; - fido_rp_t rp; - fido_user_t user; - int ms = dev->timeout_ms; - int r = FIDO_ERR_INTERNAL; - - memset(&f, 0, sizeof(f)); - memset(argv, 0, sizeof(argv)); - memset(cdh, 0, sizeof(cdh)); - memset(&rp, 0, sizeof(rp)); - memset(&user, 0, sizeof(user)); - - if (fido_dev_is_fido2(dev) == false) - return (u2f_get_touch_begin(dev, &ms)); - - if (SHA256((const void *)clientdata, strlen(clientdata), cdh) != cdh) { - fido_log_debug("%s: sha256", __func__); - return (FIDO_ERR_INTERNAL); - } - - if ((rp.id = strdup(FIDO_DUMMY_RP_ID)) == NULL || - (user.name = strdup(FIDO_DUMMY_USER_NAME)) == NULL) { - fido_log_debug("%s: strdup", __func__); - goto fail; - } - - if (fido_blob_set(&user.id, &user_id, sizeof(user_id)) < 0) { - fido_log_debug("%s: fido_blob_set", __func__); - goto fail; - } - - if ((argv[0] = cbor_build_bytestring(cdh, sizeof(cdh))) == NULL || - (argv[1] = cbor_encode_rp_entity(&rp)) == NULL || - (argv[2] = cbor_encode_user_entity(&user)) == NULL || - (argv[3] = cbor_encode_pubkey_param(COSE_ES256)) == NULL) { - fido_log_debug("%s: cbor encode", __func__); - goto fail; - } - - if (fido_dev_supports_pin(dev)) { - if ((argv[7] = cbor_new_definite_bytestring()) == NULL || - (argv[8] = cbor_encode_pin_opt(dev)) == NULL) { - fido_log_debug("%s: cbor encode", __func__); - goto fail; - } - } - - if (cbor_build_frame(CTAP_CBOR_MAKECRED, argv, nitems(argv), &f) < 0 || - fido_tx(dev, CTAP_CMD_CBOR, f.ptr, f.len, &ms) < 0) { - fido_log_debug("%s: fido_tx", __func__); - r = FIDO_ERR_TX; - goto fail; - } - - r = FIDO_OK; -fail: - cbor_vector_free(argv, nitems(argv)); - free(f.ptr); - free(rp.id); - free(user.name); - free(user.id.ptr); - - return (r); -} - -int -fido_dev_get_touch_status(fido_dev_t *dev, int *touched, int ms) -{ - int r; - - *touched = 0; - - if (fido_dev_is_fido2(dev) == false) - return (u2f_get_touch_status(dev, touched, &ms)); - - switch ((r = fido_rx_cbor_status(dev, &ms))) { - case FIDO_ERR_PIN_AUTH_INVALID: - case FIDO_ERR_PIN_INVALID: - case FIDO_ERR_PIN_NOT_SET: - case FIDO_ERR_SUCCESS: - *touched = 1; - break; - case FIDO_ERR_RX: - /* ignore */ - break; - default: - fido_log_debug("%s: fido_rx_cbor_status", __func__); - return (r); - } - - return (FIDO_OK); -} - int fido_dev_set_io_functions(fido_dev_t *dev, const fido_dev_io_t *io) { diff --git a/src/eddsa.c b/src/eddsa.c index a7b4f4f900ce..a94ae3023917 100644 --- a/src/eddsa.c +++ b/src/eddsa.c @@ -122,11 +122,20 @@ eddsa_pk_free(eddsa_pk_t **pkp) int eddsa_pk_from_ptr(eddsa_pk_t *pk, const void *ptr, size_t len) { + EVP_PKEY *pkey; + if (len < sizeof(*pk)) return (FIDO_ERR_INVALID_ARGUMENT); memcpy(pk, ptr, sizeof(*pk)); + if ((pkey = eddsa_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: eddsa_pk_to_EVP_PKEY", __func__); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + return (FIDO_OK); } @@ -147,6 +156,8 @@ eddsa_pk_from_EVP_PKEY(eddsa_pk_t *pk, const EVP_PKEY *pkey) { size_t len = 0; + if (EVP_PKEY_base_id(pkey) != EVP_PKEY_ED25519) + return (FIDO_ERR_INVALID_ARGUMENT); if (EVP_PKEY_get_raw_public_key(pkey, NULL, &len) != 1 || len != sizeof(pk->x)) return (FIDO_ERR_INTERNAL); diff --git a/src/es256.c b/src/es256.c index eb4cc63525aa..4d6e86f8a26d 100644 --- a/src/es256.c +++ b/src/es256.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -11,6 +11,14 @@ #include "fido.h" #include "fido/es256.h" +#if OPENSSL_VERSION_NUMBER >= 0x30000000 +#define get0_EC_KEY(x) EVP_PKEY_get0_EC_KEY((x)) +#else +#define get0_EC_KEY(x) EVP_PKEY_get0((x)) +#endif + +static const int es256_nid = NID_X9_62_prime256v1; + static int decode_coord(const cbor_item_t *item, void *xy, size_t xy_len) { @@ -170,7 +178,8 @@ es256_pk_free(es256_pk_t **pkp) int es256_pk_from_ptr(es256_pk_t *pk, const void *ptr, size_t len) { - const uint8_t *p = ptr; + const uint8_t *p = ptr; + EVP_PKEY *pkey; if (len < sizeof(*pk)) return (FIDO_ERR_INVALID_ARGUMENT); @@ -180,6 +189,14 @@ es256_pk_from_ptr(es256_pk_t *pk, const void *ptr, size_t len) else memcpy(pk, ptr, sizeof(*pk)); /* libfido2 x||y format */ + if ((pkey = es256_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: es256_pk_to_EVP_PKEY", __func__); + explicit_bzero(pk, sizeof(*pk)); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + return (FIDO_OK); } @@ -208,13 +225,12 @@ es256_sk_create(es256_sk_t *key) EVP_PKEY *k = NULL; const EC_KEY *ec; const BIGNUM *d; - const int nid = NID_X9_62_prime256v1; int n; int ok = -1; if ((pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL)) == NULL || EVP_PKEY_paramgen_init(pctx) <= 0 || - EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0 || + EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, es256_nid) <= 0 || EVP_PKEY_paramgen(pctx, &p) <= 0) { fido_log_debug("%s: EVP_PKEY_paramgen", __func__); goto fail; @@ -258,7 +274,6 @@ es256_pk_to_EVP_PKEY(const es256_pk_t *k) BIGNUM *x = NULL; BIGNUM *y = NULL; const EC_GROUP *g = NULL; - const int nid = NID_X9_62_prime256v1; int ok = -1; if ((bnctx = BN_CTX_new()) == NULL) @@ -276,7 +291,7 @@ es256_pk_to_EVP_PKEY(const es256_pk_t *k) goto fail; } - if ((ec = EC_KEY_new_by_curve_name(nid)) == NULL || + if ((ec = EC_KEY_new_by_curve_name(es256_nid)) == NULL || (g = EC_KEY_get0_group(ec)) == NULL) { fido_log_debug("%s: EC_KEY init", __func__); goto fail; @@ -324,12 +339,15 @@ es256_pk_from_EC_KEY(es256_pk_t *pk, const EC_KEY *ec) BIGNUM *x = NULL; BIGNUM *y = NULL; const EC_POINT *q = NULL; - const EC_GROUP *g = NULL; + EC_GROUP *g = NULL; + size_t dx; + size_t dy; int ok = FIDO_ERR_INTERNAL; - int n; + int nx; + int ny; if ((q = EC_KEY_get0_public_key(ec)) == NULL || - (g = EC_KEY_get0_group(ec)) == NULL || + (g = EC_GROUP_new_by_curve_name(es256_nid)) == NULL || (bnctx = BN_CTX_new()) == NULL) goto fail; @@ -339,22 +357,33 @@ es256_pk_from_EC_KEY(es256_pk_t *pk, const EC_KEY *ec) (y = BN_CTX_get(bnctx)) == NULL) goto fail; + if (EC_POINT_is_on_curve(g, q, bnctx) != 1) { + fido_log_debug("%s: EC_POINT_is_on_curve", __func__); + ok = FIDO_ERR_INVALID_ARGUMENT; + goto fail; + } + if (EC_POINT_get_affine_coordinates_GFp(g, q, x, y, bnctx) == 0 || - (n = BN_num_bytes(x)) < 0 || (size_t)n > sizeof(pk->x) || - (n = BN_num_bytes(y)) < 0 || (size_t)n > sizeof(pk->y)) { + (nx = BN_num_bytes(x)) < 0 || (size_t)nx > sizeof(pk->x) || + (ny = BN_num_bytes(y)) < 0 || (size_t)ny > sizeof(pk->y)) { fido_log_debug("%s: EC_POINT_get_affine_coordinates_GFp", __func__); goto fail; } - if ((n = BN_bn2bin(x, pk->x)) < 0 || (size_t)n > sizeof(pk->x) || - (n = BN_bn2bin(y, pk->y)) < 0 || (size_t)n > sizeof(pk->y)) { + dx = sizeof(pk->x) - (size_t)nx; + dy = sizeof(pk->y) - (size_t)ny; + + if ((nx = BN_bn2bin(x, pk->x + dx)) < 0 || (size_t)nx > sizeof(pk->x) || + (ny = BN_bn2bin(y, pk->y + dy)) < 0 || (size_t)ny > sizeof(pk->y)) { fido_log_debug("%s: BN_bn2bin", __func__); goto fail; } ok = FIDO_OK; fail: + EC_GROUP_free(g); + if (bnctx != NULL) { BN_CTX_end(bnctx); BN_CTX_free(bnctx); @@ -366,10 +395,10 @@ es256_pk_from_EC_KEY(es256_pk_t *pk, const EC_KEY *ec) int es256_pk_from_EVP_PKEY(es256_pk_t *pk, const EVP_PKEY *pkey) { - EC_KEY *ec; + const EC_KEY *ec; if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC || - (ec = EVP_PKEY_get0(pkey)) == NULL) + (ec = get0_EC_KEY(pkey)) == NULL) return (FIDO_ERR_INVALID_ARGUMENT); return (es256_pk_from_EC_KEY(pk, ec)); @@ -382,7 +411,6 @@ es256_sk_to_EVP_PKEY(const es256_sk_t *k) EC_KEY *ec = NULL; EVP_PKEY *pkey = NULL; BIGNUM *d = NULL; - const int nid = NID_X9_62_prime256v1; int ok = -1; if ((bnctx = BN_CTX_new()) == NULL) @@ -396,7 +424,7 @@ es256_sk_to_EVP_PKEY(const es256_sk_t *k) goto fail; } - if ((ec = EC_KEY_new_by_curve_name(nid)) == NULL || + if ((ec = EC_KEY_new_by_curve_name(es256_nid)) == NULL || EC_KEY_set_private_key(ec, d) == 0) { fido_log_debug("%s: EC_KEY_set_private_key", __func__); goto fail; @@ -435,11 +463,10 @@ es256_derive_pk(const es256_sk_t *sk, es256_pk_t *pk) EC_KEY *ec = NULL; EC_POINT *q = NULL; const EC_GROUP *g = NULL; - const int nid = NID_X9_62_prime256v1; int ok = -1; if ((d = BN_bin2bn(sk->d, (int)sizeof(sk->d), NULL)) == NULL || - (ec = EC_KEY_new_by_curve_name(nid)) == NULL || + (ec = EC_KEY_new_by_curve_name(es256_nid)) == NULL || (g = EC_KEY_get0_group(ec)) == NULL || (q = EC_POINT_new(g)) == NULL) { fido_log_debug("%s: get", __func__); diff --git a/src/export.gnu b/src/export.gnu index 0a8d46a20fad..8fc94af31c92 100644 --- a/src/export.gnu +++ b/src/export.gnu @@ -85,10 +85,11 @@ fido_cbor_info_extensions_len; fido_cbor_info_extensions_ptr; fido_cbor_info_free; - fido_cbor_info_maxmsgsiz; fido_cbor_info_maxcredbloblen; fido_cbor_info_maxcredcntlst; fido_cbor_info_maxcredidlen; + fido_cbor_info_maxlargeblob; + fido_cbor_info_maxmsgsiz; fido_cbor_info_fwversion; fido_cbor_info_new; fido_cbor_info_options_len; diff --git a/src/export.llvm b/src/export.llvm index 80507346edee..df9a667f7477 100644 --- a/src/export.llvm +++ b/src/export.llvm @@ -83,10 +83,11 @@ _fido_cbor_info_algorithm_type _fido_cbor_info_extensions_len _fido_cbor_info_extensions_ptr _fido_cbor_info_free -_fido_cbor_info_maxmsgsiz _fido_cbor_info_maxcredbloblen _fido_cbor_info_maxcredcntlst _fido_cbor_info_maxcredidlen +_fido_cbor_info_maxlargeblob +_fido_cbor_info_maxmsgsiz _fido_cbor_info_fwversion _fido_cbor_info_new _fido_cbor_info_options_len diff --git a/src/export.msvc b/src/export.msvc index 14602164fd45..a9082152f5cc 100644 --- a/src/export.msvc +++ b/src/export.msvc @@ -84,10 +84,11 @@ fido_cbor_info_algorithm_type fido_cbor_info_extensions_len fido_cbor_info_extensions_ptr fido_cbor_info_free -fido_cbor_info_maxmsgsiz fido_cbor_info_maxcredbloblen fido_cbor_info_maxcredcntlst fido_cbor_info_maxcredidlen +fido_cbor_info_maxlargeblob +fido_cbor_info_maxmsgsiz fido_cbor_info_fwversion fido_cbor_info_new fido_cbor_info_options_len diff --git a/src/extern.h b/src/extern.h index 6f86d7642950..84536d58b6f8 100644 --- a/src/extern.h +++ b/src/extern.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -118,6 +118,7 @@ size_t fido_hid_report_in_len(void *); size_t fido_hid_report_out_len(void *); /* nfc i/o */ +bool fido_is_nfc(const char *); void *fido_nfc_open(const char *); void fido_nfc_close(void *); int fido_nfc_read(void *, unsigned char *, size_t, int); @@ -125,6 +126,17 @@ int fido_nfc_write(void *, const unsigned char *, size_t); int fido_nfc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); int fido_nfc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); int fido_nfc_set_sigmask(void *, const fido_sigset_t *); +int fido_dev_set_nfc(fido_dev_t *); + +/* pcsc i/o */ +bool fido_is_pcsc(const char *); +void *fido_pcsc_open(const char *); +void fido_pcsc_close(void *); +int fido_pcsc_read(void *, unsigned char *, size_t, int); +int fido_pcsc_write(void *, const unsigned char *, size_t); +int fido_pcsc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); +int fido_pcsc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); +int fido_dev_set_pcsc(fido_dev_t *); /* windows hello */ int fido_winhello_manifest(fido_dev_info_t *, size_t, size_t *); @@ -200,6 +212,7 @@ int fido_get_random(void *, size_t); int fido_sha256(fido_blob_t *, const u_char *, size_t); int fido_time_now(struct timespec *); int fido_time_delta(const struct timespec *, int *); +int fido_to_uint64(const char *, int, uint64_t *); /* crypto */ int es256_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); @@ -220,11 +233,7 @@ int fido_get_signed_hash_tpm(fido_blob_t *, const fido_blob_t *, /* device manifest functions */ int fido_hid_manifest(fido_dev_info_t *, size_t, size_t *); int fido_nfc_manifest(fido_dev_info_t *, size_t, size_t *); - -/* device manifest registration */ -typedef int (*dev_manifest_func_t)(fido_dev_info_t *, size_t, size_t *); -int fido_dev_register_manifest_func(const dev_manifest_func_t); -void fido_dev_unregister_manifest_func(const dev_manifest_func_t); +int fido_pcsc_manifest(fido_dev_info_t *, size_t, size_t *); /* fuzzing instrumentation */ #ifdef FIDO_FUZZ @@ -250,6 +259,7 @@ uint32_t uniform_random(uint32_t); #define FIDO_DUMMY_USER_ID 1 #define FIDO_WINHELLO_PATH "windows://hello" #define FIDO_NFC_PREFIX "nfc:" +#define FIDO_PCSC_PREFIX "pcsc:" #ifdef __cplusplus } /* extern "C" */ diff --git a/src/fido.h b/src/fido.h index 4bd2aeebfccb..63d6de87b5aa 100644 --- a/src/fido.h +++ b/src/fido.h @@ -144,7 +144,9 @@ int fido_cred_set_user(fido_cred_t *, const unsigned char *, size_t, int fido_cred_set_x509(fido_cred_t *, const unsigned char *, size_t); int fido_cred_verify(const fido_cred_t *); int fido_cred_verify_self(const fido_cred_t *); +#ifdef _FIDO_SIGSET_DEFINED int fido_dev_set_sigmask(fido_dev_t *, const fido_sigset_t *); +#endif int fido_dev_cancel(fido_dev_t *); int fido_dev_close(fido_dev_t *); int fido_dev_get_assert(fido_dev_t *, fido_assert_t *, const char *); @@ -205,10 +207,11 @@ uint8_t fido_dev_build(const fido_dev_t *); uint8_t fido_dev_flags(const fido_dev_t *); int16_t fido_dev_info_vendor(const fido_dev_info_t *); int16_t fido_dev_info_product(const fido_dev_info_t *); -uint64_t fido_cbor_info_maxmsgsiz(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredbloblen(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredcntlst(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredidlen(const fido_cbor_info_t *); +uint64_t fido_cbor_info_maxlargeblob(const fido_cbor_info_t *); +uint64_t fido_cbor_info_maxmsgsiz(const fido_cbor_info_t *); uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *); bool fido_dev_has_pin(const fido_dev_t *); diff --git a/src/fido/types.h b/src/fido/types.h index 4a216b4b9786..593a6a6b4813 100644 --- a/src/fido/types.h +++ b/src/fido/types.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -48,10 +48,14 @@ typedef enum { typedef void fido_log_handler_t(const char *); +#undef _FIDO_SIGSET_DEFINED +#define _FIDO_SIGSET_DEFINED #ifdef _WIN32 typedef int fido_sigset_t; -#else +#elif defined(SIG_BLOCK) typedef sigset_t fido_sigset_t; +#else +#undef _FIDO_SIGSET_DEFINED #endif #ifdef _FIDO_INTERNAL @@ -216,18 +220,19 @@ typedef struct fido_algo_array { } fido_algo_array_t; typedef struct fido_cbor_info { - fido_str_array_t versions; /* supported versions: fido2|u2f */ - fido_str_array_t extensions; /* list of supported extensions */ - fido_str_array_t transports; /* list of supported transports */ - unsigned char aaguid[16]; /* aaguid */ - fido_opt_array_t options; /* list of supported options */ - uint64_t maxmsgsiz; /* maximum message size */ - fido_byte_array_t protocols; /* supported pin protocols */ - fido_algo_array_t algorithms; /* list of supported algorithms */ - uint64_t maxcredcntlst; /* max number of credentials in list */ - uint64_t maxcredidlen; /* max credential ID length */ - uint64_t fwversion; /* firmware version */ + fido_str_array_t versions; /* supported versions: fido2|u2f */ + fido_str_array_t extensions; /* list of supported extensions */ + fido_str_array_t transports; /* list of supported transports */ + unsigned char aaguid[16]; /* aaguid */ + fido_opt_array_t options; /* list of supported options */ + uint64_t maxmsgsiz; /* maximum message size */ + fido_byte_array_t protocols; /* supported pin protocols */ + fido_algo_array_t algorithms; /* list of supported algorithms */ + uint64_t maxcredcntlst; /* max credentials in list */ + uint64_t maxcredidlen; /* max credential ID length */ + uint64_t fwversion; /* firmware version */ uint64_t maxcredbloblen; /* max credBlob length */ + uint64_t maxlargeblob; /* max largeBlob array length */ } fido_cbor_info_t; typedef struct fido_dev_info { diff --git a/src/hid_freebsd.c b/src/hid_freebsd.c index 5aefe69c1bec..21e408ffd53f 100644 --- a/src/hid_freebsd.c +++ b/src/hid_freebsd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -87,8 +87,8 @@ copy_info(fido_dev_info_t *di, const char *path) ok = 0; fail: - if (fd != -1) - close(fd); + if (fd != -1 && close(fd) == -1) + fido_log_error(errno, "%s: close %s", __func__, path); if (ok < 0) { free(di->path); @@ -106,8 +106,6 @@ fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) char path[64]; size_t i; - *olen = 0; - if (ilen == 0) return (FIDO_OK); /* nothing to do */ diff --git a/src/hid_openbsd.c b/src/hid_openbsd.c index d3d3bff0fc8b..2993d10dad9d 100644 --- a/src/hid_openbsd.c +++ b/src/hid_openbsd.c @@ -27,14 +27,58 @@ struct hid_openbsd { const sigset_t *sigmaskp; }; +static int +copy_info(fido_dev_info_t *di, const char *path) +{ + int fd = -1, ok = -1; + struct usb_device_info udi; + + memset(di, 0, sizeof(*di)); + memset(&udi, 0, sizeof(udi)); + + if ((fd = fido_hid_unix_open(path)) == -1) + goto fail; + if (ioctl(fd, IOCTL_REQ(USB_GET_DEVICEINFO), &udi) == -1) { + fido_log_error(errno, "%s: ioctl %s", __func__, path); + goto fail; + } + + fido_log_debug("%s: %s: bus = 0x%02x, addr = 0x%02x", __func__, path, + udi.udi_bus, udi.udi_addr); + fido_log_debug("%s: %s: vendor = \"%s\", product = \"%s\"", __func__, + path, udi.udi_vendor, udi.udi_product); + fido_log_debug("%s: %s: productNo = 0x%04x, vendorNo = 0x%04x, " + "releaseNo = 0x%04x", __func__, path, udi.udi_productNo, + udi.udi_vendorNo, udi.udi_releaseNo); + + if ((di->path = strdup(path)) == NULL || + (di->manufacturer = strdup(udi.udi_vendor)) == NULL || + (di->product = strdup(udi.udi_product)) == NULL) + goto fail; + + di->vendor_id = (int16_t)udi.udi_vendorNo; + di->product_id = (int16_t)udi.udi_productNo; + + ok = 0; +fail: + if (fd != -1 && close(fd) == -1) + fido_log_error(errno, "%s: close %s", __func__, path); + + if (ok < 0) { + free(di->path); + free(di->manufacturer); + free(di->product); + explicit_bzero(di, sizeof(*di)); + } + + return (ok); +} + int fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) { size_t i; char path[64]; - int fd; - struct usb_device_info udi; - fido_dev_info_t *di; if (ilen == 0) return (FIDO_OK); /* nothing to do */ @@ -44,50 +88,18 @@ fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) for (i = *olen = 0; i < MAX_UHID && *olen < ilen; i++) { snprintf(path, sizeof(path), "/dev/fido/%zu", i); - if ((fd = fido_hid_unix_open(path)) == -1) - continue; - memset(&udi, 0, sizeof(udi)); - if (ioctl(fd, IOCTL_REQ(USB_GET_DEVICEINFO), &udi) == -1) { - fido_log_error(errno, "%s: get device info %s", - __func__, path); - if (close(fd) == -1) - fido_log_error(errno, "%s: close", __func__); - continue; + if (copy_info(&devlist[*olen], path) == 0) { + devlist[*olen].io = (fido_dev_io_t) { + fido_hid_open, + fido_hid_close, + fido_hid_read, + fido_hid_write, + }; + ++(*olen); } - if (close(fd) == -1) - fido_log_error(errno, "%s: close", __func__); - - fido_log_debug("%s: %s: bus = 0x%02x, addr = 0x%02x", - __func__, path, udi.udi_bus, udi.udi_addr); - fido_log_debug("%s: %s: vendor = \"%s\", product = \"%s\"", - __func__, path, udi.udi_vendor, udi.udi_product); - fido_log_debug("%s: %s: productNo = 0x%04x, vendorNo = 0x%04x, " - "releaseNo = 0x%04x", __func__, path, udi.udi_productNo, - udi.udi_vendorNo, udi.udi_releaseNo); - - di = &devlist[*olen]; - memset(di, 0, sizeof(*di)); - di->io = (fido_dev_io_t) { - fido_hid_open, - fido_hid_close, - fido_hid_read, - fido_hid_write, - }; - if ((di->path = strdup(path)) == NULL || - (di->manufacturer = strdup(udi.udi_vendor)) == NULL || - (di->product = strdup(udi.udi_product)) == NULL) { - free(di->path); - free(di->manufacturer); - free(di->product); - explicit_bzero(di, sizeof(*di)); - return FIDO_ERR_INTERNAL; - } - di->vendor_id = (int16_t)udi.udi_vendorNo; - di->product_id = (int16_t)udi.udi_productNo; - (*olen)++; } - return FIDO_OK; + return (FIDO_OK); } /* diff --git a/src/hid_osx.c b/src/hid_osx.c index 7f3652e39620..a5fa8281f81e 100644 --- a/src/hid_osx.c +++ b/src/hid_osx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -374,25 +374,6 @@ disable_sigpipe(int fd) return (0); } -static int -to_uint64(const char *str, uint64_t *out) -{ - char *ep; - unsigned long long ull; - - errno = 0; - ull = strtoull(str, &ep, 10); - if (str == ep || *ep != '\0') - return (-1); - else if (ull == ULLONG_MAX && errno == ERANGE) - return (-1); - else if (ull > UINT64_MAX) - return (-1); - *out = (uint64_t)ull; - - return (0); -} - static io_registry_entry_t get_ioreg_entry(const char *path) { @@ -401,8 +382,8 @@ get_ioreg_entry(const char *path) if (strncmp(path, IOREG, strlen(IOREG)) != 0) return (IORegistryEntryFromPath(kIOMainPortDefault, path)); - if (to_uint64(path + strlen(IOREG), &id) == -1) { - fido_log_debug("%s: to_uint64", __func__); + if (fido_to_uint64(path + strlen(IOREG), 10, &id) == -1) { + fido_log_debug("%s: fido_to_uint64", __func__); return (MACH_PORT_NULL); } diff --git a/src/info.c b/src/info.c index 167a1d30ecaa..ea26f22297a6 100644 --- a/src/info.c +++ b/src/info.c @@ -268,6 +268,8 @@ parse_reply_element(const cbor_item_t *key, const cbor_item_t *val, void *arg) return (decode_string_array(val, &ci->transports)); case 10: /* algorithms */ return (decode_algorithms(val, &ci->algorithms)); + case 11: /* maxSerializedLargeBlobArray */ + return (cbor_decode_uint64(val, &ci->maxlargeblob)); case 14: /* fwVersion */ return (cbor_decode_uint64(val, &ci->fwversion)); case 15: /* maxCredBlobLen */ @@ -461,6 +463,12 @@ fido_cbor_info_maxcredidlen(const fido_cbor_info_t *ci) return (ci->maxcredidlen); } +uint64_t +fido_cbor_info_maxlargeblob(const fido_cbor_info_t *ci) +{ + return (ci->maxlargeblob); +} + uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *ci) { diff --git a/src/nfc.c b/src/nfc.c new file mode 100644 index 000000000000..8e1221bb5057 --- /dev/null +++ b/src/nfc.c @@ -0,0 +1,320 @@ +/* + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#include <stdio.h> +#include <string.h> + +#include "fido.h" +#include "fido/param.h" +#include "iso7816.h" + +#define TX_CHUNK_SIZE 240 + +static const uint8_t aid[] = { 0xa0, 0x00, 0x00, 0x06, 0x47, 0x2f, 0x00, 0x01 }; +static const uint8_t v_u2f[] = { 'U', '2', 'F', '_', 'V', '2' }; +static const uint8_t v_fido[] = { 'F', 'I', 'D', 'O', '_', '2', '_', '0' }; + +static int +tx_short_apdu(fido_dev_t *d, const iso7816_header_t *h, const uint8_t *payload, + uint8_t payload_len, uint8_t cla_flags) +{ + uint8_t apdu[5 + UINT8_MAX + 1]; + uint8_t sw[2]; + size_t apdu_len; + int ok = -1; + + memset(&apdu, 0, sizeof(apdu)); + apdu[0] = h->cla | cla_flags; + apdu[1] = h->ins; + apdu[2] = h->p1; + apdu[3] = h->p2; + apdu[4] = payload_len; + memcpy(&apdu[5], payload, payload_len); + apdu_len = (size_t)(5 + payload_len + 1); + + if (d->io.write(d->io_handle, apdu, apdu_len) < 0) { + fido_log_debug("%s: write", __func__); + goto fail; + } + + if (cla_flags & 0x10) { + if (d->io.read(d->io_handle, sw, sizeof(sw), -1) != 2) { + fido_log_debug("%s: read", __func__); + goto fail; + } + if ((sw[0] << 8 | sw[1]) != SW_NO_ERROR) { + fido_log_debug("%s: unexpected sw", __func__); + goto fail; + } + } + + ok = 0; +fail: + explicit_bzero(apdu, sizeof(apdu)); + + return ok; +} + +static int +nfc_do_tx(fido_dev_t *d, const uint8_t *apdu_ptr, size_t apdu_len) +{ + iso7816_header_t h; + + if (fido_buf_read(&apdu_ptr, &apdu_len, &h, sizeof(h)) < 0) { + fido_log_debug("%s: header", __func__); + return -1; + } + if (apdu_len < 2) { + fido_log_debug("%s: apdu_len %zu", __func__, apdu_len); + return -1; + } + + apdu_len -= 2; /* trim le1 le2 */ + + while (apdu_len > TX_CHUNK_SIZE) { + if (tx_short_apdu(d, &h, apdu_ptr, TX_CHUNK_SIZE, 0x10) < 0) { + fido_log_debug("%s: chain", __func__); + return -1; + } + apdu_ptr += TX_CHUNK_SIZE; + apdu_len -= TX_CHUNK_SIZE; + } + + if (tx_short_apdu(d, &h, apdu_ptr, (uint8_t)apdu_len, 0) < 0) { + fido_log_debug("%s: tx_short_apdu", __func__); + return -1; + } + + return 0; +} + +int +fido_nfc_tx(fido_dev_t *d, uint8_t cmd, const unsigned char *buf, size_t count) +{ + iso7816_apdu_t *apdu = NULL; + const uint8_t *ptr; + size_t len; + int ok = -1; + + switch (cmd) { + case CTAP_CMD_INIT: /* select */ + if ((apdu = iso7816_new(0, 0xa4, 0x04, sizeof(aid))) == NULL || + iso7816_add(apdu, aid, sizeof(aid)) < 0) { + fido_log_debug("%s: iso7816", __func__); + goto fail; + } + break; + case CTAP_CMD_CBOR: /* wrap cbor */ + if (count > UINT16_MAX || (apdu = iso7816_new(0x80, 0x10, 0x00, + (uint16_t)count)) == NULL || + iso7816_add(apdu, buf, count) < 0) { + fido_log_debug("%s: iso7816", __func__); + goto fail; + } + break; + case CTAP_CMD_MSG: /* already an apdu */ + break; + default: + fido_log_debug("%s: cmd=%02x", __func__, cmd); + goto fail; + } + + if (apdu != NULL) { + ptr = iso7816_ptr(apdu); + len = iso7816_len(apdu); + } else { + ptr = buf; + len = count; + } + + if (nfc_do_tx(d, ptr, len) < 0) { + fido_log_debug("%s: nfc_do_tx", __func__); + goto fail; + } + + ok = 0; +fail: + iso7816_free(&apdu); + + return ok; +} + +static int +rx_init(fido_dev_t *d, unsigned char *buf, size_t count, int ms) +{ + fido_ctap_info_t *attr = (fido_ctap_info_t *)buf; + uint8_t f[64]; + int n; + + if (count != sizeof(*attr)) { + fido_log_debug("%s: count=%zu", __func__, count); + return -1; + } + + memset(attr, 0, sizeof(*attr)); + + if ((n = d->io.read(d->io_handle, f, sizeof(f), ms)) < 2 || + (f[n - 2] << 8 | f[n - 1]) != SW_NO_ERROR) { + fido_log_debug("%s: read", __func__); + return -1; + } + + n -= 2; + + if (n == sizeof(v_u2f) && memcmp(f, v_u2f, sizeof(v_u2f)) == 0) + attr->flags = FIDO_CAP_CBOR; + else if (n == sizeof(v_fido) && memcmp(f, v_fido, sizeof(v_fido)) == 0) + attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; + else { + fido_log_debug("%s: unknown version string", __func__); +#ifdef FIDO_FUZZ + attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; +#else + return -1; +#endif + } + + memcpy(&attr->nonce, &d->nonce, sizeof(attr->nonce)); /* XXX */ + + return (int)count; +} + +static int +tx_get_response(fido_dev_t *d, uint8_t count) +{ + uint8_t apdu[5]; + + memset(apdu, 0, sizeof(apdu)); + apdu[1] = 0xc0; /* GET_RESPONSE */ + apdu[4] = count; + + if (d->io.write(d->io_handle, apdu, sizeof(apdu)) < 0) { + fido_log_debug("%s: write", __func__); + return -1; + } + + return 0; +} + +static int +rx_apdu(fido_dev_t *d, uint8_t sw[2], unsigned char **buf, size_t *count, int *ms) +{ + uint8_t f[256 + 2]; + struct timespec ts; + int n, ok = -1; + + if (fido_time_now(&ts) != 0) + goto fail; + + if ((n = d->io.read(d->io_handle, f, sizeof(f), *ms)) < 2) { + fido_log_debug("%s: read", __func__); + goto fail; + } + + if (fido_time_delta(&ts, ms) != 0) + goto fail; + + if (fido_buf_write(buf, count, f, (size_t)(n - 2)) < 0) { + fido_log_debug("%s: fido_buf_write", __func__); + goto fail; + } + + memcpy(sw, f + n - 2, 2); + + ok = 0; +fail: + explicit_bzero(f, sizeof(f)); + + return ok; +} + +static int +rx_msg(fido_dev_t *d, unsigned char *buf, size_t count, int ms) +{ + uint8_t sw[2]; + const size_t bufsiz = count; + + if (rx_apdu(d, sw, &buf, &count, &ms) < 0) { + fido_log_debug("%s: preamble", __func__); + return -1; + } + + while (sw[0] == SW1_MORE_DATA) + if (tx_get_response(d, sw[1]) < 0 || + rx_apdu(d, sw, &buf, &count, &ms) < 0) { + fido_log_debug("%s: chain", __func__); + return -1; + } + + if (fido_buf_write(&buf, &count, sw, sizeof(sw)) < 0) { + fido_log_debug("%s: sw", __func__); + return -1; + } + + if (bufsiz - count > INT_MAX) { + fido_log_debug("%s: bufsiz", __func__); + return -1; + } + + return (int)(bufsiz - count); +} + +static int +rx_cbor(fido_dev_t *d, unsigned char *buf, size_t count, int ms) +{ + int r; + + if ((r = rx_msg(d, buf, count, ms)) < 2) + return -1; + + return r - 2; +} + +int +fido_nfc_rx(fido_dev_t *d, uint8_t cmd, unsigned char *buf, size_t count, int ms) +{ + switch (cmd) { + case CTAP_CMD_INIT: + return rx_init(d, buf, count, ms); + case CTAP_CMD_CBOR: + return rx_cbor(d, buf, count, ms); + case CTAP_CMD_MSG: + return rx_msg(d, buf, count, ms); + default: + fido_log_debug("%s: cmd=%02x", __func__, cmd); + return -1; + } +} + +#ifdef USE_NFC +bool +fido_is_nfc(const char *path) +{ + return strncmp(path, FIDO_NFC_PREFIX, strlen(FIDO_NFC_PREFIX)) == 0; +} + +int +fido_dev_set_nfc(fido_dev_t *d) +{ + if (d->io_handle != NULL) { + fido_log_debug("%s: device open", __func__); + return -1; + } + d->io_own = true; + d->io = (fido_dev_io_t) { + fido_nfc_open, + fido_nfc_close, + fido_nfc_read, + fido_nfc_write, + }; + d->transport = (fido_dev_transport_t) { + fido_nfc_rx, + fido_nfc_tx, + }; + + return 0; +} +#endif /* USE_NFC */ diff --git a/src/nfc_linux.c b/src/nfc_linux.c index d5f9ec048052..4673dc2b7d18 100644 --- a/src/nfc_linux.c +++ b/src/nfc_linux.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -22,12 +22,6 @@ #include "netlink.h" #include "iso7816.h" -#define TX_CHUNK_SIZE 240 - -static const uint8_t aid[] = { 0xa0, 0x00, 0x00, 0x06, 0x47, 0x2f, 0x00, 0x01 }; -static const uint8_t v_u2f[] = { 'U', '2', 'F', '_', 'V', '2' }; -static const uint8_t v_fido[] = { 'F', 'I', 'D', 'O', '_', '2', '_', '0' }; - struct nfc_linux { int fd; uint32_t dev; @@ -37,278 +31,6 @@ struct nfc_linux { struct fido_nl *nl; }; -static int -tx_short_apdu(fido_dev_t *d, const iso7816_header_t *h, const uint8_t *payload, - uint8_t payload_len, uint8_t cla_flags) -{ - uint8_t apdu[5 + UINT8_MAX + 1]; - uint8_t sw[2]; - size_t apdu_len; - int ok = -1; - - memset(&apdu, 0, sizeof(apdu)); - apdu[0] = h->cla | cla_flags; - apdu[1] = h->ins; - apdu[2] = h->p1; - apdu[3] = h->p2; - apdu[4] = payload_len; - memcpy(&apdu[5], payload, payload_len); - apdu_len = (size_t)(5 + payload_len + 1); - - if (d->io.write(d->io_handle, apdu, apdu_len) < 0) { - fido_log_debug("%s: write", __func__); - goto fail; - } - - if (cla_flags & 0x10) { - if (d->io.read(d->io_handle, sw, sizeof(sw), -1) != 2) { - fido_log_debug("%s: read", __func__); - goto fail; - } - if ((sw[0] << 8 | sw[1]) != SW_NO_ERROR) { - fido_log_debug("%s: unexpected sw", __func__); - goto fail; - } - } - - ok = 0; -fail: - explicit_bzero(apdu, sizeof(apdu)); - - return (ok); -} - -static int -nfc_do_tx(fido_dev_t *d, const uint8_t *apdu_ptr, size_t apdu_len) -{ - iso7816_header_t h; - - if (fido_buf_read(&apdu_ptr, &apdu_len, &h, sizeof(h)) < 0) { - fido_log_debug("%s: header", __func__); - return (-1); - } - if (apdu_len < 2) { - fido_log_debug("%s: apdu_len %zu", __func__, apdu_len); - return (-1); - } - - apdu_len -= 2; /* trim le1 le2 */ - - while (apdu_len > TX_CHUNK_SIZE) { - if (tx_short_apdu(d, &h, apdu_ptr, TX_CHUNK_SIZE, 0x10) < 0) { - fido_log_debug("%s: chain", __func__); - return (-1); - } - apdu_ptr += TX_CHUNK_SIZE; - apdu_len -= TX_CHUNK_SIZE; - } - - if (tx_short_apdu(d, &h, apdu_ptr, (uint8_t)apdu_len, 0) < 0) { - fido_log_debug("%s: tx_short_apdu", __func__); - return (-1); - } - - return (0); -} - -int -fido_nfc_tx(fido_dev_t *d, uint8_t cmd, const unsigned char *buf, size_t count) -{ - iso7816_apdu_t *apdu = NULL; - const uint8_t *ptr; - size_t len; - int ok = -1; - - switch (cmd) { - case CTAP_CMD_INIT: /* select */ - if ((apdu = iso7816_new(0, 0xa4, 0x04, sizeof(aid))) == NULL || - iso7816_add(apdu, aid, sizeof(aid)) < 0) { - fido_log_debug("%s: iso7816", __func__); - goto fail; - } - break; - case CTAP_CMD_CBOR: /* wrap cbor */ - if (count > UINT16_MAX || (apdu = iso7816_new(0x80, 0x10, 0x80, - (uint16_t)count)) == NULL || - iso7816_add(apdu, buf, count) < 0) { - fido_log_debug("%s: iso7816", __func__); - goto fail; - } - break; - case CTAP_CMD_MSG: /* already an apdu */ - break; - default: - fido_log_debug("%s: cmd=%02x", __func__, cmd); - goto fail; - } - - if (apdu != NULL) { - ptr = iso7816_ptr(apdu); - len = iso7816_len(apdu); - } else { - ptr = buf; - len = count; - } - - if (nfc_do_tx(d, ptr, len) < 0) { - fido_log_debug("%s: nfc_do_tx", __func__); - goto fail; - } - - ok = 0; -fail: - iso7816_free(&apdu); - - return (ok); -} - -static int -rx_init(fido_dev_t *d, unsigned char *buf, size_t count, int ms) -{ - fido_ctap_info_t *attr = (fido_ctap_info_t *)buf; - uint8_t f[64]; - int n; - - if (count != sizeof(*attr)) { - fido_log_debug("%s: count=%zu", __func__, count); - return (-1); - } - - memset(attr, 0, sizeof(*attr)); - - if ((n = d->io.read(d->io_handle, f, sizeof(f), ms)) < 2 || - (f[n - 2] << 8 | f[n - 1]) != SW_NO_ERROR) { - fido_log_debug("%s: read", __func__); - return (-1); - } - - n -= 2; - - if (n == sizeof(v_u2f) && memcmp(f, v_u2f, sizeof(v_u2f)) == 0) - attr->flags = FIDO_CAP_CBOR; - else if (n == sizeof(v_fido) && memcmp(f, v_fido, sizeof(v_fido)) == 0) - attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; - else { - fido_log_debug("%s: unknown version string", __func__); -#ifdef FIDO_FUZZ - attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; -#else - return (-1); -#endif - } - - memcpy(&attr->nonce, &d->nonce, sizeof(attr->nonce)); /* XXX */ - - return ((int)count); -} - -static int -tx_get_response(fido_dev_t *d, uint8_t count) -{ - uint8_t apdu[5]; - - memset(apdu, 0, sizeof(apdu)); - apdu[1] = 0xc0; /* GET_RESPONSE */ - apdu[4] = count; - - if (d->io.write(d->io_handle, apdu, sizeof(apdu)) < 0) { - fido_log_debug("%s: write", __func__); - return (-1); - } - - return (0); -} - -static int -rx_apdu(fido_dev_t *d, uint8_t sw[2], unsigned char **buf, size_t *count, int *ms) -{ - uint8_t f[256 + 2]; - struct timespec ts; - int n, ok = -1; - - if (fido_time_now(&ts) != 0) - goto fail; - - if ((n = d->io.read(d->io_handle, f, sizeof(f), *ms)) < 2) { - fido_log_debug("%s: read", __func__); - goto fail; - } - - if (fido_time_delta(&ts, ms) != 0) - goto fail; - - if (fido_buf_write(buf, count, f, (size_t)(n - 2)) < 0) { - fido_log_debug("%s: fido_buf_write", __func__); - goto fail; - } - - memcpy(sw, f + n - 2, 2); - - ok = 0; -fail: - explicit_bzero(f, sizeof(f)); - - return (ok); -} - -static int -rx_msg(fido_dev_t *d, unsigned char *buf, size_t count, int ms) -{ - uint8_t sw[2]; - const size_t bufsiz = count; - - if (rx_apdu(d, sw, &buf, &count, &ms) < 0) { - fido_log_debug("%s: preamble", __func__); - return (-1); - } - - while (sw[0] == SW1_MORE_DATA) - if (tx_get_response(d, sw[1]) < 0 || - rx_apdu(d, sw, &buf, &count, &ms) < 0) { - fido_log_debug("%s: chain", __func__); - return (-1); - } - - if (fido_buf_write(&buf, &count, sw, sizeof(sw)) < 0) { - fido_log_debug("%s: sw", __func__); - return (-1); - } - - if (bufsiz - count > INT_MAX) { - fido_log_debug("%s: bufsiz", __func__); - return (-1); - } - - return ((int)(bufsiz - count)); -} - -static int -rx_cbor(fido_dev_t *d, unsigned char *buf, size_t count, int ms) -{ - int r; - - if ((r = rx_msg(d, buf, count, ms)) < 2) - return (-1); - - return (r - 2); -} - -int -fido_nfc_rx(fido_dev_t *d, uint8_t cmd, unsigned char *buf, size_t count, int ms) -{ - switch (cmd) { - case CTAP_CMD_INIT: - return (rx_init(d, buf, count, ms)); - case CTAP_CMD_CBOR: - return (rx_cbor(d, buf, count, ms)); - case CTAP_CMD_MSG: - return (rx_msg(d, buf, count, ms)); - default: - fido_log_debug("%s: cmd=%02x", __func__, cmd); - return (-1); - } -} - static char * get_parent_attr(struct udev_device *dev, const char *subsystem, const char *devtype, const char *attr) @@ -319,34 +41,15 @@ get_parent_attr(struct udev_device *dev, const char *subsystem, if ((parent = udev_device_get_parent_with_subsystem_devtype(dev, subsystem, devtype)) == NULL || (value = udev_device_get_sysattr_value(parent, attr)) == NULL) - return (NULL); + return NULL; - return (strdup(value)); + return strdup(value); } static char * get_usb_attr(struct udev_device *dev, const char *attr) { - return (get_parent_attr(dev, "usb", "usb_device", attr)); -} - -static int -to_int(const char *str, int base) -{ - char *ep; - long long ll; - - ll = strtoll(str, &ep, base); - if (str == ep || *ep != '\0') - return (-1); - else if (ll == LLONG_MIN && errno == ERANGE) - return (-1); - else if (ll == LLONG_MAX && errno == ERANGE) - return (-1); - else if (ll < 0 || ll > INT_MAX) - return (-1); - - return ((int)ll); + return get_parent_attr(dev, "usb", "usb_device", attr); } static int @@ -357,15 +60,18 @@ copy_info(fido_dev_info_t *di, struct udev *udev, char *str; struct udev_device *dev = NULL; void *ctx = NULL; - int id, ok = -1; + uint64_t id; + int ok = -1; memset(di, 0, sizeof(*di)); if ((name = udev_list_entry_get_name(udev_entry)) == NULL || (dev = udev_device_new_from_syspath(udev, name)) == NULL) goto fail; - if (asprintf(&di->path, "%s/%s", FIDO_NFC_PREFIX, name) == -1) + if (asprintf(&di->path, "%s/%s", FIDO_NFC_PREFIX, name) == -1) { + di->path = NULL; goto fail; + } if ((di->manufacturer = get_usb_attr(dev, "manufacturer")) == NULL) di->manufacturer = strdup(""); if ((di->product = get_usb_attr(dev, "product")) == NULL) @@ -374,11 +80,11 @@ copy_info(fido_dev_info_t *di, struct udev *udev, goto fail; /* XXX assumes USB for vendor/product info */ if ((str = get_usb_attr(dev, "idVendor")) != NULL && - (id = to_int(str, 16)) > 0 && id <= UINT16_MAX) + fido_to_uint64(str, 16, &id) == 0 && id <= UINT16_MAX) di->vendor_id = (int16_t)id; free(str); if ((str = get_usb_attr(dev, "idProduct")) != NULL && - (id = to_int(str, 16)) > 0 && id <= UINT16_MAX) + fido_to_uint64(str, 16, &id) == 0 && id <= UINT16_MAX) di->product_id = (int16_t)id; free(str); @@ -401,7 +107,7 @@ copy_info(fido_dev_info_t *di, struct udev *udev, explicit_bzero(di, sizeof(*di)); } - return (ok); + return ok; } static int @@ -410,21 +116,21 @@ sysnum_from_syspath(const char *path) struct udev *udev = NULL; struct udev_device *dev = NULL; const char *str; - int idx; + uint64_t idx64; + int idx = -1; - if ((udev = udev_new()) == NULL || - (dev = udev_device_new_from_syspath(udev, path)) == NULL || - (str = udev_device_get_sysnum(dev)) == NULL) - idx = -1; - else - idx = to_int(str, 10); + if ((udev = udev_new()) != NULL && + (dev = udev_device_new_from_syspath(udev, path)) != NULL && + (str = udev_device_get_sysnum(dev)) != NULL && + fido_to_uint64(str, 10, &idx64) == 0 && idx64 < INT_MAX) + idx = (int)idx64; if (dev != NULL) udev_device_unref(dev); if (udev != NULL) udev_unref(udev); - return (idx); + return idx; } int @@ -439,10 +145,10 @@ fido_nfc_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) *olen = 0; if (ilen == 0) - return (FIDO_OK); + return FIDO_OK; if (devlist == NULL) - return (FIDO_ERR_INVALID_ARGUMENT); + return FIDO_ERR_INVALID_ARGUMENT; if ((udev = udev_new()) == NULL || (udev_enum = udev_enumerate_new(udev)) == NULL) @@ -481,7 +187,7 @@ fido_nfc_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) if (udev != NULL) udev_unref(udev); - return (r); + return r; } static int @@ -498,17 +204,17 @@ nfc_target_connect(struct nfc_linux *ctx) if ((ctx->fd = socket(AF_NFC, SOCK_SEQPACKET | SOCK_CLOEXEC, NFC_SOCKPROTO_RAW)) == -1) { fido_log_error(errno, "%s: socket", __func__); - return (-1); + return -1; } if (connect(ctx->fd, (struct sockaddr *)&sa, sizeof(sa)) == -1) { fido_log_error(errno, "%s: connect", __func__); if (close(ctx->fd) == -1) fido_log_error(errno, "%s: close", __func__); ctx->fd = -1; - return (-1); + return -1; } - return (0); + return 0; } static void @@ -535,13 +241,13 @@ nfc_new(uint32_t dev) if ((ctx = calloc(1, sizeof(*ctx))) == NULL || (ctx->nl = fido_nl_new()) == NULL) { nfc_free(&ctx); - return (NULL); + return NULL; } ctx->fd = -1; ctx->dev = dev; - return (ctx); + return ctx; } void * @@ -566,10 +272,10 @@ fido_nfc_open(const char *path) goto fail; } - return (ctx); + return ctx; fail: nfc_free(&ctx); - return (NULL); + return NULL; } void @@ -588,7 +294,7 @@ fido_nfc_set_sigmask(void *handle, const fido_sigset_t *sigmask) ctx->sigmask = *sigmask; ctx->sigmaskp = &ctx->sigmask; - return (FIDO_OK); + return FIDO_OK; } int @@ -607,25 +313,25 @@ fido_nfc_read(void *handle, unsigned char *buf, size_t len, int ms) if (fido_hid_unix_wait(ctx->fd, ms, ctx->sigmaskp) < 0) { fido_log_debug("%s: fido_hid_unix_wait", __func__); - return (-1); + return -1; } if ((r = readv(ctx->fd, iov, nitems(iov))) == -1) { fido_log_error(errno, "%s: read", __func__); - return (-1); + return -1; } if (r < 1) { fido_log_debug("%s: %zd < 1", __func__, r); - return (-1); + return -1; } if (preamble != 0x00) { fido_log_debug("%s: preamble", __func__); - return (-1); + return -1; } r--; fido_log_xxd(buf, (size_t)r, "%s", __func__); - return ((int)r); + return (int)r; } int @@ -638,16 +344,16 @@ fido_nfc_write(void *handle, const unsigned char *buf, size_t len) if (len > INT_MAX) { fido_log_debug("%s: len", __func__); - return (-1); + return -1; } if ((r = write(ctx->fd, buf, len)) == -1) { fido_log_error(errno, "%s: write", __func__); - return (-1); + return -1; } if (r < 0 || (size_t)r != len) { fido_log_debug("%s: %zd != %zu", __func__, r, len); - return (-1); + return -1; } - return ((int)r); + return (int)r; } diff --git a/src/pcsc.c b/src/pcsc.c new file mode 100644 index 000000000000..c02251e9bfe1 --- /dev/null +++ b/src/pcsc.c @@ -0,0 +1,389 @@ +/* + * Copyright (c) 2022 Micro Focus or one of its affiliates. + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#if __APPLE__ +#include <PCSC/wintypes.h> +#include <PCSC/winscard.h> +#else +#include <winscard.h> +#endif /* __APPLE__ */ + +#include <errno.h> + +#include "fido.h" +#include "fido/param.h" +#include "iso7816.h" + +#if defined(_WIN32) && !defined(__MINGW32__) +#define SCardConnect SCardConnectA +#define SCardListReaders SCardListReadersA +#endif + +#ifndef SCARD_PROTOCOL_Tx +#define SCARD_PROTOCOL_Tx SCARD_PROTOCOL_ANY +#endif + +#define BUFSIZE 1024 /* in bytes; passed to SCardListReaders() */ +#define APDULEN 264 /* 261 rounded up to the nearest multiple of 8 */ +#define READERS 8 /* maximum number of readers */ + +struct pcsc { + SCARDCONTEXT ctx; + SCARDHANDLE h; + SCARD_IO_REQUEST req; + uint8_t rx_buf[APDULEN]; + size_t rx_len; +}; + +static LONG +list_readers(SCARDCONTEXT ctx, char **buf) +{ + LONG s; + DWORD len; + + len = BUFSIZE; + if ((*buf = calloc(1, len)) == NULL) + goto fail; + if ((s = SCardListReaders(ctx, NULL, *buf, &len)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardListReaders 0x%lx", __func__, (long)s); + goto fail; + } + /* sanity check "multi-string" */ + if (len > BUFSIZE || len < 2) { + fido_log_debug("%s: bogus len=%u", __func__, (unsigned)len); + goto fail; + } + if ((*buf)[len - 1] != 0 || (*buf)[len - 2] != '\0') { + fido_log_debug("%s: bogus buf", __func__); + goto fail; + } + return (LONG)SCARD_S_SUCCESS; +fail: + free(*buf); + *buf = NULL; + + return (LONG)SCARD_E_NO_READERS_AVAILABLE; +} + +static char * +get_reader(SCARDCONTEXT ctx, const char *path) +{ + char *reader = NULL, *buf = NULL; + const char prefix[] = FIDO_PCSC_PREFIX "//slot"; + uint64_t n; + + if (path == NULL) + goto out; + if (strncmp(path, prefix, strlen(prefix)) != 0 || + fido_to_uint64(path + strlen(prefix), 10, &n) < 0 || + n > READERS - 1) { + fido_log_debug("%s: invalid path %s", __func__, path); + goto out; + } + if (list_readers(ctx, &buf) != SCARD_S_SUCCESS) { + fido_log_debug("%s: list_readers", __func__); + goto out; + } + for (const char *name = buf; *name != 0; name += strlen(name) + 1) { + if (n == 0) { + reader = strdup(name); + goto out; + } + n--; + } + fido_log_debug("%s: failed to find reader %s", __func__, path); +out: + free(buf); + + return reader; +} + +static int +prepare_io_request(DWORD prot, SCARD_IO_REQUEST *req) +{ + switch (prot) { + case SCARD_PROTOCOL_T0: + req->dwProtocol = SCARD_PCI_T0->dwProtocol; + req->cbPciLength = SCARD_PCI_T0->cbPciLength; + break; + case SCARD_PROTOCOL_T1: + req->dwProtocol = SCARD_PCI_T1->dwProtocol; + req->cbPciLength = SCARD_PCI_T1->cbPciLength; + break; + default: + fido_log_debug("%s: unknown protocol %lu", __func__, + (u_long)prot); + return -1; + } + + return 0; +} + +static int +copy_info(fido_dev_info_t *di, SCARDCONTEXT ctx, const char *reader, size_t idx) +{ + SCARDHANDLE h = 0; + SCARD_IO_REQUEST req; + DWORD prot = 0; + LONG s; + int ok = -1; + + memset(di, 0, sizeof(*di)); + memset(&req, 0, sizeof(req)); + + if ((s = SCardConnect(ctx, reader, SCARD_SHARE_SHARED, + SCARD_PROTOCOL_Tx, &h, &prot)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardConnect 0x%lx", __func__, (long)s); + goto fail; + } + if (prepare_io_request(prot, &req) < 0) { + fido_log_debug("%s: prepare_io_request", __func__); + goto fail; + } + if (asprintf(&di->path, "%s//slot%zu", FIDO_PCSC_PREFIX, idx) == -1) { + di->path = NULL; + fido_log_debug("%s: asprintf", __func__); + goto fail; + } + if ((di->manufacturer = strdup("PC/SC")) == NULL || + (di->product = strdup(reader)) == NULL) + goto fail; + + ok = 0; +fail: + if (h != 0) + SCardDisconnect(h, SCARD_LEAVE_CARD); + if (ok < 0) { + free(di->path); + free(di->manufacturer); + free(di->product); + explicit_bzero(di, sizeof(*di)); + } + + return ok; +} + +int +fido_pcsc_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) +{ + SCARDCONTEXT ctx = 0; + char *buf = NULL; + LONG s; + size_t idx = 0; + int r = FIDO_ERR_INTERNAL; + + *olen = 0; + + if (ilen == 0) + return FIDO_OK; + if (devlist == NULL) + return FIDO_ERR_INVALID_ARGUMENT; + + if ((s = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, + &ctx)) != SCARD_S_SUCCESS || ctx == 0) { + fido_log_debug("%s: SCardEstablishContext 0x%lx", __func__, + (long)s); + if (s == (LONG)SCARD_E_NO_SERVICE || + s == (LONG)SCARD_E_NO_SMARTCARD) + r = FIDO_OK; /* suppress error */ + goto out; + } + if ((s = list_readers(ctx, &buf)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: list_readers 0x%lx", __func__, (long)s); + if (s == (LONG)SCARD_E_NO_READERS_AVAILABLE) + r = FIDO_OK; /* suppress error */ + goto out; + } + + for (const char *name = buf; *name != 0; name += strlen(name) + 1) { + if (idx == READERS) { + fido_log_debug("%s: stopping at %zu readers", __func__, + idx); + r = FIDO_OK; + goto out; + } + if (copy_info(&devlist[*olen], ctx, name, idx++) == 0) { + devlist[*olen].io = (fido_dev_io_t) { + fido_pcsc_open, + fido_pcsc_close, + fido_pcsc_read, + fido_pcsc_write, + }; + devlist[*olen].transport = (fido_dev_transport_t) { + fido_pcsc_rx, + fido_pcsc_tx, + }; + if (++(*olen) == ilen) + break; + } + } + + r = FIDO_OK; +out: + free(buf); + if (ctx != 0) + SCardReleaseContext(ctx); + + return r; +} + +void * +fido_pcsc_open(const char *path) +{ + char *reader = NULL; + struct pcsc *dev = NULL; + SCARDCONTEXT ctx = 0; + SCARDHANDLE h = 0; + SCARD_IO_REQUEST req; + DWORD prot = 0; + LONG s; + + memset(&req, 0, sizeof(req)); + + if ((s = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, + &ctx)) != SCARD_S_SUCCESS || ctx == 0) { + fido_log_debug("%s: SCardEstablishContext 0x%lx", __func__, + (long)s); + goto fail; + + } + if ((reader = get_reader(ctx, path)) == NULL) { + fido_log_debug("%s: get_reader(%s)", __func__, path); + goto fail; + } + if ((s = SCardConnect(ctx, reader, SCARD_SHARE_SHARED, + SCARD_PROTOCOL_Tx, &h, &prot)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardConnect 0x%lx", __func__, (long)s); + goto fail; + } + if (prepare_io_request(prot, &req) < 0) { + fido_log_debug("%s: prepare_io_request", __func__); + goto fail; + } + if ((dev = calloc(1, sizeof(*dev))) == NULL) + goto fail; + + dev->ctx = ctx; + dev->h = h; + dev->req = req; + ctx = 0; + h = 0; +fail: + if (h != 0) + SCardDisconnect(h, SCARD_LEAVE_CARD); + if (ctx != 0) + SCardReleaseContext(ctx); + free(reader); + + return dev; +} + +void +fido_pcsc_close(void *handle) +{ + struct pcsc *dev = handle; + + if (dev->h != 0) + SCardDisconnect(dev->h, SCARD_LEAVE_CARD); + if (dev->ctx != 0) + SCardReleaseContext(dev->ctx); + + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + free(dev); +} + +int +fido_pcsc_read(void *handle, unsigned char *buf, size_t len, int ms) +{ + struct pcsc *dev = handle; + int r; + + (void)ms; + if (dev->rx_len == 0 || dev->rx_len > len || + dev->rx_len > sizeof(dev->rx_buf)) { + fido_log_debug("%s: rx_len", __func__); + return -1; + } + fido_log_xxd(dev->rx_buf, dev->rx_len, "%s: reading", __func__); + memcpy(buf, dev->rx_buf, dev->rx_len); + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + r = (int)dev->rx_len; + dev->rx_len = 0; + + return r; +} + +int +fido_pcsc_write(void *handle, const unsigned char *buf, size_t len) +{ + struct pcsc *dev = handle; + DWORD n; + LONG s; + + if (len > INT_MAX) { + fido_log_debug("%s: len", __func__); + return -1; + } + + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + dev->rx_len = 0; + n = (DWORD)sizeof(dev->rx_buf); + + fido_log_xxd(buf, len, "%s: writing", __func__); + + if ((s = SCardTransmit(dev->h, &dev->req, buf, (DWORD)len, NULL, + dev->rx_buf, &n)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardTransmit 0x%lx", __func__, (long)s); + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + return -1; + } + dev->rx_len = (size_t)n; + + fido_log_xxd(dev->rx_buf, dev->rx_len, "%s: read", __func__); + + return (int)len; +} + +int +fido_pcsc_tx(fido_dev_t *d, uint8_t cmd, const u_char *buf, size_t count) +{ + return fido_nfc_tx(d, cmd, buf, count); +} + +int +fido_pcsc_rx(fido_dev_t *d, uint8_t cmd, u_char *buf, size_t count, int ms) +{ + return fido_nfc_rx(d, cmd, buf, count, ms); +} + +bool +fido_is_pcsc(const char *path) +{ + return strncmp(path, FIDO_PCSC_PREFIX, strlen(FIDO_PCSC_PREFIX)) == 0; +} + +int +fido_dev_set_pcsc(fido_dev_t *d) +{ + if (d->io_handle != NULL) { + fido_log_debug("%s: device open", __func__); + return -1; + } + d->io_own = true; + d->io = (fido_dev_io_t) { + fido_pcsc_open, + fido_pcsc_close, + fido_pcsc_read, + fido_pcsc_write, + }; + d->transport = (fido_dev_transport_t) { + fido_pcsc_rx, + fido_pcsc_tx, + }; + + return 0; +} diff --git a/src/rs1.c b/src/rs1.c index 37aa9f073bed..134068b16747 100644 --- a/src/rs1.c +++ b/src/rs1.c @@ -9,7 +9,7 @@ #include "fido.h" -#if defined(LIBRESSL_VERSION_NUMBER) +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3050200fL static EVP_MD * rs1_get_EVP_MD(void) { diff --git a/src/rs256.c b/src/rs256.c index 29fcedbdee20..95bae167a177 100644 --- a/src/rs256.c +++ b/src/rs256.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -11,7 +11,13 @@ #include "fido.h" #include "fido/rs256.h" -#if defined(LIBRESSL_VERSION_NUMBER) +#if OPENSSL_VERSION_NUMBER >= 0x30000000 +#define get0_RSA(x) EVP_PKEY_get0_RSA((x)) +#else +#define get0_RSA(x) EVP_PKEY_get0((x)) +#endif + +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3050200fL static EVP_MD * rs256_get_EVP_MD(void) { @@ -128,11 +134,20 @@ rs256_pk_free(rs256_pk_t **pkp) int rs256_pk_from_ptr(rs256_pk_t *pk, const void *ptr, size_t len) { + EVP_PKEY *pkey; + if (len < sizeof(*pk)) return (FIDO_ERR_INVALID_ARGUMENT); memcpy(pk, ptr, sizeof(*pk)); + if ((pkey = rs256_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: rs256_pk_to_EVP_PKEY", __func__); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + return (FIDO_OK); } @@ -163,6 +178,11 @@ rs256_pk_to_EVP_PKEY(const rs256_pk_t *k) n = NULL; e = NULL; + if (RSA_bits(rsa) != 2048) { + fido_log_debug("%s: invalid key length", __func__); + goto fail; + } + if ((pkey = EVP_PKEY_new()) == NULL || EVP_PKEY_assign_RSA(pkey, rsa) == 0) { fido_log_debug("%s: EVP_PKEY_assign_RSA", __func__); @@ -225,10 +245,10 @@ rs256_pk_from_RSA(rs256_pk_t *pk, const RSA *rsa) int rs256_pk_from_EVP_PKEY(rs256_pk_t *pk, const EVP_PKEY *pkey) { - RSA *rsa; + const RSA *rsa; if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA || - (rsa = EVP_PKEY_get0(pkey)) == NULL) + (rsa = get0_RSA(pkey)) == NULL) return (FIDO_ERR_INVALID_ARGUMENT); return (rs256_pk_from_RSA(pk, rsa)); diff --git a/src/touch.c b/src/touch.c new file mode 100644 index 000000000000..66b1c3478c0a --- /dev/null +++ b/src/touch.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#include <openssl/sha.h> +#include "fido.h" + +int +fido_dev_get_touch_begin(fido_dev_t *dev) +{ + fido_blob_t f; + cbor_item_t *argv[9]; + const char *clientdata = FIDO_DUMMY_CLIENTDATA; + const uint8_t user_id = FIDO_DUMMY_USER_ID; + unsigned char cdh[SHA256_DIGEST_LENGTH]; + fido_rp_t rp; + fido_user_t user; + int ms = dev->timeout_ms; + int r = FIDO_ERR_INTERNAL; + + memset(&f, 0, sizeof(f)); + memset(argv, 0, sizeof(argv)); + memset(cdh, 0, sizeof(cdh)); + memset(&rp, 0, sizeof(rp)); + memset(&user, 0, sizeof(user)); + + if (fido_dev_is_fido2(dev) == false) + return (u2f_get_touch_begin(dev, &ms)); + + if (SHA256((const void *)clientdata, strlen(clientdata), cdh) != cdh) { + fido_log_debug("%s: sha256", __func__); + return (FIDO_ERR_INTERNAL); + } + + if ((rp.id = strdup(FIDO_DUMMY_RP_ID)) == NULL || + (user.name = strdup(FIDO_DUMMY_USER_NAME)) == NULL) { + fido_log_debug("%s: strdup", __func__); + goto fail; + } + + if (fido_blob_set(&user.id, &user_id, sizeof(user_id)) < 0) { + fido_log_debug("%s: fido_blob_set", __func__); + goto fail; + } + + if ((argv[0] = cbor_build_bytestring(cdh, sizeof(cdh))) == NULL || + (argv[1] = cbor_encode_rp_entity(&rp)) == NULL || + (argv[2] = cbor_encode_user_entity(&user)) == NULL || + (argv[3] = cbor_encode_pubkey_param(COSE_ES256)) == NULL) { + fido_log_debug("%s: cbor encode", __func__); + goto fail; + } + + if (fido_dev_supports_pin(dev)) { + if ((argv[7] = cbor_new_definite_bytestring()) == NULL || + (argv[8] = cbor_encode_pin_opt(dev)) == NULL) { + fido_log_debug("%s: cbor encode", __func__); + goto fail; + } + } + + if (cbor_build_frame(CTAP_CBOR_MAKECRED, argv, nitems(argv), &f) < 0 || + fido_tx(dev, CTAP_CMD_CBOR, f.ptr, f.len, &ms) < 0) { + fido_log_debug("%s: fido_tx", __func__); + r = FIDO_ERR_TX; + goto fail; + } + + r = FIDO_OK; +fail: + cbor_vector_free(argv, nitems(argv)); + free(f.ptr); + free(rp.id); + free(user.name); + free(user.id.ptr); + + return (r); +} + +int +fido_dev_get_touch_status(fido_dev_t *dev, int *touched, int ms) +{ + int r; + + *touched = 0; + + if (fido_dev_is_fido2(dev) == false) + return (u2f_get_touch_status(dev, touched, &ms)); + + switch ((r = fido_rx_cbor_status(dev, &ms))) { + case FIDO_ERR_PIN_AUTH_INVALID: + case FIDO_ERR_PIN_INVALID: + case FIDO_ERR_PIN_NOT_SET: + case FIDO_ERR_SUCCESS: + *touched = 1; + break; + case FIDO_ERR_RX: + /* ignore */ + break; + default: + fido_log_debug("%s: fido_rx_cbor_status", __func__); + return (r); + } + + return (FIDO_OK); +} diff --git a/src/util.c b/src/util.c new file mode 100644 index 000000000000..61e120cfd06c --- /dev/null +++ b/src/util.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#include <errno.h> +#include <stdint.h> +#include <stdlib.h> + +#include "fido.h" + +int +fido_to_uint64(const char *str, int base, uint64_t *out) +{ + char *ep; + unsigned long long ull; + + errno = 0; + ull = strtoull(str, &ep, base); + if (str == ep || *ep != '\0') + return -1; + else if (ull == ULLONG_MAX && errno == ERANGE) + return -1; + else if (ull > UINT64_MAX) + return -1; + *out = (uint64_t)ull; + + return 0; +} diff --git a/src/webauthn.h b/src/webauthn.h index 22bf6e346a73..e64236a0f6fe 100644 --- a/src/webauthn.h +++ b/src/webauthn.h @@ -92,6 +92,9 @@ extern "C" { // - WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS : 5 // - WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS : 6 // - WEBAUTHN_ASSERTION : 3 +// APIs: +// - WebAuthNGetPlatformCredentialList +// - WebAuthNFreePlatformCredentialList // #define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_4 @@ -282,12 +285,65 @@ typedef struct _WEBAUTHN_CREDENTIAL_LIST { } WEBAUTHN_CREDENTIAL_LIST, *PWEBAUTHN_CREDENTIAL_LIST; typedef const WEBAUTHN_CREDENTIAL_LIST *PCWEBAUTHN_CREDENTIAL_LIST; +//+------------------------------------------------------------------------------------------ +// Credential Information for WebAuthNGetPlatformCredentialList API +//------------------------------------------------------------------------------------------- + +#define WEBAUTHN_CREDENTIAL_DETAILS_VERSION_1 1 +#define WEBAUTHN_CREDENTIAL_DETAILS_CURRENT_VERSION WEBAUTHN_CREDENTIAL_DETAILS_VERSION_1 + +typedef struct _WEBAUTHN_CREDENTIAL_DETAILS { + // Version of this structure, to allow for modifications in the future. + DWORD dwVersion; + + // Size of pbCredentialID. + DWORD cbCredentialID; + _Field_size_bytes_(cbCredentialID) + PBYTE pbCredentialID; + + // RP Info + PWEBAUTHN_RP_ENTITY_INFORMATION pRpInformation; + + // User Info + PWEBAUTHN_USER_ENTITY_INFORMATION pUserInformation; +} WEBAUTHN_CREDENTIAL_DETAILS, *PWEBAUTHN_CREDENTIAL_DETAILS; +typedef const WEBAUTHN_CREDENTIAL_DETAILS *PCWEBAUTHN_CREDENTIAL_DETAILS; + +typedef struct _WEBAUTHN_CREDENTIAL_DETAILS_LIST { + DWORD cCredentialDetails; + _Field_size_(cCredentialDetails) + PWEBAUTHN_CREDENTIAL_DETAILS *ppCredentialDetails; +} WEBAUTHN_CREDENTIAL_DETAILS_LIST, *PWEBAUTHN_CREDENTIAL_DETAILS_LIST; +typedef const WEBAUTHN_CREDENTIAL_DETAILS_LIST *PCWEBAUTHN_CREDENTIAL_DETAILS_LIST; + +#define WEBAUTHN_GET_CREDENTIALS_OPTIONS_VERSION_1 1 +#define WEBAUTHN_GET_CREDENTIALS_OPTIONS_CURRENT_VERSION WEBAUTHN_GET_CREDENTIALS_OPTIONS_VERSION_1 + +typedef struct _WEBAUTHN_GET_CREDENTIALS_OPTIONS { + // Version of this structure, to allow for modifications in the future. + DWORD dwVersion; + + // RPID + LPCWSTR pwszRpId; + + // Optional. BrowserInPrivate Mode. Defaulting to FALSE. + BOOL bBrowserInPrivateMode; +} WEBAUTHN_GET_CREDENTIALS_OPTIONS, *PWEBAUTHN_GET_CREDENTIALS_OPTIONS; +typedef const WEBAUTHN_GET_CREDENTIALS_OPTIONS *PCWEBAUTHN_GET_CREDENTIALS_OPTIONS; + //+------------------------------------------------------------------------------------------ // PRF values. //------------------------------------------------------------------------------------------- #define WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH 32 +// SALT values below by default are converted into RAW Hmac-Secret values as per PRF extension. +// - SHA-256(UTF8Encode("WebAuthn PRF") || 0x00 || Value) +// +// Set WEBAUTHN_CTAP_HMAC_SECRET_VALUES_FLAG in dwFlags in WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, +// if caller wants to provide RAW Hmac-Secret SALT values directly. In that case, +// values if provided MUST be of WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH size. + typedef struct _WEBAUTHN_HMAC_SECRET_SALT { // Size of pbFirst. DWORD cbFirst; @@ -545,6 +601,12 @@ typedef const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS *PCWEBAUTHN_AUTHENT #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6 6 #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6 +/* + Information about flags. +*/ + +#define WEBAUTHN_AUTHENTICATOR_HMAC_SECRET_VALUES_FLAG 0x00100000 + typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { // Version of this structure, to allow for modifications in the future. DWORD dwVersion; @@ -565,7 +627,7 @@ typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { // User Verification Requirement. DWORD dwUserVerificationRequirement; - // Reserved for future Use + // Flags DWORD dwFlags; // @@ -879,6 +941,17 @@ WINAPI WebAuthNCancelCurrentOperation( _In_ const GUID* pCancellationId); +HRESULT +WINAPI +WebAuthNGetPlatformCredentialList( + _In_ PCWEBAUTHN_GET_CREDENTIALS_OPTIONS pGetCredentialsOptions, + _Outptr_result_maybenull_ PWEBAUTHN_CREDENTIAL_DETAILS_LIST *ppCredentialDetailsList); + +void +WINAPI +WebAuthNFreePlatformCredentialList( + _In_ PWEBAUTHN_CREDENTIAL_DETAILS_LIST pCredentialDetailsList); + // // Returns the following Error Names: // L"Success" - S_OK diff --git a/src/winhello.c b/src/winhello.c index 9de6c6c9b983..f9ab6061fd60 100644 --- a/src/winhello.c +++ b/src/winhello.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Yubico AB. All rights reserved. + * Copyright (c) 2021-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ @@ -427,6 +427,42 @@ pack_cred_ext(WEBAUTHN_EXTENSIONS *out, const fido_cred_ext_t *in) return 0; } +static int +pack_assert_ext(WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS *out, + const fido_assert_ext_t *in) +{ + WEBAUTHN_HMAC_SECRET_SALT_VALUES *v; + WEBAUTHN_HMAC_SECRET_SALT *s; + + if (in->mask == 0) { + return 0; /* nothing to do */ + } + if (in->mask != FIDO_EXT_HMAC_SECRET) { + fido_log_debug("%s: mask 0x%x", __func__, in->mask); + return -1; + } + if (in->hmac_salt.ptr == NULL || + in->hmac_salt.len != WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH) { + fido_log_debug("%s: salt %p/%zu", __func__, + (const void *)in->hmac_salt.ptr, in->hmac_salt.len); + return -1; + } + if ((v = calloc(1, sizeof(*v))) == NULL || + (s = calloc(1, sizeof(*s))) == NULL) { + free(v); + fido_log_debug("%s: calloc", __func__); + return -1; + } + s->cbFirst = (DWORD)in->hmac_salt.len; + s->pbFirst = in->hmac_salt.ptr; + v->pGlobalHmacSalt = s; + out->pHmacSecretSaltValues = v; + out->dwFlags |= WEBAUTHN_AUTHENTICATOR_HMAC_SECRET_VALUES_FLAG; + out->dwVersion = WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6; + + return 0; +} + static int unpack_assert_authdata(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) { @@ -499,6 +535,39 @@ unpack_user_id(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) return 0; } +static int +unpack_hmac_secret(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) +{ + if (wa->dwVersion != WEBAUTHN_ASSERTION_VERSION_3) { + fido_log_debug("%s: dwVersion %u", __func__, + (unsigned)wa->dwVersion); + return 0; /* proceed without hmac-secret */ + } + if (wa->pHmacSecret == NULL || + wa->pHmacSecret->cbFirst == 0 || + wa->pHmacSecret->cbFirst > SIZE_MAX || + wa->pHmacSecret->pbFirst == NULL) { + fido_log_debug("%s: hmac-secret absent", __func__); + return 0; /* proceed without hmac-secret */ + } + if (wa->pHmacSecret->cbSecond != 0 || + wa->pHmacSecret->pbSecond != NULL) { + fido_log_debug("%s: 64-byte hmac-secret", __func__); + return 0; /* proceed without hmac-secret */ + } + if (!fido_blob_is_empty(&assert->stmt[0].hmac_secret)) { + fido_log_debug("%s: fido_blob_is_empty", __func__); + return -1; + } + if (fido_blob_set(&assert->stmt[0].hmac_secret, + wa->pHmacSecret->pbFirst, (size_t)wa->pHmacSecret->cbFirst) < 0) { + fido_log_debug("%s: fido_blob_set", __func__); + return -1; + } + + return 0; +} + static int translate_fido_assert(struct winhello_assert *ctx, const fido_assert_t *assert, const char *pin, int ms) @@ -510,11 +579,6 @@ translate_fido_assert(struct winhello_assert *ctx, const fido_assert_t *assert, fido_log_debug("%s: up %d", __func__, assert->up); return FIDO_ERR_UNSUPPORTED_OPTION; } - /* not implemented */ - if (assert->ext.mask) { - fido_log_debug("%s: ext 0x%x", __func__, assert->ext.mask); - return FIDO_ERR_UNSUPPORTED_EXTENSION; - } if ((ctx->rp_id = to_utf16(assert->rp_id)) == NULL) { fido_log_debug("%s: rp_id", __func__); return FIDO_ERR_INTERNAL; @@ -531,6 +595,10 @@ translate_fido_assert(struct winhello_assert *ctx, const fido_assert_t *assert, fido_log_debug("%s: pack_credlist", __func__); return FIDO_ERR_INTERNAL; } + if (pack_assert_ext(opt, &assert->ext) < 0) { + fido_log_debug("%s: pack_assert_ext", __func__); + return FIDO_ERR_UNSUPPORTED_EXTENSION; + } if (set_assert_uv(&opt->dwUserVerificationRequirement, assert->uv, pin) < 0) { fido_log_debug("%s: set_assert_uv", __func__); @@ -570,6 +638,11 @@ translate_winhello_assert(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) fido_log_debug("%s: unpack_user_id", __func__); return FIDO_ERR_INTERNAL; } + if (assert->ext.mask & FIDO_EXT_HMAC_SECRET && + unpack_hmac_secret(assert, wa) < 0) { + fido_log_debug("%s: unpack_hmac_secret", __func__); + return FIDO_ERR_INTERNAL; + } return FIDO_OK; } @@ -742,6 +815,9 @@ winhello_assert_free(struct winhello_assert *ctx) free(ctx->rp_id); free(ctx->opt.CredentialList.pCredentials); + if (ctx->opt.pHmacSecretSaltValues != NULL) + free(ctx->opt.pHmacSecretSaltValues->pGlobalHmacSalt); + free(ctx->opt.pHmacSecretSaltValues); free(ctx); } @@ -883,7 +959,7 @@ fido_winhello_get_cbor_info(fido_dev_t *dev, fido_cbor_info_t *ci) const char *v[3] = { "U2F_V2", "FIDO_2_0", "FIDO_2_1_PRE" }; const char *e[2] = { "credProtect", "hmac-secret" }; const char *t[2] = { "nfc", "usb" }; - const char *o[4] = { "rk", "up", "plat", "clientPin" }; + const char *o[4] = { "rk", "up", "uv", "plat" }; (void)dev; diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index f37aa1d87c97..c81397f41fb9 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -65,13 +65,6 @@ add_executable(fido2-token ${COMPAT_SOURCES} ) -# set the library to link against -if(BUILD_SHARED_LIBS) - set(_FIDO2_LIBRARY fido2_shared) -else() - set(_FIDO2_LIBRARY fido2) -endif() - target_link_libraries(fido2-cred ${CRYPTO_LIBRARIES} ${_FIDO2_LIBRARY}) target_link_libraries(fido2-assert ${CRYPTO_LIBRARIES} ${_FIDO2_LIBRARY}) target_link_libraries(fido2-token ${CRYPTO_LIBRARIES} ${_FIDO2_LIBRARY}) diff --git a/tools/token.c b/tools/token.c index 3d165623fdbf..9124e7b7fd29 100644 --- a/tools/token.c +++ b/tools/token.c @@ -155,6 +155,12 @@ print_maxcredidlen(uint64_t maxcredidlen) printf("maxcredlen: %d\n", (int)maxcredidlen); } +static void +print_maxlargeblob(uint64_t maxlargeblob) +{ + printf("maxlargeblob: %d\n", (int)maxlargeblob); +} + static void print_fwversion(uint64_t fwversion) { @@ -259,6 +265,9 @@ token_info(int argc, char **argv, char *path) /* print maximum length of a credential ID */ print_maxcredidlen(fido_cbor_info_maxcredidlen(ci)); + /* print maximum length of serialized largeBlob array */ + print_maxlargeblob(fido_cbor_info_maxlargeblob(ci)); + /* print firmware version */ print_fwversion(fido_cbor_info_fwversion(ci)); diff --git a/udev/70-u2f.rules b/udev/70-u2f.rules index 0dfc3e276c7a..6e1f88bbd042 100644 --- a/udev/70-u2f.rules +++ b/udev/70-u2f.rules @@ -106,6 +106,9 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct # SatoshiLabs TREZOR by pid.codes KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", TAG+="uaccess", GROUP="plugdev", MODE="0660" +# SoloKeys v2 by pid.codes +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="beee", TAG+="uaccess", GROUP="plugdev", MODE="0660" + # Google Titan U2F by Google Inc. KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5026", TAG+="uaccess", GROUP="plugdev", MODE="0660" diff --git a/udev/fidodevs b/udev/fidodevs index cea60a0be9fb..d519acd2ca73 100644 --- a/udev/fidodevs +++ b/udev/fidodevs @@ -72,6 +72,7 @@ product SILICON 0x8acf U2F Zero product PIDCODES 0x5070 SoloKeys SoloHacker product PIDCODES 0x50b0 SoloKeys SoloBoot product PIDCODES 0x53c1 SatoshiLabs TREZOR +product PIDCODES 0xbeee SoloKeys v2 product GOOGLE 0x5026 Google Titan U2F diff --git a/windows/build.ps1 b/windows/build.ps1 index 56302444c80b..bd63c7f21095 100644 --- a/windows/build.ps1 +++ b/windows/build.ps1 @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Yubico AB. All rights reserved. +# Copyright (c) 2021-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. @@ -187,17 +187,15 @@ try { & $CMake --build . --config ${Config} --verbose; ExitOnError & $CMake --build . --config ${Config} --target install --verbose; ` ExitOnError - # Patch up zlib's resulting names when built with --config Debug. - if ("${Config}" -eq "Debug") { - if ("${Type}" -eq "Dynamic") { - Copy-Item "${PREFIX}/lib/zlibd.lib" ` - -Destination "${PREFIX}/lib/zlib.lib" -Force - Copy-Item "${PREFIX}/bin/zlibd1.dll" ` - -Destination "${PREFIX}/bin/zlib1.dll" -Force - } else { - Copy-Item "${PREFIX}/lib/zlibstaticd.lib" ` - -Destination "${PREFIX}/lib/zlib.lib" -Force - } + # Patch up zlib's various names. + if ("${Type}" -eq "Dynamic") { + ((Get-ChildItem -Path "${PREFIX}/lib") -Match "zlib[d]?.lib") | + Copy-Item -Destination "${PREFIX}/lib/zlib1.lib" -Force + ((Get-ChildItem -Path "${PREFIX}/bin") -Match "zlibd1.dll") | + Copy-Item -Destination "${PREFIX}/bin/zlib1.dll" -Force + } else { + ((Get-ChildItem -Path "${PREFIX}/lib") -Match "zlibstatic[d]?.lib") | + Copy-item -Destination "${PREFIX}/lib/zlib1.lib" -Force } } catch { throw "Failed to build zlib" @@ -225,11 +223,13 @@ try { -DCMAKE_INSTALL_PREFIX="${PREFIX}" "${CMAKE_SYSTEM_VERSION}"; ` ExitOnError & $CMake --build . --config ${Config} --verbose; ExitOnError + & $CMake --build . --config ${Config} --target regress --verbose; ` + ExitOnError & $CMake --build . --config ${Config} --target install --verbose; ` ExitOnError # Copy DLLs. if ("${SHARED}" -eq "ON") { - "cbor.dll", "crypto-47.dll", "zlib1.dll" | ` + "cbor.dll", "crypto-49.dll", "zlib1.dll" | ` %{ Copy-Item "${PREFIX}\bin\$_" ` -Destination "examples\${Config}" } } diff --git a/windows/const.ps1 b/windows/const.ps1 index 4aac8bb2853e..8acc2b2e829a 100644 --- a/windows/const.ps1 +++ b/windows/const.ps1 @@ -6,7 +6,7 @@ New-Variable -Name 'LIBRESSL_URL' ` -Value 'https://fastly.cdn.openbsd.org/pub/OpenBSD/LibreSSL' ` -Option Constant -New-Variable -Name 'LIBRESSL' -Value 'libressl-3.4.2' -Option Constant +New-Variable -Name 'LIBRESSL' -Value 'libressl-3.5.2' -Option Constant # libcbor coordinates. New-Variable -Name 'LIBCBOR' -Value 'libcbor-0.9.0' -Option Constant @@ -15,8 +15,8 @@ New-Variable -Name 'LIBCBOR_GIT' -Value 'https://github.com/pjk/libcbor' ` -Option Constant # zlib coordinates. -New-Variable -Name 'ZLIB' -Value 'zlib-1.2.11' -Option Constant -New-Variable -Name 'ZLIB_BRANCH' -Value 'v1.2.11' -Option Constant +New-Variable -Name 'ZLIB' -Value 'zlib-1.2.12' -Option Constant +New-Variable -Name 'ZLIB_BRANCH' -Value 'v1.2.12' -Option Constant New-Variable -Name 'ZLIB_GIT' -Value 'https://github.com/madler/zlib' ` -Option Constant diff --git a/windows/cygwin.ps1 b/windows/cygwin.ps1 index aada60b6f06f..6e602b6d9474 100755 --- a/windows/cygwin.ps1 +++ b/windows/cygwin.ps1 @@ -66,3 +66,4 @@ Start-Process "${Cygwin}\${Setup}" -Wait -NoNewWindow ` $Env:PATH = "${Root}\bin\;" + $Env:PATH cmake "-DCMAKE_BUILD_TYPE=${Config}" -B "build-${Config}" make -C "build-${Config}" +make -C "build-${Config}" regress diff --git a/windows/release.ps1 b/windows/release.ps1 index 9221bcaa3413..6f3f4e9600df 100644 --- a/windows/release.ps1 +++ b/windows/release.ps1 @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Yubico AB. All rights reserved. +# Copyright (c) 2021-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. @@ -7,7 +7,7 @@ $Architectures = @('x64', 'Win32', 'ARM64', 'ARM') $InstallPrefixes = @('Win64', 'Win32', 'ARM64', 'ARM') $Types = @('dynamic', 'static') $Config = 'Release' -$LibCrypto = '47' +$LibCrypto = '49' $SDK = '143' . "$PSScriptRoot\const.ps1" @@ -34,7 +34,7 @@ Function Package-Dynamic(${SRC}, ${DEST}) { Copy-Item "${SRC}\bin\cbor.dll" "${DEST}" Copy-Item "${SRC}\lib\cbor.lib" "${DEST}" Copy-Item "${SRC}\bin\zlib1.dll" "${DEST}" - Copy-Item "${SRC}\lib\zlib.lib" "${DEST}" + Copy-Item "${SRC}\lib\zlib1.lib" "${DEST}" Copy-Item "${SRC}\bin\crypto-${LibCrypto}.dll" "${DEST}" Copy-Item "${SRC}\lib\crypto-${LibCrypto}.lib" "${DEST}" Copy-Item "${SRC}\bin\fido2.dll" "${DEST}" @@ -43,7 +43,7 @@ Function Package-Dynamic(${SRC}, ${DEST}) { Function Package-Static(${SRC}, ${DEST}) { Copy-Item "${SRC}/lib/cbor.lib" "${DEST}" - Copy-Item "${SRC}/lib/zlib.lib" "${DEST}" + Copy-Item "${SRC}/lib/zlib1.lib" "${DEST}" Copy-Item "${SRC}/lib/crypto-${LibCrypto}.lib" "${DEST}" Copy-Item "${SRC}/lib/fido2_static.lib" "${DEST}/fido2.lib" } @@ -54,19 +54,19 @@ Function Package-PDBs(${SRC}, ${DEST}) { Copy-Item "${SRC}\${LIBCBOR}\src\cbor.dir\${Config}\vc${SDK}.pdb" ` "${DEST}\cbor.pdb" Copy-Item "${SRC}\${ZLIB}\zlib.dir\${Config}\vc${SDK}.pdb" ` - "${DEST}\zlib.pdb" + "${DEST}\zlib1.pdb" Copy-Item "${SRC}\src\fido2_shared.dir\${Config}\vc${SDK}.pdb" ` "${DEST}\fido2.pdb" } Function Package-StaticPDBs(${SRC}, ${DEST}) { - Copy-Item "${SRC}\${LIBRESSL}\crypto\Release\crypto-${LibCrypto}.pdb" ` + Copy-Item "${SRC}\${LIBRESSL}\crypto\crypto_obj.dir\${Config}\crypto_obj.pdb" ` "${DEST}\crypto-${LibCrypto}.pdb" - Copy-Item "${SRC}\${LIBCBOR}\src\Release\cbor.pdb" ` + Copy-Item "${SRC}\${LIBCBOR}\src\${Config}\cbor.pdb" ` "${DEST}\cbor.pdb" - Copy-Item "${SRC}\${ZLIB}\Release\zlibstatic.pdb" ` - "${DEST}\zlib.pdb" - Copy-Item "${SRC}\src\Release\fido2_static.pdb" ` + Copy-Item "${SRC}\${ZLIB}\${Config}\zlibstatic.pdb" ` + "${DEST}\zlib1.pdb" + Copy-Item "${SRC}\src\${Config}\fido2_static.pdb" ` "${DEST}\fido2.pdb" } From fdfa06d7d381e83be6a8c5e39a5bd7af714ac656 Mon Sep 17 00:00:00 2001 From: Ed Maste <emaste@FreeBSD.org> Date: Wed, 26 Apr 2023 12:40:13 -0400 Subject: [PATCH 2/3] Vendor import of libfido2 0.12.0 --- CMakeLists.txt | 12 +- LICENSE | 2 + NEWS | 22 +++ README.adoc | 2 +- examples/CMakeLists.txt | 1 + examples/README.adoc | 8 +- examples/assert.c | 33 +++- examples/cred.c | 29 +++- examples/extern.h | 8 +- examples/info.c | 86 +++++++++- examples/manifest.c | 1 + examples/reset.c | 1 + examples/retries.c | 3 +- examples/select.c | 1 + examples/setpin.c | 1 + examples/util.c | 65 ++++++- fuzz/CMakeLists.txt | 1 + fuzz/Dockerfile | 16 +- fuzz/Makefile | 16 +- fuzz/README | 7 + fuzz/build-coverage | 1 + fuzz/clock.c | 1 + fuzz/dummy.h | 1 + fuzz/export.gnu | 18 +- fuzz/functions.txt | 236 ++++++++++++++----------- fuzz/fuzz_assert.c | 41 ++++- fuzz/fuzz_bio.c | 3 +- fuzz/fuzz_cred.c | 8 +- fuzz/fuzz_credman.c | 3 +- fuzz/fuzz_hid.c | 3 +- fuzz/fuzz_largeblob.c | 3 +- fuzz/fuzz_mgmt.c | 29 +++- fuzz/fuzz_netlink.c | 3 +- fuzz/fuzz_pcsc.c | 5 +- fuzz/libfuzzer.c | 61 ++++++- fuzz/mutator_aux.c | 12 +- fuzz/mutator_aux.h | 10 +- fuzz/pcsc.c | 1 + fuzz/preload-fuzz.c | 1 + fuzz/preload-snoop.c | 1 + fuzz/report.tgz | Bin 341098 -> 357005 bytes fuzz/summary.txt | 57 +++--- fuzz/udev.c | 3 +- fuzz/wiredata_fido2.h | 1 + fuzz/wiredata_u2f.h | 1 + fuzz/wrap.c | 22 ++- fuzz/wrapped.sym | 1 + man/CMakeLists.txt | 18 +- man/check.sh | 1 + man/eddsa_pk_new.3 | 32 +++- man/es256_pk_new.3 | 32 +++- man/es384_pk_new.3 | 164 ++++++++++++++++++ man/fido2-assert.1 | 27 ++- man/fido2-cred.1 | 27 ++- man/fido2-token.1 | 27 ++- man/fido_assert_allow_cred.3 | 27 ++- man/fido_assert_new.3 | 31 +++- man/fido_assert_set_authdata.3 | 27 ++- man/fido_assert_verify.3 | 33 +++- man/fido_bio_dev_get_info.3 | 27 ++- man/fido_bio_enroll_new.3 | 27 ++- man/fido_bio_info_new.3 | 27 ++- man/fido_bio_template.3 | 27 ++- man/fido_cbor_info_new.3 | 156 ++++++++++++++++- man/fido_cred_exclude.3 | 27 ++- man/fido_cred_new.3 | 29 +++- man/fido_cred_set_authdata.3 | 46 ++++- man/fido_cred_verify.3 | 27 ++- man/fido_credman_metadata_new.3 | 27 ++- man/fido_dev_enable_entattest.3 | 34 +++- man/fido_dev_get_assert.3 | 27 ++- man/fido_dev_get_touch_begin.3 | 27 ++- man/fido_dev_info_manifest.3 | 27 ++- man/fido_dev_largeblob_get.3 | 34 +++- man/fido_dev_make_cred.3 | 27 ++- man/fido_dev_open.3 | 27 ++- man/fido_dev_set_io_functions.3 | 27 ++- man/fido_dev_set_pin.3 | 29 +++- man/fido_init.3 | 27 ++- man/fido_strerr.3 | 27 ++- man/rs256_pk_new.3 | 32 +++- openbsd-compat/clock_gettime.c | 1 + openbsd-compat/endian_win32.c | 1 + openbsd-compat/openbsd-compat.h | 1 + regress/CMakeLists.txt | 30 +++- regress/assert.c | 1 + regress/compress.c | 1 + regress/cred.c | 1 + regress/dev.c | 1 + regress/eddsa.c | 1 + regress/es256.c | 1 + regress/es384.c | 213 +++++++++++++++++++++++ regress/rs256.c | 1 + src/CMakeLists.txt | 9 +- src/aes256.c | 1 + src/assert.c | 195 ++++++++++++++------- src/authkey.c | 28 ++- src/bio.c | 130 +++++++++----- src/blob.c | 1 + src/blob.h | 1 + src/buf.c | 1 + src/cbor.c | 52 ++++-- src/compress.c | 1 + src/config.c | 28 +-- src/cred.c | 33 +++- src/credman.c | 164 +++++++++++------- src/dev.c | 1 + src/diff_exports.sh | 1 + src/ecdh.c | 1 + src/eddsa.c | 1 + src/err.c | 1 + src/es256.c | 1 + src/es384.c | 296 ++++++++++++++++++++++++++++++++ src/export.gnu | 17 +- src/export.llvm | 17 +- src/export.msvc | 17 +- src/extern.h | 8 + src/fallthrough.h | 21 +++ src/fido.h | 39 ++++- src/fido/bio.h | 26 ++- src/fido/config.h | 26 ++- src/fido/credman.h | 26 ++- src/fido/eddsa.h | 26 ++- src/fido/err.h | 26 ++- src/fido/es256.h | 26 ++- src/fido/es384.h | 59 +++++++ src/fido/param.h | 57 +++++- src/fido/rs256.h | 26 ++- src/fido/types.h | 47 ++++- src/hid.c | 1 + src/hid_freebsd.c | 90 +++++++++- src/hid_hidapi.c | 13 +- src/hid_linux.c | 48 ++++-- src/hid_netbsd.c | 1 + src/hid_openbsd.c | 1 + src/hid_osx.c | 1 + src/hid_unix.c | 1 + src/hid_win.c | 5 +- src/info.c | 165 ++++++++++++++++-- src/io.c | 28 ++- src/iso7816.c | 1 + src/iso7816.h | 1 + src/largeblob.c | 34 ++-- src/log.c | 1 + src/netlink.c | 1 + src/netlink.h | 1 + src/nfc.c | 30 ++++ src/nfc_linux.c | 13 +- src/packed.h | 1 + src/pcsc.c | 5 + src/pin.c | 81 ++++++--- src/random.c | 1 + src/reset.c | 1 + src/rs1.c | 1 + src/rs256.c | 1 + src/time.c | 1 + src/touch.c | 1 + src/tpm.c | 1 + src/types.c | 17 +- src/u2f.c | 93 +++++++--- src/util.c | 1 + src/winhello.c | 4 + tools/CMakeLists.txt | 5 +- tools/assert_get.c | 7 +- tools/assert_verify.c | 30 +++- tools/base64.c | 1 + tools/bio.c | 1 + tools/config.c | 1 + tools/cred_make.c | 7 +- tools/cred_verify.c | 1 + tools/credman.c | 1 + tools/extern.h | 4 +- tools/fido2-assert.c | 1 + tools/fido2-attach.sh | 1 + tools/fido2-cred.c | 1 + tools/fido2-detach.sh | 1 + tools/fido2-token.c | 1 + tools/fido2-unprot.sh | 1 + tools/include_check.sh | 1 + tools/largeblob.c | 1 + tools/pin.c | 26 ++- tools/test.sh | 46 +++-- tools/token.c | 150 +++++++++++++++- tools/util.c | 70 +++++++- udev/70-u2f.rules | 31 +++- udev/CMakeLists.txt | 1 + udev/check.sh | 1 + udev/fidodevs | 1 + udev/genrules.awk | 32 +++- windows/build.ps1 | 1 + windows/const.ps1 | 3 +- windows/cygwin.ps1 | 1 + windows/release.ps1 | 1 + 193 files changed, 4068 insertions(+), 722 deletions(-) create mode 100644 man/es384_pk_new.3 create mode 100644 regress/es384.c create mode 100644 src/es384.c create mode 100644 src/fallthrough.h create mode 100644 src/fido/es384.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f10727d40e9..dc31cc0d4806 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ # Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause # detect AppleClang; needs to come before project() cmake_policy(SET CMP0025 NEW) @@ -28,7 +29,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_COLOR_MAKEFILE OFF) set(CMAKE_VERBOSE_MAKEFILE ON) set(FIDO_MAJOR "1") -set(FIDO_MINOR "11") +set(FIDO_MINOR "12") set(FIDO_PATCH "0") set(FIDO_VERSION ${FIDO_MAJOR}.${FIDO_MINOR}.${FIDO_PATCH}) @@ -67,7 +68,7 @@ if(NOT MSVC) if(APPLE) set(FIDO_CFLAGS "${FIDO_CFLAGS} -D_DARWIN_C_SOURCE") set(FIDO_CFLAGS "${FIDO_CFLAGS} -D__STDC_WANT_LIB_EXT1__=1") - elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + elseif((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR MINGW OR CYGWIN) set(FIDO_CFLAGS "${FIDO_CFLAGS} -D_GNU_SOURCE") set(FIDO_CFLAGS "${FIDO_CFLAGS} -D_DEFAULT_SOURCE") elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR @@ -277,16 +278,21 @@ else() add_compile_options(-Wwrite-strings) add_compile_options(-Wmissing-prototypes) add_compile_options(-Wbad-function-cast) + add_compile_options(-Wimplicit-fallthrough) add_compile_options(-pedantic) add_compile_options(-pedantic-errors) + set(EXTRA_CFLAGS "-Wconversion -Wsign-conversion") + if(WIN32) add_compile_options(-Wno-type-limits) add_compile_options(-Wno-cast-function-type) endif() + if(HAVE_SHORTEN_64_TO_32) add_compile_options(-Wshorten-64-to-32) endif() + if(HAVE_STACK_PROTECTOR_ALL) add_compile_options(-fstack-protector-all) endif() @@ -301,6 +307,8 @@ else() if(LIBFUZZER) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer-no-link") + else() + set(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wframe-larger-than=2047") endif() endif() diff --git a/LICENSE b/LICENSE index 75a03f87e3af..359c853fb448 100644 --- a/LICENSE +++ b/LICENSE @@ -22,3 +22,5 @@ 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. + +SPDX-License-Identifier: BSD-2-Clause diff --git a/NEWS b/NEWS index f5bd414297dd..a5353cfb952e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,25 @@ +* Version 1.12.0 (2022-09-22) + ** Support for COSE_ES384. + ** Support for hidraw(4) on FreeBSD; gh#597. + ** Improved support for FIDO 2.1 authenticators. + ** New API calls: + - es384_pk_free; + - es384_pk_from_EC_KEY; + - es384_pk_from_EVP_PKEY; + - es384_pk_from_ptr; + - es384_pk_new; + - es384_pk_to_EVP_PKEY; + - fido_cbor_info_certs_len; + - fido_cbor_info_certs_name_ptr; + - fido_cbor_info_certs_value_ptr; + - fido_cbor_info_maxrpid_minpinlen; + - fido_cbor_info_minpinlen; + - fido_cbor_info_new_pin_required; + - fido_cbor_info_rk_remaining; + - fido_cbor_info_uv_attempts; + - fido_cbor_info_uv_modality. + ** Documentation and reliability fixes. + * Version 1.11.0 (2022-05-03) ** Experimental PCSC support; enable with -DUSE_PCSC. ** Improved OpenSSL 3.0 compatibility. diff --git a/README.adoc b/README.adoc index c9cdafb5fea8..6d6a96eb1712 100644 --- a/README.adoc +++ b/README.adoc @@ -38,7 +38,7 @@ is also available. === Releases -The current release of *libfido2* is 1.11.0. Signed release tarballs are +The current release of *libfido2* is 1.12.0. Signed release tarballs are available at Yubico's https://developers.yubico.com/libfido2/Releases[release page]. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index e558b620fd6e..f013df4e71ec 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,7 @@ # Copyright (c) 2018 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause list(APPEND COMPAT_SOURCES ../openbsd-compat/clock_gettime.c diff --git a/examples/README.adoc b/examples/README.adoc index 44ee52743a0d..6853757acad1 100644 --- a/examples/README.adoc +++ b/examples/README.adoc @@ -48,8 +48,8 @@ The following examples are provided: Configures <pin> as the new PIN of <device>. If [oldpin] is provided, the device's PIN is changed from [oldpin] to <pin>. -- cred [-t ecdsa|rsa|eddsa] [-k pubkey] [-ei cred_id] [-P pin] [-T seconds] - [-b blobkey] [-hruv] <device> +- cred [-t es256|es384|rs256|eddsa] [-k pubkey] [-ei cred_id] [-P pin] + [-T seconds] [-b blobkey] [-hruv] <device> Creates a new credential on <device> and verify that the credential was signed by the authenticator. The device's attestation certificate @@ -66,8 +66,8 @@ The following examples are provided: option -b is specified, the credential's "largeBlob" key is stored in <blobkey>. -- assert [-t ecdsa|rsa|eddsa] [-a cred_id] [-h hmac_secret] [-s hmac_salt] - [-P pin] [-T seconds] [-b blobkey] [-puv] <pubkey> <device> +- assert [-t es256|es384|rs256|eddsa] [-a cred_id] [-h hmac_secret] [-P pin] + [-s hmac_salt] [-T seconds] [-b blobkey] [-puv] <pubkey> <device> Asks <device> for a FIDO2 assertion corresponding to [cred_id], which may be omitted for resident keys. The obtained assertion diff --git a/examples/assert.c b/examples/assert.c index 8b0dbd9f6eb2..32ba97b2fca3 100644 --- a/examples/assert.c +++ b/examples/assert.c @@ -1,11 +1,13 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> #include <fido/es256.h> +#include <fido/es384.h> #include <fido/rs256.h> #include <fido/eddsa.h> @@ -30,9 +32,9 @@ static const unsigned char cd[32] = { static void usage(void) { - fprintf(stderr, "usage: assert [-t ecdsa|rsa|eddsa] [-a cred_id] " - "[-h hmac_secret] [-s hmac_salt] [-P pin] [-T seconds] " - "[-b blobkey] [-puv] <pubkey> <device>\n"); + fprintf(stderr, "usage: assert [-t es256|es384|rs256|eddsa] " + "[-a cred_id] [-h hmac_secret] [-s hmac_salt] [-P pin] " + "[-T seconds] [-b blobkey] [-puv] <pubkey> <device>\n"); exit(EXIT_FAILURE); } @@ -46,6 +48,7 @@ verify_assert(int type, const unsigned char *authdata_ptr, size_t authdata_len, RSA *rsa = NULL; EVP_PKEY *eddsa = NULL; es256_pk_t *es256_pk = NULL; + es384_pk_t *es384_pk = NULL; rs256_pk_t *rs256_pk = NULL; eddsa_pk_t *eddsa_pk = NULL; void *pk; @@ -67,6 +70,21 @@ verify_assert(int type, const unsigned char *authdata_ptr, size_t authdata_len, EC_KEY_free(ec); ec = NULL; + break; + case COSE_ES384: + if ((ec = read_ec_pubkey(key)) == NULL) + errx(1, "read_ec_pubkey"); + + if ((es384_pk = es384_pk_new()) == NULL) + errx(1, "es384_pk_new"); + + if (es384_pk_from_EC_KEY(es384_pk, ec) != FIDO_OK) + errx(1, "es384_pk_from_EC_KEY"); + + pk = es384_pk; + EC_KEY_free(ec); + ec = NULL; + break; case COSE_RS256: if ((rsa = read_rsa_pubkey(key)) == NULL) @@ -147,6 +165,7 @@ verify_assert(int type, const unsigned char *authdata_ptr, size_t authdata_len, errx(1, "fido_assert_verify: %s (0x%x)", fido_strerr(r), r); es256_pk_free(&es256_pk); + es384_pk_free(&es384_pk); rs256_pk_free(&rs256_pk); eddsa_pk_free(&eddsa_pk); @@ -219,9 +238,11 @@ main(int argc, char **argv) body = NULL; break; case 't': - if (strcmp(optarg, "ecdsa") == 0) + if (strcmp(optarg, "es256") == 0) type = COSE_ES256; - else if (strcmp(optarg, "rsa") == 0) + else if (strcmp(optarg, "es384") == 0) + type = COSE_ES384; + else if (strcmp(optarg, "rs256") == 0) type = COSE_RS256; else if (strcmp(optarg, "eddsa") == 0) type = COSE_EDDSA; diff --git a/examples/cred.c b/examples/cred.c index 4a9d8bf4b25a..576900d97786 100644 --- a/examples/cred.c +++ b/examples/cred.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <errno.h> @@ -34,7 +35,7 @@ static const unsigned char user_id[32] = { static void usage(void) { - fprintf(stderr, "usage: cred [-t ecdsa|rsa|eddsa] [-k pubkey] " + fprintf(stderr, "usage: cred [-t es256|es384|rs256|eddsa] [-k pubkey] " "[-ei cred_id] [-P pin] [-T seconds] [-b blobkey] [-hruv] " "<device>\n"); exit(EXIT_FAILURE); @@ -107,15 +108,23 @@ verify_cred(int type, const char *fmt, const unsigned char *authdata_ptr, if (key_out != NULL) { /* extract the credential pubkey */ if (type == COSE_ES256) { - if (write_ec_pubkey(key_out, fido_cred_pubkey_ptr(cred), + if (write_es256_pubkey(key_out, + fido_cred_pubkey_ptr(cred), fido_cred_pubkey_len(cred)) < 0) - errx(1, "write_ec_pubkey"); + errx(1, "write_es256_pubkey"); + } else if (type == COSE_ES384) { + if (write_es384_pubkey(key_out, + fido_cred_pubkey_ptr(cred), + fido_cred_pubkey_len(cred)) < 0) + errx(1, "write_es384_pubkey"); } else if (type == COSE_RS256) { - if (write_rsa_pubkey(key_out, fido_cred_pubkey_ptr(cred), + if (write_rs256_pubkey(key_out, + fido_cred_pubkey_ptr(cred), fido_cred_pubkey_len(cred)) < 0) - errx(1, "write_rsa_pubkey"); + errx(1, "write_rs256_pubkey"); } else if (type == COSE_EDDSA) { - if (write_eddsa_pubkey(key_out, fido_cred_pubkey_ptr(cred), + if (write_eddsa_pubkey(key_out, + fido_cred_pubkey_ptr(cred), fido_cred_pubkey_len(cred)) < 0) errx(1, "write_eddsa_pubkey"); } @@ -193,9 +202,11 @@ main(int argc, char **argv) rk = true; break; case 't': - if (strcmp(optarg, "ecdsa") == 0) + if (strcmp(optarg, "es256") == 0) type = COSE_ES256; - else if (strcmp(optarg, "rsa") == 0) + else if (strcmp(optarg, "es384") == 0) + type = COSE_ES384; + else if (strcmp(optarg, "rs256") == 0) type = COSE_RS256; else if (strcmp(optarg, "eddsa") == 0) type = COSE_EDDSA; diff --git a/examples/extern.h b/examples/extern.h index 5633b23d2003..5cffd7fbf882 100644 --- a/examples/extern.h +++ b/examples/extern.h @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _EXTERN_H_ @@ -18,8 +19,9 @@ EVP_PKEY *read_eddsa_pubkey(const char *); int base10(const char *, long long *); int read_blob(const char *, unsigned char **, size_t *); int write_blob(const char *, const unsigned char *, size_t); -int write_ec_pubkey(const char *, const void *, size_t); -int write_rsa_pubkey(const char *, const void *, size_t); +int write_es256_pubkey(const char *, const void *, size_t); +int write_es384_pubkey(const char *, const void *, size_t); +int write_rs256_pubkey(const char *, const void *, size_t); int write_eddsa_pubkey(const char *, const void *, size_t); #endif /* _EXTERN_H_ */ diff --git a/examples/info.c b/examples/info.c index 1098580eec6f..a10a50cffb37 100644 --- a/examples/info.c +++ b/examples/info.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> @@ -103,6 +104,25 @@ print_opt_array(const char *label, char * const *name, const bool *value, printf("\n"); } +/* + * Auxiliary function to print (char *, uint64_t) pairs on stdout. + */ +static void +print_cert_array(const char *label, char * const *name, const uint64_t *value, + size_t len) +{ + if (len == 0) + return; + + printf("%s: ", label); + + for (size_t i = 0; i < len; i++) + printf("%s%s %llu", i > 0 ? ", " : "", name[i], + (unsigned long long)value[i]); + + printf("\n"); +} + /* * Auxiliary function to print a list of supported COSE algorithms on stdout. */ @@ -120,15 +140,18 @@ print_algorithms(const fido_cbor_info_t *ci) for (size_t i = 0; i < len; i++) { cose = type = "unknown"; switch (fido_cbor_info_algorithm_cose(ci, i)) { - case COSE_EDDSA: - cose = "eddsa"; - break; case COSE_ES256: cose = "es256"; break; + case COSE_ES384: + cose = "es384"; + break; case COSE_RS256: cose = "rs256"; break; + case COSE_EDDSA: + cose = "eddsa"; + break; } if (fido_cbor_info_algorithm_type(ci, i) != NULL) type = fido_cbor_info_algorithm_type(ci, i); @@ -192,6 +215,41 @@ print_maxlargeblob(uint64_t maxlargeblob) printf("maxlargeblob: %d\n", (int)maxlargeblob); } +/* + * Auxiliary function to print the authenticator's estimated number of + * remaining resident credentials. + */ +static void +print_rk_remaining(int64_t rk_remaining) +{ + printf("remaining rk(s): "); + + if (rk_remaining == -1) + printf("undefined\n"); + else + printf("%d\n", (int)rk_remaining); +} + +/* + * Auxiliary function to print the minimum pin length observed by the + * authenticator. + */ +static void +print_minpinlen(uint64_t minpinlen) +{ + printf("minpinlen: %d\n", (int)minpinlen); +} + +/* + * Auxiliary function to print the authenticator's preferred (platform) + * UV attempts. + */ +static void +print_uv_attempts(uint64_t uv_attempts) +{ + printf("platform uv attempt(s): %d\n", (int)uv_attempts); +} + /* * Auxiliary function to print an authenticator's firmware version on stdout. */ @@ -265,6 +323,14 @@ getinfo(const char *path) fido_cbor_info_options_value_ptr(ci), fido_cbor_info_options_len(ci)); + /* print certifications */ + print_cert_array("certifications", fido_cbor_info_certs_name_ptr(ci), + fido_cbor_info_certs_value_ptr(ci), + fido_cbor_info_certs_len(ci)); + + /* print firmware version */ + print_fwversion(fido_cbor_info_fwversion(ci)); + /* print maximum message size */ print_maxmsgsiz(fido_cbor_info_maxmsgsiz(ci)); @@ -277,13 +343,23 @@ getinfo(const char *path) /* print maximum length of largeBlob array */ print_maxlargeblob(fido_cbor_info_maxlargeblob(ci)); - /* print firmware version */ - print_fwversion(fido_cbor_info_fwversion(ci)); + /* print number of remaining resident credentials */ + print_rk_remaining(fido_cbor_info_rk_remaining(ci)); + + /* print minimum pin length */ + print_minpinlen(fido_cbor_info_minpinlen(ci)); /* print supported pin protocols */ print_byte_array("pin protocols", fido_cbor_info_protocols_ptr(ci), fido_cbor_info_protocols_len(ci)); + /* print whether a new pin is required */ + printf("pin change required: %s\n", + fido_cbor_info_new_pin_required(ci) ? "true" : "false"); + + /* print platform uv attempts */ + print_uv_attempts(fido_cbor_info_uv_attempts(ci)); + fido_cbor_info_free(&ci); end: if ((r = fido_dev_close(dev)) != FIDO_OK) diff --git a/examples/manifest.c b/examples/manifest.c index d38166a9fea9..c2b3bf19137b 100644 --- a/examples/manifest.c +++ b/examples/manifest.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> diff --git a/examples/reset.c b/examples/reset.c index b429d05f0fe4..767a162b6f63 100644 --- a/examples/reset.c +++ b/examples/reset.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/examples/retries.c b/examples/retries.c index b96118b1e154..a0610fe13903 100644 --- a/examples/retries.c +++ b/examples/retries.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* @@ -35,7 +36,7 @@ main(int argc, char **argv) errx(1, "fido_open: %s (0x%x)", fido_strerr(r), r); if ((r = fido_dev_get_retry_count(dev, &n)) != FIDO_OK) - errx(1, "fido_get_retries: %s (0x%x)", fido_strerr(r), r); + errx(1, "fido_dev_get_retry_count: %s (0x%x)", fido_strerr(r), r); if ((r = fido_dev_close(dev)) != FIDO_OK) errx(1, "fido_close: %s (0x%x)", fido_strerr(r), r); diff --git a/examples/select.c b/examples/select.c index 05f6a331fd4c..008eb2e99b8f 100644 --- a/examples/select.c +++ b/examples/select.c @@ -2,6 +2,7 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <errno.h> diff --git a/examples/setpin.c b/examples/setpin.c index 7fa0dcc764f3..72e08e4b9088 100644 --- a/examples/setpin.c +++ b/examples/setpin.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/examples/util.c b/examples/util.c index 8b360af21c7a..0c0c77a94001 100644 --- a/examples/util.c +++ b/examples/util.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -13,6 +14,7 @@ #include <fido.h> #include <fido/es256.h> +#include <fido/es384.h> #include <fido/rs256.h> #include <fido/eddsa.h> @@ -158,7 +160,7 @@ read_ec_pubkey(const char *path) } int -write_ec_pubkey(const char *path, const void *ptr, size_t len) +write_es256_pubkey(const char *path, const void *ptr, size_t len) { FILE *fp = NULL; EVP_PKEY *pkey = NULL; @@ -214,6 +216,63 @@ write_ec_pubkey(const char *path, const void *ptr, size_t len) return (ok); } +int +write_es384_pubkey(const char *path, const void *ptr, size_t len) +{ + FILE *fp = NULL; + EVP_PKEY *pkey = NULL; + es384_pk_t *pk = NULL; + int fd = -1; + int ok = -1; + + if ((pk = es384_pk_new()) == NULL) { + warnx("es384_pk_new"); + goto fail; + } + + if (es384_pk_from_ptr(pk, ptr, len) != FIDO_OK) { + warnx("es384_pk_from_ptr"); + goto fail; + } + + if ((fd = open(path, O_WRONLY | O_CREAT, 0644)) < 0) { + warn("open %s", path); + goto fail; + } + + if ((fp = fdopen(fd, "w")) == NULL) { + warn("fdopen"); + goto fail; + } + fd = -1; /* owned by fp now */ + + if ((pkey = es384_pk_to_EVP_PKEY(pk)) == NULL) { + warnx("es384_pk_to_EVP_PKEY"); + goto fail; + } + + if (PEM_write_PUBKEY(fp, pkey) == 0) { + warnx("PEM_write_PUBKEY"); + goto fail; + } + + ok = 0; +fail: + es384_pk_free(&pk); + + if (fp != NULL) { + fclose(fp); + } + if (fd != -1) { + close(fd); + } + if (pkey != NULL) { + EVP_PKEY_free(pkey); + } + + return (ok); +} + RSA * read_rsa_pubkey(const char *path) { @@ -247,7 +306,7 @@ read_rsa_pubkey(const char *path) } int -write_rsa_pubkey(const char *path, const void *ptr, size_t len) +write_rs256_pubkey(const char *path, const void *ptr, size_t len) { FILE *fp = NULL; EVP_PKEY *pkey = NULL; diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index 4b6fdfbfca4f..52355c1ab6b0 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -1,6 +1,7 @@ # Copyright (c) 2019 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause list(APPEND COMPAT_SOURCES ../openbsd-compat/strlcpy.c diff --git a/fuzz/Dockerfile b/fuzz/Dockerfile index a899df2c3ddd..0c99f2c95aaf 100644 --- a/fuzz/Dockerfile +++ b/fuzz/Dockerfile @@ -1,16 +1,16 @@ # Copyright (c) 2019-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause -FROM ubuntu:focal -ENV DEBIAN_FRONTEND=noninteractive -ENV CC=clang-14 -ENV CXX=clang++-14 -RUN apt-get update -RUN apt-get install -y cmake git libssl-dev libudev-dev make pkg-config -RUN apt-get install -y libpcsclite-dev zlib1g-dev software-properties-common +FROM alpine:latest +ENV CC=clang +ENV CXX=clang++ +RUN apk -q update +RUN apk add build-base clang clang-analyzer cmake compiler-rt coreutils +RUN apk add eudev-dev git linux-headers llvm openssl-dev pcsc-lite-dev +RUN apk add sudo tar zlib-dev RUN git clone --branch v0.9.0 --depth=1 https://github.com/PJK/libcbor RUN git clone --depth=1 https://github.com/yubico/libfido2 WORKDIR /libfido2 -RUN ./.actions/setup_clang "${CC}" RUN ./fuzz/build-coverage /libcbor /libfido2 diff --git a/fuzz/Makefile b/fuzz/Makefile index 6abf59c3e69d..857c89ee0742 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -1,11 +1,12 @@ # Copyright (c) 2019-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause -IMAGE := libfido2-coverage:1.11.2 +IMAGE := libfido2-coverage:1.12.2 RUNNER := libfido2-runner -PROFDATA := llvm-profdata-14 -COV := llvm-cov-14 +PROFDATA := llvm-profdata +COV := llvm-cov TARGETS := fuzz_assert fuzz_bio fuzz_cred fuzz_credman fuzz_hid \ fuzz_largeblob fuzz_netlink fuzz_mgmt fuzz_pcsc CORPORA := $(foreach f,${TARGETS},${f}/corpus) @@ -75,8 +76,15 @@ ${CORPORA}: -mkdir -p $@ gsutil -q -m rsync -d -r ${REMOTE}/libFuzzer/libfido2_$(@:/corpus=) $@ -corpus.tgz: ${CORPORA} +fetch-oss-fuzz: ${CORPORA} + find ${TARGETS} -type f -size +8192c -print0 | xargs -0 rm + +fetch-franz: + ssh franz tar -C corpus -cf- . | tar -xf- + +corpus.tgz: tar zcf $@ ${TARGETS} .PHONY: build run sync corpus ${TARGETS} ${CORPORA} .PHONY: report.tgz summary.txt functions.txt +.PHONY: fetch-oss-fuzz fetch-franz corpus.tgz diff --git a/fuzz/README b/fuzz/README index 28fc7f8f51b2..2e88db74975e 100644 --- a/fuzz/README +++ b/fuzz/README @@ -10,6 +10,13 @@ libFuzzer is better suited for bespoke fuzzers; see fuzz_cred.c, fuzz_credman.c, fuzz_assert.c, fuzz_hid.c, and fuzz_mgmt.c for examples. To build these harnesses, use -DFUZZ=ON -DLIBFUZZER=ON. +If -DFUZZ=ON is enabled, symbols listed in wrapped.sym are wrapped in the +resulting shared object. The wrapper functions simulate failure according to a +deterministic RNG and probabilities defined in wrap.c. Harnesses wishing to +use this functionality should call prng_init() with a seed obtained from the +corpus. To mutate only the seed part of a libFuzzer harness's corpora, +use '-reduce_inputs=0 --fido-mutate=seed'. + To run under ASAN/MSAN/UBSAN, libfido2 needs to be linked against flavours of libcbor and OpenSSL built with the respective sanitiser. In order to keep memory utilisation at a manageable level, you can either enforce limits at diff --git a/fuzz/build-coverage b/fuzz/build-coverage index e0e90da02b5d..8c989fc0cb6d 100755 --- a/fuzz/build-coverage +++ b/fuzz/build-coverage @@ -3,6 +3,7 @@ # Copyright (c) 2019 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause LIBCBOR="$1" LIBFIDO2="$2" diff --git a/fuzz/clock.c b/fuzz/clock.c index 23803c2ee3e5..bd758ea1a497 100644 --- a/fuzz/clock.c +++ b/fuzz/clock.c @@ -2,6 +2,7 @@ * Copyright (c) 2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <stdint.h> diff --git a/fuzz/dummy.h b/fuzz/dummy.h index b0225440e5da..fc4bfc5ada4b 100644 --- a/fuzz/dummy.h +++ b/fuzz/dummy.h @@ -2,6 +2,7 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _DUMMY_H diff --git a/fuzz/export.gnu b/fuzz/export.gnu index 0ce72434fbd8..f0fb840dd686 100644 --- a/fuzz/export.gnu +++ b/fuzz/export.gnu @@ -11,6 +11,12 @@ es256_pk_from_ptr; es256_pk_new; es256_pk_to_EVP_PKEY; + es384_pk_free; + es384_pk_from_EC_KEY; + es384_pk_from_EVP_PKEY; + es384_pk_from_ptr; + es384_pk_new; + es384_pk_to_EVP_PKEY; fido_assert_allow_cred; fido_assert_authdata_len; fido_assert_authdata_ptr; @@ -82,23 +88,32 @@ fido_cbor_info_algorithm_cose; fido_cbor_info_algorithm_count; fido_cbor_info_algorithm_type; + fido_cbor_info_certs_len; + fido_cbor_info_certs_name_ptr; + fido_cbor_info_certs_value_ptr; fido_cbor_info_extensions_len; fido_cbor_info_extensions_ptr; fido_cbor_info_free; + fido_cbor_info_fwversion; fido_cbor_info_maxcredbloblen; fido_cbor_info_maxcredcntlst; fido_cbor_info_maxcredidlen; fido_cbor_info_maxlargeblob; fido_cbor_info_maxmsgsiz; - fido_cbor_info_fwversion; + fido_cbor_info_maxrpid_minpinlen; + fido_cbor_info_minpinlen; fido_cbor_info_new; + fido_cbor_info_new_pin_required; fido_cbor_info_options_len; fido_cbor_info_options_name_ptr; fido_cbor_info_options_value_ptr; fido_cbor_info_protocols_len; fido_cbor_info_protocols_ptr; + fido_cbor_info_rk_remaining; fido_cbor_info_transports_len; fido_cbor_info_transports_ptr; + fido_cbor_info_uv_attempts; + fido_cbor_info_uv_modality; fido_cbor_info_versions_len; fido_cbor_info_versions_ptr; fido_cred_attstmt_len; @@ -257,6 +272,7 @@ prng_init; prng_up; fuzz_clock_reset; + fuzz_save_corpus; set_netlink_io_functions; set_pcsc_parameters; set_pcsc_io_functions; diff --git a/fuzz/functions.txt b/fuzz/functions.txt index 9c1a03cffb0b..da7f058d6c00 100644 --- a/fuzz/functions.txt +++ b/fuzz/functions.txt @@ -5,20 +5,20 @@ aes256_cbc_enc 4 0 100.00% 4 0 100.00% aes256_cbc_dec 4 0 100.00% 4 0 100.00% aes256_gcm_enc 1 0 100.00% 3 0 100.00% aes256_gcm_dec 1 0 100.00% 3 0 100.00% -aes256.c:aes256_cbc_fips 26 2 92.31% 42 7 83.33% +aes256.c:aes256_cbc_fips 26 1 96.15% 42 4 90.48% aes256.c:aes256_cbc 29 1 96.55% 36 3 91.67% aes256.c:aes256_cbc_proto1 1 0 100.00% 5 0 100.00% aes256.c:aes256_gcm 52 1 98.08% 60 4 93.33% -------------------------------------------------------------------------------------------------------- -TOTAL 118 4 96.61% 157 14 91.08% +TOTAL 118 3 97.46% 157 11 92.99% File '/libfido2/src/assert.c': Name Regions Miss Cover Lines Miss Cover ----------------------------------------------------------------------------------------------------------------- fido_dev_get_assert 40 0 100.00% 35 0 100.00% fido_check_flags 13 0 100.00% 15 0 100.00% -fido_get_signed_hash 36 0 100.00% 46 0 100.00% -fido_assert_verify 48 4 91.67% 67 7 89.55% +fido_get_signed_hash 20 1 95.00% 34 3 91.18% +fido_assert_verify 50 4 92.00% 70 7 90.00% fido_assert_set_clientdata 12 12 0.00% 11 11 0.00% fido_assert_set_clientdata_hash 8 0 100.00% 6 0 100.00% fido_assert_set_hmac_salt 10 0 100.00% 6 0 100.00% @@ -62,17 +62,20 @@ fido_assert_set_sig 14 0 100.00% 7 0 fido_assert_set_count 10 0 100.00% 17 0 100.00% assert.c:fido_dev_get_assert_wait 21 0 100.00% 14 0 100.00% assert.c:fido_dev_get_assert_tx 56 2 96.43% 62 5 91.94% -assert.c:fido_dev_get_assert_rx 19 0 100.00% 27 0 100.00% +assert.c:fido_dev_get_assert_rx 27 0 100.00% 36 0 100.00% assert.c:adjust_assert_count 24 0 100.00% 26 0 100.00% assert.c:parse_assert_reply 12 0 100.00% 24 0 100.00% assert.c:fido_get_next_assert_tx 8 0 100.00% 8 0 100.00% -assert.c:fido_get_next_assert_rx 15 2 86.67% 21 4 80.95% +assert.c:fido_get_next_assert_rx 23 2 91.30% 29 5 82.76% assert.c:decrypt_hmac_secrets 9 0 100.00% 15 0 100.00% +assert.c:get_es256_hash 16 0 100.00% 17 0 100.00% +assert.c:get_es384_hash 16 0 100.00% 17 0 100.00% +assert.c:get_eddsa_hash 6 0 100.00% 9 0 100.00% assert.c:check_extensions 5 0 100.00% 9 0 100.00% assert.c:fido_assert_reset_extattr 1 0 100.00% 5 0 100.00% assert.c:fido_assert_clean_authdata 1 0 100.00% 5 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 565 42 92.57% 694 42 93.95% +TOTAL 605 43 92.89% 745 46 93.83% File '/libfido2/src/authkey.c': Name Regions Miss Cover Lines Miss Cover @@ -80,10 +83,10 @@ Name Regions Miss Cover Lines Miss fido_dev_authkey 1 0 100.00% 3 0 100.00% authkey.c:fido_dev_authkey_wait 10 0 100.00% 7 0 100.00% authkey.c:fido_dev_authkey_tx 19 0 100.00% 25 0 100.00% -authkey.c:fido_dev_authkey_rx 6 0 100.00% 14 0 100.00% +authkey.c:fido_dev_authkey_rx 14 0 100.00% 21 0 100.00% authkey.c:parse_authkey 8 0 100.00% 10 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 44 0 100.00% 59 0 100.00% +TOTAL 52 0 100.00% 66 0 100.00% File '/libfido2/src/bio.c': Name Regions Miss Cover Lines Miss Cover @@ -117,28 +120,28 @@ fido_bio_enroll_last_status 1 0 100.00% 3 0 bio.c:bio_get_template_array_wait 11 0 100.00% 7 0 100.00% bio.c:bio_tx 43 0 100.00% 55 0 100.00% bio.c:bio_prepare_hmac 18 0 100.00% 29 0 100.00% -bio.c:bio_rx_template_array 11 0 100.00% 17 0 100.00% +bio.c:bio_rx_template_array 19 0 100.00% 24 0 100.00% bio.c:bio_parse_template_array 26 1 96.15% 27 4 85.19% bio.c:decode_template_array 12 1 91.67% 18 3 83.33% bio.c:decode_template 9 0 100.00% 15 0 100.00% bio.c:bio_set_template_name_wait 19 0 100.00% 20 0 100.00% bio.c:bio_enroll_begin_wait 17 0 100.00% 19 0 100.00% -bio.c:bio_rx_enroll_begin 15 0 100.00% 24 0 100.00% +bio.c:bio_rx_enroll_begin 23 0 100.00% 31 0 100.00% bio.c:bio_parse_enroll_status 20 0 100.00% 28 0 100.00% bio.c:bio_parse_template_id 8 0 100.00% 10 0 100.00% bio.c:bio_enroll_continue_wait 19 0 100.00% 20 0 100.00% -bio.c:bio_rx_enroll_continue 11 0 100.00% 18 0 100.00% +bio.c:bio_rx_enroll_continue 19 0 100.00% 25 0 100.00% bio.c:bio_enroll_cancel_wait 11 11 0.00% 10 10 0.00% bio.c:bio_enroll_remove_wait 17 0 100.00% 19 0 100.00% bio.c:bio_get_info_wait 11 0 100.00% 10 0 100.00% -bio.c:bio_rx_info 11 0 100.00% 17 0 100.00% +bio.c:bio_rx_info 19 0 100.00% 24 0 100.00% bio.c:bio_reset_info 1 0 100.00% 4 0 100.00% bio.c:bio_parse_info 20 0 100.00% 28 0 100.00% bio.c:bio_reset_template_array 4 0 100.00% 7 0 100.00% bio.c:bio_reset_template 1 0 100.00% 5 0 100.00% bio.c:bio_reset_enroll 3 0 100.00% 6 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 419 20 95.23% 559 24 95.71% +TOTAL 451 20 95.57% 587 24 95.91% File '/libfido2/src/blob.c': Name Regions Miss Cover Lines Miss Cover @@ -192,7 +195,7 @@ cbor_encode_pin_opt 4 0 100.00% 8 0 cbor_encode_change_pin_auth 32 1 96.88% 36 3 91.67% cbor_encode_assert_ext 33 0 100.00% 32 0 100.00% cbor_decode_fmt 13 0 100.00% 15 0 100.00% -cbor_decode_pubkey 21 1 95.24% 30 2 93.33% +cbor_decode_pubkey 26 1 96.15% 36 2 94.44% cbor_decode_cred_authdata 31 1 96.77% 35 3 91.43% cbor_decode_assert_authdata 21 0 100.00% 32 0 100.00% cbor_decode_attstmt 13 0 100.00% 16 0 100.00% @@ -200,38 +203,39 @@ cbor_decode_uint64 4 0 100.00% 8 0 cbor_decode_cred_id 8 0 100.00% 9 0 100.00% cbor_decode_user 8 0 100.00% 9 0 100.00% cbor_decode_rp_entity 8 0 100.00% 9 0 100.00% +cbor_decode_bool 10 0 100.00% 11 0 100.00% cbor_build_uint 10 1 90.00% 9 1 88.89% cbor_array_append 17 0 100.00% 21 0 100.00% -cbor_array_drop 18 2 88.89% 17 3 82.35% +cbor_array_drop 18 0 100.00% 17 0 100.00% cbor.c:ctap_check_cbor 28 0 100.00% 26 0 100.00% cbor.c:check_key_type 8 0 100.00% 7 0 100.00% cbor.c:cbor_add_arg 13 0 100.00% 21 0 100.00% cbor.c:cbor_add_uint8 14 0 100.00% 21 0 100.00% cbor.c:cbor_encode_largeblob_key_ext 6 0 100.00% 6 0 100.00% cbor.c:cbor_encode_hmac_secret_param 59 4 93.22% 66 8 87.88% -cbor.c:get_cose_alg 36 0 100.00% 38 0 100.00% +cbor.c:get_cose_alg 46 1 97.83% 45 3 93.33% cbor.c:find_cose_alg 35 0 100.00% 33 0 100.00% cbor.c:decode_attcred 25 0 100.00% 44 0 100.00% cbor.c:decode_cred_extensions 14 0 100.00% 24 0 100.00% -cbor.c:decode_cred_extension 49 10 79.59% 49 17 65.31% +cbor.c:decode_cred_extension 41 1 97.56% 45 3 93.33% cbor.c:decode_assert_extensions 14 0 100.00% 23 0 100.00% cbor.c:decode_assert_extension 19 0 100.00% 27 0 100.00% -cbor.c:decode_attstmt_entry 52 0 100.00% 50 0 100.00% +cbor.c:decode_attstmt_entry 56 0 100.00% 51 0 100.00% cbor.c:decode_x5c 4 0 100.00% 6 0 100.00% cbor.c:decode_cred_id_entry 10 0 100.00% 19 0 100.00% cbor.c:decode_user_entry 25 0 100.00% 35 0 100.00% cbor.c:decode_rp_entity_entry 15 0 100.00% 25 0 100.00% ------------------------------------------------------------------------------------------------------------------ -TOTAL 1049 23 97.81% 1237 45 96.36% +TOTAL 1070 13 98.79% 1258 31 97.54% File '/libfido2/src/compress.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------ fido_compress 1 0 100.00% 3 0 100.00% fido_uncompress 6 0 100.00% 5 0 100.00% -compress.c:rfc1951_deflate 33 2 93.94% 47 3 93.62% +compress.c:rfc1951_deflate 33 4 87.88% 47 6 87.23% compress.c:rfc1950_inflate 27 2 92.59% 22 4 81.82% -compress.c:rfc1951_inflate 38 10 73.68% 45 17 62.22% +compress.c:rfc1951_inflate 38 8 78.95% 45 14 68.89% ------------------------------------------------------------------------------------------------------------------ TOTAL 105 14 86.67% 122 24 80.33% @@ -244,21 +248,21 @@ fido_dev_set_pin_minlen 1 0 100.00% 4 fido_dev_force_pin_change 1 0 100.00% 4 0 100.00% fido_dev_set_pin_minlen_rpid 6 0 100.00% 15 0 100.00% config.c:config_enable_entattest_wait 6 0 100.00% 7 0 100.00% -config.c:config_tx 37 0 100.00% 48 0 100.00% +config.c:config_tx 41 0 100.00% 49 0 100.00% config.c:config_prepare_hmac 8 0 100.00% 19 0 100.00% config.c:config_toggle_always_uv_wait 6 0 100.00% 7 0 100.00% config.c:config_pin_minlen 5 0 100.00% 7 0 100.00% config.c:config_pin_minlen_tx 36 0 100.00% 32 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 108 0 100.00% 151 0 100.00% +TOTAL 112 0 100.00% 152 0 100.00% File '/libfido2/src/cred.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_dev_make_cred 12 0 100.00% 10 0 100.00% fido_check_rp_id 4 0 100.00% 11 0 100.00% -fido_cred_verify 56 2 96.43% 72 4 94.44% -fido_cred_verify_self 58 4 93.10% 83 7 91.57% +fido_cred_verify 59 2 96.61% 75 4 94.67% +fido_cred_verify_self 60 6 90.00% 87 11 87.36% fido_cred_new 1 0 100.00% 3 0 100.00% fido_cred_reset_tx 1 0 100.00% 19 0 100.00% fido_cred_reset_rx 1 0 100.00% 7 0 100.00% @@ -280,9 +284,9 @@ fido_cred_set_rk 2 0 100.00% 4 fido_cred_set_uv 2 0 100.00% 4 0 100.00% fido_cred_set_prot 21 0 100.00% 14 0 100.00% fido_cred_set_pin_minlen 7 0 100.00% 8 0 100.00% -fido_cred_set_blob 13 2 84.62% 8 1 87.50% +fido_cred_set_blob 13 0 100.00% 8 0 100.00% fido_cred_set_fmt 20 4 80.00% 12 2 83.33% -fido_cred_set_type 17 0 100.00% 7 0 100.00% +fido_cred_set_type 23 2 91.30% 9 1 88.89% fido_cred_type 1 0 100.00% 3 0 100.00% fido_cred_flags 1 0 100.00% 3 0 100.00% fido_cred_sigcount 1 0 100.00% 3 0 100.00% @@ -298,8 +302,8 @@ fido_cred_authdata_raw_ptr 1 0 100.00% 3 fido_cred_authdata_raw_len 1 0 100.00% 3 0 100.00% fido_cred_attstmt_ptr 1 0 100.00% 3 0 100.00% fido_cred_attstmt_len 1 0 100.00% 3 0 100.00% -fido_cred_pubkey_ptr 9 0 100.00% 18 0 100.00% -fido_cred_pubkey_len 9 0 100.00% 18 0 100.00% +fido_cred_pubkey_ptr 11 0 100.00% 21 0 100.00% +fido_cred_pubkey_len 11 0 100.00% 21 0 100.00% fido_cred_id_ptr 1 0 100.00% 3 0 100.00% fido_cred_id_len 1 0 100.00% 3 0 100.00% fido_cred_aaguid_ptr 1 0 100.00% 3 0 100.00% @@ -320,12 +324,12 @@ cred.c:fido_dev_make_cred_tx 64 0 100.00% 70 cred.c:fido_dev_make_cred_rx 29 0 100.00% 32 0 100.00% cred.c:parse_makecred_reply 14 0 100.00% 27 0 100.00% cred.c:check_extensions 2 0 100.00% 6 0 100.00% -cred.c:get_signed_hash_u2f 27 0 100.00% 26 0 100.00% -cred.c:verify_attstmt 23 2 91.30% 40 6 85.00% +cred.c:get_signed_hash_u2f 27 0 100.00% 27 0 100.00% +cred.c:verify_attstmt 25 2 92.00% 43 6 86.05% cred.c:fido_cred_clean_authdata 1 0 100.00% 8 0 100.00% cred.c:fido_cred_clean_attstmt 1 0 100.00% 8 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 634 36 94.32% 830 39 95.30% +TOTAL 651 38 94.16% 849 43 94.94% File '/libfido2/src/credman.c': Name Regions Miss Cover Lines Miss Cover @@ -353,32 +357,32 @@ fido_credman_rp_id_hash_ptr 4 0 100.00% 5 credman.c:credman_get_metadata_wait 11 0 100.00% 8 0 100.00% credman.c:credman_tx 36 0 100.00% 50 0 100.00% credman.c:credman_prepare_hmac 31 1 96.77% 50 2 96.00% -credman.c:credman_rx_metadata 11 0 100.00% 17 0 100.00% +credman.c:credman_rx_metadata 19 0 100.00% 24 0 100.00% credman.c:credman_parse_metadata 9 0 100.00% 17 0 100.00% credman.c:credman_get_rk_wait 27 0 100.00% 23 0 100.00% -credman.c:credman_rx_rk 19 0 100.00% 27 0 100.00% +credman.c:credman_rx_rk 27 0 100.00% 35 0 100.00% credman.c:credman_parse_rk_count 16 0 100.00% 20 0 100.00% credman.c:credman_grow_array 17 2 88.24% 21 5 76.19% credman.c:credman_parse_rk 23 0 100.00% 31 0 100.00% -credman.c:credman_rx_next_rk 15 2 86.67% 21 4 80.95% +credman.c:credman_rx_next_rk 23 2 91.30% 29 5 82.76% credman.c:credman_del_rk_wait 16 0 100.00% 15 0 100.00% credman.c:credman_get_rp_wait 23 0 100.00% 15 0 100.00% -credman.c:credman_rx_rp 19 0 100.00% 27 0 100.00% +credman.c:credman_rx_rp 27 0 100.00% 35 0 100.00% credman.c:credman_parse_rp_count 16 0 100.00% 20 0 100.00% credman.c:credman_parse_rp 9 0 100.00% 17 0 100.00% -credman.c:credman_rx_next_rp 15 2 86.67% 21 4 80.95% +credman.c:credman_rx_next_rp 23 2 91.30% 29 5 82.76% credman.c:credman_set_dev_rk_wait 11 0 100.00% 8 0 100.00% credman.c:credman_reset_rk 4 0 100.00% 9 0 100.00% credman.c:credman_reset_rp 4 0 100.00% 12 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 382 10 97.38% 518 18 96.53% +TOTAL 422 10 97.63% 557 20 96.41% File '/libfido2/src/dev.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_dev_info_manifest 2 0 100.00% 11 0 100.00% fido_dev_open_with_info 5 5 0.00% 6 6 0.00% -fido_dev_open 13 6 53.85% 16 6 62.50% +fido_dev_open 13 4 69.23% 16 6 62.50% fido_dev_close 9 2 77.78% 8 1 87.50% fido_dev_set_sigmask 18 18 0.00% 11 11 0.00% fido_dev_cancel 11 0 100.00% 8 0 100.00% @@ -410,7 +414,7 @@ fido_dev_maxmsgsize 1 0 100.00% 3 fido_dev_set_timeout 6 2 66.67% 6 1 83.33% dev.c:run_manifest 10 0 100.00% 13 0 100.00% dev.c:fido_dev_open_wait 10 0 100.00% 7 0 100.00% -dev.c:fido_dev_open_tx 56 15 73.21% 56 26 53.57% +dev.c:fido_dev_open_tx 56 11 80.36% 56 20 64.29% dev.c:set_random_report_len 11 0 100.00% 6 0 100.00% dev.c:fido_dev_open_rx 36 1 97.22% 53 1 98.11% dev.c:fido_dev_set_flags 1 0 100.00% 5 0 100.00% @@ -418,7 +422,7 @@ dev.c:fido_dev_set_extension_flags 7 0 100.00% 7 dev.c:fido_dev_set_option_flags 31 0 100.00% 20 0 100.00% dev.c:fido_dev_set_protocol_flags 11 0 100.00% 17 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 332 71 78.61% 378 86 77.25% +TOTAL 332 65 80.42% 378 80 78.84% File '/libfido2/src/ecdh.c': Name Regions Miss Cover Lines Miss Cover @@ -478,10 +482,31 @@ es256.c:decode_coord 8 0 100.00% 10 ------------------------------------------------------------------------------------------------------------------- TOTAL 315 7 97.78% 372 12 96.77% +File '/libfido2/src/es384.c': +Name Regions Miss Cover Lines Miss Cover +------------------------------------------------------------------------------------------------------------------- +es384_pk_decode 8 0 100.00% 9 0 100.00% +es384_pk_new 1 0 100.00% 3 0 100.00% +es384_pk_free 6 0 100.00% 7 0 100.00% +es384_pk_from_ptr 15 0 100.00% 17 0 100.00% +es384_pk_to_EVP_PKEY 42 0 100.00% 53 0 100.00% +es384_pk_from_EC_KEY 42 2 95.24% 47 4 91.49% +es384_pk_from_EVP_PKEY 8 2 75.00% 7 1 85.71% +es384_verify_sig 12 2 83.33% 19 5 73.68% +es384_pk_verify_sig 7 1 85.71% 13 2 84.62% +es384.c:decode_pubkey_point 9 0 100.00% 13 0 100.00% +es384.c:decode_coord 8 1 87.50% 10 3 70.00% +------------------------------------------------------------------------------------------------------------------- +TOTAL 158 8 94.94% 198 15 92.42% + File '/libfido2/src/extern.h': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- +File '/libfido2/src/fallthrough.h': +Name Regions Miss Cover Lines Miss Cover +------------------------------------------------------------------------------------------------------------------- + File '/libfido2/src/fido.h': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- @@ -510,7 +535,7 @@ File '/libfido2/src/hid_linux.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_hid_manifest 35 4 88.57% 41 2 95.12% -fido_hid_open 27 27 0.00% 40 40 0.00% +fido_hid_open 33 33 0.00% 51 51 0.00% fido_hid_close 3 3 0.00% 6 6 0.00% fido_hid_set_sigmask 2 2 0.00% 6 6 0.00% fido_hid_read 15 15 0.00% 21 21 0.00% @@ -518,13 +543,13 @@ fido_hid_write 12 12 0.00% 17 1 fido_hid_report_in_len 1 1 0.00% 4 4 0.00% fido_hid_report_out_len 1 1 0.00% 4 4 0.00% hid_linux.c:copy_info 34 0 100.00% 44 0 100.00% -hid_linux.c:is_fido 10 2 80.00% 14 2 85.71% +hid_linux.c:is_fido 15 1 93.33% 16 1 93.75% hid_linux.c:get_parent_attr 6 0 100.00% 9 0 100.00% hid_linux.c:parse_uevent 12 0 100.00% 24 0 100.00% hid_linux.c:get_usb_attr 1 0 100.00% 3 0 100.00% hid_linux.c:get_report_descriptor 14 1 92.86% 17 3 82.35% ------------------------------------------------------------------------------------------------------------------- -TOTAL 173 68 60.69% 250 105 58.00% +TOTAL 184 73 60.33% 263 115 56.27% File '/libfido2/src/hid_unix.c': Name Regions Miss Cover Lines Miss Cover @@ -539,8 +564,8 @@ Name Regions Miss Cover Lines Mis ------------------------------------------------------------------------------------------------------------------- fido_dev_get_cbor_info_wait 10 0 100.00% 7 0 100.00% fido_dev_get_cbor_info 1 0 100.00% 4 0 100.00% -fido_cbor_info_new 1 0 100.00% 3 0 100.00% -fido_cbor_info_reset 1 0 100.00% 8 0 100.00% +fido_cbor_info_new 4 0 100.00% 7 0 100.00% +fido_cbor_info_reset 1 0 100.00% 10 0 100.00% fido_cbor_info_free 6 0 100.00% 8 0 100.00% fido_cbor_info_versions_ptr 1 0 100.00% 3 0 100.00% fido_cbor_info_versions_len 1 0 100.00% 3 0 100.00% @@ -559,33 +584,44 @@ fido_cbor_info_maxcredcntlst 1 0 100.00% 3 fido_cbor_info_maxcredidlen 1 0 100.00% 3 0 100.00% fido_cbor_info_maxlargeblob 1 0 100.00% 3 0 100.00% fido_cbor_info_fwversion 1 0 100.00% 3 0 100.00% +fido_cbor_info_minpinlen 1 0 100.00% 3 0 100.00% +fido_cbor_info_maxrpid_minpinlen 1 0 100.00% 3 0 100.00% +fido_cbor_info_uv_attempts 1 0 100.00% 3 0 100.00% +fido_cbor_info_uv_modality 1 0 100.00% 3 0 100.00% +fido_cbor_info_rk_remaining 1 0 100.00% 3 0 100.00% fido_cbor_info_protocols_ptr 1 0 100.00% 3 0 100.00% fido_cbor_info_protocols_len 1 0 100.00% 3 0 100.00% fido_cbor_info_algorithm_count 1 0 100.00% 3 0 100.00% fido_cbor_info_algorithm_type 4 0 100.00% 5 0 100.00% fido_cbor_info_algorithm_cose 4 0 100.00% 5 0 100.00% +fido_cbor_info_new_pin_required 1 0 100.00% 3 0 100.00% +fido_cbor_info_certs_name_ptr 1 0 100.00% 3 0 100.00% +fido_cbor_info_certs_value_ptr 1 0 100.00% 3 0 100.00% +fido_cbor_info_certs_len 1 0 100.00% 3 0 100.00% info.c:fido_dev_get_cbor_info_tx 8 0 100.00% 9 0 100.00% -info.c:fido_dev_get_cbor_info_rx 6 0 100.00% 14 0 100.00% -info.c:parse_reply_element 20 0 100.00% 39 0 100.00% +info.c:fido_dev_get_cbor_info_rx 14 0 100.00% 21 0 100.00% +info.c:parse_reply_element 32 0 100.00% 59 0 100.00% info.c:decode_string_array 12 0 100.00% 17 0 100.00% info.c:decode_string 4 0 100.00% 10 0 100.00% info.c:decode_aaguid 8 0 100.00% 10 0 100.00% info.c:decode_options 11 0 100.00% 15 0 100.00% -info.c:decode_option 11 0 100.00% 17 0 100.00% +info.c:decode_option 7 0 100.00% 15 0 100.00% info.c:decode_protocols 12 0 100.00% 17 0 100.00% info.c:decode_protocol 6 0 100.00% 12 0 100.00% info.c:decode_algorithms 12 0 100.00% 17 0 100.00% info.c:decode_algorithm 9 0 100.00% 17 0 100.00% info.c:decode_algorithm_entry 20 0 100.00% 27 0 100.00% +info.c:decode_certs 11 0 100.00% 15 0 100.00% +info.c:decode_cert 7 0 100.00% 15 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 186 0 100.00% 321 0 100.00% +TOTAL 232 0 100.00% 409 0 100.00% File '/libfido2/src/io.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_tx 14 0 100.00% 11 0 100.00% fido_rx 13 1 92.31% 14 3 78.57% -fido_rx_cbor_status 8 0 100.00% 10 0 100.00% +fido_rx_cbor_status 16 0 100.00% 19 0 100.00% io.c:transport_tx 7 0 100.00% 10 0 100.00% io.c:tx_empty 9 0 100.00% 14 0 100.00% io.c:tx_pkt 7 0 100.00% 10 0 100.00% @@ -597,7 +633,7 @@ io.c:rx 40 2 95.00% 52 io.c:rx_preamble 23 2 91.30% 22 5 77.27% io.c:rx_frame 11 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 185 7 96.22% 221 12 94.57% +TOTAL 193 7 96.37% 230 12 94.78% File '/libfido2/src/iso7816.c': Name Regions Miss Cover Lines Miss Cover @@ -621,7 +657,7 @@ fido_dev_largeblob_set_array 14 0 100.00% 19 largeblob.c:largeblob_get_array 32 0 100.00% 36 0 100.00% largeblob.c:get_chunklen 10 1 90.00% 9 1 88.89% largeblob.c:largeblob_get_tx 19 0 100.00% 24 0 100.00% -largeblob.c:largeblob_get_rx 15 0 100.00% 21 0 100.00% +largeblob.c:largeblob_get_rx 26 0 100.00% 30 0 100.00% largeblob.c:parse_largeblob_reply 8 0 100.00% 9 0 100.00% largeblob.c:largeblob_array_check 7 0 100.00% 16 0 100.00% largeblob.c:largeblob_array_digest 10 0 100.00% 9 0 100.00% @@ -635,7 +671,7 @@ largeblob.c:largeblob_reset 1 0 100.00% 5 largeblob.c:largeblob_encode 16 0 100.00% 21 0 100.00% largeblob.c:largeblob_new 1 0 100.00% 3 0 100.00% largeblob.c:largeblob_seal 20 0 100.00% 32 0 100.00% -largeblob.c:largeblob_get_nonce 8 1 87.50% 16 3 81.25% +largeblob.c:largeblob_get_nonce 8 0 100.00% 16 0 100.00% largeblob.c:largeblob_free 6 0 100.00% 8 0 100.00% largeblob.c:largeblob_add 27 2 92.59% 35 3 91.43% largeblob.c:largeblob_drop 21 0 100.00% 27 0 100.00% @@ -644,7 +680,7 @@ largeblob.c:largeblob_get_uv_token 19 0 100.00% 23 largeblob.c:largeblob_set_tx 35 0 100.00% 36 0 100.00% largeblob.c:prepare_hmac 13 2 84.62% 23 7 69.57% ------------------------------------------------------------------------------------------------------------------- -TOTAL 514 19 96.30% 684 46 93.27% +TOTAL 525 18 96.57% 693 43 93.80% File '/libfido2/src/log.c': Name Regions Miss Cover Lines Miss Cover @@ -662,8 +698,8 @@ TOTAL 39 5 87.18% 63 File '/libfido2/src/netlink.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_nl_power_nfc 18 1 94.44% 24 3 87.50% -fido_nl_get_nfc_target 17 1 94.12% 31 3 90.32% +fido_nl_power_nfc 18 0 100.00% 24 0 100.00% +fido_nl_get_nfc_target 17 0 100.00% 31 0 100.00% fido_nl_free 10 2 80.00% 9 2 77.78% fido_nl_new 16 1 93.75% 26 3 88.46% set_netlink_io_functions 1 0 100.00% 4 0 100.00% @@ -675,7 +711,7 @@ netlink.c:nlmsg_setattr 15 1 93.33% 17 netlink.c:nlmsg_tx 10 1 90.00% 13 3 76.92% netlink.c:nlmsg_ptr 1 0 100.00% 3 0 100.00% netlink.c:nlmsg_len 1 0 100.00% 3 0 100.00% -netlink.c:nlmsg_rx 11 3 72.73% 17 9 47.06% +netlink.c:nlmsg_rx 11 2 81.82% 17 6 64.71% netlink.c:nl_parse_reply 20 0 100.00% 28 0 100.00% netlink.c:nlmsg_from_buf 15 0 100.00% 17 0 100.00% netlink.c:nlmsg_type 1 0 100.00% 3 0 100.00% @@ -685,14 +721,14 @@ netlink.c:nlmsg_get_genl 6 0 100.00% 7 netlink.c:nlmsg_iter 6 0 100.00% 13 0 100.00% netlink.c:nlmsg_getattr 1 0 100.00% 3 0 100.00% netlink.c:nla_from_buf 17 0 100.00% 21 0 100.00% -netlink.c:nl_nfc_poll 18 1 94.44% 25 3 88.00% +netlink.c:nl_nfc_poll 18 0 100.00% 25 0 100.00% netlink.c:parse_nfc_event 10 0 100.00% 17 0 100.00% netlink.c:nla_type 1 0 100.00% 3 0 100.00% netlink.c:nla_get_u32 1 0 100.00% 3 0 100.00% netlink.c:nla_read 6 0 100.00% 7 0 100.00% -netlink.c:nl_dump_nfc_target 19 1 94.74% 31 3 90.32% +netlink.c:nl_dump_nfc_target 19 0 100.00% 31 0 100.00% netlink.c:parse_target 9 0 100.00% 13 0 100.00% -netlink.c:nl_get_nfc_family 23 1 95.65% 33 3 90.91% +netlink.c:nl_get_nfc_family 23 0 100.00% 33 0 100.00% netlink.c:nlmsg_set_u16 1 0 100.00% 3 0 100.00% netlink.c:nlmsg_set_str 1 0 100.00% 3 0 100.00% netlink.c:parse_family 10 0 100.00% 17 0 100.00% @@ -703,15 +739,16 @@ netlink.c:parse_mcastgrps 1 0 100.00% 3 netlink.c:parse_mcastgrp 15 0 100.00% 24 0 100.00% netlink.c:nla_get_str 10 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 329 14 95.74% 498 33 93.37% +TOTAL 329 8 97.57% 498 15 96.99% File '/libfido2/src/nfc.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_nfc_tx 28 0 100.00% 43 0 100.00% fido_nfc_rx 8 0 100.00% 13 0 100.00% +nfc_is_fido 13 1 92.31% 21 3 85.71% fido_is_nfc 3 0 100.00% 3 0 100.00% -fido_dev_set_nfc 4 4 0.00% 18 18 0.00% +fido_dev_set_nfc 4 1 75.00% 18 3 83.33% nfc.c:nfc_do_tx 20 0 100.00% 25 0 100.00% nfc.c:tx_short_apdu 14 0 100.00% 32 0 100.00% nfc.c:rx_init 25 0 100.00% 27 0 100.00% @@ -720,7 +757,7 @@ nfc.c:rx_msg 18 2 88.89% 23 nfc.c:rx_apdu 14 1 92.86% 22 3 86.36% nfc.c:tx_get_response 4 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 142 7 95.07% 223 27 87.89% +TOTAL 155 5 96.77% 244 15 93.85% File '/libfido2/src/nfc_linux.c': Name Regions Miss Cover Lines Miss Cover @@ -731,15 +768,15 @@ fido_nfc_close 1 1 0.00% 4 fido_nfc_set_sigmask 2 2 0.00% 6 6 0.00% fido_nfc_read 14 14 0.00% 30 30 0.00% fido_nfc_write 12 12 0.00% 18 18 0.00% -nfc_linux.c:copy_info 41 8 80.49% 47 5 89.36% -nfc_linux.c:get_usb_attr 1 0 100.00% 3 0 100.00% -nfc_linux.c:get_parent_attr 6 0 100.00% 9 0 100.00% +nfc_linux.c:copy_info 39 22 43.59% 44 16 63.64% +nfc_linux.c:get_usb_attr 1 1 0.00% 3 3 0.00% +nfc_linux.c:get_parent_attr 6 6 0.00% 9 9 0.00% nfc_linux.c:sysnum_from_syspath 15 0 100.00% 17 0 100.00% nfc_linux.c:nfc_new 6 0 100.00% 11 0 100.00% nfc_linux.c:nfc_target_connect 9 9 0.00% 21 21 0.00% nfc_linux.c:nfc_free 12 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 174 56 67.82% 245 103 57.96% +TOTAL 172 77 55.23% 242 126 47.93% File '/libfido2/src/pcsc.c': Name Regions Miss Cover Lines Miss Cover @@ -754,11 +791,11 @@ fido_pcsc_rx 1 0 100.00% 3 fido_is_pcsc 3 0 100.00% 3 0 100.00% fido_dev_set_pcsc 4 1 75.00% 18 3 83.33% pcsc.c:list_readers 24 0 100.00% 24 0 100.00% -pcsc.c:copy_info 27 0 100.00% 37 0 100.00% +pcsc.c:copy_info 30 0 100.00% 41 0 100.00% pcsc.c:get_reader 25 0 100.00% 28 0 100.00% pcsc.c:prepare_io_request 11 0 100.00% 17 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 201 1 99.50% 278 3 98.92% +TOTAL 204 1 99.51% 282 3 98.94% File '/libfido2/src/pin.c': Name Regions Miss Cover Lines Miss Cover @@ -774,30 +811,30 @@ pin.c:ctap21_uv_token_tx 49 0 100.00% 53 pin.c:pin_sha256_enc 19 0 100.00% 24 0 100.00% pin.c:encode_uv_permission 20 1 95.00% 19 3 84.21% pin.c:ctap20_uv_token_tx 37 0 100.00% 45 0 100.00% -pin.c:uv_token_rx 20 0 100.00% 30 0 100.00% +pin.c:uv_token_rx 27 0 100.00% 34 0 100.00% pin.c:parse_uv_token 8 0 100.00% 10 0 100.00% pin.c:fido_dev_set_pin_wait 21 0 100.00% 24 0 100.00% pin.c:fido_dev_change_pin_tx 45 0 100.00% 56 0 100.00% pin.c:pin_pad64_enc 15 0 100.00% 21 0 100.00% -pin.c:pad64 18 0 100.00% 19 0 100.00% +pin.c:pad64 18 0 100.00% 20 0 100.00% pin.c:fido_dev_set_pin_tx 33 0 100.00% 41 0 100.00% pin.c:fido_dev_get_pin_retry_count_wait 10 0 100.00% 7 0 100.00% pin.c:fido_dev_get_retry_count_tx 19 0 100.00% 23 0 100.00% -pin.c:fido_dev_get_pin_retry_count_rx 11 0 100.00% 17 0 100.00% +pin.c:fido_dev_get_pin_retry_count_rx 19 0 100.00% 24 0 100.00% pin.c:parse_pin_retry_count 1 0 100.00% 3 0 100.00% pin.c:parse_retry_count 13 0 100.00% 16 0 100.00% pin.c:fido_dev_get_uv_retry_count_wait 10 0 100.00% 7 0 100.00% -pin.c:fido_dev_get_uv_retry_count_rx 11 0 100.00% 17 0 100.00% +pin.c:fido_dev_get_uv_retry_count_rx 19 0 100.00% 24 0 100.00% pin.c:parse_uv_retry_count 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 403 3 99.26% 495 4 99.19% +TOTAL 426 3 99.30% 514 4 99.22% File '/libfido2/src/random.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -fido_get_random 6 1 83.33% 6 1 83.33% +fido_get_random 6 0 100.00% 6 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 6 1 83.33% 6 1 83.33% +TOTAL 6 0 100.00% 6 0 100.00% File '/libfido2/src/reset.c': Name Regions Miss Cover Lines Miss Cover @@ -812,10 +849,10 @@ File '/libfido2/src/rs1.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- rs1_verify_sig 20 1 95.00% 30 3 90.00% -rs1.c:rs1_get_EVP_MD 4 1 75.00% 6 1 83.33% +rs1.c:rs1_get_EVP_MD 4 0 100.00% 6 0 100.00% rs1.c:rs1_free_EVP_MD 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 25 2 92.00% 39 4 89.74% +TOTAL 25 1 96.00% 39 3 92.31% File '/libfido2/src/rs256.c': Name Regions Miss Cover Lines Miss Cover @@ -823,10 +860,10 @@ Name Regions Miss Cover Lines M rs256_pk_decode 8 0 100.00% 9 0 100.00% rs256_pk_new 1 0 100.00% 3 0 100.00% rs256_pk_free 6 0 100.00% 7 0 100.00% -rs256_pk_from_ptr 6 0 100.00% 6 0 100.00% -rs256_pk_to_EVP_PKEY 32 0 100.00% 39 0 100.00% -rs256_pk_from_RSA 32 4 87.50% 26 6 76.92% -rs256_pk_from_EVP_PKEY 7 2 71.43% 7 1 85.71% +rs256_pk_from_ptr 10 0 100.00% 12 0 100.00% +rs256_pk_to_EVP_PKEY 35 0 100.00% 43 0 100.00% +rs256_pk_from_RSA 32 6 81.25% 26 9 65.38% +rs256_pk_from_EVP_PKEY 8 2 75.00% 7 1 85.71% rs256_verify_sig 20 1 95.00% 30 2 93.33% rs256_pk_verify_sig 7 1 85.71% 13 2 84.62% rs256.c:decode_rsa_pubkey 9 0 100.00% 13 0 100.00% @@ -834,7 +871,7 @@ rs256.c:decode_bignum 8 0 100.00% 10 rs256.c:rs256_get_EVP_MD 4 0 100.00% 6 0 100.00% rs256.c:rs256_free_EVP_MD 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 141 8 94.33% 172 11 93.60% +TOTAL 149 10 93.29% 182 14 92.31% File '/libfido2/src/time.c': Name Regions Miss Cover Lines Miss Cover @@ -856,39 +893,40 @@ TOTAL 67 0 100.00% 79 File '/libfido2/src/tpm.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -fido_get_signed_hash_tpm 25 1 96.00% 39 3 92.31% -tpm.c:check_es256_pubarea 19 1 94.74% 30 3 90.00% +fido_get_signed_hash_tpm 25 0 100.00% 39 0 100.00% +tpm.c:check_es256_pubarea 19 0 100.00% 30 0 100.00% tpm.c:bswap_es256_pubarea 1 0 100.00% 12 0 100.00% -tpm.c:check_rs256_pubarea 17 1 94.12% 28 3 89.29% +tpm.c:check_rs256_pubarea 17 0 100.00% 28 0 100.00% tpm.c:bswap_rs256_pubarea 1 0 100.00% 10 0 100.00% tpm.c:check_sha1_certinfo 15 0 100.00% 38 0 100.00% tpm.c:get_signed_sha1 17 0 100.00% 19 0 100.00% tpm.c:get_signed_name 7 0 100.00% 10 0 100.00% tpm.c:bswap_sha1_certinfo 1 0 100.00% 8 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 103 3 97.09% 194 9 95.36% +TOTAL 103 0 100.00% 194 0 100.00% File '/libfido2/src/types.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- fido_str_array_free 4 0 100.00% 7 0 100.00% -fido_opt_array_free 4 0 100.00% 8 0 100.00% +fido_opt_array_free 4 0 100.00% 9 0 100.00% fido_byte_array_free 1 0 100.00% 5 0 100.00% fido_algo_free 1 0 100.00% 5 0 100.00% fido_algo_array_free 4 0 100.00% 7 0 100.00% +fido_cert_array_free 4 0 100.00% 9 0 100.00% fido_str_array_pack 11 0 100.00% 14 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 25 0 100.00% 46 0 100.00% +TOTAL 29 0 100.00% 56 0 100.00% File '/libfido2/src/u2f.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -u2f_register 69 0 100.00% 75 0 100.00% -u2f_authenticate 32 0 100.00% 36 0 100.00% -u2f_get_touch_begin 30 0 100.00% 39 0 100.00% -u2f_get_touch_status 18 0 100.00% 26 0 100.00% -u2f.c:key_lookup 44 0 100.00% 59 0 100.00% -u2f.c:send_dummy_register 30 0 100.00% 39 0 100.00% +u2f_register 76 0 100.00% 81 0 100.00% +u2f_authenticate 33 0 100.00% 37 0 100.00% +u2f_get_touch_begin 37 0 100.00% 45 0 100.00% +u2f_get_touch_status 26 0 100.00% 36 0 100.00% +u2f.c:key_lookup 51 0 100.00% 65 0 100.00% +u2f.c:send_dummy_register 37 0 100.00% 45 0 100.00% u2f.c:delay_ms 13 1 92.31% 15 3 80.00% u2f.c:parse_register_reply 49 0 100.00% 62 0 100.00% u2f.c:x5c_get 21 1 95.24% 26 3 88.46% @@ -897,11 +935,11 @@ u2f.c:encode_cred_attstmt 45 0 100.00% 52 u2f.c:encode_cred_authdata 33 2 93.94% 61 6 90.16% u2f.c:cbor_blob_from_ec_point 22 0 100.00% 31 0 100.00% u2f.c:u2f_authenticate_single 32 0 100.00% 43 0 100.00% -u2f.c:do_auth 49 0 100.00% 61 0 100.00% +u2f.c:do_auth 56 0 100.00% 67 0 100.00% u2f.c:parse_auth_reply 23 0 100.00% 23 0 100.00% u2f.c:authdata_fake 12 0 100.00% 27 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 528 4 99.24% 685 12 98.25% +TOTAL 572 4 99.30% 726 12 98.35% File '/libfido2/src/util.c': Name Regions Miss Cover Lines Miss Cover diff --git a/fuzz/fuzz_assert.c b/fuzz/fuzz_assert.c index 4331148b5e06..603957ec2bac 100644 --- a/fuzz/fuzz_assert.c +++ b/fuzz/fuzz_assert.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -163,7 +164,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); @@ -313,6 +314,27 @@ es256_convert(const es256_pk_t *k) EVP_PKEY_free(pkey); } +/* + * Do a dummy conversion to exercise es384_pk_from_EVP_PKEY(). + */ +static void +es384_convert(const es384_pk_t *k) +{ + EVP_PKEY *pkey = NULL; + es384_pk_t *pk = NULL; + int r; + + if ((pkey = es384_pk_to_EVP_PKEY(k)) == NULL || + (pk = es384_pk_new()) == NULL) + goto out; + + r = es384_pk_from_EVP_PKEY(pk, pkey); + consume(&r, sizeof(r)); +out: + es384_pk_free(&pk); + EVP_PKEY_free(pkey); +} + /* * Do a dummy conversion to exercise rs256_pk_from_EVP_PKEY(). */ @@ -362,6 +384,7 @@ test(const struct param *p) { fido_assert_t *assert = NULL; es256_pk_t *es256_pk = NULL; + es384_pk_t *es384_pk = NULL; rs256_pk_t *rs256_pk = NULL; eddsa_pk_t *eddsa_pk = NULL; uint8_t flags; @@ -398,6 +421,19 @@ test(const struct param *p) rs256_convert(pk); + break; + case 2: + cose_alg = COSE_ES384; + + if ((es384_pk = es384_pk_new()) == NULL) + return; + + /* XXX reuse p->es256 as es384 */ + es384_pk_from_ptr(es384_pk, p->es256.body, p->es256.len); + pk = es384_pk; + + es384_convert(pk); + break; default: cose_alg = COSE_EDDSA; @@ -452,6 +488,7 @@ test(const struct param *p) out: es256_pk_free(&es256_pk); + es384_pk_free(&es384_pk); rs256_pk_free(&rs256_pk); eddsa_pk_free(&eddsa_pk); diff --git a/fuzz/fuzz_bio.c b/fuzz/fuzz_bio.c index 49a50932a543..6ebfd151a3d8 100644 --- a/fuzz/fuzz_bio.c +++ b/fuzz/fuzz_bio.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -177,7 +178,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); diff --git a/fuzz/fuzz_cred.c b/fuzz/fuzz_cred.c index d7b630224054..a0866dc6e133 100644 --- a/fuzz/fuzz_cred.c +++ b/fuzz/fuzz_cred.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -173,7 +174,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); @@ -361,6 +362,9 @@ test_cred(const struct param *p) case 1: cose_alg = COSE_RS256; break; + case 2: + cose_alg = COSE_ES384; + break; default: cose_alg = COSE_EDDSA; break; diff --git a/fuzz/fuzz_credman.c b/fuzz/fuzz_credman.c index fb34f22f8147..1cb95dce3fab 100644 --- a/fuzz/fuzz_credman.c +++ b/fuzz/fuzz_credman.c @@ -2,6 +2,7 @@ * Copyright (c) 2019-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -164,7 +165,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); diff --git a/fuzz/fuzz_hid.c b/fuzz/fuzz_hid.c index eaf00dc92de8..27ccb2feadfa 100644 --- a/fuzz/fuzz_hid.c +++ b/fuzz/fuzz_hid.c @@ -2,6 +2,7 @@ * Copyright (c) 2020-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -127,7 +128,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); diff --git a/fuzz/fuzz_largeblob.c b/fuzz/fuzz_largeblob.c index 3289ed46e2a7..432629681e58 100644 --- a/fuzz/fuzz_largeblob.c +++ b/fuzz/fuzz_largeblob.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -141,7 +142,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); diff --git a/fuzz/fuzz_mgmt.c b/fuzz/fuzz_mgmt.c index 41077e23766c..6a5e7b667952 100644 --- a/fuzz/fuzz_mgmt.c +++ b/fuzz/fuzz_mgmt.c @@ -2,6 +2,7 @@ * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -161,7 +162,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); @@ -223,6 +224,7 @@ dev_get_cbor_info(const struct param *p) fido_cbor_info_t *ci; uint64_t n; uint8_t proto, major, minor, build, flags; + bool v; set_wire_data(p->info_wire_data.body, p->info_wire_data.len); @@ -276,28 +278,43 @@ dev_get_cbor_info(const struct param *p) consume(&cose, sizeof(cose)); } + for (size_t i = 0; i < fido_cbor_info_certs_len(ci); i++) { + char * const *na = fido_cbor_info_certs_name_ptr(ci); + const uint64_t *va = fido_cbor_info_certs_value_ptr(ci); + consume(na[i], strlen(na[i])); + consume(&va[i], sizeof(va[i])); + } + n = fido_cbor_info_maxmsgsiz(ci); consume(&n, sizeof(n)); - n = fido_cbor_info_maxcredbloblen(ci); consume(&n, sizeof(n)); - n = fido_cbor_info_maxcredcntlst(ci); consume(&n, sizeof(n)); - n = fido_cbor_info_maxcredidlen(ci); consume(&n, sizeof(n)); - n = fido_cbor_info_maxlargeblob(ci); consume(&n, sizeof(n)); - n = fido_cbor_info_fwversion(ci); consume(&n, sizeof(n)); + n = fido_cbor_info_minpinlen(ci); + consume(&n, sizeof(n)); + n = fido_cbor_info_maxrpid_minpinlen(ci); + consume(&n, sizeof(n)); + n = fido_cbor_info_uv_attempts(ci); + consume(&n, sizeof(n)); + n = fido_cbor_info_uv_modality(ci); + consume(&n, sizeof(n)); + n = (uint64_t)fido_cbor_info_rk_remaining(ci); + consume(&n, sizeof(n)); consume(fido_cbor_info_aaguid_ptr(ci), fido_cbor_info_aaguid_len(ci)); consume(fido_cbor_info_protocols_ptr(ci), fido_cbor_info_protocols_len(ci)); + v = fido_cbor_info_new_pin_required(ci); + consume(&v, sizeof(v)); + out: fido_dev_close(dev); fido_dev_free(&dev); diff --git a/fuzz/fuzz_netlink.c b/fuzz/fuzz_netlink.c index 2447215a2471..2fa897e46fe3 100644 --- a/fuzz/fuzz_netlink.c +++ b/fuzz/fuzz_netlink.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -98,7 +99,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); diff --git a/fuzz/fuzz_pcsc.c b/fuzz/fuzz_pcsc.c index 4a066ec32e1f..f0f6ccaad13e 100644 --- a/fuzz/fuzz_pcsc.c +++ b/fuzz/fuzz_pcsc.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #define _FIDO_INTERNAL @@ -116,7 +117,7 @@ size_t pack_dummy(uint8_t *ptr, size_t len) { struct param dummy; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&dummy, 0, sizeof(dummy)); @@ -231,7 +232,9 @@ test(const struct param *p) set_pcsc_parameters(&p->pcsc_list); set_pcsc_io_functions(nfc_read, nfc_write, consume); + set_wire_data(p->wiredata_init.body, p->wiredata_init.len); test_manifest(); + test_misc(); set_wire_data(p->wiredata_init.body, p->wiredata_init.len); diff --git a/fuzz/libfuzzer.c b/fuzz/libfuzzer.c index 09aec4ea2b68..073ebe655cf2 100644 --- a/fuzz/libfuzzer.c +++ b/fuzz/libfuzzer.c @@ -1,9 +1,12 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ +#include <openssl/sha.h> + #include <err.h> #include <fcntl.h> #include <stdbool.h> @@ -15,6 +18,8 @@ #include "mutator_aux.h" +extern int fuzz_save_corpus; + static bool debug; static unsigned int flags = MUTATE_ALL; static unsigned long long test_fail; @@ -32,7 +37,7 @@ save_seed(const char *opt) const char *path; int fd = -1, status = 1; void *buf = NULL; - const size_t buflen = 4096; + const size_t buflen = MAXCORPUS; size_t n; struct param *p = NULL; @@ -73,6 +78,50 @@ save_seed(const char *opt) return status; } +static int +save_corpus(const struct param *p) +{ + uint8_t blob[MAXCORPUS], dgst[SHA256_DIGEST_LENGTH]; + size_t blob_len; + char path[PATH_MAX]; + int r, fd; + + if ((blob_len = pack(blob, sizeof(blob), p)) == 0 || + blob_len > sizeof(blob)) { + warnx("pack"); + return -1; + } + + if (SHA256(blob, blob_len, dgst) != dgst) { + warnx("sha256"); + return -1; + } + + if ((r = snprintf(path, sizeof(path), "saved_corpus_%02x%02x%02x%02x" + "%02x%02x%02x%02x", dgst[0], dgst[1], dgst[2], dgst[3], dgst[4], + dgst[5], dgst[6], dgst[7])) < 0 || (size_t)r >= sizeof(path)) { + warnx("snprintf"); + return -1; + } + + if ((fd = open(path, O_CREAT|O_TRUNC|O_WRONLY, 0644)) == -1) { + warn("open %s", path); + return -1; + } + + if (write(fd, blob, blob_len) != (ssize_t)blob_len) { + warn("write"); + r = -1; + } else { + warnx("wrote %s", path); + r = 0; + } + + close(fd); + + return r; +} + static void parse_mutate_flags(const char *opt, unsigned int *mutate_flags) { @@ -116,7 +165,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { struct param *p; - if (size > 4096) + if (size > MAXCORPUS) return 0; if (++test_total % 100000 == 0 && debug) { @@ -128,7 +177,11 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) if ((p = unpack(data, size)) == NULL) test_fail++; else { + fuzz_save_corpus = 0; test(p); + if (fuzz_save_corpus && save_corpus(p) < 0) + fprintf(stderr, "%s: failed to save corpus\n", + __func__); free(p); } @@ -140,7 +193,7 @@ LLVMFuzzerCustomMutator(uint8_t *data, size_t size, size_t maxsize, unsigned int seed) NO_MSAN { struct param *p; - uint8_t blob[4096]; + uint8_t blob[MAXCORPUS]; size_t blob_len; memset(&p, 0, sizeof(p)); diff --git a/fuzz/mutator_aux.c b/fuzz/mutator_aux.c index 660fbe4e67e7..64c633f15f92 100644 --- a/fuzz/mutator_aux.c +++ b/fuzz/mutator_aux.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> @@ -19,6 +20,7 @@ int fido_nfc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); int fido_nfc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); size_t LLVMFuzzerMutate(uint8_t *, size_t, size_t); +extern int prng_up; static const uint8_t *wire_data_ptr = NULL; static size_t wire_data_len = 0; @@ -157,7 +159,6 @@ mutate_string(char *s) s[n] = '\0'; } -/* XXX should fail, but doesn't */ static int buf_read(unsigned char *ptr, size_t len, int ms) { @@ -165,6 +166,11 @@ buf_read(unsigned char *ptr, size_t len, int ms) (void)ms; + if (prng_up && uniform_random(400) < 1) { + errno = EIO; + return -1; + } + if (wire_data_len < len) n = wire_data_len; else @@ -183,7 +189,7 @@ buf_write(const unsigned char *ptr, size_t len) { consume(ptr, len); - if (uniform_random(400) < 1) { + if (prng_up && uniform_random(400) < 1) { errno = EIO; return -1; } diff --git a/fuzz/mutator_aux.h b/fuzz/mutator_aux.h index 730f58635b16..5ad566140a8e 100644 --- a/fuzz/mutator_aux.h +++ b/fuzz/mutator_aux.h @@ -2,11 +2,14 @@ * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _MUTATOR_AUX_H #define _MUTATOR_AUX_H +#include <sys/types.h> + #include <stddef.h> #include <stdint.h> #include <cbor.h> @@ -17,7 +20,7 @@ #include "../src/fido/credman.h" #include "../src/fido/eddsa.h" #include "../src/fido/es256.h" -#include "../src/fido/es256.h" +#include "../src/fido/es384.h" #include "../src/fido/rs256.h" #include "../src/netlink.h" @@ -48,8 +51,9 @@ #define MUTATE_WIREDATA 0x04 #define MUTATE_ALL (MUTATE_SEED | MUTATE_PARAM | MUTATE_WIREDATA) -#define MAXSTR 1024 -#define MAXBLOB 3600 +#define MAXSTR 1024 +#define MAXBLOB 3600 +#define MAXCORPUS 8192 #define HID_DEV_HANDLE 0x68696421 #define NFC_DEV_HANDLE 0x6e666321 diff --git a/fuzz/pcsc.c b/fuzz/pcsc.c index f8400a5e766d..f6a3e9bdd773 100644 --- a/fuzz/pcsc.c +++ b/fuzz/pcsc.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <assert.h> diff --git a/fuzz/preload-fuzz.c b/fuzz/preload-fuzz.c index efcb8c632605..f18848dda34c 100644 --- a/fuzz/preload-fuzz.c +++ b/fuzz/preload-fuzz.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/fuzz/preload-snoop.c b/fuzz/preload-snoop.c index 373acc560a60..34d57ade82f9 100644 --- a/fuzz/preload-snoop.c +++ b/fuzz/preload-snoop.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/fuzz/report.tgz b/fuzz/report.tgz index 1b44addb69823f8b265165a0b3c92bc4ebc61283..e984ee9dc7653ddbfe64154abce4412c528ef49f 100644 GIT binary patch literal 357005 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%0DwC$iSAS_Q-D+ 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%0D9YDz)=N5Zzq;;nGDiA)!lRB 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 arKqXC&Htw>yM9Ezwxc7-bmg(am45>Bi@C!9 literal 341098 zcmV)6K*+xziwFP!000001MFRUbKEwP&)@zONV#q$yF7e=Z(CNCVmq5uDbAJcZ1(Ev zYKk+&Xc%+ISw8geZod090D=R~LmGpSCaH*tZ4o4hMg!fy?gr2*$+9SG^PBs;EVu&C zWB<an{xAF4cCmx8hphmAW7)Rl``;k%Ua4xYrmEu-p>N8fsBe4kuIGQ!tK{Qf)i)V2 zrd4$xZO{SsU3b^`yFuWrjXw@N=Nn|*2Qll{Uwr(Hk|gNgPY{~K)6W-W(d5Z!T4Y7} z5<Q*G5-YJ@J^B5KF};cN9k0<x^qonO+^|<>MP83)@gmJ`UZPRFTxMic-BdMMyg*f) zSEGuQ>5NucmW0(<#N|brkLqIi5?RY@^liGJvog->SF5L!qOOa@<_kbwRW#+4jPiIv zMs-?e{Hx12Nz(k{CGwz#4b|w!CPkT$viq0~kE$X|6ZABh(Ena-X9XdIKFQLYjOHZ0 znAb0n<Izu2=8(K5f{#gBEwdPUUdNM+Nc3l929@aFQenwI6*qOUqHY&iob)nI(x!su z+t$hT5}2A6`RFnwS33r&yqLtt)(h1B|7?S<mOb)Fc)g;Q(te>}qbD=>tH@_u;zaZ3 zKyVf>D*_X%{fYH5qs@=XV!eZGn$qiz_T^6i+1dJ}-}gK1^uB860R0l514Y&>@)690 zl1o8NuIo_@ZRTRo*WOxDvE_^V)W0EF*79TX<sAY|MS9nlUe1e4Qtnm;aBZn8=KbCz ztaQrSXYOp@+SdL>Nl5-R6eQMmCa@3PL4(!tfN6rfSxnlu<;Iz)(AGu0IF8%)E~%av z(aLw%vaHaWF+FKC`PWsQ%^b(#gw{oo)#;LJ#G*=T&=gREWO1EdGX2zPtTd-z-@&$t zLwqhBtmTAEi!$aP%Zr@!+NwY!i5vI;Xve%>BOsoDU^O*s?J7;`IY^t;S3+Ddjl8y0 z5b`~{Uad<nw<TzCr=Q!3eWl$N%IxF%o0eXtRXRztv<7a>(<CAJ7R}|iiubnOzKmye zJ2ONHIy!o_lLbuS0t5bw5zIR7@tZy~LQZ|lG3!;=SxX|6eJot*t`%!UPk5cxD|HDF zvW!c@5x0Gfx4Gl3-=A<<xqHxMrm~+oEEdan%E~Mw<c)GH>4r__!k1B+C*=AiilT_Y z#{31Ux#9sD>U0`sVl<)muVnPcK!4Z+|7{Sn&Kuri3IGE8draAUyiH#Ng~G&H6SC1H zE2f|MJ1=KxS=FQIJQb)Uw<LrM-pk@`ueAhs@0EAzuvU*U`>(bC8F!6&y~yst#=PDB zcWvz0Yxchb??2lA4{@D*n-tUfW=Rko{L_>6ZxSb`Cks-?h#J+ekEm%$C(4mfXRnW# z4tkxC%M?s+cJm_5LA8M-Rv?b#wSClnVmgn@ia?cLK7Bt5p%f(GGlihnN6hc6=7hkP zDHX4es2rK#h#sMNNoMUE)H8*8CZ~&f8bBjHeM2XDd_m9$HjCjohI04xO-bS!3<`uT zj7OF`!U3|~myQE(xThz}(>GZ<{ftiHwvBmRFJGGGG>h{KBg-xqMp0gvz?jPX$Xtu> z;)*11iiC(3nW#KXDQ<v-*Pv)dT#|syIRN#E8J~h(SAw|1-wOtmpzw>PMsg)o&(jL= zn#PH_JUvO$O9XUO)$1eSRzSy@l??xs@F(e>uN#v`r{AX;p#yee*2!J3f=$7w5?$J( z&N($czT*84<YKc0ll7t$)jF%3b`u^0XHL6;nYJ~}ES=2Kq`>B^`SJw@3Y4cYWrJ{Z zDi=|{10U%(ZX=J`dPlr53cCg%FFJNj_t_qmxwR~6qbM+J7iv4M>3AyjJtK6WK6Xsp zZ(jqameXq5XB00P#HY{<75W*vyteO{!CrjY-nbW;UZkB(B?x|>O{`=Po3M!=VmfVa z+_6o^*3G5{w0)mVykroY?7*}G6-L<x4rqPbGi~gvd?7Ndkbc1mP218wshT{cx_=B- zb5bnU__p?J7za&TjekDpAFxkFo;@S5sXUv3Zq8km@v_e^UNVSFj_Ih26OK$AsaM~e z<HNXAEJ;48s8PRI#<fYVmtfGO^?34yltst6JKlPTIk&xXVD2UG`=PW}PR^jo+jzKo zemL&==3dI~0Ng7H82(_0#bp`a>|){CO9#+=p=EeJ7ivcZH$rSg4u@!0C&sQZs;bLu z8rQq{*gZZ3c6bJ+Mhdn}tQUK<a<EPp;AB<tjEpDK#c~%XH(q<xjKIsPoSHGIu;+Jt zlZy`ELBOox_L}RMwx?t>`i5__dFPt89qQ&*RgtppbE_@dlUwWLx`t21%yUdn$-s4t z$fJniVbhP4oLg*oR8T!kN$_+ttf}Xp$xWYQqHNFv^GvNS=GTcK$f0gQoTNpMOYB~8 zQh7#%DVc%k?$yi9`poY49ANT(eA<E@3_qg?092>n#aNRSlRmFl!7!a}frF^lQ=4k6 zATq<fypK(N#W>~JrswG9Q#0$ciQXR~;NchnRZ`TASF*+e!{gAYTc1xSMcHE!FBqnn zT+>rh#J=J947nl<Hj|@-et{7(^s}%J^V!ucdDNULNmccE))hX4Lf^FX9V$Oj2s~2? za`@a(jlin2bi?1Y$Y<%r8n<}SFl`0I4zNLO&^GXAzz0}7O}jLfB<b^t6)1vWVA#x; z4!|%{Q|t~?IxsOpM+q8S!@<nh2u<J7Z7)#XEaH5FU#x7{B8g?XO8xZ>k3pGbnVzj= z{s)Fb!PE(`>4ZAnM#>#IwB6mSO|B3o2UQwiAh~;q5ntrvm4m>*9t%!DFN3}K)T<tH z4+s0U={UNXM5f8S$0c5Hh*dY3PTUs+W#uY4N1=fuv3{U6I?EW7BvssJ6)!oA9f}Q` zBR}n{62Dt@6*^|9TeFk0Z)UOkLqxT(VR0MFS6xxEjgTWS-Y_^c@M$9$qazk$N2aX= zfxZziE$3UHs1%nv1E$cyUT|#P*3~@in+xoI7^hrQO?CnvFScEn6|T}A0pJvin|Wra zTT=mF##x#-*X!I8rF-&BMj@{YXYR+aUfob|+cUAZm$s9u`<CHHLe&Mjoo33GCQmnc z#S0(8eU>}xMBJ#d1Jm6rz93h|;5bJt7>jj#f^^qYk43!TVGPe5%fA>5qWu;tc1V8+ zs1W+PIkm>8!7Gc7X)8sVTpsAfR%BweH67o;n9W7-{zBc_Jgtf#wEO7Sl^r0mK%EhW zegXI*YW#NHc4vTYdn${|3$hUgl}d;0qX4*9vOyibU&nXA;SE(|U`!K4FlM%HmpLo? zp%`|r>;P`v8nb8Z&<Lqs_I%S<5#=!8L1(&yOt)gsNliEJ_88Tb9VV{ea6xo^@U|l* zQH0TAJMO>{bhJZZKAZNrHQRst<vO935!tO5sI>1P;1kP^e9-YqDB&3vTeo+>xN>#- zH^7=LmZ(&!V2S#+;knGn*$)<bmMGZmervbm{p|K$)4*;9h&D7H=vG&~oxQ7q!x#@C zUsA*YnC$z-tTwk|vPB$hStho0ZmMCdN&Asdc0bHk2MJQ#a%x8m!feo1N`^;dV4vwr zsxWo?H*0%U<)TAu)N=Upjkn*9w>@iX;1a1wf1gKNa=;C$j=7&k-%;Jwd-#Cyq_X=w zqW2HMq4jwXwfOF>+e7<@1qF+ByEWxTNUzip(o@yrj^VTVKFF(DNYCXmXFEWG*3FTW zH+8xoJ!bKO1I#J9{zq47Tzk*J%O<BS+*-Z5b$DGg)BY+=Tk;UmsU6!IBQqGVql&K5 z>JEF>%RbDp`#~IvOx2ZSW@Lt7QmgIJ3k-`#Jn8C?_Stl^B>f#7ZOI^B4co)+oBOT! z?U>1)em&mc{$?t6f0$!YAzwfC1IP43RST2tIt8P^!@7f0O`T?aR<VM^Ecb<ei<XLe zV|Ucw#ijOGY{#lkMIC3ATBwytQRtX~>Vhy^dW#}Z&9)V&Z7+5Wn}S#nxQ-cOyhTNu z?a5^`NiU%qJD^;lt9d$|vy<d;nxnixv-U7@WuW6vbFih+jJ+scnHC8_%O=Z6LeEbZ zsHo?pY+st(Ah@HM7M5i(B~?|F#<M3Udz_|LoW|@#+M=oBx+uqSb8XD!qiVee>(iPt z<%zcQ4gK4Wj62@CUz(Unwu2J>Omq8e9sC-`Ht(91i|(N{`ctnhUT{w>vF#A+t?|P9 zYH=Bt@nW;hws?E1eMz5tr++6oe7^>X1p%c=6<`)zqS1)`OtZGooMp&%4a=}kOsH^T z^281%%RzDI#29~(tIhw?O@{kugXjO;$oqIp{!i?C?qmMXhq%_qzf%Sp+xYtNcOCaJ z|LcQXJI9~dGJ4wh`tkQ1_fh^I<hp(QH;r7CHtxv(<zXB5#~<64Yd_}ydWh=}pa07+ zO#c5pBm%qDJ(M19<QHyT;M=4{SjfyA=83y_C7ML5?`!k&H${`z+aB-~WLx43vY#&H zBR!%vJ|DJoTd?uzx!n?Ni!a3+&VE15=+Ty7K+<*nxf(%uMG$U3g|!fbo})L#@`hzY zM90%-FywYLqT`PKr<tVF0-b$lptCIF*-~lNwThINBr()F;;cI2v?MsXI`T_JP%-1l z;rQI+5fHe&pr6UPQx&7{KE53>xlrqayXu46w(jccLk4Oghkn%axJJ`BM-zf(G!rFC za~7{T|MAVc_aEP}Adcb~cq{t7wq;Kf{iYg4{)!^M{g$tVA~kY?6*)osp+E~cPt#eR zkQo~P^vkESPd|ScpZ)UB@egW5hASe&_Vb}0B7s7hu}}w*(Td2Z{d{!5fwe73v0Fm3 zTbjl;pJolHo4;lCtEx_bi^lwK7xgPeQe_P4Ku8Y?t&^JO^&nCubg~6J*?RD)M=Co= zK7>#SeQW_gwjTUZq)5UNTY!nJ2TfM2`&U!cuc$591zmZOBFz$h*aARoJqWU!W|q5S z7~K-e*aBv3Jveg<-R;@*VWdllWD7{Lbz#zO(%YlY!)TX)$`(jvYl5oXwDWVL!zh=~ z%NFou>%p(vC}&%l22qYBoWla=ux^~Y7s@5r!vglOZrIzPywpIs?4xx~nr;-7DHkUQ zhLJ5{A{Lm44~dCb!bB`E5$nN3W&c~kJS;E|>++h=Sw$V!^YefFglx-z|6ZV<KAyct zRkNgl8S49G>E!$7%NJ6js~FtdIt7=UTrWwPE=XR-nW8U<B~Ziy6tNyqgpU16Jz02r zR+I$I<4d?Ls7pJIp{&W!)tuz0sc24jaM;nbsp?{Z+KA8#RFsOnlJF7>yu^C&5_-kP z=8BHMEQ>EtleZDPv?2*ANu0oN=4e3{MR|jk#j?q|1zj<Us>3CLDHdRg^?)gK>?7!z zcEo7ZBrjmH-OwSU6OpDP5?!z7G$(&aF8FFS8^6hKWLhhBOF~*KkQVDfTId#w0v&@8 zwL56yilCdKK?@f30&%(`G{8kB4gDn{lB7XDS&yH+P>gm-IP3@<cJ$yd^y`YCIQb1^ zh6ztAHFUTZ@n;yo8fA3I;_0-ZI|^v;GpIo~Bf)?v_DI5KN8q!g2cMxwG$71=!9#)A zt|aw1qlCteKx0Q&%v3SV<;c;`F8p~&taT);bp+Nry8O=>;-RGEcs!oR)p$nYx+%%F zO@I5)Dq*lAFxb)LcOoDb^{71N`g>f(RJnsXP$gSJSVthNqsi?=s29o+q?!x(am;>Y z$}FCeAu$t2f>K97siVpDMC}AY?|&XMWZ~C%9M^T3PMVsG$H&Kc(G9{eH+A{Y@SmSO zQymxyOC5owjwZ*n>)EeAe)?h6H(QZZ2_GGSkB%l!6p=hhXNpT962Q3v;9O0P<`B9h zm~sV7xq4tqks=9@TmeX~F86STz7?vrn{bL^;YuLo3XpR3fYj49c~_)RUV!UX;532O zkVz*2lq&$r)dNt96iL|Q3hZ$;VNW}hY?bKU_~W~GZ<&g-t}R6^=SooH3aD{4K~109 z|33S0_ESqOR-{&f4_Cm4t9J>mrS{h!KfHT;_UVjL>nc(!A&4sw#MOi#eQM9n&pC`A z%Twb&eb)bHy>E)z%98-d69DAt0U$++B<S%3^mv*gn1a)1|NQvr1DF#QR-6x>1V^5L zBTo|?t*HF&{O9kG<6D*@l@b<t0*kyuI!vB~J)XcGPZRdEeEZ?Yx8t|({xSaH?ETyG zcT`9Dp&$7!R@AGWyy2tU@o@_-tx-&0vklAnyz8vfMi1V9|7N`h#P@wixd#%Cc>>40 zLv9iAB&_lTR(X1`s;bLoS|gft3jJG=JPDjU0ZyK#IAMD=;9rJgptDGB{<oF&|5Nlb zJqeyX0Z*Q$0APDn;6ILOOe|L<(wDHt7g*!#!J6MyX_C;!7ii-j($VoHWbp;E_<E3~ zl?-;GN|j*}r1%0-{6j*DFF}egAjQ`MDKf**^Cn-$)6d7#BCqOBe4oE)CF7YYM<sai z1-$rr+@4lu8QB{Izd*bv{Z1-(L*9hg?LyRpF;X|iNwZkoY<5POYzc^b0YttYAi6Bl zgfA<Q<35vLpeC=<i<}=U?%yf*M8YgzV3w~3vsh1RQq{*=r;LPJzCbPikQ*EW38Df4 zQGp(aVmzemYZjzsBP$v_g#!u00)b(H9t@L-9>b`&gwwMX>f;_r5ElrD3-myoB1ICa z1p?IqJ*WmEjW}|QsY!ZFcVUjxnk-uNC0VQL9F;II5EvNf!9bb*8_;BH^mm$AnRW^P z0)c;l9{iJNhacBTr%%<%mhdhRco*owJBe(V9%+8DPWeFjlQ-yhJM{Hno+3pOb_D{v z0zKH(W1S?1GLQ|FJ_*MHfn$Ll9NR)Y6~b2PR4EQ6oC^icg?eyqlVU1*0}Pu`!naW1 zTc`)$Hi;Dirvc|e3FktAbKxOzE|hRC6gU^^!8ys=?ak2v{F6{E6sQ*JK{c7$c76^Z zRD!TjKv<{;!g_3_ic5>i3MKRk1$u>g&`YLRNYgMmlJF`NcoiNJuR{6sSa*C(4_;NR zw>wM5bT8yFa}f1-3ZVp4p#Z8-4^T;DUzMOyIo&$_oJaz#NPt#!$hE3SLZ(O{Q=|u( zs6wJi$k`ka4D8|rT%cBwoB{9}NhlQwl#2AAl;{MX5uz7u0Bw6;l)E88TO^<@I%Hrn zlHe;6@D=HSFM8@?oRCWjuQc5m{dtIu6-fvd2?UEYB3MQ0@l{%qaT3?D?htAup;;u* zEIQ=+RwO}IBp@r&7*?b^eaF+R0E?An0cXOc%s&avA^~TS#?axi%rC}tm;Z4m^;wZ$ zDAOySi|!6a>%p-eft+wUPaQmn!?x8sI=wnOeMtDSE%}hN)t!>I^dJ~#+n8$lbXJs$ zG0*9LEXvh+DIb`&x)amZAw4VGk`G5)-RWpcqjN=dDE)mKV-|NOH7P5dVGP@nPg7gn zacWDW$JKQqEyi8?RpxvhKYz9|bH>~38^uE;wk039wz?D7mZsxp2%&ZQTX<XR#k1Co zr*Cexi`55CKALTHXS1zCBA{)_hpw&e)U~B)Ln7N~ip=Ne+kT>rZKq56SwbHZejfa~ zJ^!2ZONIutaeMwZ-w%RdE&pHOI>BT9w}-eM^S`wUO+)@S@f*0f&eN6n4IOtWoB7eU z-<rjeo-3TCC3D_eO^q`4{rFUI1M*)wRor8ixZQnt%o4Yg{>LnFx0{CYnND~}%0cP5 z?k`cC-ZWzOmMd<ZPJo|5S;QVLi5y*f`qLzlEB+KY<gU^j?5r|*%p<3me5jYM_m7%K zPLZN}%n%3uQk_oGmT(tcAS2~CORGO(dbpNu9wEA>wB8lw`UB>P>vw`J=G__W`U577 zYrD|~;jY_ltviBof56mniWJ>rO1Sf%-~Szr$5&;%9DjTRu<)*;er#IJ-%yABx;}pU z>(3wFzCh>y&)(TLr;Q{H{Hx6Vu~&v*tbsU&-SyoOti;sv;ztsBsjVC(gKTRJh>{?V z@7aAm`_nUe8$c#ZOJip@rs~!<#+UAyp6=<<^sg`4?*^UqZ_IYfIBO63mj1y)54S>U z+?H}(a4`n=Ho<`?JlD#!46ao8g{zHLN+DBjODV&dI(Fd1^Hs>CC?wEr$q$0ho$>O4 z35m=vu|oc-u&fgKI6*1O4qka}M<I}IYwXY5U@Q)QG_WL}1`6SGTN+rtJr8E?hWueb z;BSpOgOQ>C&rmll797B?UVpUEwxbe12d~J?vjyjJ=Qb~eq&ehSmqJDyGZ&;(3OR3I zkGEuUXO6vvlZ0Ec_-sT+iWJM@Q%Qv5es5FK+U6#KEMhgW$SPTYTt+4Tt7^0H^-6wZ z-MKVR4lQ6@)g7LX9Yh90PERB6VYUYs`pEofT6z!bEb<fQ*atOPT?AWa`t*n0E?R@! z@VT5C)N*T}kUxi%C^t7wZcNLG*C3~aVuw*7K@RzRL>3*F+f}$%<Y40}*Go++@nb<k zvA8r@(p-ibDI@HwI>ayES+4wf<m>cNe=st2<6Wn%Bke;PPnSI#doW_u&W0?!E^9XG zMa)L8WmxP-?0m>F?lR}2(R}LpkVWEU%}1kv`RM7rf$<SL8L}9??8$if)RQ60*DGc+ z*5a3jodSilJ)}gkM7`Wbv1Zlg$Q-uYx@lsGOS0fRw1fE*DWF1*9#SHO%shOiu9A_r z&*3qNS9g49NoK)+-}>Ha5g;>lm5jYGQ;(#K)JYDN$YMOciQdHWC<|ci)%RLfSTdX} zN)IjIMoyRp0mx#o*<gO`9x9(rEIMyCo1e>vl|M3T@<UDqa)bJC2MX!JWEyB_Vv|CI zA5tP&fM4$Q$o7`PorBn<$sd1g7CPnMa!SJhGtr||BFTR^1u*p1nQoY)*1J}x+j`x_ zrpnR;!3>>h)f4)}*?=^5Fl%aR1<XsX)J!FO5Gj!?M=;YoUP&zInKK(N?hnKbjj+BC z**!OQ<$wF#sWT_+E2L<GfBhFyZ&?sww%)Jgmin6HKV@n7XgI>$^SGwVDG48il`>TN znU#%sbFx_Z3omf+7pnjI{KDLWUT9J+O)^A>24qtGeUS_CNwrEI;hvY5NX}=)(pW<D zi9RwDl?D*ze&kSOCi*vE5au4wVtuD9gb*!0(s!z44k9H|2o}WqPL<TauU(wnK8%bv z#nGiccC+Zl_MIO5e<F`3RWb<Ks*2^jfPcgB;m<C7Z|RM_X|QntlwBu+aS)C#CwHy! z(*5kje}N1g(%iz#ZOlteS?G}F6`}=<U0uS0@xMV}AyOh)Dq-$HEHeJ)Cm6C1?tc&& zS6dvU4kcLnkc=g7l*o%5>d2A}i<%6<9}1V}&Rd2a{uh1IHb3o9Zh{hhw*6+R*o85$ z2JJz2)arjkE0!CYh*B(c_Ic0m^TQHx!f!^V+<N@=X^FX4Fgq4L@X2Y`v3<_NVQHLV z*5Pn-Z%rOJ93J-d4;Omd(y_Ow{svsdOe?8NJP;{Ijst&pRGO|>fXrL|;*@}?|HGaw zm{F5|ZTfRdBR_4uhgMi2o)ISz2EUkl7L+`8!Y~`NG@;VYCDW)jOvY%v|K6dFxy`1~ zQy~n~5gk~O2SbVhjaZ?SG8OU1LyEbIUoY<@(Wyy%&H|rWc!A4Eo@k#YvJ12XUZAOn zk;o$xs)=9%Eg=(VvN@)VD@YQ4z5&UR?b9{rPD<U8!tNmRNx?qSM6#>5-svOuEncNH zI8RFFdCDuUbdAH4f_Qe3c)qcKu?FW!={&peJZKHD0b>o<lk$2B0`_2q5~ElO<SB^A z<9t~<Fv$-#5e#prq&<4^%Sw!UDaEHCj1N{QG3KR+o`M)XIfC&TbtlE{6vW;68mS-- z#Sifc7OrPH^U1~7#j>;4a6BoGryw8?^Ij2Afh;bWsIOO7SLws1F@LY?%&(U>Sy%(m z&v3?{bLc1HdT7Gyp#=eZLj5B3n540K>4kazcBmnC_ap*-XhQg*yAVH_*F^W}P><a` z)z<iQDWFdFD(gNn#&I!pjIMXX4nM*lO8qzO(V6~k6s{jMY)_1l389DXLiFU;hPTo| z3oHiA1j$1SV)9^x5(8#}(xJOpI=M%&xE-|!+Mx+)hf1M#<aX4_BQ(LS^N8<V9SE)- z-$p<r@6ZIjLwB)va!<&Ys9Bf?4t_lZh|V9ck{F*8<PP1%+$qY&(%_W0>V=Bb9hzWw z=#z4Hs0iMn33-R^Lhs~vf;*2?$sd1UbrC~o!t0^CfIYc&VXp&7iOH9+&0n|z#9cyp zZF^85hqP2;wseR-JQg87G@<y=T^OG%J#+IGazB}(^)-fU3Xzo#!8NH1=E8iWSIp62 zS;YO&g!e;t0e>E0U5jBk!S>Ky+@9PcTkH{rNbR8swukQG_MlfY_6S4d^3Vj#L!Xq) zLq#+XP1rnC3eNMeP;3j16-*3(34ezc1mM}Tua;0rGFmKstPd8!Jv1TrP)T%8^W^Ir zM{KetGI?kM<)M;Po_!=t*S}CtNj3%=>jp$74^5yvRFcZGj~ZAfAmVmt!rP&{fIE+X zLSJK{r!e&5y1-!t69ZF1!=bxyI2b38(V31J<mgIOe>xG5LlZs@-37=&^{3;RmZ-)< zZR)Ukh#@Tj<j`G&97#PQa(9#mGgY$t=wTHQ!(T$lp}R0SkL{VoIG9j#s3bN=#xwKe zB=X6lD|D*@G3F(>94g7nk&>HRI|v?GJz8=x7A71Wx(lR}SMtcbLH5MZ(b9_{Fk$Y{ zUC^DvLg22Zi@W>(@wUdf8vyR^|5txmdqp?<{~g0y&;9=%;q~1AFIqqa^#6-iOT7M+ zGyr5^tmg)Rd3P`w4FKtL1HcCXfdU^e`q!Tu0EY5EHvrrzPQi`!9;X4|(w#ZqWcxp) zTYr=;e+73`Q`qhg`{Yl2@E1!|OgO^EN0r_Cz%{qXB5+m{?=XD6M`qsKTY7WW`;BdM z$ep{qf#9<6y-WMjWoLx&s|mlUymaR)cX<z+6l{7eX4gq_U6f`lt~d~4Sn!0!P7dsV z%p5yd`C-J24x8EUf`v0KA>)q9zJTb^qp~$1QX+*-|Dwy9?AUGL&#y<T#W&d0PY^P? zXUG@W=-OE_6FlHQxf6D}xnY^4{4I9(Thj+Ju<0Y{qq5uI_WZ1ZspBjTR`bBUX1nYh z-6B;s1&rD(T3vH%pjpBiPRlpg?++=F!e)I!!%C!Z3On(EWVdU!NLB$vEu^5bUG*}K zDNj!JfFB}H-lf~>VdaZYfv4X5I{eSXcdxKJT9v)@kP<0wfyZ9xlOKi6?UI{NWn#Ls z)zn@(u#1h))Hb(<e3PqHY3=yObf>$#$DRf$Y>_AEWw8?>*oIHSTCd>7TTLhIWaZko z$IjJiI=v@1u&JMh+ugA}oib9VcZJkSVT(OMtMyF;c2lmpdtN9ka&ulpTRbV}mT`@< zAymebC+wa_t2GIPNc>9oHPz+k5rjc<O1iA9Xw++cc&zSuinN(W>g3c$wv%3A+Jtut zAFF*{Zn2SfiSl>VD>~9kx6I4*D#!be9N#E0oDVbDGNGELb-UyRIY{<Wr46S;qi4b; zPK2h~EI|9vBHHmuY0G?Q;$p~Qq&@ebg2LNN8SPz*=+q~FLw?;Kjo5Rs<v}=KeQ!x- ztMLuFbNDlyiAQeWAFSf%uz)6hCnpjess1F+G;sJ-hST?A_uNGRQj1^sxh$a1-$`Af z1;dWe^5Qg9x)hE9_C%wIj(<`rMU#h}fg(El)vAcj9@~4B%_$&9qK!Ra)4w7V%(5}^ zV-X4#(GE~bLFCpzy7wP8G-2hF?F6X4Q=M#cKM9H4^-DJrLMd$MxBCGA{K4(Won)Mw zFBjN8Z?e4rGi~xjU7I)Au7Fti#O>S<(ZeFvN-7+3hWTuF2kl=+y+MCq4f>rncEEEt z1!N!G{}yZf`XyMv)-3uQzv&j$dOh%rCNwl|SL`qUiS4siKp#Qr`70duS46WxT74<8 zBaL6tBpqTAkog-87Vgt!TL<P%(D?Ha^zK5sQD9zi!IwksocjUY-?KxY)JR5a2ivN- zh@O9Yxh~{(O}c-d`WcpO#rGK7HI<$99=;Ed=NW7fo%fo}ud@M=Te2b=<n1G#(uiI} zSG<>x9?k!rjqaMw{UONVWe2vl9;>yT`XQ9<WtVdZbB0CfMt8{NkL?Vou;U$4BH0FZ zk5a`g-L+0as;%b)OiXP1KiU3tS*cf}s;&`z5$)>s6EI%DGiSyIl{XPchq^+vghH0S zi-wRD(Z+5+wd5*RpI=43cGv&1W3b%izh9~UJ+9H0$D8%PFYCw8^}mntdanPC+))Ab zzu{_$otcvIU)CV*uUGy{a1yDj|0SeF+J_6@yY}rFfy9#ZEZS_=Pb%Ss&&ZJ7|JwWl zr8|R<eug2gX<F@w9@SobbJf6vwBaXyozt>!SHHWY?*=#SY~|YoQfAV#Z#}S?p1llK zGx!dvfU;6x<k_sU%3dN?h__1wtmA|nas#Mr4JIGq&0$Bvdz6(1Go#NaYu`Mf5FQxe zwvDQ4iE-j6D;b6XGMtGUEPeNK#k~YGf)%?&G>@zC**ll+-1hI8kC_FLcL8_9zIrR< zfu^zoW0qQY6Zgs;bH7(1w(pRI<ImhBL{WDC{j<xQ3@_GaH|4Lq>D0S(=hx|N^8gur z6jmvNT1*kxi~NKX?z<{S=8K<JH_V%r2dq&hX0UT+M@e=BYOpWiAAny)UK6R8%97^j zHTRaVWvztV3=TR3%~Jd2t9ISESyA)Uc4v-{tprwB&y18vWo<Hh)wT@?3`OvUu>pZs znXJZ6fi|SD!np_=ipVBN<rEf6$I3xQxSByeWXECc2qKmTBKu?p>68yU;~)(NJftyQ z#mUC56NOdQNQo5IN%O(3SBV9K$No9)V%;S#-3mw2^8*<2duDE|d<%9L6PEco^9lUM zVH*jU2H1f**bGZy)pTr4;ra%xCSW-%iMj%jV`$OU@{Wb(XgfsMT{gD;fIo8CF3D#b zk2zL3g_YHba%^)H1bB=8zRIX!#H{m<NzB0;>wU}634DKH4BmCl^fU7MBm7b)?ZL%I zqx1IMBIkqdnQoY*)jxxG`<BspJ+uafiPTGB1vcmv;%-_ds1$z7#cuUK68*!4p_?Wd z7^Ks?=ypI=(A{YDt&VP1NT=WK4$nIMw-o~Fk^aC!>L**cEvH|%)9Y9ux;3cqY1&qW z4Bn8QZnV$g$JXmkw_|<eWALV9^_l)}1_n|y*^+PBqo9kHVRhQWZp$DSL*rs#>Vz5R zS;uU5Tb-VM23c~a4^u<*cY5C<=6S2z-7wa{`@U`vw2BJL!`WGeuzJXA9VWB&x~sDp z;TC$<G4!^@Ofmhg4QmqSv0EYLh2HMKH%QIYmYM4xbTGu0@v*|z7wBoSmSkX$tu8rh z^;&PiE)TYsm}t&Oz0{VdgI8=14ZX+A4c3)8d~I4CYiQ}@?O<@mor$R%?>cSW{F!tI zCSQF+Q?G#5R;z+GM8y^Apcc3T5E<luJv2MqF?9NtZWzN0t25}A!0W$<RR(j}0(H)~ z2O0FanZkk_7#~4Vq-tu*)Y+QiPOn1VpX(s2!F&c^c`df2Ojv<!OZ*s&0W3&Muur67 zYD?Pt`rB^jt=@0zOyU94?0v`7OW-3rFoSQInrwRBw_t9D++3M!gxL$f?H~iTbTPb~ zTJavF!ks$lydkZ#cO7POkpd70%uW=?_!4ZNM=k|>`Y&4*uf8%^wz6HlM6%WClCge% zPp%wia%qom87CF~@}Ar|)3G<h(nX~U)8!<-SuPhp9Ua}>-Bls^zNrRdw|e9H9(&4Q zAFitQxcd9z=>KMi@Y|!Fb>z&J{CPc68HL5`po}xK-RVz+3rqe@9#)7P_|A--1qBOx z>>!_LO4q$hDD!C5>B?7}bTv7at7`LZe0j*K(q-X!P_<qzNoC8rb4WUMFLQ}1Tdw^L z@L{EEw$-m9*&=J1QJgqe@ELw9VRY@x*&X;0XUX0{$}3wljgU7I6{K9&YY~5we~%Pd zwt8Cqq${kKJ}Q$7$9FxL>7*ALDIZ}U%S#thXVo$tS8Khm-sX&FzfWG(ULu8+EwIiI zw*IQx*k9NlsW(rM!WK|KO`Fvd31M51N`4r%i1ww~)EbxC<Z9R@jJ6jxlCtMZ*w~K2 z(-IqvU@4;Rx^`04_E&3oaiJTdUd#Ly6l+A6L_sl7Yv!>QfbR92-%SAZ?hbu&$sU!U z)swBl&aGZ|@IF=V<SKlH>P;PcL%+P*$rfF!zo{i#KrL4p7}K4}DY~phWubJ0k4@?W zIa+A8{H_0q^ON|aZ{N51gK_>7`vWIl#CS81t+bX`iH-ei>7MpqP_7F5p8ddh>hmDf zktN#f31)Ju5=H>6l591$`kGgTb=EMT>7d1<8FBXmC&w^KmtsqnB(3dL57zBIz*cM) zP>xMc6cz$W*JGmv<V8Ts-?UGsBp|#D2x7`r5>v3nrLxuAS@P2={d!Df@-tU=z}y8m z4*0^7**^d7#S1h|O}f-Omj=-+fXJU9?jR*DpwwGVV)i<q4O)9yuh)+2umdTxd0=WB z(of_+;t%Xpf&GuvwNi<^K&n_kxwyQFgsi)r5~x)A89Pg|#o{PdHZdKC{5oHOd$(GH z_62$8O>0$B_a{W3RLMn^YOnaRnXRTvcQJJxACFj6SxGLa)Cn(#!n>bcZ^aMX*=?Di zLVD)wAZ%aegt5%Nx`O=<!Ebk@OVM#EdGqQ0n)Kn;4OY#k2XE7(RZ>{2E~v!oS~Pm3 zHKPmQVI|2{okJli6;SPt^U*v|o)!@)rAy#()56v|bHDW(O9#o!9^b%U<I_Uv()e6M zkFDRAt(MQVi%RoGERsXIjvg&9c0gqd=+y%eWGm+7QYJ_{93S%M0J5a0cUdR{xNh>B zR!JSer$d*OeSWs5_%$V4CNH7Odfv2loSuiM&=BHeBaV{|xwGK?PArkz_=XVm8gbNX zNCK|+5|Fuo^-;dZ_NElVS|bi?4Hd`0Oy=wZCHq>VztujS{;&2$8+I$nLGhnhorEyg zh{If?xG=}gi@3~RSOWD05|QL+o5#K{r&@)gS7t+qc8xgNHJ<XiO+yH6jX1P5BtzTY zHo~x3u<zkJh*Q#sq?!oMk@U%(=TE>#F2OB2VYeIfPzy1z5y!xWBx1T=tw~Tm=Sy;n zMI$zZh}eiDV&h56RK+^gq)=6oMkY0YHouL*4de%~ju#ZmiD?J{un`Bq##5fiHih`s zjN@BV5=mBV?77U6v#i_OQ|;&5TYivr*n{tK9Aq_x2-u7xU{fvvf(m;)t`$?dd+@^S z^yl{W6VH{>Cvv4f!uMa$@HgqhEUeiyg?QPF<7HD4dM2%5s2r#nYSZKAUH9oZ7cIdX zVNAMD4p!-~`w6S15J8)91Z_&P(xkLRCJ9X;ST^He*_2ETPh_%kzGjm3LUXPcA+k2( z$l8=n8YRydA9cM5A+{NZ*rs%vDXHPcdO7GF_Djmwj1Zlhadd7<o)=4Lid{28&~C;- zyQwm0#|8)MCEMb(!pu#COeB;EIr^KNZjoA{t@WZu5em(WYHP@elsWN~mvN~kq9(M2 zHKECce%X<CbKIMtn#iKi5*URh7t8k-8M#`iCbA{81TLW!mCs_u64?-10*BDlbcDDM z*B5`xieEV*JVHz85!zE;Fru1>eb5r_gH{~)0kUVynJpZj@f@(JGSx(agO(s1G|2$B z_c6dd`OoRPBSoirR1^6OS^{X$Bw?rWvcn#c)4oqiiR*7pYUATq4GsMehiW3*K}+Bc znk3^CuMIs;)p4%IufhwDSasGAN-0BW7euLG!)l-nYn`x^B9@+%v9tzRN-0abFiW`x zG~#k&PoU`<JSn9o?ZPLa<$Y%M{ykp1`M>L37qBGY-TdF$ab2sg^M7mfSgSqre;?!Z z%>RvCTLJvv&D9dSNF^lT`d^X+j1x#52)Ha_UdJVN5voxkXZFl>=A`FNr;g9JYm?t+ z|MnKn{4$tSJ^vbCZK;j`j2v5KL|?)S*djU>v(i=IR5;tO5?(TcudI+U!NxfoP%w5t zY|rm;YN;awm&sz~FTB9ngt;=X04sH1t*<Zd$u+nE@I93bY%0eb;`CC72QH`F#RzX0 zQ4B$)6mypRYO!!^jxw~TQ}&mx6CeQ!%80?(C83TPT;^brO!`?iKa736HMGtLMna=9 z34>3i*e&Gwt}=#jnY`~<=fu$8whYEs+9bZktQ)RICPfUJ&MPDcmv@oPst>@yqKRAM zZDCV8bpT?}jnR8z%2x&q>_M<rj1LQcM5?BeWDK@=-m=UA2TB>bIqX`@^4=JO-ZnIg zsT1+3)(}puK2kH4EMu6oHsfV64N}Hb2C9i8raFV68T~;e!8V1gCZui(fySWQAZBOv z^-xRhQWB~Z%#&`wV(PWHrf=3=43<5sl8B5xEmp`fMoOd*K)l6ZndidAsH6!O3}I1; z8Aj$@3emtJ1!Tlh*0rvl@%z|gWR=9<^{ci5%p|;tjg|Pj!vCW4f0gLoGHKh>@oLKM z#M-e%PVa@hbh1%JFm-}}C3ADKf-J}%U3#lIvI(P7Xm6R=%r@E6%80+@O;%HnT)K7; zzJY~Ss|505ZA2wOw@ikiUAW78mg2KQEa!7rBo|$%W}`fJ?$%8u0DD@xQ=asDb7ab| zl%QLVo;tCn)dBHV%fOw4y%<1|YloG~kXpH1uaO@`YcEv^v2I*svlpf8+%mad+5GIq z38LcCsWaYQ#dq#>%Aor0oT-dF%~MIsEtB6eMn0O361lr^$2VkVF9O18mP?OMmN-dB zrBrfq!6#iUVf5kCt1<5{5jiD6ZY+pXB?cF}fmaE!jkilk$rRFPAK2FwVVttW+Q+V4 zlLpx4x-!7)*W%IjD`e)*u@5E`Vr-ET$+Bp3k0h&@5=@lmcBJ-X^jY@7{ciP%uU~=% z>`bH2@h6&bzxQ8`*suPHWo~{~<l1;N85|)B!e7YgDLDv#IwW68{4F#GSQcfQ+ql6s zkW+Ff+V|SV;u|F0A|+A?v`x(dDVsuYZQ=pSd}~g|-fGIbka^$$+_61{q;~3g3-(|Y zk{6#qZc7|UWmpQ}|37>G!rnG=?EAv`D9DqY71<-p?8cQdan{k;ni)OuZCiHMWaZ@L zLy?fgZHnY3Az!kR^VwfCKopA<)k0MlNRcr!u`P<0s~X+)?@QIMzj{|)=5)SE_APR1 zQe+x>t)tL8_&hcl552BAQofnp6uw<_bC=RApItsG?kX&%{bpI#WxCZMA{V(eUyhW^ z5VZ38oaXCEbACJ<dxOlIT@{aW+MTAkujV^UuNtK2BCqn*$TWR29S?`xn}!=?>n`l% zQV0cTy0qwBR?GdsE|8Nz>e4K(UQ<)E1UtKU<CME;x;f(RsxM}OIGq>N=X%PV8A_ma zdG=SY^J&`U7SBtNb7|Hy3x4(hg6rIL^Qr$-WU5Cd<bKO8fAFt+^1u7(CvMjF;$_YM zR)NxbCI4H+fsVfAe{bUTE&qESd?fO}i_ubru12!H4PoqC*0+4tw^rU?Z_Wq3v3LCA zk#{^Cdc}8Vc`u!%(@!b;Orp7TZ|{S-0s5j!nl8GE`G7gcyEH#$RGv?Ey&unBJSj#G zb0yYbhWIcK9-~=WrbhR=BXb~kQS42Xm!x|yPoJN>K0C=f`;dD<TZ5_KT=s5LN!&bh z8cV=lPLldMdul@b%q35%vD9pyIgMpeFST6$>6<T4uLk{T_p?)yS%VqUYYZNYCO2;R zdktniGc9T`Sy}k5ye6}cmrPBk(~;9%c}?aLuXM}vVv6QsYlBI`(kZ3?rm4fSHw`wK zL(H_O!BpW{HofWPYl?i7a5tKp%o~PnSaa!6_j1sCfO*1P*6zPoCNSz~oizWaOC&9~ z%QcxEEY;<jO!S?<aH9?fvn+2}bFTY%@n^2_4d(l@$4i6xzD$c6%+tN&(Q*e&lliwo z1E$H;T5g|fGBcKGQG+?JxX+c_yxjiQWD=}ce`_!uc3ps;x9H<Zcbbo7uF=$N*i8%) zY65KYgM^yey5`(643qomlyH;ni<7@}ULF5@`h5A=z4awbf}pK?J*Fc98L|3E`-D4r zjVJm4PoJMGIh1=6wN=vUGqaG$$+2ra@nhmMd3k#FzH{>W{ky+{H?1#0I}Wr?xx3@k zwAl5Y)VTg<$&-`UA6~6=G1I&JFm7F3Fg<B7ot9~lM3StoLxQf__W11V<lXzu`@g<D zIrwtuT|Zh$oGJI^4i3INDsD~q@bYB|a4ac~`P)y-hE1VEMYizuBj#xwIjweWw^D># z#pkY@-eugo^}<b)f8Y>BIj)b?MBTM;{4lIPbdZn52wHV?y^o8r#&wjM^}GII*0=>= zouiAOw{Um8qpRVO>n=4Pc#XU9QIhc7E!ArI$*y-7>l)Y926Kd&7B!gPJHK_RHy)Yf z>#Oe6dwi3A;!j_j%<)~abw2SvACAwx$7RY>J^`Qgrh`c~o^sRSs7b)h=ND3we3@Ir zk2{^u)9$2GEM!LMXD0*#Ih)sQ3A<!_`CjKT%{t{etYcVio!QO#?CUH`ugwR{ne_qF zHEN<SaZS0-y~Cy9x%?IT5m8fq<sVVr%Q_d+@pUJEFq3X}b+FVQ51D>7m?3PQk4W27 zbB3LF;g^~p-Y&-ZQlqmyqNWkM?~~r)k{S1lPjLr165Oy7+)%Ed=8lKNZhfS=VWqjD z`0?SLt-pA`X#P?9C1W;xg!DJ6^f!__X}rrDZp%kVouf*fBN=tZk>(D8%L8XO%ch-A z-Qi7ouvR*lejx#mDglp#QZ<F5XoQqFs+2gAQR2JWezm9PmK=!pDWuF%rOc6xGS}!+ z`5#C5Us&6l*e)Sajw(@(WJI~%Fv)F_^$6#CLc*tvgqvfJ_2Sm;_dD0!tcRwv2X|-* zci<x-k18RL<O*a(20l{fs8Z)hMxF0&`&q9$ns=MoU5(E62nl#p33wzU;K-xFxR(tN z@;44wZkayxj*gDF#>Ysr<4Ut*8O=6}P;bqsz8U5Jpy+^(k&?%ilE*Sie#?tRue$As zKzE9fddHP|$1>`D%a>aoIM|I8J+2fzmQnP=?pZDdh0&AlH2){FbUHg&x3pf`TVi{I zbUdzfJl^JA<uQ`sxRT*mMuyjoMW&TVTH{JuV;N~>Z4|9@t#>sT_L&+R<Khgc&S*ws z!JFk>qq%F$9r73na9jy+Og*#qTa5v`Vx*^WrKd6ZD7uD$E2k0ow4&%D>>JpTs3w)D zCKORMAFNNBG9{0l;rKG|;O94&2W5Ko@8?L-Ll3&qqaO@D>DOO>ExJ>#RP2JO1PN|Z z32s88SJ0l(Jw8@rLe4`Z!$~E>3GJwx=AmI(6y2^kvM!@qb*Rl8>j~22q|)Ss2(~zi zIFON&bFk_UcR(REPAWA{Xb01gj_TjQYo5jJhw;oa(57+kK;?sK@Q-wSaqxKcLysOk zGKmH*4-E-@QVD%RBq|<7etmCO9-6V8`=F5gCzbpsw3FsY2lY)~ZGN2Yar;o2>lM=c zq|*Fkn}^B?uDgW7OPYw2+F5u!BZ*HciBD(}Uu!&bFOo+B-mV0^z0H&4HWJ)+CAe+* zy=ta)NG#ixShi)>tnA%$^aXRS-$wG;uH>^VcU-(Q*Dw8HYDOCgWV;f`HccS)k#09O zsc$1uYgeMyre<8#G0-xpM?Hc&wQnPVYgYo-rU@L)kAi`_jBgHFtw$vbS8@9bQnYrZ zXl-H!_EAKbQOV6Q+DQA_mG-sCN!P?j@Y_7Z^sXld^Kp7u)wOm<Hy7Pr?o&D~-+AQy z^Pk=wpPo#|hO$2YAotl}$N^9eh<BtPsTxVRcRaf#U%bKSVqCrhYp=4K4rb|p^6yz{ zEwK?6a0DXLu~x=y<zG6SrM8D%=GM7AJ=MYxg%(g0TC~M;6dmygpHq&YYGLL=3!n?F zZI;HW7N#q-0I$%Zu5~HH!abC!7Dg?!fVI$SLb;i9Vb#Kjg%&UtTH6FSsuqSRw1B42 zlG$l?pAoATW-GJ+uF#TMHFDD$ir?6g3!@iWz+Pw(ZvZ%IMU71}RSUxyT0moHQRT6Y zjq7HbD7U|CYc^^J>)!$nWTOK)J5tHRowH5vKg$xE@8^POjBP;smpMZV&=8T1T+4TE zR9qqtEzm<k>>;jESOpi5AtB0;+$o`2LJTb!Lqd=ta=Nnl^>B4LZa&5hl}lKn1((PM zCR)FXTVp!H4V6ngq6Lu1MkHd}SVfq7_G#F`5{vDEWF&+#;u?kJa)Bzcv5K7A7uO7$ zcIC?t*3kvkh=esVACx=9oDWE@Ll}dkfP<uLASCCfQJf;-zP|1N32#a{pB*VoQc{3Y zQZ|;-8aIQZ7U66_a6P1#czz3@AF;%k^pwy8Xyo)rVQ!NGaFY@uH*t-^3Jj1YWur7X zw{$hXbPxEL-lPEEq-^{qw)NZ@B8D_6pfo8VOcU2AtdxLhQbL?2fps&6HYuPsDIshV zBW)hXXRc3JOo8vDY=EbALAhOnuECuQV!D$8ypyu=owz2hTQ<ub&?wA=QUHZgHY${> zC**bW)7;0W|466R#yQtjtd>BVQa0Qa*Hvy1^p~i&3+(MywGX4E6tJa~5L`+i2x5$s z0*;gt0!h&eZ3JQ<rcf!sP$}X?tYKJVUdoPvSQ~*$rO03^!qmB`7>Gp_z*LGzrXqPl zj)AIW{@1|nAx2p#U|A_5%&M02+^C2dRSF<gYO9yGDvX;_z?)J+z$sJ0!8Hua9AKxE zjXUKQ4eu^c5(tDCB&C2PrHCl0X14}|B?9~c0pH}}u%S?hQBMk3Pl^b8qVM~x?kdc) zgSo^`g&9r?AWn)%aU$h>)_XG8JN84u$_v;gMdCJ@57IB^zL=(|xHnjR0r{kC%qQ1J z#TFv0l|Xz_B;*sV;a3}+-O8BuqyYD%sF%Jrx&?&!PYM7~N{9f(H44iq0G^aQ;fcNc z!I&lmoF*j%YFf+6;#!J@5=cync>8J?)}W1Yg(F<LA!Ttz3QYiOnYiYZubeWm$2b-} zfGsH@+7j0&ELOlvQp9^#Nev1INq3$g2^<|^Zju6UlCqJL)&|s2ZRO|)bCeW-l$4F6 z#KlVElcU>5Mowo%n4zQqqNIc<N?fC`i~%W0*-%NYO^c3-*iDIb4me24214SFQ||l# zQ;-y3kdzPyiE9+rG+-DhA&Ai(v<$ATSlj?kq=e{1HMx65{N*~ZbSc>4RxoNsNziI; z27$3c3b;bb1{Px5xMm80y9s>F4hmT0fIp;!07P7)uyg@JNZA-d&J8S<DTE0^3J^ld z#t?Egevw#X`oi65HRihlGb4-_Qot8dHo(w2GWs@VMVKa}04JnuJfZa<1Hx<-n*R3O zXhCjgJA@?@I73PZG{iLuOD5ogl#LhU+{!qa#w8+Ru8;z-kg}15*yEQwPr_6o1y~^^ z#1-NiwRC&t;`&UPRGPu^74#Ilu*3o3N7)cR&T}FH+Yr8H7G*2U2T}kCQZ_=61cQky z9vB9sfCi*&I3RXx;Lh+c&PM^yN6~>kg!pyq>W_tDv#*B5Vh7M3Wux{qleGN(8uSv^ zC#-kC@KHpF4^LWbXZcS~PGA4!*c|7#*sfvK1gwuDa((K###J5+<5584Q8pY;^U8xM zI|?v6%EsB*i1J`gjsjGD2RxPG+y8TpgJU0CB*&IbR_3u~9<q}e*^!Jwj+J9mR?137 zwooWJ$sWnh79o4@^*-wNd*A>6^T{XYIrshC*L8ir*SN29KL<LFifw+gqb$0;$=h|Q zf2pN(;GVN(EVHl=Y1?}^npySj@?cfvSBAJg8RDNZodnaKK6c7m<TnCnPytD?v)_DT znKpzw)FGYfM3n)xYBpprL_8JS)`SsXk2qa1V})N5S?k<Yn8|vNBQL2fHXa%k&t?~p zP8!PaBNy`{w;h}57NN+Whx((hqC(LVJAb#vc84IAu)3plkEoa@!Jp>Jr1I9gpIVla zR2H5())9ysk7-bkX_7mYd#xT$vkj(I=LT2jM!wB>lG<1{&1NARH7@h4*aZ2$!SJUR zzNPyOT6MdmID(|O4>^xszk2FD?J-YOF+S2(b~r=)IAd($x0>Bp9Kl%Jhdv*PAB0M- zhH$lx7n76Rl8kn~V%EOZ2%p6-F7MVKI?R(fAVwHQb0MR-Zta;mJ8ohQn~v6-f7BRc zSMnvX530tNSKIqq1#7<MaV5%yIVaOf)>+zS#uH@5yN4})i;YkFlpFjh*KHzWVUC?( z%@J60Wc@+j$ggVmGmhYA99_tou={JzyVFkE^L?oKJ_+95{CHk5t`$e*iX)rZ{c&|# z#&5o2IA1Z!FUnqcod(0D!L?7Vdtlpf9}<0EpB3h6tytVs;47&Ew)-R!;!P973Rz4Y zgO_sMv{@GK*Q^qaKhoalLv8e_JkiTlS7prg70dRmCTke@{KPgpjvzbk1H@Y*H<KYM z7ZQ~lo-K7S;kl4d`A$Si9S?jo>Fdp!=Q(wZkxNpHf27hi+F0jZwDPE(wR`$dJ$)R` z<Trk9yS1``d~pk1_85P~{JP>9#8{og#v7!BB2+N$gQus2XI!ZWsX891`na{!?oZgk z<0tfILws@tOBW5d?wdWX;vOO5SI2$rQz6&=bT>CWf~i2bQ4OzAjrvHuM!SUIq`<v0 z<)EH=-MUSMiA;sbjeV?^QEsHHSTShqY~p49i>*Q7Vuyw$>*uirQ**^mS!?7eH>`g- zveJ=*0n8fL*e7uw>%x?3pG|-2(_D`qz~nYJ?wZY9DGcdTqmGn#>+^ZBo=WfnW%o9g z;B71yo7=9wh7|8R%cV!sjQ+i!Me)NXl`F;|scO`9VzLwqCmDJ)BYxT?eW;Q?3ESAJ zt%*8vf>B3c)R8rT3`}?4KxLl<wx>QP4KX}bH{A1nT}<YWE_v~FeE+!UN^!;t@v&#6 zqo`clEvRlR*F$HGSm_hl_9rG&ibI*Jm}g(b7;$3h@O+{%)?e?N*ZKE!r)7gK-tVmc z4q`cdc+7S&yXY&V`#m!&<NTl_ccZS%dJRt^mg~KfMwwxG+hgtxU7=_}_l5p=mU+*y z?jn}Sbgtxa$0e*Bv?2}qR&5+9ZeW?IH?Xe$Vbb&_L_IfBDm`1LE_r7?u65&{sXW9e z*R7DzM6$?4zTvw+?XuH>Zu_VW-EB89w3}F>^S5o$i>K+)s_U*I2HL|(x1#I4u5JZ3 zACnqh)p;|UM$uoDS2nOR^_#EObb|S@Uqr;>-1&$y#Yci^o02osM4!ZL+@P{|)YY_a zxxwFZZ(Y4M7J5AA+Rtn>-5b=&az3ahR4@6BKb~>n&O{`1Vb^hH*O93pVyVN8!kDFF zasAP*y*}^n$r$;#)-3fQ(jJ$<qq9vdBh=uM#qVd2q_wD}3Q}+b<T!{E6M11}%Ad@| zx%HX8305DWmMRJi%!!Gk-J7cY?n~=O2?UQ4KIDX^XQ|k&#}ll_b3F_y<a_aGus1J> z#bC=7a8wvmJ8}BLDe_qz@3Z>&j9i((O{<??E(T(1CyuBSN4Bwol#U6-(3|p%Qu1T1 zTcfz#)_(Z!YXU0ko>C?)yVuBeuL-Db+^X6}d-rE7Tv(^*-Y2Xzum5aTeWN44n+*~h zDbI+NH^=_D&96)Bzj*s_2YhJIKfr~+QFi9qXY04|1aITH*a8O=_g~38{;I)3rop14 zaty{~Vk7(Mc6x(o-KIEm)AyL!TsIn)`#TTHw}(q&U%zg8PC$dyc?%4AE&K34P517N zSjae^xqV)2cJ{mRuKmb2g|mfm7q9a7T5<xJt_Pxl(pO(IwPT(>@!W|Ik`?D}Q*U73 zF}->oYkVFRl6@!_Bye%fg*l>hx)60DZS`is>LNdH7Kwd2SJV8t`m=j?X3gT6gY>og zA9^Pb&X@zwwmzPD3Y|#bYOq~B^E`JM>mhU&tTn1V6w^?66}L^ue&6hxZr0hao$Rc; za<A-4qJ_u_a}_22kY{y2nY20X?p}{#v8k3e*}flixOrZ{&GlqqYtHUk_p{z};jS;_ z1EWUi3ksvATdNdi$DA8+Rc5rW<Ki+?E@)ZgM5jf9-w0R4Fq$0e^)611_?tXhJUx*P zQaBs{+i^Yp=LebYPG@gvW&0`%LN<DSJwBgQSg0fnF<QTEUcz`G6|ep0Rn=CHm~X#W z%L~^8vf_#lKGlXfWpGz}9zlgO(fIVP#P<OgM~4nKz26?Unr-z8M(7&EwBgSfeWrUk zB0EpFi|lv@Q+If?_tRfKGa!Rpuv~N_`+z5Crs%9$)_bE|axrx3r_A|QyUaE6hFSKi z&j&sIO9j<I&0a8_w&IT3ZbMn$-{1K6TInr)#M2(z_wIBPem?Ee+Og9f`+j6nzH;Wb zKYL4r*H1qCrN8)t)R#4j@}xW2!kuUBW%WlE4Kmx`Z*Q<|ECxOh?wr<cNG<5qv&_oy zqYn*0@2sldIB=d46mwae!Vh(r9g+=rb;RJ<e^;l@-skC4Nrt^=NA)G`@6!S^<ivCQ zeID8Sls(RWL*yggkaCOmv;DH`#7UZi;D<Mly~JIn79@W3_pAZJi5<)q&J9}}Ed5o# z26hs)Rs^g*Sia<A*K+C6QP6q4dbghK!+R68n&B~-Ps`GypB~{^+HV+pCTo2>F{JCz z=rJJK|K4`HApcH%eYU8f+U=A%^soX;e1z@?!Qj_?ckBlphK9ekU$+#TO!+cnEMd3& zv!kDL-PqoVS}AF7ColBHJ1tm3r{NW5bJ0DPxMzaN1_F*O;}hCeyfS6{&yBNZQG3T+ zE9q|a>piKT$)Z1|NeB%Y8A&|Y)3CiR)bL(I?S8+|k$He2hpA3}Zr67*8ULr(ZOTO- z7S}CkE&fVY6=nQpnJkon#Hm#bns2tf`dYE^vM2GDbjIUJr%H0M#{{F+vgt2t*0X;G zh|uy(p58H;)N`0mv-GE*{F<;tE$@lJBfQer5!h)`dG~>+)`R0YZu_x1-$~}!{_9=> zpA3cY2}wmezgd149Mbv<`6@9YU28y0oENtI_UVY8&~~ri#oqeiTCmxVYjhXRQ=A2< zH(pS@2wWzoXqe>?y>OG34>G(uc-p9Kl0d9jmsDyVbxk4KZSwKa$i~zA=aWsTEXF&w zGcDfuk<>{>qeVqO%d`j9E6hwbTd%FIQo5AJh0Hv4>|~~BJIRu{`_PN@I&0G1(W0`S zaYoP5J73p5@xSP6$UH@#K9s~;%w{l%&xX{-u?2@42-<R{lE=e8hL-$py_%Fb+m{je zVuiuLiRX}Q>b|bms@1_GRgvBVW91=+8poJHNy&Kz1Mfms_LPLatHsAN4-5IlR=$&W zc$4>#XMc_{y=&ZC$LkMdwC7oIP4@9;$;*pyzX<YB=zOI<yApD9Y?X3~tA<CzndWFC zn`UUc_`O#|vIaB0$}xW&l)^O9F>dWSRbu@@{wWoL?YWgqzH&{#C&|dtLvK8`q467u z#PQGfEd|q-ZyH~z?-HfGrh0PyHb<M!t$fEouiJ4%e`tCtnW>AOe3xU$6LqUMF_;(9 zlsdRoxLj-WvhJJc{6?<Ikgs#<@5p|3$@vtFl>Wq+h*QzrSSV$_nZ(+(_P%=RU?R)< zJXKMqU2@K+5*>9&j<kokn(VzmwwoWc7*$tZy?UsP$^*qr(;f0!|H?DeVKwEGNx@~Z z^eAYMS31h2BHRaE`d7Yh&NUjTlicsv{A#qMRacTPXBPZ-rp?me(zuoGly_$1Ma@80 z{<kyA5^F`?QSQ2;Ib-_;!RR4N=OIf?+B|jlPJze?qL4c>T(`X~{0rH{H5E4E)xy<p zk^MX)FEW&C<5l)GD`;w<DLS@Xdv4J8WIq4ui;k>ptBo&w&PKg;5qTyp3)4%E32Vv5 zOMyd0j36V{D~zun%LWowN6ieyInm~rxOa+NDP@!T;BRj9?WTTdy;hujOuvxR2A39D zqg#r%`e?RG)IsAx0=nUBr^8An)oFP7vy6;oe^Ko6d{fMe#f;P5lic*J#3{X@l0{Sd zKjg&=N^$$Q#EC$Wock|DqDJea+sWjo@4fa%^L^H=lwR;D@8~)5_^}e8-MAj_v6Ne@ zM*NeU*yOK5rnQ5X3;u}DW1PR<>~-qg<U(4AwfSh*F5f)J4qF+DK9f-+327+V{Aa8c zaPX7M!5MFMJ9O$e6IT^IT-wBn;#?>+b1X>(2h8?UA4%69)?2AN7I_Due=27Dok+ey zBe%JR(Z1w_VbotvsKnBLEoHv_PP$AEl`MKZc&l+WUghZg?4!>{w#txav8Y!BXHi2u zmC^LOyU%$v<0q2tP*sp#qN5L@gQ429>ECczI_ELGvo`Nw#r%=?hOcSPuBH1vB`99( zKk<U^bJy0`F&eei5Ekkykf}YMTOW|t{J4?zVLe;(-x@~FLecg6Rr%5Xgc^f^LJbsx zLNUZ1Z+R~U2=_1M%015?*00Ta8CY|*m~_(SvGc~fKF!zS3@RRj@`)rnDk{~7t|KZ% zDP9zs`45vBS5vju7UfL${tkX=P}&go@is{RoUz_J6(B1!(QEy3rgi9-yE|Qv;`@&u zJ$k!;`<?S&N7J0&n2(B@9oD^0`_2la3Q->D4KA8SU3C%phW<u8c_F#`mb^y)kbBqE z@K*mH7=MvV#OgkDZF^Ld=|yp?U|%aYZue<f{yzs{%sVj1g<GyAsU`lUNF5@2_Gg)s zp}^v`7_|l&nJJ+};<*zMF&Q3x?}?)B37g>Klqq$8H|kKWKZ&m%YC%J^K%C#cyTm!o z;hD@QlhrT6^+9Fz(aVP4N;|umjk(qOddS<UL96t0D`j1Rb*$pyGP3*b88{`2t4_lE z$!MzFr!4&;6nZ0D<Dc<WorT1m6*&J9qWSz9X!{p`Z6C?|U{!eBKV!$Dz&$^!KkjJt z+V!E2B}6-8HZ{Zt24$D3SO#{b3zy#=D4Fa`Pb)U|TpXN#6mVmdz0N@W<gu6fKX)zL zr+Tik>0IzTYLHKIJ}t~5@#?sEUD5nRXi{;<qs@1(@=m<((XzZdv#=ZTDiM7Yq1rXw zwUQ6s|GDE|2dA#%PMrN27ilcFc<s4kL!j63@!8Y7^T0cnwB^jkMUFz1G_Z1?TkpOI zlt+!kT_0K(DA&vrl|1$l5`3sG-LU01#uBrgJY2G~qvv0(z`)FTLS$U@*KtYGrn>y) zFIU3+TL~cy`Yo3==(kc(<GZ&SO|(i6d7}0W-u=T+bI<MeW~MIBLP~o+GVd~wB<d(e zfu3#%&hXPr4)XJ;Q~x}6dUJL0i}j`UjgiT}=T5kcMH?R8j_be<ov)J&d#(S99BSKL zv6o&Z-CveIKGfK7`L4=*8QM%MzqrAs28dcFsPy?YFNw_-rRwRrNK+i=MPXFAuUWG1 zEmRQ)hHDvq<7kgMJzLdH=eA~Ns{`nDkkzJZzb&o%vQKJp#QWY_|HhS=eYJEaqWU~0 z(DP>ZGPt}kqiOTety-2k@DO*&`rSD_!fE_(@v<)&){}o1PvrZz_`}P^e;0v^>y?pa zIbH5rCtgz!Hk|QZGgklg#qx?lTV>}DW;(%|RFh}_PXK#p4{rf;QyG|>WPgn{YB3Dy zyC@75rCbVLVmvKq^SOXJs*dwEO8d`crpU*n&HOBTX9T)JiMcny8JHe^Yi!*A>hYIA zrWIe9?f%Jy;5WZC3N%F3%e4(w40@Sf#qrXkO{aM4wdu}^s1fq$p^wTX{?a*Vcfi+g zua1jUjtz;H7?kYuYYG1xng5U5R_<DEk6ngq+kdd5`7gt@DF|Xkl(<&acMhF`lU(z2 z{fexPkbf~`$iV-d`6bJ09510HDx?FG@9ok{1&2DBuUG_3R(YprHU$nAOS>C6tXG(? z*>|>NI#?i{{LY_v-u@8@20>{s2u2hbaE-i4)rs)u&@atBvoQQed3)Z`u2;`MiIUKN zqr-~?-sg6oxQuJS1oBY)({j<7{`J6%YHvc$qGu+_$rgdfbNm~&L%jm^)CT-J4GL}= zweD&zjM?7h7a!NG0-wSJytYz#oo3I^UED9^Ce2EMNU+Q~K@U3lAbIS5HFlyV->M?= zJ)h_+y+7eyWZ^t9GqmWvgwirP5Rd#H18>g!Bg{h_$bvSN%b2EFP`_02g2br6cWRua zlK6mj((vyrI=-6JODd)|M-5;4IL5T^()2}(6QMN4T~mAKSR(}Y36Iggz?M@K)N|^b z=7*F1n^>;@ODvJ=u#Z04Z<cHKtzpZlCT+b3>dCubxT;6~#)RahJ4z>V8R%|-$hpEm z9mj&3AMB0|d+P}E&?kfl(shNpDaDsXzl`kX1ziR$H3uzuX>yd^JNY78ZU>h8Xuopy z+ph>)dL-5^y_9-J$rU7Yu;=V&WOk&J24k6&w0XFZ@M>F=P0#j$BzXOD=(o4iJ^PVF zei!@a<jV$R<-B~prm6c6^&TjE+=Vkgylr_41FZPh*wq_?mdw)vGuxzG(f;1Sb9Mc1 z#hsnZDR~dNILBOGb>;ob5F%zpzeYn7^Qx@k4hkziHpD-9)Ob5Nak}%#eelP(wB+N{ zgQ=w3&{^Z@cgzDHPMG~Q`ahWLedhgX^1(phGC274&~D6IBEJ^jHTV8Y+ZWb+U?>#{ zyfkxP;nb1e*v-Z(q$e3>63j7z2O4Efaz@3{PmO%mD@?Dqei$Gxq-`n9c+RK!aU#iz z%2{>GWu&<%?g52<@%KiDr7ufH49wyF*Z-3<TbwsIgF|M91ea(_FXJ2$6u$!`d<jT+ zjSj~61D+ivmYO^M*Ny+VN9CAS>6qTTH+vmmgfUps0txf>k}&#3YD@FhNt`FS#+?dd zdQ@)zJi4^0;d296j{W!UkqxNlpaYtK4p{pnZ=YvKX@h&FJnl~NOEAt&8;m=Zy9t)= zQ*Ww!y0qQ9taP;AKAUq7ihuhqu)07d=sz_<)PZO@D6%dQ&AY!MM_wjww#&rLd3)Y` z*`d+re5@mr%V_W~qlPp;9*8<+%nn})ahd2Nqd=egCq&_s8a<gH{fbnXpnsIDJoc#} zT&q#dd9&LN)?CQjG$2>sf?P#&c8;8|>nm1g9quyz^?Vil6CVA&j4{s0e`6u&%L0hX zs7+iyvR*6vzoq8Ml(kq_eXi?|o^6(`hL4t6Z>(=+N$|ZGIbtc>PPjS2ZtKo)72m&Z z%k-azb^0mX_<e9gHS@27sfg2qaJ=XO;V2Qm>npwXbW)~ndr#kAX#Q_CFT-zgZh7s+ zWgS-cucm|yae^-M@UlkcF?sQ7bO`jxw5vz|hhWtHL;B|+B$59BkF22uSD-EiSKzM{ zWeT1=zsA`WWQTYnQ+m6oAyrA$(<L=&nJM(g_|1$lMS@>EXA?^W^r3x7tyqV(cuUna zxk-Y*)v+L7%2d~~VAP#YZ%wP8)?IJo*hbs}w-gTGmI4xOT*+6f@P3{}b<48T_%Auk zKI}i=0PBTRmFT~!HZT1Z<TBJ+_l>Fl`Lw+;9XYBv`LC!g9=6Q4SiRqh|99^|$z~G> z0#gnGQ!(hAqDwgWYlh|M*jei8!M=K4bz=b${Xf3uY3{!leF<vo^dEXJP=neITx!eE zQqQp4ma*D(j!iN+G4n9$D)0QxoWi3p)-_MlQhJx_y1`!u;^U370t?}q0Doa(Z+V6_ zeO_yZ^+j5an$x1y37f|T>X12uXl4XYy4@!Z{kLUx*Bd#uhp#_fOH&!zUi+$HsL;UR zQ?(05q(}FIsyp@esgz9H{+4k?4cfp&@2<kXu=tqfGAw2-*Ba|(Vp|DI!?%vIx`M7d zPP(1;IJTUAB3lr@pPisu^j;&<bk}MlZu(jPBgOI5oN~T5qgespN;THoNa3^K_oG?@ zwj6Ta9CCi89^p-E2VM3Xy{G$F7jA>8Y=bG>o6n>&RzZG8&t0w=bY~lM<KCoAINbZl zV$hgv(1?5UloXG4K#apik<%tvwF#atXPX}Oo4fEgcSXD2jt%)cHS{|*YyH^RXLX1U zCDRTi9(EF=jpe$qI>b8_(|0O7xm3kA?vFAovsj)$6@^rmDUFvYJBuQee~={lgeCig zHH`(EznF~CkZIDCQ8HVzZvBE-QZrpr<H=>}{z=c42j|O!+b4xMQBq+msIX`?B+Qnj zKdPcX3a!RR*F{}06H(1xQq7*!N6t`S&!qeQoyPCzglv`MY?b#Rvxp-$4sLx;?!=1M zs5|eOC_B^*JJdP&Sh{QJS(mW9OW1pFL$4gLy`|F6qe_g?6c$jLMHtN@I<U%=2Tx2U zugk2fYH+{N<YpVCZQ*~l|A5N^FVR&c*;PgKJtVYR@>-8*xoi6s|7<p*NM54Idz{Uj zW2|Rb-ZO02Ug)Hs$n&V$=TWA{ylMJ^YNC`TqLf|jup6B%8q~9z)V5c2tj)vTBFo+) zQxZeiI?2?od~{*Gh2^`2wWlZN4thNPSU$}n?{-<D2Is6Mr|qxOf~L-akBzTCuYkSv z;)B}Mz?-}7YE@t7dDeQrO&@Z}>~{LqZfAVOt}ykd)%K^E8ryY~toEE}o?o!a(6M$z z@^wVob1p{CGDaA3l^JrS7`+UAV@D&$8uUk3CsKvGOocmzmf68nFJYD=8SK?WeIs2V zGDv@GkglTUlt#yzbBj0U*1fP+krHkV&*z$+RHK2#^O(^k`vKMwa}K3joJx@;@Y47V zE{1ei^tRsQ(tHkKalm?oZh|>yvN`8_=b_oLXM<et2DuWAUWuYoO3kYaweGOh+~Tdd zb#Ley6I<diNAfU-sQEXtL=E(FO*GXN#b0KFYSR5>kKPL8va4b(n1{Nb4y(=fmo?`J zd>XHz5>j8fUskE%JC?j&Z7<mn)uX#!=*GV1WU@SvV#E^B@|3AV=hO37A1Wp)#>wBQ ze=>;wQ1V2W-I6I%{S#IEhZw)h-<Om>^+$Y&kq5zl|D)_)jsQDJ+>0iO=Mg@f6mFw? zt+u5P9(uogRz&xlY)AFz!SA3kTvCO_l+c&t#<lmpIp)MCZ*cTxo+9NnOw=p`<-Tra z0lfDcmI~X*jEnLry%=A=pk-foHK_@3&7@c$Vwp)j%U|WR?3>AV%NP^KJtMR}43+9L zDMj3&5AnVuH)v7{ze5{rG%h=0Qp&(Y8>%0oezNgBZgj_TNV6i4=qLB5`wnlG#uc(o zYrI}Ml<K+*k55QQd?Z^S&Kfk_e-h7q<lzu+8*Z;19P^IQtG%3tjvIgW?c3g?40B4C z7-+0M#cYz*b$$_I4mG#EY^&=fEX2FYZaXF5H74SF%0$-=vSc@CzNJi#R6OJPf#Ce4 z{NXCO)~iuEyI_5!u%;9dikHo{P9G_`{FMXB6HcoZ+{9xO?g<_<@m38j`$L#WnJqR< zLze#LV>(T?m@y?8@0*V=>9fV?D9C1WSX7)b{iZ5nSZqo!d0~jn{r}xp#F?pklC>%2 zDmqqswBl?FtSPTN$Rqtdg{uEEXCpmJ@q}N8@$IcHO=|ylrIqAPKUf7yl<k@5W0wch zOe4hpB%}<n`oLNk-ztVy#}Ih37sea45e{vAG-G@hz%L<>jTJIwb|N?|rq^xL>TFw{ z3q3x3?~)dtM_!;s97;w5e&rOITg4I{SNL^&VqyHw*6TkvWvTE8Xb=QRWFi$Ec3k0R z5Mpacry9vmYgn`R1##4Qa_MpqH6@~$U~rZ1PTx5J_%(4Pg&#~lJUk)$&gv=N5c2Q| zr=eav-gNX=d+Dz8=emUSR(HQ=dengL_;VUQXspgIGt84xz&!TY8lLOuv>7a>pPCab zSopoyTTrg|x$XM6GQS%7eR-J6{?^2l=Llf3$;b1{q)GgA^_`I5gbBK?JWT7L>vleo zW?AQjmy0pKKDr+qeOyO{={lkv+~La!d0GaW(R_-ZcdA*Kk_8@E;N)2_Q5rh^PKCiI zCO%0<+h4d534d*T@$^@EG|3sQ;W6JYgNyO4X}V>?5o({5x+ZG?{~o{@Ltw40rwyPn z0J@13c%8I7oNgKo5M_tG1SYa0Zvw<9KobkYk)<<0vN4eCFeCt;Y4`%*qljz(i%>2C zC=U|K!^(kM%Rahn9IamAB!KZCVLUb}xVs`%-9LNRHkx!@dJ!x~c31i6W?)IedKhLA zk((%pG>WJSuM=zbq3Dj6Z4w5Wf}wgw<e|)^2IsMc^RQw8$$Pd>Fwg)D)hwY$Y|}Cn zfN-iHJjh<Aab^Qt*<p^*kID;rq58gmg!`HwLGb+`oZa-b%wi_wg=HrZT`f8Bgn}yM z;V)st*)YvCO&mq0X%R*xJ4_#DzbU4(@-xje641^L>wr!Ch^&JV<6xRtZ5&w!!>w%0 zt?aOD7^r6_kPPZc6!qh1ZmG9i;qz>kzKv!uR6Cezmc}q}t!-rC3sK<r(o~Z)(`>*D zv>863%k72x_N}MF%*;=Wy!39Lcf<dYP<RYC&p<LqM6*ehB%D2C?PDrYblcAM7ep+W z%7MDVj&qpVnwp1I3L;}{8weo?rV2p_$2M(3@OL4cVJsdQ4z}dMP(&~l8|94fOZ8h4 z#ws>a!BFX7swV1^unt~2p9ejHRU-bfcF%&L*kG!Bh6*!w;@c!N)+9+{ACV7kr>Zp* z<B35zW7ua1RAboDICiuW3hIt-{sF-s1eai*VGQ5H^TX4GOCd#rn-3xQrw~pU5|!A; zA$2!@6&{xZBQAt#!nFXrk7CuPkE$Ys7N~dtY91TW;4T>DH#p4?c#>Eg?j2=i0uYZP z!Xv5`K@7lYX5dMPcnlMs$TJiq0!0)I2S19h1E9fFN{A$p&6+!JxCy9ukW?UrzG{*_ z(%5cJgW|u2a>95qHY-WLBOl`vWAHW8OlJ_MVhc2mGc=A)x{#0f;tmv!))bC5`@oHD zCsK+Z0L2fbO~B#zK-!h;;49hTX%LHCsH-8MMwIzk>ifCaGpHj5>d49iL<O7{7KpH+ z@Yql!tWcFVnXSzLSu-G@LW+odLi9lxLK0pRIvwKXYQ?nbkBH!6RECJ5Ak_#O4AY)4 z9EAr*kpu&v3c;ApAOXXp4bt8pwfk1eYmIb8XXVo7?r*fZzwrQMJb*wLG$HbF8fkVg zX?A!!KqW#E3K7FVs)ZRaEIYykC_Dlbi5>7$go2MC>C7ePeUMN0H)%-Txq0DWmJ?0c z+6a2QJly$&nL<JAe_wbuzq%qu&`4l0_aumH4;(thLg1RiGSK2AEX|-xAM{&YO&k6L z1^=NGhUp}8mxyh}0%TY~AO<eg&g5q}_(@8PBZa{l>S)6SNTOzEpOUqlnHSb(F(Ey5 z8lR;<6)+s=6(@EfN?Lcx=?`24BE|7F4{Fd$^5hBmyTt=tUurQU;$=%C=mAi)W1CaK z5eewyKv}bj5r5V97UvO>P=Zem@jfy5KQQ<|luR+5Li?kYt+D`_EFjR0mu6)o@?ic= zxXwy_HD3z5HJ+o51Rxn@%Znl4#n8QhdgStOK^&0~M^-8TJSriDJ}(dNyx=r-WxN51 z2?Ny#yzFI{ykv*q$(y}%OFg@{$3*BVN?W&KF@Qib9FyqAHs5a368jFqSO_u4G9oKy zTYm#&zX1Vlaw!idl^Eh57~&sIg@C(Qv;8?^=V=Z4rGg~mtoc*2np5+?F_ezHaArh_ z_H<q~$^P-i&iCGpsQ|yO_^4V(E9Jf~bb@19>MbF9k8d(p2^9|3Mp-G-g0Rn8X+J6& z7NBW^L}hyhH$H=cyqFQ9VyJ9F)qrpBM{s#NtCR?$x68w|&g+6HO%7cOH^EiTCve!V zUGbzPmmJYR@a&~>wv-hK?P4zO&y(Yru5Iz8d6!@B1Fq6>4}2|fPpMzkpLGr-8#*>G zG;a)^!IB(_(`>usC_Rmw!4@Bj8}7N}6g^Fx!D^j|C+)lZ>VN9v(Yy@J0~JfkV!m3L zjZ*zWSJZx=F??lHeDIe`j`XQB+1Y;2(#pXp4ja88PBZQDYxbm5H#OAR0$ZMg07aRd zj(fHf=_k@)PvKxuP@bb}MKZLcrJ`a{U7q6zzQ3kiB`v{DM^`vG(o}OYk%r~l6E|FT z$<YjS*KQ8qXCz*$LFdSUNV1?UK_pl1>fQIa+3@V)69EfdimyKqJ)h|5kEU04Tj!jD zggd!os=oIsRHhEp&RQzBG|&~*er(e~B?WWo&~Z;#(FL78`9qZS#nGa*JSWDABzeoE z?7iL>PsPS(As}skG+s5PXgF>B9NwejE+`OHLri>H;}NVN**;tUl*}6>d07_IJ<sqj z&xivB40Aw|uTav=yX3qHz+^UhOMm$~f5_OmRpW6}{x!dhwydYqmuLL}0*2`n%A?nn zspywocm_w5!jGwTv@L4NbDXV6jMkL--rqrtthp49k2HCoO#F%H+7nM&amjfY=)U`n z^N>+<vj$Bh4{A??_AL)zUcXzARy$*<{I!8jur{J1HOShdBV5JNBB(s)+>&Hy`dixF z2DY}VmZ>+d+rNqLa%U7A9zmCshez#Y6hzj#S}Biyq2nEopc5RgalKtI+$@U6d1_u8 zmc_*3`RmKGCQz%|Ub5%4YF5gzAkck_U@(VuZr7mAzPKbb(;hMMZr6CI%ELMWR4npy zzhi><!di`v8H;vn(8=ee8cSaSTJcXAi4SYgkVY?y=Dbrz&7&Ih^$T0}Z+ZBY?@`wq z=>+HRw<+=SqjBZo#D}Amh!w)5RhOLSftmX9W&H;^n$z?}{k}2b@@0JoIcn4NWqnqW z;jVV#62_sGO`j}Xwp-}E+S{m8@8|_sOm8R$HVPR|Z!j_hS}biS=YcPl;_>Ek7JnwN zeh`Ccu{6Jojn_I0<k>q2*F1Z<)z{W?CQoy4qSSI`kxS)j2vw8A-e6)e**QV?Y>=4j zC^x@+R50n%Hu@&s<utHx>mc0ubpC#{yx_$_&gnEg?}aaU6a#Dq500aULNvPR0=uD` z!T2*IRX}YYLKz6a0EbG5zk%UGKI!a4$^HUN{vN2ma&0h@d1f?Hc%Ogq$hatVY?q+d zBB41yQ3}6cdMRY9iJ?dWtguuwR~bcwaD<i^p=OeV*Fv^F7>ZTEDvcQzn~+97gC~Te zpT+lJ=lEZNK!93cQRjg<Z-QRV-Dep&IYDo1kc^zn%`JYfKB>D=caw$u3HhyG@@kMn z40JOb4G3q`-xrQPxz|vWdW}Y%WXHc|TY+MLQUPYY2hGL^!DtEtyrf$8MegDV>oGzq z^qAoY5{u|oZ#Sb7H16tV_)EMATofgqJdz-QwHc7Cuti}gFn|>tfdfN60u2dZ<;59T zd%u}DX26@lBf!zO0@in!xBUZR@HZhOGbA<;cO9kT+wR!n)!^6;h<pNG0P91HN^LU( zghd$o1)&C{e{e-dJZrAU<AGQ)aN^<;Ouc|BGbF5dKPjn-i4o8MRwZD7hZMXW@eGL~ z1jf#xhIfb|*bMIjiYedU_)|sJI)+ybT9d9qY^^(%1|G-2F@vW8Vn(C^Q`e^54Cb97 z(Z{FL8S^EIP2--y)5Fm(fE6QqE8!uAVl#XbGVud@1tKpDuA~O0kP<cw{$_XuP<E1% z2A{#B#L;s>QL?KA17EoXzqPet02To91%bqUaB(twLSLnsYR^VMdI&IVh68xtnO-u8 z&)_-Z=#|L$AKar`Tb{@?#Q-;FNZ1K$6RE541FT67m0Th2zncLF3jpem!nn}TU9l!O zRO$vs+9N$7@-xr?8w;G~??=*St#Akn0vx0?v%cBE(qZ}<BRE6ShyR+LeS!24cV#nN z3QtND3@En=0<uXDo01^z{LS|uEbZVFGYk`nh%}Dy5k@GC94yl8@f<;^1#seYw%Qnq zG{B01x`L79zSHo_w@XQG;=}Yf!b7D)VEhr4+pUHD9d*eRB$Dh<=`G~o5W7c^hW7>G zW&L>J&v2aSeL!J`WR9>_pX&eANor;QScHKu2!cy>Xn4*K!lN$k=5mzn9OQfly?Q6Y z<Hbe8*A|n4E9_-w2RZwo+n+tKZpBst^41`S_%U88&HuG5>Ru~$3y`0I1lY&|GIX}L zARM3)FzYs@643OU;YdI`*JBd&t&1<{$wn9cW}^#v!?TknqYJG?Ve$i!!~Za`3HX^G zwP3wqckJ!Ss%)2f<1meP2G0mb|AyF5_r1{lO%ZDxArABbhT0lxGl{Ah0Wx_9#32s3 z8GZ#e@iQt1PaZ`W!1@P}{9qf0p|}dM!m@*`??U_lIs61zc)kevHAHgmDY-y!h$Gt! zuY<I9jvA%PRfs6y2%my3O@RqsgC1{*=->#`LEoY-bbWMlxYZHD@&g3O957Fu4l%U^ zKuEvg*Y;6_!U6!ILnR~x%mmc{%U`%Itx0SRJ5-7RzW#~01-cJN4g;L*@shCZc;q}R z4aD>Yis#&h6A}WhfIwh_Agx3&3^hE=1NwbS2!{#=FwkIOH0H_$R2u=uAQ5m%SQ_{S zxO2+}g24jS#SjxqjN>`F<FwtreY(3Q#J%xTL>MQA0UUu~VKSWQn9ltSS-8)WMY#`^ zloAq9yYPcH3#bi79|FmSLRk$l8c6Mma3WJ4e(qB`SG$uj>*-J_cOqeSB%p>uHp6EK zlt`g)0EU47ErEM5+ZU+9Q!DUG*bpcHi9s>IFnGW0H`3ksQy6BTFeMA%B?@~T0zrc} z*TkqGo7*u!0wfqAijzawI--Cd;1ot2d6=mhh7ti6f&L6eL=z^R5rW|t<V9r=&~hG( zt_-4tn}{aV-6f|#Aw;jT!0AsewwDiYjw|u=qBmLKw5Q*)?@rlhDCkH#gf<4y|M}=~ z+JEJ}856_-ABH1_hnYgIJt-BS&dNf>x^q@qdAU4?k}|>pF;EMF3U%xEo~$2h=MosM zS?{8NKfx#lxfwRoG!X<~hfHuFHEd|$eJJ$gV`^g}c;v~~?LNN?3WUT7YGL+`BN)(t z1|x1^_*~Lx5da?&VT%uL*{~P@0V>Isogkh|qf46s;Ua*cNa0~v2>AKg$|PP4B^+Q! zz-?gnxc1VJ2tW~u;DXmSYiN_fF^mX}+jxfpSR;ZN5VETnrZZs%Bp{4J!U$&66uKdB z3?2gRdAa|{`Dc9akRdOQ0Rsqw3?Q(+zM2t7V8(scR6|n*fm-9ilw1LZ3KGuiRDLBl z9zS@z-<w5b_ZkIAfogK2UHN-Rb_hpau*yi-q@e&|@FEvZC!S1L8VNi?A!Eo<dHFwB zqGY8DQd){&+QF!_>$uos1}+4kjYNbHdF0AJgTnwyco-52W=k4~GH3vBcNa)X4F|Xo z@UO6xH|G(z8ee&8?csIP!ZCaZxEKB~;n@&bg8Q(*x5lnFbX9~<YYJG?D#YhcGa?v3 zf&^E|Ce5%9l@{k3X0;}UHEBcKtDAvf0NgQx5td0nL<$LbfcChIgyHzLprIvk;^wv( z6aWOH;K&LZfgr}1`ibQbAQuKj5y6^xf`_ah`^)&*e;RTMv&(@FqmbQ<GZ9++dMG-0 zSO?U;R*Y<=KZ)T60&qYgT1h=ZIk`w-C<b^K9B;xpvI7c9z=yKFzf32505}5&eO?fj zCV>Flkcc;AhIiLjQ|;V4P?$(O2!ar5GmHCrm)qHEf1qAj{9LNd8DA;{#h^a(elO}V z9%PdMYBPmX^hUHixWz9IT!V*w#aqQj)(|@41tZ)rOd=xoNT3siRJj6b*Mg4(uiit6 z+S+cTfZxF=tSp9&tFar2I}HX7@q&eetaC-E@ra=S4Xg<RO-+l8gh3EQP#d;j|L$hT z5a0(aSU4TSbVDQ=3GgZ+RXDBNv`cQF*x_N0m%WY8Knw^YWzwy>#W|<@33(#~K^<!z zX?h4C3yGMeHe@an-aB;=UiEbteI#6e?^Sdj9D^S$Tw#4pwyXB=U6(>U4i^Iay@cZw zwjDzO)gVPAJZ1*5rgs4;1RRgBR)lf@2F)gdDTzVAJpoNHzyrdl3dX_|3Je^kgn)ca z!{X!Df)`D!b+lzK((~dxDZ9uJpq-jfqn{UMzJ6McJN`zK|Ki)DM=$SIMo6hqz%ZcQ z`tSrjsX_^%0LY%1;LswoyW`X=<S01Q1`Yw+MleMH9)f}^;>cby$RU6yNQ4r_-xkte zGa~6lMPiTugCY{fZb~oOX1A|MK|loqIN)KyFv3<9p{&D+it;SD@N*=<p@@v(@Q8{w z^#e3Om59i}za7@B9fC-M<p{sPTp?H1=70xlAc!f6(tZgybA%u?U^$3Lj7w5{?Dkil zuT@Nu9t^e;ig4EuG*+jA>uOwo*H<2`pZm{#P9aulr>=bxkyuz;mP%)Lb%nLcr%|UP zz7Z*5sKc5(pd;C7*6h^6+lp6v!_ssS&<rHa8)}bGwtT8E6em2q@DjwQKoXKBgsL51 zwfj0e_%?#rlX#spD$3u0+SXVRUJ`;%GeWDV(%y_vCFO%dj1k1&h%K7f)M&#nyzp>+ z{5TuR0b-?W+OVc-sJm%%NeIFeKL=5aVWz800&<ZwwltvCh@sdJG+ZA^PbX4?ggGnn zs0f%6M}PB7y<<mhdruMG9)e~t!}u`VpL^x>pz@pP(@_zt`3?JlSC$_<if-uKm;83h zn$%cDsE~gx3?&B-e@7@NLSsj&gkuP6VhF`^447Chi;c!7_QTH+F2^vLiKHN5{E9qb zoHJ_1F>G*%DuOuYvTH;MeUIW%p+m%!n5JMv5X2$`!`f00EQV*&<PcDQP*@6h`B#w_ zNEnwQPcugXJc&UA0Zl;C5Ku|!N{B=wVRVW--E1?@RJ2*)!Ab~XeRwS^<qJY3Bt@9g zZwR;pmjfgb#J>oBE3pw!gn`}}j>Gc}Q#mKTN=>AMqzY3~fiBTX{l|7_d^SZ&7t$GG zB^!%iJ9P6~5P4AkcNiub5f>zE7{$}fc-d&9fkUn%h*|ML`Okm^6c3Clfg~!85djrP z(&Q7Az*McOdRol!7=qDo_6i!Bz_qJ1B9=(lXB1BueF8ixO&kGr0aYW@z*j91z+8og zC*rMUW4-aE@Ny9MFBjuS!c4*2lKgGoAs{&jHk2TbtrQCGfk88nS5VR9V%!9W8ME=j zl&Ud#*$nvK6)A7Sl(OMrN;HtjY-}Qw6^XCJ`WAymH{T0Jv_o@*!HSbcL=Oqe1eKt+ zCRF9;z`)?)373uErvMyD1BK8iQnFmpuE%?tXoI~4uqFUXHdH8^Ki<CmFAHE^u`Lhr ztTAXfDKO_}DI6N!cKZF=Xxdc-^d^#qjZg!o0j59*JA&8-mTfa>PT55Yz?5t-fTX;w z9}2z+PP~STjjugd2s^$&7oLN??G!4WBZ_d%^9Op2N0pStB!j0BP2v~frISn5Cqv@W zwv!MzXaa~MzqG9;3Z8^PW2umo%p#&l*gepWqzRF640H%6Ka%DdzDF*5D=Z8{1P>R6 zO#H#}ohcXYQiSuK)v4LA2G5?O3u_y(apdz{tYu3SIr$1SWlQQJo)2$)vSo@+CeS=p z&Y`+cRcWrQs5l0j1&k~P=beZf5G8A9n36W8Gd6nNqjmV2HXI&|07C*aJ8v;|<!2@X zH3G_oq-lkD*m34V!%+C3^8yp5k<k~*Jm(Z(eGM*d7W@QMc53>j@vQj;!ud@3mwAxs z9p97H01b-+7NyA`9>ar1d35@8>I;_W4ALEvpnG=SPy^5*h!K%VX-o*HB$8&9fM17; zf|-fBi#!2O$>t#-qix#)(Ex2jH1q71#R-ej8hD=*u>HYDoOBYQG=KiEK&<wMLYUG8 zy7ot-uy@ka_1%H!uRI?|VR|1rOoOwJ6=;giBl;}zViy}LBW|cc!~Ri$YQ?pi5FSi{ zAl`zcFus_MGPS{wA&9FWwThJA03{40Oi38<K{qQw!!L5szZAgi$%0;CAs#x8#&3bA zo~WbOS%^|krpcq`4WeDDo7DJ(&HdW6k^E{5WC#c&l1d2=9@YZ)g0juPRFqx=i4_bs zYA9F?Mk9?9M;cAZ1yw=8uwhuByMp0Y{{>w0f<31{s7zl(f|nron(0mLFp_h2p2K+X zzXuVj_v_8VYye6ez{bh|kls(_V`7gX09&I7q8tcE2-^Zo1xJJplY;z+I;CrV4}RjH zkw$?d!!i&cAf!mD5QqmJo8WPL_8$c*-eYj%UW2!M%AO;AA^NHyt+m3RF@>^lD?ZHS zG+IMSs~~j!hv_&od7Ipa7E`<Ibp@)T6RTB;GKIp-tR9Q$dy_jh<|+3T<Qwa1H40oK zDi|Q5pt1yhf5fx4zOSuG^^6MNMndyZ9L+R^{0mbB)HX>d7*DVU1E=sbPliH}-kZB3 z7D#9<ii4DX=Gjwid@P0-L8K3<&0%=~upuETN*n+f%Hp$I!IigsKS%O6iJwyr9;z#e zpBqVjx;z9C<FEf9Obay6QGA%@xebEecz-~TODtWcZNdJRoR=Qmml{cyDcsDT*azFK zLgk#FGPl%a=x)pqswkaeI=^vG+=*rDCc|Qw5JX;h-S(8KF7yJj56n}ITgG6gpy^m} zu{jJ32#7F}3QFK%$MX!P0)Xa4f-U)q34jJPD73Z}O^S~NK*<#$MeaWG44!%m?4)ok zfItvIpmbH)iNRER@|GyvYnJX;lAq4b2mM{2%JF}>mY*y8G`*a89T_8RkA!xjI8?59 zP`pkPL_qE$sq#s#8kSm0lzZjcibGpb9Ni4oZ8{~YI2vqN8g#WbvW7qknut)xIMFN+ zsDSu})k4ZVslD*nW(ZW2CNM>>_6DMDB(?O^L$!T>=G#J`X($dDHOA(Y!iyd~){vQo zdwh42?EE@&O3-KBs$$Q^)15^N^46@NtM{sw{YQkN^&ZMKvk}}2(ZFhBd|8N-+w+fZ z)Sa3yHJ@7MJd$RLQI8l>-%jzkqhc4M2xAD<V6fYq&Zs)r(2cY5)}3nb--&bMGZwXG zQ0XTPeQ(zzV>FcGaX%z3?3%%zb#0jqC2U5KgH)Es=L3f{nXv+fMWtyIuk6@nSrIlE zs)2oiGg8o&!D4(6M1ACGYBoO=VHKeoa35=1!-Ad1V;PSYsH))8sxbduyb<@3Xq+-O z%nzP7S@%-e^HZe;l!cXQmK{v@^#n9w8rYBoN%|2%ejS_)IEv8MTU)HWmSL*9tagsM z3c+U0sv<$x6t%WscmC%6oUYz^gbVBNRRFw-fDS07jac{*O6GoT@q04)(#K1&K^_i% zRl`&eX%&m?Ub~%t$R0eKD3L6^qLtccJbqbRr|Q)bPuAq=;je;+&fmyMO{;(k#3(?b zd+jvZh1*!fT2Mu)JG`^LAiiOA=+NQkf!dL*%ko`s?iY{lNyzP(1*YqT4@{{GZKzHm zcdjYe*M~%sQX;OfF(ul#9q4_SIuj{lg<2@z`zDTk6hwVJ>$J^&U-{s+ukdQjPQgz1 ziO2DA;Ns9$`9vaym7EfFm5r%c(TCrJFL^}hr=YbWey8%iTv=CpVY_~1*xLvV>@L_l zSm6S$u`$iqtX0IgNKT)2ly@I?I-zdjTl>OFDlp+#S5vqH*2Wi7@*0Q5hA~ir+-HDN zuu;t_W*gn|m3X;eWqCE}6<>VnfjN0YZZ7+IRhuSJ5>^9C^;L}c29nJhrJ_U%KR0A~ z!NP`AP*M6FA(QDN-^AUecRDN0$09vKR&p1Jz`A;1#pmQm$61(O?b<1+z{0TYYS@`{ z)0Ppv$?qNsA3c4Wn6(&?ln@l#dkBX`tc1R8=LdQhh6+wL)(<eSJFSLF!n&#uEvmUX zHbp<CrrhLWV|rja30vX$u^0HxQuSy1VjZD<epl{r>eI2ctb!%{Pam!8@K#msebdE0 zzL9kztM58j*$qhm?|=Pu?4quZa6B9Inkq+gE?AM|Q3%r{k||gEm~y?v$ad8atY*Jj zu_}AKdXxN_kqS_Zb*&&a880~caRSq{)bwK=pCp<lD~ZH>#Jc*C1gj^+9TN(w+3CRk zsB*v>E_ZwshjfXt4}MLscEVeSonzi(0ei|(G@XUnXXcNYbah)t8)sh&PDge;FI>*Y zjeO)z2Og~Z=?rxErOOGp{;|y0iwO04k^C+zj(h1(z;IAMla*fm=)kA*rx_-EK`l1L z;1h<W=a#2t_+ul|gQce6(}lLo@2357x)jV0yzOjL|G%dThXT)+Qae0;Fx|`833@xQ zrN7a>Ta<qB>@iLsF|l=8!?I+3bmXG&qwm3I<J`<%tBZx+i}=R1c>mFnTg$XIv++At zJ2(Gio%>}t7+IhE=aIxJTu;CL{whTl;o0i4nZlXapFF)NA#$D4`D~d0(G~BAr5iVn zc%Futk@fbUmIwG<3{c--?O~s6lkF$ZI<rX$WX^v^oN{r`uBA%h-cssknePrp406&> z%+E~%cH0BmnyZ^|qPV+D3UXP#RvUNwGIlmrPS0ladJCK+wN9q}>+|+r7;mbyWfFgp zjC^zCdyy7#3tL>L$3?uT5O7VUPqK>%o|TsG_nhp#4Q;SXd<w4ty=NWG^KI_W-FD{> zvxTOE+zl#60_RGE!?|@GolSK}?R``-<@cvP%RN4u8ztH3`81HFXT{QZI@LAaTCKO? zWajH%tn*V{z%j+Nhti(>vzKJl$i<Tv3Oy4qHyVsyQ7AlK)|hX&g|ByK`Q31)@$|<x z8=*hCK8?ouZrjhE34O40oHFfUv?uS$l3%zIwh%THgXT$GsXW+U0Mn9?RkJT)E_-Gm zgY4~|*Kb!(%9oH`cp1LuL;hL&4HUWSe;&3@Ca8EdIjiy9<E|>sVUBlhw0q^h>)7>X ztRi7F<6_c!kZEf7_J+dwMvv5q%}s5VyU82du4*#0L-H*Wl5?JG3Q6ZAM&}pq9>2~$ zSYLm87HSoD@v#5q(cW6uz+%CMi~{&<^e4&q&li6z^`7!PH4CWNu_`DJ?3p-i%?4&* za2qIi2x}4|ia{_~_vu88Qsh}KWb8a27Z>3Mgds{vK)$MmCP0Z)fzK2%slfnN6daL2 z(!M?M)&IHH<R69l7h9`@FKja(j~Xq%loDgezx_bAgJ2{y=&j{}*Fmw#DOvt)4HpbA z5}$Uah>VL6kV0XZaMkeZ<c8-YwC9U`q7=cFl-yPspQU9UPv5jNj}#-|Jqss3d+GJy zttfgz$Z-6DE-KBKwGz`AnA3DNZzHRa{}Od`8~g4-Z6-_SQFzhO%SG$jG#2NhaLuDF z%Bgn${cab}aWW#J!F`hC{c?pKTW4Xgc`O?Ai}&I=op*+1Z-2=RnRfsAKR;aN8z06) zJSG*A&Pa^TZp4pz<j4;$kt8qO5KtO}Bp)e-A2n)4R1I>J2)-i>DuxlkljcZ_=58EF zC16lQU(opSzHC^&%^bk0@LWC%o*8!>>NM8X>2z0q<5k=P!Sc^#2Tro94oADauVM%t z4*I%Ur;NU+G}K-pZ+vq1%eC3%K%Oc3qRC!n(JRDy4x@hQ-xo`(CSteRwIYtP)WLtL z^Q#|Zu8R8lc!Vp^9BK_6R2?iP?4xuV(YG%6yT(gRwspy`3Dvi{`WStez1CB3ZK!)L z@t|ZC-Hnc4IRrnhER4zm4>_{%OwbpN`!Z;01Z9g_6$&@z)Nz)LL_7?<Q*)k9?HHI; zZ7H5Cfz>+5c{puc+be-~or)wm$tjyQ9&QvAxL)X1-cCc4dZJv@=uxR~;t07#lXO60 za<FKS9CU*|mz%z->}L9@`Z0eNe|&*egMRw{eYFQ9zt-|zyvbC^Qd?9wvs=FV`yxHD z`pUq~x0dKpp}RjXex^+`>Gce<WeM&Mba#s^ocHM2E_Md|ZdhKh>~W8=jW>88%vXKW z{+Wu!Zwm4ACeCw*bdj`A5==2q>V8QMOq6cx+!$}q51mpk_s_ieJyB&Tl+n`}3G%PL z_GR9U2MHqgS<*-WYrsYj@TUuLImxM>HXiLI&vY1Pk=T(jnKWBuTU*%TnQujN<e?XY z4CgOosAp4SWO*W#3K)-Xmknv?<eXX+9yczN*sqF^_@xfXI6wg^6c)ZIBh=G2g}?Kf z&Z->m<I0cbDu-0>N~-CPcq41BJMBax2g;8dOY5f}XTrK-ZEr-5Q;I+VI3NK4<L(Rj zR1Oe;7zG||s)jF$qC`VuekX-0xtm<KsL!l_@BKe?y>(DqQQP*5Q;HQSZUst<ySrO( zcbA~W-AjwR1g8|&;_mLn-63dk3lhFO&-c!G&zzYvlRuKZcJ?28lC{@;-PgK)73mtR z8$|kgw1rH6ea~nvJ(wp)794lAc;9Z!GmCF0rmwB0-!ub13^79T^q;GoA$eKe0poAk z*xoZQ(}T7v&lA(AY5f^Bq<QgQOiIGWD<%Ywgvavy8Tq-0v#NG=v|dPjoa_AWUhJ}! zr{``h5<NMmwje=IbG>h^d?ZE0qLAWRCgqDy)-J_!r@ao^mBYivT_-#r|0dV`+`Qu> zoP2pWFU@1!S5laRD5d$XESQ2PhX_{=&$*aEj2kmcKht0MTQii0>gQou4%Hp&ayRWe ziH3!P;887T*i^S~`kWI5*VE5UO93d?QOWCir&GqVhJ&I|i{;GjN{XZf*VJ{3kx=e# z27my&?rG67$#XI-dWjrsa*M2x6C9{uu~NMLX-2mTxH)tY#D6ul`Em>Gj@!!dF0t8M z^Kyo|KJD%g3L)P;G6mJY{PuczlD@jy!@daexta2F@x6aJxH_)jym&lNWPN+Sh%@OH z6*i;8=1$AAOZu&{^|sq72!T8ro%dv||6HFApRUR4e!1Mey_*gvEvdN%x}LxGkzY)z zV6zT#dz~zdwjXxy(^0&6KV9Fxnnah}%pE^3eX+5TZPnO3<=q@LQ8w;=m<nW%`-S?j z7x{2~`#7BbWmCm@Q@F!_X}x)GDd=u$GgnAdIM4_5Q1A6+dW#Y)q7^h2;0*=et&F}w z6Q0w9hWuP!P9AM;N;f|Sc|Z^P6|=bmuG04&Y@DyZ+^}3E+E5yI@d{s*csU#Uux@2% zOo0RV1V?j30)rgZM}JyCRj09Ty1kM_`@F!T6y1T|K26|X!a+e#;KnPeAij$&@~kg+ zPy2`IC8Bv9fq~}PJ{sPa(8>0fFv=-#(9U1MKrdfw{hi654==rorbABWYgq+5Zr#Rt zDaHh!24l)zfFGxi_l-nA#^i*#&;~Md5XZbjA1g0!Q}6eUpXpU=rouAG^qttO0S{hb z(KwdGZ@1_B0}c|x9od^d)2B}ptkzA(oEptk4}vW<Mi4Sy!?G9@Cl8HO)FVk15kDPX z*I^C-seINlr9QYt(>I%ym37+xTP*L|;2<8I-{15o;V?7IE2>S})bu<F`s0>d7THq` z&SD3~Sd#)K@xUY#la<hB1uSEJqzc*_c*;qKeXWNV8;@eT;kS1NF8ejtqA$*eqFFux zf^WcG*g%87AoA)HeS$*nevX(=P$xg-?a<~`yzJ)Hx1*1g83#EoY09ES0Zy$FZZ;yD zKlM&xS<930Zf=Ed;N7rXfPoWV|B=c`FFjwK4JMl>2z6K#_>+L*tbslvv!`(#Zf=im zoF`d($Zp2h*SC<-(|WuM^Mv>-R4<BwPQ3iG<ZM*W_Zt7C-N7I7r*3#_HYvI<Uaotv zYyx$P59C%L&M0sp*~L0G(}F?#J`Zrc6pZcB))MS)>zWR@Pdf<}PZ!dUJsUL>oqn&o zw~ro&gie$WmsF-`2j;ooy!OAl0x!LL$`GOLpM+IE4_vJ^v#JQ>+|lPzzt+!$A<m25 z+>H<Wqd;yaSK>|TZzmh_l#K-JlfR&)dgqlej1B3ano#&SPfdw<eG$cC*@_P$p01ly zD=r9oAzgReKv5xQIIXFxbul&TWPf?(d+1$xLQ(lb;COK=xVE{(vdB9^p=bBJKGx`X zVI2^rifj4$E%uHTRgVXdLvH&)yKY|$fBjet%8ZIif|SnW8TaXyRT^3pF)i!y;^(6L zCx0rMHdB3$Zkk`aC*ZaBs~gT=8Ei2aa0vDHO3Q<qAn_U%k5we!am%hl(vP~Am+q-t z<+i!=MvV#{IT4qPOI|clJ<ev*gYIcEq+jwKqnV?I(BZ`7R?Iq;#feS8DVEWM<A<m^ z>o#lsrBOqM58<ZglRXoi0>ps7<-9FGL`%N+Gs|B~V<v437f8>N+!zSLc`q2O-(dpU zGHDChnC%jx&86;4Yh$nGxRfSYyblu}rh^Lp#p;AXN3x?*x9pva7im8qq_MPL3~<W} zyWoK7%svC6OTXj(M0@!5?fh0XODbtZqBCnh0d}z@URQMfpnK@X_~GzHM(>Xps$YMe z!I5n%?#rjvs0$w5<LPfxWdVi-GGPw5U##D!s?G|%4;`a$xkzz-8~c}nX)gDzB-`Jy zSc7MZ$!zuRV(^RJ68*IDrt33pQpTU83{@HHF{gB|Q9S{@AbEjyMr!)^jP&or3rBu2 z$~?yDworRk@DA*vo9_fJqj>&{s(w7*hg^-PJLhKYnmDDzTsHnm9g^Z8(MVeZXoN|U zJ+#dMA5P!fc-?v3V^%zB>$c!~K0o{7bUl7N57;<qta)72X}Q&65ZueniUHB>X^M{A zB})?4q|H|5=dUz7(o_&G<vMpO?vhUIAlx`syHoo!^RFvx&MTCZE17u?5doDAfyzu? zveC`zl}D?X7KL&yMRHg7OFZneIW4m}-dXlpL_j%1pxpZWD)=z@!5Q;z=eAp=MHmOD zXb4nf`pq1s1~w{QDfG+8Jl8P}@B0@b=d!EdvipzK(wvsj<ul`zw%dpcF27|WZ)1W_ z(9;QQ+P4`N&2bO(heov*L?&hrq-GCrxSIR^YK6CO=RY+r%(>b0==wvy$f@OE2pwZr zrzVbKB#vtC9+UsS+a1;n4`}5yk`y$Oz}o!7teX^hIi0Tu8&|}<x^!|*NeWK5$6Vpm zgn^l!&&e;G$rV7av^J}eFLKFA3dy)-9+TgODy<a~ZfR3*Y1NO9Y%Sij4eEFw@d_p6 zizG(xwZ4ioq-ZjvIB109{`ZhPVhK-ioEs0RNX{E{^!RGGjqa<%D!80Z+%-wlHHoXS z95!jh1!%6zAk0-G6*K1$>PYpv3wU%8lE|yHC*?NHyZ#{muqJ1`n%dDoIugoAnjj2V zl~Y+w&24DzR#}t@ovlVH>YNOy<C%^2EF%0@d_Q`<u$|SsKDWe^l;HXKljCtru=!uG zec#o<ot;-9>pumPRdrH}mrpVHg+}yp1`MA_F?X_NOw;aiWY}5a!cUg})o5zkmnnFv z(X~$wM%nFTE)(DnHf8G9>{~z%j_uDSq#M7fIiQ!D8z>cO+PwBImj%{^Gg=v_GOQ)3 zrL4SwgyRLk_0f`(kY`9<pg@36pXjnCv!TvfXy5803}v8+o<7qA%l2xVT<2WqL#}5o z1v$z`#u|R|M^FFTl>ejYbC!(ocrhf#LFgX<dsgz|<u9p-eh050A77CB5jn;rD?M+g ze&e@eM|3-919dOz_FFYWg|$%q)kST2OvTb4$Q9xki+=#(M23P+SEW|g{RpdnCZ&Ll z->r535EpJ^G)vw5%c`F<5iD`e?LKs+S-@>H3vvA8Lb_N$vnC&#^%uO?&DQdtRI4nB z_ii>XgiUw4kpvN_^h1b2#+7N_Sm^m-_%l1zX+lIXb+Rwz_>BXex;^9+2peW-7k{<| z9SAS~NO|j0Q6LdxkJCUO&;GT~EnNhei<(plqsN7P80jSw_OM9?LZ1hpEZZb6j*cRP zuLjsqk-1Pmhr4|{&H>Hm!!6{0*Tppaou(>|uAM;3RN4}LPS7<LZl<69)|x^s+krGS z^@h>#Ui%{GrhDV9>DLl3^w7UF@>*0!Mv+^f=rV6poWkoH^WV4D)?5&J3k%Ae(37O@ z)sMmH3ut78=_I_Q;=nzuux>V>80&h_)<3&UE{RL&^&C<$fX->}m+e1OJsLAkug`&V z{4>1YqJw^VT5PMapf$<|ACW)o3}SAEEKw<@*r+C_4?139b<kZzt%1qCF^!3us{}7e zI$Yy?q~`FuZs9jVmM&vm4BAj?Rw{Oz{4kB{y#^icNII-pqu0RP-jl{3n>Xw)Njf>5 z1ednCBT^1b!XBIllP8x%Z<MlMi1VQSPfw2r4-oTz>r7w$R1_-*PpFf&8Zc)qGsbJ^ z_-iLO*p_LjV0qcef0tyUe6o-_IhgHmH`|hk_+7`WfGM*K;|su)VTSQ_2iy*Z7&tr7 z$oq%LK<@zGdnodQaZK!$_Qo83R`<6!piY>rR<Sgugyu?CF=m1KB;Ah{JPreoH?K@` z5X16R#hyvGMm$!h6SUY@Xil2dAFQ=y;X6a6%l$yDb9Lk5nM!J?d)oPQS$FfKbg0y& z`f_}b^~T`Y4bH6$j6YTh+t<1$15M}{C41pD_dj3kRwhYnXF;}2ji2;HeiXDuHxCgm zcwPVeC?rM2I9Gs@QDMc+JXei!Res9H@yKv^^+&W#xn_DNR_)0Lf_XzqSRyZ7Tdl|( zZSdgb0(P9XTx3}4I)QFV|IQL6&m7_j+NJ=i^;TAcVX-Z|0vF<jS){a;9Lxn0nnng{ z;2~!Y3y;{9K>w8aW<SV~b4?5*>iAVCrlV8B^jJegl$p^Iv%k_Q!QaeWJuz7R?aJGW z&CJ+ocXaItAg@eFM<;LcG`?QmOEaKY&P&e@i8USlCQ{Vwh!f!K{AzSj*8F&C4GS`~ zhvHFGL7Jg9P+{vZ{ypnSRD*}6B@$5`<3Z)PhY3NSSMb7U1!Z=JE9#tr4>vY99YCOM zAEUy<<JiRMUgK9&HI17H=cpe(M#*q)zhRL)3d<Zd!?8APkIv1%e@NaO6wMiM-Sh8m z;kqABV^O`moNBy-MFU>bEtYJLCZGY{@S7Pp9S3kKMab=O6A%)v3pKXvYy|&gU9$*U zp>dJ{be%Mphv+OMw0<hTvreLT=x;&d>A;bwoF(@YtG!yUfVp;#@>_o9Zhj@0;_S}$ z#7AW0`*vuZ=3{i>pFqxGWS_tiWB8oy`&ug>m%V0eSu-_zOqJuahwkj@I7@4zCy+tz zyI1kD*Z+xAzDS<ws_zrni6cXmi9M@~F7hCwU#LLn8r1G$X?`U@IMPmh!`#}1ish|B z_HdB-orsgUU^iMiv#DjREW1!k>3QCujnf{wanb_cuR(eBjFTF}wCiv;mg=5nje2uE zENlJyqP<*{+_y?HKK^@=M2hrl=JfodV7Fy)T?FLKoJ0|sS&(>~yH5O`19lsY^h~n~ zmK7eV&3IR>NHYOO1nO!JdvF}-J{vAQp*r%y7$DYd-89}2XKQ__BF^ZkA{Ii|(KIoR zR6X-No9aNYT}hoHrSBkXDyN|wed<2b5xVv@gzeSI#dj?faovCH=;U)M*1wa3ZXwj9 zT28{YP3!R!yw*-gU3Iq>3ENh@Pw)p|v9xAjgFT^M>yES~n?}fNwFoF$Jm$b5%qx%U z-|Ba_NH2wFs^sEU8P1YfCD)QXk$dCpmw8A{@}4LqQ;~)6Q%L8=9Bn`*Q0;dNkZMx5 zT+|T6xn+!fsFnW4*}a}72c<XhgvQ5(u^H~X9ckkS?7cbc-o?IgVh0zzP!cg~#W?(U zncGCY#%|CWeYwK?Md!b&aQ)VyeI3B~vKim$&O==I@ou<-f(-K0M%iMW@|+kLwx9d) zL!w<X-o<On)<Z6(PYp`HnE*4^*9imJgQYhW){9#`fz!CS>ySa#8@mK(zYsStVXa=8 zOf7ji*Ks$3#PY!bU3Q-8^=BF1WPvXQMq;U+_jFo>)TFv!lOnAh!CJi*wOajpt|M+_ zX3@Pvy4?KNE*n9q0+bz5e+T8T7fRSX73zOZgG=l_Xs$PI638tFHPfG`nlF(jPz&4t z&u~(JQ+>qLX15>Y1>{F*lso}DNNVxy4@*%KbgU=uedgnIBN=%9&oX(pf8!pQv|>RA zfb@CH=lRqFryUehR2ELB>!|J5_ucoq|I@?S*|u=8TKJltQ82Pn`R`^y(9Nq#yhG)D zVK8>olXvmZcz=p4E#oTLsY{cxm~iDc&9vZD$LUoioS=}}pt5&!deI#5+%J??F}lv6 z1VQ)QG(q$Li`PrHhtmn#Y@dvkSR#*lcWt2(cOFIxm5f*?I+WuhD(5iSc#vBU9lT_# z{Y8}9ot_nN6Nl1g%cn-!B+LD%|KuM8{>S0IT)k$&9C|X%B|UE)lL6DjbTO~>0H~_K zrN)bMGKgsDNd_oo=&KSY_ltux7f6`OAXQtDZ9k2-8+8<VaX%`^_G8H5J!u1-2JL0M z{)36^&_orj#`k3uZ8W}{`}^Dss-D3yHDbwg?Y-*6wOlW3mNW@C8manD^G`m~Y<ro^ zVua=y8`B;Z8gjqD{7je#Vdb8FPs`6h)ohnSV-fo7>6|Ewc&F~K--X`ntck5r4sy2k znLA2LI>`KzouFtp4=v`@p;Q9uGt-TJV}}*JY<E~PD!Ja>0pP}OO4<~**UbtK&@FAq zGXb%5t4Ujz$wI~3hF2Cf4u8Bpr=gO=LoVNd7n&i?<eASmE^Wa9QU;e&h_|Hl6Cbao z+N;@Ekp6^O6TR{D>+z#i`K9>G@9wbhNt$6ze~u0tBO>|LySx!00q|VfT4I7h5{<+q zTEP=+X<xIBGuWK-{vxri(^q(E&xgW^V!B0GF7$41SB#}$P3ry|z{YwuIg(%ferh>M zWoV}*bHY)dVQ)w;GfMi<6>h(YJ=J+m2ruM)rHj*~m4^`MK;ujO@x#$i$U|P{d_`8G zp7DM(X1$9+jv#15nTPm$RJYml=-HwY$2SlGcSLn-MOu-7@Qe1KdNY)U)UZTWCuTQ( zYu)5+CTc<9_2+fiqrvMio$=O*C|F#w0s5PaS<4op{i4=L_~71FR)Cqz667XAc6+VY z<Ke|-?)1Q`HDE>+LTB{*NXdAm8Ral+hwAxcvKnP+LMa`rAOxx}9y;L!aV8a)a{@>- zxUr8r1pGE3<D-Hwl*9H0WT)D$x#d|icEOzK;BemsQp{V0Kq0DFQu{u7t4LDfH>pUb zWEQWsX6-8YhBYUvbF?6O>nib!5`jDucahsOx9;P%YmjcTG&+p?QOP~he=@RewB!Q? zFRbl7<UEwrD7U09aqID`ZeV^kw+YjNgPjK0t;xN-ffadgtv4r=r@R+i9U=i!Tn)Vg z&=Z^*B7wK3jnON`o4*;JyddZWt^;(#^~puY-LD|lc&mLLk5RCbU~ZN!`Pt}cvs;fk zXyqYFc;dPj>VLiY>x~;U<m~AdQx&F`7UZ@5%y;BPVU8ubywnQd<fIgWvyX1r&N2pP zG}|OM914SzCP_M5m#kj6Ko8UF0N}NPvHNf>F?aFh{aJrJK$3J~u-mA1uSFHe(Y|?H zu!oX-@E_g=TsMCAhM;Mf-qpg{uPFbGz&ENaC9F=;oAHvB{TZWC!tt87^ke<7$h%bF zYwd&RU3P*;Rd1HBj*<`?_DN(U$x6u-(^8F1u1}PrbHE|_I#c&uSbIF?=BxdkOT*CU z3<<03h*CA|08Ph<g-gZ?v*@A0K-J0J^~@92q<ezlyY205Bl7$9i@=uC-_@IHr^tn! zj1)V`MTgBpI@Mm7+60xEk2TM^3727OVv&8_<%OE(;&81)`4E7;okwuLrJ1K&*XU@d z6ix_b*;9=5Qbt%<1wuF~txknbPR2koiZw27I&Hh4|6#*!<YR+G0d?rXCAk}h8}+Kb z-@@Umus^GlbeBDnkdL~JUEN&s*DX=Ht_t>`m3`@nSZ;BTt)qbW_1TZQm{h9h5>Y5q zoRqFtvNt*^8ukKY)*_v!Xqk|G6K=tq#IJ8u9`Rve2IX&OE6giF`>!^f=kHVE5*n|z zn@$d=@0!j<ue;JcwDX|@Gb@c<Bs#6Nzk2KN)0K|soHeZV=eL>1qBA27gi@RvKfJ}U zO1uu6{!hs)M3-<5U%M1k%J#P^^$A;ae(U^gdE^xK*Afy_SPEi-_4Vo$QbXA|M|iv{ zhN}p^IzNn1ezy~LY|K09(FlZ6bvZY7oI0f$73Iy`QDC2YVmlouBo}=eUjl-D+!?#q zpdQ->X36wkkopeFT0_2N!Jt46EQVpyG!vtiZeG3)H}7NVoKaT5A4!yqG3$yLxkx%b zez#E#^YRtSe&)>Vq_b3fu;KEfAMw1Hw!L>ssM^e%Ia{Dw>k$3Dk|o~c7bH{f73OdN zjghHA+JTLk3V(pDpV5QtHu7BT)drl`QS3uNiZv(|!I>ShzkAg`6-z4-AaAtE?!6vY z2<7LJzq!vst{@f7>(5*yOxWi7^QLBhO$YYFdG$yea1F2&sBcTI@-Ku%bUq6CLmN>% zA0wUz%8DdUf%T)WhZ=ww>Q?IrM^g`P?WW5~Tb`DQpG#yz!fKnG(+zKXkvu`OSqxOJ zp2PSuN^?xSZG(+I57E(!6y+4*cLp;KDC95Ou~82HIzD4&C!wE~5Rg@IiU?gFx0)4` zzT9LSPizGozP<r;toJBK!{w%4Tae&=QHRjNw!mqZiHfPqX`C~GO4=;!%yxAW$5;(p zC*Q$qwM};(hmZ@0RX>JXXOPAwpP}$W_*S$iYtCD_DrCpGL-lB@xeGcu9aJ^loi*i7 zlsNUY)LD7>rcj|e%s4H&IMaOd7TeL4^A?@`wl_l^u-N@QKy&L)JoQ>b#m__i|CbCK zdI(mcgYyS{<i(y+$&0Qw7crf3Wu1&?ulRdYWBfm|>!VOh{aeR0n8rCR&1RzWe8f=H zJ2C!e7k>e_&D8&cck&Z?qBJarBgEUBr+-5f%r;qR;jW!^Y;UUNd_eWw%~esT6Q8!Y z;NtNC7@ruzBC4{SIWmV=`C-@|!HkDTi>Jm_hmPYEKhrRk1wq9;vKTDNZI{-S`d;lg z=emA#RwnYhVv{e#I)-J#+xDK=eZTWJmILV_Y*~(`jqGmM>CHKZCC)Gz7d9nBbuM68 z!Mnno&8!{!vwUSGi&HEqoxVGA=L4p$smiTbs`14+<ZR@AFYM0uU!v@9&cnXu7+eW- zPA&1GN|)NE$};XnBjO2AxOkCf2~}+VO|17j?6|~o<)>$epWtSJJ=h_>j?8r$sb$Zj zjSyIn3GkCp|CLoqUhbA5MG9Wg)^ykO&*PHwZ+{=I7cT*dFHlO}177S-<wNS`k~#ic zRgDbe!&&O7pS$YJuKYZw>*uCNM+r9>Z55JluJw7oT`U~;C^SUAgU1U$Vd{fmO<d3& z6rzG1aPg2ErM<~;uCs3(EGyDxvgcs1bl-5lO$wu9t!(r=?}(7%$}3?fxRAxOr>!8A z!6DUWlvv<G;2<CD7APfJUszF)PACi};PUxZsl*vr=~lQN3SjM^;Z8)4h)%!T5e#om zm&14;yYim4{smR1iS)o~EZ6&)TCr95e!-;>=EQGeY*~J1%n52AC?F{lM4T*R3n$kk zO`Hm_^}LKEOVpYocYdp-G3vpp$GH}7jz_s8MF_mIva)V^2ktoL<r=oK!yk=g3QHjm ziZjjq@~oBhUge^aYD(hoNGzPo(NpReadR_NoRV*UVHK_ULh7l72<nUbyXWtNv>-}^ z(sx=mvXk~Zw#T%%L7;7dAd!}144D-gAv8E`B3=pAkaBw=;|Zeg)KW79>WLu$&D5*E z+#CsNWlq+dG?K|98nAjr{rKrqB^qN~Jl0B^r8T`@eDCexMTU$zdoeZXC+q5mH3(7! zuo><**9AI`u$Pxrfg8J$#vZod53~<*$JkUC%WfWK`pm&NTD8-7>ASQug^BoIkj{RT zgo<aOo~jY&Oc|NwjtN6Y93(l^lgSe^sKHnr_(3C@2nQ(1WSN#qEJ<Vn$v}}1^@n|d z5lbGf(Q?B$S=S6q+z(@ya)Yr}JaVQqr^LF0Wj?#(+jCo*w_Z+_1=o~W*vOjxzug3< zrWc~^eJ5vqU7AE52SoI?5LbV@^-qQ4Te*JxHPPTg(cVGLp{W+KHX%1wpfE;#(&Rv1 z0@5e_WEIU|72Tv)PxeVTnn5_)@^(VYo~96>Rs?{tp*~f05&^7FQ#{k|uSFOcn{cN3 z!nq7v6^k=Jti1#3X#(}6q^O=BD4RHncq9rwY88CM`8CKr(calL*5S%w-KWFq?BFyn zK|-iSLWomiLd8eLt`U)#KbV?7xQ5?Agr;wZrVpspq-!uogm|$h)wCqlcxN%z5*=$9 z9%}(Q(1ZV$T5lC$wDZBUzTd~YG%xgXDe_~NewaYzO$yfG8Of0sbD9jM<*BCSDVD3$ z<OD5U|MmiWjY*szN}V6VFH3cG6uDuZ%`qbD`^>4zDM_E{;xWSfi%mv?Tt|YO_se|6 z@po%ZLgs@On;+~+r!7gRAP`SObXh3ce_=@9L26Q7WbqVfE4Jndns{Nb&-32prlAd@ zWeuXgn2iDg-nNIr5bIDtG@r!l!wNIWX&Y8ToETl>*_sIZcVPUmx${!dE)ll1ci!I& zSa96lo1<m&(k^s-S{drt+3fi<D|O28-jD=gk}Sy%oZw&&rutg{zi0F+IpJ{`$(0{V zNEkG^$=Gy}!KxN!T&IqqyC&6didl53XVCO?EE{@3l!6s8^+}YZA<l^F1z6AWE`MFf zs8Fu;LbEw>q?s|%nKzd;#VhkS$C}?x+ynXb&r>YiH_y+|e?!+1e*`P&A2;#fz5X)& zGMdC)ZP1gr0jfE2vD)g~gz~s71+%3?K!G`46b->lf(g@Blue0K&5SwDcy2!<MN)*V ztzeJCFl@PkwN$C*NWI<x{?7uN^l^W;V@e*&ml>Gf8r(Pc(tvX^Q5)6x?MeWe;xDT$ zEHJ@4e=Sw4IT9gfUL`0EblsfD*UaeRgg59@izb<QoyFpY6dqzz@)n?ukFxt`OgX^G zq8!DPJAz~Ca=hc5$x9+I;81H5eO|hB5x2}D<b(>WR@=c{vw+VX@$PKwj$p{GA$WR* zn!>hT*fkcpJY0{QIoP8i;^&ejDhRhmpJ-zS!BaN6<thI7H2MH{xY6SK>j$=p-^g6? z1WNb(%9DpT<BiyPv~;)S;qa8qRQ?UNH*mxyX~nk(zmC;*7^Qfd(uvS!5$NQidC<4L zSH#%**%Ar<O6d=j!S|-SVoq=qT1e{mU;=S8a*mmuu?%8Ouj4nh&=F<y#fX58oWpv| zAq@ny%%lqT|K|Tdi|-7(TCB+IGU6J0EN}={x#{W+JN3=Ym`!yh(j{Q@BkDFdQ#7N) z{RuY%a|7mWZ3!=qNu8+lPJ4yS8(X21B8MNOX?@6N3MbTb(*`y!&1>C^KhHed2$t9@ z1JS9|<~;zpU&MbKm|HSa=}9SQYf64?IW71Mw-_31C27jeT!~O46z_zV(P(Oo^Ggq( zvM|IQ6k7xrSLEQ%B#RAxm?gq!=s$tStHh_OOo=r+ux*BuS7BwRCQKNqI-!<Pp*K~b zr}mGUO;Y-M%ch|Kuc?4$^bUpvQlx^*!%uvaIw>UF6#uo#SEK@zyl6vS<#Y!7wo<^; z1%YbVWE9|K6<|N#wQ<C3*e37OjL~!c?<SV@@E=jM>8Z5oN$bjIEMAKO>!nDA23`l) zQ^n0DQW2(7>q4q21Oime+ENiZQmKu?4^EN|5W@Q2F(P9yN`Kc?v(QpP*g5$$z)WH0 zQdmR{Wf7J!qc=69XTY%k#oNGKRRtzt04%EqFRRZRv=dFW7bvE5OEnssRz)s(;s6ev zqD;lo5G2xY+qx_2&W|l>)-L??9%c=xT-hj?;{t{?ShKLIqc4mA!%Ktz&>@B6w=6fk zfdX$-&r|w<A@$%PbtxWgF+OV}kvvfQ$?F#^%&iRDt5;X2h^XaPOcisu-$fB*%u&&# z-?<n7Tk64E>Qc}&Q;d{BE(VMZb+HX~sk23%KC)a>I3Y!xW4%dKen5|UaF4naigv=h z$_HTfLMa=CB0Qxc4!j<I-h{ny<&48NEMWy>PF-wHohN&dBoDVWWRt8~%?yx^pqx$} z+IG|>fc<28+!j3;K-hqH{q&<ARX8mm*pr^Rkul=*i)I2SHrm7S>HxQE#tdmE67EAc zJ`UuwZf3(eh3jur6*Rba#Sv0}CMCx|%7oIJhSF2xS6=DUhPRr$?=i8f*k=u&F?qji z67}xw{W~e{Y_?Hu5_InEZv4czBE+W`r$Epr@emy%oZ?`dVuyr39>yOyri~Oh@WDUn z;Uefs#V2MA4Sow&!T2-)cxM0_{IK@qw9ZMgi%Th&ylnl--&5<ssF$`i#<Zg|E$<fh z(fQppdUGt2y~toDRyx;C2LYzW*2ke|FIGWO(Vzu>n9<EA=;g)?+R!q5Nu*dDtXLdj z$`O|pUeV%eUG&zf%*-|ofd31?iL}1OukqE0Ij~{mneO4^LKfn(LM(_B_$Rd0bIXPN z$R)jBGDE&SCCEmn1ph^8MGP3X_tTMn(PO)Wo>VNh+0Cxc8TyK0F-z%_huZ%u9gCx$ z<RZ4_3$LEtz4{HMXv-r5ULCul5<EZ&2WTe_*yFD3+n!A8+bzYm*uJ{j>hO=~&I@gI zc;DkNCS&d9zSvQ^{|q^k=rIzifIG>mGutBh*6iPOP{VAK(%sj<hup$vwKw>WY|=zp zk=KN!x{G#-jR*Ty2Si;0M^h3()~fW~v+@ZpMMJ8<@WbU|#>;tpBL$o5*ifRI0loVd z2=y;k8XlrACBa`x9K>2Za{5ayA{I?3U(UKjdSV2S69l9S=UvvhY7PX*`~mc}5<Qm! z$hQJk{Y(F#@8NH*@ZqlU6BC*TKOzim({FFnlfHAVU__dz(15Gd;4#nHduMJCl}hsH z7KN0Lw<Q^yUR`FquAw9Zz&=rV$*%sXMnqf^Ok5K2w?%;16zie?E8x3E@OKR<Ix=pR z$=6V#@JOfk2~JTX?&#)i6lhx?ezWZ>!5=8$ushGoZu?5d^v&}kFY`+8cm0y5aGarb zQ;g{&<3pz6v!dzcraWOQRe~>5T2Xb36Yje!CJIlqdk?Z3L(#I3v8gUK<H<ze%cP!} z+0Wx5;HJu<Cq0QV#qajV4V%DEm`K628bVw?w3juMSWywpaP50(ZuI!+Rw=wh4`b{I zY4Gf3_@N!NsmnW!3<h%|f9I5z%7(~}IiFn<g_l{q|6>(3!dzjqr*IoeVcC<I+*{fa zS;|X6vF}V^FZJ)Wq}kUm)F7`<lM`8&Q~Ds2{4@N&a)B04DdFp`2dAwrO(VDvkzve# zM3Ke8k;SE|4f-l6r0eY00QeigO1{k`s@DXY1{}KvPt=M`sGxNmeQ+E-sYeXq`tvb3 zRFE!-UMz{8H2Ew9*^8;Q=Zl7>m|m44>q;*<<JUh!_#b&>+CXl8y+#&`Ae2QAUEL7Z zvGQus_GUTpy21K(HM>6m(I0@fV{w=Jm9xcuf^e>faE_--cMtZB2oOpHs7ZW)2WOod z91PqJ29l!2AdBebw8ESoGa$s`5X53fvOkl3Dj;zai`#UR+jP2u?w3a>nWFW`646l+ z{83S)Sd9QdHIo0pGX0b0N=V0US<AE?H(d~rDhNmosfaT<`?EAe(A3-KXw6|i@i5!- zFw4`mB-2Mx><!HK29gd&6W(is8)AP5V?bx&ptBO&HO#R0*mH2$b3ES5tH1v|kBhXL zVc+y~UG_J`QVumF;N3so2*=>e1>?-|#1PHZteIT^7lkP^y`I8UAT|G?1ids@ocTVM zY@LnSXDScPodIX)HpXv{zkPE;2@e#=y3h4=u46=$ydWnoS$>mY43ZXCeaY?C4#f8V zh}x|da^HyMM!wh$EaSTm+wx`>7rpS`n5a9SzX{|dkLO%FJb#A9bwMB3ps=vVoI>Ln z=QqAL?tkE%7lFz0kb7W4AP@NgHeHhS@mIh5pVMK1o_9<pl~}&V$-B}0y|xLMZT(;B zjlDo3oCR7h@7x9tm?q!Gem;l_vvVf<?*~lm^<S<~TCXgb3A8KBy?h~M%zf>p)fV|T zX}$1A<bTcJ7<GL;t^@!7W^l-^f+!GK#r>>o+b=9=r2Bc;f4xs^IzR#4bd2)wH%WjS zPge$5IrD$);JD|o)=K`@J_+KXvFYv!nkm<8`mG?5F1_5Znp=E~P%|(XWp%Zbheyi& z{@B90QYNu2s-2_n?f(O)S!K9_`nri6#dhvd#&_)P{AKJCyqQ2dg(W_T?m~jyyVQL$ zkX_IF|LgneIJ0BB8KXGN!1jiur-O%MX1ieC?o(gU+)i)x7?fOWTRPQA#P13q3cr3> z^WIgouEGg?*G6+8bjNbN>Bz<{?Yj$eX@9AiR=&>A5drz!(+t+!8ryD6OlAxa%1;L^ z@~D_yZKT{#($?F*wD*?sc8s=LW;EDHY|UsvY;ubpeaj%-pWLX&IZ;i7*x$rCqBU$@ zE@nUDXmO?M{Z@|Q^8)X3o4kjiW#*=+6l-+SLKQE9{sT=>*%KEvu~1@Nq1BI(s}iEA z<BW5kT_^6vO{wQd(Dl(6@3Gs_WC77pMi1IUbUSQ}HwPR9Fn;uFQaEsbvW+xU)03+7 z{?rIeEYxw|)N6K2j+d+_Vpi5;X)Er?FzTw;1Q_^80C1^&)X!Y;b7Sgu&q_hQ>E|!^ z84oYRycYsLlG6E7Xm?J+$G%YaMja+!4GZNUy{KX7UGm{IxQ2m@Do(aq8dD~l3A8<& zKG;L3Wtk2F=*!Bk6Ld-YFTZuwyZ!aO4Wkz!HjEpZOELLY=Z<3FBTlP>(_!jtvbSNs z+_8DG$-Vg$n!{>Npop6sUyUvH>!}PfFV2n!Qv8@T6LY)-*WFZGvtssh4e^qW_3X+? zLzaDkB!5u?V82Aq_`?8kZS_YJ-7-om-i^r8XcyV~*a-Vs%<vNDd76mG$agnD<~tc# z7q`erB5X`|TT-%2$L*v)lh}%5ye%~3lv;iApKIg3TM8IAgVOc>_&;Sq1()Fclh9Bz z25|9`5Q{lk?b+tsCtOfs>SK4;y+8EZT2V3L^^V2FbvXS<8;-T<&Re(sN|{ozE=$K5 zy>>3Q0r$&+<}2^kxi>2w4`<|(K*DN3V6CJJ{Tg!D+D@o2uxH*fm~IU;s;&%z3pHXh zx#<+sM>Dh}C1{0Ah3sRq4e>;==SgpnnwWUW-Y|ZgWy+aaRz#clf+ED8s0@f1M`1OH zkUzcn(c$1uN1lOAz@M`xuU+WYW?{{qNi;Gb#l}9#eZyd+vAqhJG+oZC`P&F*OW+m_ zZvZGHsQAspPJXwk<$GK*&p|F3AL0X$qPWTC^4`u<Ht9Id?qK8zhwU;G0UKL~vk!~$ z(@Dhn7`G5CT7cO9#6*6z$UK-prlZ3_j94D}<Yb7#W={03pQndS1%(B${}A)ea_-#L zQ+Q+<H`uJdhordRM?CJ}vOY_g#m;!|&BL&>;Gpr@O?t_fnk}!*+%A#ZG5P)xCMoNK zn2-$lpT~W0gmiV`K;ujueizA+3XUjn^o4n^(bLO`^v=UCFSSiNe;3X54=JnzMrG<m z+!%#s)V836Cchf>i5$XYw8G0C8oJ#G;&W!;z_Ur~5X~o4x!PDYCX0>=F4H)6)0jwn zi_jH-QO~ydHo@AT!PrxTA0H6IKoL|}apn@SU)|?;gTNy8h1GD>bgmJnllkP2pF!*x z5oV-jy4Ln*8mr^iTkmg&9TRtDxBw(5f7uc_0qZO5SonSYO~mw!s$q_Qx52|CNy7QB zxMtlA+LduWkFgPj7`mNOn$De<J+Y;7)xm@Il2<&?6m};<+jgGibCh^jHdDgKHVN+y z16lq#ZdrbN4s*k4FE(|;h&Ii9rz)1Q?0@DMEUMqiJ{TqqY{poJDJEOmT{lLvu@MKp z8hmPl33ve>_nZ$cNHk6%-xQJ8lMMBQS?CRqFP)8ggbaFCR&ARmhtad$-piNFf21l> zy5Q#yK?>fTUaGh0?rscea!=?pgqXWCC)h`B>t}9(wN@~Dhmk0pOeA*S$r+H&G(oz) z&wsFO<k78i%hLY&Rm-iwzRPG%j;)K}sFBCp@#c70P6VDyaeo50KaW2(7?fU<9aSr6 z)UBd%c7jj&<EN_s;6_&8rJm_D?o9nHPG-F9AtoIl0Xdi{k&<*UlsN2Wn69z^JA8dl z`sZCMeyG+d+OoCp1LGPp?Lct$XIvY47PciqB0ltvm8xB9c1Hr!dd<Z%wdh19T?e)l zX%uNge$a3xBA$c53QdFtTi7-V1#M+d$>&`lkR@|T9fD-in1F=XnD(y9(S0!HszI!z zu@^{sF+;?Oo}x!;=^4goJ&}Z*QW;BoT4xSjC$}Wk<FsgE%C~Z~Tv0ldGM{2HwJuB1 zb2X;m{fJFt9l~ahIKd-YnBV}fwuq9FI+~ZE%{iZ%vROb$h}XW=2No3!K}iO}1MK%^ z$7ugn-c@Br_O}?iBngVR@PD4yQ1|h3EQr=UT@f52vO=dd_>{mrO+8VJ%*C7m$Z9yk zD=x=l%fdyp57AK^SXewgnkYk(nLsdGL;*QM^=QlxsVZYp+tHBlWqJ_cwco+DlO*zR z1oS-W<`1uK*JkC4n8q=gS~}wE)h0LHxwWm4^kSmPJ;Qyrrx|_!<9k3b?Z2z>si4fs zSs*wnsO~1OkMEsi<5<vpi#O6YAYP60ONkE#-nQtZtl~$6qDvK+U2OCU^86pWm^a;( zBU_FY#Yh(~Q()kOiXr}RH!s_X{HE+YuN~}#zXElh|60M1Za2^NY$i0CckA%z?zte` z#^Ghm@qi9h>QUPrsG^fsw~q<XucRSYDyA+VQ_6i00))%7Ho10-o(g1kJg1Z@A*__H ze|ewX{uXpCEnkwY?CERm+Tz2M1&63WUPi+0W>6@&!1;|{5oVbOc<$_7PdnN2z=z^Z zqHDC1BIii^((-;zig8@+`A9d3lUcs#`?SpXw!=#ZS*^=sCAqmfKSOm+D~7!J!BA+| z1vHbncnWMew&Vr$9JxqSk>E%lZp9%Qy!?ItHl-o-6(1){hk1Qo{qMi4iimt|7CLE3 z<74u0Z`9J_zV!Yofb<sqR`b!EJPm=fRyclI$oU|z$Y5NOvWgq0L%S09?f7<tv%=)! z3}$cz_#g+dq5mm8*{U#frefs|o{ykQu8<<DlDWaVp9J9gS3G%g%3cKSmd#6K*~f0W z%DfF=Oz3&$d>p-Loh8`wxby2&)4l{kq$uItKMsoDl)E~~T2blm;ZYt)TIq6={wzOy zID2?&;lE|L7^{imJv56vX8IWadAHJs*{*ESeR0hhEW*lBC42UPu4iFY;pk(qH8-Vi z8Ac_zOcb}Ld{Dhc`)IJ8vA$vTo?)v;n8-%HPMibbYlRq_cGaB`1|yAFw>jUbi1#QL z6K{X(L^TSU9v~X&ov!?=rvb0cSP5Wo^#O*eKM3n6ji>;VY6pu-+v+yN_cZ9hebxFB z<0gysk$6D}7_Jbux*ejCj8W=?W<W1y6}wqHokbh0e)6^21t{n?MI|0zZnHh>{wwq2 ze&T|k;me8Zx>T_ux9C372ek%k$CHjQj5yc(feyPIuRmYLaF6ImBkLY91*r2Gp!>Su zh+vHR)iJ47`JRt3FVmvkYsBYl@T3TK-R6Q2lqv71cDNL2guxIWZSz#JCJR;muJgEA zm=FFT=E-f23Rz4CA5|OmlSnNag$GK2yR`*Zv+g>^)7dpC4pgfG`i_|*k%c0$jN-(r zp5^UWbyO#=X)SlkpF<PUa89qabqeYpmIlb@HxjXAE%`d1-*UVrUHKKk$&bgM<cZ>U z&a(Oz?M!&w9F8vuaY&8NJT5r3wxFY#gfzXRxUxd9W#LAP2p9g{Q7EelWoP*(_-rs` zVNE&Lr34Y95)T|4g)+Mm<t++R--zU`Q1{$XqujN4OZ59AgM5o0e85h+_lUS~9#@Ed zIXIep`u;<aRW!kO`eJP79u0ZM?#@3}9uPSF&`b$?uTL6V@6wT`qIdFd78x=w4m#Yo zLr0MQnA~9;kjRC5a+{z^OS?EGF)mPrqZ1)nn+fFE)wJul@nZ+(B2Q=A@s3_HNYyV_ z4>3iL4%^|8n%F@2{@vA>daZ58Q>viQ*ccO}A~dnIK_2?ww>B`rXX}vPq*+SC(lgK| z2v;tzXv4}QvsA1}16?kCZh#u^*kn}}x57x=dN*-9*peWFk4!w13aGwIuP^dUECvE1 zf`UE|xu>ykpJH}nmvgEu&vkC7_!*|gYw5FEVDJ>Up-b^=Pfd>Zl@N(zlob;#N$_bk zbQxy9gYgZ^(!oK`_MY5CMw!hrz|}XEd*7G|G`H9f<NTv@@-}~Ec_Yoy#tvD*t677w z*+JP#ZNE=!2u+jyGfg-5MEGsUG9cTpU0Y4<_ty=!dAm;`KK7OE6Dw6XrSIy8NP0WA zwL?=`TwBfsZ|K;64HUtbMl=kO^aOJ=>No|!Oo317d+8;t0>c-9(94tkyJx|-9~Skh z@b<CX=v_F|gP*vHY;`oEc&rq5PX2bUpAAc4iMcv(wgMW{Mo7_bW!yNUJkmAN(^IDE zfGiQs4bt1Wb_;zCaRl1}`V9dtQCZSo4GlFrb*<9~UD7$r59Gdn^Jug)8<It*qGUF= zYrH&nIIf?ER@#{{$f5tCVm2q?3HYgf35H#SDv=-oCO6}G*Wpz+Czlfx$27ok&Qeo! z^LCC_>VpVo5e((*vsPBi!_hu5i+yjfR7k3z<K!pk-+8QW<#B}nZd${piH;|(598F% z#5Lg=y{TGSC8~MP5o1|rw6?5#5;7N&Lx=msyh<mwTtEp|<8<L!GIy?1Ke|Q=R<qK= zB!JdkY3eQ$0+>lP6-Va6d+a|vs>2B+XSwy`@C1_I{=oHZj@i-w))L{NaeEqOhqgu1 zJt*}p65QD1v*K-Bmm6KagL`Bz{#5s?%d*oYZSXVOawvwiWZ0;8&%*F${bd9~>%DM( znRiV^x}${KtfY_%pU)=d0nDZ*QmZ-uIegujfm=mS_l=x@{l57$HWTzILY&)!=3`;c zUmu|55-HFO{61W+ZiW~LFN}X`m~zUU3(xeyj7J8Pumt9YeEsALqA!MHD0a}S_4xIJ z<sa>gfsg|GWIq)LGA)O+R3bkgOSzA4<ZvsTEAGeai`aUw*)0g+9z@+YOhoZ56-jak zUv(%2lXI~n$&>+vzyzvu>GihnqmJZxvk!|FuQ5=CUtyF0z-a`-X-J{yc2FtIt9Os) zi*0FsQ9`9V_(jdy5wPX+cHS>vMl{H3xb)`_A{St#)Xe^i>!&guNtwAbYjY=bkO$rI ztuI^FK|Ij9;S#5tMAqyGgm40)HXnWo&dtQqDf>9~_uqpcZ{9>_*2bwG{blDV)G?Ly zIv1dx5<P2yl7a9pgIaxrPdQ5`vCQKcqw;nh5YX4XS5wfv)#V)f+QOa!fKLUe)moO9 zX<e!Fe#jy-EzCeD&M1(WB<t{8)W8tZ5QFJo`xy!7hT?bWa2x0nypAaO0Z&wnvl~>m z-98>;lYi7fKE-gp#S!zIQP^jTL!8Ll8T6!oD<Q||Lvi%mFtN%zhBts%Wg>gfjFc3w zAD^lpKarRKxLSxD*)wU0vvruWIAL*J-SNcZr53+q{{F~3DuVDvGTm`&J5D+P`jSSv z$M#@oE*xWK_1@NM><6Pkb8=(i!MDwK=21TrZQp}zquxpHJu|nF483q7!*NN|=3nKw z5I9e8X~1!7NR<<Bz*mDzQ!)_JGU|FKc)qm{&EAnjKXZR~^3abMl@@sbbe@;OLaqK= z13k8d?pVJ+vW|-2jpoxl<Zvtg2F}-2NL?ACNmdqR)QCMCk3k>s0Y62iQe4`M4T-wl z;uY9?TzO__y`4xW>IEGcfzHHl40?$t302)FA^M>{cJG7jqU1CsOTIP^*X9g>0uqxk zg=FDSvI-=YiC9?BhMrAUuuMBq6<~tz>UXkl1ZV&^jbJwop4_b8$A&&V4!p?Uct1;d z?U96Y6C^l9jaZ@^+}T|Iwc2{gc%7*Ii%_hD!|&*kgsn9Fl5782+j#pAJ!yne!TITb zYaf<kpzk+>_GNY!!?ySKE`-`{S`Oi;gjzg;)3%j0!S)(F#%m})$OxpitLUk}#m**a zed>^uG!IAoo=MFyfASs8(|r&Z#UG}O7jnOqvSTX2V=19s{mpi6?ziPacHpuK`^~SN zsba5_DM(<&hyj2>;xsfZ^<yc<bBHXcGZAPr3pi%p&H8b2$k8SD+u3a?8G<mnp;aID zbcVaT1fDYtK2@?k1K?i(IL9{lCfeh6=q4Cxng0+7_)PQZsgWi}k(-Vcm-txDU0|3+ zvr7=dHHf-k`0Kw&#K_jM_IJDoOAb5zNF2!TIIJuZ9P@#-i}1VvoL;lSYW-{h9mz_D z?u_a!$*-QWQP`3$ZdVI5=e?ZPG4#PP^wd@{yEQ%^ONOi4DM1v)aFoRnFKl^Joej=` zfCC;;HWL86DF6q}0t353kNGU9<2m&LY0*6YCq1=D%r=r&X0)E!ds8zQUcz34!mKMD zp(ni#r_0-K0utku3F`=~r1Fx-*K|f-&7XqVt=;(nhpnHK<#mZ3i-I4EB1UScs;9>p zu_0-!OKd*_ij9lB@(J7{J_257+$V-TJdd3Y1`oyt8kinj49MNDWLXJ-J<(-V*Ms;d zG4xb1^rYqvMmI8d*l{{-IO{Wg?r<6-_@*N%v66IW!L9xm870eDrvH%7LAVI<ur8u2 zS__-iUO4;d$LQyS8y;rcuk?BARczt_cnJUwv3W||pX_~IV?*^#U5-3$ZQk(Slm-RN zePwob2LQYy0LR4wpE4TDMCdm|H6dXrniZ4zJ_rE}qLvso@AWw(F&PBsgH(&*)QTfw zIDRyr3sw-x76;1~M~HER9<OJ78H%UhjxVc17{RAYpchM^Ck=}sREj3rx6%P__LfNN zdgMBoUxN^CLDY4_FW=juzJzO4JL~#}$QL`Pa>#B?*mIw50H~o&*4noZk{9<@x)LFT zzo+s4Os8N5HfhW4BV0J@4DPbf714_o(Ni<V?o|4%59V_s7jjxj=Co!^#kLd46bH)` z%kgnswM4_4y?<vm_T!x!6S5v>O!sr#>t*c`!l+`Rs`0gB6f%LW;n<HoSBJTxRBwvg z<;h4bB0j@0lwETfKQPrSXsjq?tjJNbdWf=R2!k0DgW1u-*74F^*Wx-A<vO(~v8J@7 zA8hHJ5?C8LvN09HEn@%_GXPSrDxf}?B#dRV+fG!?_EgPEIcbrjSGb6xGO^~MWYO<z z0djiZsQzA`CYx+c1IIVJK{MhO9jPcCsZBdoJZ$&W4w^_ZGe|MBN8er{<QdI_TG|Vq zHIUszIcU{TFcW4llOv*Kq~(k=!?U(US{h1P8eLrjQEPL>^YX>Yp$dsb1D9z7*T>%r zx0ad~@6u4-r8SBF$)p@7(kp`3D~cRp__wsxj+e;?jLDu2&YqRp*Ub4k5V)-?0#8%q zNK}R?^sN#k_G6ZZW1jAdG6=CK1hL4G?CVnG+|cz2my9e>OcqEg5XHaT68e*0orF(4 zb0o3gd)R*m6@X$2Kx*}<-Dr2?oFV_OnEqdt_9gjSd$`FhesP)pYQRKa@W1RIp~D=Z zQ<CCITy@JDH6fAA;S$T?!a0$;TI!%p>gFou2j=qwsV5_i`Mb*2S!0h?NRCuiWrA>B zRN3wnEp$^*bW@so3$p#Urv})l6cDKt*5K4g-^u9O!~ZLEwEbcY*74#R=>j8U-HX)4 zuX7FY0DE|V)J^g?7oH&<WH*EL9%!uBI&HQSj<Y?Evpi07U}ujqeelY~n~U3#R+U*- zQs<hqMOrdST5?luHc98EmC^;D;TrpT_0wMvxG)4<=*U$9cJjy=z7XJTPiYPD3Y=}# zySznsr?x5+;cJ?nZyOUc8yqvsW2t#F7EG*4LZq5G5lp=qRu_4O5?iK5QVKgU*7bI> zgF?(RY{-@Y)0V+eQlqM(i7<PXCw(KIeM13pLjmtt8^b22o|LOt8<?*Rq;8Bd74XuI zme(MW(^!?sv=i|(!$?8FNTD;&|4Vl~#FN5)Bae6^kC&n1L5=qiVo{omQkvW(p2Kt5 zQyYrVDvzF+mCc*N-Y<{XFOSZiy|@4jI>)NBzCc<6T@{906*|V0<g^hOTC^miv?SB@ z<&bm`8(MHBqi`kD6=amA{~x;EJFJQ5>-P-_y+|(-rGz3<6Ohmmkt#@&E+qt{hmKSs zp;ze`P<j=R-a!aeq!&ec2c<|yKtOJO=e_TH?mf?Q{>o&YJ+o)lUVG21J!^kIoOMms zFk5wyt@=Dv15A3~7zfBIjQ+)a{3dwH5&Zhqis4tH?+(<^9Eu>(Db-=)Nu2SdQa{~U zZ6~9@*!$XIn6Em>SA8C*0o+=?j4BpLuusz)IisTxNc`|9X@h}#9$SgbO(D)rX(Y(X zWS_+@7h;wRqpyph6*-XWOGl{Y!HmcwRa&Peik2>RP}U;=-f4a*eMOtH<EA$NOg&Fs zF0AhplcqL4$ql<_eh1_<x(AL18Gj=XDT?-e2uyClxS_+@>|bQ6z0a@cEc=m}_hnS{ z2a9?UfqD^2jbBxwIaYM|<0S6mq~ZsDy#87vMym+rRpxE7Sr!!D`i=iyUCE>Bl1E8$ z1`kqlZg4d#z<_7-GcUltE5>dFkRlY#$LE#Zu>W>Q!jr!au7ACgy(=r*K936CLPl&! z>_5%TNZ;!zc!Vpcr;#0`EEgBpPuMo9?69g#C9X{6^(b;&_|=tVY-N*5Y?Io^Suh>` z2FT|r`)L&3{^UvEKyaH=H#Yd7?ckzLB`$jsojs{^np#G!M(_Y1z%Q*!@xS_AGl0%= zk2HC~YWyN|AQLHRZ`;@Z=eTw4{a)GfNb6Q@Cl>?V@FGb>l&Se#UvMIeW)XpAQ8a@8 z-*132QmIAahs?p|>L;Voh?4<aybV^V2%}UK&CTDTv1M@DZ<>(wn<w2x!N37h_H0sP z0~;`UkJ!usVCDc`aa_Fc^q^iFF@4*oS8~Qg#%~sRR1aJ+nIj%^?6o=xVF0`0vagX5 z>BJG~yrT6BHy?RVv>BEeWxoRy(|PG?FDl*a&ash2n8+fOtY8vNS0l4FKOn6rx>PV^ z%Y&*<O^`}W5cL!(-s#+p6`;ZjpnA+cImiKV!SdCnd+y<PjagZY=lXGL&sS&1?m7w5 zRMp4(Hei0nrP0zD%te$!So$oPt-qxbe@ku5D_+nlae62H>BBD%qYqf&B8+fRwAVxL zZ(8#3#$UZG52;ulKJQigUgz!*^T=}Iy^;Id{WJ>t*Y>zcqSS||0!^taj40u=$Gq(3 zpK&3?#{8%rJ*j{i)3XipF%OaBRo&r<x-LAD;;Zxzu}W<gqap&MqUdIR)ts3Y5Q|z7 zfm#ttp=^sw+E&>Cq3i$_h(UZiAZETf?Y?q*J$YF*^#hNQ3%rbQdXWAUC+h&-iq_q< zdQDii?+@Fv7#)0N>&NzIZ9`;*NaC&aMhfvpN+V|ui%W%8N(|qnAGGyZWDm@+W>Yr) ziQgh?fL1t6mldjON=kp$=Jk!;%<Xy4U$SaGRH!lvv1ipqNQn2d+=ZT5515X7sGqVs z{Ks_u!R9m5y^|J;%`%w5GmybE`j2`cWb@%a#)2MyEwL*~xXk&HdU5!nua$y>|2d)V zM3#6}sP_7`gM3i^Uo`cPH+K8dKJ`~vyG_v8VAD}W=EHVb{K~%nUz8otp-LW5h~t{$ zZ#)X~W`9u=n2Wqr)EBJOm4^?K6xauJ`$1zJx+s~Dp(bChO~ASWxKrlERl!%PLhNES zfe7TK60f05KK+~cmn|$tB!U7~vwQ27K6dOQO)rQ2q7pF1@_?E^FpZPBKf2gj?BHHM zyG70$->W|(ZRZa}hU2$OTrEyWJi<Q5;$+sc8sogm2g|{4CSVUlw)w!PttPFqQ~bPX zcf^F)K@EWb$4jMLrXtr`Yl9G>=eS7}ujUnt_a<m(@Iij%H{EjOSObAjR_$IF`HVyZ z+nfIm`DUNTSYm^a`sviAg3A$urtjsSfk|kR>?Bg~T4p2CDPI0^*b(COiHfMvgqe&~ zd1BNhVD30NS7@$4pxAI10yVwI`fOFC>TQnCs8)8TjNffkl?=<kCMa>}0kEYztVD+I zRp0{by~C>wep&J8>pu2D=b$Jg-K#A5;=oIV%VSh(Rl{aTdxqHQyi5|$$yQ?7-YHCB zm;{Y=1x1lv?fM@yByd{GEA$6~Z8QgnDp{>Ou+$sS9JM<IaYFczd=<m7HBX8h+2vKi zT%v&|(R|R!hAtn5YKA^cIzJbw)?P<^2`QTLBzgeq`24#UjO;=zIk@#N^mBhbjNRV4 zBOcx_!)X3M&S^^fU3QIM$LO}4eDS+W1(B2JQ_-MjeOc0Vl?1(~#A3sN2<)X&#NA~l zv1C_HgPGBluRxuVK*;yFgSa{`q+<s4H_;q5p#m9P8kZ*D2}TEhU9U!lX#0~c(Of4e zNzp&1IN7~}me)uj62%Nxu2iWilNE(aywDHH$+pa6U&JbjeTH^e`h=|Uz272ce1z!V zgy~+0#7l1C3}5zsJ}A2mqJxTPYoT`ZySqHG-zDJq7{wv7wHF1hhQ1ggDNff$I(~iZ zEcjC4>v1@r$=>Nh_R!iuz^hBR4wLwsvRvNRF=A(-?-wQuQ~dgjPKG}o^%g!~)J*TZ z?#&uN%BEBM3g$$8iE-4&x!L8hSZ{**2Ol6Sc8q-w+UtDpj0G)EHkDRHZk}Jb0|nSu z$^#)C&w9VU|5~?vPJJSrcKdq%`P9+zQvV<NU9RfNK=7_3Xo7h6zT2lj@Q=ZoqY?gn z+ew@Xyx8heq31aIkzkC#mN)tZn!Nw?DDu3sT{0+m;nMB(aplRM#jhDsuJAiD6{;}k z5D6k(o5&WnJ3Aep*7k<+<y$22J8DYd<^Gjqch(;^EM*5Hf?56r?pvGe*+s-nz1&xS zu`8RPuAwH{_64)G(Rk?45J~zwk>2Aq)^J9!u~|oaUxSNN<MXzd`Xp-!&BbF(>n8oj zmkdTbO6B-LP3C6%bR*oexjXYtuW*jq-tjhq@>z4)hqPED<5hy|&3T-qsKxT#s$+Kf zX8gN&*}k<4mU;o2GeE_4(Mx5_@^2G#J=E0InMrNTvb_nK9C`rx++7+(9`E@*C4s<P z9?%*H$t~BiK|XdA%tx;tH^r<T!y<-ADBrpExS<ls*R12xsab@UBPJkNqsoOT5ff>C zF-c8j!b*OThiRAW&9UB^Uyd<vH|e*HpX>$=-Z46Xjt`RLrn!PlkM^+_XFn`E&m$JM zU;SNo3;g%<v|Iw4RyVc(=%k-{X-&%a$0FI|Kh_;-)PVvy15IU9TWLNmo0}UO8RxfM zd7DG)K6otT#qmf&7XCNw{`cy)1RH}76f5~U7)(y>NwJhHVt|<xe$CEfOwi{1FQeT? z%x-|&K_PkDdBxf0x#gBTQ!vxB^mCZy5J^Y6_J$K|0baGqV#~(f1VYZFQ&$V+kj^8U zSMRVK{?ARf%#LQ=MLc>(Z7*y|I`W@%O%Xs#AUM%!k)ieZK$LqnA#yIAx?X5mWgZ!! z@u#5QgCbC9x&Ox;uAo1LOcTHPZEj$ds^97o-E)kR6dX0k**r_mD&OBL!xH@I-@;E& zZ?1|Od<vFYN3H}8e?G<pY|b|u?Xxs5xh1|8EdV*S>~YZbdC!=AsU9ZyHTWQ;^7_w> z0BZjl<XIlLVtDyq;gO`_LZaBf<nE})n=|W^?3cgW5-#=S4?hM%a$?p-cFxLIs7`b8 zlP5<61kvcC<7i|47$eWzoL4)&ovGiyj6Y=0eIZXPt?cpO{nBY|?N6#Ni$Qjoqb?C9 zv&^$D2yvq6RBfB*Nh(^jMOy!k8&7unCI?#f+x|c++5qp5qpKgrh!inr{X7UZ-$&r3 z9hr^nsx3g6!3T7ue4`7B%KB9`7(cv7rgn8V=>1?*&Bx4~J63nnsPFMF_vd+_EM8=b z8j-N{kZ1tSxz&Cq{TXk&f#24Ov#);&#J#*!YG=fc2>fu37>6%hW_gz6KP%>?@G|*+ zYT!8GSVNO<?Z@TiP{tt={&ej^r0#toSyNwYe!r{jK16Cj!`j{8P@?tvK%B!R{6jiv z!v4|?V+}q3@YXSAWOIJT48kV;Q_<S@9rdB`GVy_j=!Z7`K1yMB7JOIiYQR9_c)+<Y z<!SM~kU!JVw!S>{yi8_?`saH3B3HE+2s8A6uGv^Ct!b!AI;}Gx!(2)_+~6MCtb=Oc zd*FGOk`Q~8seDqYvV%jx+V>^QtX|N+t-V6e<F&q7*yCpF+H`6gyyr}tzVoA>(Eb_Q zS~O&0I07A9E5yUppZ~du#fwCaF8NqwxBt7m5ed}oj}m65G4G(7;MvIXyU$QgE~cGh z?(JE1C*79I>|Hf0Xk@5qqMh5EpP4zfLDeobDE)}S3A*w*5WJ)@F0ww3M|HB*Yn`;b zcyNQfCwGb`M0%oM$S<UZdK#Ay9Bj@XTEt79TTMzR#dk{xszhq&F3i5H_@h91g6ggA z|7^ZzAj~8!aG>t{wuAxAa}sSV>NEBq(!|qWeKfBqs+ezPpNJm{f~sxgX*IS^XeE6r zsRq>q8bxtxqU?$Io$6aFrMq;TxQZHpu{A-Gc>f`~#gG*GOc0Q2te_O_@LZKka6~2h zQ&voMPDsC&gIkOwEvMv}h=};r-C<fb1g{A|vlczbJ$0&Flfj&w_3vE$Ka#aeDVv+h zFy;39jk5$YxWZb1+AD%2{eJfo!$^Uu>#n7sCd0fL?MJ<p5i9((Qr(^Y8>84aSr+HK zmPL3(6|F4+$1o7mJ=~>xj=gV9jXXpfpS9NrZ~)`@DF6mcGdiz!DQ(9^20J{fW&3J0 zQL_n!@p8_gk>50gm1KvxK(8Ht@1<`)*vclt$x%cth`r6(YT#XRXJ;wSB2ti{D6JQZ z;1ZaM3V13#|5UaFFlVArn58Sb5kW%9M*+}bngP6uKUgNhLYM%`f*g9iI#2dLj~IP; z)i{#?-j(3!0YXG8MhQ|t)m%7iH2`WwKufP8H!t`WUaoQ0oNhfq<ZO)SiICd=srXIo z<yHhD)grax&byIgKuSN5Bc2F8IYUegPS-|+5GnDph{)xK<(}4x?D6(FR{>@$F!8^? z2c{sIi~xd_=z+ETM-FL^Wo)P1fN_)LfFed3T~qH6VWV;=y8uAm5V3BJS~0Qy1l%$} zSX-bV7&y+k957>up_wONrZ7l#4(c=F_i;66F)+`cztx*Ic#<vjL#E;t;48UvqM)H3 z%C8Hz!DZ9}<rV;_87hR?T>jIYnV~Ww=tmHtyU3$hD*WMwM?00ndI#5AYp!KQp`Eu- zk$cw6p+wj?M!;Qx>ZF<vH>RIkoE$d0;)k)tjDY6?9Fz6-Zx`4``aX@jN!35SV~v)2 zN#NE9gxJMyX+JfIBjEKQQrIAOR;t_zTrIvLW?5wfbPLcZ`r@bh2Fb50as3A#E~a9d zL%SGFZluJ6X^RyvA|);6o@0-fJyE|e);N67a(8?0RRJXN)>?1C+`;rQG`}QBYE!=F zWJ@-GyOu$fXLr#}M^7TNNf2pQDel#-#gD80ga?OVs2X{^7HYby%{yL4En=!KfW-nF z$X3aHhL_jt;Kn&5zY##c60NqGZ#-&FZPjZCi28(!m~jkBL=qYTNGs4$xIq#Jo#4dL zpWJ=KBZD+IFXer2NB7B%nJ{k{XJ(AR_6WgPTnl-aq>(|&R?5Nu^@HHQ_IqMAKm-!+ z15BSHE6iw`J;+uD&GpNFka*nmvXbK}(4@opmnQKM-3djGNe02IFD?}|HxzpTT=hT& zdm{a?ba}_AYw;=>>gtmR=4R27o%h@uB|Qa~Mzbszk_XPf0ul=KKz^mz%_ct~-yEOi zNMGOb;JVL!-FJLHp<{j^172SG`iMMkzsc}px6_V<l?ed!jSx@0qoo!HPARQBfVe;+ zrD5hV&L3o~{cniSSL9L6BALGz9<mY#69N8_H<JG&hh7K(4vi3?;7?Cqg`L?oyA|;e z+b*+qsd{?B$qgjvT|RVQR09sJFjVYYzY6`VrXEXK?$9A3i~*E2=m8oEBF@%wZCyce z%ANrrI*AC*k`Y(#w7xsP?(?N;rgDXhKxY6536EQi@wDliyE9OOj=IOiGD=m>BFF?V z7OckfWm1>3TrmRv;9Ie?6xaBYqi3GJV8`WCk2mvvE6KxQG72<3)1xu6wt&gbNnYd= za_c@IE{15tsxOm5k42UV;EO-Y7aKEoDm@l0Ccp<lj_$9Ss%=DAH6}okU^VSmI89;o zFfdH8`pLk(2^Rs+PUKPaIdbs(uixge1#4iU%w1hS0m;XTR!@irOc0?TKDF6nvgHl! zSPhyVGUru?fh2^g-KT8K(h_u7J}?0!g{m?5f9~-*EOAT#79oz1iOkM^SzKT};KCjg zpD-O5){U(LK<x+^J&SiO52$Dz(@2|h37AwVh=>lSABMJMrS0-hBM>=6`hV_r8JzIn zGsdsrl)u}1T?e?ZBS;EnntXBfJMZ=8*O>5^!|D|16eb!e2TC6v5jH9)rw~BVRDrt? z*6#MU-gpKR!9?R=PuMe?#55#|8x8r?Jqo0hp#Z#QqOr1*u4E6g%^@*4aKt=Y{c@L5 zgaTl}q_g_!OhCzh(M0-7>xXUV8j}@*$pj#Xe*{1ZjC7d&T-<^kGwPfa*9el~p7R&A z(i`lEFDjG|C;(baG^;k0MtD8vbFO*Eim!ls6j3-B<8;-a<!ObFmK=qE2;d74;ueRz z(EE|;QtxCnOJt8XXgb;D&U91tC~#Vk139wxSHeCo_m#2!US;?zrUCp@#Z09-K+68? zs&2pEpNYwFC4&f_jdvog`xKxtARwCvzB2o1JNy!H6Ftsum$F~_H|XDse}^SO{u7_? z+WN7JEw7ELLr(<(zwmWs!{l0ickOVsTupzU*s~SAt1b2dr=z<(ZHC*KVel;jgw^9z z)SN0F#vt^b&jq=iQjAdmQkZ6-4)K?-(sk1$n&c^W%c-lz<lEm|Z7p7<FmEaLO-WQ8 zT+39VLhabmrWDSl4gGV)rXNP+kY9LZMF?=F3PcsOhIbc~StAOF0IC$uZuMKt4%nAW zfF{9Qk0H_#yT%@m)vN<T_mTb=#JEHvCCa;f&a#EBD5adNf5ZEozAAtZHMst}p5F|g zMy}ljBMXg5)oR8g7(5^S*(d9|sW}_TSww0?VQe@7Ulk#V6&A{BY-AZHKWVu76&2#b zm3mn|x$)eH-o4`=TH*OG!Alz6rx4i;jgonC2lhsg@UO9bL4r6N_tRl=3JfC?orzUF zapkl9S(75p{-AL54SDoTl{75*V-)9>cQ|gB9MxV)CA;^(K=PvJ_B8_gPc`SrG4+gd zYA=Ulu1qq$nX2<cWgPd1=$1C0?SAP?(=j8NpXq{2^3_G7`oG<y2dF`d^RTImz=s0$ zNwvMU6SwR208$uOfDmqIZ*3hd0vIMd)LQ-bJHPi0bhq$F%HD2QCf9_j&p&j2ZvV&V z>P(=SKz&yOs|nZQ_G*4OK42?$zw`MR*+}%Q<%84mC5V0T#<k_OM8y{RmR$Wpq^9A* zOy|Hdp~~>d!lIkY&=F1OfFd9%98QzrdvZNAK_vSX05`F>PKj=F`*~8Ml8Iy)IlA6W z7G@jg>z?A~C=Z9%n%2EfS3b-r-t9>^$;F+B<kp14S?5Ee?!J1f<XHpMz6I<vC9k;5 zzh(3dA>nHtj|g!JYE2+><)m3sq+5+|EUK{;C@_=={Y`l}8XoPzNwcX4*43);lzPoS zoJN5WV4iFC0RPhWT>|m7=#cV!v3!cmG$Vb~q7%jIbIw{j>|@rMxX~K&fDMpK5f1RO z{ZMJX!m5gvu<LL$Q9}-!kz!lMBQjpT@75~`%gG>PME07IMztiyV9Q@|S#VCjB$Y>= z&?^oXQD8Kf^;*2Rzogsg?EcjDJLi|Vdn(*imrN77qX_sOuB3CnZ242Lq3DkW86(5J z&(DV|C@?0>b6D>Y)i;#c6a=!&dR?AJy0IP4Wpg+W!3;xu=q*Kl`^sti6&GgfI5Sd~ z7PoSi78>gfMchC*JZ?dyknQQ3BDyymuJ$4Ho29u=K$eLQHtBWjh~>)8W0iq$bRtDK zjfZ{H49hm;m_>jYXeeBW+<ZHy>j_ENcH<mhRfOEH%#JtSpf2kdXY}n5rvDvdDSMs8 z=Qi#a7ehh7$V{i}{%Cpshu;f!s?e?Rm)HDx7g!iG&{~*VbnCi++v?DUbt-VU059#& z?2@L+jASz>m2FKND2Uy)RwyK7@A;{S9t($G+zT*vBVw=nrHGgaR}_@S&!-z>M40C; zJixSp!=V%y66QHyx6u$+m&)cB$F!+gyL9PV3LW9_jrYB*on938_&U8ZfQYb{q@+#b z5pDr|B>mVgOuz)8`lA_m0K&QG=bTpbfqZ4l75huCaF1?}^D$MijLgR)xv+g%QxCas z{b4P5R$X2^^gQuS13`m-*xKl7piS#$S0vVe8CWh{U$evNz{+5|FX!lW$}(nxc4M9+ z^@-1_Uff;>$yR=;|4d^auxjWKz*+n|Tw$I9RsZ=$rnCD|2aSDTUVQ(#&S(`hRD_V& z(%$+ImHT2fntA+K5iI1&<!KhzK|%0_d2Zb2j_1O5Z^wIsQ6`c%`}H&@hl(q!;Yw^4 zbzdH{gfj!lMe6eomEH!ombdRMOCJ|J9Uh~=<S^4+`t6k77rU6)Vrw;cH>2UB*-L?m zV%CfH71VZ-V=ig)SHv%y#`xm*_;4FFx6!gVFasxr>p6dCCVXQtVg^<UbFc0ETK9ZX z{SyxytfIhJ;_dFeD@e_vHr?OI2m2>Xcx`Uqvy94(MNAONnyd9rZJI05N}T`bjWL1$ zUe-KbI{B64dE2!^#@Ct{mH#5fLZh?zHuY=pUQnos7iaY^MR088Wl*S;C#Tz%BE-%` z=F2RL95c{gxE_!HeUn}O0IS3dj25m>`UO86uNfc^6RwA?!$nWNtTfT!T=S@|`#)Uz zMD`s0)DpQ3D6Dh#6eIj0Q4yx#M}bO}Ski6mVS?K>hvVERqA8pBO6e(^#RB7;C<uNq z(Yd3}oWnA1cH%#T%FEbVJpo0%v=42Let+vLiG7vTF5;Pm8*ie?b>*b}tKzvf9iA4r zTeCs%N2uOvIg|P;cAE(}CB!YdX#d<l%c4iVz3V|!ZtJ|};><`aBXuGwk7~9Nv(*<v zqSTnEX2bPoX7m1AJ&)mWfvTCnt*rkJ*b=7q8l|&;StY(C<!Blw_LvuCFZn~<xh^c) z-w}>}LxGxUvfY+sUhEqG{-9zW7e;~7Y>qU9haI_buB<A8*<3)npjdJAf+A!fo=trE zLrUg_*@8yI+dCtdf1VU=E{PSVV6T{f=R)=F%hOWoYZj^HxNNfM&--3;H~y-*W}m%X zq#`^@*09vfKz8B!qg5r@j+c}jCk*x?nV;ko!F+o{?r~@e0s`ha8n@l{wC+opC23~l z@k`Q;rg4=ZdJhs+r|fNCIv}EPoY>a$QC6E1K4p&ca9R=U`sva>Zo-i>_q!t46m?U5 zwo5(F-}>+OXwB84Pw-fqRPd9iS!d4bSw+bE_^t0*UGVc>Z&Xwsic?`;5nPV~nUhdR z;mPRW;E|T3@YhmYan`YbFHEy;&cmfvNHD!NlU0l<Awxrynr=aF<65)#xKB%pc(+ai zX|7`uRoS$!T|D%@5K!9Grl3FyUL+PF*nL<}y5f*TmEDMmpsdm5WKouZf0B4($Bzoz zwx=DR$p17s0nt>AMZaZ2y?@JOC2dORRbR>}&Du(R^i~X5_aGxUre%@Mipi8vuzsLl z@nwLd#ZNlq)(&SkOFb#nK8Y%{zmZl1b7Cv5!S3R%A9mNC7CH_AgHWi^Xb4kKm1b2L zSo9>?AQt=*RxSuMG_kQx`$Y1BZqklYKD})%4oV{k<S@1Yg-C(puCyln2J5dqE-!bl zMvrD^zqXxc8GW$}7Ip!8u{5&$Vk8(Bs3rJ3-BR)}<?Bn0-QwDpkm0{E=rhJyV@oFz zErpqrTB;AhOk**>snU&d9hKo_>2(qd9|5*VWn6EJnx^2<M*y#$vO-~uvr?IN;A}zS zlRj^ADJup8LcX$rh<v0I^Ld`Nr~#o(S(H*SUGOg~10%shen?V&Cid2fQlF5eRE-qW zAbktg7M<TX2$W^>mq^*6&S~}tf$7mA3L$hVgMn@*-l4R-&y^K2W7G;CR&F~zTDL{Y zIJ9Rhm=B!ioIlxG?l@=<K40C~&pCV(pK~~MG*s6X95#O!5vFTGn_CN^<JUMg39OZm z)xNqBJgfjES|(9lDwFLr4SUx!jmZH1G0v`7uF2WW_r0Pe4p#<{$2#X$ljxZ-S)CdY z{;C>?_~#fzj+r&5t!{&GzGe<4#~hi{uCzhG9Ya>+?w)q;CP%O3dj^)<GTch;V1F_a zj0r%F+x3m@@<tXZak5pUz7|RGKl>VwDy6zc!rH=cD^;X8%OskMSUiW$KQ~AjzVpsA z<=LmN&<O!xzL5==e+}wq<yYvi01#_r6Y7Ur$+N}){f%r2d{Df($TNatLmMvF7Q%1Z z-a!5Up@<AqT4)0V@<QYOHtWlP1#}FV2`x=6UPB}nwQf#-^<I17C_&ehHn$!EepY^2 z6Am+>Mbttdys^`TdIXH?br77LGCYuJ{<Vuj-=j~Y_NGZR&+(UL2vKlQR^<ECu=&(X zqlS%uQ-BU)v+COlJc0WukQ6;|DiD?#Mhb!S4Q-yj`t+E?@ooBDD_%oF&5D8kUgUf; zE4@xLKF9Zis2P-=AIPh3W35=TxPqUkv5NtWG9;~NuB{TBq(D|4D02r*E~=z8_?t~t zn-S#m(J3;_u6050i_=m=m-v9~x;8yvlq?(KuMXj9-hc|bBR?CK4)9tQS4P5}KcE7c z3zWtAlOXcdNHu%$;Bh9M=zQW*rMm(7Xp^V3)e#V|Q<TFx-%a45!*DS~87s*^;Lev% z7un7GA_uC$2Ta#dvLVBNT=njKR|F#wFyJ&G@$0P|je{EU0V{Nrdda_g#>o7GiSPj} zbZpj%#2^2IvG4(*I^2ZBqSnz)EKIy;kTP77#&ewcU6*&Q$Ziv2CJ!J$#}NYIhw#ak zb;0Z+ffZ`#>uBcz_QrSvKAOI0Wh^xV0Xtv*F~*+lTdPXq&pU?FD?nu>;lz3wBj;c! zm=6fov9Sh;?~hIXCJG#@jsYV0@_`Y*vNMiev>F*=D_fgN1J|x1`WOI8w2TT$$5c<j z>Fi9zl7hjJkIiux`J{)+NmQ2KQX^x3dPf%g!W`f9@l)Fr4ydSj{P7X*Z<}D^qSTE6 z<TK22JWCd4AgN5WJ=yyHuxV1FySI=uN<Aqa%e^!30H%7lM^OEYmbP4fjCTJ6*g6e@ z<5z}P=$&}FP-?^g(ivtE>Zx+g74ND1vorhyno3&yX7=!WSBFZO;IU!9`#U61xrac1 zJ*A=t%Fip`z_=a)RrGAExoc4MqpHWRg;ls(>2g!v`tJb}q%>&V(jokI>Z7m|`DL)+ z7|t}txq`>eb?dlYbk%q7(Fo4BnDkJSmT^pfh}tErSFMON@fj`IM{YJw*a#mmQ&%bf zu6V5gCP|5wBN{@N991g-V_ZtZ$>x*#Dka6M)@#)jNGn_Hal~)Z9xBn&Y8RSj(hT;$ zILK{1`N-!u94uh3WWS|vHarF1biLDY^_HqK8j8iYwXPBoebVH@{#@Y0gW}7piRb@D zCvqjW*l~yp9m2!BD024X^Ffw@bMhg6g$M}0joMQAKLq^l>(18;?LDFt!+BAI_tyM; z#)L;a#x@R0tt52`-SVTzA2@zfWj?R=2TkzR(#FI0*)rFUZ+hv0Xl`YFHNAo${CePW zNJ*}b{FYrK!cC8Gr7((I%kkTkm5+Z0Q_dAOXfq(@Cj_k@<E&N`A0Q1jJHF{TVaXL! z)|aMV?rfmA4G5?*If9zMg?)QST>3&YT)M`r!#db|9}kBpKRKv<=L;iN>H|c@d_?ml ze;F>ah^x_oA@Y!5rWm=)rV->t{BLWLKsR(VO4|d`_qxe^j|EhO1U&15=cd+^^kroQ zx@g25y@0KhAR$46BjJIJTN{dD=21AJHKsrz=9y6Oet17(9bVUm)GUj^=rd9zm0etk z!fdtra35k&!w<JQG-<~T|JZE37rpP&XC3FR4_hfk^1m(nYLmoLP=Zv@?o&EtSnmz+ zK8Tgsfw}P$ujo62w8S6hL-qNIOZ7FwpCy@kKRG<m<fri@SQK6!=Gx7FDzoIpXkDgH zss9nHmS!5*{>Q6YQ_AL?QP2Y&8x!5k7i1Utq5kr<$UJq07a%4kI+xGraq)f-LYy#4 z-#JuG-L~xLcYg@khmY8SjQrUfUsz+-RvA`|5oE_->`|O4yPN>C<0l@~Z#Nj#kCS=< zb1O!2j;3nFKabOW0n063Bi4EG`DldCDYuNbAMud|r&mKI*sy)?iiN%q$)VN<4@otC zdy~1zCKG7&SC8_vXhy|y&dc;o+(#vtPBii%KkXD>g%N-~M*T3aExy~x*ORKZn-GzU zB_uBMOGG8#vXT)R=KyFJ<^fOM3s=SBM<!wm9cTQ=q-*gr)rQ@=S%=asZ-$t8&dc3A zF5?Ld8j1vqm0t3pIiJ83LXcqYD8#oBL@Li-20#VShX%xi(<o@j@b>I)4l@Dnl*`DI z+=wh7(5p{ixKJcSwsaMNP9x`d0;8o<q9ERU^V3q6o+$g%Jh`oeq@iRkSsy%e+%%+8 zTW!iD-c2Y-t>>6zCeN5u20s>4utFn|U{8B|rvHasv(|Du<c&zISXTj(v<?hjk3{0A z`;@MA>i%Mmp2Ak}C4)*Y?_fSE!gRusoMnj<)RuKbgj3<jT#7z;E6uw^@#c0P@rQYw zSSbdOCm*k9Waf98;d?O{DTaCMQ);89&~iRvLtSTUMmY|uuIqf33*{P`&L}4aCOCqo zPoG#9#HtsM3<|LJBlOZ;AZ?8j;KFJ!fZp*nx<_Xo(6cBpfTH-AfV5<gE~Msz7>pJJ z#YA+qn?mc9oFJ6UybDplf>WuXa;|qb@2bdWF;;fxs>tv6CVCo=M6>oOl_tHfWQZ(Y z(1~<cfvv<L!K3ydE5hCThp|X-r@h#u9`{1)$_7&NNem{0VV+Oz{W~VXV1*|!;e2YE z1<*r2;uT$I5F2Wzl*02Za^+qhd^D*%eW52QWt@&uI)=cD;l&fxct<kg`+WfE7*uXS zWH}E@A_IuyVIx5@+c+!Hi&SJTU!Nia4?ehE1jIAEm{5C87CnS{$jjfSpda&5sYoT9 zP%H(B;O&FkP7?nmG?d_A?}Hytq)+o<9T-4Ue2uX9iz|!w#@UEeT}r+JY>cR*z8*B0 zkC<CmQ<+YVQoZXmkLA}>Sdx5w-zHf<Ss$7{1|^xd#YIX?*aslR4<j5>245qqrt%3x zLy!QXK7AdX0@IMY3NR=d2?p7N<OnG4DFh=qe<k3H6a*s`ZhIAf<ro~z;QR?+1S9d9 zlS(_<b!(W9k6}8&NXXewOcV+4O|Qb==;*>6)F)Nw>;vLjZD+2lN9-cd;s?Z<+M2zm zqymvc{Dfj}kchv%@Zz!lG!R!1QsKH+F^U~;iBZ4-J;mx9ZX-^X4SLYPgGNjsR#Ehq zE0Q)O?=cL2F?dl%llxs8*(?Kcu%v|(1usHS021)0R|zr3#LS5up$ENx&{*S_NzK9X zkshS?fEVITSY$KqV;YJG)S|rjfQ=e+FjR+v9uO02Ia{wd=W-$ZK#1qgplN4Est__U z7>z9wY!xALA8Z_gc&kZyF9SP}<X|ja-A+Kk%Ug?Ji}2#c9w!4fc{uef8tVzwp*1`N zNDU-c<0Cd<x;R^Pz(}&rgkXN_YBf+D`jLk~PeYNX;n7DhnQaX>4yo=em`>#tMgwLH z(G^AVHsi}E@eo8kLxz?@U-d!(5_Od7P;VZBooC2`N@r6II!Y^bKzH&Chak1F#@tK> zT=FS>|8JqEba5`~fW_pQaiI}a+F?g^^!H>P6Cn=|(J#KO70PtOuIlLJ<e3X0@DGMK zPj$f0<QX?%@GmOkU+Avn85TjXX)HIkE*W6QQ{!%UPr2}tNIfJ^fK0)Nj^C?Dm$pkG zjS$UG##nj`RU&+0NS9l|tu#2;$n?LD$xOJ*QjrWW=BdFLzzaBp%jqcbw?3RagA)WB z(P-MMqsNm;X-)CaYZK7cGo*E;GlN|cV&xeSm)1*c=02IUuu*J4SZ73ssN&ZD^Q?eB zWLAKz+K3Juu(?`BYTL+-b5?gAPLFJ0=+b;gh!u{enF`0h<4WY#bL&5gtxuF(@J>RM zY5;ZK71EYc7^y((cnEAYkk*ZlmYJc2JOpYQ5JCsqL|RH`b-+wADZxvZuThtF@6&0A z{nXJX$up87;CHl?uIhlL<VQeP2QwAuCJ(`&hGJp6v#ttsmWQAg-=uBM99{?%2%&)l zH99M(#Cc!8?jIy=eis%K;GnMpZRH{G(m+0K`cIYRJOqXskX}c8mBT1?^n5a@JHATN z4$3kIsjhGD2unqx<NwyWOLg6QM<^+*&UNoy|0W^Gk`B<pt+X=4v`P5Xf)3rz4IdaH zRwSL4L^N^3Uk?#)D6JVb5z-^*IB?whK+U?^kRoaw;b^MO$-o@kUOM57P&7@O^6{_x zAagoEE4QKobH)9Opf##{o!0*}fY<MO`-5kjTM?NWz(;sHWooSNgw%+TAuQ=2e_qAz zgy@Qp<yz2zcV2;#2sPMNUebX(icGwp^vrCNvT-5k6!4W2Y8K3em<W?qo6&)XUV-F* z6l}Pcbez7iQ?#-w&D>}=^)MP?pXjf|Z&zUeUIKt75`=R$(}a%l5PZ;>BpoeshjlHy zBWxBSOS-E4WbI4ouMRj(o>9P)+o=A>N#DPqdspB)j8;bzr0Cp*#`BX!v~UAF)t#a5 zs7^@*T@_r_!+r@Rmovn9sROo?Njc4{odp+F+oQe7ZE@T<w7N4THeQ3Gzm*&9t<Kuj z`bby^dz%cn<>5TGY;4x*8peAN-u{=9fr9^K|LFMj$%<A%Dw~ot^5QOTg;4d<M_83J zB9H|g0N)6>A^dR5B*%fbs1h^2$W|*i&RadKS=fhSka(IOOOb-tGN^I4f(!GpoFxNx zcpM1NCYy5+yqZ8wY}i29?6fJ-Qv@9v#|<adJV^r8nbRTKxZ#aMyx)6YHH47C$Y_vs z{G7$Q;$7qK2y;cEss7et<S{&V_(Y;<HkCaZLMHGnV@bz(O2PCtU)2SX6haFl<3Q4Z zA+{%(A>P#0BI;Z-@A}1wPORuwdbpM3hnbikV#!hf^t?4Nt4wN6>`5}<C%$i6z?CSp zI&D;Kp)x}HP#7-(Qd5zq{}I0s7MKDc;;qp|z{f?Zmk9pw&~|r7;)`7K5M1E9PH;;R z57;;dVXFxo#`gBd%{Hea?q~w<VGC*RXr7pcgwvv7WV9@GMQ7?@dgPo!l*2qJES@9| zPTW~fa6Q?Gv4jh8-*HNXs|?f=a84CNY%&>=;r-q91Qb(^R#x~*fzJ8>6|%H1c8kvA zC-U(mZz|t#Hi{5lZ8&WN^wi6Q>}uXgckA}6I%9ipnL+z0-VcUa>8nSzW5sV?+~3ZH zkvUjjYk&_$P>_E`+3^NZe5NhqM-I{&b)o-ZY{qctD#aGzWeaOKyMlODn4h!W4H^m1 zUd<r$ToklCUs|>Lhw2DL?IFPT3cvD<bnTx0-T&$Rt6|XZ$Hm&pv;=$2O>cb$eB5>p zK1VsP?UMNAFawUWn}c6yo;+dev7Q4YILxoW2n&e0w)FDiF)$RMzdjrd)1Z|dnU4I^ zKoS15^0BcdMtq71IfAundOam#i3vTsHt_+k+s~m39Om5~IYk&Tuz%coL_YOuPT`#c z{kG_tbA@6SZO(s0VotXDs=jQ=9c0+O&YIz*auQCopHrfv8p(Mn_I@yDjY2iJdKws4 z{5))8{5s>+)O!m<`Qp{)d5Mq!vEf0IFRuxm_}v`l;KK2BTz(wp=JBJ<dS)Wffnq9- z_l;CGQ|+u)G|#~bk5G`Ph?)9xl!5Q<b;-Lgx(6n+w<GVi7O#hxB(jm%=U@aJ1s=A| z%9+rO?TkH|+K!dTO7S_6E~&cpxIR8r{&}%D#%__-9yFF6X2q%nwwFY4vfjZ{h1(Ty zc$biLvWtkRZi6MH_fh&T-XUqj)KG%{7C%>79uKUk2#qxmnP(RKfgW&}r;!5x5;XQC z@Sft$cd@5(UK{HQ>;Ncw>u4?<Lp_cE<RjCrO39xj$nJBK6}ZizyB+3rBzNz{ebp`b zrSd-#y4PQBKi{=`d>!=XrhD`F)6=S{mH~FJlAZ$-;~Y%I6mPOOi~JVd>f&94mL)`~ z7C2WL1<{XO9oduw2jFL16H!u3o(jL~QKk1KhFT~*<CYyjK_x<A%d4#6eGG{*D6og! z8$O6uc+Am^_J|K&Em%1Jn=Hqt<*4<_x3IVpDrh#Gw*RT;bo>5XLG50z-z{u7XuvLL zk0vfp9)<o}AFY!Uu0<Zca+Y8w$Y=dm8~p1rivK2Z-&^d--7$Iq(YMAtv`xD^^`I{h z(4GrVVpgjDa6h#s21HbfDgcPHr^5b}P|f5tQeD--wHoHa3MR`yotI+xNjs<x7^i>& zvqZ^#63;pbsLV2s!cc!}Ji;gyFZb<THJ!AG|9D;T0|0QOCs6Pr6RYA!|GW+K+e6+% zMmolkIf8ggQ9Xnx#D>*(!UgU3QCE3B@gKLDPgcL|vl?HaPp2A_f~IFWeyKm|b4C1q z`|t@Wm#_hqnoD&`Q{jv|cc8zNuV>TyU38?K3p*;I>dk44zvwY!sARAP=zswVC{6&) z555Wq++PQZnxG4kcP!thi1oGSBX(#doA)%^a^B0d_uA*cbKlIt>&HOS?Y)9I@an)h zrF8AjBd_=KY1aMc(7X6vBR5I{e9mTpoYV%ZJw`#cBe%3uBHytbP7&j@-;-YCU2+9) zMbavu6aWoPF#tzvLLD#--Y&p_&kjv)TakW>s1>pXlx*I8$&(&v9vl}o2gmB1n3GS1 z&M8nk(r-VB-8`DUa}AX$rP{zZz&$0m!jFug2+{@u$hRearP6p#MHHH}A)1C$ad%02 zN2c>G<yF>6m5KCFap(lky({$(XI7~?U>!vi<XLHlkH(u{qi?nh-u1o4!qQ5q^z$3z zpK-744-%hTrTA1O%$`tc!W=<;_||2KmRxPGipx_$p;;SHI$RHWTAWNY`5Zxcr6?{2 zarP)^aw(NsKAcv)ekMGqndA-D=o_(x?)w1&h_9o?yyRw&SpnQFehywa(dwDr=yr;_ zNTm)<nFDA!(s!v-R)M89dnyXy)yZ>8hIBpPpZ0NN&rlqE4Jbk$iJ{q5mRPt>+MJ^P zf1;5vObOm|Ql}kE-oWT3*Lrdb;b{C}I(qRf6+@S7ygUt<)Nj1W$x-w!(LHjS%8nq$ zkIxGsw6BKRZM6SD**;SF7XC3jQbWb5I)d0fKJVqCl?m^yVT)jIAPD+a+@0_%EB~Xi z^naaaiT~lpcy)CY2Tud4kh^JrHK;f;NgbuY+khJ2&JJ=jV5U!;Q&4c6CshOcjvIFY z{Ju4ECcr&%Be#`Nxy%iyQ%EG}^X$s;wA9ih?b4#^E3@0`MuLS>AwmgJuE85p>bkdc zIB7?E6V;Jvb|gX<j8;ZLss}#4{<zIWIV|G{Iw(c0-~WxHB_`%=Ai#cWBuJSqLG;#> zGy(1@v;_Kuhb1Q*J*EB=R{or<GRIgQ)A6lw;@v{Jc)F_5e)2K<T|;A>a06<lXp4x_ zGkp$c;z%#0;rAHgmY$vo&l#)*GsKD@(&m&Z^ghFI9~w%TiXSjqj@*8qHoR27d|Z{j zr$^Cd^XPQj`T#Gkab{~Y)%9x~;gvxWy8k6()j6)jGWbv!uRdq{ZDexQNThAY_LAg_ zM9;tfVm?O>x9w>0`mF?Cr~b~dIMx=qo)_hTG~pAWM=Y_^lzjOT9d}=ybDO%`NwrLL zB};U5gV!=eCCe}p)>>X3PTf3WJ>eNjF@Zv2<vMn1x=ZW2e_Pb{t%zF}`t847*jru0 z1+-6s<t=IjEM}B#$fg~?EmH~q-BxY^9ZyBx{&Q{o{x$jg*KS9MdEz(5;XMa^P5;l- zmu3(=LgQcB8~v2|ISY^c&u)r==U%@JM_Z>d4bBVS+UsiweJnLC<)cmSJv0o2V8NdY zKRf1qhF2uNm)N_EHJ#LL7}o`(9BvRFYgDeyrFW=>XBvgc%1uejX)w{KAIVB(;YxFA z&-UOIY<@-3OLgtk=dC@f%|EiV+ANJO(;}NZ$N~zkM`%4=dCwiy9lt9&M*rf;Z2Mk3 za<Rs=n;36D^xQ(vqCv+3k{`XLk;iy=@!>7TL*t#2sgP2p+AF;eiqpg)Ka>5-!~N%T zHQ%#rXoOTSg=pFcZpwvMPt}Whoz(2h&VJJ{EoU}$>Je0zK_U~~BM$nK`**_o=~^^h zEEwLu6SffiSY=UK72jHq8LfPmYABLA-T&Of#XK**U}2Ew$uz|iUb^%h<+FLusuGj) zK>MX_YWdC1?1U@JljX|V-PN3+6R72smuR-Fb}an=Mb{V9{@un4{QJwZu%Eq+yVUyM z!h`9-)cMf3o8?l4E7QnU#@*!&V0z~bxQb_^;LKZWsP)Cz)rgnusB=!+!IjM4zw547 z>lS~!ll_%NZq~1V)W7%H-hEWwKV9<V@2pqqV=R5A;Qd!){|^1e$11bWrnEyX{uW-W zxj|WNLiZ293g)C0k7?Qq2Zc#7eki)Mygd9@@<8RsNzxw}`)Q9|F!q&Y<n|u_^OGFs z3g17Gf;Y)NUuG*<2UJzHhi+pM*fI{VoCYk$Z>t1uN`9W~?|v3&_5AlHtCRhD`|{Cm zTZh{K?Vp%4bphXeYi*)su*>s*i;uSo7$Us)Q=);F)Hw-OcsS~XZKjMv=9)TuAflSt zKcHTpGmjMT>Kp&#E71huA=;wA+m_khm*??yYwTxtjxUHgg%ZBp{@n6k%ZO|5s+aW3 zQWbGEzP{eiX`WJNkSs5KSZ_HjMoMN=^j388m)xK1|1Y`uD#9_~|Dez=XZaCF%iW~@ zN${2DfPG5UFMW1ab8eOHzfK|2#yZ?y8|=RYviP@IbP3y%{C8dc<19!v;HZ#AMwUG> z-_V0Uj4bHG`E20KW)K4j5uT19qy0HHQ1<k57hka0nMJnzW4|}AlYRaK{yN!Hb((hU z;!jcRmG4my7;~I$8CkTbkEuvc6n*fn6HnsqdEc&)J|E7j!)Bfqyk!zo^)}-cEUM8X zp3XF}@YOUhO6u0frZ#fg<UiDhmf5y;MhdZ?C}GuVJ`6vt$gP=;*1}@$%_-y-ymVqD zB8^vY`|NjFd$Rs@tfZ=ZQ+-!M115(Xk~Q9-J?OEx=d35|`{sBzfZ8uNgKdR~Q;_5# zzpcD)u<14{bvAovP|&f*eiuFi%#3|2xC&dcDZgopZE9Jh5Mi?VsAk58SN?Zu{j>Ug z$HH`94R;D~9q4{7=q?6t&2fm9ll+e=@0;r#o4(M*ZGxqU@aM*BOwPOiZid7ccNf2w zO9V@q_|o97rmeb~L}MPK?0w!Kdm$A}Tv8S6Uw2H2EGF??XKXZYYTb@$GPCM2P?7s- zBv&&fdnnAmmq(7-IgwI*aQkL5t2nEC*X3Y^S3+!i!*hN2-zpts^Jsnl^qAhpZ^QBw z`$gLKG2`nOsDO|9*wN(gEl!KOPrb7A{uLk9zgTGQIR%I?T76RMJ0()LR_FJ9!PuxD z4K6#QtO)6n6$)4iI5zq>65I8zbGtKOto`;O@1v!uFH2|5%lGfpR$c0Cji15}EQedT zmVCm^jYPj^udNEPja*po&(ZgJ10FuC-uucI5Cb|%YV&0T6-kbWmr$5JPRs^=S&FD} z9iS$m#&4fy54V^2R-1iZ@k@v&af#y9Y$U1v9PhN;T!_3Qhxql8!GDhQ^WmL1wbc)| zkZT#XKx<+-j$hG){*O0)QV7`%hWg$gwH7qvGYYzl$|^udp8+bGj&{HYPg$N*+xUaA z7KHx(hrUZrg99G0JzEp$oxo=Sv%da1TA{<&s%X7X*ttT>1I7KDE2G_Vxgoq_!E0mw zvpY}sG49$*3u0#8;baI4xs{#hdjF8w;XUc$cO>oY@xsg3<H}{^QN9q)Y!z~m2p4hY zQsM)_tUJed?c}Zbc%@0c`vWS|tb~zJH8#m(r8wCUxf5VH^HifKX+zvJ=0JIWZ+1I4 z2m8(B;A@$Dbtt2rm%`+H)TvWoNAO7uQ@LSwm40=1VE|x}Uh3S-$lRKdcoFn7JF2D1 zRa{KpYEVvL9~F1i|CG`82dFh$v+_YCKX!mo-9q_OnUA^3Lzb`0i<$FM+EUPEw!=U0 z)|*x@_ZHniAsLq>QxI>C+Sd}9pRz7V{veK=!7r|X3y>!yzitdO&RP7ZdjmudJCu#B zEJ}WS{`zB{>wL6`rRgb05fQ)q{TLB^ZX~JxJ~?~0P3SJ9cn749UmN4|+I?2yk*XQ9 zeTxMr5ix%!O=^w<ZSu>Nqj|UM(cfl!v5n1CQS~f3SMW*sfW8BT<8HM#96R)wzr9Xs zB@U*;<TLl_?RcJ;PQoWtuu0TWfe_9dAM>vlTy2a=#6aR4wXP}&EEW<^d#=#D%)i2R z@|(cbwP4=$(1uZLn?T)_Ym#2uuuf!i3HA8K=I#BH<vXiU&Uo_CR-AZnQ=QkSbZ}_E zbj;-`x`a7@>OH3c+tmoCW~gqsovAcxq@R66xnt{k@8~S9g(M;454!#V-S0D9olv1} zGeavwx!j%T!oU8+hO5qJz?3!gKUdCojR|+p(4|eZJ6ZSn^hjk=624n4t$$T*dJ5I7 zC&`sdveWh?@Hy=cum92M;RUqYRcsZeHQ(I`^XU@5|CQ^1Ij`!}2zQQ?+@uy_jDF&z zm$p6gk(DSU+iz@{z4N#1?a@fvXhMl=*+xy%fmU-6-l~t}k~FnXb`8tIHh2hFtf&dE zJ^}Y&oot6^O8#=6Fel%o6{dvmd}i8{F{^I62hC&~I8}nmEt82k*RXFnbqJ`%VC1xw z$Lh=<mbg+F4gUx<O5_9SEcK_jcGPjj6Y;gjlWBj@&18PYAoECU<>&hD?tbZ5WpJ0Q zFRtr_13v%69)1yfX}o(d)U?Pj@lQbre*8K3U&=OPWdTMpllS{{`?IQVrd5OD@wmH0 zD&rtbHfipUZU<TmY0+SVokAe}E`hQ3#&<C@FS#-tWq`sAJ=q^Ton@Yb#hAL?A6(gS zR2@Bgg3e}!j1^R8B;cBOyR7=(reRg7CH*1s@(KLCspVgD0e_fY677{@qE7*Z4~~C1 z+>M+GfBEtB`yJ}JsgH0^S?t5>=eJoc4WaI53gt~*JALiqBG?A0WyUbFb3k*+@$c;x zrt|*m?>`?hUclJce_bd^c7%400?|&$Jic_^5z3PmMYKLs?q7Iu#|g)(#WOVQN?~?+ zr@@&ej@m4+<<oi#ax>}n_oIW9&qs&jf$o7R<~4mzWT}=P1!+^N5(1ID+AiX^#gF1f zNF3##yG$s{a`#C?=S4RO`kJlb!qhSJF_3y~`O#a%(&N)gyUPl;#k)PPnYm6ex!Nhe z!nzQh5_9XeG;P!_+lD8DCYg$DlDk3WJhj2@7{~QLb*?X-ZVB(}74-eZ2C>sp7Ky@| za;hR8d&fLlH<8MXG2xio616VBXSg*Gx4k!cA5KHc>NDLwJjteQ6^d6vy6&Wih~*Iu z-sCxR^t!ZnzfvC}h<W$$_Ip7s?BA=b*YT{5m-2uxZkIU_Jj3^HJSlMsg+CdfJJ@gA zEuE>R2Q^WiegH5&q>pAE2tWN?*vDH!J&)PsHF-eooOQ%4cBG9cc_Fk+S&bH?t4qHt zpZTLpcJR~D#Dc65@ugpS57K<EgQ6_mmDPAWAv*S&nCZ(adX}4Hia?FP4I;J-EN$cG zv>MZn9>fz>UacqaMoGh=AIyRmUwXgGS{c^}nJYp>q6S3$Y%~kfFAONqX*6ABj<tdD zfk|V~;Xa8iO2PN9RqJ-UoZ&1oW{!1~t)_{U_N-YNZ0;Z9-p0kf*nR?&5dMFd`s%PK zgYNC!g(a8n?pOq20Rd^GVd<7yI;5p@>F%W@L>i?*N<d1wBoqXsK|&;?1-|{g?^plq zb!KMwxn|}$J9FmDIrr_Stjw9?WLT6lg|V;r@zY373J3GIh&V+B>#vg0GkGD<FYhLP z`CpWb9EkmWnv(D)JhAj$dQx!HQD^M?>|zsq=WK%fk3-|e4dU*{pK~R78=EOlcv+<q zH#T&S$I#$Lmo|Ks#m#X?yfODvO|1$OFPWR;CU_%u%+ifPHhd$-BEsLW6hN<zK)!aR z=C!FZQR+-9{Q5@fvNd3mM1Ksq?!TZ|HONQrFTI;Fz)dhl(%>>_$_x}w$nB6yVuH_H zq@n#4(tiOUMAYVC-*Z2Hg@~8!kkuB+Q)^YhFmFfrE?#RQq|D9KWEC7q3I!^t^e}ps zjM=GjNQgU(A<dHs-zU9zQ+o$=MVJlG8|j*B$$M+b)7=zbY3|*9r`R=t0$xJJzb5#w zC~D9(@__2qTq%sp1sc_WO=?TI27j$NUZ=9nNl(1f1(fKDkWw@vMrZb#HJ{pKT8XOf ztwZ%jgu^Pi_cqQRU>0gXOSL6{-m5#iPeW=+pHljJq2NKNqLSu9qbC%ZEqYHaw7B)t z62!$nf@V1|N%)Q5yqaJ^ULg<dm4~u2B`lr@yyCtMdG5+BMf>+A75IdPxRjiP#$cMv z?fOeQH@J)YqX7cdKgbOp;kL6;auxY!Jqg;)Y?6Ch(C=Q^WpnCF{PZXP3m6sRgTR<7 za9owdO0#b>O;wWA29ycH%w!eJebL`K@WuatVPf138{E(QSi6{;&&H<2VZ#%4_vueN zK`My`9<@dSj+5@`y&t6J7^C*<mEbz?aLYaNb8{(Ug*dcVyt>w_kQ_?_$}9n8{ZXyS zZ~4v3Q782E(^c|@b{?evx@to(uKZ5PHg#VavahU)m@{Jk{NRbaf;q}OZ+*l)v?f*7 zR#%^0kASHiFU1Lt=K**AAjugW4#$gwkHy&jVE!#<^*#eslhNdvg|mAx$NB^iaY&zx zJSAkBtEXVG+P~LY-LQfQL7lHVW+UR&@Y2*0M)cK=jVSBNY{W7^;u%dF>Hb(xwN8w_ z*9QcTo95Bc3TUYUwN;nm)Fz1};TpO~4P6B{(sy<nynX_QlwZQI1J<4jT0HIKtd9>d zOZ=*ax2TqYW5ntYqPy)ND;y8@)i>ic={#R{u+WJKyS)wJ+F+WBQP0`sb(>_V!`a96 zybM%&eOJDC%3JXq+Kc85n~o3T_donf#A#sd@tjsmFVq^7QxYmG3FX<U?qOQN1#n71 zWu>ZXn~KO|q@cx8P`YC$^8<%ZzK8!C6q7RVt0^UG{?~D)dTRV~B!0OIqRMCH&u#pl zZZ}53g)7C!9ixsXkRV;zAYGA_%>304HXe=d3^ij26XGY&T4^Qv5g-%@6ICKue2_Y^ zS^aCXnw+lS-(JK5&7yV!UhL-ZPzI_{1G{uw(_Qi=@UVmYZt5Rb<TJV%orIAT)}%nU ziNRoQFp}GjP2m}nP-!{-KBed^Nmg?xVMT+r^{-6OK_;v9TW86TOTA$=Tm+XLn}q9n zwM{uDPiB)<o=AuOP#Omq#laC}^3sH7TD0>!Z_?x+&=VVoqpqx@u7U!YcoL~4t<7x) z=wAlwSq?fY{^|!c!;^NtbXb@w5UIL^1D_-kgX`)db#+CuGi>nrYt!pLWn#?bb9@{5 zuWGpvb1EAl(hEMNf0~23VNI@@c*e`@3`KE*<2V&<g`t5`TUa?Gr?cI)iHWB1>gt`T zS?e-7!OM*?pmbG|bU5a6hjnVB8eY5F7?z>4^d-VE1LT~+YMrS~YgxO9QJFo*|0P*= z+HeZSRNJw68@6)XHnhS4UguC`<<BGfxu)foZxLi$ibb;;@+wVF2=NU2M<(k=QP~@- zfD?&;Xgh`(?XjU4(yIf@l&9;e0Ok@@GRepAU&tML70rYMFIJ`4=mLlRzr_WP^}86w zIA>S#?sngfEn1>RweV)N5=KHh9|doIq+5NFhwTiHaDgYd6r-fSGEfjd*zUi-{9^uF zc%$B3+~^ASOBJ}Ux}>c|*RIcaD6L(HA~<Yuv;A;88LM>Ux90iwIj0O%RtCy)Nrv|3 zR`>eqDzuZ8^L>@3`EHNKee%;)=+Y}3nPL#h9WDcml({HW5J)=n#sM^SMZ9J?uZ9FD zRe@BhOT8+Ck~6A);vbr&?8mt_#AD0xxYfpDbXdQ&Nc=%#D5irh(^>md|Ly7;!9J=0 zTUAIp6rVxN-pmL$<y68_R4`IhmOT_E*LYKL<!N!`->6Wt3VZ17Kcy{=6)uhyCXrG& zLBq$Ee-gXiws{+T67T=v`9S3kCSXfz!lKY|f_}D_epX>OO*qQTOIg>ZCk?A7jq@z} z*VC~gS!X!mtSsTIf|vFdF<tVFEbX=Ik0I<Ivb-7%I=Iw|`g6CcZ0e0I1wXdWDbf)? zhU!}SC`yiJ&n(r*5iD)j2-{JPP~!eL7J@hyS9!?qm&E<ttOVSw8VV$*k;GxI6>M75 zuv*j5K<ICXBy$PN!U@Y<y^D7-h_G%Q0k@8<Gs@qmX<s<7R*dbm0XWQ_Q^D4p_`0R; zb-TF25G61Q6$}cM<to{H837Zg+6DWF%e+|3Vah&h!WI_SQi5mSSa&(RIm=)LDi{SS znd=I=q49;dPH@p#S<zXM&aW5}WV5;6XzHdi*Rs;xNVXwbr(Rkoo^NrK^hDXtfS@nj zGP37%dL~A27msuXlsM};^t+QJ8Q?OVvnlm@f1FSV2$7lvNX?4;`idn^f@TJycH$YV z3I$&zq)4BC^I`NQ+qwZYB)25HwuEyI-4ZOax(-lwJcHE~?Wz;L_BXYCoqzECV?fr_ zUJI>FnlK_wm?Tm`ETF?rsp*?eBLyxNw-bQdiAUCnZto*)WR@^8tA(Iu+g`#?Bf?6Z z7NPzUr*%*mk1Si5IJ+geq2)3S9nPCXtCuCLoh6+9UY`x*$t0}A<0Q-DM5pV7K}4(0 z){xPXoYm6Drj+cYLhGpVLrK1*#J;CyXX5Xi*6w^2lG0Qwi!f2Wh{<xgJyR-4brz{Q zs{q%XG5**&l*CSu#O`XtehR6v?)x8xPx|s3<+{!}RuOoN<)fj8nI*&H?ZMIB=VlvB zN@3<FPIM-tlUWP+z4%7r1Kxv|fN|P}oR;Kn_9Ni3SIui#^f7H#_k4qBAWOJ6OPHii z!Es7r-_RtdHki7+3|L;~%3V&-!fPn8&Wxr|8Eq`3Y|}E>`p`M!+Q}$s$?i|d6vGjW z#wE1xj2nvLAc*47;Nbo0LGb0bZXKF2*mzbJ4VcxRu|7KXuOq(JS|C;xBUY8{IsD&i z3dHVbG$tX&H^jPt6Kibs4F)CLW>(f_*0dbv^j}GYcCNEgbv(nwEXs(pkz!*9!RWQ? z-K|Vqm*9$D7lh8f`5)LaF3~F<2Gg8EuGg!DLpWRnI9wVEVmA?X9)8cwLi@?$^m6ga z!|}@F^|@oFr^;NDO|)r^wSNpncnKBKy%k_m!(dWdzSf=`=1K~jMF!3)%xAurLFS;K zOch7NDOnW$nr}v4zb6Sm=YEfK_U5(_47G$0CqE+{QTw4}_+vX8e;4Ys4s~KF%D^qn zX)}~5oL-evTJ_(!jol%gf&YlHXXW%o9||XTzu3HPtUV+o84_^n6>#E-fp&$x%6#&j zy1fk8URK>(PD|NO{={AP(h!rA+liUmiB7KirUAL3Lc6Z=21l9oqt!DFz8K?=+Ed?0 zxawuP#0%EkR(SXwio!m6y@kmrl9Xl$7iS2QWGS3}>*`%z{?xOxTE4n$B=VYJ@CQyD zhpRkq?d!C5HfEv10d`ITc1~9|m@6U}v4q)`!MT~$DxluK$U(5k;X3dX_DS6DO%x5B zmKy#tt`Du-nK{B~IW5Ei@iH>~5Do$ehpP=Y$x#F}H4l5Wh}+dMB?=0s<%a)IvhvDj z^DO1%<aJ`^b)vI!8qi})GMz=5&MK^s`Z#+_jYmKI!=y;7E7GnxENZeBI7DDY-BJc@ zDRV6@C&0w1(M77wD(I8?^rQR?zyFn<keTh3nH6~;5i;`jarTh#Ya#96@%j4=8*z2} z_rfy8vZ&`5{pY)zfe)GA|NQw!m%6)V<tI{;gEXEM8Jxuur^{C9g*wq`jy5(MXbrVm z$Ed!7De@D3ocNoyd`3N82AnR7_pjh|;K}_^7XG13)r{k`CmgCw%dPxI;kmPiJoZ+C z@OpwUu95B9jEVS^$m0>i-ShHa^`DcF5(a(jYy|9Vd<ufj))Lq@DQLb2VUpL|-`j8E zBpmuASqUUrHMU6>8XNF@bAKQ#uo6%9-QN`cij<S5m6d;kLtEnC@P?~7*!*_?@QUk? z1=H(4q_erwW#Q6gu7BSV3`*6+BWY(v=F@E0ruoHqqUyR{1$s`W&-u*Jk|hWeC$uDM z&j(}JJfvYgq_v*Lngum3k@5~%9R4xD)97o|Qr?|=A}asl9ex-S@m!MdOp<WAy@F@s zA~vs?epr3VuW5Izfd_g>synl}{#k=o6YN$6<5q?2t8$C0=6Ms<)0|X2-Y-~lnZh%f zEy+dfo7?~QGFt4L^?%;&=%~kW7gcGtaB+4Ev2#2+K+;5(-HDFXX>~FA;JfikfVHRZ zS<m_H^}^^oqp^sgN=mb<hFy?_s@|y@<`rIirnpt#2?xOmhek9%$s~W#lw@SR&}X;O z{MCsu<&S}_{mJj8D_}RWHfOHF6(6U*j;wuae-jeGlhg9crYV!img}vWueI1OTD_1Y zuQTAzww{hA=3Ji6!Z4DP382wKFf;G3e*tqF#a_wK8ssBM>5!yOJ>p`t&XgB02~~V` zyK`msgw4ec(@>=AJ=$H~^sjC6#fokLglaEvw-s>;lOM&7$@pv#laWfJCM|#p=8=z| z8Jvn;m5$-K0jQr<H<VShN`}Ct&%%SZmq(N*WgI7X&cY40myH$k#R@K9aU*D4EO!hN zPa+3**FZPh&vU~#Y)r&TJ;eQ0aW7ewo27?nZ;;Q>xG!unJz)={g$mZYX+#q&YeV$b zFL4g3PD@RgY$AetF>l!6X~F)zo0v&VYeUzbu1h<mOA#-@cVa2nt<o`f*MO^2SC6;$ zJaLB8h^3NP6B+4-(0{c}p}`Zkr{Nb{WF|5NOOZRoA0(|Q#H}u1OT*YrsaouJ^EA{e z`&d}l*MO7LHoTKlSnn`4GSwa9dPd8bAT|FL(>HP1v+EZsMT(Oi;%`!72QYGVP?q^O z3S-Hx)GJ#U?ZaFVK^YCOg!a^G32AM=U{;^XlxPEE75tstitnp^BW4s5<FWSw&pKDF ziGpk5kh7=p+zg#$H*L)~lm(eL#=!83tz}1Xx;Q*zH0Q?F^2qZPS7&<~yHEC8sn8(j zq<wMe8J}QQbL>Lh8DIWHjBab0k{O{R;<hlvbqdi5!&{uS>T~Y)&X|1(=^4L&wX=S~ z@U_$Mo-G;T+mzJ*R0hl4YMSUs<TT!>_9-1-oxpsDv5!*R2aa8?Ly4Fo{el61t`$x+ z>3@DcSyvO<-M{XgJB^nt6sLTO-LO-gI`@T9n)BdVcK$S8fgyot*FJ`OMB}l)mF5Xk zgExALy@MxaPs7X6Q!I{(aXAnnWg_zlW<IzUDM=}P;$h~o=EMF^NDsb!8a}c`7B86r z2Ybf!q{1Yn5&prfF~i~Sm|thcroNMumJJAIMO6kAN2G3uOZWN&)0sJ7q~qXo&3FZ~ z@^O8;i2ZYP&U|P-S^D+tw*(;u<%cJ|-obQmhgCtA_n&+Aea@?Byoiip4#U_}DO%e{ z+DF|Sn6DY#sv9_n+Ksn@tHn(0ZQ8s3F5aaL&kYiT8H$L%S;?Y@{+G}yKcD<%j;TEF zkhMrEkqhJ7kzG%ZABBWRHs4Z+Y8c**{II(2O>WL@*ut<H<|6f-$?E^eXVI4GtsT{- zc^M}a`GuL0NmjClV32Kl8huF?YMY<zL!&JvO|dXn7sez<lELPtG8Dzggd-)LJ|o}g zx6DGr78We~a4oVu%@}1XsRt-abC<`H>Pky;AnIi}b6t7I7i-J=03bz!mA&(^Nfa12 zBOE=P;#$EFiXpfG(4nD?SW=8M!)eIkf|-eL6hI`_JgcvKWx9X;gb2CW4nbI%s1<sW z<+dG94vZ;YzPENuCt6{BJHl7O+uDvnDHI!wAiNRT)joe^FoAm(PPVQ0T#hf$>iOM! zFw=Q>@H)ngh&1tedNb2AN(ChNM#Ojqi}9JE7yx)9LOjE%6(j&2!NyDDR{*{o&|>&2 z>isQJ=Y@1}R4@xFjYe<EK`NJL8^d6vO(*)>sGR>}V4Otb5S*DQSGFe^cd*67iPN0k za4%KH-Lle#5sr5jPQJaYA~&gw3Bf)C5^j@i$f87Ck47-rB7$WxZ$uQ*N}ud591$E# zD?x6M)MxQ=EZKT(^&UjmiPmuXvv9HP<v96Qex|>S@Z3(0uwO?8uVdYaxTU3K_6s>r z(4K`q+a@!SCs%Ht<Ap%ZfYjT|NV!RDg9)6oaFXq1YPnZL?xSP}(H2>sBzNp{HrPEr z33KA#$WorU+OpXHv$_KCegIINMX$dwD{ZI&k&RGUgPv=(zyKrIfHZduz*qif`Fq0! zl{t|*49;ch8l=16n_m1g*DmJGe}U#dQlG?)4yQ3QG0RDlke0nFkn`}Nvk43CMZf$b zqPc#a>}S4LZ&ID)q-P?~dLFl#_;=@(bPVPV0Qbx_joFE6vBE|N6NOd}+-FRcuz$nY z*Qr`jkJ>-ZFE3tU)0h^*ehg!`q`J%BxfE+OUIG(_xk~)GU4O`a#2h-iM(&)(8#8v2 z$>%xa!Vgcwziqi^ecQ5mnM%~c_*UhR1zhj?b7apZIF;y{@on6nch|2hNR7^Js8_cz zI)^Juf_??)=XYlE_x>vaTuTA7*5t3WPjq_#LV+N}Urc=^tq`u<#1;Tq0EqbvQ-oD( z>y*3qq!6$!5l+z4?CZLG^f4GJ^beDIiwrQt#cUnSeQa=^|LoZ_!TDOi>rl}8KTL(G zR94n6HR1b&u{$7xDD#wFyB~xC!*&i$8b}g3AaewWj&<a#uP;)qp&Zv(ZO-{@K8g}A zd$IDUVP>ePwNKA_lE+oI>GH^cn-d|a1Mn~Djo~7-veABeK>zp4CJ>7W43NfiS!dHB z$C05$2<rkI%X(v!yqXH=@CDYn0lhlRm||#*y9IiL5|G3mHLpyIXD&^F7}5bGl_E#P z-jleaZC-rdlf;PHvqaDYKOWMOeDPY5PEr;}Ae9@ysDs!dAt53@*_Zo0{+uC&7zAO* z1E`SW0OMr^+!$DL*?cYcEYTNBp6DGlu!<NFrvo4^MdHBT5BRS0h}aW@dzta#Agp*H z*7v^&rLVYIdXq{3)QaKBI@<?w>8T=Gbx(h`i`=N}*ya8C*%iEWbGp4Z_uVD7VHdc@ z-Ef*r&*1#GGXZd(23ltUzmQ}{2MOVYdy^BZDx;L#j?gVa=^z9vScG#Hi<bHWr$7pb zbt`T@aibHj+bc&t{f9{EKIpp`CN+{A0Dv|C)4tV~?_@tGFxw(V6zc+H%aJ(xB@+7y z^h5&MP(ZP+EGEyhB7O=4To;gwo=8>a&_!!OU4U&_uaeSB3712Dw{I3(X-}Mef+8)= zMU!Xrz5KMWb34faKF|i89C`*3{@|;>x?Y-!x$vE1WgLMHD8Ne(!6sV!S_ijZTHz16 zss{=P)<X=4;y(YySkvH(@eRssUC3S0JU~I|-75hW>6*jpr!cf$e+E{tAhUZibQ2K; zIDZ2|mqjedUfXYb$h|-UHGzNv5NmIImw?MIx?QLMgb)LZ#OR$DQVHdP5CUKYEVA<W zRnZif9u!caD{ITMK<%+25N)Lj?9Bkt@j78>(c+UM(?Ki(q+x%Eo6(cV1{M(^y^4t< zs9?s<%_0Xpfi^T|(EgA?bx5=H3X}s7YCw{TdFGtwy(guBb!8w)sKN`{X>V#DPNu!( zxPZIRzhlu-qODfhIsjg@Y6+HHBNJ)ynPx2>#}@E;ePo63;)L0__!FMJ`9Nn(AMQy` zOry+Rbbj!(>S%`^SV0e#eU2B0V&h6}r`ZB3F@TZccrI0?y9N~JNuYHautE_D#Z9+Y zBhHU3fkdC!d_@ra2_Djre9=*{jdm$GttaVz%Vn0q;O%(W52gqGN%F_*`QSsXHW`n- zXY76t$;#({8t#}4eb#Bg=s-2BTV_Lh00me<o8%)Aqdti*Nucun9!7k(D?|_vU`tLc zr}Q_UQ!%wbpp6^grX#ye>H5$)0mw`QF;jsRymYp5?69bf$pH=A4Zy@VOo`Oe<bYsq z=Kk1>V(B%)%erx}Mi2eSp8F1?o9C41jo4#k0MjZpdsA&9t`d+q2}IZDXl{uMo_^;c z6!-hsnp+p3U53O_+`QhGE@&*lpo20urK5EMTbR-a!45XHV+ZG^lLOeG4X})F3;HdG zTMdR--nZ2X?!gD-5s9y|Allo*bD{=A!^?hL=dbz_-c9*XC-Q6OfarWizgnFO>b#e< z&S$C{9fCs4@Br=Pi%9juDI3#S3it;tBVL46upZ#L0vYGNDRxBPAn+XusMC|(7T1CA zVeuw;-~l$sT_`rl5m9;ooJwSZ2kX(Vt)0DQuYXN%rM{UUMZo%wWPSeeA*^saJmeTT zaW&kB67jUsDYt_h@EXc2m}9(Ln)s>v;qhoS`8AzrHuvp6DBN{N$=5dT`e+wkV3bli z+R5pu+uF?k>0FohWeJ~!Ix3;8!2fva@qu>rC=w$+;+DQRzo>iQ4efG<^_I7&$ISKh z#(~sl)qy-}F%FGwlz(KxFOMdkk7x3|9TdzQ8c`@+c@=RJ4I67!jK;DnHC`t;`oNkk zoNin~7+&MC7G>&H@LN`YRzYW!`la7^$Sjw2<HxeTm$N}1vxQr;g^kt4?fLB9eEr$2 z1+1-zfOgE=1U;k77mm{q=M;gx^>bUpA%oN6a2CcRHYxEcWdYgV5Mx>|I)ZOm!oSqS zE1onm)MbwE*f(|+Dev|P%^K3$sM9uZXbfgY{rde&HkpruAUlKerJA|gVk=$uS3}w@ zHChi2hJh?nn^6r@CpgThI9E8`S`9DU+`E7>+-f$+E?3w-S6Bf4W<)@z&LK2L)g}gw zh+Y;CA(M(b=Y?brK{ByoRR3gI&E{IoqP-8S0}AgQ?`;3SUv2ulrT;(QBctKG-xq{q z3Bj?bIpuA0sY&c@b0PM*5CM41hyY0h;_@rOe@gcCkjy?vCNO4{n1*vaSC&E6O3>I! zuvmbmq+cO!DkM-b7owC4VTQ-V2|#bvVnb-)SafhK2&cR-`k`DzOVn@y8s=O`I)atF za8)F$y_kbsc>0q-n>LwQ6)t&#n5Y`lOErBXh*CPFSS2Qo)yL7dy^T&t35%MI%qHpf z^QtkoATxPhuD0;HM|z(?Ixu&{HX?ooM_a<s8@p@PMPQ^eq#v<1f^@gF?)l0!T2Fn% zKy#7;`6`jI^%JWHf|UwEDsy5n!qgXAo%3!eB7N8~#53aeRjNr=#_PMp9xk3qFc#b) z^#oy>P*{=01w|wu2S#?rs4WzRA8pQ#@igOIr%F`fN`8-ZL$R%_wjfN-35lQ7%!Tf5 z0;^7u^^DQbXE6R8UG_FJK<NI3kH`u_Ak!A9DyYvHPh4^b0ZmZDIcb<P;Ysix&oq@} zs)AIkh7ggX$UfUREHbvSc{?wxM0Kn|4l=TwS+%L(KWw5$k^Q#TcyoYcGR?+bE*hS< z`lMGAN0Yg*TwOs~C=E}!0#3Wzdp9~Efm1U}WYSPl->(dy_o(()4h>5+p(L11!#7*m zSAwuws2*~(mO`WulB*fxD6W$*<yt2&WDBqnge6r!?&6)RVqLS#Z)b92XpN#D!kPgj z8P!%SBP=Y9GHArwQpP%AlmC)h<^CCc@rQ+>iiKovHewz{FpmP#Y~y4}cStK!Gj0BN zNjDa6*tMb|*|t|n5Jp%1D3Kh`hB25vsz86Ltk&pdEBjm!w!{53w<9RPoT;?jSV54P zH7_@Ae%ul2mqs3`iq*?bhLMS8S^N^10hAgY{96W*_X@Zmimc|qn9mqh;Pb?f)}xeF z<;3E!qvpiB<mE`G!5UD(La>uXra$nr3PB9>AXRYA3c-uV87uoyK(lS!1ZkzZ*Ivs@ zraMeXOfEzg9)kn(iO*b4?HkGf+Kdh+l>-@x3bevi1!0^{Bk`8JEHr6pa86uYnRm@Q zqyPS;IIRuF>+o{Xq-Db4n${xuZObi>bFID;C0mksDjDcdmQHhT|HLjB#u8li=Tbsx z-l&6?rKH5e#?;$?uQxyT?bAoG%adm4)=$=D{ZoZ)K!|!X;(_WYkpn~e`0_8fRDapY z<}%OL!rRiNM~-z)>`#JL9?&d;zAj=v-`?!k`-OgH6wvB;lj|wiE0#ySg}QhC7SjD| zVWn=M=$noDr1S9ZET?5Jw%=oAd@Z+c1w>4ba~FQ$Wfy>Pt(v|iO*CQ<!)~;bAW6-m zj)!-ZC)*<kyWt7aer!KC(MTfjYe#kn!gk+3YVwFwLvr;w?R7bN{JhpgZ6?(Z^kP3* z7n|ngx@G;YzEigT>Zyg>{-oLHcnono2Jo}9URhvfYd0<zEY{7-Rm&2OF#UYD68w9k z=Qjd529UM01}s#bwMIgr7${V{j&AqgUw;@O8VQ7Z)-x4wc>WKYHO53etU;(eX{GL; zFLmj>!kX(lqrZC%bi2e(LH2gmxeJxET{dH506RNtl)>YqMD}}#iUB950m1Wz=y)Cs zg{*iIgRbz}g?}Zt^;j#@$WtB+|E%~8gF%{3x?xH7)M={^V@LzLIKwR3wJ=>FKTSe) zeJpk!vdpSnjwrddLOLqUpe>O72S|fK%!pw+YrEf8|M(VD*lntfuYy=1$iXhIfP$kW zwCyQka}3~Vcd2GZ12>~#u7jkvmzZrov_3_Qjv;OBtTPq>RMeHKy&vF^dbN;*08^^# zL_1it9kO2#hW9FmS*fU*(c4D`>mvmDk`v3>4p%UsgLk(H;$adqVt4V`n6lIaYlfFh zzWKJk+xW9!u_aAOC<i(fo#EBpmv1|ST+cGT|FvNoN2c4wDN%B0U+s%*q;<Vvdh!yB zoR3Ve#TP3_=hNsXv>{@KrSMdqyh9AgDXO)&A-L{AQ!=0k75^08pGQB!*KFi9j_?`> zblAmhe=APBX?$ZRJ1MB}?1OqLw;fCds|f-yiNUc=U&FaGnQ({2*Z~KcV2}@24&SX; z#z1a%@$D2lq+I;FZHpaE>t;*2ufM!^pHLdJJ{toC*x76^07PGIy>Q~zFM6(ZN&W82 z3JUBtHq>4{m{)Ay;F0F}BGCzo--1g1s_V2BHL)R=$O6SrLzTbKy(b`g$*W>QT;>8# z8xtVU@*C~>vWWtFjtvb~KjdT8sG7`_@#<u5ZX+dPPL@B;U8ox#lsF~w@!(TtC7b9^ zoV4R&4CqrLc=B;8(7Uk%8XUldGsRh=?eB({=NKQ8rlYLd61+^mdo-k{$h{(QXL%fB z1n*euDI0G)0UuTwFF-dNM@7Rn?Ee*fpe({I8i%*1&PBa2(+MRLL@952a!Jme^`$Zv zWZ9ZyEP~W7UQIt|vpFAH(A68#6y)=k*Y_=NyOzkVG=Uh{4Yp$&?$wmX&Bb5(t#-bZ zKMqZb+4DBcC8)LUyUfHC(c!nYqQBcB_KQ(Xh!-X$xEv|l*CFncG)jfM#hTf1;yzDo z1h%Qm65rcZ)d{t^_WEanyGC_SIdvg!x=RPuZ<FsM%>xV00Cr6<loQey!{PZ!Ht&Kd ztGTXd{mgv-MGdg${eg+rLw8|e{oYX?Mxq8MK4)ff9(=T~*TaNDIpo*QpTxOI6SA*+ zT1ppA71NeoMcGHsF%k{9@ZV>0yw~KcOtaK_)mfxg7l4t-!G)iZ$)ToMz`Wena2hF- z$|yt6_mhv`==|%z@Pur`ciX;KO$zn#q&RJCksBQNCmG3o>i425x%y4AJSMEwwyswJ zQ5Sy_Cr6iBRo|!9`W(g`&`#7hFPb*3^DX7JwS0hPta8D$><#9id9NXqdT>f^PW7@} z?w#%|0?obS$_kBssj49Ri{fFX-z01X*3|bfuRpY<mhU+~dhe-ntgsZM0KJ+NMpTpb ze}+_kd)7t2^u`1tZ-RWsOA@0N-|6bcgd0jMHXVs=XTzvp!Mv!!r@4VtG~uCC<o6J$ z@Mth+xk0YRenFzZvSXw`s1m)q;rUXKTXiFkom^HE%)oi?d^SYOWR?1fn@v(56n`C+ z9Ih9?v+8G)1bu>!%1YKT{A3v8qjmfCg=tdA6a1d6<Qv0)$f+4}o2{`3PrLXb3N|b> z4#wyc{Ov4`45J8(b@S4)eFDLudfs&-kr>MzT&`NVAzXTIUiJCL7Om?m$~*4|U*C`( ztF{rbu*euY8(Kr_aQAOt;qH}-wN2}WOSz_5*MVPZtEiiskS0si_6v{8(CkXy5xs0~ zt?FaR=biT}tXuPV<mkTXPe@Gl%!v_2sM`s3=&!uk7{sE@nk>`d(5gZ>j7139sZPyH z&Gm#8KVK{4avG=#J*bmR+=t@-MgLv(Fs89=0AnD4oee;Lv&Pwd&(RbjV}g9^0tr<s zWSI(1Y5hWr0uzi430JMKcqFFmbKw8Y;P|S(WGYcZX`-Fz0_RifDiSr!=3TrYXqKm3 zWKp+{J+st8GdU47!9=((ZdUeA=P31FP;#@-l}3?np$*kxEmH`g2_V)5LjPl-{E4HY z-`jUnZ(DQ8ntE}UsJT$k!6a;LQ(k<Nv}hMNrCL(NGJ3&D1G|mbZ^pDo_e05QSm>H# zd?(f497iS;uvJm5P~zw*P;#@<mBx_{ylT$13_v-g7Jm^=2frB^ax5`_$Nl5x)mKVr zQuEC%xBPfiAuGOSdh&C{ycZg4VUY{0_|ECc)r#?Ud#%cgbWQ67CK;lrZmIr^G_dN( z5c@lGwwzV20--{2*G3UrIl3m8YuwUo!ynNp6o7CEzE0exEe4ICuoW_q8^z$E#%cm! zEKx%g=(PjdLcVtlI2>3Rga0#r^|C0=%LlHk`~v|B+i<)l1)eH(+;@7q=DL@kBz%#) zVzMH;fD6k;fn6Kmc_VCs>w@+;f@NiS=W4jVa@z9WPUY(HGg0Y+?p|<{0#zI-Q<tgz zIxlYpl2=<+L<wleEiGNr#E5Vr6dmC*F|NTinTg`nA$#*Hse8UABl=5r8d!aVl#fLd zxgVkj$24J%;7!LVK@~0=^>L<w$wr3Y#Si)V=zRi!bb$bFg>NgUahs5sCak3M<&7IZ z-D~cQXF^=yS2XLPTjY2=smaxnkyQZdxklvvB6Y=p0q`d{NOFro&n=7`LxK{?ppNN# zdz5NzJPfL_v1!nZd2rlay`bJ~1e`8X4+_ar4A9_KF{qdMavM?psUuqJ{?Vg-Russ4 zZk!gttFyb`*umG(s)uaVJ2F^?{#P1oVR-RQ0Nl@4JP1Z<_fBwqh^XCsSdFCa>UZ(P zcR3+PoRGsJ9rjY%n|`@EIESkifmDiEmChQ*{hM7Kk93Sk-RQIt9hHEN%D7Rfqs?Yh zVB)yryQI6nn|Ln2$q~QFVXtCW@S+kO7boT7)nC3)J%^b8tUFDd+h4F>(25l3dk1GG ze>rr}Cf7@>1tivzi}Kf{jry{$<AbrN0jluDEB3`>{W#~IiEJzcH56LcFKUMWM`ERF z)teT1ofy+hE+(PK>EPf%=OJx*Ig5n|sssd8GXIc}Y6FVdg!kwXUlb0C6n6sui2xi# z5&n3r19PwGkmt0<5{eT)Xo?AXY4H3DS;^`%=dlpBl>pnyk*K4Uy6xr#=S$B(uYm5A zl_g?fnXNaGG;LD7Vp>2kEs}u%-`^X$SBc=2ZvYGlFhBxKvbe9?Z|d4t6Cj^k_ka)u z=l+Bue?sH_YUa$orUO9^$pMGtFyqR{7(mc-u>W&KPJS-k%=VoxP<-w}R;7Jg?mu1+ zci|W{i&;#2P=VKYC3&T{beVhtVS0ctJ>r}EryN}-H(K_4dpTU#AWGG>n;A(&Dhnkw z+C|m_jXTlEIccxOpmfC}c1_52oC`Zdp1uK{ykRA?Xl@>u<b!HjF#jNjedTl&fHf-i zdTRi^HRQ@)r6e8yxd6O=2KIOc&ib&gucY)LZI%&{Qvt}SDDD(4d|}guBeoFEsy9fU z2YiWHFe)1jwdR4m(+)0a>%CS-C!v!JSPFVW4qnr-b{8B(ZzQZLtQUYGa5+0f%6!>p zPEaX7xR@VI60&bNgs_`6uXk9%0=^OeI|?YmBlkZySv8ac8p@d?_*y<3W-}NPxdy2f zkU74WNi9k`P^KYF-BOC0V|3&N>)50#+q_W2)x*C7_KgxlvRUmLAScLmVXP@NId4PM zeoxHUA8vwImKRA4nXp|0ymbRS*7_ImC2p;HYDvw^Gd$pQ!*{4_D|4>H&f%xRQ)#^) z$Q3Ng)!%hUF&<TruUC-6M9Uw=W8zVuI20>cddAFFA6yLxS0k~}%?OnA`|ERHLHH>% zasvfgM@8UNk}H=CYZ6xI;T7v8P#5+;-C8ZA|K7b}7;;oYzFtF~S3u$R&f^SZULLp4 zGn(`9cy;C1%6v%v-#UW-(>d#u8k){mkxN;i#VppLI>?Flx(hf|P42JWdr|L&d#|6z zEA%dlA(%Cl<i(Zb3R2OOvUBxTR5Tx;;3}vhTtoHg*?@-gXRKx(a07aD2K$E2ZqrzI zQ1CVMi^V+(^dCuaLW{;)E;PI_6I77Nx?8~R<6;(FPZj&qlhM-S*t|O_osN3Szqpv( z7Q7R>p0>Qu7pDr0Q<YPKcakM(WM=ieARpiW_i}(~p6*+CS^k>Gf>es9!4taGIKkO) zyfipoiS3JyqB?g&%gMlD+50g6-yS~c-}4vtFAVPGi8Ah9Eeb+=1)*`-xM6E7j#6m5 zNjmgqbD!u)nMscmtj(#IB)I>0)AvgS_)A4jL0Ml;?7jH(We+Hm4V=aXPN&~L+kPEH zmP-po(n2rQlF9!oS<jC!cjNNLlQYMY!&KQjL>tArEBQTbM*l6?e_3g_M8uQ<V#-Da z)7k?UYIf;5eBP`GZen8dsFLWZ`tG;eg}qu6K)bEsx`PN(d)xtF(fPROB;B4|;h!Ih zjYqBcHtb*oyCQ^b|Fd21g9`9LMeeUMH`R9^j`!lxL8K3XYn?x0*^C|!u)CrOJJL7H zu)S4DO4WV46B4wF^}_oyLA{x*SVfQ%_KiVoHB~u%wX|Rn<4O<)2N=KsCgI-K#cnUe zgC~>ACX>UQZIN^-&2%Tsib>ck?v~>n5Q0o*a2mRZsk-mtZPF0B$a(T*pXtb#pi=on zJ|UN>X={IhLHv9LGX<6o5=f7TL-U%kOu-g7YPI$P1S2?(E;^qb`wTUy0Gm|gP>QHs zuC&|aH_IbdzGVR4vc)G7x`_WsagA)ByqXR|3k-w!@->yt5&BX|pAEFe-T%Ex)MMi2 zP=rIRq}Nw4BR0}O>*=g$-;l?Zry<6xvN#jA0<3@@GxMUiT<nAs@#MYn<auK0`8#m5 zMir)m3eqEfC7~*YgONg%#VlYF0`%IL|MB5CYy7u-zh#@5wNn|UQ(2NK+eAZdt!(^K zI_YA%AelrzA8If<L%V9?6UNI=@uq6g>ea=l0E>=(UCvej$EAYWiGo@QmtbQz!9FS% z0u6^i<84)PNPXRbZ?M_RA57^{(ZyBXhVJ$099YU~0Oc|GI!>E5$5VaW=&|#ctx}e0 zrmeV7modk(9lmZQEC1PAsP!At_oy4pP{GYmQAH^PV(zKIqfxTaC<UIVfs&id@FfFA zI#v#9R=WvenrxXTFm7ECx2`=%5p6W#;&G!p&5>ca(@3BjL7+S2LhPHR?C@^4{zi;0 zoJp7TKF#8l^pp}H3Z=jtWqJN}VNVnw764?{9Rj4kqXQK5%aTEboLDDbSSgobDwj=c z$DMrtons7w%7LIZq$>R%Lff6!QuQPYUVlHzp~iy(@u2bAD)n?^>J#Cp-f)xxVN?g~ ztL4t~wpknAGECmGl_!+C*8h=`tXNDg*`@|4?%bfcLBV83$gD+DXdfxmCR^p~;Zi`O z;Vogow_Y-+P0<KI3wugWHV&omqD*+zvi&~rzG8^sBxs2m2MWZ2+Q_Or8j<HSbL2AH zO<<~amH4!-TPhw!qt>HQFn;#NUZTDDWo$LxSQK+C3idq8#NO=+&y<D3n8j`ak7j*o z5EsuQO)w@BGS}VTqKw<3Oj9bg$Zuq|_deupU^~LEw&6x6;znm^BDL?6VJ-j~4uINV zs`S)RbTv19keJe4k3!`Y5Tn=9OW;B2QS>d&H~uJw57CFle6tdU#$c!%7#hzLCpH@u zVjCcCm<xo41EE)ANYsC&cnFRiajDz)#meX$;~Q?d8}9fq?DAeBs_Iq1Q4nf92nAcS zS=XUV3PB-5P_QE#qyrfjZ-c~G?ka3i;EAEQnzr~@?rgfiOw$|73Ci&=XRGD|wT}A8 z)rQS&aFnttyX1B{@x2d`z@`ppQ)h^n$d|^Quyg8A?z^d9#A=$=T`A^WY0?tYk#YMZ z$X-?rAv*?#pp{b04tS_DWSrXf20Rgf>J31_rr6$@RD~jhe6aT{uD&uO7E3V~OOyH- zC4ydV5&ptN+ecH%xKqli-qM{}o_>+YW8i0KZ#<!YYQ{*AcjBh6-ig0Z(CgzKug+`j z`^Wt8xzq)Ihy28Icj-HF=?^yxJI?3rDgKvk57)t`LsGkEr-43ai@!Uci$C`&*SHZK zS{QaVe|#C@_Rl$?G5swrUlvL!1^;Hrn7rxs(y`#l$l_jSV3%R(SBDSd;~GbM$9E4h z`+JAeTKrlog0VXH@X+r2$D5i!B>!%HD{YAJM3^7ZSdJUrwtdfv<jvXDm;K$N(fxk| zo3;;C4+B<NpF|UvZb~mkkAfct?OJZ@Jxn>ipC8EF>|9tfcJyc&)c-VkcK>fQ=WueE zXY%dj-oo0E+UfTA<iFGdPqX@EwIJ`m?KhV9rOL+=b)W^Xi}PIGzul$FQ-<yuroDr^ zrrXYk-6dz~<q54v;S3unQ}P9yNmA59CLQua&z+9}*E>=pSckaf{mwFNVoyg;mxX~` zr~0X5^I}2ULWq&8lPR*ZN0d+hd_YD&S#=R9Y#FvoD6n{uY;^HiT)gT>Q|rA~{AQS? zrCG8_j)BO_g*%<L<b_{d4|fi00z#w*NiF8-k__p?69!pTY_q=dXWlQAh?J+F)=Sq> z{+SXfjm*Se7+@Lu8fNj?q`)ktC^SeoFfdg5{pU}N9jXZnu{Zl9{8;l=PM@9xh(9ra ze6HCm9d9e0T(XvOW}HdC3)i_A_B*ck%tx&S(@!d`_1qrom<Ra7ic{2<HAaQ>&Axb8 zd}J8sNts-75fabiQ+D4iZ8HcFW8lkPpxP^CDw2^1Jw0d-T>Q{E{Y2(qu*E!AlK*FE zY-#{Ue`S^1V_o<0f;|3lTbND})$cG<UahJ656Vr?y;nY>lpQAj<b^z+&wO>~8Pw(R zE2JaDbgJWW&NaZkUUm4Dgq4$niyhYo|M<kOr)QeRtEy%z(BEI%+l-jIqR0$ANU1!0 zpR6Zey_GO5`JRdyL?Ui+jQc^#CQ)kXt3a&6$*h*~O`g*RSF-|lP;cNgd|c{AuiXEJ zv*u?K-%neE<Cr#_A0?tI2`OF>-d%R4%ZeeHOT(`^&f!^a2BY7s;>9^QKS*1eGj=(( z<uRtbS>r7D5c~agzt_~F^VGJ$ZkU-tVfz>R+X`GP+L{BC4W)1@WdH5-;+d8&`GhYX zKW4N~ab9+~pnB9=_PP&r`i|7pqhI~G6^DZh3)hFd&Q+E01>p-7J@J?*D&PLjsl}!# z^Ci8%qGpNT{rgF^4)CU*?%?P6Uc*mg%-3|pBNqzt2xDxradw^<m#a$tP4?z9y~5!; zs4CLG8a|CAxeAwkPGIOmO67z1deE57REB0R=TAlDx#;&lgl~*`_`ijDnaySL*Eu)t zk5YwwcI)vJd!xB#*yb&6r|ayG%UuKDC?X!lpATuxl&=#N4ZH@(^4OdAK2f&X;PzbQ z=Fk3}Kg`z0_gpQZAp+HoL>YS7Uk)8ASuHtMobTpx^lwE8XsdW@at?CX_G~>56zp{T zDY_bYNR{qM$Jo_RPMJ$e^tL&4$2PEePQkDFqm_{k%F!y1=M*5W=|4(AUT$LiPR*=X z4Jz6eSh9kjs4v8zH_S_-R@QJL+<GkhG0<XyU$ahnQ*>avB|?{-SC6Akmm?Zb-(;|* zdoR<x=r6^?tDIb`^!whV_YiKC=j4**bP&Dr?G|>0wkxrpXvgDgOJwDkET1Om8GF#0 zy8n1&7$UO}*vfJs&ba4E&PnUXn}y@6+y|{39XR($GHkoj^2<aoRL)0kxwu0pEW+{d zwW})!eYh=5$Cnd7b+m69dZWq^;Z80gPLCA0JM_kyYGxX09WfzY@>@P-4N0i>1k^ha z(LYeKQAz)c`9<-0NuAxWprH>&R;N6tD&o?c6UTX5(X|bAS^jDa?-nQYlXGhN6AU&Z z4D32z71T+84t%g2o@09ZARZVMh<bKmUb<#kUvEEtSzl%3Zg8;@lDuTQK~dkZ{;c)q zg(2HP=*dGNd)xSG2iW6rW%+!3&98g1LLuc0#+#8`oBo^6%Pdb9^n!*yWr(dXDTj7O zW_B#~?0G?nvZO-l%Vom%$I2Hyt#3q2<v!VSDqAL>K}a|BF4xnfHfe%Z{qomLYg=J^ zv~2y@XMF*|gIm|XzLxK@1T!-g3@b~f)CX1PIpMq=!NxxOGPSjA0_${8mxPb~DcWMY zTOaIM3=fGf|4GQQknv36M6_z?b2$-oW8h)E=JTRXn8~sHDrPwZx>5RXo&EEoTxj=a zu8q>W^=;{czK|&VJh76f>BGpa+p5Y79~Jn@E^tRfEW^E?>udw#W?iyp(KC3U;6=)` zInsv8i=S9=YRFe|e}nEaed{_2EM^^^UDzVcb0^_W|F&eto^!J!U=@$r+W}FQ67&Kn z?Ep+MSv>TVyB@(5gN6GeK>IH`fBwlw2e@v*lSOG#sFWM8n`fQ=T<(xq4KcgyEji?u zSl?~gUfpP8?(KZ!V67X4q44uu!}UCpieyZyrb|Bg=2-q*hs3mYDPSY@f5y7&(xj~i zNB>@9l#og_w{88HP`%KK3|c*8ax8X@KdXsUwd!rCn$PChD$y}|);ec?T*Egn5#HQ( zu+~sbRO8sPQ@Qh0k8z2y?PBZx#1-g-TWt#T^s42r4$IWEd4G};x;Ud1WF@#;Mg60y z|2;vmNKlr{X^i-yj<VTe3HSZN_`<JZsf9Y{li{$s(CXOp`|}Np-^z*gJ=Uqbn?irq zM<h1m{a%nz{y9EQHriMy<?qXUZ2RIqQHlLF6MJ}@L~C?QabZ}ABG`hFK1W%SFO`CT zaZ>%4+d9VidRNz?XF&Ci!=?BMO`u1V#Sv!rgXm<*Kb*=95~6`jWwL(3jZS|0`4^XZ ziMm_`nN$*-{2fQ4v-Y!WiA|gZl~fX%{5Bi;KFAdk<={caf(9xHM5?)$8=rgtIpIQL zVfFVgzJZ`QtJi@=u;EP6oDcifLZ4NZ3K?CruI}bur^-y_9FK>uWp!pzyv^iVFOVdW z;Bp^6H~tH~#|w5TLfV`w94$)v(s=Se5-`dIWmbRUKRFEqrF<uA+`8~R9^Ra)<P`1% zF|~26w@Z;oxYa*u{JxHo0&*SUZsG<lY{~gYJ6mCV_wVYkD0r*67Q8ZnK95@8JpIGy z7(8EuEWN}$t?G6olA#jsjs1-)=Aw0U(I6F0v`pr)STy3j$QbmyxfdJV;HYIQ<v48@ zJ@;IVQZD=TXGZ%mrtpbPC(6z0AiMe-wkVUXi5HTD5h$4mEYO>n{n4F;;mF<F*hHEL znaUO_;Mryt73=vdpRrpI$qe65x1~eX5Z3jVUEecsT{haNfIl`DvTG{;b{HZWi>CPN zM3|a=`7xHiY&{(;y=jrkkP;yh3ksNy#_9BavX#8MVOTkPCA|FQ;m8+IDU;euOp)uR z)3^*Q!0SF~`i^mjdHE6($;Ubu9`er@AjAhMpiIB$>QQ1g;j`aMy!e+=sMpp>y3#6# zMW1&y;+QwKcz1Qu)Gb_4*&9qUICs~HYH+1$ZN|MgFn60AZb<|zD;`};NQX;N0gDrv z6P}{f_kXU-tfl|_DT$D25X%GpW>slTyz4vOi*I?mJbq^7`PbJ(`p&9vl*ofxZr-Zu zY6sw6RY!+%{h%jxKk0n0!qo8)Za*m<_N1V<C<&mgM65`2`~DKHCjt_JfeNVQqO4;q zv-lfu*#OZb3KSJr(KjG`0T2!~i4fw}U8(Vs6&XY_s0T{^9eP9h-3XsTpz!DZ#9R5t zo0KQl-?`4YLLUY$mLbD3E3Y3SXSQCfNj_TD%zvH=quxBPKWA#KwT?MwGD917^A;&# z9`3+L@duVhS@dT(`M~Ftu=eJE|5Nj_AdKNr;5yFXPpq`r=R!m1g}20(XSW&u&yJXi zzC=dDH7weLjho<rb{})i?{wF<@#B6$lKd~cUtV_)pR;yS5T_C><alpmsUCco>Taje zj1>sgEE1RWI#FqG@OZpQO<ugGC$1Q7y}Lhr^KE{hqQsLQdJz@B4KRDRI`z=GxT3o! zW*=ebEXsVx-8etr%yk<U{F<Ikt~14zP2lHY9!cTLpJ9bGUmd6_9);N6Kb`pV;fsB! zN7x_mviAaAXtp#w#fE)er#esqk8Aij=_+3CXQIr|jHtW5q~_#0qfC)C73qYMM_;yq z4$>BE+vSd>Z`wvAnc||)rxJ_7X{E0-w`_5&tA)JXMk-(Yt?$rF4O8h!87<7G-;?)# za`xFC^O65fVefH8JhNyzjH+L)Ji&DDb7I)!Bf;6t_kWhHH=iq7|B3^Du~&p?04`y` z>#D#PgP-kzkI(S0>rHxl?19swVLe^%kN@8OJ6-xxb70uscCY2a>EYn?-Ju!Pe<`As z8xrwx`eq>9{vQt7;S!qvWt7`04A-+M)ta|pQtPMI+O&+OdHpZuWx@=|>tHn>F+h<- zm|EfJRyGllROg`yKdk;!pH@*)QOMog`2OMJzZ?JC@pG#BRjlTbRCEkW&&|90N%9QV zy3!tr0;76M>9A9&tJ5)oS5@r!;u_ReEYtLtYiD+1=@vIQ$K5EuqNE1n(A+|P&BO1_ zGRZw+-9Ee8*J1>|-XV`$D>N14P(S7n7R-Q@^yOTSJ=vfF&wqa_=$80<=4oF1IQ$mY z{zGzkLV4Ok=H8@}s&0H|)7IC5D_n<wlP~*^(uc$In@%h`etV-=yRWDMo_fZK)=Q`6 zYyH-{e7@}0lxMDypHhCP6;n8NfGtfQBax+5XY}M)(j}#I&lQ_7U1GR!Yw-H%&a36i z-~Hj~pDOeoHaJW)WA{+YQjE}@2d3xvDxDb@tg$DxQ|9y71Yr`s?lhv7w`TXtq4_36 z&2W0sPJx?F!EK@KyD)1(`n#vR;nOwKLbZ$}j}@0UnVrDX5Z7aiV|wMj#8Z-iwQdIe zdt|H?EV6`={xe$@F0R<*1MQowvVd{p$dJA9wF|G1jvo{GZJ&MW=1#o|l%{cox=mP_ zRNk6-w(q^yo38%zDE5n<>nol09Zk!VPs5k2GP6m)8%<5lmM$fjC^r`w6)gOAa`N{- z-Ppg>nr>rA;F;%RAq@>$X7EI)+=opRpX#$rP|U`7n8<z7V#rFYN`OSug?6W82DwNb zVE$?)D~>M&xOtoCCMi{0wpCl|>B+D}geC3n9X|g=_^zyOxvVb!TS`fRA!vH`(tx0= zaHzDV=dA93@$}XKZ3J8UaL^Wq04-9aK#%|}!QBc3hX6rJu^^=sch?pO5ZtA>yL*A+ z6ev=xxD<!d;{MCM@BP02W|K)~cF*kYoO7P%Ih86)hJke*_Vpb_mR`oHM<17tQ}-i! zP<Vx|%SEo8Kh_OHv>HEXH|7@FtibKbHT((>E}m4ii|LO`>1*5xX=NCN{OkO1+WFER zl?WXjuQtr_b8-vJF0EhqcjkK=?IZl_Z&n*F9dEw8AKvr@h_Lqc%NPp2@3sz%9hrOy zNSS-A{I$4z$=usfR$NP;X)B*M;ztoW!>RXXA$ouwV2&UC?MF=}K|3bFJ~?0hqA%~M zGB#Wq`RByG$RHORkc)>d3NtwkAAdD`3=f$qAo%j|^@HYH0lT*XKeJNrvwUSGcfLMO zCzrmTC#fxu^R<#V7fy~`NXlq7SVqkWwNt$>_Xx9h-(Oo_eA4cpoE9@&yr{i>{cd0x zHf1Nbw3V@W<(=Q|nwsh$xfQa%fMc6cUKZf)SJyeJSKnWDf745{l)u53X{$kKCT8Mx z(3{oDl<mG6fCZIUlf2HGeK-ue$eI)oSbXK%37lkz9rGJ(W*=S<95#3x&$*kR<KZ4= z|0%5;s+051prN%cr!$uKo9drW6zql1?3B5~cZ}R#3)gdM<-9O#5NVp<*~r7R?9UsE z!1;TxuDzm_(h}d+R8yL_bQ`T@F<CT($abm089~ZtkP~cRL?w4~F8i6<ZM<y6QAWvU z&=72VhzfQ*du2Z=b!Yc?aq{*W>Km$X-?%Su;(fe$x>(WkxPZV#FSAz(8@k_PQSV!f zj_D+VJ&8-I#?g*gnR-z>)6AcJHnYE5kzFPZ(=xw4ON(?^yLiehe2c%8ZHY0N^r<;A zY$h2&RsVcm=pExoq%s1R_Uf`e^_QXM8~3C9_AZU|Ez;R<Vf!ZjpK&H<LqI`)kXFD# z(L;Rl&BEAEOjJaSeU)(qecxn$+`QzMqY(Tzb%(vZu-AFEK4c&}3j=x--Why{b#H)j zXoi~`_PWs4hXeH2cB~+L+NT7xUz%vAQCL6^9zzB#7;wX&MYdwRpju|;R2OXr65sad z#nXj-Bky~e`}De_xx_whX=sAvehe)`hFux|S0g8{RzhH#M!@J0YzO^IA&^~>DEGgc zhq`jo6>WkHo6<6E<-dIVSS4>@O>`0Q_+n0oHToCPZFmVy89cc}c(Lgi_98GL(<yf> z*4uY#f-+v-Q`>uZ+!_b*y!grDdZIE&_bJw2N({XiOYKp0y9Hx;34UMyXlSNqHhgf7 ze?OZnk;W&(VLw&WqV(nd&H37xZDYFM(vIsmc43`T#t5qyZl@7kIioc#M^)eh-^{1f zQc>;)(~BTheP6)8pwv*sa_ti}kL<8R4q6B?;nNst(#y{Hhyb72P%$Is0jemf5Gu&Z z0kwrWmwZ%E1Qq$D%#;8Tn_W69=uZQR%3KXWnAw+lb)4$6jXRir05XWGRfXWDBUF6{ zmj=(!9n2AgL+B1|3%7*PROV6$!oWVyY@T>3a~cGpAo>d{Xj#YinibX`Tj7vdmVs`i zsLQg^7|1mb?x~sT_r!$ZxFO-(-Y8H`LPr)wZ-Tp>4LBND<a*+&&Nq<oUKRQYKjD39 z`1i<|0X(0Bp<dB2lXpEjM6Yc!8zoNUB*sA;HkUFJ%EBbQ_C%PtBVw9zPr=-EgkIbe zdE(FI&+<IY9JSxANqC)buu2jIR;+g%th1Iav9NQz%Cf~DWsMOe`{A>foVw6VyJPf2 z_~_C#CGhRPSuIvuj-KgW5sE$#8FNa>8%{lSrY}|7dOHjr*=F17U&CA^ml%q6U+@Vn zeM1oyYu2R66=9j~8wb+jmTejy(G%>OQ&z@e1n*MHZA5)o_+7(zk!vfw9Q2O`F-qPZ zWq0cCB3E?(v)7~a$--vG6WK&YdZss#PpXL|yE3zM-K_omzJ9>8d=i}S@=7z<bDoep zwk&;V@}(IxsGcoQiz$J<pPNEGno$W!1xoV&P<|QPG;Hg=8T>dNgvWsqn#jncbz?o6 z%F=ael#jCCX@K~qEa&%dB>_^DNzK5<qvd5V^bX*Ue>#1auZZ6@rw}%m4jy9}_GHP% z=ab_pw7b|Z(taYW6rv46Xu_S>TP0Ko_3=n6<f3Z!yJlcPuMdOF5JfYIWLZr!*Nay| zPgrJtoM;66782M00+iN3rb;xPR%-FM7FhRc<6K$X4L&!&9y~58zL9MI-P4i;SXS2b z;?$j}`n`~xZRDF7jL`tpnT&wno#{R)wh1i9hE?TJep%jMt00t33MYeOHHZq^1+#&| za}rsO3aX3en*6+WDdvtQcFW^V{4kmo&T9+?_x-sB8)yYfuo-oNOEi@-;_yN^W9_~Y z-NG>eoMhw`yf|L@%=~_Trw>Y*bLZpM<cLm^7)SIn72^$A|9f)SaW#1qS&Ogs*46+4 z&fUf&7=!wW0B&W{R(6izot`;!l7qBGoLN=cHiey|QHbiH3w{kP2oMdF6Nz{hb$fMm zbWpb7br4OJvHBF8%h6x@+>=A*tWZZr3L^L`arPJDYZ1kc?MV?fS>^_|S3QT{!-mwC zhm*VZhHVNqpV%U~sPqvEHD{Lyc`yb`5@WhfVxCKec7+n&T7leX!hV-X|84@{T#0mn z4Xyh|iAg*5@4NT<Z}%DrFK;?AO-x31nZ%s4xG|BRlyX^>+~1570X)j2{p`jiehmt& z!e0loSKp}o?eLshWX_xl$^puSMCf|DM}FcH@YF(7=OlLLB?7dRHPuRkH?n)Q@1{)_ zF6oLjH4CxhlJ*6K*1r6Zf_z6habUD1hX2(v*yh=vyZO;vy|+}iNr+FJ6fUD<(Dr@8 zQZg%B=kZQP;$LioE9oK}^8_5HRQ(^2yDDk1TvVpAKmRXEPTNbksf#i|6coO%(|i%U zIDv3i4ip0+PJRNK#f0_8v$;~<N6c^stvw?w2A$-}u`-rb4KZx9W$dRkmtUh?7@Ng{ znm)ppI+%r?W)1`<0_C)oQSA-zB}rbvJZwf-aEToJ&s&jX{Pqw>t!D)0c*+1AQ24XN zSXG)82_gGdM?^#~S0dm!`etC~<Vf(#(lQ#E(yvg&GeuwNIK&)|JvqvV1EVG}d|2yV zXp$-tm?Mu=eMb=hd&!!QoeE<LRe%}p3NZ+sR@(WYQO19d)iQ);X(WAJ?w|eo6NX15 zJWzmbtra|^lmsmcvHNb<9l7=i9?%E2D`_;Ob~4|2<-9o6iXuA}ZI@z;nltTG0<5wi z{HLq7#a8vl(5d1kGMXq}Jk2z@D9aJxyU=?8l@T!K6_TnwQODK(76k)gl*NbFDr3D6 ziXvwif(9!xOdhbQ>R#*eFJ@8}p|Ix_g2QPi5y8fIBlv!*MrQvM1HD*EcH>6p@PB8w zep8MIuqtV0v3N&`&@g8v$jAca@R6GC?jJvq^L5KJu|6k4S9&SVzTN!sfupIc_0xKN z*skdd9k1rFO%_zHS*l{7DoZ#&8F!}lXRYO1FW$D)tZb7nFMj%s5^~1!7_xM81LazV zG^9PMQWg#Qt+F98e6OVym{_TQb9jd0;zU9*hnQsqW4s+SYg||WqCm)A$s;b#q5`HP zGubrCeNOsYV67NssW+Xi@u|Ha=lq7S?aITv2CjNSHw#i#9f-~sJz^xVAk?+~;b^RC zNBm~SIExEkfF6dX8+AF_V*`}>unREkg~lBN>5-}4{Cy`eeVK9C<B9{q%=;%A#ktu> z;Tq@lqcZeJOJ=;fxTs+Tu_q|8Q98&i4p0mV%w$$_jTWV>t^DVI5n}Kgq#MP;uE1MF zb#9!+vK`9e_$GdcD6YyvLSI)Rn}@smh+g@SNa-Y$Ws>%We{hgRFoK0jp4W=Pk7?5! zsG<O5VOC0v@@8O2pyG@Vq#W)<$OFygfi+A@eGx+fz|g^e#3-dhN~MzsmPt;g&zq9M zW*0nQ)><7F8F0L7X?X3SRZ9>A`GE<KKdxX}E{cbbUv8cuevL$_O-hbkvKjJiC>Gm7 zaUeGLftI=AsgmX=3stgT20nOVxCiS6VlmMd1zY7ik8a}kfA^~K)X2wca>$hO6y)&7 z{nE!tqLNxQyJ+zE-whBwd2eJI!IH!=6_sU6Z39;CUwb~>c_R<Jl?UE2QJ+R?F~qvF z7kkUO(_3}Y4Jc9d$LUMO=P(SX`X|!B>3)QC!3!TMy-yzJ4)>k!cOD&<?na2Q-kSzS zTd?ki8?tA<mf?t(D-3tFOBl>!v5I7=k&hpG<_6{$5<wspgXLJvfs+6sS~jTWXA4zI z8Vh!OF&SVcW7;sDP0ReWws_3fk1xuobIPFkOBg&$`i@#y#)<=;FK6SrgmhKyNXiz7 zZ+-@(|C>`o7uHbX31yj~qVX{38S=|VgU_(Z6}8lI)Gcins|=rDv_EbNn(Jf7Gh!;0 zJ(a`nerb~Or#$mQu_h9AN~JH&YlU&X+F*7D#k^rQ-_`inSkWeVa9w0zbnqplce154 zD8+$fDVw2&{KafAi?s}I5e|_f(n%TX0Sdfk*x1}(sa$HbCH}oMPHFslTw~FU!J}ar zYfH=}q_>nTl|jkE-@0dpZcMc0XfID#Jh7t5uHE71^mDM{A*PaJ5X&Tv*4g#LRnsrg z3)>Kxd6M|GCrWt?eNTDau*&+<W3kl~2l#Uv;$3cA^{L_+35Qd8eg>#~renk-j%5** zhFh}ML9=^jPs-X`mq}JxFx@5kf5l)QL4l17QnHDqU+m3Cb+sWlEJ2v@a`@q7R?ceu zz*uZNMIeY#cDPl5@{Kf*k+D_psUqU3A|^Hql9aTvXm;7;SXKnt$bk1NhQ&r|Sri}7 zun&am%L0&$e|k0H^U>}->UJBcMvuoD!;&t37M*&#^o#FFPfhl-O!}U!IJtx{ujl*3 z%$Jg;@lecRW+V$qrPaWnH{`^Z>ZUDF%q8Ya{7Xf`OT|DR7P8}93HqaxgWo<6jeQ~{ z`t(YcUZN7TORixOba-E)qr611mK-vV0sV0hiubV?`iIMkC-xSj?dycy?hL*}Ut?#Z z*TtWTM@Rh?ZvO(G-hAedY<z+DHk!poWO-y>5X%6{Tbse$GZrT&6!uIyG){GNSJBkf zB5HE43)L+djm-cB`n~woc<8`FPAdY8deN%K3`H<QgX5Ty3dDb%=xkWXwMBvKbV>!T z);+C1vY696Dfk8_K<=I_!s5K!Cx=fbw&;PwVy;Ld2E3}6s8&g@U{!k3o|72tE9k&l zHrjGN;Z&D#fwx0c$9&S$pZGYeCF4u3bsAGz(wo9^Rcx;nYkXNI|G}vB+An!sk+lqX z^D!(4sVJU=kKkv1Ea8&z;G46qL%MoNpgu#Z-YgU`3&lKOHm}fdR#T&G>syP#K7kH& zGr0d?wA=;eO8_V6mE?SOm+OD#st{f)2Kus){mYdgJ7RmB05$ot=u5_1U-SHto#K=V z^=6Tlh<|#%)j{&%O^W`XxSY$O)RpOg)38!{Je`;*n8a`lG&ENw>RPcI{V%6`7q*Vm zbOT;2YvR12r-Y7OPHk9l=zva^Oz5lHPs}pk;vjfojqYdv{&h@uTP|OBbo^>4=V?Vz z={mEpi^P|0y+9H}JzadRsD|PITSHW_y|2s{aV_YY`%<H^RiQu#-CF?l05>F^8DlIC z!e9J|i#aU>+@)12aIl`M>vB>#Tvt4Cv>5HBUIT7!;Y^@dWQF<$-AbHPqBa$~oh%3k zm59gvj*Wx%((jJu787v%{U!YF|D|lc=uMqpj$1oc%xh1$Eotk>Pn}<lTl+JV+LZtr z*vcidJyYcIW|`dGyLS~r!s+qAF;S)BSp3?;<(R$9=7c|v(^bWzOTr+kQJ0F{J{E+3 z76jxjK9HD!RWUen0(GJ=M}U?#0&x8Y7~>;*-raQP+Nez#&trbzBMkCTe2H%V$q&4Q zK~~sW(^-j3!M2a=H34Xu)xBAHMXGL{)N5Gx9Xr$Mn?J=MVpA~J6+5Xf1?(i(qi2cj z7Etu9BnI;*lnlnOZKUXRsrTRBB~+&g@Ax(^Uw!~+o4r&FA}v73YCeuJxcgHGOGWJ7 zP0+`jVW@tlW59`yVG@;G{z7Em*84OD^Aoh6^b5wZkh+KTK?zmm8}^^xe2ZM_3WrXr zp9Sb}(xXQT_PT|)-QeHqrlqa!6Oj3-_%7o3!u0Z6o)sOBrg~N+CT7~upwj&CBJ~tt z6H0oVO!YGn9ZqO86OCx%MsbV@*mj4##^tB+(TmSVFL2zWnSO~RaxN_H7JfrSV?v<) zeVGrhc`h6%u7tqbs|Au}SSTZK#V)(1D+O#a_tUndNAx>Ely4PI3ciaNehZ!amOF2D zahykimRU74Xf7XNtdUHW5GGx-m*0H`gG{rPt}RKv6!fQ{k^(3E?d7Hz{}Om!LN!}o zz7lbKdw5G-tTTTATRUgZn>$6mZq(7ggE2m^=UwsLDXV-gWWbq<VN#areBGdvdI6KZ zE$N(+#GjVLw`Pzp@T>R(ycAbP{-ww9jEPv67#)`$p#shNQdmnylw522n3pmqrtZPI z&)Au!&2jvcA&*xqtezC4;t`4`HOJCZViLM;6eXe&CHtE3R(JFTC^f_fXi!5wVrm?q zMz8LgvtN>0mT+ZlL6z3GAC2h-C7a25b;K{!X{HLrD9T5qsy|-RObg-f(o*I-guY1W z`-;L`Rp|Gn9dFsPZFDj56nok#P8bti>YusjYxV>h6q1i19*-VusFARLs+Zai>)v2z zikz;DvLlFf(+6^j;3vM2*KxMSu%JrqvyR5(hxSioV$eLz%$4qg$&rP*bKlaY_c29d zl0p0B&_;p`*i)DaMT9StGR&3n=?a)5!@qv3LSfD+^uNn6+LTIfTc-7(86bHO_r7!F z?`rww`vMLzG8rvzyE=ggv1F3T^ur*O?*pOOJ2E^D6q6m0jc`x=GrG;WF;WL&d>u0m zXi#E4LTkLL2Tw}pMv3?Y;SI&;%txH57qKTmV`|3prFUSEEVkO+C1Sw=cM4N6aOe@C zri;@9wh@%fEvsxhdHJI~51)2p_@QA;J*Zn0jC*hvAOp$B4;+I*1lg{GFZk`FYw2+2 zqnQw5{`CuNqK?s&^f>r25gg)P-&E~yd1mqh_hE8nVVchN(_ssAIET>@wPIL5bu!Na zM_@W&sHSMxhmf85PT1NCdzsI4X+{#SZ*&qZ&Il?GEVOlOx(^UlaG=N$0*9`!G%uqc zvZSK3&J@-n;G*AWCVMqL`Q4o`xy#TCw3Wa1N24$Y70Bo^?Co%x<N6UO%vy#1zV!dx zj<B5R5>-((p2K18m*Z;EGbL2;H{9#!P?Z&*iMrINhG0s0NJdB_!@~vb3w53Qzn{<+ z|E7RpmLL8J9dV`8m2$aFOs$4>&#^O^pe-&l-PXBsd|I<FQ%8%L`75v%CN~hO`{16* zAW7i9=M;?9q|iT~j*<Q}vsk(SCKng#uGG94$(H|kZhyKn`5FyVeRVJmWk6v!Uzmj} zV94bwlA>;9e(^#tuf6>Q44b6%?(Izcr>#1U=1XrMgqGgp8Vcfb(Nfmi-UL|H=;TY6 z!Q@IqA4Xs3s6oYMTQVPs*<kG{Q#V1%l2>rEH3baEd_?zH)w=rw?62GUf(F5O5#xG^ zDv%hx)rVlB*D>LE7106cx7weh-!`r_C94+-k&}<2)#=oizB&O{`<xf~K?!U%LJ>nN z6IO_mX$DnAJ&n8dUDJ#VdY#-h^B5ASTY%Ny#Sqplh?q|1dzl|F9f|j<Cf|ShuT*T; zUmn^7l5@|CfUR~2HHjSaaHygE7MaVaq5^^RNHoPMJ(}Bx9e68(fA>QE+=VKpxAOAe ze(U?@XsU4-V5fvCGl3(D)uFX0%g8;`xn~ZhV-lw6ejLd&;7nmE0uDu6{<_9GU%CM% zHyNsX{VVFr+0e!ko-&FFEU@hT_K-IElqrxOj5|f>*z1Ig<)>gd_5SMPERS?PAO{8s z3>96O9R1d11b;*<%1~v!%Um%oa(CG>=fwUh(&fA9zro#n8E8p^!;4}X;m_OUjs33r zfu^08<{h<~t7TgfMA6EVr4OZA_!|e6Molyt#mdXqApGsLvt0O{X{nRqi?C0^;l*6> z8}pJkLf*7Hry#MXpF=cBvHy1W6UvN^|9GttFFPqrL6l3Xw-PJsRL&Bj@he^lRf*=S zqoNIjI@wrJFKLNlQLM6peFO&s>P@Jzs+UeF1jJASTuuHWJN^m5bmc{!rk(=z-H*15 z)-`snqfOLnUTJHxYB`!)7Rsc(i|#dk?`BVD5bnn`>1{@(428Y0d&%vuG5!a%^!6!w z=64EM{`tr&B5qSE<I)g+UYeMP+b-x8LG_o%xmwyhtFAX6qc*L(o%qQHVXe(&dVeLZ zH~!2CrJTO_=5c*V_TDwt-BtD1Fu9|%SfB_!(TkX9C-D!U_g}p}5T05GdbzTuhM_$a zx1O0vIlbbtuF&)~`qsUIa@0YDF+UNdj+u~Xdgia1!Tg@hNx2v(QNT&k07VRL1ay%7 z3kE$!rhU+_Nr(;GwakYvWQo6;NS@q&+c+fTjbR-T&!j5bxpUZDeMj}YcxlQ!5*pH< zZ~jcfdGGc1b2dE&m}O;^e}WzH<gycA&tZvU5zZ)dkSF_r!F}|^+SHRjZavp%zu<Q? z&9o?uHJw_4TU%!d3zx^w)WON_O>3r@Hvze2tHqKU-`VwtCK<P^^J3o|9N=d8iZ^ax zZs>_-()LVD`Utr43%c@CiKbicPSB&!F_eyDkCWG+@kqe-E>$XDcVQor*q2uA+)got z*Y9`9KpP5oSwY(^Lw)R3^Ya)>TB17CO1W)*t!=(c(<EfUYCb8S#!!%ki<Yk5wgi;< zdReciynNpyqknr-hB<E5;pfcr^1AA(7Bwjadwxct^zfx{=9yJz7)ptjr~t(pFStBH zRRH4RW>M!d9Z|rt%r{RQ12ht_u{zrDPnPBy&EL>@`N()w=OpY^52aR2O3&_68PtC) zlx*coFh9>6Xh7lqQW&((cwnGZowLsQ$RAf#N>8~_mm4wzzenqc+bMV)Jks{iG;nME zI&`&FAbDQHLHeMrA2x8IA`t4t-z_YPyU8;6N7C-D>V;8t;OzqKT(=)y6=uL0m5MkG z3q4(er~8qBYJigCdL1Vft`C2pgedNX1(HeSAkc}PNH~UdLwuRw$B{ZB2Z}Y3Z!Y}< zP)RlZE%4ZysqIa9|B;b~kA+hat~+#ap3c2z!Q%y+k*24s>N@pW^ri)VYV`Q0y)Dn6 z?z(7P1L&Xy-8Mnrx%by!fAL`ftzfk3<>LCcfoNQFC^?GG$>LTl5^l~9#Y)dNw<d0n zYBy#+VH@Pcxp3$A6ieSdBHjEOGv@ARO#9;lrCL_{vU$UiM=f)&2yq9U+POPboLx%% zx|my=zDd@P7q776?7H~fep?QPpE6sEi54B5t-eJ-p&|MCrP0KD-&P-GOQubpLfZ3# zmM0<ZJJWmr%)UUee&m~r{{Y0`t5>WY@20lb-@;zT&}DwhT&}vz{ZABZ*D&|-&-$gk zpVAE{lR^N0j#PU1!$g(heZ;QeQW@F7UHZFwTOXz1F2=#6?oJGz5dKL*<yPR*-0!v5 zLrx&aY%KkkY8IcV^zz2u(pC3d44UMq)ZS}_!mzj~K9EN6!`QW!-EML&lkDaJxAHW1 zOmwG_|31ZmkfyteSgr-g39{U?r8&hz+7Blv*HNK;sYSC<MJ%fVWGW0EGl)g<!gNeA z1bvteYsL-t8+6jcjAH84%U3kdR}6s_m@7<nV?9Y_p6Vvsqk{Im5N>JnKlOib@)j^0 zdquo-5uWh9(eTq4<$!>01V6jHXc5JcFWB-4AR?oY=WPK7_Y|Zd+-QK&?418yAd;D= zFD{x4df$J#{qM}&MqD@-<G&N+{$hyfdt17XDMp<62k>S}ju825u##K-h|Q^-JT#8K zTTv93nP?(@lj7-0T(lQ-_&L?V$xMBaljodm-L!~RJU@?;=m5)kKoG>c07GI5a>jm- z7adJArdz%+h!wZKri}W{O!O}<dKfy4c1wGjkR2W<IazCAf{^S2q(4xiq3Lp>#V|&$ z^E=+x?G?f7E>G^mv%#I$Ep&v3Y#&Y%_$M`huA!V>G1yHB{PRlQ)$Z{F?(w){O5{fc z`${jl+AHWo#YhV62H4B8t^IrL)oTk2dbFk>DjxzPQ3>oN(DV}e$yZGu)fr^yeEESw zs^abveXY-*vd}Tdy4&?~?=t^6{=49Gf~Iv<?cY81(afNLGuL~O;*S3q)7PCs>(J&^ zutX1hf&^b*dyjLynoZ=lR!%SBn2cE5+fIB!Px0OLBTs8V(7P#!bLpdZ^#7-Ua^_7; z#CgVWa<3@PDR1tf6w+Q`emqrGBDq&zBjBFNFRY%vD+~!%JvKHSRtniFK*p2jZY{~k zjEa0%%RDm{VMB?q5oIPsJE^yqb3MVajyZRHjT=@qGFuIBc#q~ybzzx4RmQ?DG$++@ zmOB^gMh%y+mJ|isOB(lZ>6{+SoM)W&59gQ7{Bpl)O3=b{+O!}NPAuBc9Bo-X*gM<z z_G`-e<T82NK743P9i>FwT|h{gK=W|s5OU3q<(r873+vQ#58-CVdX|{`RudZEq$g-r zU(xd~0pogD^LMej!x>(NC6QGYA)4MeA{qycD*L{uzQ=bfg!@q)m!FM%I@5hDAM6Y& zCxZ*EoqHjkkD1;M2i{wRUnFdmw;AmGCMx<usHqXEEb+HjDLWG~@5^f{nU;E;$cAfm zIciEW68OY2oSq_=#*rX`jtwh10V$$>U;M0shgvh05N4Lw9B`iMO!Lf?r^EuF!z-tW zy!hq)z8B_^*^)$zrGgs>dV`(3>yhh+q0vbujKplWKpajTZ}2f*844k2$sdi^8t~sG z<T|TW_)JFm7OW6u>d08~$|Z4ZE|=tQtdeBv1ljQV6s8jvr4wqZg(?fg(Z|0iuOYlh zBfL@#-RE=jPFiDC{_kv5Rn7Jvqs`@p0eKd@FO{iv&8WG+)TBwOsyfPVKf5{l5RCV3 zi!CJ+5UAjO0==O~)>*(Q-1%B(YBU^JWf9({)y#`qX>;rPGr+otS^MT%|1B>gcUo!# zzci?~lwg8|{7pjqYx_=rETf+f$s$yvuc_Bk2;)rhK0o>K1I5i@*Vo)!$nQ4qpe7Tb zu&52J!W_@)7D=PpNxTFvIpMUCT>N_?UPEIkjpEf2uu;wa9NKgH>4JI_hI_*PrZ1oM z%xqb#J%yC4nYwQ_5#!@XUqz{^5X+!3eh3_l1x`Yi>LB}f-1lqLEv1Wj(_F!5iU;o# zml4vj(lQR<nZ55#ek7l;sZMA(%<Us|!Gn&?wYzB4xRxWNmIG@(5oxB4<?*}rzr#ZW zz;<u?uMwTCGuaNTPs-VsJQhT--iz}TsE)=Wx*VPBd07hyW3@t6m0{a+_E~<~CP#hh z5>2^;^O~WyZ$LQl5B9-MY*;M`$aVGmW}0~$UQ+?;ycxOnrt@~CThpb+mZcf>-K^pp zY}|5nTphMII$5qeq>CE=MkTDi5b|hPRgWh0j3!`g50j>`$xH3K`QU4LZgBc*r6-sy zyyi^};_a5EX2L4e*K{%BocQi742E|-mo8BMY;u>p`I|0Z3s;ka{7qq<JmC@7+iLB{ z3&$<**x>`W8a2!AB3?*_&0Hj1=j{9P`}rzfQ@ylQqsH4~(ziQn<7>@RiN+Ea<%C!8 z&|SSr%=L@oT64?pT3*Ot*(2+7a~)hB@SA}W?A$L+e_Y+NwpP6}y)iO)<!o)7AKQIL zf;lSWsVDMORU<bjfz21x+a(ZoOF$xe)q{J3#*|Q4<86UZY9@O5jw`iCzVm;Zhj`A3 z$YGcl@8}WrUV~@^AIMajHB{|<b<6C}aNwmy_zL-Y?GUd!(vB5NFyZB*s-L>NxxjE> zx&^{!3eZgZURX0qRTV<xd54cBj~mEDjunx*sdq5eq#XsVUW+_$9baN45R=EvWP0No zf$#M=B73Ytg&RQ#kY~lEfT&P46tzMtc|KSK^7G0~v2#RSJJ%}{V-*Vn&=uf?X>uyN zukq!W$;nZ`YP(`cxxrTq&QWISwK&x%=&vM&P==asHt`q&!xm`XEt<YXBF^&WEOzTE zyyp4kF-EyT(Il9QotiX}5U!d2g6!{`5)!*xXIj!!OZuX3E%6xdhBci)x+N10EA&NW zucdFKDT|T`HB~|txs&ebp6xZ#@7PKw6H*!=ma`52$c`DAg$17qQmL?7ae>0V9Sxa# z4+A<a5NA^W6u0`gDSKLKZo?+#+ixpL;#lxh1Kw^fYNmSr*3||j>XL8o;xS$gleQKR zf9@mln;vJ2PBJAL4h*#jr->hTY*BlA8@R`ebr$z>3fd<YYuSK54aMDMCeM%gSCBTE z57$@W%>kvQCjSg54=ZKH`Wc6WK|jRECr^THUsBh^5>Cp3x9*K`g!;|ahXNff5a0fj zg(w!z30I9`Vxq9=OtX8&MjU7HjAZ%^?(R$S{IFCk_)h&yyH{t$NM&>SW39+j++VM( zmO}W5SU(fS%CaipA9?al+IJpq>dZgqT_d2*d;PQUlQ6kX3je(uKC>(?>B~2ApV;Lu zU&HKs9)ACBB`7e8GnSHH)zz3ZSrpg{%kL6@JTBhTkm~yK)&KfCgbTJa5Xr~jDI2<r zH>noXg!1o`++H!&90IUgAaXPxj~E6*2-jp-L!TV^`nSbsH0n8zcEzHJ%G?&=O`0k1 zzhvy!P+D~3^FlbS0}WBybkdTnxYvYY+~$z)=0U$}A<1EBM`gr^9}>3iDpYR;o=cy9 zUyo+)pl>rtQ%mW0jlpRf9N7J0l;tkv6E8;c_V7yI(U)uTFPg^47`G)R{tGcXh<RX+ ztRMjeAGOrnf_j+i=C5nl?&ecZr+p&LYS+wVPHN?P!kh&TAQ4jOg>ld8&u_PNz7!ES z-5nh4)u#-us&(D37dtE@O>D$+eUf{3B3g9GxJ3SMM(=PZzx(&AoTWbV1>Tj2fXBak z^?T);`_Ua%t5Luwa9PbhP<gWdo#)0_>YB4g&QgQZ<l*_oPKs2gr2oKI+WE)Ywa59? z$NG;ADLj-JJNBkbLzrY1NIA{%_P@Q;DXR?ax;8g+n~xT&#F<etBz1BUipj2`0)O4t zC<t|9L2qS590p_1+6Z@d{Un3$m{$=}L%|FdNdMTMt}If2b=U5QbYf93nR^c~&!c(J zW3Ajn*o`m$eLY(v0Z#-&-o8J-*Fso7S1iu6p#l9IqaTDmIZT#33kb;}Oa=>c-w6N- z@pzjwmH`uy&f8z?M$Iei9>2r>PfB5cD_8X%26)c&zNbwOA(TEx{JV9|Bv7b@Y}1uU zGY%yqpT^|Q5Y8w(oa}e$7>zqMG@zKz^|AezhA#b2#L5t+g9WmKOe&pA?fFFv*A+B* zmtiu*l$i4E;R^%DXxmW{<qG1%_>DfIt2odGw6KtS=J0N|x4KVQJH*=pxld+Or=;dc zyE?P)yt$VLyZXKMiTc7KuD>o0XJH6v$*f*5q2Fquoo(RE`Qz@Lyr|TItu~R6>=G2v zH3Yn8vj5~rL-5sS&j7bx;h8?OiUrE^nl~W1Coc|XatJ8T?9XpdN9c~?YEekurI`#_ zYg*P9s>`8WNVQMYe?1TCzos2xR$+-zR(bb)&M7CsB+M!O3E{97gheIbCE@M0{a5<t zj`z>&6QCdUnuY#ed;4#-ECTxCQDiFFjtta`s?Tg$Y3tJ@J0*FyGq_IF1P6qU8e^hR ztON=PAR4vAkzQ_&<a91YwPbdIq@vpq)nEGj?a$0xhl7_akj@EQURhgLvW;!BY|YwK zZgqj83sn1wmfcm^?)V=ypYgM+{LHzUwD?e5b8gY&T_<;dq{nW**kmE;OF)rnAd@~B zX=Nt%_|?f>mY&tT8Bn6}CmLv_9%WPE&o0=PtamI&{aP4o)8`5><_buCy=ph^y>DT5 zH;nmUfxMb7o*MqPlz?+Q3~Viy@TjY~vXJqull%LjMg3W57FV}=@>4OG4M}@}ur}6# z#pQ^o!KkQ#X%<(U8(8h~d&*`9QKT9hK~VxIUEK(XacjR>fS;3q3R1^fvdff``B(?3 z{IJ&8kcz02hAdF^C)Ooj{IhY<tWK=-*G}?2e{lTt;CUY;hKe>~C3uwpYEv!ig>)?a zjO+&yY{a9GDx*N$VZqHjgHb+%wKUtP_xoL;W`4uLUoDU~z~6PVq_VD-;i@Ljf_qpA zOwq%t8F=FuwDD89*8#*9s16%Wzqr2k_tVh*v+QrM3wb=-Je?a`d~=HL<T2=T{`JVd zdgWG9(C3D*9QN!dJFRv;u-79y<bY)Kq*|(BUGK<&R`QV!%SZcJ2Zzd8(XPX$*D807 zl4Vapom_&A#z9?;oTW@&ogA|4(M(fS%^;`f(72Q%vXq11XCg>T+h)nnR#1h6?iTj! zj$P#}zpX)ZsU4NePN12%%t>Jhp|He=sDrTEtkH`qWOL<c2!={Re0FCpx68-IByY~) zMUtYdSzNK|$%>+-#D8L!ettG!CE!W`)v2Pj81)$F>Q$fVv(lQU;g*;S(_z$DAiL3* zgm?-%_$&b@a(IBNNTWC=dW@C83T+&<2p(eiYQh1hJ=;0HXsI6c&2FlHowSqz)4d$t zW5RyExy}eC*b-TygWE4!`aL9wgP=RH5L5fMG*CaOE=SoQ4?NR(vSdsvSinW4C1|C1 zo(<!9YKifw4nk`4{`}}6BB3xQdYGNSA`ui1GkQyRu{=;p<H=6DnTy-9C_EYb)RGUW zDS{p~tgidbf~vTVqv!-eB+JNQyhhPU^l@#(_`Z%j-#YooDMi`*?Fc5fCEui$n^ud_ z*7QQ?L6+g6qJd)p*JNBgw5`_wzH}D};vk4m1SxARk34N{{yIAN`1kZ|@DDmwZk);b z)z<WXr$fOVaq!#wuf0gM|CVi&vx%@@^UB@POqW#BfO?nD!~Ng#xoL)I6W_<1)d2Ib z&wTXruw-i}r1vcs?a1<H0XGCc8ujy1Caw-54;BfpblQ+gnafBdb!@_R83B%QZ1`Eb zTV0VZ%@Vo;gwrskEs+39ZopF1Z1&}8%;CSy4g&F{WljxCh=yfQaUJ9f_&QH_?qt`d zzAXJaYf6)kVcPSi?m#$3Ae;=VqOMO9KEQ+Pf5gS34F_n$`%=qR7@{%1>);IO;J}LV zjOM-H<*x)>_IV7hj0w5vjiJ+v1>R}ZU+1HQQ4CREjZMaqk5={X7fssyKi$%Z*?#WT zB^9&`pTA$bCs1~He!u<Q$q#S*^(s7NeeAqF#A<#c@;v+atKiYlfa^^Yc*b?#xH`Tn zbU^P-?@Ufd?RFcDP#Avv2CwidEGL+*aN)ptOdly1agXfN+ZSJ6)uh1#)8KuhTpP5} zx8nZ#0v$W231dS?g)~M+Rf3V<fA9V~vUU+<s4QQxow@y(zKz!3TGCX0p^TS15n8Z! zWHNmxK`r5Pf3~yt<A=%5_R0Y7i)j)di9-`d$x3kr%PCHEcZDuSg|3W6Ba7eKa<L|; z^#l2V0nV<0yy}nrE?iTZasW*^<CK0>gF#nto8Hv^b+z#tad3jUf<4sooH@+yF;e6c z%#^7dz*L?CG=QdiZvB-x=lyGXJMkiVDHS(|{Xt{wvaDIc-BtJ+s{l^=lG_`-Rkt_M z4!NE6pB!^L^yb^q^*#JZx%QD#$0TwbuuXOHx~2{uSO-6ZFM$8AMVeH(zdpIl@Wo0e zr|in3nCP$R*<;ivx_b_{7X{s4buqr`lASi<w(JY5g=E0{mMXT&S0sCPcV88V%n(gn zjEk>HZ3y#Wb;3#aD($^KiS)uumC6B1<>5+i@1;no+QEQ!Fk*hDhVKOqYXv@IMFf>u z5>M}XGUHL^+FB8@tuCdhE~QSrvb)G;qzH$mX?z(VzAPtRCu?NB3E#7W&#a`rTO5ud z4kz0z#Vvsgw+6|<NkQOWIE68|wG7WQ7rOJo;q*zu=}&L)e7$hJJk2(j@Py$qeWjje z@AsY{e98bmWsJYH8vrfCzyvLvSS|Ue#Qm<f=G0{X>N3U=O@wOcteCe3k%sQH(cycH zTTPrRO`OTF{aM-CY>Z6No=;!|>rcQBz<5%(6eZ;0!x}MpawdLkW<=^%-?F}!py5|q ze@n%n{vyo2A|_VB!fHY%0xzQi_@USv=T)(c${$N4j$)Bi4q$)-INVeF$v{TN4P;aY zFsegp#v07G@>mv$xv7S;riMf2u+f+JVOTy0R*b1x92_o6#?(EQcxy2)t!dg_3g|9n z#8gjYbbhS@u9?sYoX{ct%qsh|@$T~Qy!t4c;fw8qA_{}e$T1B+@4H<1%gwepOdnMo zPgR^r^E{p3QRVLV6?~LAd}zocQuC(cdl9~^Af>4wC8WL-t^O;Rg3ptJpVunaQqr1o zXev?)5GiFGQR)LYSIzb4YhmbXk@d#k1aR^A>j3<9NdGc_gWqF6J1~_l1xS~MV<<m{ zJU=ikC<PRhGQL!6tr}<t_f0M?Y={f6W_I*=f)NAL#Z8(|d^B)8HRMNqXmT36)2PFX znH0neo1cZevg<L{!7$b#JI!-f%bB$N_Cm#w2LuOz;1+oWXot&-*0dz}=^GfI>M7>L z*XJ$EgX>ez?0JO4LSDj2i8wZ{5$(_R3c`XRrI<XWOrc7JVOp!PJKy`QL?3&XnY-$C z2j0>(@0QSSIsCxfR6x2&?4qAY#T#<h-)Hu0`5c1f%&q(}rp8`3MS5!G^|!v5C<_kP zEmVkv0{mK<zos)AXYTa0g2Trt*;cx^lIu@dm#lsd9QEsSIIVAy1j1#oE5e<Y+pVJ{ zU=cE9n9^mzPqijp_Or4+dJxo)g&|7H03~INvhcHA$M<P^j!Q;>f-*)Xcqd;SjzSr} zbXi0v6a4>L_+YJ>ED|c$N&2P={F;i0RLhx1(4a3I!xz2$%covlbN6k3f%~j2)EFv9 znNbFsQ9=kgBduNDtF-bR+N!Z7H{!=OMx<6GftI$4$W`9rD89vkP3;>y+D{`TDlx?? znYKR=X~sBx!)7WECo||+LACb=Y&-+9K^g1unbP`Gd(*!fjU7bucj>PC;&JJcnb+dB z><OD-dca9rIlrBcuJ=>umx85B!6nKw_Z(q{J+;j6KxTN~i_(Wb0#>>BrnwPR1oHnw zMl9uF*#C8$#keXB@6j0jEMuR)-jF7dZak)2A1RiCyR7rHRVA3`865BoZt*SeUFWab zt@r-U-m_IW>D9}Tn=`lG922+8kzcHKXpgVB+>7xYi}CZsew)x86DBQ&^nTO9_@*O6 zQ6x%HW4B{pCG$aw<lxCGCra$u68wphh*X6cZGN=xNfI!9*srEv1D37<BZA>?8Q~h& zHx|=<E&_%XjKIq$?i9kvU}reGh;9SBJ-6})2k1;UNb+rJBRH@TjHrOW<!YWS>84ZC zN9&uFV^)+0TN{z(S<j6u-_$UGRm~`+(MG^8e|&|VT!|lBiJxaH-%|DbH1gcnWi36e zck-&nnB4Wc>47i6O(e7eKd=Iy$wEFRk3Pzsh={oVUgRZ3re{z+7?C*x(7;n~0_af6 z<wR)Ru0%Is$@<qf9^9`<nRE^YIA>+K16llhpN8n-1nT0DHE5j?&3h1&w(e&8I=Sh8 zHhK)+to-WeQWCyc-4E2o0P2z@)cnIfmRvNx4g21|x4Rxv)J*GNxxeR()yqN0Um0BT z!4i*fRn%S#hA=3{HYjHqc^l=qq};n5JCgDmt#J2WwIz;b7cGQgIksVW)WTb@JVm-R zE=V^Vvl|Y?cqKcW#{3+_TCdDluMA8}63b20uL8?dfz6#~s>+KM@o@H+-T%RH2r}&b z=l1VZm{hn7lNb$?LPm5ii)eg7Uwr>w9vHTQu8@6haiHWn<=8sq_{5}x_?D(h)b=dN zs?FK)-SAINtu;=qZpvJ)*Wcabc`GTnYv<s>bMS$VDh=C0YotIGkiUwz$mx7F7GYVA zZCM`0VYo-MC&LF`f5Oeneai{?0mu9S2YS7d<v-^87^<bQlG(Dp72=)QvggxgRdsX! zkL6l?ANc(pXy_dXzCCg&Nv4qXv8c6AK@U$sPf4KdVv)1|P8aV^SLt_i=$}M{S2?y< zdDO6>63)(r5@Z05Ie^~wRAHoRWx8WbfXxGEs|Lb6lXr}pcN6D#z&$%)bIG~KC2moW zZl|(l=Sb@Qxl{*d1W_%Jur}Tz+|R}crW%_h9h<}wZ2Q9qW}BE~nwXRp#fuJV?mzLW zh#EE*H@ccL383RH*R8j~Cx$vy3Ast3)bLXDnK@;cIgvEfjmy<L27_Jj#urxqGWrRh z*bAC$?W&oVRbZD@M8PaS1hs0Ar(SV;O3f>5drygMeCvENF|M5FJ`kbuF#8JD>7`8O zZ8t>8dK?4r(FHE>*`&G!Y@M<(2MrFSugy5D-@H4N?MWm+s~-5g2YJ2+O^W3+I6pT^ z5VJXUX}V;#%}X-POOhi;ImMfdUouA(CIuEILAbb8NQeJGsdP9obU2YYZ~s8alJ!+M zWmGuL-@bjkraQF;omg8&K^M=RmBbgDjEvyTVh%svXN>uZ-1A5+ysK)8e7dC6{QTeu zKlrQ@1N3Z8nRIR>wMDRdC6MRL_K0j?QMr3@glZ)jG~aPVc1#-hLwCTpNdw{Y26^8I zylaf#tv>(SncGKbh(~BhZ9b1{9pebbfmX7J+F;9?F4A-BLjUYA^j1x{XJ~12FWYQE z$85H?2}It4Y^#z?tCHkgDpTlG7HF7N>yo7FlH}s;exS${7L=tIl$l1F!UmqI*n$*o zK`_KY7v$USTfE)3)Nkf)9HMFpb%P6af!qS$kaTWhXJ+pH64mr8Z3%r}{|NhF=Ib6O z!8jrLy66^=THxEcE9!Q~EyEqs?hKuF&?t1!b@`WJmnkBn&52BZdu-)Hi})H!TZ~|w z8=-2w*b`VvwdM@6=0wUZ($m-<RwS)eBthQWy(SWRHla*9p&TEW+?m_+$pG(@0X6fe zy8!?4Aog0?{a!U1IKju5YWdrEtPYrA2}-pDO>!O7D2SUiJ0TZpf%CQTL(#BH1A#w> zW1*XL=FbiX0XvGOLnEEM79gu3Wz!*LrZ);p;0Z#Y-&eoEjpP?>5S~HhJdpv$z5VxF zKRaK4wev{SS+8LrAdF4|L?_8PM)^Kzs_sV$VTd6>!U)hLnR%vf^Cl}l+221{>K=ig zk{~P<kNZeaHISt`p53d~U2t~H#P7p0HuY`U#?liDJ!<B5+?F!oON<V<)_Uc!UZec; zt6OMI5j?mE4iu;)zNfc$AS*Wjl^9s6j?t_sY#!pu>82rvMjUBWkewC4jtbswOUUHs zeV@}LELNc>waof=F*Bcf7?!m4m2EAPOf8erDk?;uXb$1nhxWGV;<f22%`~!JzLwgE zHZXlrj{TyXWkcUcnTo|^)Vbiu>vgRMJlF#c?BrC&Ud$(2dJSI~JPbyUx&o&@t-5hI z<FSWh+QSDN%lpdryc6LnFb7CmYUQfXM_AJviLS3-Bz?T@md_R${BM$t&~<>ZXv$fp z^y><SvyVdl8@$6}lb@(l&Pz@@)%}?{`@g^)VWv*cB-lK9wrXYCV%H~#k6Y0Y1p77O z_1fR_=HIQk9(PfI#Dm81ayNw@9)+G#K}$iQLx5sCo&GLZW*2NOs~5UB$$v#8D~?a7 zGN_(CzWQoOGltf&I)Gvf+oiW}n0mCD*UJAlwapJlCTpa84N$IzH{t038VuMf?Ue)> z`8XG%?d}lJRxEVUL4MJ$eA2F*w+bTg&fgD4*UmaTbG_OA_s>@>ZdO$=OXu-hGkmoz z%iBibTfqMSq-S>S`Z%02IGji@Ri`^Poq>2nVjffS|Nog(y0{ztdk@kc<-Df~B*9|G zfk)NA!|HhJ0GJJNbAkQ^SmpwZtV;oZVD2;$3po^xDy;^VRM$!EALxE}D+U|H*zu1U z@bPqCSSwcqCFKMqL5R3C5|5{&zS%oikQdc6C1jXXAd_;CNpfnc(|Vzo(+>#U3T)j9 zmO2F9y2XdUT6W!FcHIHFT5(v-qCjS!3@zvF^uRn$|21`DO?=rWvRB+kM6o6@PUE;Z z6)a%Wct`ARBfFDp+jDzkk^!{VbOoC2N0YUpwa!KILSJdCTQV+s1KZq`yt|uKj?lJ? zt{<<do7FT(E&SQMDf-}9H!EYHS~w<EVSJ5BnWGYAqHA{bGP!D?S|A`p6OU(^&S&`L zj0Rfh1*7L9kh~++PV&~?@SQ9HXlciL1y8V&)%2~JV$sa<X9Vpz`Jt9tcVT+$yE305 zm2%w`%ev<08QfT2w7CpfnPa;7VI<|*X3+%dHR=KwSvJ7wQg`u`qLzSbAm49w9=HHT znT>2gSz97$d_{ZN%+C7u=8U+VvQzMfGQ0_$1S++efXZ)WKe2U6@nA`L@3eNa1;oA- zv8CuSEMiE`p`7$YTRjAOB7S01pgY9z@;@2%+xWf>8*NP<*QgN?!1!n*+fYQ6+q7^J zx0XV;BfD0_DrX;|>29ywxAGIaqjcD~vlQ>5h;>a(Eqo<0P7d3xUbMAE)bYH5E}<(u zt0UV%C`A0J;?G5?1MpD($Los=4VP+6^=?K@H3TMn1MZkj7svfN<<x%8)Wr?sR&;^; zh5DSdni}Hg&*+-(QH(i}C&SMV7Uw@M7q~dQ#w}n4D5@a>b&7<SZKfOYHls+?f3j@L z{pRovO{T_zkpuErA&lV4!=+^Ed>FZOK5N<pJNiYej!R}EOOe}fEctBR`vLxBMxy%A zFggKZt&xy=fiCshhkRaAgcoO%_ini9U(_{Pht1M4g;ma@R7C-yN0Z4XqnzGXfM(eU zj9W9(sv+vg_ITR1Q;WZ!FQKsOPhS;9vPwT!L%5P*mAZsI>0I^Qk_<}aNC#;1BO&sm zvg6~cwFF3QLMr(LRRywFTf_TU?Xkk0fd>4@H2F`m4<SZenWlkM>3!k351c$jfvnOP zY6yynz+xqJo_~B8TknBy{GaywwCjISKbS2n1GW$Bl_?Z2KOyzK?>)S8^r`u7dmb(3 z9riK@Pg<Is37cO;YxA-bwQ7cKjrnwfB@|HmJ$z+4*y{1+-SKcq+tT4pm<#2EOac|% z&w%^hZ$Gd<W#hrFa*a%=#tkdpH|}_@xr?_6l+Aq3F78@3pL~y*_u~`$%>=?Zo3-e7 z5o>;cNv8ccW6k^32OUGQ>G;QsXjC>Hl@xj2-~5<Qd7t5W$kpc=3H3*IF6#n>#RRWk zGG?;%Jfx8xF?g|rUzUE=t3UT;Nfo<c)5l5=#N|hRK);dwJ-Ey2WbbRxBJ6rSPI&Wp zx}RBd@YPDnG_@QxvzF>{Yg=*Hne`(5eQ(MQZ&sSVpN}M#9UNQ)v8e(~6Ra^=Ct0k3 zM`fmGGv9@zJcv`^5UUKV?)gdVntVJmu@O?c&^R_idNqJ}I%!Y-C;gV!GxI#@foA+j zYK8ktyc#8bj09_0e&p8V{0VKKA^diDH^=4){gMquOAO&fB<mX5y#A8_J^EtL?g&;$ z1^aDMKz;g;mHKM1`W}E*Exaa9I9)ZB!^lZnbQ{Imjb0=ju%`ItY{tUZJAZgt-3UQy z0OfSj+=7Oa{R}yk{TUx8gx28I6!u9W9+?U6nM5;s+6)nH53dZh21Tc_U5k`d-|w^i zB2=QwS0|UwVwL;J@$#9y)?m>zwra7`sO!E|qiN0uOf;$DDL<Sja6Iv+(TqQ@cY|1Y z3_S|_vb86D8k@gZN!5jB?ce4o@vCW;ZC=Z+JEb%_T6J=sOjfyGq|i-wWq7JxI$)6> zS*zCmHkKLY`ubE#!6l`{qwrrx{=3wG^#8}zSq8-swC#Fv*9{he1h)W-2PZ7<7Tj6f z3AVT-XmDAa;FjR7A-GHM;O_2r_I<za)TuiEdUketx~gTmpT7IL0k1soFI4K*4&?ux zGLbOkF^Gee!of+R>G*$KshVuo(dTa73Bx@g7(<xhyQ}icS_@QS@3hpKY}iOrgqm&Z zvngWO`K>NzPO)x7JM@iy?HmCs7<3BL1Lb+)G5{g{x~UrwYD#I$x+3nc8M+-kNG!pD z!MvU5>eD^OmyATD-jNw(Sh-wu^8uskKS}3tN5ktTiS-yjt~QVcN*`lyrrL@$ESw$m zT!C??3(U*uZ4LSN6x~~a5e~nCN!cAPKzjW!#A_IQq-q#Q2h#xwyzgmr6KUm0%T$aH zLn$gS1ayFTAu|sCF@CKsQ>d4=gxr;=P0Iq?!MeN=X<Cx(DP4Rs$o6G&BSkcC#(5K} z>j_8w@f*MFnm(HU>j~m5!?4x_mPxzQSp;CwRtfVWc-wwTDsD-x{`tU9B3;+H&W8+3 zP6x2^MpUamYjcfADFsHQ_cWDkVflbMb;kKevyX1_C}aA<>Xkk2Z*rgCW;o=SIN2hu zz{fQu9OqJ(2Sg6rPuF>}sc+wgA%on4dy6r`;ltJ)PuENj9Iju4LExBYIJyRBNxI=A z#fcgRArxZ(lz}vBU@X*?x_@%KQM}^N``~U2!lYshEpK^rTW;g^?};5hF;ZxXP78bF z{~{-qV5mhTZ2m(#Y-z_`V9>83<3-@M{lt?mAYlnJ{Qc%HGE)ggd~n{I>?NZ9j%j3H zcmwo2=&bIQpGHn9!cemzlmW`$mK%mP{;ZdA*MexPW%^23r^CZrE(PdzI0wuRR$}df z*_53LeXhF))iXQ@<u;${(ygWNxQu*|8tldn!e1U9#ESdJ>BNLg=4}wG;H_HdJg>}2 znLL?1+cy89xkU+MoOEnMTu>>zAaTdrZPNaKxh%_(E&W<;_pXS_=i<Uj;XN9kdiF~t zqN|TIUu_<(zeh9xX|XL6N+KD8xv-3P{Kg(XzqVly(fc)*(ANIl-aAR;+SVshLxE^_ z9R0mENUF)FJ74y!%;ri2Yspe189hz`>lvkX+w*iciaTFM#t60cmGD!}O$m6Jq;))t zA~sJ8KxW-zZ?yIu@Kdf$3Btba>#yD>vz5(9Qtx%6Dg6uS#S>KMU<%=sr$TkfAQr*) z?|>mgvhTP~-O^G>qo{8&b9^E!k~Obpj%*e_A(QFcVZYlfBUCtX>m3dyi7X43NFf$g z0BW(C?lFR-;Xi7t0N-j6&^fOI1qkXlXtVw_meR;Rb{G5QIVR&K7V(tQ3|w?udFQ$D z!W8wA*#_3St<KsbwP(br=ycZ;*$CPRzxj7rnMJ+b(ptY{At=jBdio#tg!RS(2_quW zO2TAjL_9AieYbYs&bB8wy?ZgXqsblcyv{_bYQFk`%))V>+jAuA?b>~+gi(qp2T+Z< zk796=aEO{$AtycJ*Bgh5<Ymku>TUTP*V{4$tykYT;zE@uu!;OTqEJt7;iX7BvR51Q zi@Ymum&z^8>v6O}m4_`E&0_0Re(w*TwK}MU<Z~z@t~47DdMiImuq25Roy_Evz1&kT z%jKMK5ojLG=$KUm`xf|$4s9u$T0I;*C~4K6>ZZ&%r{L&s64zECVG*WZV0^ID!f6*T zXHkl4N>VWZ{bU)Aj5aAXa6_uWAJm!*IV$q?h+6;LYKcns+`Bb)LV?S_>QjJ8SagBG zjcN(O<dx}^LrGJ=S0t;gCmbGkT+xaXO;*WCEBN5i9DG#b>p@4OTUWQDd?jXY`=PS| zRZio+KyIsc{*qtL+?7T4=TPx143_M$Qz3d)BI46N=(<!?w?dfmFX4b%$Sx-<;woj& zv}05H-~FN{g@xlWH~-|0Ji4IFbXmyAFF#90J%eb@`41JiT#Ywr83PUxw1d>tQ+>a` z#6{Mt^n#tEKHnI)VF}9iEHawqmGqJYeEB(FHvXAyU}<sJfhJvR%c<vcJFl5Uj`*V} zLj2f9e`X;L)&uI|El#*Ku?VI=koXIF-6?)gQ-vW>L^V6}PXum>8h+6Q4W$pWf2|j} z-U7GmH{Cp<hlY6G8+vvttIXAAr*i=5TsMIq)&3p)xNjlw=-3%Xra;&fLIfAsb&jTD zv>^9+VuYK_1;W!02z|Fm;pnNFSB~apmqZrco3+Aflkm27cs*mk;NSV+)A7_duGr#K zZM?4(*YRCt6-0M9s~Yn7`w>#QB=P0f>+u6ROniaY<-SV9j^Q{G*$`o~6%k}x-pCrP z7v^B_w9B{0NxEtpu4XWp&wqs4joOZU=z{?&unUynB)<YwoFeqd{#;H#MX(*<Y=ned zIr>2vYxNCJ#9lkl$QB-=-~Flo)^sWnQ!m=z2l$EbJE)9WLcU(Ku<s4qCyd5g{o2u; zf`|L#tJ!PUcCW_FoQB=vj%NQQ`@bI3hP#&#?xmTArLd#<-~v0psqbn!V1cqR(WO0u z{l-qn_{aivqh5}_`TWcn=A0D0x#y!p+*yT+mqlA-aPhj0+EZz<>@;rVPkG7$!9xv- zg|fWRzrpzIHJ8H+`(JpCwGHbSK6|i9#i3#4pbfqwq9^VT!|>T$X&T@7qBmpf&m(ce z=6gdYq?u%G0Ia)oyI(2IFfgcPagWo$%F!^N`U@B=Lr<_?Ph?U{%rmsy>v%oy-<L?l zNPjcov31$rNFu?<?#s8rDxvj!DS^xGi_5^G*|Yn2yqDW?H^W=0m$k4j;dh>4cWNEt zz+zXju+Vzg%Pa&Wkzio=WnhTZszX1#sb4pC?7yJ?v!+czci7E%Na|XD_)~OMK4vW@ zCS8?#HkbOCMD(~H@RJQ;m-L(^7~A*`o9ePYL4Mr-2XhFr(E~CiunyI_Y>1jDRg?%g zQ!%2XHT@fKRC;e7^VSHpx#g-^kij0Z0G_J;#{Xldd>t}@!Q{snSmJqX)%%&u;tqan z1U8kd3H8UpOYq-M^dC8SoA(W^wB@Q)P}+@t&N(xOq*!K#_SkFAQg-ckMsrohaBYL$ zWljvWVXCMhFo*-X>F!M1Q9fE0d1~h2@9*t;>7z7!UErMoiKR`FC}Q_3Vt6oqT&Pw@ zO>4PI6GZjHQT@mup_hGEr)be!#uy%myy|x{_>*z>KX}#-k-_Rs4D;1=xd|lL9i=$- z@!O4A<TU68H}B+T-g3Im_?Ac3syE}55OX56m5T3J41#g%r_R?sHxCYaV>}4q)?LK- zx#q`cN{5&t2g0rAi19~Fz6zi71-~S@2@=>{hxiBvdEPIy2;U9hN8JZP<o$Bxt)+NN z(n_4L3R{Aj2V(g(j2S`Mbzn|+#2txWkhErC#h)>qtPoAH^U`c||H*t`&*tWL?O7kj znjs`X7xZlx^x;F=w>56%HR#S9>n<GC#{U$Mo8V>=snnZB!Op*cxvlFvLR&2x;N_#1 z*6ZyZG5PUT8u9K>nQmkPjEo6w{(d{CvwMw}H$jzIcdc3QKqP2mRCQNL)oT+=MVKqk zXZ=2T1r<`?QQ<QRf3P)FrWKjsn6SWH&#<sl_h;6dtx-#V9QKevc`AGtgUpVu+mpBd z*x?JE3J%L_$0iPC!#3kg(WdLj0bE}~WYO~=VAx-8G?`V$!gb3UR<EuwjPWoG7Ak2x z=5}{XWY9VaNP?)Rg(Q1f5XB63W(Et7Fh#0UM!2UJzNatQnwx~VmVLUW1U-~_*9y3D zj6PXW%T{Ke5^8otefH<Kd}LC%55YcMXD0}0{pQ6UY=7X+PB7h^P-)k`80s@3t<^w1 z18q@I-T$RrIrQsz!!eN{XokLRhQ8!8$^Fj`|I$}shaN*@`_wc0RO%YTI{vhq>6^K7 zM4qs<zl@GmR2kwMghm^LkI7A7Y8MO+7mU0fDIe)Ym(Jl^3~inP56X2yi_mg~!{5q7 z2p#mo9rQO*P7#1rLdsP_kgwf9@?RR~`cTh$FoU+;BbN~ePxfnd8pj-bqnn+hMD)95 z|9{M~^o6V&HnNXCe+3puoPNQ`n}(cFU7K~rqR^$D(WO!+7*Gt6wuRO67aL*tw|^AM za<DuZ*TSr1|JZqq&Xr%>3XVRJ$0{~Tixs^VE$yM7rOE9GE$#qEKgdUI&a$lZ%(T*Q z{to5;4Q2pF8~&o^hE6Hq%W(|VJIJX07qsaJH%+-d&vo=Wpp>QLR6s_DouR|1X-vpc zO(0_E<(Lcut=T9*FmW{H_6^D(3eRk>TyL#;Y6YKj1^iwP=$q?_!R_mB0Z74D$JHDX zJsl6mf((cU3SI{aN2w2l2-oz&*Yx3kNhAV2l~iXQG7StU?5%7L-g<k0guLrKoFp@L zu<+8&CxCiCs8M{-6;<DJQmz9S!5t!<nGQva88hB)k$xBPky^+SpKs)0xh$q_pnrmO z3~c@QFC7BQnY`5>dtaAwjFew5{-~%JtMp^MN7aO#X~J^VO)=iH&rb8Frt&*3g;2C! zy{ar)ej&g&?FO3CNQYiGkcoUqD>4kv-Cc_Z5lHqyJMoz`3Z+P{NQGq>%--obO+M4| zro-<BaY>*I5iV-al_{4Wc#DL|>otmv8+AUJK0Iu5^dEWd062k^oIuU4=((3BJb#Lx zyTk03hqw8!{#^fyF?xM~KAeh)`tkX>KOJqK+j(%XOpJuijUcOWYlPB+@|%YPJg<=d zk>8J(!<p%H+A7pt!=e4d$OIg~5jV%h?7$_5jGuV;I+oq~mciC(pkVmAzGOQ~Byg9* zNM+c_6*6&qPMsbeWc><sgRGTfoR&wxDsNO0S&@R2yn>W^kQ-F^v{84`&vw$O)9s>% zpaI0CQ~jRPImRzn4|il@-;ul1&$`p8G3`Fmw3XG!v~JAts{C61aJUmeWi+vHew9u= zW%ow=X@%|n_<lP>k(tYRG1PMrdD7<bY9$$|U&*Uq37?`-<yPxs*K%n8G8o%)n0(#D zX$WD7L3oMbrn{j&$Is$5mwYRYpTK<O#ik}8w;Q9f8zTYpw$$RaD*?EY00b+XB>Jl1 zwtZZ0|0r>_v*!aB3ieZuHHtl5eGqy@GsrqK$O?CHw|Vdrel=!G5#vY^8%aIovofWk z4#+2md39%a1zT)vmwi78u0vRUSRZJ;$$C}Ff=;umPWW8V<xt1_ek9-YVV@8=J@$N= z!#jD2N~EgE&Dq%(lgN90L9@8&0=`)Rz5%J6<uKNwQ3#CVN0Lg;2UvDqCzhI`E_15@ zBT1D8urEI^cM^?ckzI_Py?1}Pd+LR2QJ$QiHpZxw{AdvGRlV+2d$#_pWQQ-M+E%y0 zWkD+zx8a}kt|V3`6e4IC=q+PK>%+(a5#2};W}V`B=z-w%Ag}~7A;uv&q4q1<#*ed& zAK?*UZBnLMc4J2ORDkeqr0`&LYV{PmUpto}v;I~of_vs(e^q-_|GcN1rr!2RR>jx) z)IBp&EiPJx^0g5KWs>+vwRN7g5>Z0cOG32=`8R^2cNYrgI7+0Vfyu+c9RT+YCGH!L z0H?eAQ%gDjSPaX6W;WUz5M>-~^lE)orpN@LKtQ)pK=9s^JFLV?g%&wI=PW&k+SWg` z7ugSUlZN^=l<^fD{iG08Ok!k!ES-BMolE^TC{+Ams!1vk5i=Gsk`z+_oJd(9iFb!V zvnJEj_dolyflH}>CP_7Cs@B&T9{{&N%3I)L?=v{?5hL~ygXTo0Y2(lOE{*eJsOMvk z|FS4SlV5kMU+~_I+G2v~dk%s--|k1>;Jr(TMfato5smYGsOLTM<aWMH+L$FWQ_dMv z4t1XI^Y9uC=Y1&ueUHDAC;`m3JHt2F`l9rNUA=04)67F_Zl7&f7!j)C1y#Y{7x~0F z@mPWA!b+{Y>qIilk{d07;ytI}6U=m69kMv0t#9_>$n411Q(^TZ6H>McG+TwxyJO_o zaV0B+EAF`<_1Qx4=8<R7kZdnt>M$Uo<n?+L?jX9KNV%T~DyV$*&_;!2U%|5J%%EkD z2@&?1@z|Uq`ydgyo-3xW<J)fr#pe=@<`N%gt}Sv8<th*5@_xxQmDo(b;aa;a*uA8S zA3r?9jiZ78uQk!AH4%IqbN4GDgfRiZj#0#pF`@#_1d_y~&QPL5+Ej*aD)&XVA{-d5 zEy$fN48p8ZZ@yT-JmV2O8AUu9BmNnN?F47}B26hnr<D6-Ti-i+$8`#8F><T94_>l! zi60io99m%iG|xP3F&ft<?@;K$<rr|!ZcGHN#0VfHDl!a;HzXQ0B!U-yg$xb)>tfys z?%xZ_Z5^V!TDy6$3xBK~wbW8+wJ1om04&JiEew)cq!Q0631UFA$<XP^0A5o_UJ2-H z1RMKy2U4hX*;jPg(eYkLbq7H~jO{^;=BP#+yp+M}2?%+NB6*DF;VUs+Uv`^<%S0yv zWdY}Mc;|zpJ*o6V(Mbu|Fp>Q<5jl&SJ+%ULd9I1ug1K8dwbetTFCP6|an}W@*A|Mi z<arpFHPxvXbZSG1b(2@`ndr&Tp;K5;E{471#ph3}Tbr?mf}Os#A}brY9-xeA5l8kp z_uncRYsHt_a^DyPOdblX9_Zrt^RaAh`Fi;|6g!ANQa=?iK3SZG8aMELIJ+;ny|*|O zrD}D+;uPHniOTif?QtW8m~eAZKNc`P(j^}a*MDa}<%5z51WXA9aP2%DN5;NPsFBOx znt#;mhksa5B;?*8-!F;XPQs_E_$pZPG#>`=1l!%QTUfL4;SMixl!&eF*s|jLa^iAy z2*Z?b`?o0ixHtiY`~b)ZKru2VfHrt6Nc(|KZhv?c1<zMx-%o_>@_H&RrN^eOYa(%F zA`vWE`KL*$+mVXQ#B0jjD<OPcP5N!3=i|Wt)Fo)aF}$BgHZ40p5gZfa%<DEHhyp)% zww6g3>_%Zr(h0$=N$+2$!w4G=7)B~rf|e^KR5XZMWg$8#L7kKm+ITN2G*%z|ET}8x zI4TEWZG8);Zg!vPhJR6!HQ7$J+9vFkEj+Hm=1&0#F$^Lx3=sl)VO$M3dO5BB7J)zH zVt>fNVP)aPsfJ=)RpSMX<8+gvw8&FSe>HM5<tj4=VXl1OY03gAj)Xy&Y>LPCu%!?h zBuho8rD6iC`bk>^&|QGmZGnxh;9C>648O&z2<25IoZ%EK`M5^;hV0CA>e4h}AZ#*U z(HM&&*JLW+Bq2Q5okOVA{2jj06woLE>~*ag8=`r*%|@13JB3HR55bGXMrYl}U?roi zm<kT+P&M{Zwdhil8;5(T%OrD`_}t|F^UWXNETSOQnj+WYveZ0&OJ2C7B>AfaJ(^|z zI|~_i*+ppD$_=V*(v@vebg7!nS1bOGpmVzRb2_;`jh8-t)r<n|3=2hvMc%yWcH7;h zaKZ`YscGc|Ss^vd90ywYTw%FN;X&91PY;lwz<gX#j^+@q5R0JQL)fPi*{3rv0G>)w z+tA933(Khp%h8;JeN6{z2<V-&3p}$e{CD>)^9I@o=qGXu=5n|Ed6~$pRj2G!xr!tT zMJPTNAtTbrLuusu!kLWRek*q%+|h~L(QyZ<9J!+054$OI^?f85O6DZNXHuSGRpu%Z zAc&m(Y&-vH#pB5HSi+{|#Zl*c%hk~Rc6_yZ7ZGt(4mv8=$HO>gAl|-*JPv3I$8Ees zKAxMny(d6f7_WurCs=LC&zJF_-292ZQ{*V@V`9(=UHb{0dCT-KdQBO#i;m8Za0x^L zrB4F*s8k>Hp5g??7UJl>Q6Up3EEg+0NP3a<Zqg&>^rra0u2vGmfN9^5N$$%JuCH7| zVx7Wi3@C5t^i(7UpVd{la&rrcbLrqgPs2SE<kQjq(YA%)M5htfwVZ<89J=^`yss$F zhE(bnvXx;Wloo(ba(JHxNzrG>dqvvXIgqsEp<42Nnx!l3;!9EibW=!Jf|x7033MSW zyj5UJ15~r*E3@S22rWsT5DBZUO^t+bmC20XxnT?M{2O)aIi8q5m`sqJT_n*BX<QLI z%gCay8jov7Ei^0CxvM)cpu!}|#52^5GStBik(3rqbX2RY9`M)%#4E0aQ37Q#>0&X7 z##SR*1miqni~N>rsplJJG|TpP7Ac-GQi3ogzS=t$rjCnV#v4&|E2Wy@vXB~E<Jopx zi}Juy_3To0a8X&=qSS5Ka@*JCqd!@rDaE@>C*-d`swBi`(ZK(7!I<dvZA`hB4}Yuw z21ZincB6s)#~G2|uw|8{o?O*B%cF>=T!^PcBIrtLM$4)Gir^smSPf)vUCs1(_BgN{ zOaJ}!fcm$y{1g#8Z26*`s$l$}JaAe)ds-c=%xeA?n_aHMies%IX}3W$dTEHzCgzGH z*I+2$ATrz)C+-<BT){hBp_lp>0*iN`6LYLnDQQQt!Qj%6o+o53%9Am5P9Y4TJ&m=w zSy*WP{yB7)PWIgBLOqR+10J|jJbq>;x@@hft6GZphMg)|vxaOP#j_Jhwj`K$Rfnn! z!?7c+?upFO|6z7}KU}5Gy}m3@&#4rv81rXvWX#dMkXK^%aBTN-NWJOwdf%$jn)|ak zN{E|IG3a}P7>aj1g~tTdSvZV_#;ki{Aw5%<R`pMk_MbOuIQh$>9y{o&oZD)gM3TQz zt=kaS6uj3IdIKx7QeD{6Xmyq26r6q|5-55TC=y6<>QQGBk2p|yc9xE>QSghYzfuWZ zQ9t@{D-w)y8ts+Pw|duUSBx8vlNIw>2GJI^(H22HdusR~5@_8*W|4d0lP6T2%vcYY zE4UgUA^Y$mHrYK&OpUbMs+(>Re}RYVIb)g5ahb!~;ls=6$(e(T(WBA(ezog=#+5s8 zuOa*C=z^vP!)JfD2A$Yn?91uI4SdCjPKw@6ioI>s2<$#4Uzwf0GM5oaL!nDh?T~k3 z&&kI3h{p=v#|moomCC(V+AUqX>MOhIpd7pKR;mKSSjSS*7T$p}KB6_fp-nxOZ+0N< z`q6YH=G#iUC^i!Felj`<C;L)Zb*~<<!H!-(Cu3c!%Z_>6j+v#>-9j<I?vJL48MBia zb6&*EPnZL6eshtNC{TMSL^~4QXp-i@+yREU#=5=EDivDE^);c5PZ5PJ<$^6GvRVhJ zAQ(`mPFbf8o{04L@n}R|g!m-y{UqOeR=!nrfT^rQ-sjkgD5>BrsX&19b0iAo!qHDN zsI{=IwJ`i-*56VVF-E~VMuFhtF9dixM8P{m;dpLMJ?M8~+wa0~RFZa=1DoCyOfU9r zZ+5Az=Dp*oK-LDtRR!-=g<juEHVNEjGuDajq`7WQMJxq3Y$4w6=b!VKSD@`{5Ycr1 z1voQb0yhq{9S<Us?3;=lcZ^3;RrFR>>=my@(AxqKXiySpfWZ}IiwB81)kI8YL#$?z zCE=5Z2QIyzb0e55BT8Wmd_9T4Emw|^QW$oM?~hY^=5m>XK@#oj?ixnpr{@PtT5o~H z7*yUcO%ZF7AN2oHsV{wk6nl|t-k&JMRkTwSnR)13_}#xrNk<V(yAVvvJFvLF@KjM4 zMJ!PCE>OIVN!lKO>jjF0MT?++`sZzgs``=|`!q-1lIJF%RlzQ*V3EJg29tf)3N3@w zi`vwS%;XpFNyG*QDBo$og+wde7sUJpJf#u|x7cYkTo%ahk@|fYjsJNoNq*Xs@V|YR zmgj15C4I9}=Q`)UU`gsRATjrQ+9Fau@m$g)=jw@+6EegNi5yBgM;eT0Li(-f{Tp8R zT4B>FZp+*Z=E@A_JV$A3&>aM)rnP@W6Pufy`Zuz2+J$o3&{k4CiKB|0HR6e)_laU} zQ|)_ppSU>@+oJH2G`Mrz_tJ&g3FO(di`g_9J*(vw`X_mkEv@nNQc^p<o@Km*9GM|a zh61+xDs&=e$dDU^r7w9BFY4}3=D&7VhWltIqCLpaAtbUSbz$SBqVMDh#W(H3H!boU zGV%$vz1>4i-5ofEd-XZ!OHtdGA}%>A_?K~Tl-r7>FO%L#@0MN7aMB|o`t=AkZCJyS zMLO-+)~x@ke#{}8RBXW2u?7>Ldz*ke83SaV$|`GaM56(Y7<uz0`FvI`Mk!xgL=f-J z`y=OY694cUxEAc9tG3p)D~@?Qu9Q@guWK3~W;T>z#$p+Xlb(!3r|3<m2>I0g^ip@d z)1CFJP1o;Vat_=~filL!w_P-vN5lbb2X?Uoqe(ZvC^;fP*9>}J)b_q8{F_dr8ER>3 zyJUviPu`YQ#-cL-ss<&h28fjHBdJbz%d_y8Z8^iCxA?|GKw}nZU-~fDL!E-2%{WZ} zlo=1oOt?2A$xTM5r1GVdbTZlBdr2#2>HZ{fxI7lkT}U%_sAUR58jb_w*iPe+vgml@ zhYcO*jSqS*Y<n&YzagO=`GA^}uV0F^tl+b(0CeY&CM_-IKI}T0S~;2m*G9p0C}B!y zizzpYDKR$s&y8R~le#*qI-dB+GCdjvy9m)$N}kimsl`vVm!3=9JNGzoxOE?n>pxIT zH+Y0<J~V=-*htwbjK@~B$VMqRa?F+5aqHNR>)Dn5wg|Y)P~ecv!MzADC7N$9|I39U z_ITKwHr6;v!!fHB<=a3Yx@SCHOB;#f{j%n5bLwrAx7!=b-9Gan1Ye#C@%-7VN{*ev z*=W(tD1E>?S?cyr!P5B6OdjQM872K(jz|g1M95P8{$%*_<P5@6p~zBUggpsk_lGhd z`2Id|vNp$vLM7H%&OCnB`Ovja?CzouuZ9CW!FX1d%1~yMiB)~*@#pK^NvpO>t08*) zL<}k$?1l|iRAbWihQL9#GWGDVynJ}Z(jUtGz-XLV^z-Wk0#}g;SCRRE&PvyEf2DCd z!Fw?XvSQkeVp<Uw<Y^$mO*%KurZR3H_9=xC)nf`hl<W8_mlE+1!y8r`9?$lkR>6To zsc*QhYbiFTDK>ffpY@=)w^*^0RemBn3rBdL>Wd<I{RBRtnWf#Br7=W8M6TG@EqC^G zQNd|9;4}t8h|iHOs$klUU>d`L1=0;0(ho(SABz2<HOsl_1GBPErpi;~5nTe)D+1Ht z&5@+5Wy|0CSN}o4kK7Pagj+2}S*0^&yL7we2v!Idm{>s@&Vt8+wMTi>c!vqHg%Z3x zhmAyXo#D*O3MHp)q-jN;X+@wCcg~v&-b+;qH=aubpCS>TqS7NWv56}W(Y*jKETw+7 zI$_Wm`9m)GdKM3b+Y}+|tjOropl`i*hp$iCkDquCxJGi*AbJPwjlvukr9HeBFA}Xb zvh=7x<LPYUX|Vry(R~*uyGiM^%0cuhzT;{>rJlvR-wchU2wO!WTSew^`YHJHIMOC< zHcoB(u=56m1-go;mg3+40k3@F%_)SN0TC995Eh%u{`++k%s)S0-Cok2rM13e%^tk+ zwSVIacGNK9`oARu`;d`&J!A^(%6^+N%Eta#nmuDLU1beOGlG6puFv|ufKtIGI&Y-$ zY;NP4g8)VCIx1`kH=O@Cf}etR#X|)GT<L9$0?mKLO{l$H<(UjPY#=Nt(+V(4<r(;$ z{bd?F^}R{ci8p6XE_yW&MJMA%CnLtxK~lI<g7~^Eo#Dc^4l8{f>_ahOyEtu|E?e$i zZgcdF#bl<=YUavcmzSc-cCpr0u&)fK`}LqpW_m?t8btMd_?6GE-e=ypQ?b#oaM%#| z6NyC0heQczSQoLn=xmjH)M43`ZZn>4Lt{5v80U~t<*uEWtVMwiS;T?}G9=-sZX!Yz zeV~fKebA5;4r(>rDrLc0i(<`UannNZTOz&mrl>oQ79D{GFMSy`1$0pnXv6KV>Dbj` z<K6IKblrN+F$S9>DF|BB4lOD@Sb&Lc@U79<P?%URnp+Eg`vHmM4%y2^;!*P9QPP;? z`E<XqoFy(WZ6q-LNHq3^I@5+D(<aaPGa>n^$x#!uA+`p;M$lxq&T5z^{zHD~rfB2l z{$T73f_9OJc2R@@TnxNK`?A!ULJ>O?WK+~`Qxs7|=4X87f22b(V7)kOEy$1$!4QxU zdUt2D_-K>9SM1Iq(n^H;hUb`wr`;Gu2@Ny-1~Z+3#k%koT`-n68hGLx7u0TD6p^Q! z+7KQv9x`%x45Fy*|JJlCv2!gBi$O5`gUy4ym3p(48WV3k67=n`Ec5fK$k>GM>T{Zs z(q7lg)XK{g_)%doANR3j-kW2sqi(l@C;su^^GH@@_ld2QP=q8J1MG$Y7L#V;-Sg+Y zaRH*4qK}zke|WX9>CV6^!uukT_eJKR^ZrR6DXPpCYt01vB5@{QXhyIbBNzkJw65$C z-w3qWE-xqCf-3+z{s?L}R#rsIgxzGqVqDAywfQB{m{t4gwEMm&l9`ia8kQqUEBZ() z_LEj4ocK_O*>HsI!`|`H>Et7kD*BKrS_S_;1NB5r`vvg|I``Fi_VG-TX~-1GR7s;1 zz-|g)3<+k-kz`+Z8)glbS+uo<2FoT97>h(0i_9~1T;KWW@CxD&)R7GEs8Q#CO;{?M z3=%487b-G8naBTN5l1G%TV(!M=V6<o8~)gTtIgbCA!Z&^aup`9btoB_Z4;ZlPYO+8 z9?R5I%1yVaOt;Ci?TeuG)-^N9vT@3?$#a)x7H;h%*0EgFw-mHY`wu*vGwp^mt>}+M z&!2Z5KTC`<8=^`V&XK+6|J#I*)30Z*Mmaqz3ym^&tPMiij^eqMz+-zFxLN5sz89&( z>}2{&)QLU_N<b7I|FwMwt+=ap$D)W9G7)6QC<x-<h}Ymq4_)nxJ{yn;(#Hz<R+2QS zS5XHUWLO)D-W^hmW;OSGAWWgp0B~|sa&m*aqVGPXw6QI~$Mti?v<MIc-h~;MQqQ*! zE^+w()K~zi&H8A~zJ-UwJMh!DGW1B@JF^|#mtl5ovZV5>?V(G=Au1$pgf)op8pJG+ z#I3<u2;XD8W{dcx5-R^M7qNEOt9BTFl-<Q*=ta6sk=mAw!<H<s1U@Hka#|cd&;{b_ z_5pRj$y>y4xa1hkji-xuaT#@SX(F(`XYUO5aKVhS3W?voy2S(r>hy)^d_y<eSAh=A zAzP-LTc*5E*M%d$74Opn$GNh{xxk`Ps=gl5xZ-S^5^O-EYSe*&AVWx-Atc;GORMlY zE-`_jt0cO=1e+lLV3xT0)CZtUhNqlHD!|+2ho{NBsl^P`DEyY0#1n)IX~Tt>3BK`D zzkrGuAKOV!A!{a`YbL!{S38is5}>s~ycqPl7{nhecI?IGGWGLm;7&NXwQ);e5YLR3 z$;2jb$&;Gu&n&=zF>IzWNLr*@|Jce-<O%v~(e~HEOnn+3$0Cljy$??50G?mqf*5TO zqX)gB2k}7+_i`$7>47F(*(O|?!8VoL@FFKi_a|c$X}|UVG=*H2a9)=1qfGvJTqZqG zgDYEu3#4oln8K7B7hN2O9sj9JFAsayimhx#mFv_3@npd3WI(l<mJ-dgJmR`7@zCP0 z&>w?bvc*M!5ErEoSBR;MCtvf+XG<H05b%i{-Lz0dQe{1+YX@TjcD(FcWp}QiB#X8r zc!{S@`hHtX2Q8mYFNFj2xhVDFWEi=mHg_z;w-JgIHG$S#+16Z|dCUQ{>!*+yX&U_O zXp(GfEw4pmS^^!FK7ADiOOa!uNFD?vh%gdl0Q+y~L`YL{yntav<(L(f@s<s1@Jr}! z9(H^b;btgO^N9^>1A>ZMJ()y*_p}Csv<l92byvKly-+ajH~ycBBXtjTf}}xykTySv z+0Bf<5NVJ#q|F)<o=0?i)#0;<+sTw*9Ds;2?1eInPgJ3Po*s=3I$V|DVoTr&f<f9~ z5HqvcU+iXhPSnNs>0y91F3L47a9|XbrRybriGE+X{<jjxNl6oaJcLq+a496bfVhzO z9E<#luq^^&#xM(@6%I0mw3$M}zY!hNv%5T70<_8Sw8>};W*h>AA<ve%pUEmer@{1+ zMg5XH{JBkjMqB+<jIMvX=8faavgyYnc~xpn!qfjS+Lgt%lEnq~EYnvq=hqCPfV5FS z%sl?$^NY%=W_xjgHf&(m89}QSZL1b${y=S?(g&+swv~Tl`g3lxN81PpR~Euo7G@LE zW4!D&f2M~{Oi)h}&rcHHx2P;fMm$bDv#nx_Gi^#RNh1HSK5tU#9Og%o9P*MJ>cK7@ zae?oq{j%&rRPMxN{DY-pqE6<do(7YvKTN((Oi@u<(<eLCPlGunGmg9~=SLbF@){db z{aF68tO105?#uYhV5x@_7mJiW<dr^zZ&Ow#4dnBO=(LlWX!MzDd<$1{w~M^H6_M?t zOy&Y<+J-+;S{UHTrYQz$J{*h&CU9jZaDn6_JD_gv+ckY=m+_6Ei4=x$av~rI7lFpF zl)_4OoG#|g-^`N8#YrcpoQS|R^}bE@Z{Z5=%ocHl<ub*FLwC;Z$xXj_s*0l<ixo$* z<)iabwF(hFLxev=%yhKOs2ApvP_vWIvy%t6bgPGnEJW~B$ymgtnwvr@m~ci|Hb+?` zdCINRZzn`f#Ot_>>bSs@k(7|J>jDHzh_EFj97ZG(xrLDcsN$lm;sSNCl<pn<GB?p9 zbJ9zL+3<>!zwy%S^U?gar^dYe++IFz^Y8!G=8%Q4TuaLke;9d*W?#AHw-WX1>PVi= zcaCe?WT)C>dB*kq^pruikTzS0S=o$#su%KF^7&fwk6>+Jx9SK!t1Qy}kk|bX{x<7_ zdb^{NWYL&*t_fMC30Yq7jO1pVCyGw45m}`XSst{0eCPchvDftw{!ICLIvRP2_H4N} zUy%|042{2<l&a=>REsv^BI<1N^=xvXo_5)z`c2(71)q3jg-j(IQTxH!uk@;>Kd61l z*L}&~$+Sy1Wd;?5?8QxVRZJF0gLr!qZ9`mjjoCNU>AJT^s;d5=ZX{oCB!7?49(mj6 zls%LiSIDtt^b8@N*PdO{=1cVJ&5@}JGJ&+4K+J=Q+;q_t8UEEa<Wqk1Z)(}V9a-vX ztyyWU0iTwQ2YHiIf1aiNoD!~6jmqj)xnG4~2oW)aM0_Ele|x*{E)|B8$#R&*qVT2c zPVN5sT{)}HsEhe$_GhAgRQ2R*^<;W^t(>d78XR%fLkU&|<ez(LmO2xrNE<`YjiJ8q z@^<X8Me+6;qxKrmwQV5yUGC@EeE7@s)KIOawcX|c%{7$GHK47?1?=imZ)zi54x<Id z4Wd>9iR|mK<k2kyly*{&_aRsNKUl~^%1XZay0r_4IpCh!37R<DZiFq|UuP~aW8SeG z-m@rdm2btryKRh~MdeGr=1Znu)P(oFR)g#9pNUtA{{sjv7889=4rmTx+c9NP2rccI zgjETxNxOM$2C?Ab9vBy8ppDk{I2{JF?Y6U!UzT}DGopK9pbk5&u$WGtXvLwoyFwy{ zk|CKm)sM;;OaIDPs;+#93N%g)bo1Q4jv4N*GSerXXa?%)#_H<QSV~3E`xhtKpJ)>4 zTx4NJvmSnDCFlNyDmxZr3~4upnETKCbZw?O@}KGaFN5K>ymNcl$-_9H9B;90?<LCV zjzmoMgtDUsbQhWBHBZsh^}A-}cMS;5F5HT4U}>eM1~hC7o2&)o)KKQsfP5nt;R1or zwXxF+Gc&&4Q2Z-Cs@YY+Hj%hKCzOz*!+2%|a8cxAqipS?OArmDodyySsTszFx(RZg z5qlRy`B@3IQv`jgh`*3+GKmJc%IL|@DA{k2-7Qc`H&$wal$ck16MsN?c33%uNr>QA z;i2z4U+ZyAN88;6dvB<ym^BOhbm!6J2cR-36q}Cmke*Q?DHA;i4tnIm9uX0c(D^S1 z_t3g9lz2;$Ls&QO42<)$tk%JK`2LjB;2&5I<z+_pPQTyr6B70i6njV=#N^1I&{?&F zI+A!jl1R^`;$PkS?AD%IKKZ-BTaPEonPk-KrsiQ;+n65P7VblJ9h^vysa)g3)AU`u zeh-c{+@b9JGa1(T!M{AGI%)Dj+_uKZwkAYQ>A22FD?G%qcgFWmfDpz!!{GwMlF(98 z^#QWnvXFAho&ZkM854eb1xY%anl;T|Jb&E~;nR3}1#k-HV%b5KJ82P##({Gev+g*v zE=@5w!02Ljxl6NVMY9I15kV;f&BAe}KXjp2=t*u#&3b)8OIw(h=aXhVek*%qq<!u- z^#yQGA~?`PX;K3Ygd+ip#`WBp)K~r@h73YO2K%s!5LTdwE`v~)LBd}8?(2WEd@sTM z0R0+D{Th&c#9VN#oi2bw7ms6sw2i0h8CQq?P?w(EJoy_LA{G<<Av1kOg!(74yD#qE z^*(?KzW{;fkmp6>35D5d1wLtx;~|uX7yGUg9%S^yYxKnL?-k)8FB|Hmd2MlaT@`j+ zmS%7`wf7k-09Jtpv&S}ho2QFDl^B-9Mx;(-Fk&j*i6}n^l^;}RrvGGd;&ysA*MvD# z&rRFdxi@H?Mra;~FOqK&5l#59@3HSUC4>wO>yGa5o=#yq@#f47e_n2ONiM~fk!ZR2 z*ykNOmKXh@H$C}gvWJLGBtKyTsozUMDbI;}?Mo*`ZPjgbssmitadgM=I)3AGbO_w? z9~WLAz3j>S+F|&Rp>03+NaC-eg2lTh;YB*sXHv2v*~`oKp$)#MmS9#uEOh;P8~fKf z*gwpw#6J3md`07tCmbAJV^mNBif5^=A`4?ebRB}a4)qO`_H0;@<)go0IV55s*C;{V z%S1g(x;{&y@774dN*9(T5YU(v(n#4;bZ5RgPQUTu_HjGuaBaC$eSXato{pX2u*!(K zbP|1>V|>vatz_5E=)Z1<wP%Ql8n?OVD{O6E9~3+sNV%8J9p)#}dh#~E_BB1|{5&)+ zAOCI~)s6X_HlZ$Ov(*%r^L<-K_IklOlY637bnfu`<&dbpp^>ARnCI&4tDKl|fIrlG zqXFyt!NbM%&FgM$nXBOlzXQc<73}qdGKqsiw<(Q-U!~*8&!y#~kE`G--1Aqg?A3X1 zC5*WCQsyvm;r=PY4&|V;JHq+U`#R_8;(;U9;9H69(_`7>$AF7%=;gU@hiJxldFMj% z#$am3J=M%+lTjni(B$OiPQZ06W%Fs%kReG`>AuxPhSgHP=T(h=X8Gyx!Qn%ORr$R= zx7hQvY)qjq&upv(i10zh5yA9&xw8BQ@hyy{$a|Um9=epC>-3AGQd=wTL|u51jc?aM z<BK-j;J2hj#5R3mN9^v0?Ljx{uloo1{)RJC^>bhOgE1wA=68psj+URKua6HKwsmkV zq+!KB|4=^G?_-CZ0XI0e$H4jx{$1;Ygmv>BT)Zp9*$%&LGD-@OcOtEA4^4V)LQB!O z%9KrL7Ec2r^!cxC{<Q+l??j$&tgo(~d^KMOTA+G!mos7a`ve^LS4Dq27`7LFsH4EG z%S2mzg%&eE%;xXNQ8ZJLY6bZ2zNAC0P1^1S(!Y23T`%Xi5TBcgSBf7$s$>)W(!$== zqOGaen9m&L%TGLbUK?$L)^-|Y#}E%6L|snejptBwdbt~joNLi`v5G<aZH%2SDncRo zo_ivNesT-D158k$jj`m#$lUXinYXLI-=e+HozILlWmdC`xDoRtmds;Ayp?AG2c+F? zmiI{O<KgP1eB=t};#^dFhyEHrmRDtNyVje;$9|&MpOj=-u^rF*sU)l4aeH(QjQvXv zye`QdZM&N>5~htjP1hzRNXbVMvnj>iHQTE5`a6x6<Bsf^@ILxo%?w;acgnAkI%*<h zj!fFvRT$*^n$Pjcv8%QRIm;Uv&EQm#<7;r(KL=?%j!OQYJrurv)uCil!(}9@&nZeq z<_6{8qxoDsUqKc}rjAbsxEv>GSaUHv1}ftmsi)Ffgq7?kkn7if@6m*9QOzyu2x?CX zJqWK>o9TOzEI5T5=ANItwy^rztrM-5E0=qp@}RduC9DfgrK)gOBZESpE(-Ua#|KmG z0DF~y)6_Rk8(|-ws&SrdV)HY|^=38AwL%V<XC^t|nz4<?W7Lp?){{dOX*4BwpS6HH ziOXpv+nurBW^V!TvwK)^Z+<@7FRdE>F#7hR;RA0Z_v>F0OEdrlbv)7unww(sztPq1 z4*?gwtCe_5ta~rcz;7QFTZx$*LQL_2*w8GZOH;{#2)6*37~qLon(B&p)g!3`4pA6? z-M;q}Q;Ie2$b>r;Q>g@ay)0kt51$6ypWpQ!3cW`4u!cZ!yO?`8zaD8bIOO3cVgML= znnGWu(GOSwP;ojuYnz_!?Up_RhtG~K!$(g~7hB>yezjXOY@~vKoxt#SRU}RM2WJm= z+fl{;{>W5013D12`1js{eZ<l$QYIw(z94j=_&~5Y^#B$U*le;bao5w&w+C-qn$m;3 zpQ@aC4~GRc>}#c;x1}!E0$wbxjHh#6hE8Zr+W>orGzJqQ^ACeT9n_0<i@x=ks3O`& zL~1&MfL-dMcNV2%o*phw-=C-VqNa-mp%=Z)hevlNYGGkyJVUR6Og-pd?a7aF1Na_% zfCl)ax7!#?SkxRn|GxV2S5xY^0GY23sf7SZ4HA0Pf>`@<+Y2gUFHaYDGpvsIOw&lc z;-RF_Rnf1%QPzmf=0BY>BfDV+GWRfjHB6^+*H!cz4|rg`R5rIk$VADjaSos{Suw4k z4@|~SBz)-n!{mhMf{%o2oqyo?uAM@27dOwm6p$GVQ|DZx7ED3!dLPb=ye09ax>({% z1!16^I1$FfTX263pa~JImHQa{+}XORzf&7ExjOex8l#ZP87bUW{Pw~~Wf=gyfQc0$ z0x+q$5SFoyBMsVdox`3%gaEKOHu_#Wr1uR#8~{emecWEceVpUa4KUvP@!DCrfb{Bh zDQ5r7==j7K7U#Buc=`|~@>)&t`YcAol=fTMe?!#&Q{f`7+xb)PAq9{`>v>qjDF_6} z1%%@R9Q3sWoPv<ru@NaOW)bZWO)z@sf?j{u66-Jlasms0TP?&&zXnC@f(ntGam|K) zzw*`+&uajb-di&Jn!%HL0GszaY;^qd*GvZu)33hG^RhWJR9d48SFg`E_lMg413UqL zzLKGdzmpC91Heh`6n5mf_-w~3|8tTw8o(YLDur#7zXYnuw&f~f1Z0O-19SA0qzySZ znayaVPO~H`6azsLZy3TI6#DP`pBylad~l*FZzsuIT|5V4M(He#-7&7i06pO@r0s?= z4@}dIwY}bE;w4DPxYCNh@BY3;`>TYo8O&txr808CGOOAM!9&W)wRd$+X84{e<AA8_ z<VPJ2M&nUQ27(8Q*00<ozndS>k;bnoO<N`A0BIDpl3e49g9x&F-R;n*m;?cILXa5E zxYR1K*m_z17S20ljF5q>w(502u;hr-z=PS^D#nZ5L+UO^cIU(G&G)sL!_<D2fK1BP z_c%Lef~XXMZn<W-_r#R;k}+48x)K}5+EuS*x8BDG#5?JK`-qWc@iozc-yxiER>^<o z`oM_~LN=q)IM?|K00y&sievGd(DXOTZ*P8F)A<hIreToAel>dSb*FfYv5jF@*~svV zAoN;bICJH2y2&z<g8KjDP>apA_d(tkC7!c_5;3c3|FCbx+>T@2nl_S>|69$p6eHC< zez~Ubmx^iWMSMX!0H99igQFUu?z2#I!*zQBxGi{z&=qehee0ohTTi)Wxq9y9z34&p z_)eN#EstXfY>fNyVzu5%*D%f>HJ-7A9Awi<030d{eN`*93>KtLY(U~7t3gVb<x)`{ zH=Vk9$Kcog&}!T2I^(uP%0=R;r0SnjckefKTZ%?TLam}I3cvEL8P|Tr7@A1rlT>+t zUayY5I?MPnFnOyiZix(LwWXcv0+UJ^9g4D#+*Ia~3wPu)(iy#PVx35Ovd5;0dz3l9 zAWq3;yKfAZ^$4h{2>T>hF&niqc=%wn{)*WCL}*@-8yzG;HjP@U<t<h@GDFv=BSnT3 z#Z^RK$WCvck$*K)WfrZQ1ZrY3*Hh1XBRHL)1M0ILBK?~LazLOe+=@6f>m@a3GM`ZG zd-TnDV;&8cal*5!A>8J=sS*7g4T|DIC4ngV%vkiqyTw<KnsY(0Er+}+;aQY3o5RB; zbwOt8O2gGU4QRI_&OO3(#ECsO?Fm;m89Xg|5nfQHMDKKas?GVFMKc8gY8xXtT9D17 zUq5kB+RkJhEIsAN#@wd)lF{~esnl2A=aV}Qm4JKrN$ObP*Ztm`VKHGpzb6W};#zcM zK9#Co?1mm$_-5XFk$1@gEpS8o&y&8dIbMo!OCNC1`JAdCGV_9sDtEJ%*|Nk4`#VaF zE2@p;KUIG1TM$q?8F?Rm_ukB2$H#YC@mk`zAZBvP_NEndDm&^hgtitIo_IJreJol= zo_D1A)=Hm}UWb{y^khP%48Ug$|MYGYsnm|nXgPjw4V^5o*hu(T!P!Qv6iXO+XA#-U zfd;jKo+xuE#zbBzu#mwFw)iWobI<=wrolZ2k=q6_lZPN=if}mF^Srn#Jq<9X*dttf z1-PgH5b1CM#nU2Skd*z6T|HD5PCte&Q6Ts!+WkIpE*SGD6C-d8tSETci4?fZh2We< zJp@T&g<iH7&hh?0M6yB*<tCsVdm&5xiaAn*;XI8@puBWCr1}HV>)-IEpUNY{Ek%_# z13(1WUTXEP1Icm-SpX7@p3L0+JEM^}f={M(CvXQ@dI*^bVn$kY6yu(I4LcaC2Ky2< znRDpy0=v>9Rt#&&+r|A^zh3f(TjudkRpfle+;zbp2S*D(^5`)i<zWO)BCAOsb|!a| zrUP)4@IUfwdrHNvI8%yXl(9UTZH8jorq8oxFjQqQz|ZM|K7KeKD&mMD5)`=jlXEXY z;oK2W$7t$M(N&ZV&{XQttbb>&UP9~FkErYD(VLVGP*B1L@n&$eK5)8uW`jl;#4Ul~ z^zW3mvvr~Md<X^^)KG`z5R=9e0l(l0hHx->eV&C*0!!5_L!ccHRQbX9`#>#=mdUCT z;EchnTmRJtBgz4BfKP&Fi76JmaiAF#!G|E75&qs`1U&T95@ruHX^0?Q<m>v5JJxg& zX0WY0+iUz1G0BZ^kVai?74P`9yt8Zgw(Sm>0YRLANBV|Qjh-TAKnO>$@MiM}EcC@i ze{(WNzjKnOM&0O84ApLMG=@29w*#`hvtpYVy?;)3N!4%A*~^<dVdn5vbQ2*3KsLQB zbXMd$KoDZK_6G$NLf`e95QH98FCXmJL9ML4W)MO8CAls#{{*-qaO$!|>18;nw9j}$ z21=n9A0`B|m;3bZNGHy9Kx5%^()P5hwpYIfLBrU8k^)Q7{>JuW(#Pvt*QKqrE_BGR z|5V8{3HM_oMvk3UCx5MaQ#IoV-~2)j)TUuDs-_%T8hzY6KED`UKa0(vJ)+8SU?1ze zx5vwwc{*^d_clP|_u=pK&U?N%-dLU-jAx~MT_x3~DtCXjyT%A0Qjh(5r)XVTz~gE# zFy5EP+3m~sb{FgNWc(V+t^Zv*=O;S{e|1jl>EmlbPNkSwyYPZ<TYBt)%-P}b>$ug- zB^0z;$Gh{#?4{L5wc|^(J-4xAw(tGp#uvAntuHU8E?fbcuj|g$2KN7NRW|&3ZS3O8 zr?2JI2w%T#UmH_48<}c-UD4KhdKyf<cDXvNy>ENSFl5g5ZBBbt6Nx!=*B6V8q2zxp z54ale>z_$&2~^ttn7AsuB-)XmdcA4jXZ+cCZdF)+wA^y@N`>}g%Ecty3AI;tPpsLd z|De@aTMPfdo@lzwi0|pTAvo{<Ta_KJ80s&w7;B#ueYEv|3M<=2*N@&g9A~fm^GoUR zyY_YGu>FQAlBb)mn9DSErTE>%M8-XJsd#=^z7-r%QXcKxKt_=%?9A^Y{4jpVAC)*f zIqeiHtuj6?bL}}t%Rf@{z$qrO(Hn?&-ICU&VSWb@p)%~Ca2O*#RJ-i@{tqv@OsvB# zVAR!L5PIptL+<x@&?@5&S?di{;aGS%^p?ggBONPmFwyO;{#Y*fp0Rd&Z`Ajy0otNc zUSR0wBKoj?U%N?C8B^Zjtd;7$-5>rqDx9g~Z+VKYk;fl~c#H7+{kZKT$@W6mlT+08 z;Jy2`EFbOFuWcbgJO6Q3=Fc+!hpw{@YODX&J#K{p!QFyufZ|$$1lIz^gA`f_?k>gM zibL@N#fuhq_u^9A-SzUmzcY8vJ!kGene1dH+50;?J9|CPTA!!xMJDUrl(75)-xvhB zmn^gXMKkN2VKat^k%H;eAer^dxo7r`pbXAo@@EBb`V0HugAwrg$mzN6o>OMb=Mm=d zxV~2}POjbd+vooN>XjCIjBNVYr^7{umMmG1JC0KO#`8sAIC||$W!2Y6`t&m7<z~;f zHSPJFY7q^{6JQMbKn8Em{721XB?0Q@{OECiaX~aimECsx_g4BMO}i&21%#y0XY>79 z7%93B)1;qEAuOICXzhw(#ib_kr<HcmjBSNQ>D}ca)WyNhAgMM3CUbDW&q!2s1UEO3 zJ~ZQ0m1;DNXgpI9@;4>rL8UPdbn8uNxDysp6g|B8ESn~b8647UVwTY$RH6aDNRxO? zscGcde7j*QAKgkiP!dzOoZIqr9k}}T;NhH~W@xoR7bPaS%UIBU0-w3=sNd>I;%wGt zV??HMmZ@&0_yw_D%_Yd@eYe5;TGqzpwp9^eh*sd^HT&VZZEOEZU(C&$4i}nr7|lnn zMOjg{=iLdpXFd;ZkL&xrv8h*F$>tx^-?y(>@QrHUH_<)ALiNJV!Swo?N^gdukm=Rt zZ1ERi)4s?O5PTP0Tz=e%a#+is5*xXtZSkAME3aQEnc75;IS`HG2vznaDoWmFguX** z9k*uOLq1v<A0WAIiu6Oq;m1INUT;S%!e%T9cM?7Z+#7oP&ZSW*5x|l|o)cDcTxfb6 z)0TxY;zpEg<q1>Wk>w}niFh3YeOaudZ!MPBL+|PD_bm`0tCA7?JROD%>mL{-g_}7) z>ZQdx&H#QVp}TOa@pDh)Df|SweF9i3<{m5T8(JSTZ@Y~X%Gmrs*L$O$y}!9{s;cl- z)&`qZWfj9#A;17KtpxcYxm>bqlWVPq;NnzF1m~F=s+VdxA*oZ0S6Rxuff7_LYW*qv z$YQ@G@9Pa&hYQ_4jBb*CrH;?^m>x_*a!sUGPvk7`yySwi1)USdUlf{t5bbRaFxF7D zRvC{)oyki?CG&?q`0diEr@vC~b&4*qVNO5px9pt07-L{VM1QCKv>>7~Hu><>hqoOq z_FDms58Zr$ZnI>{MefMDj#Tuwg94O%`1TY!LN3wu5Mum*<9st7cW4WTbwUvE^Zj(@ z`%H{EKAnylkY3BfDgOusO_yG%F)FSzBJPjVtIdha{T9}TnFqD0r|o1)bIv&q@De+i z)tie=L|jmG5yeix!&7JHGYrUd&;g@fx1e5^($t=+oBy$p;YFwBriXKgK?}pkMb=oX zAc4^QHbJ|7(^L26DvSF}hI;O`=@|vwTu2<?9f37dfA|gYHy#=vLeDk4Iaa5Z3c0Lk zY1dn1bG11!@Um$4+n#s#0{Azde3+QJI$Lw+>T+KL&Jxv4sMHE=z(-qNkK<RrvJ4FM zhm(sA3HaPxajiMRkJ#mH_m>2;GcWtvesKobmJ{t1O*OHLTMEUJ$kd&p(9dP#FJ?_& z^e0C+@ftO~@XnqRt~4M$B!@006VnuyV7T$)SzFK^oA19iHQ8zfWXe}X$v<V&MmsPa zDh}3y(BHAnD2$Dj?h|I~XHhkYi?pm{oP9g}o`_EN4f>Gm!p}wj)BlJ35g%vsbskE~ zUuS1;@2x+eiX!ccnI341p=L{e;653)jI&|MOAHB<d~qcnOC9d#n+2-Q2JBisj>?*O z509tsZ@1u^2fBr`jJxpc+Y$t-yNNr?sHs^SGMUrw9PUkgsvGqwYE98b)+B?G{BKk` zu9?@5nI|%@sOiJWI(FoV-M$bUmeIn><k1A**{_YLS89hhXoahJSs--ieK%&rx2MCm z8KjskG$`#`=xDT&7AEiT><P5sB=cQZ&dq==X28M(TYekm70nhd&eG`Fycb1UyvAX( zj~AfX-b74O^Ubw<z(ck_{-)+*;mx9|oom?)Kz7C=GPgjUEkfiMo627t`avcrT-?`k zK<aem^FVfU)iu#Wi1+!Xqgv&YtU-A0kvje~$Jg3RzmuO@x9>Mgl#%zn@oi4>a<0YH zJC({+i)GbnMZ*Jx+=s*b^a@mcb1WYak*mawcR8pui<>HVgnt@7iz^;PFE{=8;GFh8 z&#*lBUDA-!09T-NOGxgKD1P?}BAw2SRqve1;eqWw|0Cm_Uat(|iF$yIe79l9J`B$l z#tmEDx5h%<_r$kZ&7-~+1-w^=@u`Zx9vm)m6;%h5c+CWpTK#Jwh(%wuC{ZlC1kF8u zKkq^`=$&goKe%I_J~rgVGkbh-`*+tytDbPkm5!g|x9&*t!I1>2CuR{itkD|J5kg5w z9sM^a&V*><5zf%yt*ipS=WkdcRvp&f;x&QA<?71_CZ738^~ehSJ5P<yplgQ<*@Wvf z^kJ&DQbrKAtZmFb0qpf*gRK-Z?mqcLu9s2WU2Fc<1MNo2E#IwvSPqz^)tbi(GISbw z8j!j;+ve~l2H-l+a2%i9K=M^Z$&h~K3ubzh)xbAZYZ$i#bDgz@^{WZ=h(4H`z!#w$ zs+-9BC+!$RMO8ktmf3l-@6i>3RYX$PWzu3ElFhT|T=*H~bE)RLY^o(?^(8`^0QHl6 zrIrM-4>7+w+V2a6;*U;Ins1p3lot|(_8e_ejn+1YP7KNCadRRCt$4Qc$I#E4mYlag zeIqI8fTW`^ws5dIn!DKULwaP;?Is!8A(SS8y0nRl3^uUz%SIeF-1$snSww2A{kj4U z$k(AS(TD<FLnNLBJiT+H#E4m-(TnO=A0!eK2|^(;&Da^S7nbBU63Q&SH{W2OoK4?5 zsp;9i7CIR&&FdjfATj0Q>8-_|MdtW>k6?-kjg;&ro~qXQ2IyR@(8C%GwyI19p>UXH z^bM^MV(^fd+Hv=GYx4}g3&ORSs~P`oa$@}DZGBhGM&g7ys8_w0xHuAYh82yI_pn6H zw@paNN@{A%+uN<rZ<3Lp);}0i6$e5An*N@pLqMb)d{BKwsKv}0)X$cR7mgHOlrXog zC>Lvvp+D5_zRq>jYWnDfdn@xQ$7V%`&#NJdAYN`9p@N!8LMAjuV6!F-^VtpctQ|H@ z=NS^KpRj4is?Me<yL+0%c6Oy&9$ab~Qj8333yBWk$0Dh6q9?FJReo15x?I0XgymEx zO|JSe;tk{@t%thG=_fU3<{50OFM%BbL_YoeLcL)pkv2`=PFA$Wwhtd~=4I;z+;aGv zL_#`U{mC1T?6Wr3niIK($S5|DZsA#Uk~Nkgvs~vgt_f$u7c$>=E?wm#Nmh3qG9N|- zayieUj(yL+pP1ild|1emIZTT7EwM}HS!otoICQMvE2_ah#UEGEquR`jwoeh-$vn1* z$*p&N{jTzx`H+6cSfO9oad)rp@!i8Yvkm$0B(gT!SmiBmFIG4`h`wnVEBt1^dk42; zH>Dy#bskl|S~Ik$q!_Vv39S;z=5!@h)HC>D$aeb=c=7Vu!I^vK+J^)+yC%OtDDukU zUFJXTD@V%A%sTIjr&Siu#8%w&lkT>=GWg^}?`tsCPY`pRcGeD@)5p7nm7gSiDcIxF z=7Px?E(G;L3LjFwI>PSYiXdi!@fo*~e@uzAYW~1J$}Y7RCxfyhdvCvF&nn#@h7dK_ zHXpC-zA9OU-(GJCp9c+}M+67GWDh+QS1;V9>hEKU#6@0U_m^8YZI5n`>+c?T|FVVT zICeq|-evCbI>}F<iV%43lvKy-813(@%!a0rAbo-fkn&RmuVpm0mWEM_Yn`<?Mo~-$ zWqj#F+9AGS`@TJW%uTT-_P7$JxYKmg>Pb6Qb#%#>qnw((s+`LIBgJOMuRio%e0T!D zr5w15dmEHxEc6Z;$F^?U&wku1%dMskHPUqN0vxwQy(#FJ^_p885xaAG2MbyLOZfem zXcdOB8Rg?o_AD@0R=%T4>d%HcxpVyXR^npj*&jRar0D#UpuZ1xCcGjOI#(hRuG)SZ zkKa5U{Bc}Pr|f2l@9gHQzP>fezCJ7miUmr@0W@jD@P9l^cV#w8;P@{C;qBsIk?MF8 z-uw5@C}k}X^JyH`^yuyJNNNh}NU8cKRh~dNF#z~3RNV<S($^XXw<gyel=s|sQE38% z0|CH2#fxr+opomZcQo+NvD66Q$f_qF7lsI00g^vdSk1HF9TnlxEB%mg5pxYTr>~S# zUU1i5&{*K6nTPDYi1GO%<%rW3K41FQRGrfK-QuQ3W^Xc^3_qcr`hXcucm5>WtzLBK zzysRh!cq_~A!Def$FhDmbfIf1Z5JJL2e@$8Xt{GdYhEmbZb&#Hv=*nB<H~D_$hFbb z3qlzr;xC;5j^*OgPX?UnEP|gY&w_ppn%iMEiKDiRb?=C!eqc4tmW3OqgT5bwEjugL z^JrY~Cwn2OiqTr!UA_#PmdN_e(1q%#{Al_z|Jr}klOF>&C5xk$4a4TI4+$!ugx8D- z)fGh)K^EwPZ>NJIj8PvXRh7{B&ESHxLuw4&MOU4Usm(t&MjlbX-$qmK3x92FTd{w@ zPnpMEI}9bR?P8-jRx>kfj5Mc&=Zy)S7eSon%jou7#RdC@IGA@O4ehGQQbf+*d8{0V z3|9H+LOW#<{?eHSVe=>+|2>+!h+DhsSIok$R|OEszyE&z`)&0iGz^&%9U&$XT_mHf z;du8?jO9!($Lh$#f-r5>EM3PzoMuJeO50h~Jc5Gar5v?~S>&!sa^-9HCv;L4VUNx< ze+<sKto<uXj_Nc;`f`Q!Z)8fU=p~@j%65G>C>e*&*?0H}RGq$x&hZyXzG2L~4UixL zkfS7_b4RiAsVb+FoQ(q+Ft)IYIB#H`5xPBuSe!<Yktw^co%btp#FY9hQhL=rH+O%I zLHZ@zJDp|lYe;3qe2jALByR1dKV`Lx&4eo|Le^}S2e$FGiV|HXCLbyq)OizoU%5lq zaS^9E7D9~V>Lm|tlnq#-yJ5MJW4n=y^#p1i)96ciJ)e36^EZ}#I@DDS^QJ@>i^;zi zN&NKp=nvBAyYtU3=PRgxBI!93u;0Y$T*pyA^rsxw(D5bMpB+RuIR2!LOTmnnKp7w= zNn~8eC|w06e+Blx=Vo}b6-Mh!64?!lMdFtOEK|Q9Xk6ACMun^e0+X=gmrEZ<-GOdh zbJ3>~Ph;oF{u4ClyRnhqrG{PDO_ZX#G2)QE%Bd63`WW@oU1$MJjJ{;#bdbb@J{7+p zMLkiY`@{n8B@-3W1+W>b$bcPK@gV+CT~6D2@)-V6_%a_+1Fz!emyxZ#zWr}CBRzNg z*-r--z8jz3xuQmimuFYbH{Wes^pMTE^!FXi3~VIqe{W7<k5P_ZqU(I-@15!UZ1D2Y zyVK~GdhUJJxVqLz9XZi?O%;>%cQLXko?iEz9gmhDD?PIRKi%fT+P}JuR)YPjZZq;H zr03D~CdX?J@MzJxByx9t)3djI2uWHdV!V*OqIyg8nr;9R_N^65%^b^aXtjFMZkUMP z&)gpP*7o~(h;A0FeKhw_LLvJ9x6`9G|C^o8P|9IE<&!yJn`J|_Ix%!_U*5`DT5({T z^>e#s<njL%ZUoUv?~iA-SkXo-2ok=SmbQ5<%KT5^2GLX2#wvZeDb6PT{l$g2=8@~% zXMQ7J7k7%c!@pMDv|hUM0$IFknY*fV|8>(h@2etaJa__t!a@}<&-46Cx+c7w4N+WU zrz;yF!}?*|=IM+Vkput3N`E~=Q$$KA0ige-?!=UphB%8Fd8cGko*_t{U>=c46<&p6 z%eIy6<PFuoPAEb}KT}S}J@~6#^|>Bb=zhTNO^?Z&-(A#R6)j=K<wUs@nrKzr)Xi4w zu`~QdGsF`8I@HJ`l*%q^yPa3BRUkmYo;*XelSh>$F6?u*-{7%c%IBx;b6Ggv%DAc9 z*CAF3Xd$RQL3+qY?qoc#YZ+$ixvTFv-+XNH04~doZD~0d&F;j^eyYji;U6DhWfL2< zeHc4*R6`aUw|o_ZQf1C(%PA!s=C>_969sGHu$B2fr{9T8DF|b{(FOe+@0fpU^Zf!? zWbn0I<(mSVgYl<&=@rg5;nHn&;BKk=@P}_*kBfVcHdjW|>6F<mBG0h<jkANIRZ;IJ zrw0VlXH&KmTqM4aWbif;Ly;%hYQ4C>AKmYd&Thtx)+D=G5C$Ttsr44nLU%5ej>T=a zWRN(ceZ57SaQ&e&IM%H&x}4*;WUe~vq}`{pnXZyNrfAnezd++3j8X=k^ipiWl?NQe z7DydJ_k0NJy63XFIm=&9qJ0H?y!Ev|lLwmj;*?2QzmYbO=M=VP>;gTWJI>%QM}J@I z!5J34dl&4PS>4U!Z4)LI)nf6t3_H@xf_bqn8{}Qz^ypoB;MJg?5ltyphRwKI-tN|r zG5SyF`YF)|U-Elo(&6^ge4JtQtwo1A_N<4m%}}H<lnyf-c4y_@778)^;f;3Qx9prQ z%!Ya!>9VGRFWw(TDVE~AL`o48gggy&LO)p=2Lvb2HtF~H>iz!taoU3Kmb2|~))(~3 z7J(UW2Pbzi-7Ni->$lKEsS)4`lTtJc(k(KE+Rmm0rpIl4wDVI*^h2Z%-GSI4*o-B) z0q5vtQ*lP4sVONWnFSqlDYL2JQRTWvW99_O1RC2WN52(C)DLs7!z&VZEbU~0yb_Tz zfVjeP0q!#}UP{;x^~Dfl3#gYRQU(dGF!%bOUryq3MtA2|_n+&meao}<EKBDa!n?g+ z+bN`_!f-}YLMcEKFH`;i8gk;ez2BkN9%4QMAIFj-M*1cO<{vjjJ@JXDfbctVsxfiY zVgt?<^$=py5dJ*zdX@Tz^AS{^KAub8x|p{-E{W2ABg5u!@rIl1nwOR@_7gateY^!6 zh>D*Kyg^G;u<g07dt}<b9&2>$ubj|Hf5OJ{kO%A4sI}`CL3X~x=)cC8la0iU&^OJ5 z%rxJpu|lk3M<?a5_Nc73WUVNoNBf-|P-?(#$+(3i4@w89i?i($3Ht*AKd7!O9&<<p zPo+?XEHdD9Gl!|wu;G-)s424~h08cqLP)97;fpM~-;V6Q*h{)oM)!nfhF4wK@A-J$ zb!~$nWc=+r7VT9e-5NY{Utv5RT6VBFwX9%7?$?z-5u-#@?xUuRmTU}dtr-3tbgTGA zU^2ihSNdCW)E!~?Sg{`+3zSjw(l<oSAs~SfimHMs5F3S^?pMPAl~v+GsV-eL8u@Us zH{WxZFDeLia)9sF;R)JHZl?$ip%X28u9-)61d?Sl!^_HdzsB^m3eG$o^6z}J)rS~Z zPEE~Q^eX1xYN83?2Y4`a$Hle`Sl)J{3Y_|TtVk6h)E#M_0;jRxE0LdJ4|RSLZ=b-P zPN1@+aWfj5K_&`)NYe93Y+92;TMxsjJ+F6!3?ppRkgqYJu0!6|A~f5ie>*8X?x5>n z=aGlmkxL!&2Cvkhis`{ef1u7PlV}ci+bFDXb3-h8VezD66mx?gH3+3>9)I~N^8@Ft z4s}+AgqMD)E8n+kz-s5IJ-XdTgtJN{R;L~4>LKJ_ahH-z?(3qcy>srW82`)()oC{I z??L?J)Z>c+tZXkhR4SY?Q5;zroR6FTVw=^xX&Ui-Zs!mMuKe6~JAx`x&&}%IeiH-n zQ>~lgtl=ZA)1W0f)MuL~sWj{%QCY(6kl@7dtR*&5V!h8SyeH;2Qc2&4+^=Koa%aE& zjVN&J=e7XvjbHo(#<n4O7q^}EzBh!jJr%W^4*NE)@c6cOhqAp2wOa#wx8PH2??xW> z+GgNf2deOww@;d>{H1q?qBjV6U`$jxoH6N~M3RpmYBS>IU&%gzwKAlAHT2|_5WA?- zO+(o4F+@HOoK*;kdFy<`iV)$+{{6_qU7z&`>)@<iC&HQE*W(K`Pa8wE;1EZW&_3={ zIwc#!vp6g}sMKM5Fk8VVzKUBWRDl5+m)NfICez)Jn|$7iTQ5|B6&jbOu5xzN>eqQd zcWKt2sUxgnL-5fKp_!YpI!;T!S&p}4NQk4qP-p#VXRaZmEe${Vr~(^MqYRcJ5B(%y zC%;0&$Xn5Uyz1~p(;_|U;b~$$anWr3f@<wHWNr`pPAZ9Cs>N_@`Gh}WWW;URbuKQ~ z8vBzxPE6t&c)$87imX|b>Za}GVcT48`0`c}T|hm+Bez?;FCAaZ7a=;EI!i1L=kw?C zK3Uavbo?qrrgQx4)WfrRd^=v`Gc$~Lg|3Mj@uFe@2+BFsloFE67e`5uqKo>PgNu>u zctVE18Z2wE7?UIf$EcnLL~j4Ze6=vkj(oX=ve{Aq+;>~QHFRQTN5Z3;#*X&%JJXDx zf3KbCyj8^#(4ce4mpMP>tbfi^Mj(&F6{gAaHHV{j6aWOe(FO}l(w})1TTnJ0mH!s4 zxHr1ky8hjZC^GYF_;e*YX4nsp2a0NO_>oZx=D6`mCxm84e*2dEtw3;~2L`I(<ffx> zA3XJ6Wc2lg($+5(?L}YE1Pr9Qm1pM+41}!XduNa{J)Y}ING}3CSU8IrLg?Dg>66+B zZrk6&qq>C7`BOBn4>u4TZ4>mncyNm$g4;=`X<bm{vQ(#7v65NWYOy6njsjI3Tz+;) zAd}zIKtp^kvA?ZJi6D`$zizl4mJil>YLydpN6z1ny}`5V457|Co%ora;IP0WRv^{R zOcCHFkNQ*C<)C&a$HscpYqU~RX6-^0DdU9Z+M_iD?Uw$8vj?tl^UaFOGUsYdg*h6R zyMI`QqVTi?Y>FUMAxnRuq7gqw!O$SQN<oV9nLJcJOEWxGKC)mqT^vTWK3Q&QXw=sD ztGH3O-RpqK92O~1;O@j+$Wf&n1jA@*N^5e&+IQou;L{44rHaS)e>+ZJ!GSwZ@2z?5 zhUVnQ;;t3e&*IE#I*z<t&S2Zx4qLOMz03u~Y09%cb=?i@%@@1-TJ-rRWN9abmZ`5B z*xB-1^I<c}Q70jt@nV03dw0X%;<1|i@^|K;d(n@80Uk4fI%`rg0)g|XA}{6ViuY~$ zHpe3oHx8z#iJWH@uvfJ{-v(x9)L{1tM*kO{arjEogGqLr_<D&x-EDz{xnEO4zW};< zL@eVPF>$;cvWjTAPJr#M0MOcxmsV_<Or&DvfPSF~4j#j=FNB<}zC*rouizoLJqS+B z$y(pvG!63b2gmok0xE$3`cOrDanf0qzm`kcc)1<!WcbXuruistr}h983V9rNCg{Ut zR{fUHe8g3)%ii)|;j36L@7uS&k+^iK2>48r<~h+AoqRDluJ$|3dIAg98<9HE00~+2 z5{e#-8<~%{|0RAL7E$?n-LDI~hzKMEg6Kp0@j0_LziSXw_N=foyuFXd7^4ViXGwxf zmhaXtfuH-75iFSj06OeHD{KqoAMlTHaF!4~Yw!gFE9vRs5&$5j&$9rO^WbVBtaoH$ z<CoIQxT2Q9Ox(jZ7>DZUem}s9h5No9JQt+&{*tWlxk)+kA3QCs>=sa><-0{nT86Em z^zv|c^m59Y*B?+Wlo7lbB@wcOesOC@Y`tpxA6~Wn*$_0bf3*EYGDQJ&t_(1y{lfAJ zPVdISuegY<UB@=s^ZURr`uo3Mrp79YDvX{ThHcHc4uI{>0MHz>y9P(JO_A|L^aZTX z<*(M7?Rx!D_Wo?z=AIoz2JRX*I&~Icyw78t;v2nQUW5`ed~qUmi8{IoV}0wZG}*2Y zmcp6Dh~UB#nIO2U5zwzPkOwmHM=!TPEp>7Id?n8Bv_$@E0S@V;zRli9oZO(SbY*DA z2JvDxXyL1)@S0XY$!jiX$(&~?Q7hoCgy0z9=S2^_)Y^7SI3P%_MpD%c_-qb(zxIJm z(Hy<98VPp@ARC_AwjZw5hCHlX>gtC*CG_cM`o0z;h?i~W^GA&VKp|6AE4|+<Khu|0 zulu+rv-T3A`xN{F^c|WDGM-g{JEVtJ&yE^6i5|_Now(NpBSn}X^mF0zbaBgOuEZjJ zBD(8}ur$C_Mmr2fa%F}?!voVqe)u_O-qV6!*$KvcbMR8|cEbqak`s5M&5hF;mbnYP zgKhRk^Oep!cvtCE5Peg4j-YU9Luxk)VDpU<&fpA6=sVtO8_Dl;vDXvbsIoCyt+N%G z(WB;3#|%ct=|W1y%mZVL>~6;}u=DZM9(UK<`g*v(T34EjjkYnPJ3~UQz_wWv=xfg$ z1GIl`v_&a(hl;Ph?x|7(iD3vS#XKN18AOX&NN)Ht$RVzL=$8<dqMTgxIFO1(W`Tgi zBdIxzM!&;=Zk>!SF$7j*KM;q^t$`(cfz)@367Q40%3c?>Roe<FH>|~?(}Mrl#PgYl z@dfuG^_vFB#ej&wGY2*GbQq7pSVd5-ek5F)jdI8ZO~Wj&3(g!6&o3T5SH4$g;;Z)H z>aon}M#mlgBS;ddKa{_xN7WVUwx<^Y-~vfbcN6!x*gja%_wC_QgK!hN?`@l_h#257 z@xY)+7s16NH1uzPB1!5lqzTM}Wc!96q*KNS)?Bz<9j{#ej*j~0%|#K;)PZK)%6WRY zBLL`E1Y+sfhl9IIXlrUCRtoB3&%@k^kN68(Gxq5}Ow>j?FXBBwj#C)%l(bg@tWH@I z;@>;~r=X9(#35PRaQSqxx}+^pW{bX7k2JBmuiBo2HzCG%gt$Q&bbX`6S=+R>WPv%P zk6_7xThn-NOIz7U54Q{eJ4e{XnT(rNWzD>Sy)D__A!0x8ldkNh_ge>mBO-9no#soZ z3s1IRh5d-B5na5|9Tl0Y`>TH#n+nfNXnajb)CK{?P6Ls7)K?g}BYmY_2O(Ue^b$J& za8?8^ozO;46og}iom1QK84Xxik2I$j5NeCNzUHDexW?t~oAzipt7^J0@8?WkJg0TD z@J6now4?l*FXBc2XlquR%@Ccs0%_v+zSz~rjfeo@X}=y;_{}8hG;J?HTkB=fMQ~SX zdFu>n`Or*cV!dEJ!`X+Eq6=}tgAwRm^b1C06&w7=WNHW9?sU3&epE&ai7K#S&%)}6 z?g*zvg!#g9#~#@sD{fbXi_(g7y-ACHFDs|=2%H{ziM4dSHLBuBN;kk58b%zR#MnFh zgGA~h0+3xYzZPxaYkFE$Fuh+F0E}HKB{`4WZAFUDifdZtaUv|Is0pDiF^eoFwM&tL zrpgB>(wlM<n5LLsg-~rY6mTv*SftAn$_=YSjDG;*3ieMoxtlEjrs@DLW=MBFnoawa zgTXJoiz$?FJDY`>yS}!W8lBfEt*bumRY%v)3S|nA@dBXQH`*WvM;=Ft!Aq}E(F;YW zi#&obz3HLmHrgD0eZwZ9eCwFKVb~or`eP#STq9_xae3`P54)|6C=K65TNPR$AD~We zDnA1^>lX0lo&Wo*>wpC|C7UlFo3A~8dBQ6%vsU;L!@y5PsKfBqVSicB?UI0<T0wRP zeS_>mO8SDpDg*kC@_2A_xDSJ}*WYoL#ZH>AzpUt|Ns%4ex(L?7Ta_-mTNRJQc6=y| z3cVR+`NSzt24Nj+=*G#zNEY^QzSc0JX>&8^AL*wmScflYosR^4T>edNot_c6jWdlp zu1^t7&2Jaj9Y%=B2H~v?l_fdM;u)?17(zh`0V(uh(B%F`3b#)Uccd&Ceem<~V6zBZ zyYqO&Favh<@?>Ds$DmwCGN!{%kkcBo;n$Q~|4#B`q_+wH!LsU$o;TbYTGEZK6nHuS zG&TsZQm9t&usLdqLGA-LgD#d`y?r!Nq`XCEaeRmomjb<iK|Clq9Q3$u5o>I`bu$m` zA_@8{6RJV)r^Su(fj;ybY*laH5?AI2Fh?^!RQ*S8+h1BtC5T_48D<(Z8AnKWhTa@o z!8kx3L6Y7SN$Uj*(IOwnr5@ie7gtW>q$w)B_?x4de`^6C;`4ObTvU-w`G-)dCZgt! zonJ2F04^pTED{dLe?W5T{<)lXD9sC)QUmNVLGts8Cy?qfvCU?0Mq{{_ml6lD0H4&T z3xRPd>dE32Jtrwp2YCcR`Wty=h@vuty2vat;~seLsgoU_qXH=roB3<C<8oU`O)nW6 z50d=sw;1I}7plU|Acl+4bFybL4nf!jn&#kr*O$B*alX-C<uD(NBB9^T0oti@<Dve_ ztM9Y10O8X6hsJ|wKd&iM{>cGas>YW{;tIPH9k48FjmfpRS^VpgX`j6P0;3DQV?=*U zh&)qy;>S%fk8kIO&<=qct1Dr9qeRtYnPE*kvt<?^FLp|}x`FV}cyQ>CG5mn<^yuU9 zk&+6CB2)qu@P$Crl*w3AlsVD(HOhe$&+e7fY7dp=g!tb#QqUc_07qchXq=cj1sf}D zBa(&=JvI*bUS@faI5M$$aVqV8(X{TaSq%6m3b-p1UraX9Y5C`i@>6_B>C9Fz1)Orc zAHe|ehiTsje=QpHl2~BL``Xfl+0oZn0cv!eSRhog)_C8?up(U>h!O;ZdmoR6_B{cM zN6~G|ke0Pd5ZFN;ujv?yYqs*P8W0EuNYIiXh5-=&x>#1K10|W`Qxj=l1Ds@#edPd8 zG~PgT=Y|+|Ho(PufEx{D^D9GggGwj&>|X^;WQbn?5Emmi@#YU1>I!pJR>im&`mA@c z(Z$m29VbZ&M!W<vgqDE!?BKe2IU&GX#m)tVR1RQ8E$?o6lYczMuI##;Ja4h#<6A4B z)F3F}8OQ((OB>IpUdf2}cC`D5qAAy_`n~&nWnaR^c6jD0z2s;3GSRn^#tpMM=J+*y zNUlbA*p#<R-xL`03wdMQUrnsUIH0=B;P?YMf9X73M+KiiMBu+Gopk9!b{y{6REMWh zpVic)a&=JAb}p=$A{pOK4WSL}M#s6rOf~Pjk3)Kr16<MZ?1@SJIW(hiBzreZ23d;& z#_{Lk-<Hc9{V{~x97j#}-5YpqQr5?Lw%woYRXh^OmeE1R<A7?i>)<0XpGq@>D^UZT ztF?o_yE#or*lCqhj9;qqfE{Y_AX%#&PjsWnk?}bbS4coJ@W=6F{sX>MZynqXk%Un^ z*!#zW+O?8G`|>mg=--nI6w3UgfuFPX+in_)iT2I5SDgocg>Rvcw&^O#5;oilq}Q#; zV7hrf>$MSFQ2|p70+(%u=_Su*H~s;Ohc;-B5&beDazZ6FU|57U$e#&aA~7F9EuRMK zI0dIJ7pS8a|5@6Zg|#_SKriqGc(X4KITVMSW}6NB=Bjiz-m$>$?6#3+AibK5quYCp z2c2arR7j<KAC7}|LrQO!%HRA+2kt7x7xRbZRR>OwP#kyN$0K<|09W)T(ej;adNZ3a zSIj8FnKyH{V>6u2sP0#-qcKB!{|v?C-=Aw6oyl^8`hoCf@!(j<ZXW0Yf2zrLN#tX? zIB9|l+1iZ7Reg``A$}k-BYHqWB)W2oblo5siE>uE1cVk*IwEp0%k&U}a1At_(|9=& z<jVx6D92k0Ie&3ni?cH>Z+kgRkMU<fmq-92DAiU!Kx5K2?&iMsh2j5ZfLx|oeqDui z8MR>Zt!bl2_`b1gLjDR-Cn!`_t304kE~Vyt#i8;_v~;=S7XwN1;)C_agOGvf2=S5V za_Dc;Uh~{$heo)j%eyV&k$51z!}<O{48mrB=%3>we?XdhfzeLB6p~+Y>5)U@!)fFX zxmWfT)>d359az6s(Id~rhnpx2n6x{vmWSk3X5~w$sDng*+%PDafFS-U`A{g}gtvHP z%fjWk?7m`qXawrgYJsiG#74&)8;7qZle_%Xn*5bH638qOkB<w<Mcxq0O#VtAWNxoR z*qKXtH;TckPrva#t<s2#z~UQzr9${12L(a$9jVLC_h3O(UV`lud^<&!UXb}4o|D+Z z&d>yeZipH#qdL<tth^H;0l^>AgH-tJh|rsaza}3Z$~q6ZDL}m$t>8G@+^<g6^}c#+ zi(Z~)X@i-XLEx+NL;C^VlOV&2z%Q{s156_!@V)t=#CW2AF2l6GdNUx4C4}E8LZm-w zTVxFRTdRYrt^5Wfc|bS{;c{%RpFE_kz3meCXaD?W?;r4#h=AovC8bycD1NTVrK9+C zgtPqFxK)q^lbabX6(83uxBEowXVR~3IzBF!<il0wG7e_dZ}@5kEV~L=$L58P6l1ea ze}mpCC(sHhMH=(e8l=F~CHQ|3FDHI*c{S|>8Idy*!tIrx_zmYis~f*#&YdxnzDc4S zP_V+^PRBo0V(H}vk&$2j?7hQhV@w)wSSQ3_RKdy6Wawaaw$?K7fxx%rbDt@MN?Yv| zotU94(9~*XLrk(E{$u%}Vj2@BM=bn9|9A5npl+s(e@xHhHw1nqAL^z7WowkQ{rZCu zc{+hsT?Il@84+DW2B*w|B5<|3X%YhQ@5&E-i?`*m@)4s3nhjURRhbW`qYg5*@>2-c zAnS*)FfbN~<v!s5CXh+R&ru8y<yKpF&L$74@8n28_y)l>U?6=W^9~$PbYmSBVm8jy zjC39Z7|V3(nIOyiBNRX}G}SSeIM_dY$1hf8Nx<k~!<Wgxr&ea6Ti+Cmp^COBdU^0@ zAsP9Tx8>#Y@yc+{bSK48y<L!*c1IIOIdHvlLu=<78I^LQpCmIaigXxu(X!nhn9^R~ zgj60Ls{qP7J=($}IEKAUVp|tX(5!*6#4PPpB!J5}6^)^xj={t%ouAKSzQgw;B~e{M z{zpr^I!1yzh8!~iU4hG6w26fxJL`p!d&WyoF5v>dOm&dUXKl2*&j);Ej2m7A_@7K; zi}2O5*1O=s%!)f%k`R*QakWa0w{||L4J$Jn7imUj?ze?Q<>le&3%J$Pi)S@HeVf>} zHWXbbEqSQ%7(2N!{wxpwt{`+8-#jOE>ZGv|#rKh{o+{`a3o>aE?PtwIH`l8`?km4a z$%6JAb<M!RZQf!SIPIrZ4}KCtxV#!Oi%i*`H&vMm^LP=yRyJ*7=5pmaIo5sRLaA6m zrC5PPwz{VGpi}mM%+!gIcTdZ~T$;ME(vOsPGcUioa}p6$<#8pMCw~o3^LHpFA~49~ zrWSLs^Vgpn6U)P67C^bC;rPiJMc^_tG3`hlJa9dgFn%)-T%@^8Mf@{a^_uEZHJ0E0 zNgbR$ka$z!yXHb!S(D$cs}BD3Ljip;Ij2ofW|*CMEg3&fFSk41I~q4o9z%j&8YwCM z{Td;Kr#yxTJ;6odz3ok9YJR(-x+YJUgXoPAP4F)u^2hkx&yXOuWyYZ(VwqTcYPs-G zYEa}*hedZ~Y`%n?I+%u8@@yDHAN&J|tQk+M4hf=ec;fo^3Z#h%A<Yr(+#?jABiM*^ z%ab~occ{A4*_yk9bT;7hM&cXGgol!lta~6_u4vghyE$|XyK&unc)!!D^HsR2@ZP%@ zKmKy~5OBfaC&Pk5y4=KhjCzv&t-;`O^eC>GTBY^&;ff|wSKGH?UWg*PQ)`1+8~H#E z!wE<*73a~+;w(%khT^Ln`Su2@T|*tD@}qutfv_oR_m3}}(#-`?#p@ua+kIE2c&eAK z9T5T=qcm-XI_Ho$K&ssU9WGmw;WSK-DdS1fT^+Q=ETxww)EiBTcWo)mmy1uV7H$bv zqjk;Bl34^X6u>2@gB3B%lU3YmDGt;zoS3Dj3k0ePW9m%B<^8D&LVfTH4ws@?u5<9+ zR9UtquU0>r+(O_V^P#6x%K0S^3-$VR-8v!aIa18IZ)XaA{avxMmSE<}(H!<8T?^jG zK(9*(pI4TO#xbphz%S%OE%7dbE@mEtNBR0>Wy;G7Bc_^Vq8e$|dC|8M2F=7~m_aAF zI~akg7!phbh~Hi0Kfb^I^lVHZ?~hRcWx;Qblq@Vi+OV+x<?&H@^=D&I0&|%-^LVzV zqObhh?<nB$z0c*3zMfYnDg{+jCt1F}kNa1bAsa-iZO^XPmZB(m_<m~PXfhMIgYV{k zRsjnn<0nCok{bqnQzH4mHw9rF_-ElCPKZZL?JIwcciv@&VAm;adDN5`a=qOb7ZoVW zE^3lmc?{NVekW7Fo1-oiEPvFge16sQYTxdE+}!v7a;RZ-`on3sXb`aa6L-U9&Yvo* zH_kFN==y%~VSy-0ngxqCDLPCOaoRfKjrn&~Z{SBaq_lkJ>B{fucM7Ib@_{r3VZrzn zmm}m$F0h}lFLP>%0^xw%xt(05s47ORxdaBN$|XY^$%h3OFaD#=?U+?1qi5&;__eik zkP(}?EbwwZf<^IM_@uG)UJ5}HdC3FsNuGFHR;$n5(3uI(>>g_ToJ>aVa3YF@JYFiZ zhe*fIFD^^7u4C-3jkx3&EfS_W@`!8&VU>x$mQ`fhQtRh7WJsmdNOPDd0&`#gw^RHk zB_yn9;my%ezdifZ31qLPgg5`3y%2^GM@;%j?-3LJ`jQyzSLSTfYDoTae_v@)9r&`- z8^*(btC6;=V!w{LP~Il;^jGUo@0%hg;{x8er1fCu8uTyPSLU{Tc7v$@?$*z}Bc0xB z%o`kum`Si`ICtzD^RY^=kERmxh|~pPe)t8qOGKz_a#lF`mxjp9QOL|#0f`J4>bVat zLyCE~q&(`R#LP-&`L&I0`&B3WqXX@7doA4R|9L$#EDnmj`sGm8>NL-ZL7as+*wyqF zHs>?Ta<V9OyX0o~j3^@CcgnP`^F;Ax(iZctBM(_&0q?kanw-LwkV6HCq`*IN63iVg zCgD}(vO#fyJ#yC=5plP5W#Lh^U1ydOHQ6q+M@%;3E9@`Hghibg?XS8g#eLMcCCspx zmZis|en@%Y(U3zaX=fmKUC=j=9mK4JU)Ur)phPzpH@Wt@t3v9e!s?{t%oL9KC>fZ4 zQoJYI#rB9Fx>GR4GP76tNxV$U^TfC#vo*QU3;cs7L4fcS%{tUco1yu#+d&cLvZ{yt z4)00ujTP<j4PrwWa;Y+@CZm#OW>aFN&HZUmW%KPJ3RV%=F3V}yU7oGclX$KsU&n8f zT4GNT0l!{V;L86jKdcvTixd{a6?hSM26>J5c|-~kWyH!#h;~;-)HlwUkT9DB$Aw+S zw)T8dUv2nflNYHcI`^|13wKABI)yjRc+hxJ^nZ<-e|b&_(qL&<6hh&_ItBg>LPJT2 zCQ%g529mD$?yQ}<_KB0XiT#_8O(AsTwWzB^0_-hIK=}i~(`A&;IG&pACM3+_MN>&* z5>d<hakAjjw^D0(dfb#cd$4_NPKwi8oq#eA!80!!NP!8rG%x8#uZ$AzEMY{eF=7=b zM1NO)(zat0u)@i3QnZu*EW6B8?Ts`yi(90Bn&~v`3Kd&EhP{O8$!7$@J57Se!_-j^ z5FHFW-4g9Y%6qvIP*Na$#)a@%>KSD4I+I}IFbB|7kvCUjKD_)Sm}&1ht%u^eoj4u^ z6Vk`^n)1s#s=r3Lr+AF(`x|jemUNenA}^*PZwEF`C+3mmI*fQBN9qR543pg#*zP!b zYb*mn%*zjpRL_>8NKu$<r?;a02BzTZ7YT@#rpL;SUnwoluPV-$)SLvVF`o^tkc;<i zBq%*CofW2kVWN1WL>k0EftQx@*MSG4E}2(HLCAs~>ojqV7xj01^qIWW+k8_HBrql4 z6bg9hzhvDv*&7In|1!*MwU)>m_xj6Rd1Q~80b+fQkNyD}2Gou8d(<?E%?Di!9rT<p zH#SSdK8ozwIYjl)W39(WhbcU1OAXUn8OQO)N$2WswJHz)Nr6nZ1FdKi!00{RLYd!2 zjIhGZfmqz}41;o=W+HEUq(uhZduw|g;!y-4cw0c_Sa+3_KRO>Ksaf|@$`Xmu>Q($2 z>9LmLN4wcy<*5XY9Qm|R7J`K1+spf#p6yNRMe478U5wMZ8G8PTlOS#@qDl!Ja!>A3 zQso{BKvzl}%CKA?SKdE`bwl39Pi^g~JBOM%FL04pMfpAv!!2Q3eY6!FR&8ALgiJHv zV%YIe&4Fj${0+*^C$12uVRCu4lM&C2BJ6as+KW2P3e8V7SGt|v9Rp;>v=o71E<Hb* z6a@ZbcVa#Cu61Kt#xdkdCnB8CfK0RH0#)+E#Bdq=hr>t~!KBu-O0{83sbAAms@U=+ z2`9n2#R`yl`fgp)M{0_T!21&+V-`6?f_xq|$;H1&H-ARhs6GVp7E1~hqS%w4Y~PNS z2HHhkYPHDRhYNr3Tc*Z>#WFNWN{3`JEKw4<1oAdW3T>kt?RStT1xTc7Mja)Gk+I9D z$ZUvfxA6+YSDY%h?+?A+sGTT6z2ySM@=fo@N5^}U>qzR}PK@Zo^6WR4*X!wa11Q*) z=dF+vq)Gc}Dd-}C!v+XqsR)#lbMW_4)DziDnr+pu%$kq|4s-0*k^1HEX!3qbHdYq| zf30DglTEXv0%c3=s?LsF!5_;%=qysc6Mmmj;4d=?CJiH`sh9Qdpu<{=i}sgoxnaT# zj>MFZVL%}P)vQn`;k^ngWfUai(U@w&xrs|eLO%^j%LqwSBQVw2bMd{Kk=&iX&Qdmy z0$$Ep$pZt3ElHXcFo*9gDh13W$hkrGmVWmZcHc4aS;mAGr_m(?ztbR&$A(Etq2mRN zbTmv`Ny03V-~RL)Kew4z%q-_kA?B9AOeF?&>s$677Lgrdk(>r&PLR?5WL>(7{>Ce9 zRS7hc0C0mLp@1MV+xjLJ;TvP>z+cpeA7jI;B%k;#=I%gik0~h^UBV+!$Hvsmwnz67 zN>ZMbD^UA=3h_aL39BR(PdkdK1PT|mRJUL8!GZ7y93#@#3tBgc;9dBt01U=%eTiVv zSd+>d)Ak1t_@qzS;rx`NKLc?a<v<+el1ggYS3q)`f{UN{76kW5OnWMY9<-R+6Bz^F z+t*E;{k-TKc|qLnj)}YTU2#z|uPIZ;2EdwD7WmU!ON000pFY$mL(!KCQ`b7`whyL@ zeSSx#(7Lg50_@ZSCp)ZaEtnz-33VW55++ppNH)O8DPt2JiyO>a>^aexL^36bvP)f~ zE!1x;)DK5t26Y-A9aKD|`9<9S-%HoLe@a&~V&y*D9SWFFmDoi%k@)D61b!;9S|V}V zL#^y7+gUMYWE6dNi6xh&85|2YsMu1wExgs_Y-Q^6f2vofw<U2jB{Gr5j<p5?9f2-p zp$oX*50`r1c*>xN(A8*<^&5}%`+YJi&Wg*S(&n*PwJ*aX84tr$W89xytF(PLT4aou z+OhyfSp=h4(_Vzl{nxXEc?JjA#f*1RiY@Apx-?aw0WBg&Tv#Jmcvg1#CAoXVVUC>J z_$^7U;B-Nd&DF^fzGI*>Euv5y%|19$#~~XE<I*tmW99}IGBG2;CP2Doer(*H^bwd0 z5ty;k!E%IZ<vTwMK9sV$WOd2K!RPlM5-@WUGjsdllhCSzJ-|2aT)#V@aqw0BI6buT zzmF3(jNJmQXc2ki!Y05^Z(Gg8h*pfZ`{5kTLWgmEyXm{CPEqh=P|)b4fRXo99vuR4 z@EQHxcDeARbQzrf1l*txq5Ls?!cVKS2P2ksl<YefQzbW@l!AR3vGB_M-2&e;kI-#o z>92S<N-l<?u#5C#U)P8sw>xAC)*wMUHqe7IB#p93E0q`#lw<3+@8NL9w_=UO`XLsR zNiMjU+MZS!#S1ez7E?}+fq{lTIdd@|N;v=*V+Ivbe^Fw&j={W@4c?_fhmeiD?JHc? z_kG`niU&an1>(`gyZo#i($=dt5hd9v%@H6&Y%qhasVC#`WU8BR4V%GPaD!5qe>^U+ zgeTD>4#p4Uv%Ox(HQ06`426tm9-_`JBsQblGkGl~P2$mwYuBD!#b$7t++bBm=&>iV z;8Rw5#8F?H{e$G3A-6GSYD!BY@kzOlY9S>KUpi)rQm`f8*3ys%-RSGVY^Pz`DFyex zJL9iCe-KTv=WZ8BCEiHXbZ|)sui@!eW=J^fX2%~bS`$o7*{Q9m1B`k$$%}6e85a(~ zO_@OzHC|=`Ly9P73{r`ya<kkT6-aoBC}<3LbSWt|e6N*j%z$5?8I*GBwQ?;IicL~f z{6Oje#U+EFL;~@6;@$8fMy$dEM>wE_18@;$p=|N{67Y7-SaZVMYZN58uK%283gfGX zw1jb(p|7h<OWzys?SlINL3sp9T_(i8HzuNB6yi!y99G<KTkhhDhbJCTH31G@EgfhQ z_r_ta$pwef{iA@eX_(AGxYvLrxe3#MRfk7yxf*vmD`U+h<ha2!VYnuv16*YcB&rFR zYD%<79Y-N1cl~}|X3+BqxFcNU`W)ia6lgaY(SI8MSo%g)RxV_NxXjJ`xVgcDa?A_% zvb!y%E1RdA!F}h(m;W{sz9jD(JxpHtF3rx}AnzF9#9>0f4&rVvZzhg%U12dx$nO85 zhfHdl?z=|*?AhU$6R9+@2oxX=n8^V(%1hPjP5+vn?$qvb?V7<kaRbMhwViC<EXz0@ zh)WbfTf}_s*7vYopUuwAI}Fe&a}|ff2Yqy(<A@QC<>462p(&a#O5zqdm|UvCgA%xl zlhYH<(<zmG^B_WVxCm}dws4%rhfChk=qM&cnM4{=wX{DS(S=`EP!_7l%_X9_!Ghtq zpYP>_|9r>XRShnd!VMoiDu8Ydz@3{x`={WP2u2@rUeAc_+Asb%f7!XGPAhvh6Ohjb z00TuFN>~@cdWyojIhodxF8fcxdXap(66w~MHl%iLbI_Q9fIc%*N<34y2C<r_{b-)5 z6Jn}X_jX=>i73Qr9OJCBlP1ns-dG#Zk(s|sHE6+VR?j!2izd~59=bdbaBODUgjW+Z z-Xbp`wg9af2$(bD2~%2npVXjAj~~u=uh<k^#bagkEb?@H`>?}VhdR!XE&ZkH)J)Q? z8vHj5ko|D!MEJ93Istiq0PutHGjGT8=eqqF{^4K2?#j8p<^rqNB<E95f3b#r^9uO7 zd{&zhRoyN#uW0?x&AcxHj(M0wB7@@1%fIy+@jx>cYt3pWn@cX6fLih{_y@WTy5~2- zgPyaBiba$+PvZQ_8Ls}()nK7;yiel}Pg{G~71ewO0=j`f^RRe){<3r>on|I#PvKxk z5mohMIY=1jNi{$6h~%}?;va}3{+1TbV3x^MQcrCn^2fnm%U7PA<La9#e)Ep>YLIQo zOSiub(;L3Tf(6xOtTO!#IAV`#I8j}e%W0Dk^ar1f49u*AsMjiE$u{Eyylr*rDZ?`y z+;uwJtrFihzdd%COCH=6&BQWM*p{IEJT!j*VbUy2P9ytdj#$4MjzgEW0qos3>bYLs z6B~~#H_%I60M9}>szD9Z&5eCEy!ci0d-IIOaR(h*t9we~k+lYTHR&zvmU@Zt6bM7< z$>@^reHkjhn{}vGgQTqbC3P{Gbm0=M86?n^Pi)dRZf>xKn<^TNYOn^Okpl?5W;`Z} zHV4UEOc8<%Z^#p(>=m1Je!czFY>)Q}S7qCkPcCM4W~NalK9tl|WY^6}wvPNrnnTil zhcOIP;7yR5<>Ko;8yb6U$o3ZTzCOQg?o!iOjqfwB`eD}bFTN1~<!Xv^*C*srAWV6s zDkgJ-HC8K+!e^{n*1CS3zLq_s=A;wtItj>S1AwZ+uzj)E6k8yoh7w^hL$h|t0JLNP zVa6;>Q{#q_e)i!V!#B2Ag=9GnXZPMl10gn6-Pk1S*NfYl%Z3*kX?&EGT;Ojb)4%-z zc4nrXxHnG=uDb%>g0Jxq2~6X1d@^)cOIn@E@yLt=y&3tK1_i?>e{__qsTt=}GNyeC zx|ZUQkNW|Qbc0DPcQEe@`a+*MwN>UjEV2t(!dp6p&6s=ZXppv<KWjCp+|rK`@e{}{ z)Owg^ozHXTXT<_9OwgVK@oT?@dMGT}QShb3V!zRbeLIZp6r4PWM}hAC(wMaLhwwp) z@R3I0GNdW#>_e&Qm^T&L+_~$4q<ic*U=57AA4^{%wTxg|k1R0b&t_&?t@>gEZxO`C z^_~xpu3Ox72`b-@KySvQ_MShx<sNB@f_=7YpXm5(gRtv8p)rlZ*RLKnxLhb^@QBr# zn4#0OhYh2zj!;?*JoOv6*eG}j#A%j{#`gUxaA}B()&YCa%+!9U5I@V7vO-C#s<Tsi zNW+uRgH`Vx7Csf3hF1z%KJ0D4(hAqiX5tZy`8pvmfyPeUrD7?jXDJ5xxKF*2YV!ZE z_0>^v1kbvJ;1E1WaF<|<TW|=nxH~Mm1P=}Yg1b9G0*kvl1X<iAI0V;);KASi?tS;% z^UityRrhq)bl23Lovy0+zT~gcC;_IQ_)cYF)~PVh;$z#yk6;Slo_Kr4Gmz_lA?mYY z%CKJb7nc|R5OM%uSiV87*CH%kRKc<S&Q>eoQNxx1WlKON8r}zeKVA=AE7)>Fp--5Q zL0lj2{8zi5qo0}0Rttw*L#Wq!b11+3(k`}yP;Z8yU;bvkET(1fYO|kJ+`l38invug z?fAuwRlMV2#|@=6KDJlvtyaK~!obtI%;8+JCKmIjw;#ob{%c$R93(5>+nOv_Y;vl+ z{%J<bIINSn)}x)Fi;JQ(4XcG(^lsP5M3)$ny0mn)S62PI5L;sY75nx;0N0aEdrd)N z_JsJIV}Do`1?KO#SbdRafe%Xyb$^bRGAbIbmJ=*|nr+>J?(zw=rpBC}Dx&8o^+frt zFKVe=9anxK#3Kj7Y1VV!<RbhSLl~>0XDhMz>Ic{ySFy>~SG@eCfQ?J0BxPS(q)Z_- z#2bs8H8^OSW&A0tphfeDO$Wrr4B#&w;8Kz&6T8C!_E8JpTCn{C@b3?C1@AOtk|fs! zjx3Qd&INP?<`82}M#l<q_GA6DXn+PSgDk9-TnU_gsVQ2laJFzxCEY6<^rrRM)NRzE z&)>*A$i62NQ?sQ-)Vi^3O}=sW>ssAxFhu%s83?ZPwK8C{HelmoPaAGjtFAdId}I<J zF>~rU4O^b+&k<ZQF`F(zm@bO=&XIR*=KK9Q9q}n0RP&<r-xBS959GJjqG<CJx_~+{ zNf--47z>CC2x_C+9ul{jZvVBf^k!cPkH<8_%Ep5mBc_`$u$vHYZ58-=VOvU{Su2+z zWifhh(C#eX{kwKLqE<R>^0DhzdApY(P?tX2ChSAqO6t>+gL7mdD-A2H;)bbe;jdby zH?>NVA;!!wiAVlflT{yi#B~CX<govmA5_|Yz078oTZE8X6mh}!EP%OW%<{{ag}d!z z<OJfaF2-NosEnSZX|~FJ;s&T|pvN0JHe_lx<oD)Bb;iH^6yNwMO73ZLH)1+#{(JXU z#m}smP>ZK%D(sDo_+OQ%3{P%}{=j5n1V&jbF7w5%k1t$S@B$D-ND?h$Dt!u%OJMyk z1BEvR3V3sh9*#%dRDZX0z5&w-CDI9H+968l;I}DfG+Q{zL?rwy2>dJ&wF>FAtyKtN z${2ylQC)qE$p0+?YtaL2>wne56MYIZ;r1GzyhU{GO!z8%YnI+7B6}!dI4eb|4zaV; z8fpX@YFr<tou+`6+$l@A;Q76-C<bIAB@DPk2~FC!O~^j+sX2D<(j^W10MOJx(9{^n zNK*AJ#j9XME@gz8XeT57mm~}1Q}A<itUT^2&n5MEfF3HmIaI)tR@E>}@=<n@igek3 z3x!0mFv2mKm$YUfz3RYhLWyibnH9)q?$TfI@Oh&GUZFBdsgdB!8#4_{M4-m+E20bl zOCW#+6r&*Z`QYrPbJb{E1z!;MMq2~74BrJJ>r`=vft5grkU%IC2r(pe>VBebN?x}# zw}K#8L8w{j)<>tRUi1i9BnVh;%OeT@TLNXFd4F<}1~_9zB;(c6$i}==utg#&sUxE9 zH`qX=qeG^qlf@!kZaVj0TNSQCjHW}5ppylXo2TJ=&dmsKRA8NWVV))v{z)bT<XJ8* z9axIPJ1XM|^WzBt-z)<M5pB2;K4Z`df=F69g-yoU|9mR9+x2VHw-=*?M<f<W=ID^8 z>11Ol&BYGaQod6pA(AK2?k8No5}FA?5QHERBQ*WRSXkkN2;qd8e-aFLwikL<JZFC$ z%fC66$J6|bqVi#hjO7;@3ut4QDTB9GS|d<e1D7JHi{TwGg-{}e5Kv$lxDQ{%A6X1q z&LjbFYyCwH_hgV+A|W8!@=xP;^CU#GBw7MsAN&Mi6_`Yrsg?x!juI0~7#K?ku%|zw zu<+qG%xmk{e4HfHV`h<HW{Hqe$n$<nK#z<|FB?OBk938?uY|#+gi)ZMlq4{Cx{tL= zkGw>WJi<7#srLtn(k+j7CHtWCVHLwyOIz<ndr%+OJ}JmH`8tc&+2HLrNW>A{vp8x7 zF-ssZ3#b$A-gw8S&7{+CQgzNmn2T8hfmvffA`wdn;sbn~q|u{ck)UA#VT}9|LQ1Ab zPJpj~{vPQo+HWO{X{D$PlS`H^U$Z6%LK7sSjNvUWm0-&oO%2@4q;W9h;lnHIPA8h9 zf~1?07kKx=`gVWq+n(FS&xcom^b)EH(@B2fgH6BNnklBo|G^Qq;PMp+@ay*4aSiqB zG|3V5K;Jps9bO+u39vBwR{8s;W`XHxfk@Hz;(sxOWod>k8)gJ`6YAiARhoM@Gd2}t zW6GxoXOA!9M+YZUs+_9)RB*Py_HzHO=hyqn@<qpy`(}sx|BE7=lh^(KMG<b*<KT~8 zzAwBPIrV!PxN$x1*?zS-cg$FAt@GPDD0H*4<F6k|L+8!n%oJ=PH&igHvoh_m<njCx zC7Z||`6X&MiG6iN#8>=r&bD6lHM_tp_bu<yvW-5E3)={`ia=nn+*|Rb#5wMX*WpJ` zaq-6B)y{_dguBq>p-uLNY=!nt;M|i_bCK7Rahm^R#g41~t>w^Ayw2-K|LZ0Hq1%tL zZ*+6Ui(W2{+8^YcqK<zAm>!r4h>ICRg4rm(QSIF*h}&m|w-c~jbr~Bc2i%2sRupuz z$Fs2OC_dMo4gbj=TfU*inKg+DUlz<x>H5?BTf-wpR-pB`Sy%jt_T2pB`S|!m6*d~= zu<2#^q+3|n8O$l--l228SyQvG&Oa9J77g-hKkF@2xVXddCye7V3pBu1?Z;A~LLVCE zs$~mLHMce@c$}GAezFF1w~iMSZgq9KmY(%@hLs*VE!ymCvH4uixm;UvM@CWU%X#E1 zZd>?&wfg?+UjzBKFz>|#)Jy+NxrQs|4sy;yZT8qx9GQD3&QnthDx*oq0?F&SRU4dW zBKqhza(R18Jkw>`cUMu_0^Oo<r>+UI{k^=xN`+UQ>M;cuysw}SU0yHOyVo!UlbtJU z2_1hD|FqyKF6pVm7drh&TtmHAW7HhY?}-*dj#wH$#A8ePN8C*qU@q$o-u@-&$)Cr@ zdM}D7-i%>jHZbfNDP#z28e%>Qfp7d2F?pEwI!9=1l%2(y9Z=n2DDRDXUR!gm0-D+Y zJ+9CmOw4F-<fTT&Kx0vD{45;8BUd(TK=x7YtpnNnG&F8p2cmb4y4R{ZS4YgBOmp7e zUXD<4ZoX)c?=iBm?2@j$j;y_u#qCf~w~FtDPQH#;xu&Zg7cYFlv<Nhk7LhR~lM&Jt z$%z|0=yR1E{JEZ6J&`-Hs3b4k*ugWsud+EO?~=~saEaA8^wp6n{6RMu2i%*nAO9yg z`$p8kWpYDMspb?57JeNzS<zP$Kn|po@rc%Q3#e^Ph`Xa<pE*<82i$sVDt$0?j}egq zOEZ5JKXgQf<ltqOgv!PjJ|SXWA)FBx!3wI^3u0RY){YfKKD99|HB^`8pqpy1@8vs9 z1Q&Ly5I>erq9*$dbAG}nXbG8(Q(FvEJC{GTc|XGYF|L`zT2yDt?@`d_VXi{p8D1Rn zu<o1K*e!il_^zn>8Da>U?Vw`OsklyFmJLYBH8v%$k`oIs@i&z*93QFdzNS9Do4R6M zIaewvaj{`_0J_7J-VsoDzKy3`j~^tSTc&+4-n_M;wURZumN|+h^{<`iu4MLBYw>J; z|B-UIq;Y4yY0J$wI@Z&vZcKH@-mC2_z&^U^S+&Ks?vfuvA-TEK)w9%tMC2W+H&a=6 z%gyZ*D}k=TT7=@Gn(?aIr|7Qb>nKAmMVRXCm0(=d8=xfTDw|;^##j#<KbEs0D@@Vd zL2(^FH_|hp$8hbv@mgxHyN5n?=(gcop-lc7?z?K&(YVaE!-pxxhK8H2We?L)gvaRK z5?^Se{5-w@)!M0|uW_cK@q3YZPV4rG6I|A<EfxJ0=CL)Vk2o#%emJSEPYJc)F}ANm zY&}nXDdDR&;JeB%SEs+j8bv0zk9VSMBI@@l4c_xHixl8feu>X^0drP=`RJIB3p<E2 z>6QDYo9=RQqOU`){t=531-Ef^v1z&G{?FVLr4XhZe&b1c+mS%^pYe59oz78x{WPLE zx(2XifO5@jnV<c4-(c_;uCF#+Ot`uoV|0ert3$*mPLb!tjx@y-18eUFIy+JcJ-=}4 z89@>!RMf@XQa2e%Y^KjZi~HNu-@Lt(JxIZX--*OEv1W?y(8EX?&6k@@y$yeK1b-~N z_H+I;(v9=iGSV;;%+&COuEBI<Z0aTV)y0X&!NK~>o(So%3x(2CbS}(h-`{4Vu)-NF zBs&YN%JWs}$`Lu02-j5*W*~N0Y_-+^G)yxVNxS=pfha&d_hPYlYjGBJq5e?kg;|$- z_2MUEIuZW%o)gD$Dq`+20t9&S6MY}I?|i}yGs13kS#Hj+qnI&b4?UN2#^G@=_kfvg ztR!fC{of`Lacvr7)aj3^9_mwNmj-T_wzZ@7?Z<~_H^KJn9f-3ykAsc%nKcm-Alqhd zFTPrQpJw{c(L*6GzPw{&QD$3VCb2@@K!NzHnw)FEOYfDn#7d#VM78n62F;(<CE5_b z!-tDapMZ1}1aM-r1dpc#&s#kQhkAnT3fwT=TdRXPPgRq<XkC5IyeAJ(y0ko9P@|%6 zex_l*H{LRKkJxE)?sza$(TpTGe2pyDun=t1_{E~}4%(?$lLl@UCck)+oG<@levfDC zg=mneVQg3`jclIH7-km08IP!{P$)f%?IZVrGEt5R!k4KM?fGD}F~U=}UKbK%=TJQ7 zFa6SuAfPhW4c>1)S{JZc(187B+Me0l5uc)}<Y#^IZoD^QBgfdm{<2~QTQQ}emwyy8 zsG@0a@fHxUuGky0l{Q<TS$T(=wg_D)=uQ^!kR3c%H4zQ?9dNmye#fb*vKguB5h`E4 zqd*q73$pg~#u_BJApNR#e9YAnrpPWvfI*b2TT(|+`?<<tp&Gjo-1?dQa<-@GC3kV- z*qb4TD7omyd$u!iqXU(qnrrmKqp94or5K0L4_Za5Lbk!_3WP_QbNi6?jPQs?Mz-`s z{`*QJ*>VB8E|cPDSl!BbNJKLVC~bych_bXGR-iD)H1C_d)5BFS$k|<MisgMZ2L<_j zbBZp6<UEu*KsnmC+wZ+sDe2V;%FU<=Sa=|o@ZoHC;)npyX}p?b686i_W&)>Iz|#ZQ zk|sX%zS;W@q?F85z-C!b?)p`oc-FfGc(BfO)Y+*QfA;z40CX@}N>aLV=EkKTW!mXZ zv*kG!vT4QiM8Th9)>m>iJ*e?VvTs(J_B<`Jb4+PB|LfUWU%6y-Tj6S6O!~51QbQfe z;X_BlY=@QNId?oTfgSlCgt6p`Csh>8v3u*7x!N)Ql^9+>2gEd%-&p7N_RI_i3`<`q z;~2}2uX6)DGaa#d{`K+Bgp#kZe|5e~sOarz4Nh<V8|IB?q(q=EY#e8!8NZ9b(rj3~ z#No-<!H{D*Mkm<)flVAOSsG{7r3N_kX=A(6F<bnpJW0AflRT<r#9Ob0Tbl8Q_=)7h zS?W>8kkV!n39N)N_?tCO!n#kwjIWj4Ie=>7{=`ymxvDezr-mU8w@=OZVb@@q17GHf zPePHeRoWR}cicxUyAw(4v((JC#eb~q=I{pXS!!gf=dkj`C;8?s?&aG)dP8{!k9OwK z*QI}cqDJg{sn)HOyW1w2(Y|XfQ|$d?&Q}-nXW0;oyHnRNcQU`52jkcE>^r84ji!I$ zT-+%F5gUK@&Q#J{cr(+~*lP~b3Jh)!j<)SO+2m+G-wT|Lc;=Pq#GaL&Vw*@EglTQm z7s?6=<-AT+{}f{V9r0ek_Qm{}^Y#R%pkl8JWO#b)|FVw<c%WiOlrR`CxiWcsgj*w1 z%3Ep>5#A_|0|qqoeD3VNmu^xc1LFzIf*8L_qV<s%7?j2}Mo@qOd6mAD6Xhg^@8k+! zZiW`z?p+sJ!*mNL+%IL{Ho&TE?Pe43Sip%IvmmkWm{QGD9ge&~Euup^+@sr>Kd(HW zjPK5A9tmXB3?TW98JHVxZ#!_EbiX@yVMu*sPtq|M=X0f0f4pNotZPKG1OtXxf^Y}A zFc3eo<Lel7UW6b0g$9Gb%<qa!y8Jkd@AB<*^g=`18o8!OAi5pcq1qZtG+pnt3xBa< zvf-lWnAAUk&G@G}t=qI>(JErNi1C{pEX%y*eNqv{w7MSKM^{RMI%%E!^~)(1EbF3( zELK2({)g(lf3(R>Et8>pci5Z*!J@|q$@1lc3EJ41n6#@ze<_O-FEMf1<`xnf6otM5 zY$OY@g%TllVg|^NwvfjBUN0uthXNfII}SN^d4z5HAeIiP86#GMD+MG9URm5MR|VU8 zde_`|p`p2GTP_OOWe}HfbqV{fJ~BG5EJ~IujjdtB=vnd=Qe2L4JX2x!JC;wZlm$8` zze+q72VI-c{GJnBOzIi8`E(T*ho?rLEW1N(1{6No-+JHVx308bT<X_-+mUqZHW>1C zBqkz^SM7F-mU2~2Y%9(<Gzb@e@lgF`nHRi=jkH9FZXcyki%wg~5bGHbF&0mn7sv-C z{Ef7CH%Smt&Z4nEn5=D)Vw6Qat*wbvQ5HOEhXLl3ZO#I1+rcdF+Q`dmYy1f|U4cz9 zWh})-&8v#qhI~E5X#_{SvL5h3;693^gJ`#|2j3UTwW^<S#Sx!1fmF)vd(9ZVDsUR| zUsy^iSs*EJkZ~^6oO#--Mu>|q8clqOoU1OQXQ5%M1J;2UDv*V6f-uo~)G7-mDKOOe zStWB@%Bu2<0;=~2C&Rud;uxVO+iKBb8l%YWAfdO#C~_QZ%i5xz4i(r&UHh$kYuJay zwJQbl_EJ-XsH2R+pE68pS1IwbC}Vt)BUSssD@ZJzHeU%4$}ve@>d$3MxXwxL3HA*9 zpI()Fr}K=Ky_N%&Xp3JExqoS(V?%#H#F&YQcY(0ac7EnND4VQh8YoNu2d05L#qD&( zxCiI0=QdloM;fiDQrmUqCnFu8J(3kmaSF7&1nTR*+I`7XQn5|FR5+3RSqk_-S6d{% zq`?8Ih*VzmpWCo?Wsz!2QQCW8y*2!Z)Ik_&JSyu!0UB$P@>5FeE<(I8oRu<1q<2#S zEL3^aKduIqtFJ(Gs~rsO^VHb=&w8tNf*>bOxPLY1y;vBxppn1*qpWzl33}1ISnxXu zlmBx2)vtZR>qHa4`!TQLTps5PI%D7etal=}8Nn1ZbFC5L!%}?Az}ypn6P20C#t9wh zBw---{Fz}pa;m}6_yxz9nNbDQLO8c>*WzJXrD@vJD!gdt{$ruNN3{M}L%iej`l;P| zUgN6F52eJ(A|ugsn~>WESZB4w3Es@DMu;y<@!5NxumaOl<rZ18$}h4gz{I!38Mqnr zCg<JgFizQj>8?knxw7dVDz-r^QoSik$X~j@N{uPu?H9FX5f?huRB<&79Uy4vbmfz9 zJ{~PR5e;dGZ2igg150#x9E03XY3~M@O}JlNy($_=;)dwrVa#ZLEco4o$^Y=l+v;Nf z)%Ux(%njPB{7MI5m_A87J<^Z=v-D$OylnFAE&7DdY8sWn>8^I5L~~sv|DXXpR?1#a zr$F*@igQe-ZB+v7RU7YD`)y<uwiThRYXIG&`CP!Jj@5G3+e*>k<Wsi2zJ^;h1%Lzo z*P@Kc_ny_R--8XoBY>+!lcH9?RD4P>sWX0urbtPvaOuB%PAT<L4H+$#Vs)s&&Cc^A zSr@CUS*mNKb|0l~R_Sz&29jQxL{Ms@T1KgSsRl=ZT@90!g(7W`VjC7~kLN}n%8q@! zjW+XcF`>8SD6$IdrWGTUD}|O+5dbcgQ>|2E7Gt5!Bb@WY&;Prv+ZQ3qqLG^t?Y$yx z8rT-W#k4p3qwini!v5=oriBh!YBY+j{ptEr<;MUIIR-^Mf+8aoEs}}rI6dMfJ%KxV zrQm@d@_i{Fe9ceLJiM!^gJC6>%c2y_47={oeAFVe5Dg$+)Qw(CcY>8NE}YO7LNCt3 z@!Y8SEgd@n*G_|;kA--lG2AfjK7O2GPb!@xG$}r2T0<j*g(basmybIMD+=;VG^!MJ z$go$R-ptpqqbDG+FA=SPHwZEMklY$0xZi59k51q7^6|{aFLkoI;blQ%jnj;hzCfWZ zrub8%(6}MwBMWiO0P}p_;6dTFsL$&y<h5o>HQ<x?#dd1tj}H^{%GOC9nF>L$WRD1~ zjlWkTe?V<3hOHmSMMds&3UK)aVsVog(G)tU=_N_BNvjUU#9~X*k1V-^{jFCMRP{Re zl0Ih*)4^!t1>dv$=d3$h0M%>Eh#Jfuw7jJ{P+y3RPyhCK-X7S0`dD$*Ynd6fxn!FX z$E)x;i-ls3E(Y64#u%mfXZO!nXQhB-F@D>|Sl(s1EHK$fP-C8<SH-(F2FHI6F~!O= zTz7JIFTBUUx2nGF-M(DI9v9)%<KCW^;~UinH7a|tJ;5{X%)<LYR3ioz?plivojvlL zgJW#QW<5IBn<mc&#L_1kwx=b!a(skw$9x8|S(UV~`lt_7=C%Xjyj#*)kvJo_?(2Lf zt(pHizo56vX06e}T%!kA<P1a-0J8%mM-nlKaHq>wV4LNrvyD&Q{?J9EypiDHEgiG{ zj&p7++#i}vRYiGRUefhscpDk7Q#b7G5Sx&|C@<eZO|w6I71wvrBcII3Es;e+Jz*JW zrf+cgSu?gdo^kavk3*iZqMnCC_M*V(Ky9_$(r1FxLgU&gN*^R32y%BQ;iKwJO0^#U z@^2^pyl}+KCGmwfGv_&NLuSW{H^<83$dYJcvhb7}+JIV(^0n?~VdCq|z^g6s>yEy9 z^=!qKUzZtM4IPd>vzwpY3$k~;G>&{SDkPH<mnp5YwSvYAZ(`^0wF;#!p!1~13;t@K zoM+PcQ1-eyvN`a^+?xL1=Z-&l`>SshKV?BECsKR_b=%1KtSm6)*-;O`ul8Pi;^jqo zrR8cT?OIBzccSI*_YH!4c?r&z8O)B*Fu;_`yzw40qQ0d}8T1P4GaT+VR1Nzd5-F62 z<FG?cD`(9B{s!ZZJ2QBb;qhSq&hC!Kms2*f-GHmo03kgS#m@|AH?~1Oyky7sm;Kdl zT0yMwjH#b_v~&MsGK!m%AO5)|{r2B7UtzEsRko0;(|b-Prz`Bo-RpGEo)_a41?t^G z^vfBJ;gWmC2>y7+Y`D28CvPTe{#uHX+dMbC0*M<6SCC8M+HSSIdtz+k85=)$Oy_<w zavhJOKesLJ>~Guk*#4@W8Xwo}!EtBb(lAbx?B>Huxt=UmN;6rAelWxFV~D5TJv68t zR3a?UO$&=oxS1Jvuw^`<Gy2r-U@?E`ny}fgX84mAQ6dY0dIBl%-$iP0Q@Emu+xRs7 zTW~touD07zEoL3HvR(pq2(kiZs8Cu2HH<b0k$r8QJlDzXr3nz%NFc=`pG*iLO9-k} zaUx?Gz9KS^%3`CLXb$OKOH};GZzq}6NDZ3}%Boo!ezn~WXpDYcK8Rt%5YGysqLBaB zCg1SFT1Grk5>Pc2UvBK>Av6i)?%3HX@WRFu5CkS$B7xKK27cTaIBdm5X;im3>k>3u zdG(J7=2+jF`=7LY+V1C72ui@FN7J603US;o%2AqHotMW17liVr6FqPvu~TUO#DyrJ z%>rp6T#WYH2M=J)tDLnQk860J;taMoNUxYKB(g@{-pe?Pbu@nrnJ|qG{&zX*k^1`2 zHM8a5zEW?5Gv`EBLY{yck{O6A(wMwydS@!u(9;vZ7o{`C1Mx(4piyp4@K~1er>Vr) z40t$;UpPO<X_)E;n0YWn$$w>`4KwH&S(*^rr4iNIM&Key=71Qtt6lZKbqnTglgv6o zaj7mhPENO32eHS!&%Lynb9gIzuSgdX#49P8g^moEq7-9YDXqG#K%Fhbh`WkFYG6y0 z%u+ycq0{GEC`Z04IV$1WGW)>zS)PZ2##)d+&SodtE%Q@eT!a6^^57kHeYk3+794qx zB|d}eD}fNicvo#WV`J*7*SH;{%q!XAN^pW?WpnK+4wpydUN-B5I5fhUkG^KGv->BF z5d@uM)~J<P#&$uz>yRY+s}z4X5v>_HDy}^wvsOJJaHx=V`lcrw4Hp%io)lbcNmwnk zBFVz{`H}2=KjKd!<6n86-a=};NpZp!7!R_Zf3LVad1^u`#8^k8Uvk49#e0W}K2CGk zWESYFK)yS*b7UrUpAcp#8(hg<_@w;igHl!u!vt>{WO{(o<UMsG1l?d3Xsdvm&#4Ac z*O{gN2rjN1U~Y4hd(Xh2oRs9Dpg1AUO_L3YRG#JF2ahc%d6*7sih4%bSmSEVBC&!Q zOB<yHb|eYFNGZH;6tggy6&RUyN``lH@>}U7bQO}}+z8dPly)q|YOcwRW6GBu1$&Q` zng7)2V=I#wbrg8?izp1z8pWkPDJ17YjD2P)&v^G~f)d=Q(MBHM;Uvjt$<xDV6G@<B z0rr0Wb5xeg+#REF&7HfybVZ>8zr_tJ2TY$UuDcLN6|#2eCsLAECaTD#1r-Q>K#ZM} zDg&*U{?1+LHvJrZhW?r3GPcb9+GEQOu1{+mGq{Z2iH9syK=EkN#$D*S!Rf=h#32(d zH31^`WXOQmgpGeF-`nEm8DJXePeEv(FymR18B-NHw2JpToGmkW0l*a~mqI*5wPb9M zKCAf17F<*H<mMBLpUfDk&_T~QRqjklQRREOAS%t>$aExkyIBa2te)cG-W5=#UG+9T z8D73Fc{blQni6c1kJp5VfQirCPWG3m?7sn~S7kTvmp#6*Q@-Ad*9cHKQ^^=|WKk4) z8xxKnLnOfIhzm=yWi>fhQ5Xcmb*d{+G35B;o+l}ZXNBY!2u`^;cs`H!NOh%199>mO zwPDN3a&GM&<dNDEB^nzoBAAlLJEEG!A`TE~Ewmd*!6`oNXnE20SrG3K>sh#4E)xdZ zW(=ao%yMvza`HY3jb2T3Ieb$O^o)*B2KN;=VrFCDPCv-SUbi}Zj(KjlsO$_lQJBa5 zx%DTolNEMZju_HR`H{$c*~;zeq~YnK?7*8znK?9Va8NlfLAgff$T_FwbZ5=5G#0;j z%w#I#fg(@NN6CndtA2Sya6wgLbo1rMHa9VpwvWndsn`R?BN*=s9o{E9yzj8DaA?r$ zprUPl;%(NiNuxqZ#&p?<No<OWY>G0jTu4Lnz%dilE1sFtby8&mT|MlUITH!VHL@}` zvU>c~Hgx$a*{iy73}NT+jM<ATTkEtRXZE~j$t}|TV!ucL9=m|f*bR;|2HqIjSL)s4 z$omeE{H(~xugE|*M&A}SgaqSkYcS~@hbT^@R3N1u$Lbc@S=6m+*;|LDE|fuEj<rzx zPt`KU**Xqb7obv}Wz*wGk9$Mo4(^JPU$k(P)(bVRiaSV)HcB<@INxJ@ugD0j$iOtZ zD7-FLXV!tz>p+2ZiYfQGpL`!>42p2;qR{K2j3cyLRahxv(}JJpS%7~BKu`{%lfOBH zAbo(jJ^*v9UcA*;sr3^Jzv2|?V)ChPjZhs)U1dgXWk#qKj3{yl>+I&b-|ZIsVUO<a zaEk7ZzM5kFQQ3Vk!UY=Q0_BLQsQaR!HRmq4y%M#9P|yKlT!(rc<BK&6mbyV9ZctS1 zc92#(NTVH;KFg48aj8d7NZ0<Jp#4414Ex6F>B4dT&5zvH*UzAjjG&L!_=e+mizlJV zCVPX|z$Bg1q{hC^dXv<3YmoOc-~hk%eaEk={Z-NeJ-|;r009(ar1q+<58&1Z0QBpk zN0M$TXDQ#0RAvlU3gTumuoLdnUDj_)n520L>BOvQ1J|@qx2u=p()ZYO`;QHgjvszu zZbem)uvBI+S7s=fAMJQl)LpTIc&k9%RiJb*1Bb=(_=$(4SV6lO4u(6_76i2fL4gF( z#Dp9>4OEX_j2z<D+!{5Ybe}!rmx&^!S)M7-d>v@E4wN3Z;D;Jss|~Ex9uKMV(w+Z} z07v-^@S6J4`p*?4Mc2=2{Xr)vX%(s%KlV+=8(}*oMo}B6sC}wYeyc{qwUa3RzT=5y znKpig?IA@jJvbhmvLEok*g>w!d76G&-u%j7a*js_d`|#;-(kl3Dz+^uTu{goRyd{& z+i)d8EvxKrSO)EsKrTSs3|FkyS-PEGFx07z7R?VsCs4N49g|mJ?q;7%ERhb7NN2pU zR<uB@XY?#;{^jw)i;!6jxQt{C1#*qiO+!WFp}uAEF_k*NN}W?sQ}duX=w$@pIr)1} z`Q{?;0H>f{pQvZ##O30PiEgy1t~kd#vShJd<2uYU45H@eN{l?+-=ZnDqO6FlXNNoD zoK90Jl;3{r-95Z?O>_fWCD`SN*%*o0Jlf183wz$fs|<9>N#n#KP@;`__4*SRe9c{q z1Q}`Y**p@>9wWcx2sO{obh<_tLVK|jL4agJOfq)McvP~kS}#Z>w?2?te>`Qx(q+Y5 zjKb;W>H3a|GgtgX-1}<mF`cR8eBjMiet3R;272lUA}i7UL^YJ<4MTkfeSHQ?;>9RO zPKvZE8>1`yRu&WD1^F~Y$uvYf?*I!M>ykymZ@;vDt8x%){WL6Yf+r9n(6U>|q%{Q6 z7y_jWH#-cr5jY+;dJ9Rhx5mzJM~`qvx22Ja&sR|_oG>}%b`pjM1tW2fgR0F3aiAU1 zed-8_R)BQ2)viC=FX#k<=9YDsbgR;@A<JpJbs1%m+9!=|>zXd|XEU&~(ti)Z59;}| zi3C0%fHw#*M_@5vD^56jGvqtd1FY|Pa4Q=QgARm2f&4K&SvKjEO|6=}K3dm(pvyi` zG4WtLuU~i+mmZKyZ#<;;U*f;plHqUAfp1XY*_S(4r4CKP4iJ6^D1B+c&oin|2iT`G zPT1_z!Bhz1_q-w;1~F{GyhDz!*+sLKJX^z$b%4h@<Jv8VDk%;|an9ce7@fCUKpZ_c zeAmhuH<3G0ZRCqDkBsBHkgrgVoD=GA1VP4t?{Hr@wd;10O8dx|_R+fD=o4k<6O7w% ziAT<k$Lu6?<KFBajj?#lda|bkvp1C98wwnW4saEWwG^226D)7Gsp?o=U_JMl5+PTZ z(uq`mjZ%1xGJeoa2!yA;=0PQ;&*5#%5m5RFC{QwHll>c@$i8EucNXJ=C4kftFh`yI zxhv6RBd1g78|{J*=z0`%ISNYGCE_L7#0qZI2R7=T7EA=CnEn8BB`3QRbyPO6@4>jO z#S7f(fjvttt3+3S4e}oE&N40)M5EibNzcj4>U}povT&{stM#?O2XTQ0z(9j><oSOW zD^or{6TW%~n$b#IvNKw;@6&#%*Aw6-?HXT+sd<`=Diq|n<#;R+hAe{$mO+dY#U7iY z_4jQ&iw<R1y&4n-jsSf}z?|z<gs^S3^b$Mc61zvQqj}+lvPZ-(Xvi-p2NDMmVb(qz z!3c<8G>-ho<DAQ5+++D^RAh$cfr#LNsAIatp~k@TbMDxb@f6@$w7ifp*Hq0lTER8i zILR<WzQyfv@9j9~FIZ{FN%!koA`T)1fqWVFnW*Ei<x^2$hn;k-XrQGL(9-CXcBgw= zH1M|(@VC)v{eE|~XyB<4@YHDB^58ZD6*oB=JvllvgS-$`|KR)dtW8XW5ir8&RB9Ky zMRkpXZlf8WfT!S`(FJk<DmVZUe_H%;ndymd#oOZlZ_*0n`GUUrG1!9Y@&uG_y1113 z9ed~_J^5vVE^$X^dkvO&EM9dqdUdq1v+)(rbHqF}WFE=^nasmmcfL3$7feI!KL0n8 z?_(q1#RI&lo-q8qb;^8_PCaisLLFy=HpBxYSH(U2O&sr(_ezT`V?mvTXzqA+fVwRt z!9Bc3x_yb2JZ3>?B*?{mxK4U`7BklIrBj4^c$swj6ln2-LVH!WC(_A_EPAb&_G=5# zX?-$FO}bRx0JW@5L;(*lDz0UV^;tA8CVZzdz#8YVF<X)94~nKY=OR?Eop6kXr%W<% z5?8_|1A*ckF+Ffl%8vyvg$HSrl!N&Wim&9$0@=ZuaT$~y;tQz23*$lRCnd&e!4d1v z-?f%^<>45a2%b9RoEz~rlkU$yu^x8k;aGIo3=5O2n@Cu)HUb&ag@xIHukLzQln(-) zF2cQR+9d5KaGR}-mR1%aHY5WJSX*{skrnqxr2YplB$kU<bzcUd)!+CKA|!JsaHp(| zL=CTud0p+p1o``Sm#`56Np_d8T<pU}>L_p#0B8-QLCZ0i)~nK?zt-fpv(V|QQ;F+^ z5C-xmt>tZafH|-{6a)Zs2WiqemZk?LTA*JCD#8FYu}wrY4+qCt9zFs<ewvi_FeW<x z@xvS3V9Oku`pMSecGzmJ?<)|#hLgzzcblc(IrR3ALd*ytwHY4BA!%~~Q*1W?uBXT* zVwT5Vk<$oXhl(3KkV^xas*UXW<HGkQkc9UhE7Nb#>XMJr;VoRz{uJ(&&C+-t{UjrN z=tCaO^HlAPxPnBtli2h#&n}#h@$tae<EW9=H84z2f*|5;3K2#)zRVLT<3&lifS^e1 zISzUtiPj4iOF&rJ6Z91cu5)Dy7iN>um`6ST$5-mz_P4OVV*LY;NI(C1sF&W5&OTsi zp1>VvMf_)t&F~@*hiT3I3;ME%^l6THy(gBK)hk>D!W3>G{Ml2^HKW7TL(Z_&J;RjN z`DP1IkR`CVJ;O3Y`mN5o!?54;h)a5eVJ^dZ#G%*9COKO^?y;UFwsWNQM=@i?U%EwP zLnd*hY>d!yHnCHK-%_JQibxOSY~g#pVH*8_D1kNV5oRgUp91SfgqzLC2CbS0*y?x= zUqI1hf`(0oqVWz~PMO42v@v2{r+i=pRv}H35=*pHIc<N6<i~-V^AwBJBMiLM)DQb1 z(#|KFwmv>5$Auf*nnSZT$pz<%`FlGDK>^`*@q}!UGWsyBlAn!pD%(+`yb+Z~$Tdgw zx-6AGi{Y{TL(2UZYwlMv>Q1)fbRUo97HM(l5N8iBEI-m_cz}n4V5){^sR0Evy~wkB zLRwriMAbr$@)lrwLRx<V+-c5zK3zlvM4XWJ!CS4l&*Ula)&*(bKj03D>Ag@05=iZm zhyFfukiKU^b(%MPEsy4Gs<pMJ2EB`$`R#|KH}5o2*2sLU)Sh_gUr3Ap4S8W0SqXvP zey*8HShUG7G5v*(e-`GbKQBl`Gd{%|ch7f;K@}?|EtdygJG^pS77V10o8le3h&1H2 z4glT7M6ZAG??!U?B;A~AzTz`-Ruh|+H@N(ldqwOUHI*6lPn(Eo9-x%dU3kzI^*P%| zB<=P#JO)u|{9JQIucydZ(CTME^U0L>baUxN=vSr3Dwm&b<S~r7Gz3#z%AM46LJJ^% z7kr8RN!+hC8RHb<Sq-wn|EM{5_rGWyV`-MnbxbAeyxWh}4epImqRcV(af@+XG#KwI zgtB!SVC`FLoMLI#5rnL(CHJN%59XME@C<T(TESv;o;|_Rtcmud0!t)$-=4w<T(Wz~ zRf%%U4gRB`VcfQnT)qK*%-ZG;mPV{Uz?#d2D*<Lps!k>_*<|GYpeC>34|e=PBQV*z zCP)*YMRdm>%=@3?00E|&7qdLd8zJeyA1-fP!_CIi7O(E@6PMpDHdw7t0XYi9Hw`c! zeqCw&`SaaYc&Fg#LkFR(cpLnaSe!HN;oqd7lX1zV_VtwJyAr3(9{=a#iH>9&5239q z-I8}g4k*YX(m^>w5oWq7RF!o2o?3$RG(MB9heAE5=107UL9SsELj8z)L8^4rcs3Cc zJRG!>=f}(G+V_7!&n8j^cH}e(G&UJw<c0G~xo-<B(79dE0WOizkyqpO9`$+#@Z6@h z*3v#4N)zW@_gY=|!$ggR0&a*BT8NSnwb2fYPx6$V=9JwW<fOc6imu^=uI>~W?ek~= zt3e8F4GC!-U>Jb?q-?BHb70j<?zruO_bar9$hU?l^ueZ`Fu%G5O&Ur~8oH_-uuC4W z(;Tq72szPOevCfDREj7zlqxpd=3bX!_)(k}72DnCA|2FhDAjDZUBBKu-*e`oD`5SN zLB5MYri+2&SlMWBBJC47kg;Jau^^6sb?B2fPL!gNl%mnL#`XY>f}t3<GdjRIGWz?M z?!Cgtw1mgB)-?gSpJ~g~WH@xI`H;PSHkky&?VvRon7^O`>YRVu@CkFub2{~I8t!fy z7mYw+yyubx#~BV6L*jfIS5fo&s9tt4Yi*}&JFuan`IJzp44Q*z%_p^nPrTh+(@GSq zx?P*_T`A(bQU;dMbgk`3z9{o}HvIqt2Tk?;B;HI*$aKp<Xt%fNQN{JBx>FRpeHE%_ zwMvsX^;E&(2*d6O1BYt$vR6)>&p>2m#!_3z$Yf~5*9GV1@HR191xkiukG_3;M*bGV zlvx1YtTXxyd~;!|(hWmDlw%CHL2I|dj8eJmG`Z|97xrQn1vimI(8a}`y264>YD_S0 z#t(EurHmy5aw^X(G7_4|G~CEEE``SR(Zlh^lP_H>mI)m77uSA_XT%B8N)ggZ8RQ0k zO7|CSf@OshP(#bI*cwB?KSR5<#R_$=C-E;Q@ryl)1Pi7{)F^SSje{oe8SRM#spGAP z(fh2?d#xie`M-#H|I|xM&`aZja&Ksx#5)`g4BPQa>r4430!WkX(pt56TtsKpv1o13 zX>1}fg;u3ye<3Mh>2HIENkT74x~V^;;eJSKo#vYPTV#9jeEPL@gq*hzpSusg7_a!o zrKJsk>1u}VVuqglcC{*|V*(p%uK`g$j6o)hfrGp9!i-~Y#tf1E3!Axt1x;a_Nik-g zK3NJBKM9Io%tpjb`}odVFheAgRLN*u@9J4F$_zcy3|$v#$9P9J%P}MKGCFD`k-RqK zB=A0UlSq#8jkN}TFMc)JK3;Em4z`V^3sz|;10<AzgS|46r1R|UHVAzSgib(w6=%+C zGRYL2-EGR2QLOMzDZ?%!|Df?rRr^#g2+%6Day=bJ;0?^E8bMVu64Sd{XVNf5S2smZ ze%LlXtoqs&eg7N00X2HD4<Xl+BG>EN{e?JSy$bz(cq$;e-R}pC(c1<MWJON#M^|0E zhsjb>6?@>rL3HJb=(}Mxsht~)Kb6wppCPpx)qiqB%@`ZORLU?RIZv9~YxKn_7*bdA zkxfKWia=7zpwFoN8;#>ueR|^gtjn3F#P=O3wk9N|CIsw<-rxE{!iELhg7`83*T1xI zL3lKoy%^}d7&v+>?)f8tx>7*hZBY9y4^L>Pj#Q`4_I8t~burN!n_{(5Mfp)hI7(w& z_K!@dZC09XR&#vaj#QV&zw7;96%xu6BgzyrfbVOrZ{ChaNp}rE;VJe%T75_*8N{#E z3+}SY>2g6UT2d=oee=blboxC6o9(H(l%)HzuBG_J(hL!&lgo|&$<YvPJ|}Dp@ASzi zm}vK1mwQAjWijKGDWa7r8p&&4MdH6J3&AQIu#$%{sTZK8CZMLaiZZJgu(h8XB(c?7 z25?Lyqe(F!NihI%%YE0tT&lDvskkVqtz675q)wjBC*LDlt1PnUd0Ab4s{7i0&Ulg! zRLnpmJda8n8oxd8y0*P25=~8C$e27PlnayBl9JczlPTEFDP$F|fRWEC1`TUU4Quwv z<X%4Z8l!6jaGvsENv^Qatgx8Rs`vxg{NTC$&$F6+DY+Sd6gpS$GQh{As}!yrCX=%B zbmiqQxN%yVQd*jQkSq^)P>wp}MMLUEWBW2a>-<-uu406)qERP)q1q0Zk)7CDWIGw3 z7>@FRx;*HAw*f(&appI+*70I#-L~}-(v!K1mR5kpIKF&Mc4JimWQdL^DrV?txK@&p zbJGN-;0C5}y@9Nc%Htf^G{^@0DAK*(gHC;W<eQ2^1Vch>Ap^2>-b3)D%woU&``?!Q z%&y}%^oGc+*hmfZBl3|-a+lcjPLtXFsW<sWZ$1b}{$-~5%WVGrbMK=PQWQR76h5)q z?ziRaOqiq!GmQ$fxr@{mC+EIA;&*%ww1J9+`zx7^!kvDZjk48E#n^15w)~LR`~fJk z!z#7gkH%0`o;;jE0vG77d8JCVZBXc~8h}eT=|c+FLO!;1P2<A0ZH`Oni5RO!fXOFC z>6tU>(p<ixBv&%_pZxk#4(SYpyWp#{!n4r`X^Qb_x$mXQi0Z2hxX9=;EuR`^@a>Wr z<~{VKOpuAiOdAu4?FcyMJuakTTUPl&QVx9~D?ngrp(io#(P<;d<6FuK70b#6`z>Kh z%p+y<tQ@#hc~)(e;hh5}uMy@(C(70bS28*WO-Ls>yXfR<1&wFz9|~4M&W{3d@0#(r z?FcOA#h5MU<%Ua@6Vz9cNgX=8qS6DSc^k`nD)6{szv;5KHzOQQqBy=1(b%rZQI;u- zYOF%(yaye`JsnnhERrABi@yg9g`H_+uNCpn8AsjQEVK<VuCmJ3a$r-G@C&Ip6z|YS zEO*39SC=UpX=ab`0Tel4yVLe|$;<O%rOWej4Q0yKnyXg)4sAZL<C{fdPO6C?oe#=> zV*o0G-FXj5m2DeqL%z^zOS0Z#{_n~Tj7tLn&78Sg-8VjDOLD_y$_bj;=t3@Gb$cbJ zr<bq)?9e0Mecq@uCt_+Xg9T-0Ik^vWG({TQ@hmg=L-m#n>Ky%MqrSImWV;nLE9tHX z&-K@denIEH?ldC<7xT{m9f&6y!&!sCu}={GIn`}#JSXm^*bf@nybyj(=@o_?`35dU zIftZ}6^;>G904+d4>Phb3Ae<5IhJHM1^h?whR@8cXOf3&(2a@42Qo&%r1+KZyL78R zIycjs@%Zfs?B}if<T`GeW=j}CVpovJnlfwgIH~NrIp6)wZH!G(&t@*<Pv+i+x}4mA z2x{K19+EbV@Yr>T7VdY5(nqey;5TK`<DI(-@c2nYmnsvfuUg^3wk|<gbgHGW%aErp zU;i#fIS@vy(Bn2`BF>nbd~8l6vm+3g_i&N+EhWjg9VWKx@cZeY>voqea??WKICLwi z)$MSd2bFFpRknt!BjS4us`J1LQeOKRIM4W|42GZ3SGn@e>)4kJ0O2>6cVG;23lu0~ zrf*V^x8n(g>~E&f`p+{ymBRYsv(BTYx$Kh7=dC};S>L_&ab$NE?4VSYdv3^PGq#St zxDFx`3DMgM%vaBrDC8&R#dsnz=h=0pz$>;xj9=mS%Pik&E<y_rTGBVQNzA?xrUjnR z(>1kmYg|#_SzBGghrE{F$Dv6U@_(0eV6@eG_wz-;<htPdJmcH43El(}^VKQc>s;b> z2!ES`Lvc1l>TWu=`#@H=Ou1TPb&oYPa=9a1+OJIcpGI~h=YL#rTTR0*88Q#gZ22B; zbBPcH%<o@*hUL_l1TJ>Ue`t#2wc}BMlQVMpnOxDT%rpLgZ!$7yyeY(MB05Yx8>^6i zjtjJp@QD7HM$A{p50-OCx1RUQmd-9!=2y=K6I`6gMznOI;Wwev+wn-!e*MA4FZX-a z;xE`>H+p4&xCv*JxG9m-j=&WD8<*YC9(ZNvT#<9Ak6qzdl}`ggSV+(d`SIi&h|L?r zePfSe#tWLq*jC1rOy(n2Ab3s29}?kQ5nhc4>?IBZQ7a+un=<v({eI9-bV<pEl`3PY zXOG~*bmV}9lVES*aECESC$9=HA_VS1%!x_(1T!-^H9AmZ8Xp;l%ZL?@_|p4als5(Z zZ)6;ZB^tZLNd0wKhA6f%qev5f!0*d~-+~PGk*qIOwp16v)u)HY<VCmP)8cG7kC4#| z`0?P=B<WQ+^OAL(HqlX13;0=N9nv)#9e$qHIi98L^B2fENJXyz8*N*-x$$G(pT&tY z^*fWIyes4<m2)UIpBHjud9hIXs(=y;@A>SI?lSKe5NxZSJzc<0z&;yePss|U)}Ci9 zFP(ryd3<>{OBl?ho^4jpjLEpt&kp~;-d9_-!iF(G^LgeOZAvMINy|$zL_<$S`t$YX z8S6@6_|dny=4zaF$tLq2N3y<ST=$>QGt9YC@!{TzF9+MnHG7o)N{TX5$p7=R1F_G% zpJ%YEdiHJsza~f2%^9YQlobgiYDETaWG(duQk1%%{N~cIV34%KK-fyiyC&nMX%lX& zSxJY2;Fa%(`LVIMUh<bO^;l9e4nYwsu@W+~Y{8>y*(pEyHAx@r?3?-fq#c67S2(;5 zD;k$qBHlNlf3)MNE2vqrKFQaer>QC3xs3X7&LP5#<t|Th%oR$bnq7t7(;bYY9*$NJ z7frp=zZX}h26$gS@+osmK-*1?`8Yvs-W)@AU+@SPpec*G@DsaCnj&4eF+6H!P^zg+ zt#b{1r$470+FjX<%`HU%3K0g%$-~63Yi{^_dsl?zaor=Rk6Y0SxBw3=5tM12pBWDJ zOyovFRmmwrLWPkq-HmG1u9S)E^03XtDHw0x&gF{m85<qyGfr25R)u39s@-Av=W{fh zC3BtU4RZ#I?isxwc(NoYxW5ZeWJ<tgT1g72AYl&rL+UJb)UAB%UP%gK^2YGN81D?T zd~5=gAQ+`-F5uE+e?^j^R9aE31dn0ZBJ&HXY(93R1Vu5L8}3ADFos$<VSb#_o6FO^ zG1Y1JYKo9xVI)*{BWJa%D(wGf<gIG>X<ppe%W^jY4|eTjQz8>MBt#eq-Q6f*nz9_L zSjaU<7|3Kh)vk^T%g0`pq)4Zr2Xf9<#w4hPQ~y+<mX|kR20BB~+!0x%wiTYSF(fGP z1BJgM<(Ip!26xqbKAI$W*iolCxW3vPEx8eqM{|$BJ?29H87JoG`1}PG{U<h_6a^zq zqao>+9H)!z*4Dn;O~^Xps3b*FurN?a-sI^q`GUJaTaFxoQ4%po7!^547!AoC4eglg zJN1S(^et>L6>+NGG(f>G<{N5RKDN4KPOyd~1tdsV2H8DB3-?@Vv(7EJ+Itzf`cbTh zkBmYqL>Ru@j3_l)l4pTtP+@SZTDbGiNlBNV*xOPReWAiYqte1SQYWI(en50@y>ipg z$sHX$x|)~#GR73J7VWP$i8^;#GaPU&l3jMXIN$=(U@$D*sSkBD_InIA&HdVCd~K+T zcZ)mV-Y+ys7F(q*R!74;Poq}4gBbcDy2@V6N~Y!IR}SoWQhe*1H`g+O_PmR_Y%k|j zfOlBnQSNj>945P6_ld;MQfVpmAqGO^BjLEwUd?O48pr-#OKvi3qUhcUxe^UXq2Y5( z!p0%>w|Sa}(tb$1*9=jEdW-OAk4)5{09R=z@pcythCBs+g0RsW79un<Lt$BcG(k7& zh0=cQSR@*IQsGK_I&U^XOX{`KerPO7oqP#EjpsPQdfo*r=X>~*>xjU3-epF1b(PIR z$!}Tcd9^C+F}>&M(>a`G*9cGS7}sy!yzg^of}?wdH%T{6Ei<XRJoj-cec}EI=A{(H zHr$pb5uPq@+0D+V3Fc`SOZzQ@JjPUKRS+ffvA;`D5TiAQXUDO`|IJgOe)=r782O?a z{si~NS3G#Jp32}6uSE{0F^SpiG*=ZK!MqDVl6$x-VMw$XG=qMe0Phfz?4_g-rSeKd zKgRv9>%DnCr?$_NL+wr#bthiSsx|w|6NA2uTZfk$IRT;%L*h>yxQH?oh!MhUfy@J% zS2=j?{EF|ctlKpHl}6RrteyGCbU*g&>My7%A17qZyOb%s24n?DWRyvBX$~R7S@*7R zm;vtcpyOJ4#!cL_PVq^TVq2N9vF|D?ExzeBW$(78BlODRqEqc0{gZ@qW!tMxE*x<M zw`pU_clt`Zqh3HaT$@JX-`|SS)(W#Bo=iU@VV|OnA0r_)KtlT@$-(**X=zQX?nTwd zzi-y7vbr9s+D1eBC8e5#IkZ0N?Oj%C**drnuN=2lR_%X$-={|rR42?q@`Y11_WyA8 zmT_$bTfFwEqQxOVi#vtjl;W<zT>`}kQrw{wmlU@EEiNHgaR^o<MS{B&DDF_a6nk^d zy}$e6{ggd>W=~dTvS;s^`LAceO}&+y_n%Kz9S1lbS`cJpib;ts(q%}BGN#Qiuvct^ z)!AT#T1k?L32-ZKWz;^ee&uNGM>ldpgb|GnrV?^BGsPg*Ut1F==BJ<8@bE}ET1{v& zE4FA1f`2u*Os6FZL*p!FxW<G?2E4pu_V!y~)h@3IJ6XThgbNx*J5(n?w=rVT#MV@< zYJ#bCN4o2)#B=YYxqYIV8Ow8%wuTpb4ZK#yG(B~qSg1PD7+Y^_^nT0t$_{3~;_ssJ zmfmJ$86w?0+rB#&9&1kb*G*}Y5BN{22%ebG0P-8Jzr^MmM2lA?pr_6>xKZ3j!$+@- zhKu@N-@XEPy3c)vq~KR;(1)vG#v(^%d+)y<6rRd;Fo2<_cww;Gx)2$*lQ;J4KCdNr z@Ed^-+=#b6<S$T+W7M$InBjfiK`vwLnQwnmOhmD5ys-!NTRwB0P!>}WEmsn>8q<{K zuvA|*Q9fMK;#3h3o6xWpY+0N@-!NAT!OREe_glVHjSF?Pyw3He)8!~IqX7(gw;&Ta z((^I)z%lj=$ICl;!x|{MWDIWX)3>1^AAACwh2RsH;*TmuCu|t;3-_8C4eMx$kCYYs z&d(L86jdRIZx}u3wsjqSs%&>cc$KzvJdQl7KGB{ay;)@e{bcs`hUsLkJU;mVCTl@5 zyLl6Gx_N8=-cR{4V~cAhel0jY6$FT{0#ccRGiw`NhIY{QQvUE~V8Ldj%}4L7ZHkT0 z2;T4&AfqW*wh0NcQ8W6OC!+?4tODX-uK2!XcqVOq0pv6T>$D(2kx&b_M+Srcm)jWK zSp|*U*D3IWBzsE8@%Wz<#?P?4u0S```k)Vc7@PpcmB3n~<?uQquuUzp&&nIjH7m)= z)wXNoJy^SseDn4+V(XG0e0WDa`QR2JPSP2BSZFlEQj0hssjzWnoZC7CsQ%uzak_t7 zbm}2V_3Hw9qP)=~sGO@mw`I(?fl#O4=^`fh(uQr~jnlA?l&+{^9t3ihy6F@{JM}Yz zDu7eXi&b9)tG~a>hYR^XYw47*b?#z0%1!RvCkdYMo-hpD{l|Nh>^WmAX80BAocFQ@ zZK+ku@zeKd6?9WSbD#p4+CJHDlHX2YJz*lgj-RlupV?PYt=5i9p?IJ0H~tUN;66#p zj4h*ar#qSHMp1?c_Hbvht#_6Q1rPS#ciiO)V5=cGGmyNF3M=cyNnz>?3tI)+tM2Y~ z?c6h#I%BX^JrX30uGq)&lb188P-`%lQ*ffGKDIVzaj!TaX_lQ0ek1bI;TbG3c5fdE zt5#h6k0OgJ9xOd}W1s&$u%=0?P3)7))3s_~HyF(Nt1(YFRMjvuts1DimqK`OrbPPK z^jXI+v$(oiZQs#O%bu>GukodTz@Ry}^l<APS)Ffh{js$pE4t#KuARW}n(rCu>5MnA z#fX%B!O#p#dIeg)_3tYWp=WhRsHF^{W<j4%S{mQPf4nCfvuy_3v?Kfcyun}Qnlek< z!e_SnZ@u4`Sb*y~k)VUOUBUP(KW-*3khPhm;EPV=X0SJSWv;2IGeol!nr)aVSW~Tb zzW6B<rbgKG>dD$im7?x98h;JuB3=EJtffq`n)Lb|pUIsdqeKley)fqQEE>#BKiQ|= z_GWBHf_mO|i46-#yE`;iDH*ZddXz(HkbhTMh992$d1rmj6#c=EE8mKY@bCt+8=hM~ zv1vl~IeTXf8<=}j?)XHTD27%VWExcgQ)l*r-oO9LRV1xlp;l-x$Kp7M+j<G<cEzP! zs{(eLf`RQUZ`<akB>$O!&l-_t7HS4(^ylR4PTnfB`$(Ir&zC=UI7n}*fTyNlK-Wx= zRCKjLrdbtmZf5b`BPu8|^tVCgkE&|CU%2{yW7iaL4{w#NeWYGBJqsZ(D$30;^LKSM zMl7Op@wq+%+shkgcOUt=n)mW&ND9_qH82?rrdS}yxL^b+QyR`iy5E4u{v6aLq4!BL zXT05w*OgxE6;sLTVL}@rxnel~b|^iRtKI2lqNJ9=>^Dd*!EZ<#QE%hYRO?Ms)6Dcw zqmz3c;yJ+Ps?oZB*&Qi{;O}yx<!W9!a|&!OrWby{T->OLQk1}qiAdm?GG_Q6ALXeS z>+S^$#v*M<yuqv!vowr%at2SnjU?2(L=#FD;dsR&H!(TDiCOfj<yWc<jg0cYRm9l} zV16hPSU=GA!^kx*u0A`}xFktx<ub4Hz5i^;&E}Eo_2G29W;n_j!wsCXC3ac;#_E@| zshnhq4F!5AfY;-Yz-kB6)b|N5nvZ>oZj{{1`f5MOvTVT*bQ0RFlUYO35|PYw-p>Y= zFdi)_EY<LX^|&T;>0bDLf!&}M?|#aMX<J;ywk@tx_5OC%Fzq=O%A>VX>q+Ji_`zB9 z75};%FI??|*4&Giu}VSp{yuYVC(gn-@=(Hqkk$uwbtZ=w-h;UNb(QqD;kW%+ZS1(- zDrEae`GVim)+{me1(>J9@Acm0=jV^e+r%o-yt$KqCoAnzt+%d!KSg(~?XdBztlS&^ zZH)n6BqKMOyup$>p1$k<iVif)Lheq2+1x5+aP{7$J@u|=$t^)mygbzcQxI;Mx)Q|4 z`Aih<rzp(W8tY9$e@Dmp5a;ZZ2+w$1>W&b;(aPLU0nT{u=>$@V<de;?a3EeQ$1U>q zOFF+6AhQ_iC%ZAEpeug%vY`ZNqvoB}l(q=DPrc}-JB0(+w85;jjiyx1iO(@b2=U>H z-YW6?$Z7cY5*fc1*eV|hdKu>{BPS8cfH%WJfk4|7_`Geqz`>s>1D0!oGynbf#Vj_K ztgKqieNjy*4yc=HR$7g=O*x5t_#2s^_pljhqnkNUS`Bqxl&qL=sb*5>E>{cF&Eya{ zGWdD)?B*bG-6t_N?td38%H{M7%WvvrssK-c4&M{V1W1Wh!K?)hrVEiY5W?DGT1%CV za4QvwzLbCnmP<3ENlDR3T3Ka@u%rMWw#u*MQ9%7+^<2hPV2^o2w1!UN*J9c!71acF z&)x~zY-I`l<Ny#Uq?v#HmMsu$$O9~?84rkIyu?=6=hJ2m{>mHE(ze=5b}~t;^jPyC zd~}&(c%qTpN$TSyv6&js$94$|()mne*sON<sVN$!lgL|=i>JFtt(>@_AJ9>7#Lzg+ z<XGNcoZ+X?IV0N{+#VpImR|n&;47wkeK)g5`Z)4hq5&3Q!*>azNaa$zz47>R9}@g< zJoj*J|4>`FH_bFvzQh0RitHdK_3{3}|KSBBSB4Uy#H%;<Le3?&(xmPFvfb&VfP03? z6ag5>NTI+z7wy)P0N^(^vU*cJ+iD{nlcH6U@gz9Yl2|VY0Ma6|c4y!BKQJb|h{k@d zd<pwZ#zV2U@kCZfBCI$7sO(6nPjfB|(UQn~*%<8C5~9`^?Vy)94ySz`zi8|5wsQ~m zStVk>RUW?WD*8`D;_O=ha23Kc7O^XIIpDP4+Rl0-u;#beMXkxU=e3l&Mtz)$iTxzk zRIcQ#n>Z+p>PIgBs%P*}msrmZ09F6D*$0~EjTtSb7Uc@cm1K1jxdq*GAt$3_&9wLy zl2XC<cNeI^@&;?U_HrdZ-Ne{;-C4pGUq&UBRWO)|_%EfjQx5B7KFtLwkKiBE%K5ru zFGP<D4t{=B;?+&W5jf3uz86g_J1<-sR{D4&g#rN18M8nVnS;}JC<T*pr3RfumA9wB zkMM3H9W{x<i~x`$q`6KFOOBo6QdwuemAORXmlr6End#Duf71M=oCD3}farc}CDZAL zfip3&3iP=%vDN1YNu9)?;#{=SqHw^;r!3DTf<z*<ed3Ji4J#F~G$Je|RPLHk<!NGw ze5W-_UqV0x&869V^3KA-mQp~}RntvL8{kJ(7t^sYUtS7)dLvGCIPg%^e)iLijGiEW z$N?fcPA8G9gjQD@*W*X!>eUP_LRCU1Jpia*ezO@WqLb)WObbxjKa><|>%IG}$zy)c z+&Kg*RFTElUo2r}3z~>{bJ;RLyulewoz7r9%~S{PXNLOhnHO907sm$3lU@?2l3pgU z?h~s|drrs)Ql&D8O*8qxcdVlOtn1Dzs+=hP>_*-x75hJNDWqMHmnc=YF|kl2Dk<V2 ziwR&Rx`aKQ0J3ns4(|S~_2|e`-LOz3GtCqZ?-z^_vF*3Iy?HIM86D6^cxiU0buRIA zNLC^xG5}~ia2`jo(NHl=T6It$In5Ld-<gblcock4T!kxjYL9KbJ}RiQ)L=%!`-`D1 z=`LB^QHGwTJGAnTXLNJ*hc)Njf8<0>?r$aZC|n=mBV>d%mp4ar8RpMG-8S@>u$Lq| z)bnFUKT7K%$SLxHZNq~+(s%m9$2P2&W_FX0HQAg5R0FpAG}E^G1?Xv}%<_J(tQPf4 z2d3rfEL}01Kl&Ph1A><^kbS-^)`!^6wY+&^&wb+UX)*TgX}RHYC7AA5<a?JY-Zs;& zf?Ss5z<uKDX-{{}9t1ErL%zRUDM5E^OXO%R%9<auO1=}8b9KfQi}_1_D9y#QBau?G zdv|_O{o+sW0{;;qD`5Qrx1MznBvCrtuq1OZX|K`;3y8ps2$ZCcynl<%))&1CG%Y$L z_VU_iR9<88H-B0m`KhTa_p?t~UN=!i@KhE^EAOgscet>`c70fZubSN?x_AP$Z`5|! zPadDP##R3(Lcw+E@{ya%L|vjTI{;WwesfH!T}oR3k^l@fa38$6ru?keQ7B$2%F_8A z_I}W9zZJhs!psPi5g~916Cpk6iK339Uz}!YDBqFI>H7xt;th+^O~fxVr|(t4Oq(*E zi(Ec^qH)%ZtqPJzfdz2ILNdFR`G}0wEmx@%Vp5;ji59{FfN_vEk6Fi${|QspPE0Dy z#p58!bg!?S3($2>Rr*z?)S@{Sc^ku&B<#-|93cPi!l+pD4{KtdMq<o2TIhUho7S9v z&dF8D2<@wHv{a%U(oq^SJ!5R)P}^Of#958R%5S;o#RXAp=XVRod^pK%Q=YA2>-;MV z$5?X<TMkLD5}-@;Cr@~Ni94sP*TvdUjK@!S6EO+THL<|mC%iJrh$+0{{drpY*>&K5 zyuZ=ziArQvGv!24THxEyO>uegeD2XmjQB>YI}d3BNL!XE^=OQ-9170krTNPKBF-O~ zV#+Dosq?>DA<mzgVk#>G4D2OS;0jQbi%Dc6d)cRFQOL;@s};sTOetUajvhCDjk2t& zjC*wVS)J4vMYk9>$W;FH!i;R}Y7yDXXTMJHbc$k79P_WJH>El`q>n06%VX*dP`<c` z+1=xd&0P*7^1(wyDr%m#&8*r#UVfI4d&o0v^e9J|S=v1s99*JGrWz;r5MBkXxg!MK z$7A?Q44aV&P7{6l7)8^pSzc1+&*?Y_!ph_NeSj~X4+HYM=>RlmdR-YIGOy_ve}#W! z!ndT)NBG_v_P8U~=;4j<h|Chi7jYgyPgjvQnUV`%fYx_x=6^Ua@Ho^^$kfE;$BMHa zztQ7PEayzDZGBxcYMEq<KI9Y|J&78dXW;SSek|vF<V((p62s9~i$JJGV7+iUdko?( zDd#L{9nS7}MW@G|TF#l;I!xtWGv1dZGvfh6cu<;VLz)cXTfF*Pya4_w=bGO_URsU6 z$`HT$FCf{+<c`Lg`o?1l6Ng2ZLj3w$b<%gB@q+MbTS2gGgES@tBxhYRCb`86#$5lQ z{!v4A&I4BMK{-{5Gp(}e+v~cU@6@Vk*qXREFZfGk*MwwRpTw(HC~%kAi@R};v$3@$ ztK$`o7kAMfXHjd=|12Aq`Ck<<yp;FSHCkv(<d7xEg!RLJEgQ#JR`F|x(e7&XZC_(0 zz|eRsa`dpkFvh8stJ)(AFYW#GI778<L(7mus7)3^fZd`{i2qZJQ!H0CNfx?rAw-jS zj>OoEg&&|kC9SEw61TSCy!I|E#)*TsT8Eyr2!gDEZ}qecMFNxU=z<lvdr|sP)(isb z@$~B^R?v#RZGQ7R(P-8vVt4L5l)j|34)B#PL21SqD1FRKLv89?_?&dlG=D)kKLe>h zq{WlB@r?uGjh_~h<#B8-CA&N&Tg~<TG^U77PPtAFp7ZI!Ta3UZ9-kG&U6#dJ)@qaa z>;lmE)eiA>yUv{Ykmqb^?Og_Mqm2W?W>?mVU>rPMS6E(GsP=h5$yZy=vsBd+cx~%y z9b25SoWj}GY6EzDD2P3k*HLp)NuM<vML*m|7iY|-a8~hcWhUK+&$%&{Z}k=rMFWZL z9`EIJ&=D%>IE0+_n~ygpCTfU=?H*$Sp|8r0gWTmQIcnO;-hc{7y`mzC3U?8UzM^M0 zJJv3TBNcZ!KgKl*^6}|Zhyi1HNl&qAB<NT1T5cg29ec#dhU`m`xF9<+33D>U0VYYU zze{nLJ2Pn;astNmRX90V5lvLH)cd3l!`M}N!E$XG!;AX-o`cM<d|#P|$M|sLHC1r! z>ZlWp3r(L{v<-!XCXu?gI#N}EZ3O`)9&j1?wv4$&eRIz}mcm@CPr+9V9S|G*iR!I7 zpL8^gR;8$|LBB#5ZTpQglh2lTMe%3`^&s*(5!cM(*IO?~sv2F}_HbOrn~=_o15y2I zYevTQ3gn&OXjJAU=B@D7z4n!PfTM%?uF2?u-up3Btn(BP0z7L`%@A&j`)T}oy>5=g zvP?As<Q<`lVG(?FBAThXJ<F&J$ldVD!eXm=Xe^#DPhretA%5=Lq>M$k$x^d5sFBVF zHX6)GVQUk+*N+d_Ff4K`Z_q8#0YKIby%Zx&{_4X`wvY6(=1_$Zu_N`8Gj%RyLrox3 zg+_UB+Ka9}a)hZ`_cG@TfhsbMh4<iTjEFAA71W$j(54?{$IqGa`wpSkoYC8+PvE=8 zX__a3{L)*ixOekAAZ75aF1Mj?h1t=hVY?c*MuV0t(0tUS=hy&eNul96-jDjB=`;7{ zp?*+7<hw&ssY)Lwl@?PLOTcVh^n_<~h9%|;Y<u4Fiw`-ytT$E5U*-%&if05@X!}DP z_v%bb(9*Kd2D1(m&O`ljUZT<Uci{^aTNo!9wAn@6Si3waDXhc9<Uk)152+Uv=b5P3 zsx?pVhi&7Y<7AKiCB6Pnhsndf{>?!?k=jFE%~q*-dX5<d+E9#TqN1eQJRNCfjyB}~ zZ=%^eeFY{B-7F9Gj;pHLu0LOT_kxXO^Zj>2bZ7@B7QcJu{g~>7Bc#@_M4@!I?$H=W zU)Nl(q@6wUjAVN-xJ<P14?-6ag@WTkwSipQZ(%SkAtgoqgfAZN`7QeUA`s<#2pwxO z-S}kjwv$=yg>sxkRa?i?EKbRlqV1I(R=rm+ZF1hC`5(iyn8ZkqcKW*_vlY;HrCa@Y z$H5x^GJ}5_`T@s<`5l@dIJHg@XR%^yQg*mH2%fE6#F?zvDxbaGKaNlwhsWh>gTfSr z`PS+`$<8!T=|cqKF#En@d<Bk+Ul0vc-bOBp|K~Jkk}#>qeFS1n0MTQw=N4oq?r3!s zfmjeg)Y+3w<wEFkXcFR*BqI>n5=ESWihM^|%W<s>G{30H;+4!Rc=Y3QwaF!lU>Cz5 z*9O{ROn?=;n92hbXLhOdCj>Z&BsPS6%N=LGAS$WIe`OEeM!ekS){oEDCKoD#O@n%a zW&huCi)6RcyjH569?J-Oso<1b-v2p<_o@mYSV!Qh+1jDSS^2$D)Z#^)eu^)m?O%pN z52B(7gaQ@yufD7=3B2lD(fWT0bJ+)Ej?pqv;>W^_Th0K*)4eR#JfP#n7sUVHzIR@5 zW6Y1W)AMt(o8b}U3xcZ%AX4neEV3bW7XR;<_yW&Yy}7y#%l}bp!%h!1!Y=u4%HdH9 z{h9n-5dnGxPW`Tk^P}R6b-TW@-7OY4OWjbmc6U|QjTOZ|_HXTJjeYu50&$SxzW!wz z0t0eiJRxgE{hwc~s0G@{&qvo}|GgJ$YL;0co_4^r8-JV%`j8@~g$X{vk0`XAwuDgW z7uo75pyARDUsk0t%N_8c6zy*AtegK$(Q+u+r^%@FIr!ts2blYj6SM^x2u=k>K5|S~ z?Hv-Iz2@UNj#O&aQgb6`D1t={f1DU-i!`aLz{d2Htl|tdl|C^)ClN!vqxGkHJRxO8 z{iH9r1cP5KBI($s4=ME*`1UL6to23`w9{#duAKTeeWh0b(=C+x?wE{qE4_HAHaP&( z1}Hc+pokNw_+raS{5H(w43S1jZWe2d@m|;dyON(#%}J*itS|Wmal?x^vz-1E3`5<` z+kdQ$>Ve}%YFm)w7CEwiL1<BW8<8o_Xi@4H@NyF2k`_wACwLKsmU?c~tS5wrAwqtM zTGp0&s2+GtT%@)Tg`z&!mqi}D)NAY}<ul2G(r&nFxVA<5%OXeWF9<<QWv>)x1S$0) zyqxft8w+gHDTa|h;J>klF{{sl({HDB3~hhFYlc2+3q4cRfBD66`g7~d+xgqy3p~@} zl=}X>LtEX4A?eof(c0vMMP}l|wErThFA6z#6<YH%C9d&=#ufDQp&p^Y!cYHKHfV>8 zqFyfKL@My@Wt6r>nY^s{N`dk+k@b4zCnb)IF*&aIOM%)n%|2#y+^b13N>j61Py%SH zLC6~l&Blic3<PIv$n^&~hgd2G`iWj~LlDHA2u3}!R4qtL1>Bzlai&8yrG_)1{}&ip z&B2M#(IeB<hP0%@jX4l?I%#Ot1vxftPc6NzeD=)ny5_kwp(}a)!&uzD++WA!*?yYF zayojE#c)i-KYz^ojx~8qA@vjO&iS`~9VM0J90(oVG&S{wkQyyHJ-tXcTskJM#jH`> z;FN=tD38QzSIb&Q4^_+#NM+n-W(`Lv1PEt+yL?^fpg*FconBH1%TVogqI2?yLu`_5 zrRet5#8xj8c3H}gm}#fC7Q(hwd(pH`us8%S`BsnK)r94=j@gS6c0gKPv!#6edu?*h zLbG9&&$NZH-SV#_waJ4DVSiNWB_gUB*pRXsf~4<p7Ullpb9jviO{6;&W>v>FMEj+^ z8fCr0Y!dX}<=NLys6U`>eS~gKa~^MkM)DLy^SJAj6u^{b#fhvN0!wteN@&!d3HEzG zaq*_+iG!|*At@K@IE!=5`?+~`my35pyG94{&7%KuGWHwRH*?_R?20=(0a;tm+IMqM z&Ka$rj@4El+3xTD961O##F^+d%+k$1g0TFjI#uiI5^qE_q!!}Nz6o8|du2;J98dYB zfh9*P2K-=>T%XQAh|}0_bZ@SCh`@>yU3m2F$bGOoK<83t56feOE@9}vuY~>~BK~*F z{B2pqXtdzSqn&A7|ElfYPP-^D(>B^C=+5D?Yh5Yv$k%yJhs<qe%xs@7ue!qZq7*)Q zbM5`$eZDcJAUZHPah?1Ta{t|yc3-1-_}Zsl<6)WZY$XoaEY7<0dOPF>$rJ7hw4Z~D zD+hAW+HE-N_(YhRs4WOl(5xY@&F>GP?U_~Al@&Eo-@tRt>S_Nas48Iys(CzZKDYnQ z{x3nb{;JRqWPH6oQT+E7OG-8M9di<Y;BzX>PL8Blcew7&G}(4C2a-<W+lVX01{BRT z_VfA-S%4&Tc@g{I6D&+STF53vqom223jdpIYp#7>_K>)@Yea!9E|i`KvNR9h3T?M2 zoj4R90`{XF^i`N{pJ_iV;oZ*7W6js+I1t@mTrKn#J{h$7tb{o8=Nz8?K-<fFB30`D zW?_pS8Wj%l%23?#FQQb~fIOfC15WSu2KSay+cC@q3xiL7pE>h#dq50|*K~ub&&O1^ z!Y3K>QhpPc2T9_dyIqu>dWp1-R%~|N^<Q$`Rvd9B@)$k>-*Sip)5lb!gVJAUif?Ub zz}^{!Q0HkX?fG9Eqf9Lm&E=BNk`lwemh;Y1wxl++TNasVCD@`k%tUG8$4U}){?aQX zYDa(V`eFPo+Y_%r^X+S!je-v7#DcSMtl~xq&Fw|arT=3PZ`RjWQC3_8_G=CV$N49z zZWQs`<2}Wp?X`<d|IW|tYyL@fJxV<)8OeT?F50W-g;)kx92pz;^sI4Fj}*MfmQkyJ zu;Qf|ss2~7GhyX}fMpJ0&G?vbJ}QWQN8JczgEu;a9Ir8Jrsvus5Jg?PcAWZUT%%F> zEr4g^rz_8p5@X5W>rL;+t@EjeoYc9R6%6x4<bC`D<C`YASq9pnNV)&+(#%br-Z;BA zR?90@_~qV(o{ImXwJk2L|H!VA%!JY}mcQn9TJKytr;u>tt1S;nxP6I}&dgaY*Qi_E z^Ns_ql`KQ9oPS33x<FRpr9OSAsu80y?78|2tI~E-RuY}(%B_FdkJV^$s9m-}Qua5` zF8qX#@-$xp&?D_P^gVOp|JAvQOXMxME?Ptyldo}DmBDuPc3S3sv62@TW2ad0>$H)7 zKSUegy_f}vJ^r%zX4UAvuxG~&^}RrG6ZzN-Xc5b9F~ZyB%<`Ocf(;<M$3#cGqi^L0 zYB5B$$;t?pFmaWrbhYn`R~g)rc4imiGS$i@cSDJI0pgEa7OV>v&~w|uQ;P>i=UxZn zWE+%MrJl#I8{N>@U-3kCQ~a9kD_CX7>&N@<fPjI{*TEey+dW>>;5G9LkwhbEdS)H| z@35x^L2m^51^;p=IV<$Px!*Y5$2naXJh?A()yTcH=<>hRSmdXtB8@=VeD`s>>%nO3 zjpRSjko}N-i2G9^eUX0c@Z<^CdX4P5;g*A?@Yt1@p7d*|4Oc02W>@QpJ{Ny2jM0Ep zE^_9Z3B_yub}T%0yW~vNbRA5FVuJiU4z=^p-@SQEf9`6I6+==d;BE?ZcG8q9<X2ri zCF%k9`Mi*Ai(u(748Qo8lxZFRUZXSYlqd!K+=s8Vx+R!PBz^1nblm2vM*Z9d#6^%< z;)I}<r?3+?ZYW7>)sVoG5PfEs7ybI4$5J|JLgm)V#NyN)S{viK6#dhyCNJ-5HMbqw zSrf8%4|!04ghyLGk+B4_I-5q^NNgzmwa^wdE<G;zhlW-xib!Cz8WEN~l%c=)GDRu4 zK!1Nx*{wY9508Cyb;;QHwjiuQF>QE&&y&N>bk4~Kc?LV`01HW5CdPiHvb1v^s$|;b z>zc2frfo2nd{5pal{P*gW6kN{4ozM0aS55D>z$UR)Fw*#$vg?Vr2aEb_2j)!&$L<E z;;h@>oj+^Qh?U#bcT+MC<ay4Y*<U9+1Cv|=UC5aK@XY+Y@%#6%k$P}=wtOf@ZPyTn ze7*1yxZq;CGnqUGdR!q^WQ%BXhcpX67EdhS{`9T+B=-KOOVa=Rtg1n==Wm3KNHrc? zi%O3Qhy3rD&(=@f;zzR?9u@yC$?Uz0Sd9tBi|F(p%P#n<xMHe&RP|M;-t5L%B<Ik5 z1)p0a<u{DLtmxbh{v-KGKiO|)T~$mk%yMs=HI3z@Uk^RLdi~F>xR=kRg|##lfgQ}2 zmXyI{bev!LrqDxvs8zbv#kEA#0);2su%n#o+3IO3yGP^H?dEa=`TB~d=#pMt{JET8 z!u)$y(K*RuoNYq``^2S4DW8|9PPV|yiy1r?aRF*uQI9<s=Qpkdp2Tj)Qyf#i0Po@% zzADkKzd@tvia!&G!~mAfRVb+4Y114(ca?3@cbpE-WZ&-f-!uH&9hyleIK!Uq{@okr z2-_s|;Gi|9|Go%C+R90LVDUNjsCAuxokwP#)gQhr@aD6X`U7auOz(YO=Bm=%6yelD z8AOjjsZh$Irt^mWzX0WA*{(-vO2K2L!dEK8GM^2{uj)s0CvmYB@_tJI+5qA&Yqp=3 z=lMwjMgh);j6oiX#fdSJfbr%NrNE18<yFsxz<9#O<V7ZjG1TGF`2_8ec*?oi$J~pF zPa&EYyNAhjJN#Ey_wtFqY25>X&SSU!bFE3OErgPq&B_<V<2&m&JwJ6#9k=N4H|0J4 z!Bq2<cwY;Acv$<bXudeO)Q9T<33)}8lq3n5n7cE#R(9V!eKGlW_P+5iwx-_Az$PB^ znYP5&ktvAOZIGdThl#;EI-ATU$L-ZN6Wl;Yn_KK7&*b3S6~Pz^I+Y+$bYe3YZ9X3P zy^3j2i9Qdy;nc|?Q_7^3IJn1Gv+D1qCz+RMk6DNG5>zR2rBf<9v1o4r+<*T{Sh_{W z^Cr99ZoWq4S;Vvw86Dnwz0~|aE5BxR$N9#_K8g6l`Q5CXwby~{0@sG85WO$Se+Jec zWx??}p>KOzFR|h{a#G*9{==}*LeAE2>K{_yb+w21d;B}bsMi8r=!r?C270i9YeqtD z(&=yr_(ce^%Jg4RRtCwi^6XA^y;;(O%vsE@uwd@zd<7apwt8EWPdq_mMUIq~w!}#G zo_k+Oly@y)Puu;ya2x%YaEZxoOanFv#GSVK@z&=(A`-3w)k~$=Ieqxvk>JSSHp#eF z?5(w49QjiPnv^=*`BJ#|bbtU7XUM5}9(OU7W2l)c5qx$9CSAsN<ltV{F|nATWb2|& zG|hXwyE$eUb@PUo%%w|bmnaCU9fbURSAh<H3W8$8W~Ii6lp4olAjBk7qPy&6FTd#b zz@U_PlM7_=M_~i`MIlsXBabG+WqZz|AUd)G2fH1m#+sG3W|Nr-$9w@qpdGoxm43Xx zFwkt5Pjf`0;*VfPu20Oz-Q~fYDK;MJgHMj1O<7uMv74XyN(l{DP5vT4x0e6I+0uiT z_KTX@xzj4W)-+f0Avs&=cu7~McMmd(d#IqkcQ#A^O`~y-FNu6<aobY1M^N_3fCQWo zQh1txpktO{c;nSxbkMJu7U@XVyaW@<4bF}OcyfZpm<vUj3RUW=?|#V;%);ND?g51A z8)Z#%eje~vSH`xu{g&4G<`{t}@@ZS#Ar}W1K+3Qib-8AMdWOLjK#H3K4{^@ZiPHun zL%M$~5wg;n$@yhQ5$3zlq-AenyE$Vy!zW6>;wuh{CEwo{5e<2aOPViw?lBs+22IvH ztHPi*Z$N0fwfsLaj^Mb#i_?IXquKA5ktO$nqCs)=lBl%5KJ9-bo8CJH#ED3FYiVjS zz{`}UbwN6sk_Z#~P%Ar!9Kp9N+<Io=OK)2{1}{2TIu=5fg*hR=v&cFm6n^J=#0K7m zu+nHs5wLD(H*|`JJd7<l&AtN`xc0~)G?Qn_%#18N6U+TeAJ3TfbEJ;%s8*dq2lI@i zQ65j^z))zGgd&7D_wUb$q9<W5$kiys|9pOVDWh<gkGn~ziWgb*Eae$_DnXikRAu?_ z=im8^?pl0<GX8c0SGiPLbb5V+oS9O7EyGDiNmO<8Sx;JJ70e4fLL;$8@lUAH_{y(2 z>t2!Ly}MiF4=<+))BP4!KlUWq-cFiKJ2?(+h5_wlJz<bjNGY(=iRyVbwy-m^9X-RC znK_2J%ksJciH`0lOj=lU7<}N$VtSzCq&%VOjF~{sy=ejdsJJ(Bs0jQScScyDcNf9f zNA3~gv1jyFaAiI{&`&Lj;-ij&)QqUltObl|T73Gl#@O?FL%50I`0Lo@Q%sxW<}J<2 z1#jWl6na2oH$tppOI%ibEk2<iK07V_Qsf=*b_}KUon*u#*<c6;JaOc6?!rQTyltp* zM26g_6a~uvC@;=&>S`X_L-%xpK&p9G{K1oMh)aM^dZfrpQ04PWj?C%i=%yH|R2vCY z@ueT22@})X-}?ud@{e3A+`#zU>XM{+U7N%5aK=E~bP0vwT-<}h*mu61URPu?ft(Eu zhKDC+&I_x1%{jUZC1nGXx*(8ia~~@WV^L{Y%#<!jGchyBb?@bYX6PHgD}=)iN6$H# z?$`#(x?*s4jPaZ1$HOo2BH4=*l`{*K!)&9{6EQ_UKuRsS9(w`*6@E<-r<TDqXwN4X zy}#;l49yTiX>t#-j4`^%Zp?nqz?80;Rw8-%y)#H|p6FQO``G0J;T8J<N8u&e)U1Gs zM;z?7`xEhTH?6;fLT9ek)4)1<C&DY&KEf-9Lk`(1GTnvL$lv!L62Ip%8f)@FB+S=J ziqz!K$T<9mP@6)lsKVef>@Ho<y#`y`R~J$T2vMDH+%GXy#EH*a5C5^+aB(23lcjCQ zX`uV7YMNa0Z@Hs=zkS=DNUB8;Rp}PbasW)5qxYfysl1}7>0LkX0!oHTt>1w&(rZio zrm5w3`n(A5xOq{O*MVQbvi3~ZGDiI(^F-A*4lcG;cii+m9mdmjwdk*`)w#sYh$qY| z{lEL#EW$ir`q?Wyq6OXJLk>Vafc-xwGEb}m;shm7n-?MqnFKgmGrE2I9GMk!L3we4 zxs0zh`P|#vH!S@;ymRMe4<>u8MOpAP`S`?**SOvPw5)_|TaYM)-DFUTZ+ZN=(t5|c zN)lXVcJ=Lgt7PuLXVJC&a4BRCRp;zaE6bxv3@bCUT4@q7N%7o@JM9gicCpTO$^InT z(^0Vghj%2UwajdHrD^Z^r`3CubD-Go4;%nnNd>{Y^~IpGe5b7DUucemm*+h1KgHqQ z3>KYg^eW$S)ZM4yUE`643cfD7D~oy11>N$TkVWjQ&`rb&HI>y<%gty>zWQm*QlVN# zmHeP<^T+{s0C36Pa<Ec#ftyndyZpV}VB4`ry1-`FB{8idPawQ4vA+5Hr`yiN2XPZ$ zpGmm8vNV03M{H1cQB$7dM8#b&?_yA#o8;EyO<2DU*B&homVIgi1}S*E6F#`<%zH;4 zlm#cgo{G4|P|MiNruUFySDt|rY~DKu3VA)ZrOAJ$<o`kdYt8)`nX5leFBt3I@eOT^ zxH`huA{Co8Q<uuXA1wqzmvXm)nkXr}XYB(E6`eFw8_U46=HHWMmj)woq>F0H2Ir@M z)?=?Fy3Rl9*}w2x+M)g?sjiV{CmLM$BjOob{7NpXt7cof#EE5OOC=4LQ}n}9bkIcA zM8VYNI3!c9`Mx&Woq2dUai(H!5hWFeG}E45pIz+z8$f13+F$X}VBbS>+wsqhqrc_O zuB(*q)OEWCXnJ4;Vs#>z+L0RRZ?D1ia}mSzKRr9*NqiI!AkwbHeBgMqrz&o0kb0DX z2f*XUlwm<cG+@ol4Jbr3j<tRd)v-h_{VCiXUpnEN&wHO0OI0z^zAeEukL*bFi<8|X z=u{sH0s!nRPfRonSFHA3)1>l;dSv4b9W{veTjR7U{!=Ht$4CxMchkdmpn~AmoKIkm zQpnR^f_QFt7J+=~q<N*_Ad{p^2PlyzEA^J3x<|IpAY^H7$ZJbQ<WBNg{8ct<pt``3 z(CYWF!*}Dm-yt6Jf>V|oD8>;UhYCpDOat1$sWX!CODT@xlo_RZgQki&pfp)}N<JR~ z2xT3OTVIOjNQ&SeAsOmf{W$FVJPJZV>El}vbgk&n_e0R~gD8eCzWQ3bo!;T@;%$5y zj8zr%PBvDBlxEQ~`;d1TPP6U#GDDFSL`qr;1{s~Z;HmJcGs6hv!>Z=OIzs{{ALn+; zx^mn7PE}1bhUJPQAekgT+1UtsGZw5clu?t$A}bLCijK#BgKZYj>nm<ZuPiAj6{i%; z3Zwrr@>So9GVkXU+KWGnoMzAw)AOv>tV}y<^<R0EN=}Ws5EF}&HZG9NM)H?0YC2}P z$2hnGcJ$R3{Wv(y`4HOUlgti~%zW~Q(0LNeRtvlH$QnU@Q1K?_WKpAwnKN@j&Ep>e z9B%c93`zEalH~D8c?Sq<0qSckPJNL@QA&x*;AA|z@#HB#(jeRH?TANJ*s7OaiD0=- zc8O}RdpnoZylK%zu}Z)s*WTXo8FzKreMPrdP%h9CZkD_9?eW&8eb_)y^C9w-`P-!H z@z~)>v9_fS^MOizC7bU?kL4#H0Zqf+yP{j$hU<^frcnlwewvG7OwUVj!X|;(j%uD? z5|_k=O_cL+#v>;;Wg(?_7+oCt_+zkT*^TYB@l<89?_{4Cg!QBkqx(F^&(_EWu^nOb zTI1K2Jxt*$0<T!N^@saI6y~&J;u4{f3X-AF=c%k=DgrpAj-H{9ZK$p2)1Z%lUw8ig zujLzPl0{HO^TjI8lb~7^q65b-j6h*lqn?}wJlC_gO<sOs`KheqDgrWPe?=@^tHuIl zReKJ;zP`8p_5u2mM1m{Cuw9W8IYzHZj4cBR%NHaKLqr`t9Q8kh+)^b~Z~;TMr9rBs ztR-16vXh6E4lY+82^wP|A;S4i0V={N7aB$Pvbh4a-k*Y+yJ>cXy6xYO?7wZ$DRKU@ znBc6Nkt#Zw>jL+`?J5w#rjJu?W9K{>FepFZNi<xGRZA#(a)uC`s#vVrTt6nl!YbB< zWNOUZ#k_dWss09o71SQIaLQLMQ7N7bl}G$bjT<}97SyDNl*Ben0w*2celPVk8fB-! zD>N+`teONhJ2vyrwmnP4qKc>#lrdO*VSH4OZduA4uPPwKxsqNvBCn-jKJ)u>ylj9X zbHk%w*&CZwVhVcl6ysrBAxK)e$o;`@#Pi>|E+mxiGFiO@EIhMvJbn>m)FyXx^6VGG zFl^HtQX1H}L38F`7UrDJ+N3J5!0DqOaDP$N04z`~Q7M@Or6aPCf^@)x^ubTvUBU(0 zC4=xuP>~~HBMu9vI!U^ZiXN8##+ThRRxj1IagOeaMX;0l%~g|u=Wcp+$WixKb;opq zVuPC*!0;~{Lr5lg=FaV@H>bL2y4}9sFahg$pil!`&{!`UqJ3oGvzJQEua`~98LSnh z$|P43TQCWXa^%r;bWn!y7dN1jQh20a+h?MB7q&SC_pB*Rw6iPOkLn7;Xp+}`;mL~k z{{>Nk|LOjj0w2EqTEX&JaN#d!qf)au_x)(~gt8o@u%H1NwJz9gO6;FOK}reHS}c)? z>;mj0Y^<Vhtqq^0U!a%SegvB1gR-7$Kqy4E0{Mo<zVT)39ir_uB&6=|2cbJ-|1?+b z&K|Y~_uATca$M8<D>Ya%e6oy2>}eXR1&s|CZNdH?&wN)axS`3=7axpT=Xkshv%g0r z;7-NZL1gO%@kUZ+UAs0K1Sd_h9k`DQ8?$Syc5NUYbq(mjMf8uCp>NfHr29NEoD3bw z1k9*miC`N*F#QRrboAnu_+Rsk*uv+X_D*P92YP<U{Kr^t(N_DYz}=Fc)m2rXgJZV# z@Dpk6fD&ZANH8^#gtqz}W->ivbs4PA-m*+QXGU;qZvdBBTd29+{ezX|$XqU%thcD3 zbM#0*HKJCp-hYb3hJ~oWCxHcsR%<mwxm2)X@>@hrxeSgDhLZjk6ZNUHu3pkQt;#9| z!#s3mIYEeTKeyg2w^}c^V%0<)>u$L+TX~gOd6Za{zGXSlJ5qb;Q)6;h5bRaKN3G9C zrC*DNi@G(()wn;stl;x7<a0Nyg|_{3U9I`4Y>Se&MFBYvDh>>nC}neG9jxTH=4yPt z=hJZRGDsv)E>yziD`A6nr^rzrbw6j27dD-d6<NI%NxfAmY-X3DjIy-?)>1K#0t;EN zX%)t)6vlx`W+d&ntcr`Q3X7}&G%Q)QMthu=D?j>_l~MA_D4?uryONfO3~>=Vc`7@3 zn|!$(7j;Z>Qe13O95^D)EhpffD{{uIdSGx&<5L-XpZ-%)3LM>9H5hKE`nTr{{?~Es zdZ2c_H!+!KLk%$?R0IeGvWat*`B?kK;H0oH<ZdHlRbGiqIlS*ekwX8l4*pbS@Ya8M zGn%X4!31Svf&xw<ZieGT^g$x}!+qs`<n{00aVd6jvUYL$+~_~)#aWL;4S-R7U<`my zm7;gQA!jBO?w|8_Z=`~4ELYP1R^tsGtB34&D?nIdv}mGn&UD3miFq)$s_YjL1CWTp zVNdN<RUC@l2E}ZH3XR}`6!1PvbtiB8QqdtUo9{%P>O|gV_I8jd;#;pt0#7wYqVC&q z%hmby@yq?ho!CKM2EoguuDIB)IODr?FWP=jAClxsSP};HX`=#72yf;A0+B+9wsXz- zwUuwHW~+NqnH(sG0F+GtifameT{rppG|xUu=Sz$cD8}dwHgPHiE~!}72R`)kr6ap2 zzd@QJQi@bking!ce^(%U94G%9onzD<dgyn$AgsI?((pIPcjKp_xW%zR0$}fh-ecQ2 zkKpXS`w!Vq#)oHUg1P;@xDUwonWe>7<rTl?r&F3KT^eA{4fD1|FWMZp<f9F5+#3`` zO@=2Yf=>Q@yH=bgTHc!}d$D+*7vCiP#*zdV(5BV$tXVoxfnfP*auGDP2nv1!J~sy3 zx5DmPVOwK2rL{F~5fM+#K~K$xN&XZI{W=Hpt^4t<`MJ}-(KKOy^DEf}fK_+2IX2`l ziL#kQ0aG<DkS@G5rKwscOGM>RoN{QEGWb>m^6t9x6(17Di-g5aV7#RRdR}$XizpTX zSqp)Z?Aib(Z2+k@pe+U&-j0@!0kXybePp~WHrhaf+gAMBR+)T&2k<uH*=ayl?5-JT z7sJlmxw_;h&1!|gT4963e1Xt5!lwF--T#8{o$&3%NH(oX>FpC5f5Yk*okCr#S^e+3 z%~TA`h8xx|+`nRf)PWS#m@{_-&4&Ejyx1FrVxe@W!{Pc>B_=#V<f~$!YWZFih+0Gc zZS0osF=i7iFmf-GvSl9iLnyCV%MYsJ2hHlqk(~X4OSaEVHRQ@S=vu4xiPZ4Zo+*FC zZ>zB1>(WGDF;II6l~Cw24!5&pseKo|J(pTF*VImy*JE*8%L{(OU{Q;7@+`R4!A}9m zBPKQ)Xx(&}Y?XSMo091d1?eA(w$IJ<fm9#6whEb?!n@Aocz~=tKp%hi+tnoAZ|Zau zPR$0HOcy@SnK!K%H?05+a~D1lHINjXZY1mna{k3^u*+-Gq<m;>J{0_XnO28j+i`u{ ziuGOpiTO_fGrae?<iYXa>#i+y<5u!|eUO#czLm$mRjF>j6xyCf;bzv7sYMg&ZcufP zzuL^G4<OYCw84@0*HtJXj`L5ux#X|fVfgJZ+u!%^j*XL7ps_1Z<BOHhK!fL(R!=Y2 zrSo$ev_#+xsysg00V~VuLJm;crO?_790F7atgi#cajb$~$qTMy^=N9*Kt1{G7CPTC zk2*doQ2hO$&tE&{w+>${neN<z65m*W-dG&2|Gnz;CxCRq96CjaM%XZJ@fM8NRurvs zeF72z0et=eeCVmA)2v(yPhQ%i3aQjbY1ZH$N(MZv20T8s0j7>F&5Pdvcc-)*9WeHe zd4)Y3H9vTC;Kixc+39-tU%%*p7Nr9q>jBWt*!M9$Iv;+FDn3TNf(ORGlF=T7stiJn zRn7nY3RlUwYn$I%_4ffb&z>x}JFwDt(We7Q(=kocF1<y_kFB81!>Y|gz`Tz^&HLv? zw8J<y-K!yR26m)BU#mag)W}lF=HwIh6hFRXzf&2Nc1o3Ym~#8P!a5(Wt!8Qbu^KcA zlKiJ_K5{iyLxNN3y;4p%sHVggK7}ftLIqCjiTB$$454g>P+YnRx@KdOR@6*~+$(Rd z41BCi->C&Yw@(Tc==(thcy^s$nJa|dOBJ^E1ux2}y-mQOi>hw*3;L6_kMCp{%IG@` zm%^^<G%hzMp`NL&uHI;g?Qjmi$06#2;6~U)Q`P?7n-jN|{6Dn|`MP!k90I^H5XQg9 zZKclPtn9jr>{iURu^K9<Rz^2Rm^DLKLs-R?*P^zq8NjgU$FS(d08{&J1X!P)^3pyj z-VhBZ$Y#JAc{42|u$xciF^)eavjLu)@Ov+kQ+)3fydp&hVzm!ni@qbaQ7Z|2xEj>t z(fD_AId-3yhncZVrIxK*Hp)<p5JBx=T#Fx*aj|A!8VkyCWxr>K+9fFn^c7}Fb5RrM zl)UKEQ<lueIVw`0(o_=WQElU8p1@Cbh*BwR4DA25efBEFAxc?rgK?tIw$i(1#yYMc zxG2R=Sw$c;O%U^Ba7p&JGuzI(zT_HJ9pkZCDIqvt@fH@>spxgF-%&z&{_Y6OeVHlq zY$Pev&g|u)0i9weJ(9hn1@U2$iEX6iYlDOy`LO0@HdUq*#Ua@1L((9<tQ|Ik05F2f zh->C$jd*di>YJx_5{zj4RIYQQSvNh?hd`bbpS_rLs-7Wy(zhEtSoL{UTuM1rM|I6u zlkB|yB!+e{GvgTcIQ@WiUf!-0Jv%cUV>!!t+kka;-Wd`XJ6Oa2aw9Rh?^8YOU_(?q zUmi)Wm0%vRVgguOqxc^7Q7r-+>!V>+7qv`Or>H(NwKv)B?hfmgSr^7c5COS{EXxVI zZdZ{)+o*B=URgACFopaBn&{Ei=x*-gSeTpR-nP%TJ111{u#sq|;ukd0Pg^6(%=_;9 zE)PCsA1cN+&@-F4WgfndQrZCu5eo@=JiR&{S63v1`4P6tJ^X>`-@jf=BqWx;dav+u z<gMIx`U2Fy@qNZkp>D$`Mb|!Bez-l=WIevx7;fGNUI9`jTca=2%aQ+d%>_(*QW$1z zVjTHH;jGT0MeZDaE+5Gdouqa(NizF`M3**3(^DU<uMxXBuOkpA&WFS)lBbN*HrS5* zTyT{?J~15&N)&GhUd4Fuhq9MdbuWMdI+dr2))&zBzv4Gj8O{cuGv*27(b-fJ39-vj zr{NUKOjs8*c)^ZhgZY715Y10enWMp^D;u*#-SfQ{N33!_sg?`sZMGpprvwEPb$Yft zJ6XdMA^e+CR2h$(VwJ6p@QaVd9_<Adc6sk+ad_SLOheYz(IEvp<Vu4>NjA1dDf;lY z3FxGEJdv(25n1}Zq3^{NT9(!3y1)G8T)Vm)4p%m?!{@nrt?I*;Z%t3c+8KM-UX+{u zEcr<D#}c5;EeFqVFEF_cndd%EkyzsCl0rN4A#*dC?$&pwX>$Ees?Ty$g$8`7*4w^7 zPZl3@OJ;=d+VuzX_iP6)_<>Uu3**fRbsda-PbmE@qPBt~<J>&ikI4ZEYcco&7;aiC zSg$}#@Xb$R4m-1Aqw{b(!9IK{t0>!;8-nc9DotHu8e@Jrt}M%1o5{GXR(YB&emRdU z9Og{SSZ9r6)&B)bvouEH-S89N*!rh!yoxyqdB^)s=y%;;_pKKtMEjOe7rYyjy-j+f z8rObUAGJg;qmY>l%jgy_9t?QPR<r9eoZXcwr5Rss1$Q-qcP_ca)+{6A`qIqx>&cjV ziqHM59XLFAj<E2jt?~vxD89nCvVp8OeU_xJ5r56(XQY#mh1z&0zl{Y|X7E-Ae$no) zKYNPey>TDY8JdS$ejz@TWCEx?Uqf`FN>n0iuwZio(fmNVp<7IFc3*PI=wxcaVtgu{ zQert((U}B;G={fBEtPPIU+y52O{pyDhp9`yZ0}oH|9<*swlSgnz?Z80L)kob3z+TI z=gSw)<DvYU(p06-O5T2?|Eq;Z&Mt?W=FXwjL-J9wFSFx;9!=4|wFS5?##W*VEBb<$ zK=PBp<wjYVim@0(FRO}ippcfAqypSDG-o8vr!pK4wtQz(L3dH#-8vIDEikRyV7v1J z`yi_$v{OXHYCjdYgeDH5PCTyXuqJF-ejqkv)rB?{@Lp*<e>7QUXCTSb#%y$AWl@}3 zF$$k)ga3=X%O~+y%iGC3{Cxl_fJMWOaAHO>1A2g$o9R*5wWgzGgvrS!Mu;CY3m+6t ztW0K@9e9%_#6LhyWfc#ipB<<lu?8~E4Mh0Fk5>1mYX25a#EAi6DvrNe-sXEk47M@z z(k6B3Y`Hqa<Ur+_Hb~;HmbOW4Vo9uGNhs9FkRxo^1T4=9SVDg=)ClM0i=`!rr9JnE zM)<PLKE+wwCXI+C35z8GfErdYxyort%4xg`j3>ffI_VKEk}`Gd40Y_5DGKpTH^Ld; z)mg+hLFQqiTC$>AB+6K#IU}r-VcxYLz???EA>yJge9k#1mTQ4}e&$d2y%KyyytNni ziSJdg?^Vop6I;Gme7xS}k!U>N2no1U`~{$=Nh6|3YuTlDcbHuH&t-nZMLu&9?SIib zoONL&ndA+5EB^`2kNBM5_u@HDVEEbBrSCLPIc0D-WN_4QFyR0mzcu2R$l@5w#-d3a zzha?)y|1b^%F*gi4sek2IIZ%rXqJDf25u}4BrG;0ELcLZB!aOd{IMjNDh+ubu|o?Y zJ{R=8!2kc~ddr|V;_h2FAvg&x3GVLhKDfKP2X~hM!5N&v-QAtRU4jP>?(Tl)egEg& zbLv*zs;U0a)ieF;>D^UbYp?yR2!*@W>{SNL@poVTZ>uOIOi8FrNz7h(kF5*;dZ71m zLw0jRXy72Tk@~zKvSTR&A)zy{fY$?X1!p4%qLvedX6G^|#W5!_hvu#4C&#MCp~!@z z$msbh-DE-A2qRbvN63CzQKbq(Nc7Da*n5%UjTjffc>7|(y6umS^U!cc^W3^>UmMVq z1b9~Ln-6fO+hKg`w|F4FKx95cLxHR$cO5Fx9cJVU#lRN|xV<3s-5~Vspafz5I7!Vw zdL>bMCG>Qd{Hs3Z50}BQ!rCsVc434z;fQgVmGpx2Q!La^GVq^d^ghM4Mpqha9c3h1 zzAZTzjK07m1)?VeqNhTWBg;b)wr0sbsEnV4wq9T+EJDu7>0L|G{6DLH|G_Oy{Ke7- z?8pJnuOZAvMZ!kql*Z$8fu%GpEj2Bz=RNiA9h$1BFz5$`$cuo$8zK8=*(WEESV5Fn z0Udq-GK1stLxfYBcx0$RQMizjq>vIJWPa@&qgv?q8M0EPv{a?Ep2_3}5y77->5(dF zJ$v~AAo9X|-^=C+8`9H-02MZBpEP`*v>xizMh@klLFth}X)Q*DM?$C@+%!&v@kZ;y zFyUtkl4lCz874jj`jB({I2Y+~7iqoB@x`&ftHvcUjV{9a6eRi-PDixcto1{P72P6` ziJ_{5xT=I!TP!EN+1O8j<Ph=X5Q=i>3-~x1>2MlpEjej6g3rY)qT=Y-q<!As;u))l z#?77TJ^$K&cEQvpi5N#*R^doAowKXe?ZF3}OKv+04Vas`Azc`}xjU}}_+9Vs>3VGj zw#EJf4!{J22PfWtI}9Y>4J4<BBlp}4w2~CHlI#=ZJ7-M7Pm_w<l?vaLf{Mpq5FK4M z(ZVls$1J52ZXzRTB6BJu(6z~D9j@AMhl1uuhvG-a`9}hYd%#+2Qag5XZ8T8!x%gPn zkeBX&auq~(7DO+;AwjaoTG}b4VC1(DhZ07o{8X>IHTd?Ok}p9pAy|e80rHV1ijaN& zt19$6Euu1Zz}#)*rEUTJkFdZG9RdVx0)+A7S|QKCCIf13a&m8S#+d>ZBXr)*0PfpK zoy{fGndDroggC5(*2=gV^B|l^5`+knQIWwo=)t&<fw%#R-=}sZ2>HYadBhP&F!8SZ zIMx=a4(vNp<fXsK3xAU{a+s~M1+4wc%RwL|MIa%KKte-Htvl6Q97*!|7Urk@a(q;Q zqvLzWQid*)&<dYmR}jBrPw!ToUm!|RElEb8M<SDeDwE)-j6TRy$&*E|y0NY@+Yt&G zxy+aD!;;s@47$L%NI~CZ2$4tsC6A6{JL?+;Opz8%k>0MCYi<tDHj=lL^`~L+KzC1Q zt;KLcq3|mgz9lEQB}WL!mV)F|CGjT??4>c^_^gIw@T*WFC{sp6vBtBo<kY0#+$WXQ zmJy&OhM*>fM1k;I+z(@l$_RcWhI~&P7zBlndoE>KyS?q55n&MZQbiyMqJ@#zeZc3E zL+6qQeZqvi>cYj_L8=ZzBJX;ii2<jW1YI6I)r!>HDFJx4bU<dSK+7L~Ju9gxYkeX) zMNTqBZtP6i5g$6c2+Wlh&6VDUlJ69Nbe22EhQkt1Yi7i*lu#EEL*^4hin34dGr>Hl zof(84)4rLVUULEd&o7BM(>ZrJolkpj<B4+}Kq49h7wdrVOBvBi8FY99$isO<l17U# zr-tBo__CnltIwj3-k#9<Cs{yGQ_er6lw3|6;6CE4++_GhDZgg7tG+T&(Wu`kBmDPH znUg!?Z%y<N(M>@1qy*O!Q|j`<?y$rA!Q4N~_?0_EV5BZjs}zy^kmcaSd%>Q`BQ-%R zBQR|Ep7ZgQOXsP?PVVaGd)Y_1+U(3Rp1EtKTfQ#Ao4l->8s9smO(^2*U7LYLFaXo9 z0W`_FH0^iv@==&W)J-t?dwG&SCUWS$|2gM~*da~RTH_vtX!wXqSGhat8m@sp%K`{~ zVJ9?C1>V^E@yiimgT0uuV;ioFt{r*s<z|Q7zv{kX^^f<G5^X}<zHc2lL@U+27tDgY z1WUVD9^<DL35-m0>>n9+G=u@EML9Ret$Hb4Ggnsy3m=h00?nIs0%FQN>Re7`0lw|k z-7^{aya$_0PfL?PMVupIS;<Yw_M*G~6t7agc-GBTeeNfZfDt~t<E(4YEa}ci?Rn(C zjPd0=Qj}SP$gpMZjHI`}&5J7Tb^yudV{c8NSJDfL6M>!M6Gh9VyI!xSn3ll+4x-7g zv}trihHo!-3;bgiPYqY30iwl)*z%F!fXf0$VmKhtUcV$r5-8dCWqYfw!1oy5mHzbY z@W|G`;k%)p#mvm5fdP-&gRy~_+HK28!<8epz|#@8H*1>sAdvnhy<HB6Xl|yC9@X=e znn)0e;IogAH(0J<*(*suHg%>vMdBVV|Fs3@z9wxSYv+^_S6rye@4nVbr2hLKUA>Q` zFImt&LN%>kJL5YejBwiQ6T_R9)~?xHk;?CDsR1l82K)iu&d>McHCJA6#Q5pGJ(c(= zFti_JTY*Twb@%=q1)6Gll2Yfu_0iWq&Ux}?>K&-h3R<qH)~Ak-7ToT<KF$h$8$m=e z{czqTvRDH*)k2U>ipE=MxxS?E9^%i`0@DGuuD9DyiVg}J-F`D4Z@ZJLko3eCh>z;s z^;#kw>7RBWh%VK6&nJQj62atG&2p?BqS<yzyErqJSX8?tUK`n2F08k(cyj3TgG3$8 z980SHnkNsJhAyEJN<^a%T||^5BNCu`=4=@i%zpNX4O}(|MnXbr`^`>^Eip)YTHsoi z*lZb3LKKfY*q8Tf(@BaqL=c8G2lsT8<RuOf3qEv=D6`>;86B)6{3Ft+RG2YIp8Ad7 z=>V%v?*?xjlD)+ruEB(TMrQ5$ABSwRA&miVro4saJyq(FW4uM*&sZZ&FJ(r?NVL?; zH>hW&0kJk$>M3~7H*Ni)|A~`}Iya07VIXp%s?XAEOw27ckI_P=Tm}z5U(Du<>X2?9 z<@RAfDem&YY-f!{c_bS!%$<%HbigT}h?p7TOix8^MtN-He~7=T62BoBdJyO@n;zK_ z=s$d0NZXhZdMBahE2Q1d(R)tJJ-xp<ahUcOq;0Ql0Sk_fZv@=GrY5#rJToaM1b981 z1RvTYZARs9>JZ$fGT4A~3g_Sep#j8SF|LUaR2YS2zEf(Hz|D9Qz`JcdXz1Uw>h50Q zFK_O8T&@ns-`-I?D-TGv-BKH?T^8@>p>v|U7KX?3mXd~sWByPHf-j4ypj_Yom5FJs z62wfi^^8%NC-vL8SLww|3-B$HnK~7wX*iG6S)q`pjk$zb4Dg-&Hy$DBi}-OOlHba8 zdXw&(?_nM(l+vzH+as0nRWk}+)aKn_u%vkYNVqeaa&~BqM2G)yc|H<=9#b`RJLToh zfhyoc$nQbYf2LtNyQFVB!o)TAyTjh6l1KOGxR(CT`2B*w&cjt$@mZzIa28(UXiIxX zQG{FSU-p=F%8VRi4S(GM8>eFaM}q}F#EV9f5XEH>WJ8$R4jFJ9U<eOzIj@LA^D%=| z<P;;-QLe+vpT#810%Edrx=+Bq*I@!c!r|j4hmF<xU(*h3lsf9->TQMP|M*zO6<PE^ z6O7LVx2MnBRvcK*2YU}*{ZHJWXvrDh+V6T*-LL;OSti`RWS4fA5wPh02BRnku)Rj5 z>E|+kSLFXvPH?6TJK(i{`)$O5s;rElTq6bC)@UH-lq6RA4}*Y1wt_dHstyt@nqKSm zR2h(Lk@_}smnr%cP3>$ggSB-3+7E5srYAJG_MQE0o(LFw_|v`lKm<((Yqv}4G@u|s zA9hr{-Cd~MHcY`W)9&O&ylx?PkCk)Zoz36&Z+}FjegWOM2^$c&+V$7O>}yp)ebU61 z_+7qx337CL54C=@P_dt`wrx~f%Su`9u6!44c2X}hQRk1|zlv2cs{)LJw*3nuux2H; zZ^7kf@Jzubg4I5-MH<S>K_|4;3vtby*>|xG%>vcYiBD!klvA&DE(H5SwmyPGljjSP z{qIgo&6r6}Y+<N^PAC!uZfow)V8quEQV#YXV8jkiGBBb}X3a`d7yJo&`(?cy9~#s? zT_<tgHMWgaNM0L#BLpA0&(Js<F5@C??LUaU&yX|&FJanlm1Xu|Vn3=|k)kp|h6B}a zQ$Gf_?r9C;=BO@S6ra-q5LCML^aLAmR9CnME(TS2TWd3^s{QPC>j4ERH3g^JNR`Kz z?n5m!H)%G!V9%Nyt31n~rE#b%>W!pd#?LJFUzh{L6=S$LQj4*Twn+k1KHT3jY3bR` z#DC4}#jZ4qYDVe1+uw3`I6|}*est@W(8C{TmW<c*J#H<D2-!G<^%PE)jA!&c-)|PV z8(OdLSromGNLbK;*iw=hDe%tU^Q;&#CL35QHDx9QrD}-DnXacnugi>Cwah>B{3LGE zWCcx`6o7>5AKR>YSN=rMQzKk1R~C~?iX*1tNo^tZ0*sHsM$x`3I7~y-y6^O|NCNZ_ z(`0MG_xb}4<0j^<_kuuKp+7&!EGCMg?W~Qj>Skhi$gN`0c!n^C-RX>$t+9UEGS<NM zn|N<+zGnl+HKtKhJmzL<m~!}=P?Rfb-mosBm_<k21`=7^SVcmDUE2hDsHhzJhv2N^ ztQvyHEZ{TZf9{)1cGf&z&vD}!NJut2MG-Z|^OIdoz+~H*S9*W7a`{hUp521dBYfcg zk9bSQs|i!{p9Vi`Zt80cI3yYts@DPSo!MqPM}ywkY6eA49aLuzyX{t)e9HdUzoo}< ze^s-JQpCiuH^);Vlz9U5hB&6Nz4ZQzb|fr=`|c2^Sus)>U%xN9_zT8bsG`H|wg~IW zktQ;9w`mip1G#Wb%GpK4-q=7oC5P|eSR<8u9+RNYaksBctF>17xw=>qD^`iS7=enq z`*I7;k9&Iy#H+WFg6^-&t6TWx2!mq9QM|v+jQc{xVLDF-B!=cd*1>?f-t3jN#KZo= zKAw|)JzR3ctgo}u-|g-5SIGhZ7yF&N7|OC7#-gvYyx@hzg>K9dy1z}YRaoSVts$RA zq!ilWkr-jd-?0N){3X{roG$V7Szl8Yzu0C0KN2zjUknM9B<|Z@>^ILnwrt1XEE^J& z8PdW0!AzpVE9`>goM!<Hpr0DjWE6HD4g;m`Mr1!Q;Pl%!j^|ONaHpY`@paG4ZZhHp zQH=sXwM5htr#9*@N6bQ<5&OoGbt@K2jISU1q0`J#O{o8@;(KPcCn+5x{d@p7)B;4i z1-~!4u-PlH+wmEG@#utUnfY7tfwTQVQ-bmZPoB8RmV@E}-5a*gD3K1{)oq##t|B_n z!HxHAGH)8de__}a*ySV)CSp3BXs`~m3M&-zmF0*Ph=uCXNa{DGv~iJq3pGz5u&a7- zxv_e(#@=@M0GGaR1Iv+ys5)`}e`KKoEJdu5l54-jVjDGeb9I=$@@vMw?Io+zC)9RX zP$9=mLYPc{1n0rLOx?U6!~`5mjukR3hy%LH*)*FU>n$@fEXC<I>UA27OEy0-PB=Y` zD$02@v0V2Ost3&JJF1;Y!mHrkZg<ukxa!OEG?TseOlqKh*M3EVTG5Jhq~DvZ`xT06 zrP?YACyN$Rq=%m3@l|(Y;YC834WDixJ_DOa`SGG!W5kNaxlxT+>OZ`~BytNHoU}bZ zhA8CK7Gxtt3QgHIBZd!NqY{iVSj{`{bbrLUG*yzeqLDQfM%QsZ$`>A5hY@`e=|nnS zy+~rly@b~0NsC*pnZLk`e5cUH6jEK;Hpi-}mi#$$4W_Z?1tr@>ra9sFb>h3Pi7aTk zW9GJAaGLWC<^rvd&tBN47aObuy+}F6J<+yi7%GrRhs(7o7DEWG?GQ#26JRaX*~>8K z*PXp_X&{YBPty438~XNJ1g>hdiR9i1gS??Lq~;50!<PKXti$W`PsuER36L|7>BiLp zY>Tc3me9SIY$$gcX_j1@XT5}I{c6;Kb-UIXzwX@`X0{|z*cTY6aZFYEs4wnLtLNse z2FPJ((780lft2t|;KY7o=p)O>(Hsa9`+UbyN_Z{J#M{y<*qHunn@d>n+0>#gdyC!r z{qc`K09EJ$n&RjoBv+36vMTS2D)GPYtiq|WX6dAC@+>p#{z<wH2m9VaOEJk05hGPJ z*Nd1KdQnf72IoFR)uP4n@pHv`N{|S%t`0F(KK6WGj$b^pf4g>P&rv5i0ah6%<#wGd zcFlZ^FGf~<?|sOGLv#L5-SgQ9eiywq_hv34K*^5YI%ovDF+ii;I?3ebu9sy$LK`LY zXHEcAhBKONP~VLM1GgvfPx-c5j_LfU45U~>DRosw4Lg+KUZY|ve0df(_6;P%8u?Si zEjGY)n#rtX$K;3CshOr#Dor2cFJju6?y5c*dUe;Jn;*rzGK)M)92|}?+T;9&5LvZw zav<X5)@v(clx7lX{<>QG)dkOHm_z-5gX1mS|AmuYz~Kv}lIR4cD$C9$Y=D_?o?3A@ zt*TrFJs9rSHxZGd&!O09q|tIL9IWs1BYdxSpX78L<+2JRXeg;tsJC2Xuj)%$p9e`1 zudFRVKO^8&8Hp;NK7VpHh~#G)gzhS2>WGR$1h!xQj9O0dW!i)4zIU`^i9kOn0%hY| ztUR0GBIYpyR8mb;^gCkUi^QzenlV{)$M$T`w(OS_=qh9BzBc5_cE=(w&;x8!5O*!A z2nUv;j_er<`iq?1tJYFDtWhG>$sTG_W_JT&Q%OT)ov^BR3VE_cNxF(gHdN$%f3~ou z2#EMynY1MgoG)eQGvz;-ygJ1dxd*3u;$@3g%f>Gifs9hgE7g;6=lgK=EK`rz@lfEF zZLgSupKPC&%-O+$8PQ?c#wM}kTe2(>Oa`E4W%_}zI1^6tY1ua6n*A5a`F2bv{m3J? zt7?;t15d_0(QMiH=^{Ph)PS-t^lzdAvhmwRplF<iDQsD=;J?{q-HPt~f(3y*i_W@m z8Gb+%B8U`Lj)kC>GXQa}yZHI(sX_DYe<nRP{~I3&wrjcxuJ{t-g_7}$x|0gR+*O4R zrAfuy*K|JmhxWt_@CP}6Hqq7nZGEEy+Z6FCLN(p#PNCT}<GD__i1cNjDE8DnxU=XH z+%6n1hbCRDN4ebmGW)H2KFZ|VJ?@t@R)9j9iKuykQt<uf@HCp)3Cu*c#E`9Zgj|*4 za2i#)l4w;|Yo@>r5UHbF+d!Qig}^zp#a-kpx1*WRlMd{_7^by(<Y@9$UmmA@&g1F7 zRYGPZ{`+s&Q*;5j4Qw@l3eUR?$&XO4EMc}moXPL&cQ`(^lePVB#-NV~Ayvi?daXud zJ{ElBIRE0u*EC|(5BslS@Vl8bg04f<osDE-RdQ&W#UO(p0V?3k8yehBf~vm~h7&*^ z6zxAGs?hN?#p0CN=bMZFmS$jo9)!oysElAHl0Y<^#$+;yVkt6JxmY>$-yV39X>w@t z#URcfC5PMCv29u0tb5lZ={b`kCUWsC#d;$kFed7Zr>O4|3mBcC807xfevVYILK5|h zYGDu!B^+fY^Y0dCqFn*}eWku`Ow||ksc)KSUkA{v)H>N|3|5LfIX2GOO?1<1872ps zA8)*)P=mc<Mp7uvWZB{wTq=JQZ5r_G6W);y5t|_XO1(7`fz|`&#?Q<SKunqigHd9j zFC0)h>7N+Rpc?Q0V6SSGa$-e#-9lF|RBv9$8h*15sbv?@T7fZ!@$LGc#><pH)s)x) zJ_$`*6lA=nj-T3G?{IZOjQ7*n%LVzi!BMv}X1*4yzx^Baz7iD`%s4wj2Cf5GZY~BD z={_1`X#6LI?hKO`Whxw!X6hED{XgGvF)T#vEOIH2?||EGAS2h`u$6BoO*qH(gdU16 zJ`(-?AKlsUAh0cVTAOJIuCX|{vs}MOTYF0=c22Q5-`Dai`~Q|}h8M4x{j^^9gVw{j z2;~SF!-A!s|57e&*VIxG)6cyEI|CkW#Q0#xb$h}(VH5}hS|;o%kFHteZ@|kb+gBdi z&pb7;<L1kqu|Oh7IP2?S-CJzcG2pZ2-Mh-iqpQAO0T;k+3S4tjlR=b&T>~$%Dd}Z1 zkD|MucP>8W>+sOJxA{imATYlMk!qmSUyRqA|36aAH<zD3Y4Co|uxn<G9+w#Io^@|5 zY8nRcc2qOT(15R+AEzZGy;_1LHD3QC)YL25?F_O;mHNa|4sHrPDz|@v9!lGzW|PwJ zbT#}tEQ+FgUn7Euxem;p+UJV88Z^fy_;#_^Bz8x*uPzP<=n%w1v7AZFi7lW?lvaBk znf*0>v~9}En*sy1lj)p<@!NRxix*g~3O(z;B2D`Lk4Ph0|J^8BHP*53(ZcI%Vkcah z&dalN9H76KomaNtrc*gO{|d3w|Nl%{3j|iadd9i&9H5rI_U$oys+m1){0l5#=GU*l zSB9aPf_Ra)c6n<O+<9F%r!Q`uuMcg#eXUze$HpSzepP<Z86(fG=qxTTgCA;O#d4qu zmb%^*30yl=CKnj_UYMtM7AWZVJ?*^t4W=Iuk#rl_$NPRu%j+U`DD3zHs?&_k<5Aje zDu*JIC=e4v-`NE}w(Gq5RF;}AQ;LuiJ!oqcwVGE_^6PDloe}Lc(~5JRqk2o;ZSKsS zt~>SrSV@kd<R{J<X6Iy!Kg^-ecV;sV<8W@_NXBBpEhCs#F!VB-B2n2e4u7QGH(2?R zH@m)}F$&R+f2TB$*sR+*nW~pEW>w{JaJqHkBwTO666Vi~z8PiDS`#KIqL^=bGD+9A z&JFQ`NlHO00b1X4%c-=h4|T>%MMX?2-J-gUh=(vz)FlO}jjimSyMOoh<;W@2yw?uE zJSJezPchSJmm1%%VNtlA#dpXZ&U$`5Qm*@}<-O;)ky`B6U-;t)nn&Sew$dI{NlK4K zj#W>h&%P_jDMoTERa_9|n)KD5Ub>#;Q9H&ZE~+`~&OX}bItM4#C(ea@awe2#Y)If? zuYi#KdxViILi8li`;P{>&I|=zr0SMlc1^rGx%x~f?HH1mA0-1BIeG$`K68F+^z~;L zoiK5N_QL+57s*`&X)4#P5W}}XC>T*Fc>Q;yo2Bp0sJ*`!HUF3j&!8J}j!1_fw#)VI zOJW>;pnV+7esDK19=Wm$w!Cm$fLzcN<q8fYGjn8bes;c-v`DUGBdsFw`!uOQM+K~T zHEBk<2@NxtZrbD^eF<d;{DrXMR)>vHNCcd3^`Z$~Y9DNU;~5(^=LR2Ni<x;11q;Zi z&p|6=0f`SdC}W@1-*tUJ4b1#f)`b^smjV_C%^ZQJw$eq@ANqpC;>ti_fz*<v*FaP( ze$h)k*lbVyL`_uVdg1ffMm`*OD#o4ia+xRuo|w`O;o0>nlQGHA(oHn~gZhhIj2uf@ z>mMW)XdVZ%=e}cyPBbJ7@$LtG=eUa9Qh(!(4xmoEpFeZzxQj2hk#|6DAERRK9m3?q z-w3$BR?}z#2MGu1L`DTPl7*SFNl3gs8{e-Z;MNXD(Wnk)chhTtaULTPE-X$y{C`lN zxMnw@wj2uP-;0GZC$S6e%yuqqn-75vw_^%x%Z5ba&8fiifbKlBwS$aqU+6Gr{9Y$H zE(J}8A7a3Lr4TaIsl8r=C{1_OP)=>Vo4wos_ryIQEF^Jed&J<`B>3UUs9tW6uX84W zOeU6Q)Txgq`;#rVI<=SC+jayS3XPUl+$?;Csg6sx@t*uY(hfbz+q0c|bt$ekVg*Ug ztf=DE=CWT{ka999V8AvA!41uIk(|hqZ9_sg<U#Z-9oYMwDf=~Bw)cj%#nC7bM4;`? zI97d?6zNJZ>L%B!P_fRmrtZy=xrx6_-?Xg61UENhwtmM?ol#cHNvtpFoP|{V)1QQH zS5<T$G=zU3>I1A$P9rm$GM_+ru{Tx~b%<@{N#$I6CHQS7nUpD;u)1@I*~PuRt*3(@ z;K~aYe2Lq*J!t5RTZJtf<hx=p{NM&9nJ)Eii*oA#2xDEjDUp{d3@AegtMXqYPVrRz zR*O8%cbKq|YOv&y(D!gOR*-~;Nbe_$x;Zu{h)v@!hIZGvm+CpMbBb}Ay${@YdJeyz zaptdrobjm8aS0AcFvqnb&zvfZu7j@TatyG{q`-8xA@Ggy(?h$<a+<>I8f8;cQPE7r z4FKBgd*PfIPtMe-Mb8*X_n3JO%65zLA9YLyOM4|woSk}0-nxp_H;8i##}SWp2qK)< ze?j<o2hxt*BY4Hn8;fDn$}CQ-**d7&dUV7==siQXORb9aS}i|Sg#lyq8!!IU3c#1n z^y{=NqN;#^i)`2VFhV>hTe+AR)uoUEp^*6zWfvBkNiLPOH^3?wM5xp01B0-3B%(rr z7K4y~=DZr(f``Q}`bQ5|XQu@Zjg56eFJxITMVy#V;uwTPV2T;}JE<c3@Z9=v<*zDt zg0N@w8Ve;~aRoplFYG2fDxP7eaL}D*W0B-=!HCet8~cbQVOZ}HWQouIY0}inr2WSN ztLQk$B8@+rULU_Iy(bKACMC?ofd|cvt#7imd0CVHE}9lM&q@#D?33!WRUTUCQ1YL2 zLY6WOI}f*}uIJnX)jW^l5k6J93pve`=ZqX2_0mill_^YBp4Flpv`w2e4f&8XXEY0+ z)`ixe>HPnB1tafIl<RcCMPmiPry+*KDSxg)FrXhvz{c<p!H_Km(WeQXpXTDodf=0Z z6^E0k%Kf%&VYTP9<yQ5-lhafG_GDUTvqgD~eU@+U)O(^&iq7S;Cbph0KVKD`PRKD| zpdtWON7zgvjim8~pSG85f(>829cvf9YwqnStgZ2E2^tuA>G*?C*9$y_jN1y?AqPaf zb1Wm=W=*jps=3hf<usYRD>VWN*M~ujsL8Z5{Qz%I!>I+4xto<Xg~2)nz<N=CW+9p} zR0Tc?&Tie^V3=zuQ#B!Io_3WC^_&D^e<+f9aJ(X1y+Pk0cUUcYvup<uERzu}NiPyw zkSkPkycWy~>Ai+|pgu$)p1Z;0MG{9!q3*GY3=F2kA}B#Ci~lMWrVMXX;s`HKDD9h2 z8=F=Ez=)%L$%o=0W+n&e-yJM(mu5GQEud92p*}rWlhnXThI|btg%fWhj$?3BBN*nx zXJH~>A^w^#1*^=6E3P+G|Fl#G>x2?m7F~&o1&{Qf)*+@f$=G11r=bF$$;i(mo8K6! zzt~~re(pw5<1p6?!0rcWLX@T9(%1Lh!5hmrDhGeBkL%srEbi$%#e8^b<)9FB<2)rC z<$);bRHphfl?%ZyEe23FeEi3|zLKc$an$HiYQ(?9AwrCcSsXQv=(dM>6vm-#fW>rf z!5ZsHYF3s2Hc5|mrIWl}<zI;n3_^$Xgd6#RX070?y^!|^(ocXk=p^D9&ZTd8Df!{D z%8X2dbfiarvA$se!Xpt2OChb^<z#%!y<bYr`km`FguSXK!Sb_sPcg%lGA5CT;>C~y zq~k*{_efP<8Lg^}yCA7;9P!G^yQS1Pg`_7NMQ3n>m;kd#-qN&uRC(pX;!<JTNUofy z`3TYzahN`ZX3D(<Rl{&|wy}A$?MTXf!83~Twi1C5dCXDDF+fK6c<Y<>w95*d9R{E^ z0<kayaysh>PmH~5`OX?zWG;P9cE5|=GzIhpA0@qaIOR4^bzD{pwpo>=DA_CIWq*5y zrn@XuNd-WBNxok0ShKLZq3g@w=cXNdSUk;wsr+zD<se^dNXOYcVK`rpILaf7c9_gS zj1O7|6M+FDE`%d75&(&p^G9rzgZ}*YIP{Kus5ZLmw!=c$C(VR_e+$%udhFi-&5BY> z4JD1KVkH2y`FuT<C{GzhUQUr#K>S+1o@>-YqbbL5PRUG4>zgSnc@=;l>8J8x6E&1> zlC14jcc#0N=+TL7t=!AbO!?0ypEb@f(%G@-l_=74KwT%!OYm!AUBG`+c@D7e&01Ll zUN1-dPli{891p(EW(90-JoC-2gnLGl3P`X#eFx%!VU7&))+*vH>paSpgs*w?22Lii zXxSsb;|{u7J=W0JTE?gP3ZQ4rDXHPYQd(?7V0bxOK%o{nr)uO%9F$<xOl9&ZYD%8O zP1K>j{&m`o%;sa53SWpNFj9hr0oR~XUafnjOmLx2u+u5XcgeA5EUW;I)hY=o&sq?U zjHh5EQ<>4#!iT}QvI>EtKax9!G)scTD}CLj^)?T-=m%gvnzxjr05wCoaFQB_t06TE zm)#sQk9DkQtd__|5ZlBhfTvq)x>6&o{6LYTAj<sS=%y6enjOSBnyVayin|)u3>`O2 zA(;L(kqm)j3@~r|Q=y89sWVA1fJC)mq)eHyR6?t-z5?oR$Kx6p_Zy@y#WqknL%nT< zIajb1Vhr4@@Uw7lI~Svf&2^8~cZ*#YQT?IA9?6WmH*4j~M0a7V(wPq>j|V7?F)8Q# ztf^)TOJKW*Gl>T{gzVsYm145Ex4Q22BxU3-R-3iMOl-0CpMk#Sh<wF$Q|gh(Gb#wL zRc7p$5SA8dC$b}4LzSO%ZERfMQL#0pZv2V4#SvMy)PvlW^-RF0LPJ;;>6ZLd6W^3( zAo$d8KRhD&Sr_c#F#h`IgQ3JLWX4p1@>!zo6mLsy=`8<Z&2Veb`}N?X(?3vi#NW8# zi_bqVW#<0G!~#7f1yh_sf97|c)8>MEL`*m+@-u4eCJfp?&kBAur8bh=8kXD67UO;e z&rH*(jw8ZmK<6}p$%mUmNGr}eN%k1wk1AoZ>AelJ;b}c`-6B>N5#SHdSz2iF*Yw@@ z;F$3^WEC?w8XQ7Qa)k@0A1We|mBfPszi?A?u+l{${}At~1mFKLU};JGR0x7b{e#0N zq`XCZ_T-vbwc_~X5Bnhv)Ez6pGHs{)A;n^y+f(IvgC6p89Mph-s3J#mh-&v^juk;T zQu@<b9>WrHMU6s*klFb{)ymWD!sk0V#S{<np{n5P#mQFuplYs1JvCER+_Du1X|X}m zbLnrhavb4k$NQ+O4MMY0@YbXu?1`u*usz3dzX-&D*zuH6QXTa9%z4lE61csj@<#FQ zK>&Y>R6=B+V?1T66x^?<!cZI2ycM<5OU04By^gn1b-7<Hui01}IuhyhWRs22?rCn# z$#*{1G#y%FjLG$FZBCx3H13pG0^rV!L*pkOwfEp+wZ<s+Wx$F#j+eo_bEN70*2dZK zsdhXX|1312HMS>t*6n4+>7PSFYiD5NxWJ0oS<i&TpLll>$rsPj>Ufsff$vAc(P#{4 z8+!sTXI1hyD6=9&qEhL^<Y&L)ke{0M$y^E}cxL7H;d2}RIIME~l1LXOJA;Y|p%}<i zuI$hX@V)#Na~n_jEX8(2rf~HIY`*lr&t=oCE4Cn&Xj7P0j&@S-{1@uVTRH|aff7-= zgPMH0=k#DPzfgU;RR`0i1IG|cr=Yk{T6LCDo<>-2s$_IBH&{SE|4*T`6=dd&MyYZG zm`KfHod9CjG%>-{f98)MOr!)#ckmYrxXOYQB6McyZH^%5Eb(k<jOoHQ{yF5ko&zuR z&y@0?68E9xe$@qmUGiqMXLsq3f_Y_evnb@J683pzqv=+5`^kUFruR@xLZ$u^k`o+* zwZwQyo_REVpKe$_r2N=p?MQ!poc!>8PZNxC71T8YMk2EPk9WqsHjjt_r(g2O#OXiu zyM_NlzndPaIg33S*rYDl;lDc4kPMhp$<ojbz-WRRJbcw-YUm}6?AD&JNIN;`zI_Xr zokrP=wGi`ZmQrin_#gb8Dj0&lBYOT{_&Y!M=~?Uh$Bu2e{$Ysg;(zFOJ=rX5|F05r zuRdtV(uq%>V*M_;0e*SPn{@PQxh1(^rvid?Ew~b0z0!)GHf?3E9y{pYGBt<y>QC?f zFDd5CCK9UpIZO6!XU^>|W&?A9=c9WHZ13;eE(NE}`z$!iP({={A+{co^t1tG^B>!c z57RN+4QMuh4x+`h^m3&(oB#+5yD(82oH%KGCK#%UPHCfJofi6Q{O<u9SW6xM7M60R zs!uSK_P92%KV}Z8r(v+nAJ>5&{(c<5Q+TgVEekZayZ^<$d!X-$T4enKE4>X25k?jK znJmpT0X_f!G0kwPaXqizEqiiDWxu-O3#7^AZ+DD$#xl+g4!gS2M}5xD8>1=}Msm84 zyhycX=L6P{U$N>eOpm+^Cw<)ay>rZUDrByU2OpNSOcP?;Nn(HDmrDk!81Hl4e5dqU zVwwD3h8Z}b{}^Uk!j##w_YLI=AeOD{%x-~EI-iYO^Sv<1%InW`f5eMj)7bb8lNB|? zFk>zUcJB-^EpA5tw;WR;jj*bW?YFyk44Hh}-U6O{Op)xt@W<J_;e>kKYv(+tS}HuT z@ck*$EK!1?(PtrQn!tWK<F9vVGU4cOXNMQ?y4rXlYQYnqw+Zyt7T!OO&qCA^lufaO zQWW^B<w`it%9d(Pi1#~5Df6@3YR6`G!1L|yneJAI)R}D@;^NQRTRg?9iVbVF^aag9 ztFPDe=5lL0M4>GOjZ)d&-cQ$~M{GxSWm})k;ny&TzN{z4#J!%&+kLV4@!cUd&P(UM zirYZQ>t=Uvv?GygHUkout31?`A%d9$@*D2T1HGOr*nPJ8@#CfyeY)djd-pcg101=8 zwB?*pFFp}03$>Z9E^P2nbRSuxvsJ&OadW>L5Jk1_w32R7g|cFBZS{H%-(4H!aMv2M z5$`c=nBD39q2SGR=||92y<`5W<Y7t>v6<D=;(e<EOgjtp*gmRJR8UkjxDD|BxObRc z4Z8R^ydz?pgKH=F9=j>f>k)KI8|Nicd<hxqzq@UL5ceR_AWs<>N0$}%DRBnqtkZ-@ zuBtXykLy^zeo_u74;kxA>T;fjm-=K~HfG({U$Zur(7e`v_?}2H5$IpwcQwP=-5LvZ zdCvs|cwY~nB$hxTPVP3}&h8>^?}hVAT#P}(eU~kk>oci#2;&!oTeqx}OgF6E9w(#0 z2^)A)FRm*{H?^t%<f%}GFS3QtOTHL_4!Wc+M#m2vHU)*=24Aev6@&Bojr1&g**#6| z2X{R@j4*|%#+Xr((11|cVBh!Zfa~G8#6-(&<4@UiV#8yt3dz>a-<6O?F1mZT1Cfi3 zvt`M;m@X6{H~#H;0dJK8LWwxvy*<0pEa_VfhFkc<!!coMBf6el<>a+a!N2z#xy>od z3FDIS?X~^mbhLv?NWcq1LU?*ZI&%CrJ&;G{q(`;Q?itJ}cHP0njGf!>s%Lo=a=M%i zaVqYX;MDjZgZ&<kCld`{&r!P_igBjGeqh<6Ok4=|J_g3_8fTA?W#f$yEh#8$3ItsD z-LEihjL)GGPKX^`x5n;SJ4gO=SM&FPAA)!7M0s${S-)$0X7GO7Pxf0*0(usDz{0}2 zs-QgN5?-N2;<Xe<4qe3d90nqvZDlX-yyc25$az{`ViNL(47<Ss4KdI8T=-~f_(H;- z{%8wM6!;G8w6st;JS%2*k4tjBEm4(B@7lpB-sc7TfexOb@w(Py$1ac|>qLfj&Vs|d zMDFs2c!8zEU%rTa;T0Nj^HmCdIM9&u_khDGo1txbi$+v1RPU8qvi%n!=K2ryrZZ2; zqZk{wsUH;oi9mUPKM#_1c$A0(?)1KSU9Vv(@_-wHb~TDW>C6`pNLJDF_dt+<bG=5p z`A7DV%`lxmJ=kx}zY`wI?VRP<m>O$`m9W&+I~Q^2NV>l)KI>!3)w(>)SyQ6S?;fr| zU_!`?c|0}$<+_8388=ro92ABsy@Z(A?R{|Ljyp||ZyE+FK@QcSSNgr}!9@Hpw=6nQ z5GuOsKi&I-kWt(ci3NylV*-zA=KK5L+l-S~_1te<T!c>VHw8hSm;;QNEAffBi1hEU zmA|e#gqUG-=b}JiI8O?wp6hu0tKqSn&RMpNVIFy(&yliY#ly(jrX&zSmJsNkSJv>= zi}c4);#|o#454QndRD<MuS8j|Z^Ms-&8{GpPXuMVyvj7T8)X*Rg(z8`Bj{Om1N<g5 zMnge?ujfe7aEC^e`)zV0`?If$uG_tGu8bHrTE&$6v!az317sP81C&ca@<Ec*iUyDe zxMn*{o_{qW*4-rg6w~=rS1hC&gx^cVvOt!+cOf3TcQ<pa=7<;Y+4JIX94yn;D_yte zd{B@^85;jU#FV26;TE|a8RzeuQ&M#&yxxMWLo=$SUIj?{c=&&QsJkRMPwzm~F2dTw z;O?Hl3&M@9>HY@8Dwu^l$d7OHfZFY=%S;aT`NETf?C+fQg2{ZKN}MeZi!Mkox64~p z)*Ax;?={;h4zso?m?N&)+s69(kP?J#J;}PhCY;<B{mz)+#Rc<0EoV=eIui^xQcxaQ z=->q(Xdv^qM=02v5Uyd`kTLw;aZ|j!rR435@N!R7M7e)nh&oXGSp0Z<s=!g?-#5N= zq~y(r@M2dTF|cK$2m3&iec}a2c=;wy3wS>qw<ONJj}q1R;i7!~d}vFxG^6lsGgs$7 zH9YjmRT%TZm-^_e&aY>5)x(RsMx%nTs0B{qv+Fa)&1H#ERHi-5o=1QYzObYK#Br3c zkxi`1>bZ|W@HD`GMKfQ8z>Np7;LRW?SAWSDol5PxC-_>bA%9c`%Kl=9>q%h2oqPF@ z8UQCrv)`+{{c_!LFc;nDQh=F-R|GncfazcW!+9ksdx|IJljURHgi`}MwjW+=E^{GY z0nqG=D1W|?2@eYhEs>$&RhMZ~NJf12UlybVLmsA&O#TxH-H}Y+y!aBI7I2_Mv&5qo z(`~!~KYl})hc0fZN^`!f)<M*w3zi-ntMmYm1rhT%$;_0gNBY<-obP#T5=0K)ROcd# zTWZrRX={AeomyR@QoIS;(>)55TL|fnJT%Sr#ws6F;`V<iRCrb|CStp3DPm*4ct_nt zo_NB#AD(~brtsK|^9b<VK$y74f*wiwwBS@jmHcUQ<O0UxIr6g^Z(wJA$HfrdW=D{A zx9F!dM5E4^Jm`#;e2~xGC9Yb`r^>Iwlu#q#|75vBNUuBDK&y06an_%3hrG~Q?Bzcx zh%KP@$b2?q4a{Wj_6+z{hg-h?NduMm<P+0Nuwd9MrbiV&+Rma!%a?GE_s0i=l3&zj zFj#HB#$b?O`LN7dRt-D8y54k|48_Cb1&<XW!vdeCUPdeNA(6VXS_`G|gUQ+xGdB;a z9M@5(#U}rR!%oEp2T&%FONRaHOl%GDUUw&%E)26XBZ)ATq}0U8X^Z1qWdl3$w1)PU zS_)E2;pNmSRsY=2x8TSk7=n4ce4L+eLyBeaevWegBaKw%a752&q;LQe8sl=rj)mK* zF*aOPoSfZU9ZlD4<Zx<=IF3lt7dp4a`BW3{VZp0XIHF1!6q;mldK}VT-7d(k8f<W? zQ=k^Ak*m<+NVgr(DjNh5t3zeU0F;VMWRj0t8~VLIpYDE~?@pHeMN+oXr0t`_Qmt8I zXw;v3rzHiu5-r7+luniWi&>;qy^0cvnZ4<~Bgfc;!}mo~D+8%e6m%L&wUvOgx}P<{ z$-;<fG601l6Vc?(VEK@+UD{o0EU%<U1eJ4*#Z~jy3;)@om)GHG?RF5Mp*P{@BmNKN zwAQNm{U@Nb<lFQU@a6FpvOQ5C?tyF<Rqjb*@IRMTZQKf33VUN)o&1PHv7>m(2`0WU zdlcTHvrG~lycB{Hss5<`D25ZsR=g4MRO23SP<R24jV=A10S1gArG7*^JmK;oskHOL z;tVIfd4X<-ZuoT8{=APvm_)BXD_{JMd<1-}BpvRclI!^WT@&8iyc&GXhH=Js#sk{o zvIWKjzb2@zxbouW$P&e0B190zA!|RhhH+n?Y}6?F3)MNqDdcp<acbSyMQ^Wgb%T&8 z4b*`?uiM?_gb%j^`xS%_^x{|YlM*}D`);ajVR)SWSAR>eyb0m--A4)GL>m-IlW?AF zS@~}0=^y^}?q6^}{1qOhHs;RJV><f?HQyyf9iiSi&hzsN&Z+i~C+wUMd<3pbO9Ib# z_ArIKYNsE6b`v_I9Gc1ti3k73hW+a81l%-Dnu2&}X$=BAIZuJJTQkR(58H8f%FlH< zfQK7HLh(!URjlP2A=IIM0Z-r!cV<9ya^w4|&uqc3R=D%g3vu4{{wyP+#)rE#g!5(Z zdOjzX&J|k>b>hz#UmlpdP#^MoGx`Pe6#ZQ|)1}F{!hFg%H2qy#;Z7k0$7Q&ktNIH_ zV<-IDn{_+~#F&5ciekC*dK@{&^75Tu!pTniWrx12-lO$#a{11a_1N%W!C!y+4BRX) zgs~ZL?&M)GD3tTHo<8edsJP#@nY;W=*q|VF=R<BUuU4`12C=AA)LQ7H*ERmm^5(SE z3it%RZE#zqf7i$V_7Kv6I`b9MdWmWjB2s(_J~?$Bj}!a*vmT}6XXVn`HQ<V2o6r?! z7ke+DGe?MKyNd>lEhu`9;Q2WtDTYOSawprFs>Vyb7p(Q6A(rw4R|C1qCq}KipSdkN z*{(RG*qU58jsqitaMR!mj7`|{EB8G6;40;oi(l+t@1NX7`da_frm^*TMGfl}7-Q7? z{x<3fi83&+)%t4RNxDt=6Nfqf$%v(ucPwmtyU%613Q75KkpH8_Hgkbi;~kKb(Ie2o zD2_jFTURdl9nNot4*xvJjij$_itQ~0Pt|vs3j2J^ZC1<bwJ!4D@V<0cWOq)jb$Ee8 zu%buMQ-QgHStfWA(jrbUol3(>&ZBk^+?c92cUQl^Z?dT;T&W7^E3s&pPQHOJ{a&yV zv<``+Y7R^Oh=&t_^*A-%0|j?1+!+q5fGGf=1<gwmCEwIm%ZVqoj)l2|7eSadz#7KB z=sKx4{)9t{rj8L2`@yQ`PyvB`7&q=YjSJyS=H^1pvfrl}Kd-NAWc&Okr2<-O=fkH= zM3y`8!{4?DX%5gP_C4KoVQ%m?>Zem~!Yw#nx&@M)EjGx|&y}48<9Gd%cTygaZI{Ew zSj6(;PiQmG;zK~LrbJ}JU(M=diK9@198nT?HsWWjcpkS2XaYv4P|vrVCLIj^Wy22Z z3Aw&`@&7=<=Bg-(9X#b7|44e(4)z<%D9rc~E%DZ{Z0p>Z7N)t7KQcr@nXnwz6%pJv zI&0oMLiDgkQe`-&aMpg}s^+i#9si+`YhP;d;*IWwo$IJ*^R2$dp9(qLCn<wE*W{fJ zWheHw19t_BtgGPVq4_<Up7&naVPdS2Fj0m{@MWHJbkLBYgxhfUW0Z`~;AEvmyD93$ zA%H2B0^0l8IOl*eGK#n4-H{V)TG=&2HS>%F{M&laE^X3*JApE**9zAiv9WCzBeC(j z)v`_cd>H2>?Vx}YvJh!hmkOv`oFiWq*t)d3G90ZXW@F|xj5Scxi1JxRneiIidLhrp z^Ug8MMtwIWdAawQ(Z$KKWqX8<_nUr{Y1v3KS`0Jmy_3V*2<PIB-Fr8vDnWzezRo_n z52q@Z`pm}MM37u+u4f!$`Jio7GBNmxKP%Qg8GP^K^nERHb=No=yTR)aQlJf0SEEq( z+CMu-e<|B6trc&Ne!i!%nON=ecH@9#5rOp{&SEMT%!tw`Bl_RdvdFHg$JW^9(`&}o zcBY~2hv(g4`nocLkh$5qc6P^obrHNO5q;;0)^ulFB=4)Ir+}xL=Kvt-;~BW=-CuEx z0s)z4b*b66_sQJnll0>-@QN2gR(5eJq2tk$n>E}spUCloEjR=6Gm|I@XujNOC)^Ac z2KnjiGF*&c&Cwn!#a{vOSH&0(h_Hq#_EMjk@PyL6=3U>7jn<sr-tuL3DbA*^jjxo$ z(~L*04cAO0)lRp}n&p768&|T(j|q+Zx*PejG#Lw7H`IjVNEC2B(!ttpWajKsZ6sdY zuXEjnTY81sAKpBz)P^I~2a1<Nf0+hXENdBf&c~^8vG7-OlukC#)fdiQrkrJwp%W!M z1PB6<|JorSzhBcnmGpA+(Jty>fAkb>?nId%H)$w4!-Ckq>&|x$Xa?_v#Z(h(F~0_b zzxP&F@ZbIc1piQs;@rv5ehl+_!try@f}!yVZ0P(2ToJ`D-NSE^pAPdcXht12T-O)v zP%v}rA0GENSY-Ay3~wlP$F<(4K>llvgq)NR!){j>9L)|xB`*DJuDh`>nNETnvcdxL zi)I(Y-)TJQdh%VWXt%Ie3uH@okEZWntN(4U6IhV!{<Z2UNC7g(=?*`%fv2mMAt-7~ zgX|1azKs9%Z-it+%2-g(8yO2)5>7e{vANbbq57X5@v>GgHqSpJ5l6u|+ghb0z7Z=C z$5&vX5H;f3tD}gca2$8KUo;Ntj!L0ZnK1s+(E9R4;O8wyfO9IMxW|In>O=TvbtXV% zD&ns9x=cM_7>|5Bf2#=oN+k%B3DVgaPZ%tMGS>4-d1KFxwa7`CG3QP5EYuNi#-!1u zMQs3h2r$_x|9M|9;uTa(?O~58IcPYWtG>n!Dgz}kV1+NY6R5>U_s{RG^nO_w{SuTD zT((=`ieG#PN|K&b3Hn>f03ebJJ0e$FW`RkJDuU|OY8kgT6#g1nwSniyZx6LupFKzA zL6TZDGOiNTQ+dWxjlI41%~uz6D-YHUqe&~J#~K-1Sq$>ivh&=;MZZG)e1W%b4%Mti zY%HrqJztOMq)i)_nq1Nn<(keolsz3EZcH;<t453*bv(4~63|s)9H;NV$oZfHu0#c^ z6dINZzha3yE@?G%&kpk8%T4SWmkASNhu#$Bx%|szw#0}nf;!Tg6<wHuEk}k!Y?kt5 z?YOi8fgBL3RD$Nq@7f3k<NHf$o~N^gp7w4RRz0S3WMre#60K;lMv7^1{IEGV!R3BF zh)0lVzbo&n11sz|Lm&Gg*A#sn>f`r<LvTI>dnt`e&{QZZ6yL03rduZ5x=<A-akP8~ zz*1!+G0rCckb!}!wGX|0x`A+x*hokMi==uWlS`GlBt=n!wlkOdqAxON{*YyA2FOs! zZe8Uf63_wSk`c+ZXS7AZncV@jg7&D|v;f9rL}*nk>$;6^%S;g%Waw&<Uum)6^U71* z7y9QV*PAJ2qhgN|duXtvGV7}<9C(@sA5VE@U)~A|{6Bn~TXD_a{9V}%cfTauz{Pu` z9{FtBrIhRQxzzBwGRY-W8Tzl{*%Rr8c2IyqBQjNjCdvpLq+f|y1zVu!7)4ZR<Ji@~ z6crozi+@5};XtMlsVYIfWds*NQx3ty0>T<H@pO<{P!aqApG6H&N<t(Dgr2XX1*;T_ zKx%m2zN@446eNids1gKC?X^T53&+NArA!+~G<c{v@Y$%FLP-V&z3B3?ci~a?{V-B1 ziIhPGW;?$;VZ-11j@socY4sSi8l3GCb(=`~A`R1*b4}-2CEz}nw^Io3tn!(nq|@^a z;LT#7lRCtcddejbYLQ6VC=H{MF(y@M{xg1Ri&z$XtI*FzIFV4uUlur#7&F}6HDa;U zKmM-m4=fg;a*KCS+2tt<%vBZm)p1bNMb^tN<DG~&zy)DxjK=+?z#7r7Cm3gc<IiE3 zQ&)+$aA_+jjnh@xWhfK=r_xpuVc%7Sd4HPpWRf!ZJ4NHGdtjuft8{#OAymDrn%wHD z)@G|gkpltXAI8^WIh9m3V)rs^xii3#&C6WsMvAwjCZAb1ueso*>>O+R34h#jm}>*h zx+mSvASMka2op_?wzc<mu%NB^xiGskNi<X%t-lb8SI!>`F^>W;n}8_JfEFcxckn+P zSE54Ed!rEsn(GubVMlBA32h<Bj4eUel10;%{UtRs4Jk;CIQTyaq4VT)Wx|ar*`*B` zZDCH8aoQ@o^ku?-RPNLSKzb94zUs!|cK$ObL#8T}(b6!ppz`mPgx++pkNKKkK~V@M zDnaDMw6IZ94!@QBCh4FiTA-QAgs)YwMBKPFuteg%G+^?|N9IyuN!hGeA>mc^6s+Ms zQOf%!x?jmBFm|<%K+<CSQ;-aauqp#~x~z1`whAL0XM^CWtn=8hWmNO}3THYE!MIFe z+xGfoJB1NWvq9gfO2;Z_fB>7+j#RqJaxc^;0WK|nu{{)lWnH=e?Alj^6rsH9FolXi zXq~s?R2Q4;`j)y=J6fMZS48va|A(=+jEbXa*KiXYLU4B-e30Po?izwma0$WP-DhwK z?j9V1ySoH;2<{%_%=_(c%h_k`wa!{IKc>36yQX?-s=J=&zV5)J_8_x!)g_7I=_9!Y zq)qx&kWtK40^m^&F+Q6SWelzL+EbWJabWN2L9g!{5`k7ea^Z0BOn_nu%4nNn82Qtm zgzo-Yj$<ot>|IXtn9qp-X8EvzJndZO{qO6k$8)G2ys5eoQ8T$MC4p2#iZXTO`A^4U z9^LGJu}}*odR0e9#a`QfwcF|6_nyejT8dk7<T_hoGZGsWz8s#+stKF6l9@wZUL3Q~ ze9F)PR##chmglAPkMx;Sy5UV!7eDx>hD5Bkvz;wp88YlhqP0(dAUQCnOFzhAKNrAu zt3Z9!r2$=Xh%i4+Fzcc+JOCS_xe%+FKF&i?MGY4uy;sD6KRn5ii>`Q2K?l3{zh8cL zW<Im9T~t6EXC(O!MH4k#xL0zwC2-{vPzqs7Rp%jgh*9VXoN4O(V1|ZYen;P@O#pO0 z@`y9V)-n{n41Fxsd<9}A@^l&Uh_$6>?kd!s@TmjCg){FB%HYrOn8jCN6c2Yb4n>8v zF7*7<G9DO6!P$A(v~ITW-`^EJ;2H1JdB`Ki7YA;@kRV_H3MIa(<1@)J`new)p(Ur3 zbA{^Ji-o(D5os|fl_jD<-6A^>E#<6g3!Etwj;g$-Ciit(e<)CXM7ieC)#L|D-G-#x zl|PO#>zV5;HCB76G*f;pjHrSBW|*K;;v1GmAuPLA{~<g1U@s?QZrp+3+s+biXYJJ> z22B|!rWQYjnwEyw{Z@kIO*!YI7Jt2wnM21*Ul2n&9Mf93aYMF0n-I21AuOggw43n& z-tve&#aGE*zAxEtRy>}u#jbdVjG5-JE8m5dS<F9E6*^O>qcnNEJ-@y^lbcXN;%53} z4n@6jx*vXfG-R?=jSR0}9d9#6b|nIg<q=_uywT35E#<8^p!;b+HAZ7zrs9X90L^vJ zE8=uuQIK5PyRe|gO<O@i3m&!0ZK?HWjF6dNaVvb32DR^hzn*?wTYf<*%hM7Pc!VN@ zAFbX_hg)yC?@Ml5v{-<f0|8cX!SttCd5wM30<ke{vG>I|5it@9J6+B)UlLud)bzFw zNNi}scm5LsB1R%jglNu(m0Pb6y!@qlxrQwkit?y2bSZQ&2GPLCw<49WI2@cg=zOj| zIfVv0=09llskLA34g?&=7to!?XEpYl#0q3N98jUL#K1bxEAb|}ZmF*PWs+<6d=qfh z;YOp5h1FobR9o(sv5TM<UWoTh8hpQ&6qC;s3wzB@slFT{3oYk6lYLrqgZixu+bj%c zq}b~?bWKOB^0I{_kQM5BCcbpziA4JO_&yyEN8wj5xb1}Pd9$&+>AyDl-G4oHswtZC zHQ*N)laWuLE<`_)wQ?@t<WuMWL2dT?sxV>LI2~=5n&zf}(?flEPtL9sUz)Af{q1UR z<4MIxP=wFt{-5}S$J#^6TXU9~pTUa;5gNc8rnvsYkL6^fSS|rfoUJyGHNV%26H%Q2 zMf2Y7UB||;=j|RzrK3dGQVqTBK&8(=O4gx7m{}2@tE+-YYiA!9mmPe}B3p6jQ8Jf( ziwTN*zYS=vGaddUNn%hMNkpqq#4QB2PQM=0o%{AbH7rDT`rVYMa<`u$V`-#^Gn`Tt zHLfQ#U&p(tDEs-QqvtC7`o79&+6&EIZ{7P+njk<&VykVL-N(W2txdmGHok?{NA@cB zdxQoL|Db0g4X=gz&}*<oXz_zTOCc<N7j7|Jep85wkV|uBB$X|GVjWc}$Ue0lc={${ z@Io~?DXV6cSK>?&iQ<9&tDY>R|3qOb5e-fWIv<uM?9!9U#+FrWHoYW>tV6XWr*FSb zVg9cOwux|g{tFo{1PwSNlW>{l!=Cf6;B~)e(#}>5OU|HQev;qv08ZzA_EWXPC=KaL z3<v+hBefRO+kNs;N%O7J9133Hj#K*>LKOXzIeUg#RrcSR`!_ie5pRL?kEg<uB_$yu z6>n*1SBzds=4P<}6}%qID4adHbju#dKe@WJuDvt4%s|BJCqf6Hr#u?-_}I#z^&6S| z&IA6ZieTmD>h6Z}OF_cm21{Lr+^;sp*=PI4LicBb<oh3Sp->fpe%ybn2<$kZDuUBL z|6dgWa7HXSwj<72;W&)tTGfrptfPt5=KA~<+$3&2R+{PCsFEjAu|n_d#Mf%LE4Hj~ z$wq8}?fJaC@MT2Wi1SkGPyN#&z6Yy1xo}0ttFx=nc%#pb-DP%6?A5o5lV2ychn+@7 z<N3CDnQ{32o-Zz}xc`BCz$p&;7`f+9HziT_b25~y^`yGD!lwDZZQJ;X)<<o^j)d#A zX#RKjS|%B?7FPF=8XIdC&?Q?*QVjp4((V6+d-!i9L5%?4#J4=Lo7oi$^e6yL)O!Ti zy`R9b9AKPD{5{32VC>2NQW9{!fr#4OUvHp+K{>;nYcf%7UxLe|op#aD+kzb$f|(@P zUlPEgFflzo(+|5&amBsEE{3#kX7MlcSvR%%%4C^Jajb89;!hW_Ut1h$@GVK2Dk~1Z z*ONTp;P3N}5XP$7Uo_#kx!#>aA>&iUUCp>Lu6gjw;Q(e#b2@pIfc5!VE#|BlTk%QO ztiigLvP@5XJnqCGpYor_0bxcEn=sa7DdCcD>H@<N=EmYmG?LYZe;D>oqh8PH?AL|; zT$V+A-mZ!hcp!G1arp~>++V;{%-*Lr;k6e5Y!kO|vr_2|Pjo7Op>yf!!F7AMtJ=*a z@uORxHoJPi8B#8QL=bG`Ogjp?1l(!aZ3RA4{ncM1qL9YEMl|v&uvV1Qt&$*1(p(AD zdZZSUH#Hf&{N8TcvOM{TG%jy&`Vg8RDdPFkcs7Z@Q_lG|AVa%O7q+rHLV#u+J=Z9m z1l2?2E$F!D`<3i5d-Z9>nJx9~=BZix&5}=;e^`Ev#Rzz55UfAE{#Y6O;ys&Ppkbm{ zeHu`voqhSMV&M`kYVx)EhJ~afnCZiio>rsY`_U8%k5{2D2KRe8s#Q=Dy<j_UZOWVB z&4Yup@X#m8n>asN3onP-lzmTP)RIL;6WFrAn&Pkcx_wy$B#dl7z7(gqnBQHaG25fy zFYWOc*^{SKQpanH{75fO^H>)+jRi@WiV*X@THicF*#uI}{ieG|3g~&h8)w}I_x(08 zm$W?XJNxb1cyP_Kb;tdj{GKHR@Pk4c^=2atUq`Ap-)Na>O?8%GaV<Y2{*(k8SZ&1H ztjsK!{c68E8^2*}Cz`O2wH;ZutxO3zw5&Y~AWO8<`a=1gF=3wr{V_FMFT>Iz!RBki zeIYPIOTinHa&2ax_V+ri10B##6)bGUqn<M^3k7?u=buUjxMDw|={V?No-(4;ms$$x zXBuTgqxMhNx`sn``3uh(db*WyL2`Vlq|CtJUY*roNiVRz9=MSOK|a>)a}F(u$R+~K zvfu8qFAdOm2|j1%g3?cOjJ4_~YnOp+Ju<@-8I4H<h1>Kx_3s7h^KxA;g4E?%s@nWE zX+#3xP8RKQ?e22TF6oDlDc2N{?VJ5kms-4!vX6%<)$2FeP!fb&NDO8Z$FwqFUm8%@ zf@xPE)H-42&7R4kemTmzIwC2M21Dw?3YClqEhqG?#utDl^5_30f3G_B?S9tN{aM1a zZNab_FDVe8N*o`*vw%hnENMi)LMZEKa@ls$94n754jRih7v(Q(mmRB=ZA0R=akq;t zk<ESMXik5-?UnfZZS&e%+0xaw{<Zy?MrgH4vNb6+BWcXRK8&lh!K*OJ%LRMea7&tY zxwvn&s4vRjrTQE9*?i2i;g&XFdAM(NsPC9G_^aD$xujka45`~cjWt<z-d%R8cVYLa zrt=j4051Ff&joO_W5n9<JY*ScV5x831GnHbVNZX{6Ahb<%AWnMfpLnA;*209gi-O7 z-@3s(mqil%Rdf|zGQ&UB%Rl~WgG49}n)r7O^wUF=Z-+~j{(9t;RS4Ir*Qd=5VXk-0 z+;{FW;^-J2I7)3|UE@OaO<^q!gLG70pLfa_yxlSE($<@GD$F9kY-6&0yUooMK8X=# z_mZsb{Eggv9mf6IeD?wuIrZiP^9?<3O{{8MEQ=N&pt(vW*%}06hlZ7mgda6yt+w84 z^{QGQg!t18m6n;KKyMjtcNv!E%(B3ZaE9Iv38kJ~_A}K`hBL2sPTiKxS4`c@i%mEF zd!ebCb55XqF`IwS^vrXwJgAAT6B$w2U09G5{hXiFw_G~cRn;Q6<wIO>G4_@LVo%hE z&kAG5)&bd|W@~)0cE3yU#rK<pm(G%H$HDIB#tW`~n6ut&hN_%F{r!V}3a`MAaJ6`u zAJ3svg8+u!WRouf_F)u)AVt<hm>VhjhCarpzazW3&Mc%^<SK)Mi2Oo^pQ%>)#k}a; z(_-DMs%MzI*ua$w=y`bKj!PR+7R?vD9{fteQzlo?QN&+>y=#Ct^jBx;nf=Og?Hadz zi1S5K#kk+e%(2=Xp>8dY4SCDq$~nF5n9XAeW`A7TjlE6)0dXh7dGzD1GC!yARN5u< zIJE^5o3NShjSL%P?(@-?V%(1~;@pa7*9^j1?W?=TLXxCJF6=8i$^W3wn@I_`lBq}^ z<13bx^=@0i2~uaphP!2AoRg-#sG5=^CLBBK+44);f*B7bJ$?sViGltm@5>_OPkTn1 zl2$n<yeFeq`7_)ao3Mc=>-A>vaaV(%Pk5>u+KR1EiDd@@0FSmo%uib|?cw5`e{myz z_TS@E^K;<r!C`q5oeBWIuAjHH%~M#uc<I6W2Qcs0jK6jzmi&l@pWox@<aZdIeSYUq zV9(C-Vf~$dSVMKt(`}Q5$e(_@jZwsfr9CLM#jydx|F&^h?$*DsBSvV&NnrjPYBeKG zfVr!}zacbrd4>ULM;@GB;T&a_G=NLs84%+n%Fh1drz=cj<dUfqMBG~b;t9HMN1_gV zR<LMC<Ub;%BATe$53+4b_8%PGbNMBBw{#RP(=sb}7J%khJ;Fl5z6m*V&TBmuy{~L3 z?*BYtErUwt#OOXCKzez`zvc6HWsNkaeVj9)Y0MkW*ek!|)b5GS{yLet5*y5L2zL8T zc)p^IdEPN)(D8y9=UAMuYJk}C7uR{E;jU#2EOUr+FB;bTK_S@d+RDjy@gz+|a`Bk% z6ic(bk+^d?cGAmy_a3Euy7AXF9~Bzgg0}m+);!q7q~mw4=bL3R$PKq@paz5nFHN#r zuk(Z4_5k$!=V1oPp&?jkUyQi4d4a*_-aV?@bf_T~-Aw!+3|l4wH}DkV)~FwaP3Z;U z4W}6{7^fI6X2f%eMP*vcp>K&WPJQp2127mNM`AVU7~}pF_p<^&O?#mPqn<63>|aTc z|AdE5mD75AZ}~5p)6_L2cBlLcRCg(hE~ejv7h*lFb$_SH*3cc{ou6ABN#8nHl3!Gc z%ZO?;2n7(OU9Cry`%i*>6j`(*qXe>vsx%Jyfrf)#Vpj8yeX$dCvd0x-f=PWldG2k! z<^0+1Hh*A=Z~p8tx?8!Yx-cya?mgL}$F;n(dkM8QWLXZ=b8-8PGum22^j?!t6bN@< zbC}N7u5&Xf7U!wMbzdCl2Sa*`W{~h~7gv@moOHAU@@drhHXW4i;H*Sx7*&$~QFBWa zNIE3YR%XK?;HtzkQ-z#MDK!IjRFhcg{rat{+)at6)m2G)or_YYV2D~B2)5MwZF;xC zb(mhEGwm6+x{)`<qz;G2kn*{{eVZ-W0?)?s%l2rvZmKL*KWBuio}P*Q{r!w12#q!k zn&eFNN(6pB@~jfqk;P!(2*<&vEHe~1Umdc2*H4se|NB^Tm)&@R_M5CjdoG$^smCJ& zf2SJ%*artq+Y=^NvG8)CeT(=|oCKn)h(SNCLUBb|2%sSK2bczFi{B<B5=<p6%T7wE ztbvh&gH5d_ew338{;xVmWS>F}{?ti1*EgOINEHqHG5qSId28x?mRc|F<FagwH&0v9 zS)`X(`h@qj*nwR$87&)3qHc=D0N_sy>l%_bIw4>O*1V5COg5$JFN|nAS7M*Q-yl_N zE5K)f!dZoo_Ma*<&n6f-E?>I66;b0I`DEAcWmc0wRkV0=@Qx6uPu{9rG6V#YZo4#X zfsEMf2KGUyc4QqO`I%(w1#Tn^)KbY1etPo))lceugr%Y~rPX(IEFweqnhZ3NID}G+ zQ#D7LT~<$rL*m9WhVyfrcadNJ?6ple)b=V+A5Ot2QA(A7L1b|qdW1ZB_utvl#zJKx z??9Sb60x!LoDn#=l94{DPe9Cw3?Tq5RaoLE$+AS<;E6;e*pXd4T6`&#hK0bKLfkJ= z;RV8Ze=U_xW^(TA_h<sN`&;r%5AwyCeY9#k&7aIiI#5&04f}m}`2-Y^UEvKBitHnE zQLUB9UCKu~Ra0yTbK^V37By6GxDt5tdA-n`Gnh2cLBS=LijD*E3#WIgS|w5THRQX3 zWnJQjDA{2`+Ty4-WY|?coRbg_2w1P=|07%4(+YI7HDupy!R4cnA_If6Feg52`>J)e z7rkM;sTI7@1K#TNY6>M_Zv1fGi;mE~<1(^>T&bBpmWUQR=W9~1P!zG{c_fbRLvW_< z<=**_N_EA8J_rnsKWd<akVr|!f{6KA6CDQW0$Mf_-i`1@9+31mI=M#3E}uZg)pqww zf_nI%OWy-!{DX{RAiOxb_csnW@A;tr6-%0jn{vkU0&Cf$*>K=7HPd~1{Pa2(441ZE z&cx=^uUC{(GA#t84ur=lFohb_b~^{h^f0c_*o6#q*+xEipS~!)xAn)JoN>n`4I66~ z-2VG4IE*E=f)jc`U4mO7NK#K<jI9#0G+)1Hf{YQ#9I)+xGdsAo_r;SSwYRrxb;snL z3yG9qEa-{1jpA&wog87RM=f}ZJ|(p7UQMjn)%dFmXh-Z1B4(>v!CHyvYD{X0mh3t` zhkfFQcF0E*bDbBDM&4z(1?`jNqdxHSU+34%=L><5^%$xPY4-jMNgt1fT<1Rj`WUJe z>6Y)rCdh{`-yPC^w|<DKqBuvoI%YXV1ox<!Zqeh1?huN3pfNg|AI3C4K-tX0YC!tp zM<7fHu~c6Sh=}KhjdhrihlE~bU3Uc_=3N4j7<VMYQmVCe1m9RhEOcq&MC)xgM(Aqy zo{lw3<QSUCJNh?;uK2t!f=G^7swl=Wm)om^F?CzELJe4JuBWwRu*_g1FN_uHiS<IO zUcQ4K>4(!EDKzrStdFb2Ro=lxk^R~u&cJV>cxfs6CZ%(XC)C|FA+)_%=P_IVi_`wU zA{<wC#PkRBRL+T`Q%kOYUF{FZijAnF^JNF1a<#$g3cYX0A5pEFOgV(>;2L9v-*(7( z*6-n3NTdv7QQ-Ffky<4W5$|!>Kd(GadpDF96P1lWncWH1>SSky_1kc$^{Gj2)2Bq# zv8cfb2D<3|%zbbU8HlAam0?dJ6>C2H^JpqaV)0U!gI+CrLC@iigS~~>H>;lxg)m|c z<)>1iQ_~#IvUmzcijwVNdE8B@m@ES<WLk1ED~~0YRA9@O_FE>2OyN9mA_N&RhN+nn zr2}LVy7JRt(02kCzAQkE(hybhtMcW3Pb(T&ghkWZiV(4oDB;Dr>hgLuud(AX7Kw*= zkl{|ES<%>VLb&)bbS3!Q(#&5b-4s9mhdZ0_0hu8h-t^0458a2DsTjb4bZZWAnkhgi zfh>ktX&}a&hzHd=24QiJJ!oDoDCrBu86rP{Qdl0JY5EM(v}K?rCw88RKIr_D5~t^< z^ftor8*^9s+IkTwZE0+#eDskKOH(t>8V-I8ChBt)Nc^<quq8e%^{I-z>#<6q*9>PZ zd-@{5xan7-6BSITgs9UJ@Jw~4VoxT?lksvG(<UOdDusQPXV5%KmQGm2?5I~iYRBj7 z7g-hsn3rnROcA;-PR$Q@o(9gCq4N;cVTds=!`GY?ib#n`CFJB81V)-V^?rw-)jr)J zJbp8bA&3N^N_}EaoTync@oK2Qmb{b1_R2FjiD-^)$~w&M_}lyX`s$tPbEj9Gqb5I1 zQ)pR~xJ@`1_RhhWgIYxD(+iF+$=><77m#c^yxg)!ixXSt5_LPs9wYTSTz6X0JOsbb zde`-;z7uWNmmde8{F)q@DV?E0Hu7!u+DLh$lQ~iZD}^k9+JiCuu=GOS?^u)l(3(F6 z90`z>`b3F4IrBF&qzIxtEm>}fUpe!90f!4+%ZYSlV0^`Ibk}G+TB;djRlXqlhoncR zLSC_+{21g;WQM225oJEY+$L(nU?=<;wF)?6wLzw;9o)$;{OB-u6^@d?iOiDDQ132j zW}o3>t{kT2-+SCYST8buUJz3&C?oXd6YkHRk?<!kEla_Fr8&0pb31!+SKqk{mnSe? z5P$quf7_qc)xMwPsIp4>UMk^lUdve&#b={=)%@eUVV7zB-yv$whdXR#z;sP~AJuuO z{G&WMmubcMLMIX@z9;mR>+xwp{YbF~DeULGw2Kd{jbAnrMRYX+AAdrOx&6u>0$kp1 zDMjBx@}dE1(yfwdcBgs$#b+I>ew9>c3tqVz`NO5tz+!-E$$C3J3U@jj@hO(AU=;AQ z9iwJCc+nCcH0ymHVjTl$fU?<$#!uU4DDMpLtrm`|v#jET;SO8a$P*0mms~&60srz5 zE&YrX)fOAa--!!iZeZb#<CC>at&V7$23`RaEoTMmvz7mPK(sGzrw`WK8#G(DIU?7H z?u#Hk?P?vTLpwl2w_OP{kG|CV;n``R3Y}%2g@zAz7Fi6Lq!#CoAt6T$G$7K+H1Maz z3NcCtv7;NxvSCwDA=R!gr-MlP@Cy>v-GpTLJ1cR2PVD!fME&&espo0a*Mp#R5u$N& zrTsYb43Ws`fp!9?n4&nqtjs5+>@~7gA?U~OI6$9FD@Ha2Hpq#ps}O#WM0qOCTtZ~E z82#_kXAQ>l2{zq?>-@(F^y_WEi;jm>C%LC-+rzL7Cwrr3^sA`2r34y^(|G@$Iq$!w zXC5z@s55W~R`>+<?I);@n+vy18Ytxm#@X$KP4BHJmFmH+)8Zz}qTwt4E%9xX<2RvK z=3RmqHh=9NHeHC>da)D=44Boft;o$Nm1@D}BjRnp)PN-E!(MoOp`0cX%OM{lWSC}5 z$d)D2Pbf);$e?S@*OV<1{9pk|)`t+3bZL+*HhY0VA2{49NXfYzf4f=uI;gp>$6MwB zY`!hA&%2&m7cV?b^{F6&a0X~D3zZgk|B1Ue-s35se5osaV<ahv;GC9Bm&3k<Db@C= zfMqbBZp-U>mL`FiJ4&9=8+Lm7KE>uepl?vH)j<>s3^*Wu7%NC98@z0USmp(3shD+k zQ}RDtNY+nbG^kCa(<2By5Vm~i*xaz}3exH^S&_ah-i~JIoE!ZS(|<q+Xh}YyKCO*w z3qoq|Ln@_F(u_xwq=l}1dnEs$IdzPGX07nCQs1xC5@%Y!TffFV<iwIo52qQYi6@v* ze7wwZkm8ra&MYu+R=-Yy<)Tp{iZ{2G_1H5u{&xKI6S|OXt0mW`!d*gXH3Pm8<D!Wn ziU)j@`@}`F&c#AR!r2&A-&X&AeTy=-09j^6pCkeo{6ezE3ybAOnF<`1ngQZlDe%rm z<_oz}rcxuT%m4+g(C0}L$hu|Hk;(TOdN0aaedhVHj_M9E?O=f$W>rn^M8bu`N?uY$ zA_Qj?ufp*+eq~hjyVYTCD3NW%bXw*^<YxM4tN;lGZYiEnk2!lghAZQ9D~RljB#jk5 z1P35}4v3452gpG2=d{wph1l*$)K-Cz`VZ399rofKve-riE#8=ZEj!lTQ`WZu2HJkE z8o<#B1y{|=A+#wGN-OBao6(;Mf7!k~0DZlj>Ib<BRkILZ9VD{JU_)hkC6LX<TUKV; zh?DJ!?`v55PFRq71xXa_LcgY9x$H%nanl3>T6{N!)b?T78APsl5NAAyBOX))F^%QA zN8S?AR%%S0VkR46g}D)BACY4pmSfjY-VXUHf)la!{u8gr<XaUqzf3QBU{)*{__y;} zP~?|8#*55W?{07L{I$e;A5XY)_RmV)j@ha3-OE`Ep-{L4l-6}DmG0qP4(`jeiw=eI z0yIuIel!Npon2h6u(GU{%Mh1s#9)R+B8Np9@M`Ax`v|NPu$QE=m83?9IYa_aJicl| z{h)I}DJTtLSxrG9N2<B0g!j$kyq82~>R)KpvOnG)#Qq{sO@RRcK-!{GZkh=3Z&MGT zFTk)S6XEbH_8j|^x!#|iIC$5l>DpanRyJMTzi9eOKs_ZOd}&;O@i`fCe_3i@*&?m> zW0L+dC8Y^2wh1mGRmDF~BMJmi1GkdxonUro7^+t<+7m3bwC7GZZn0x!zVgjES=oFx z$}CYQ`esKTRb%krbN}w=e&C=rIz9<Dy@O^=RQ^@RrlCU9*ZMM0Z5gOYs{smbi7Q-T zhtXnxuf>jCvfXK^-)`}|;50%h-N6XxV069I5?gm%oP45{;U|4;$B2ToMn<$o8mwv^ zP((Il`>IjI;$p|*wti<mr!UZjSE@)=tXMPyacvA!2I67|;(o$p_SG0m2;0EgCs-;^ zT`W%>HDq|rUwVQ#xghPT8oIF`LfmjawKKgIzM-Ep#YI4(%TulN)4q-u2rc~f<x0@d ze|ZBNc`GJK>h}Y;t<hsJuc^ABO|9Dg9qv6>vwn+=xP~*CyWWDuRi4UOo?5EQ&_Rx+ zJQ+7#A30nfnO2lUf$-Ll!u~~@U01tiwDyXrl~W+k9yh@rx7E9RpP1&0CcCaC`)uAe z*N`J|m`;+^H%7oWMsr7vR-xALbKZRstUOQ(MnjlDY)g!D@nWICsYE~wCMXga6ls8w z@PImci@N5j=k?-x?JIl%2@TYZH7-g;{?riXHE#DO9AX+7VH#;blh7P}Tbx&Rk6x2W zEj_>h7+^5xP#zP7scw&(wuv0JiA*z0u)yd@BUmd;T`f#K1YQQ_09w~mw_9mxrPUY! zY7FL)@@*7lm9WPGTP*<;(s~R4JqGh-XxW0yt9JIZg~KJgJytVLYgZvcB&$#gw{$uK zAf3T{MzL+%exu_(T}8Wqhtrd!VJ_6dXawhz7GM%wbcGUvoVHt-%E0=FX9V4%gPo7l zN>I2z2%#tGry=QA+zR(lGTBlNA>6_OW1K_OI3ndZBGckASvmeP=wRZt<ZKnjv**dM z=gP2S3t_=6^=X$7m=&a&7A(?I+j$YKifj{6XX9XJ<Fq~$?5}X6$gv|s2eIr36XMs` zPpi<%TLr0`1&i=>r(5YD6j~ex^E}x$o8?{TmXLzf;DS^JnoAf)Pq1{Oc>e*Qe;3fN z$Wz+tC&wkt!T?}laJ7;f*KsoigFs*qAZSkbjN|w1%yGhHt%x4%#c@*gF<145aO_<B z!GA=NtDZZbGBf3BjIa@-k&}KFEQZjo{rYf+*xB~*$90;gJkf^bu(G_)ZY}wDNSD6i zmHJ713Q;RYzlJK|L}hlz^}8d1x8U=_Zc~+bjj{M2;s!(~u5F;68W=Ivnh${}WV3!A zq5eDY;<+Gb3_lDFXYfOTXg?61(H7COW-t@3M4`Vxp&w{4BCrTzW`Ak3qV`({!ueHU zc01Qs$qezXQ`9iJMrZ|ycPybkntKiLtcZ6&@`u<tblBN-*b`c2Ow@K+weDOzaYCc5 zwH2+k$29BUC|Ba{<!uXUL3y<xKoTu|`+X{bM@6bT)WPyA6oBa?6Ah=W2&a8Q^)r1^ z=s>rBSGQkrlJPtvehq47eHvl!QjMOAi1!;_@f=RCUvV*#aD2Sd@|*Q^I9-rhbEI5z zq(RR-86)bxJytoW=yQK-U;nOjTIcT>KVce%W96HaHu+PA6lzyoY**aYpG@Z$HZ9(y zuOCDFzV>eD7|Lif0koOSYrmZOdjSsP;Z_oZ7qt}^wa5Az;n+Qk#rqmTJ&hpz#yuTJ zD@I9wCV)Sa>wEq2d)p!F{yyt|ptg<8?AiBwD6tP4YIwilqPRt4->>Ll({wK&EMSH) z7l}L<nU<4m+um=zcM{U3(xs{BseLk2cc*H?j*A_Q+iF}vac%}{CnPS;1Q2I3$NKWz zgmQ;%dyL7i%g(3EK0ADcLe;fEJ@*qd^Al7Q+8-sJE}+^FDc2BbP^NXQgxOt|+Etc{ ztbLiD*9jq~Hp0a=!fkzEbQr<juvfG%(Cr6~Tch6-I}u)L)I?=3kIq=*6o9Y_Kq(Zo zMqdoB9^9C#00*6)UsyjPIgyyCv13P-xwdW)W^hL3BI70?<9<>qAw~Jj{dc_Zc)Kw! zEh@U?AxAn<jCur&X_hLDvtx~SE;e$iWf5d%JsHT#SV6kkm3y(x02`#5NJ&4!mP;?K z*zYaYO}d$uDW%$BLx(D^8cIRG6POcx{*FgRplJg+8JTTUZ^P^O9EmtdOmhT-(M-Q& zj*KX&Tbz&)=lnfH?focmoeNX!IEL$O(E}D8fs*(%+hoO?BWKV1C^483jQ3_}@}h(^ zIjESb15%==m#XAJISG_g!_A^}cg<!V_qoCf)e=6azm!5(0lm%{+dHOVawc26{S*zR z;a@lut*xL2!{n;vK*2sBThLWJrN=Pa9<3ooH~KC65C<VBEjr5VDvs*egBO98P9i>G zOF{XEbwf+0-7Ya4K$a>aI?DD6jp~Ad86kvDq9?%tSp{l>EBOPJQaLn&mz~vCqxdI5 zK^Cf-N~oL=@(J7qz63%Noy16j1A~fJ2}vrKoE?W^14A`QG&Mqxoe<j)7vXk#bd-(t zYkJ<O>5v%*FlG2}I^M@`b7KpzK}89av%_pkbcUkGk?I0rpn3<i{)6=(%UzWY;>2v! zVU<t@5v$i4=Dz}AJrrnWNMRg`B=Q*fZk-YQiIk)xY%cWB+o;JOvZ91kIb&kT^g(cm zlrSS~$R%y3Wz}~iC_#WkO6(CfC3?f?yCBVnf3Zes^5X;vK|#`ql++`f_L8S?`8v}G z$2l0u9B>M0`^Kflq&V^#p#=;(@kMCjAi}v~)I*JdLKUtJv0P>|*<=oH-6JN4>5m+m zp#+ROpprINM$dd{1Lq)c66MfHGex<b6|ZU7TuIb7)gcZVQ^FK5^d9344cSRJ;BzQ4 z=pRNdn9U&}(oCOmfsCJKtc^yWu;@E3c}Df56c3USVPJLihYsu4Kx$Jnq*@Nep-8vx zc75j{>m<sC5w`iVwW2veZ7-tWQq*qEP-KnE;@2K#Wlkgw!oX5g?4s>Sfkl;){s;sQ zMhU?rlPgU_u?JRVPI`4htWs2sf^8|vamFDP!tLT{=-`o{3oDIPW!Mof4CIuu$6w14 zG?UHZQ1p;zLqqA!Bfcp_eN-RVQ{XZpoeJXE6(cM{?5{=}A6`XJqnDshG|5v%OltXf zr5fr^zq6g&ftR+DLuDol;ZT&aMxVtvkRrUw8xw1%4>C-oWF28^r#B2jrF0^8&P8oe z4LuY;<@UteaDe)t2od7n)k7zHj~Eg<>>&p%R&pL$KEk{o(NT^d)?T8*s7vTG_uEf1 z_=TCOj}?`Glvt7}OAb>`!j$RyLTlI9d9*(g3Uzo_a-k12JKG6;W(6i52MwQ)NC^XD zqd)LNf6LE~%mp#1)6xS{#3A7zCEe=$3%JUU+tQ)msdsu}+JbV{kZcx~@$0$6DG7VP zsMr$Q@R*(~ctkRx(NHI_*z`%h5)4B1a8wOSkm2XgM74&>H3hdgGLL4RO@^8^71~-j zDlqTYLny>d!znlv1H<vFUrw%1Kc!2Aj#2h<hQYBL+76B3M=jk7qK?>tsW>Dt2?0_x zNFy%FZO=<MK2#FI5R)g#5jeqlo=&rFL#<qEQ&}z!;5@ym`}%p=lrV=WIbo4cAH%O3 zN(2LHi7JRgi}W}h&Ta(irQ|?Aw%x`xv)PC0Dmt6&@AdM;4=O6fQ#nqiLwp>zf5NfX zJT+w%48X0EJ2z;^GVe_B2^$UiJ`Oj09GiHle8G+b;%Nw#N`{tVS>gVSGC(*1VbXBG zVG#mkX^<ydqog21U|G{tD$L@886ch<l>`lhk6z9cOv53GMJOycxAgnisxKVXL^3o2 z^OW2D+CwOY074l(#KunbIy*IVpF|)p8A?O76Cd7)*G4OF?8z&K7&X5V3u%++U6ub1 zG3k+djym`H@>8sK2t(KO!4$H&jmXcknDg0GmYGAbCfx7xWdk8!-Bgx=L$Q#)`bp6X zGt{huH5htB6pWu1v@L~jNhRS9G1-=CBif3?C+v$t-I5B8!#@R+6y~G+>(hRYJ4CE) z2*c16E#}`90Q825Zx>J;Vke1Fg^>s@^+Vn8$ykRykpXiZBC#W63YLc+pD;cuS^)@> z{JJug{O+o`ubpY1J1`m*o1;wI4BpQm)EGkfbEvtCO80%~BrCpK1!mA+C;N5^u}yl) zO?nd;nP>`_&J|hJPx7*#<n`0lc7(nJGOCF)s%@)B2v#3e*=j!Qgkf=pVsV6GC9|9Q z{ao4!;|3~k=0gi(usC9{Qmk$ova1tvY!kt@iOr_@)hFJWaHsjfC;7WMcWQxmYT|cl z+qH4eUSatzwOusoZJJ-~B2jLVKZ)@&Q1UW3bj$fdeW!LjIk}(~Jyh%S5F4`T8@6;Z zsoBqw8(2!1;cKUUYHjgZ7Ewn~z{nFtZII+sGMnmLD%MOYR?$EoY9dNjm>O9u9Z588 z2^(zz8?9nU1Yy@VLJJpSiSZ6PdM;WTE?UJ>IgHZtU9UiH4RLObp87QC6Q(dN-2p4@ zE-Nk2uk^7ZAV*z1N4*Co$#rx9O3BGgvI4Ht(NXs#V)P`kVHS~=1q^z72R5pUH>&s4 zCk3Os9nb$I%Sgn+NyfrTjt@dnK!(1cmUJ4QLHe4h^B;Wj%mdfe#n;t)u96G#zd{jz zWs1n9iV+HC)*X&H6^Y;qXm1tzjKKitsc31aXn~k=;;H8xnBgDhB6w0lL-=Ab3i?7Q zNFDjv#GdFWpXg0yWG++U<`ZH?A%gPZg7W&ikP80{!u)3+b^+#bd`oItQ)*g$VypX^ zuq;H$2YSi}dWUWquY*~(Er@<1+aA?~7W{bO5uGSumLJk(Vw|X&xTsnWTqJ?R(qtt* zpj_F3%g@9s`PNnWQG(`33i(h9S%Vc6y5}9f8qK$;LGvVo{3sJKDuRMtcCSH0C5KEY zhm0?0{p>vtcbOl2k>3|W&b2{JX^@Cv0JZbWtG;HylFJL0%?p;pI#vDXokgWaE-y<i zpZWwgR^04-6A%N_Q-bOF=w%ZrWD_xD6Tge)t+84rsDSA)XlXELnFHt_uy^xqzjN0Z z5ypt@zX@i<e7iCN)|C&(ZFu8mOYvv3)XMa`5a<`g0d_uR2;ctWFg5hLa=BN-QZ@NM z^9&iei`Jf`2}x}-Mb6!Bpv2-~zn6a-Of`OS{=fXC<RAa#FIC+Q^_SwVj@!9OsHERm z`ZM)Ec*Qb@ga76g`)F|f7bPe5A+i(X&iDDhfW<4fdzGgW>-dWQC$Kp6f2JCWK~oLK z5C4Cq8bTq?ts=WI@#$`48ei)7$QP9GI$C}huwGG|7P_a#)X6Pj+S;&~;j3~!XiYXe zZQ*<1Yn*@4{ui-$vM6!GUGG`Pteq0IeKf!=^{_;y=aaFqzdl-AucDOHeSUG><2cCM zAx%oA*XyxTd+osfx5dsDv**>U!;L9NMC3UTiUR$&a}<K0a?O}eF39~K+o(tRKYChC z|INU0#>xCI29A<g^8|{vZqlc&Tu|z+P&a2Bbt{SKG@A<K9|F$rv;RfFA)mTRW>&lg z?~dY-mpqF<VMtHxH9vxnDUGA`W5K-@a?i65-u&{D`Mx!|$2z))#yI-10lm@wZ;ALU zZ-kvQ-QSx@P|2^_B=x05%aQb>kUqOPK@Fzf{7%|GIuY~Ko@d5!lve(bja9_%x{z9; zZz9nf{<V;N{b0u9<*32@g+y1dNY=n{H$`aa{1w%lSLltBA$+Y1JpAo*YqI3DG7rMR zw|8ru6R6Qbduaw1$FA%i;2%vuJA?pLeP{k%m!9U#@$HVzyLfzWthMJ>;A@88=BCMk z^oC0=D`~eBzvrh6r8a4FL1cp?#9y;UNiKp)?UL}tVmdDYU+5|$)1`t9^8$HtN4<X= z_+C3<k)W)twgS&QfQ47|Diem89lTx-n)Cp7yk9x!&LT#B1KD`!C(349x2fH;Q{(N& z+Z~sK(f8-hFJvVvYIe^P8)N&z5@AiJ&P!wmRqcQSQ*SQi_AHL|?pa*#9Afue$xY*f zE1{`1FE01TO8LgGO}<a#Am=x4R~I2g9p5no?zbPRm>0s%Yh(wFK2n%oD`yPM59GgW z+zc8<Lr7W8+dGatM?NTrSFOWx5r2X3Jf@m^>8Ut$OH3QI9+zcOf8!vHVGVW+P{?Dt zX<yITf#+Y#ZmpW!Lth{Z6_VX|>XeD%*>Pq+`-Ojx^We!#Zs-w-`WgXjH*j0eqDrX= zj~m)7KDhF%Zuh#-P6rkmK;5)+oWA=CwdgLseK3Q=m%N`2sLKCP*X%tO7s)y!h}xE4 z#ALnj@z!8}+7&Ng3n#l^i<WauthFj9BRg#K%R$eQ%f=X(eo}pSU2(ruX}_1;j&d5h z<Q~1*HERCL2F-c?$EZh^Ph#+d-vu6_KK7bqD=@ExDlYz>rsic`XY)%hah_JNgHjW+ z-~*d7D<af32DR?XDeI}%-7Lt?+U~c4U5|Su7v-`2BBBXjZjk1BAWkq{mlVO9*4TyZ z<d>8V&p|J;`CoHMJz)+m+CY-CrA<d(Ql<F$rJYX>)|t-om-i@LC0y_6X;F60uii^3 zWYQs2es+BPys$Y`xNGukMC-xj!n9?Btq=73SoV2@d_XVod11}}KtYEl<(IS%V<FlO zGgIj)M{DZ%WP(^0+jk7p(|Ir<bYJg%z_9&|6h?~xm;At$2tkR>MC2-`QZm)3S(R2_ zGDnyL*d<LT8Nff`C6(dWQhYL37AVhh*D`xNcNM1)(bL>%s~3-MV%X(NV4xUkkI!;> z2G_c&icMmUPBLp{*B#1qUVCi=87$stf6X1rvh}lN$~{Tt7W2Sv1Ch_$kUE+9U0rRt zsi+`U-`)qElMDMit@X<IHGHwm#Y-(v<Qwq{Q8AY0prr}BbANnp;Pp8y8(jS=F9gN( zFwZXH8Q@UvKl_)lCEL4upekw>3GVr<r<kykS{GuMBq(EMZYbKFZ<!_*t1L_+hVmTl zS*D^P{yrr6`pAfI>w>dr9QJhFynGz2dG5`jTx3<Xx%b_{qcs_H+VxT0f=uUY7I@jf z@Z)4%e|&$XRnR2*Dr3W`gUcy$>6ZIk4rmja7#~*-QIYKj^ggc8RCoBKcw4K=TrA8T z49@?dD~MfUC7MG`pk>hGh(_$xsLME+H2(vTgq_2uSJlfAXc#Rvb1D-<5?c$=9}h`) z>%zcNeIwWTOFm)zC%@Hm#)8$X_Hr`R&E<#9Al(e*z&DY(lfn7pLA~51mvo!2@RriF z;Z!B_apkjdP4b7{yatO{;Lt2gIJEz)cEZZTyGJ3PvoBn=E^HfQR;Tzoc5Kw+-j}z< z%5qyQQMA%eKhtk9vXXf7v7s;+Ax5Ky9pe@rWe)Fvo6C`vkBGI3u2)4$rB0dzr4c{x zOuTAeJXe$0qSH>6mbpD=ISPFChL=R-Ex&nJS_m%B2gk|JkB}>`Pwem9Tv;2}>3wTJ zTVIBLL7xzPyO6f}x_g|a%JM5Li8ACnj66K?Dm3x+bbb9oF<gJy03zg;CnOK1pXOEV zTK<dv{HXBOY|iB<-E>%zaC4BMdGL^4L=4`T-p7l#xuT)@!XcTDzj9lMl<k3`e-6h5 zHLM^LgR@P!*PK6VFmJgW8@N#N7H`?wQLB*Q-pw5h&Htf~23#*4><ii*9g4z<#>DCS z#4Yl#K@{q+6m}4OGHJPG^44Xm7G$4$V=g&Q?T3C2XX)|_WGkgF!J72a9Hs19r{L^P zA%HTsRx)lSN-4@rWN58Rc8`j2q`7Qb?Wad(E57>CT36$gw9Xiy6dqEwe-Ws;UqA{( zI2zxz9>-D5*8@V@v;r{#pSW9=xw&#?ydNl=zhJ1VmKTd=W}T@X$NpurAEzkF@l^|0 zmRifzg$2O$pjdO@mJH63j_}%twcQ3z1uiSWA91^c8UE(6Pgh0SMn00+vzEbC&i$yP zzrIYtAGnAaBZFBVfYJ%pY?aO~xxf~PAQyI>=w%A_Mme%8yjxz8H?e1uYOhQzZ^Dh6 zH4wleQ3lkZKgw1CSW<XTlIXTuZB!R0<kbY2`mHS*+I_hZOHpAKxR^Ctlr%~Mhq`mL zwIb)sj$GmGmb1^XMW5hrGu10PG-~OLdw&`T!S9-@S}@|4e9{Up_9yswq+Y0RP$rly zj>~msTS*-h^h=9Dr>V@Ce;;z$7%6`%VU2iOtzPx2)tYI_WvnR`jS?Ka{P2#s?V^zj z_&Z-ZzD!l!MDP|MRJI!HVkXF8uNA|tB~}EZR>W<kUVx8AN1P@9sk{TBvaCca;HOqo zd8&o#*--nOu@3GjBgPqH--ryI5qlMkSQWQWuo>3i6YNh0^8Rc`yQvHvf(lWR3Z><- zYI{9ke;=eg(6@8j0v^WFPJPcji1Cql3Hv(D<Y1MlN1LK=L0W2^Cm+f45~Tw-yrV%5 zbHyOYs@VJV{dOD9Wt%2N&hN7L^QeXN37o{$xa1?ekYUGDHem{+R20eg)Ti9E1wSV7 z#%T-a4J6dH6-T<Z#C;Rvy~lJpZW)&c_Nft&CCM}broOuLpZJ(e1yKjbFyzHRWyLkW zE*@W7nr)V+6S{{24on#_vTTDK8+OtL8hT{|KbtdRjGefimgUC{aP_?ly0Boxc(XN- z@anFi9%tL8@J~mPRMq=!d)rmu@WO^cNs@um_tohTF^pD;DFTj13W*0de5<i)_ei>9 zX3~N<PL)SWlLr^+xUs6g-)>>Ui6^jtN2&x`>9(<I(7iriR~yzsXZHlq6V)(oU#Rb2 z$*R7GW3s17QMLLD@O$TQ(^@c-W>(A0n;dxnw=Yv8pv#FEr$)_ah&B!aJAI%@L9+Ji z`P!{~266G2s#6)WOBtSO(N1-H*{o5VkUjbXl6^7E<>^9F-l^A)HYzMk;AW{PPMb^r z)pn%60s_Q6GS!_C1IOOr^~#_AAYKeBiwY+TrLU))sYZKkyH!K#KMPha;P7Y<zK%9f z3i->(XHh9aYYmq_+1PVv28?Oz+oY<wj9HG<`JL3qxqWQ{Hy0zd6vMFJAEj54b3L&V z-Q4u8LEG+?(Knejxl2`nc5o2UUJTQHZ|%bm1=w!w9hP_R%${fe$P`W<i4y)%;>C#J z8aJ?tC(3N_F#r9sDm0KuN8;7+E?|}VNf72{J$OeWz};Jz!ZV~xNUBc=7pX;u`1E?~ zMlcPo8;;TRj3Mx>RCKQW*CMu86}hzaO*h<<MgYARSLwzw_TY1onVC6{Q%XdIu+&ds z-0+2_B0_^oTXmppK(u&KHdRTsquPr%XFA>CGxq)%SotoW%zBPUUyHN~MqpDtCgXnG zDzGD!z>g7Q*Ip^X+11IH&pn}yR0WpB_oi18PBQ@P-!#-I8+JGjnsvHZnWW@V#pG3m zr$SsvWH`1M#2<z+pF8Teew_b<oSOki&Ow30*4MFy@ZLJu3IwB2rKw`3tHOh@*BiCU zG=EgW>pcEo?iMseN3RKvYz}6`Nd0+tQ5AZQHI!&{DQptA2azd3k}ZM3M7FVB0_aak zQ-n`TEap%x=b!`=>tp+U#X0{A$A&>s1w9X5MX7OyYH<Jp*^4j)MvFpoa~a5}w~W8E z5mp|jq*pqEG;~|$(p|A^%#8uhd@f4j#5jlAJLG@h&xk?xU8#6v{oCUZ451||Arejr z3<TzP1BnrBUB*Ys68-n6=;2HyFahu(;*><Hn8d2^fv`Xc#??>iL{aVdw!zGW;EyFp zXeBVy?|BaDzexF%TRSFA#bA@E!f(TVQ)k%lgV%=1<P&?ZMZvg<Kno6A-E@{fRFM_M z4M%PktGq0cvzxlaCRBwNhy6BHWVo`P13Gw&_y9fQdmegon{Hyw;swFhqb$;aLwnU? zW(0dx+MA0$=*7tKC)OOXFbI0e>7_$~_Q`umpM_KrCixJ)8A+TRDm-Ynz_v+|%f=a9 z$_6C%7zaE+zbwV~I(2`qZ~I~<^`c$SCJ;317RR@(M2i#fVF;?i=OKR6E&&B`<zq>I zgu~JdkPXbxf(dr{#BXvUiYkVSMAfWIm-m?`9~0qYA9S;EAXm&j?uxAz?go>0Fd}0f zVwvbemkUd>Xx*l@vA1Xr^b9!7RRb&nT7E)oKnk`T6iI|O1N121hsqCu?{FdSv?y>k z(}8X$^)K_?mj1lZ79xFD%0yV;2fg7qylGNgY@{PhtYvg^9Nb4d6vI%yEhGj+-{ySD zDW~hoMv;8b`<>@s2LBr-Q=t1<lOla19go;`@|7`%hb}l9rSC#dV=I}ou9N6sB4QD` z_uqxNpI!Bvj5$nn(%C3*hY2VlzG<q^F=<n6it#&^@M<7;oJ7R3;KVBL1gd!!DvzB$ zmNASC`sx>hV_hJd&$iz3>K~~MR~|R$wrvx9WfgdJD5~1=B*Acc@H8CJgon_;Rv<;t zsqcqzcUHL?g?Iw2hEx?tR29Qc-!8Z`6TME_e#|{96h*{60K=G&Tp_>@%yywTs|5fV zFa}7gnJ)It1qtD`a>7t<WCPe@-3<b`oOUZk$#D-7V7kxdw3>>#uKLXRzhujH$Z!#1 zdZuG|@?(gf;~69?kq0sbH47;<3y~r<Sy*WE7>X#g68Y9wb$|Pl&Z{(wv@r{}F&nVy z<!0$3tV9=efsaJQ=bg^$&5sdwj#fC3Z%&5u<OXwoD7q;WrtJJ<%3t~59J#(2HsFqg z-+*P^+`%3eCHIYvEgKDPzf~zW3Vjs&9s#Gv-G32!hzu1*oG15xby|B{1Z_*q=oZx^ z0qVgPq_Q}ovKY4JcA>x1gIv?|<`8afHo)K0<!~@6;KeX3kzCg!{j&!&CD2~!6@BN> zj3aF<u*_dL!{41B1EadCXM6uwb7p<jsWpK!CB>UE_M0-|_6Fb0=b!-(o4|=Qe>Z-N zi!(f>s)WaRceSZF@uNWHv<GP6+Zne(Px|M+RjZ!WL($Y$J!d2v3y4{9gc-CoCk5iU ze`ue7pv7d@ebre5wJT|BbY%D|Tf$9Q!Au>BzT?-EYoNLidVAuI(d1Lo<ReXI)bXPz z$7T5_gb_S!6*zn-%GOd=f684Gq#0=WA0<<4El=3#bUI6&KNG@&g?|t@@nd}b*6^zO ziZdmK&7mA7Jy1zl)%{(V-1mzI#>d6?aKlzG!-rE8EnEUW)jG`qM8BM=#tub;TfSp| zT;mSdb*2FS(4==>feW1t==x5}YX0x%R)u~^bj1=LQl#6v>Vxj~p`yo$;%UE^&J5kB zKQjF(2kWq<T?anMTSc&xt0+j(NkpOAK<2Au&dX(I3d0Od`kUB3quGE5n|UN(!>Q=k zTB`@Lf?gi%zY~_v!hf&FZEqO<I;I&ab-bKxoN%d}Xzz&$`}Z~t2Ms?c`F33yvy1o{ zcY1BUZCF}V8y08!jT@F5U7u_HkV5*EzasRatLL(kd1j$D_y)B>J~oG#?+ZQI3TG5n zO|ISk-8eix`;$HPr*bqo^Lgei)Te8Ww`1>d(5`T9<of*f*QJG;KtWzp`)hCZ8&7te z`JZG7!oB^|jJ@n(wz?1<xi8Cm_dB~mne;}>sq{)khr=o41Nk>sG#@Sp{tUl7hvi>7 z|A-As_#1V-MZ;IqDDXyS`z}c;l+LKb_x8o-xbM@a7hpPFLINxPVX<6ovts;-QKR|~ z?=*9?$L>dvnrDFa@%tCnH|NpUne-j~fgWz7BYScdi|;p7+0#qsE_c4qr}-WniV4%d zA>V9#I!QNvx6Ae$t?-KcJ>^LYq2qy+nzhT`#j&1>JUg<trdfC{Pd8`B&dMFCe$!(s zR2deM-Fl4dyx??FJNQ0wPrme=t<>qB_LdT|<OpVJ!r_f3_xY}Ju-@I0QYEC=?91xO z+4{;!-r260A9US&;!y5;6PLlWbFF)G(W-s(og?CE14yN?ncAr$&60-p(}B4uCV;Kr z{{P|XEyLpKf~`S92<{%-oyOhW-CaU}#x0Eog1b8ecL?qt+=ENw4vo9Z@ZLMmd^7X2 zcR#!Kku9fc)vA@h7)h03BnjE`z`)S})RBhOk!~#e4W4DM`$U9HyR(pPOr{1Z!YvV{ z81#vDj-N>-j*}^J2+fR{HF**!7x2ir#ZUYfSF?1anVzMMRh~4?wj><3;~Luytu$%9 zL~1xql%A~_W4!lxUft?>t6E+Ava+JYh<^x)#0%^mrV6SwYOO`8uYA^^F~0lihfrH` zf3>mB2wS)i*UotmGqD^Y_&8*sFH+(CbqIb2s>|o~a2hg}Iz3wPT05#?d8B@Pp@(>I zp+xutGI0LTCdl`^(pREFf<_|bcXzS{{x&6r@S}|Dlp)x)r4gm=X3y*8;bNfAs-#-k zB#uPCRHiaqx-7J>(SAx|?AF7}>#nb&dvldtT*xN(R2?nU8|hilIQz|y(UuDLNUgvt z#fx{<5MRhx$P@JRa$A97+etZBAbrhn>%=?6dVMr)LXw@8B~0vd|FkD^<mDFZHD^jv zM1opPARSvWN&5QZV*BRZ`*n8!vXem~kw?;qxb`u~IZFG#)X6V59v`-}5j2msE~W@? z!oFM|wI8s+R!=JXJzd^RSIiCt>byT(axO|Byvi`YmzG0qKlU~aeICIsXGW)XBWq+T zWN>bQgx{WwjHRml^VM|^lDGCa){`wV6$}OF9jastd2;c-LZ%^*Z@Q3l67fERF|l$7 z-pqxaTkzPT$lJq9un|#-Natvimr8cdo)<idBlCNh1G^`xQSQ*a2r7w)&+SEfD2oc* zMz`-%gBOWV9*KvU+<o$g`E(sLlNYC_wb_FW6yq+hx9u%71$%a(Cvl+*=|ljhCu*mw z9ZWIL^{*1E>TE$Do79on#j)=RKo_Ptm})TyZqmWbv8A7Yl&{a_>RAbUMI+`nU>RCZ zq<S0e-lN;z&KzVUDMI!qym9W#EB$1dg5AQ{EM8z}tnv30n~NO?cxNwh<ObbAoK-8F zJ=ri^-t5NXZ3hw=TA{z|1^<(rhEc65fl-S-io|M?QOkG%H*5;eTpN>`y45A2_qjJz z#n0nyd!(XUaO@WSNnFt&{|~j!jQXKxGV?Vpc9z9|CW>j*KnaX|A13^SUS-a{*pdh> zN*p4wA%wfc8Pdy|aYL*oO)4GiQoZ1X$SvvB5)v3?=wJBZ5|bh1tE=YbSbJQpGa1|@ zObnE~y8VrBFGD(>QwE0=tDEL`Skxk|E;+ppb7G-IBnRR`e@ir!lNhNP#t9yeA&}T~ z3O@m2K`)QH!-j~BTUievtZ>#$ks(-}@CIG76HHLnTao%8SeWX!IZNL+nrw<AJQyG` zsEB4}!f^tUn*bPf0{Xz~p(;7T?*b%4dO}eb>@b-I>W&IJwqvU8akN%@<|b;AEl54M zsdHO1^PBABpKHB*tYYOBNy4140#KOCa*8UlzVix^eC&*=$)O1!cNAo5rC?(RIkNp~ znU_d%`+v8&E7&+dj_ki42F)>;>pYLm>M&v{d>C#@ox7cxzhU2$H|Z9yiGXh=Uph(f zGHTN|a!@a%)z}?6P{|Q|8rpPJ$rkz95~a#674(d57cG~?W)#iV#~iOS`R?V#{V{om zj><mX#y$BGW1{}|HvaFh{7`lEM>l&Fis=UfVwCh0t6`?kibvTHo9wUq{(pw3i%5E- z;km~Ojnk{N)BOYfkn%9QRfK-r6*GI8L~(_fC7IA$(@2qlP*5iNNxU30yAd&aAf%SO zzs?Ij(D)=y4u#$5l}&=!LNE61WgzkWAE+4|^Qu=S!-VWrt3ksx>UKM_YEjeXBXu?V zN5_xvCq|`UT=tFsFO?FS^eU2cGm_ykQWetgxc7S%T0+w5LVt@iOvXj+*}h|%(JI(j zd@YUL3-nfF%jagC*Zze<o2YWNt8&pbmohV->~dYEk(r+HQEzzKzIuL6D9?B^s*I(m zf_bkPD^|Omkypw4c2>Ic45_(zsUSgLvyETVp{@R;*$Z09cr`!V$u**qp-iKwLT!)6 z+tr6@nsNiVvM^HeJ~&gu&RDLK(WsJ<M<`yKN$%4GCphWF#iT`O0F*peIWzyqWfm)3 zNZICk9M6NIca6TOv=BA93N|@Y`?=OsN2V-M#pZtNf9#0M3DFrb)A2y^8f6@un=rgy zPj3F)O#IJ((sG@2MwN6t%1k{yGQOJ6JCU=gC04P@6(|EgxAw80b=05bb?!%%&<Yoi z!m@`eX7Q}ha-?q;e{P*&w`;4<%Ii#yD#diM4D*jOo!?KI<OmthOCa<)o@mKcG8kns z@X*g}9bX<katKswD<GUHB+}LzQU9nwp8KOthw)%#!}+yz(t@rA`YyKcF5bUQ#sP-m zrCL?_;?EokyDG<U4eOVa8`)@*&$ph~@-W76Pn@tevtg!5zi;Yf4@P`^H>W+nKC`M5 z4vHG#|M#|}Yzpy9W6ev0qoOg&Sj=;q!nQ8ymagLXNnmX}@IidvSR`z|<CiApsZuyG z&V{q8Qi|iZms?(m5Jg>)UbSVuI}80rtL}g&b9j@XJp*Y!u(a7HJq5nkMlO=R#BRRC z?gh|CACSVt31Nz!S*aMk`hR--{JA&f9SwQdh!FqpuU)vQZfEqc)TnNEZ1{7_n=Pd# z;S$J$kM+ucOjDv`QgfqC_@Wg2rp%C?-{!;Nd>`pGm83y$_yKr~<MDM{xXn1?<@9DC z@qCPe2(3#JYCY5jIJoCvlp0!Xycd2tPhTULNd<E)(aax37}5s#?<j~2R!i;D!~@(H zc)Ipcdt8i16OVQadj1aP)zRr=5>7K(*?7h$1e8f^YF-_@AA-MSj_Or!-*U5ldLSCA z)MY!Uo8JSEDV0Cec(g>J=Fpm5f8kMJ`63oX=9>1cC(y&?&La9R*5hB>fEqr1V(B*| z$kjcqRkI*2y&oA=PQfCO4e%hBI=_oIBjtrg7&JZ2Za9>D9H8aQWmJeB0QEb@A@$X; z^q=FbYkaX#sOgV1Zc09Sojq@b8gR$M-X#p-;<VsyR^(dT0M?^93a%!Mm|X+%3bVoL zTz#mY(9ed1nR6`jpj^9~ol}lZ1|^cNaS&_frc1BgFxl^DZraAunZ3|i9hHAweqB{# zBzlCe+TASEdmkS<;PoZgdd4<cKAcY;gz}C#Sb9Kn_s7g}D+Bp*c(GMe3wP~|-(aJ? z<$(AhCGs@Fq0Uo|P(~$qvBoFGLP>w9x#*T3OmzdX**QPoE$lOsAQXj&FyxL6PpjY3 z3{%gu1xbHr|5xjzOo+I`EuN$=DA%#SvTK;Y;GNgwuCHFFG-6)rkP>_oJ=jOXEfa{x z-O049O;g~bS}=|y=<(Y8!o>UJEUaL4P#-SyfDMx!f9jT|LCJ#up~X6XEi;)@{*;g` zjtV`+@$|xrjx+s3sxav@K)B!%;UBEo1<ix)>(7=`QTPQZ?yQv+l|aQ8pN+Ten^0O7 zlS*9HCp$Rt3xK8qTd`YNq>!jd<UB<V%BM`v>6btIGmN|S%hw42`0V`V*QTj|0YunW zS0iXvnO6QuKA68$ob8%eSZI_;UiaK)$s2s0dtfy=g>%5A2<tw+S680Z)ou4X*72yb znNl}q+@zk0N9dyAsGp-Rug+~Q#xY@!@BLYE+Qd1Cq3QGVGn`33+ClBt4{|YEOsc$S zCPJPFsgr9vT{X+BFuDPspoTRcpCb>fM0iQYRK0o$0+{24@THmJfUYSAK*x@lnq{Kq zqE5Y~pzwWW)Kr|FdfvM~5ABb3y!@oNTFkRR_V8@MyBfYvY3Su+YsZ3KR~{E@kq2m` zBFn#mTXegE5MST6&<SH}THWjKY%DKQXG3FEOqN2pc>8AvHlPmSCq%A)`hqe^X11LH z4Ec{=d!>Xg{tVV{4PDMpXmQFFJI*R(RtYenD*xf5A7!vBKF(Aro8;zzIVIO#?d!2Z z^BZkSPx;=?FOXk_o$z-+h*LzQWeIlw1z*LTO$3^ikpHBk*@{oaY3GG^$(pu1VlGcr z3^1Pe=-F4qez89hX-6s2o<S2SrHQ>LSr5E<IvG&`Z}_H4E+(3Jv1OWgj(_Ej5sSmi zE-~!(@VI+;tpA8Vb|ZY*o56(ve`5@&lA4hkISxEg6KqL8h%NSzDaF8R|68?<J$g$T ztOj-dGr5w(fU61roddx%CKHBnE=7AkFQ@ZGjE*X`yauCWWji4iG5%VrXr&gLdX~(p z$MzGKtO2_G9GR+Fx&=-aT6L)7V50LAy%&eF&;m+kW6dRZaH3<X%7~0!X`P}<V>4|N zw66~abHYvOO=sk`x?63+KZb?GG210KK;;sCo6MNPmH4CwqtNx_dDKk}Jx<aXWs`n3 z4$UCVh~1P6rvmQmJAv^euAj0(@-g__4~p^u4E-U{BHcH#0`~cB{M29c(<%FP#`7+n zuX)AMg1y#$GUem6#*wiQ&+AFQQ?OdLDn2j8J%AcQ^nFryZ<7jQC>p!%NxoCiS+?4K z(-%^10|6d)hFDVJF4VIPNfo5aER(`l?TK9@zPgN%3cZcFY@RDT$KCcY-YZnES_NEd zMY=iwrTjk4O1TGN?c@KxafTGerth(Oc|WYFyU4G!Zk)OmX5q#3T#}^5-1ClWe;j2k z!#gulB%xr$sue4w#S7Mnq0RLeg?rF=yVnWmt6a_9^!x3+2<+thQ^C)hUc%XL7yd&< zXoCARkQ?4s{i4m1*efPxGu$z@mfoEi91;#kY=M=Hn1m%3#1$sRc3xO34@3UGou9_U zB!P(nfUH&Lnu<P~<gAVH4ev_U3*b<ZihyNmsuM%Z3CDZ<OMpi-Iide1ykM*)Hf2Qz zJcV0HLCiH0Li$p<(Kk9x^x&Vx3#HuVn9Kcg)^KB0Wi)@NpOx@-z;h*2ZPBbj+|%gG z9a+Y!`~BTt^3O_i0=oshAFMBCaHW|EN5UDaR>H)sv5@j6#w&rY+wAI;Du&Hvoh7lx zQo?1i<<Zzd+-B&@<HzFKeAs1bjbGo7AtD_u*!D1F4dK70EEn8|=Z15nwaO`~o7C(J zX&MkRr}j@#p8s3~&UxJJo($1ix$)7msA}5>(Kmz_Pp#9gXg9{kPtnMV3yk~QuGL!k z4fHyNBp!MRD<oe34tEvGjG7!Wj*H-~!&ruqvA#C63e^H={7y`U9RkrZv~^TL&j{H8 zqm?v!!VTT>qqRhTD?nD}30_{q?Mr1}=lh!)QCZ93rN`?H0MXsWbH)FRjoo4h#!3Ue zwpvS1RG$*0mO^8-4ogB`xd^v?cZVt~Jal9{K~EI0K<=(Y#tA{q7V=3y$RxExjPzYQ z$?}VStJeJHHi7edSc(?YwgZII{iJ^n?j^#~`b?x1M2WX;eQie9?&v}P^AZ2tCl3FE zA}r%}ghMehAdAV^@#^|VW#)G1IFDrz2}d(rP7AS;<qL4zGm>0#KnL-Qu6|E|1`Ce! zaG)r)lqB_@I0M(YBYJdUSahMG6V)`CuknuRoAkwz^4tBM#~lAXlpl+U@|(M*>$3FX z;|AE^3GMA(*|?kZ?cR~(Evq`k<%90)D+8BaBu+Q}zG`SB17T{zpTq-7hR|i~zQ0`< zlrcU|?gzd5!@qyV`1kRhBl$oqa0+?crO8Z?>TTdks#M6?g$#;r^+r|~r)@T!dHOg! zV=AcNW)=i?E6wz@@6MVgD55#ABRmIk%7;3}=3j++gB@e9+>Z9p?h3YFqeVCko1dP} znnruy+{kq|R}gg1h)=_$X+gsU9~*<wJ6Ic(jkKr%55=qUWJl@d6jveI+l*F_n7GF? zQ-TilX5Y55x>k9%d%f<S2wv%-^K`ww%Vl*iVe0xvIxF|QgJ=I*>v2s-fDEYn!HrL} z*PYZf@~y8Y5W=rAlljQW-%{OQ=gPLdUiYp*XC3(BlqdNqZL@9u_!>EyYmISmP&P*h z59X}$S0h(4CT%>%N-8@3#k#X?B*p4H7aSTnE~*dw1&@lyR{l4Q&decfI5St*eLLW{ z6?H5^=$_6jg;e410G;;7l2tO26`lk~%p@b}tMkyr!2F!^XRrtMT79Su_FtA$6^wO4 zdx@u$>s}{e7_pT*GHa&aX#NB1%70yY@II?}mmIrgr+Yoa1Rdu@_c@U06F}Ka5Y7&S zI(zwkB~J2IDO*AFuUTN8HyaPxq6l9$K^j2mDYFb$P?NXBtOKs3`~ySj+N5tf?vGq# zX&ynr+pMkUdz5qYCAql-{Ze!-G)gB-H+yb<jdUyhtXd@1>pg)65cc|Jw251m)A*QI zbR8I(a+eJH?n{((Ik45^pT&5Tde}_^$vJ&5cr&{>c7c}b+eW_t#(N2K(7{+gwakMl z>bsIaNruRdG-XbxwVpHUS1Hv7v0EwRe@F1%JM=_C7<WEHcD8!U1Iv#6F!5lGClE%1 zR;0Mo+dMNkQdv4Z58DI;u}wdh4yYJBCAF?X_H)=%NhjiDeF&zg5czrXQg^2Rk|3?> zQqA;?t~U&06I#TiDZ`~Wf<Hs&Nu%T!p3amhGrJ_iE`mvW`y$ctArBsr8L(RpTrfml zjE{8df0SZN1v^TM!>9CvH^u9*^_2IIw1`@C5)I1XQxVq$WzrQu>uI0YEKeFl3}a~J z+)QO|y4NjhJ6;k}Cw{H_)Kxx|z}$vAu=EMu*OMPkv1_r{c0b88aN&I-Ry?x1TkU2^ z%7_kkAR#4yeqbVyshbD?lle$K8+B#f8j)vdwpahsqI#HHkTXOvrhr!lZAj*Jjg_GQ zLgg;Jiy+0Cxsq%U)F4+8XY6Kl_;giY2)a40-a}>(OnBX2GzrddMVRT~Y-Z{BJ67P* z_J?xd)M!oJxpoIdENy{UtXJ*vO61IxqwphJVHJ%>E-gi_Us~Eb$7_>d(v`$M!IUX` zz%J=Vx+`=Orp2cRl{1p`)dwn*f>{3Rmd_hct^!=<Bq;S|KHLhsZ%`2qYol%Kd3_rW zO7*%wRe2Q_I4d6B@*AQgVTBL&SudHiLv6eflzE5(A42v=It^uS0H`@&Nh`>f>yNXh z56NDd)(OyKQZTE6*w8G6xQVAXDA6lvq(*L%aN6GssllK10r3;)W3tcKaQ)yV4!9ei zEi9Xbpx;<!)3`yYx270=BtV1+{)|EibXfO=GZl2#e`Qw9-jfXxute+eIBRHtI>&lR z%Zm0vEsmIE6Cgw)R<z0a2I3}ddpuf&I<x}w!tz?8`TM0HkRGOGp#-4vKYfY;XYNWP zQ6oZyrJz8%V!;yV#osel7Gq+-)PhGSUZD1$@hNvWxxG4nt5FMs8s>CFYt}!lbHm5- zJN)=!)zSF*{@Y`?HyJ_WnVTRDrvvK?kvJX0k1<yDL~9qB5sUaaQl*Wd1sE}nV{L<6 zg~xKz@Fjv@6nDHqB{aU;K9;xAuZjZW_5639+CFo)G)7+T?z%0<a?C1a&?4nz*mmJw z>apZdhUZWjL@+AM*Z5*p4OC1=rUWpp^9jEyI=RqQ%!S*$;1YS^joM~A+YwB0$UW8_ zzKF{>x+gIBF8M59qmpowj*NGz6HuSmUu>IOI_ejybIa>iDex%?GZEWT(G(-Vj}azz z>@bghADH44cG6?oIT9Bk{m2Qq4&1|8J=r$>o=-#)!R%kvv&ld}H0f_&k}`)$HY1HO zE8UvQEdb?Iz(QdY?P6y8fQ*a86F(a25T47$fZkXv{E69_+bAn(x^r6B4t+`lV?(+X ziYF6Z^^$vut5!_(UGg{K9`st+cP5nH0YN!b>7D00w=1tS<Iz;1C$`>YI+{gkz{|Xo zmn)m#<hTKQDx<$c%oI<=NY|wY^#7#t;Ectt5=w0n?on)bjQJ%Sf*bh>NTuvuXhB7z zjiN)cHADl2dv+zkbAe<yG8nirtu4G0-sl>X>DqL&tPT@>Kgd?3F;=Bp54p`3<Eu-! zCY@QH&Df0#18qn7G2v2&JJeu0)fA7EaJM*9Z3^Su3gCYfr2WY}wV+aH+OLXa!&~`u z6DrxE2H2fIUBG|hqxiVynGl|uJM`rJY9V<c@7J5MP6MWmXytsH0Me8k^hw8?fS?{V zMbwzK_KDl0M~zy6cxAl86}sLPI=qeIM@Ya8fz$)R!0zHr+iztvyn0VhPU7h6q`DIY zUlxIhuID30NQY=$G(|(Sd7ZsiG4&xyBhWj}M3ANAb@Ce<jvRTfG)A9vD;c*y8ZTFd zd+@d8Rfk^5XDK>;<We8bX#vbX(x=JV1?V~jVLAnAe+kyD*FPs_t$e!-%O|CBi8jx- z%@9%(14UDKL@zUTN|Sd<V{}V@fnLH+&&X5OjkhU)w=EENv6me^cJp<Lycy$D5UYFm z`z4(_BA0tqsu5#DNFmT72uzm`rla{6;x1yG{WrwL7`{X8<0&cbPJsAjqd(W#VfWZ2 zMOw~wI3LdG%W4Wy^*+#hE)o>Z()G^L;pIr%!E=+=Rb@b#DaDIxM^orVyG+}peU}Qx zsE@wQ_rANiD!oG`L0Iss7qr4+4EYx`#Wgxmg+Z?^l=0FNWhGP5Eql-hp->SX@l_EC zv*&(N2w0(`S(9#TGnliJwdYQ-!_NB{|2t($Z3B27hVb`fl?ZcRYk_%4Wykjt+%9Sd z%)qxqD82}};Vnq|*GgG^%;LE40{DmmL(Sj&(Sj}x*!~XKiEe#F1CfV+|KSLhifII$ zv!GyfP-|fuF@17QiVWMSw5~ddQqIhG#9izIK0dbEQ)Do^JZC>Z@*-)9V_d|3EEFfb znm#KhFG!gPWR5PlmQ5^&Mrtpx7$ax@em&j#z-Zt;V)YkKU<kOv;C(PhNTzr}qTGgJ z00C1xdVEEXKhlz?tXdwQ8Qn~#6<wf5>nXJa5g+e=e+jVqAI>2Z6c`d^k<na0z3x$D z#X3}7H>0AxRua2-VEcPuC-(O>gWwJ?Qu*fr*%F5#F**1`5lE1&<B)iT$BvZy>G|XU zUOz%Jp$KcCi16dGe;rNTn!|ISo?nh`2EY=|nj!F{Qplux0S`gb&{2OBoubg-Z$DNC zX~^bwcHrSP!qLa$%GtN4OYp+Z^TJM?FVH9Q&`;zc>D0FxDsQAr_5M3ug4wPmIfTIn zUrTW4i14{Ejfkw4;5Jv7VuMT@PKb*w02>RF%8y~sn2JJ$Y#zo;Ji=OhG#Cr9EPO3# zX$Q0R;V=L}sL=3)-0{+Wc=zY8KsO304~o5QEKj5^vlltEXZ%CB%URJJ1t*HVd@N5! zDY3rm?uY^DSOr0f0a#3XtfBAz{xt^C;&ky84DsgQ!dq4XJ#Y9>Y6Z(B(c>vF<IVHK zU@moiwUj~XCt(;Og<&FvX;2hpFT1t7SBnJfI>hOoB)Woc-=WA;NsRzv5!i|94S_ZI z{*n=4k`dul+sw09<?7ig(I@0m7vuwlX!cfZ1C)`%iK-H#0|Yj{eg0(RQdHzP@YF#% zX6m1&+c9)yTZhH3+=A`WH!`ZplvPDr;wakU%(sITk6U`i0K0JX(D3v$V%7p*b##7) z<)in*(Qki9R*T9qb$h%PAW`PWxsV5gYTl+<FivDztwlO^VdjZtGo2~(WU%sN+Tn$^ zi{6FPV=S9#8RhW0rA1?DL}M+Xy$B|hXTo-;gLbC@R4O$mg?rm9A%3hRa?HP^gJNld zVl63r2$WQ2WDln$52pd*Dm%EMlvXlWRx<6p0`2usMjtLf9ansQgJ81FUzi)!a1#1y z7$O-v=qI{wITpLzBUh}S#xC#cJ`I%)umOAQGv*6XL^GmkGNRWRC!{GSq_HNX+pW0; z*1lK=&07b|TjTxt*aR*be%8ny>_Ap7q(6bVGM2b9Myh~r8oBX$1>t%HM&lV%nE~hn z3j}OD8LT`R;jKV7*IW$S0tDLvBi&5mv@bV?{k7BnyxipD&~41-%ZJiw+(mvi;}p5q z6j#xpct?-}MjWUh98>^qAk6s&E#l%YjUPjUA7k0)WHGoY#_z*Xdmc4-UN5pSE}c`y zk_wsMU739Ic!ldg4A=?ukw@8}L8IB>SqM3Vi+p_iyplkjX~9EkaKJ1;8}uFxx;q+l ze&h0<@3yJj$$nHEShijp0g*q|gPP`J+jFE&b2HYj+Vl$3dt!w%CoRj4UEN>b+@GHI zucuE0U){1KAM@WWAFbHOnfkR7Qb0$qypN`|qp3}(l>aY`{F-a$de`@@Z`y-jd8lvX zb>Pt{;kT|q$~)FV5g_5Dy5oN!a_oA(TR{DXyY&Bu$Z1IHAuYN|+O_jusxK_>)?;sj z`lW_{dku~LgUCx9KOpjd|6hn)jl1CH735=bPl4lS-%18{>>i0C(Hl`Lp;8HdwFF{r zrAC53l5uBH2VUKNE6aO(9ox{K+Bs+;iKxCrm!ywWWkR-JW$H7%)-)d@Qy=~K`G*Ci zA=FH1n|=;eRRwM-kI$|48ES**(^T*Gp&Rn&u$vc+f?g<?ZGv&qnwvxli};echsHP7 zpjV)<uXnmM+(9T9S#4-q#9=*Z(rUWzTz|T6glg2UJ<JYq`Q<0O&4}BtEUngR#5t2A z;~TGd$@)mTP9m0k^Azd3&uVu&2G5g<^?aB68k|vG-j5HyT>%#SfB#jix(D-7jk~2; zz*=NL;*C-3FT8o9*QutZnn<LlJu*7eB|nfbej#tq45hnqsNvmEVx86vMAvNmHE*&+ zcmp_=_sXAVl{M2_SEPvb6;HDsUc#*-#f5uLOv210x*XlsM$1cjGz@p%`foD5C)Ep* z6STiW3zwSBA2;A#V;gB8ysq0=q-wUR$K{Xx!qw2WlE>=#tY@X%zO9o@>)ygIn_NL$ zZ&vh9`0kBjo0m6FG`9)Ouu6=3Yb?)SYH^Ar&4`rjVG<vG_^%1t^-+G(1MySquKsLT zY;@fxG-|W!j1mlj=PZ<lbd2}wLdvRKuKSR@IEYzh;!{f-Z@SgzUM-bPw<YP-tlh8Q z9V|awycAl(ju&sp1io=pvj3}Z_3w*@L{x!5*#_BzrjB2Cp)-XhFp5|v%fYFZb$D0E zd-Qh%(fN__HyAs?m}|7bwts9*Dmv9{iN6=R>`-H^v3*%SY1uQr(}_onX_j{@!?sS9 z2<SGV0#bY3U4LXzDl@RHvrXe@;16la>l#MJt=^|#nkYyO64JH(LfpxJqfSO($vXT8 z%;|y$&cGysY6~BE-PtVR<)&dGK+gGJ>%^X~)arP1VykDtFMl)UBB#|fTm9_{YTsH9 z*Y|v=1e+zCIGqd9mku9VR+glQ#S6l}o{CE=>`Cx6g(>Gh%eR!q(J6^SL<NB#gqXB2 zs#9n=@7OIVx40Zeq9yS2?qh+D3LJ~_d-q3V%=7o_MPKAl2@7eb&(%gr=$LX^WQXos z7bYGTxpBtfjABcJ4Ny#_?Pb}A-CJOoI|Ljt(Htr>W_=$yu&5@CJYBv$a2}iAvq|Co z6zG40iXT5O`NtBv;=9+g`-`L|SA4lqu8ku&_$zZ*HH}vzlJVM004$4K4Uoo`U)VD0 zx6u@m^^~_0$3$-)ke%NUTgj^)LD=K&qQpOIlO_A*;pj0^tm|*!=a@KMrN1_~)yuxD zFnyugZ~q%8(Z8yQ6nZjmXj|t<^*tPV6O-j;t1}8a*{4(CQrIlOZ1EER-YyI7W=p|f zuSE#&)S=*pt_=^J=r^lBk;D!CV9bnlwVKidDMODe!3?f5;t|#^Ne)<w*Mghwt4tY? z3QutVazuz*bF<Z_58KVNBd<3LMj+ydkq2esuL5A)S+ia#=`4O=m9I!0-K7}ei;<UR z@~-)_u8D{L{fP<8L|BfYZq3;S<-xDhoN;5dcP6jJ3xB)t?VkgYH)i?`ZoY=)62s?q z3M%|ZqzdXaGe)3JfhpHCK>i~pq$?$a6dM*-rQ~FfXW%^~BRM=yW6>0uM!X$1e2cl^ zLq?T}4+cm!RnzdKGf1O3XdPIx`D7wj+4~lrhEvWVu3}@<rT?-^(RL?JwaiOU#i0UX z$*v4cJFE_qUuVQEDsFSxI;D0ZUAwm1k<|v~p@<cop{OlM_O3I+6Y?zu^;oLcfJ=(? zqH-!51c{nbyLe_Vhk8!<)1hIxBk_U}{Y9u&8zVu?t0vV1@wcy_ugFHow2`|`t&kLD zBB#RscFV1*KougzsY2ul*cWQ$-xGMUpdsC=xxS+p<x;!{y#S?l-Pta$y{-mBMD3nc zVm*#oFOlD?RFB2Y-=inh$3~5kN99uydCddV+tcPUBdXgYy6KU(oiI$4Zfx*6+8&9_ zE;9SGE%Qsj3fn&H22^0oi~5Y=6q<&HNT#*4`Htf_szvux!~V%OihvCGIRMm;YYl`| z_UXb_R^UHPhAbSwgq^)_hbrZzCCT)RWXgU(QL~zOOS()x=cl6k(M0LroYRFytPo<F z5Hf;{;VA$sr$m#j0TfS*+&b-SLsK5hI{zq7!TtIw)73dsE=`*ZJcU_3jfEr@#j;eG zrKL`ME|ffmJYsgt;iTe&YxBzTwx*&7x4))U06$0izmH&HMuiW^&SOm=)v}6wIeqw_ zVvQ>qaX-T^Ldro7tV<%<FAybsimdR%aTxw<&6e9V+q-|XB8cRZ{T`MS*`5(h0A`)` zj!2kJVR<d6d)XH&nm4{UMD=w+^;`t#2@6p;^{pIroWG}-aLd8|4uY~`4IJ@V>84iu z1dUeG+(wr#Z8jec0BmTN(kaG`;%_UO{jW9K0v-5LR~-I1Mym&dR<P<>2uI`J`3a>Z zp3y$U!^{Qbac0fq4e?}}4i@)PF5i_StHFYgKHy*U?~-pa`!=WT?_3?(%x^D#D+4;t z=AW+e5%5m)r5vZaHXPXIhHm4_M1;EAgvloC>y{ITX!o>RQ(2Ol3<WO6`?El1B|Jg~ z^GDZ>6~I<rQe~F9gIBG&0uBGMSQD0a6NXHYwb-%hoD`Gy^w?kVu~02;&<5=-3z^cn zYv$;9j^5y`I3>Z+j<LMCcFMgBvPH$gA7u8{w9RuP4w<M$0Mh>!xur|(XNZ>liz*wC z?ANdzg(ZhS*bIA&@*AX<S-laV{M6irr+6^alRYWLk~}1nZWRFU?!;WEc@09bP>n}U zd!>*}F=XP%M};4)OjC8pcElNrNctS$%82*7{c+hU$euC4o{`2*0BISeKq<?<zYg6U zUi7Ys;;w0#(c6IB+W^Dcpmk|weMi>;+wy$(TX@jtUKd8Z6oU>ctZKp_Li8U7t)(jh z9_wLjWaCXPW=)T@SH`E>=y{d!d6kCn_Le>Sw@%ro^>BThS)@#^F-*?iRO3$by}^qG z@RKKaJdU_IxIh<b!89GN1?4X*2$Czcwul20yUoKzZK&D?^psVo`(?v|f{ydHj^C&X zU%%NfWg`ym<X`?5%m9as)JG*=f2HAa;8Ii>fS4t;dY1pyEbBbm`$}l8G_|MYlOy_z zv`qEziXjONYjA>a{d=mD0ApPitYX?H{6e&y8yC?g%NoN$xCJ6PEh!$o_+N%}WR6<b z!D6r+`Zj8|cqGKT^$h&+<-ysF+pw*F#WLs3Eua1fH!I56YQwd1j}3Wa@1-o<qwCCj zNZ>dPOA#$ghF6_EFCDbB-fSnw8h7Mled)zQ2o{Hrr$CH1@9k?JVpjH^-?IixK3tbk z{A<#JXI7VFR#yZ)fROYF?vDs?s(ZIje{_dAQAoK_;J~Y3Q=Ca5$5WujBf?NH%&=~- z1{ml3!WfZ^n35bFpji%U*(e@VB4DM6l*NdWZMBv(|Ed$+a|ECwec3J*@s@SlH|eVN zk==U^4#dbrcgvRKR0kBs>pIpVh#klTQ8w!I$BPffQw+yHMXSbOo5x@~$7qsG#oG)0 zZpP<ZnsVBOcNd@TB#aHiX_b!nD?KX3ZGM(C{Qw4>1=`{K6Twl(+fb+^VUNWYi^Wd# zngjAIepgB-_|zo+_o^wyAl&2N-^?f#EI7ZOiaWu)H@^4KOu?t$E4P3OI>DSG&ckap zWlOs-M{=M^>JPe?mN+3j%}Q9&RAmY40=}nBU{`{vOoW_(IndSi&e&N3&{?P{E1@1F zp$;HX|5pA$O~KGlN54%+k0%R+BeQkumgH3j^v9n+02KHu-zy{d?B7|O?ZW=YSsmEM z3MSQatAN2*2lU3>k2enexa&3{S@<aR<a_bW?+4VU&m<0Vjgpg!_#cif`lAid1THwf zKd};cW#+_|V+7u*>>&L~GPxH3tJV<WQ=N8>(spL3Rxuh<zj(3&yyH3Hg_%Yr=8um} zLi&j<-i}EepGt@abXNZ|<&Q-t=PV}|;`t%b?P%51J?$ijk;&q=C@HQEz@9-J$Ky8^ z$DyaGC|%hpT-d#f+~yks_U)zNyMxwe(<R<?=qKm=v~q`NcH_<2V?Dl^nlv)}sk>rO z$r@*@zB<=_?q1voQ7@_E)XT6hLoX=|D=9P-EmCUA8{_i@m^7=SU8+5QYsH4nz{beH z#+s&@onG-JtB}L^BgY0*65J}1u^6^jhjCE%rskoS<e@j`p~vfx`z`%Yayj6ZWGJ~I z;`!oZs?kT9{VKr#s%%!6Uo9G0HM7k>O*y+xJZxWNfvYz0JuuUqvcfu&W7AW4)jkP? zGUQ@PciH-b$PY4?qW_R{E6(lK>Vf)op&Bs~x{bin#Bf-O@Kl&KM>~Jyptkc?GQJbT z5)?o&Er&59cbW_-L_aDFJ1R`mEjg90_L=$qTm8f#rFs03TXa<rv6GA~D+%dnw^E9v z2B7tSsEO$;1v+i5K~p#)O$24~JR-v}>M*hDie8$@yETpR;6G1SK-^{KAJ`&VZWBTA z>VO!{sggG2LSi(x$8gh0%q)J4;v^)t##(gsCnm<=K;c1s+vf6S!e)1<d$xsf#pK~e z=k==BjF8^zaC2-?D#igxJ*|<@cBD^n3PtdWMTQpT#2$<{xBZ#wfX%u6vi`piFC2aP zel_~-kK%E0HWhtb&kfxv5#eS~wIxYN!Z_Q1m$P?$&zgJD35&uAiwrkQqk|~L23WGk z))hIvUSa87DvHS{x6toxD{*yi#*q}klNP1D&@FTfE2N|te!A4nr=%`VT4vOiC)bh3 z(3Ni;RwrN3we0p$`Q+W0U7|Is0f<vmtxTJQz1Y2?_kW90)fgSfun~tt7T9geC8WYn zHlHbd$&taJ44)S@Po}U)HfOJpw4oxcrro)A=J&Xsv=AOUFOV>lrtFr-_$$wbpv@Fr zI7BmCrVdlC4p7&+rokN1h?vrd7|AwIABIZK3QJe-Pghr*nggkoJvbN0P{k#ERB#7f zv`kZC63DkMss3Jv+3wKn7oy)5Dii%nyNztsW$F{pG=uV3HsYPx<*doQMXZuQ|LWwJ z@=Ar0`rMeksiooMKuEA=njtWgi@lYLoeI~O998u7ubrvS9$!;7z2|V4I!w4aKweY! zC#)Qe20Ll7T$##SOtt#qQ5Z*2OD=t_dK_G*=4cn?0&FL_a{)FM5srH13tTP#p$r0c zQA;6R3V(C4^76N>m%;0sfykc3dYuxMe<Y(N#83LrqV#y5$~{Fw@M)!pXa~OV)rJV% zLkrVt3|p(i06#{ZMU}=BV)>MUom$hM+0t}uB%DUVXDzF#9;B%bC|2JQVj0Cvv?U$Z z*}3jsfAXeil|eg`n$`2-%kGMv(c{dJx+jr^gU{lh&PYO9oby5Q*kuK7vjPF3;X-RE zmstm=0n${7G*pQo^7K1F2qNA^bEt~_)mS8{v50_>_m6wdB-Gf!t!Yld=hbbSLQ!D8 zD3In$gvcJM1DU;7h7T`%993C7T2VM!k&zFb<M)$esDdT0sLW%KhC(zhOEs#^BKc|B zTy)mP8c<RRD6Ry=v$280>JAmZm8EO4wL)h-={HFy>5E_UC^`7WTqX?7H+a1jy4Tt4 z$Uzwm#i#_ucnYoSY3pFZm|<XZeAQ;7R(1mJlBIl>$9k4;U((6EDs=CbMRzJfa4P!z zsp^9~B13DJY-wKc5V`vcly?j}Pt&dWtdYi-?4P{O1e7!dikkvypvP*g&`#xY-nr0R zPMQDKMSg2Aq}W!~p+r`|LRR1~)AcEONrh>1H8%m`J&!6lZJ9Mm6Q$4)rGU0-Ks9dD z5X=^NjvlQ)?UD2R-H~9yuh}Nz=^JXdUt^^rvNM;oJ|bM^cwxy+W!t>iT7ZFd$iWNL zZmM`s0XzfYEBY}3y><qjc7|N-_8xv^*AaiyAjeo$l>>t1=bVyo)J#^L<=|GtDwD_j z3iK5Z&Ebuyu;H1Y;Tc6qZPVZ@R8RA0Rzxz36ibSFXxpT8Twp3ov=6hA5A*4^Em!qa z=p%2k2*u4M%)tzRSH~&(jr#U__;jZKbOzv{<Fr-z{r#vSaGQNL<D~XQTZ6Jg0jop7 zb<60bA2Oec_RpAdT>)!df#cG+ZioV90DYneVWKGA8lY`QhKoZifYEkij9^57V3YxG zv@CVF+_AM&*ztE?hK@U-oio0@A##;k_~Clkc42sbrhk71z^xNEyKv+)!_uionX7=6 ztHANe=%t?WS)UJ%PW^YqX}8B&?lDzvswH%%#bp1pbM66ESgNIX#{=B@4R3iU8L6LJ z3e3d};Fr!d2%X$8gUm1kVQU-3&htC9a{oO1$_&iPjN;M)Xu;s<E-t?)Jio{YyOLPY z!OgqBZ^qw4_xwYz9owcNKB6c*qR2>-N$x6V?Q)@w=>UAHo<2Q+0i#e)rh6CYZUR%i zG4tl=>BopoOiYwl*MO9aqj)oe&csoB@@?d8ATxHl^Lnny?Ro~Olc=Y*0V!ra*Z5<i z+I{vD$~5qr+x8LeQntEQ?24~WIYbMODl)S8Q{139q%*S3&lfv$A9%bqL2;>tvPNb0 z(K!;wuyMrhX@O>e`ue_aWYfmk;^%_T?<8F*me;8rOfH4?Qaz&Xn&QNghC^U@Vv*i& zri~J_z+r<#EmZbIv&<b-+C=c9fBBJI-91`GMV-OBuW#oGm-yiU!g7((RMjS>g~>mR z(c=(+9iy~M(0{IKFX283D{0yD(OqHg%KPW8Z1``O6uv;b%Zm6<4b>gvqyLB|rD9$H zN-u!ZZFjEXS(`*umQL19a?4Z@TYJFqZM6Yyeu)D<2F8p+dz|qE+{y6SO#j&o6KE0i zSs7$uubUcO>_~hUIeyjknb8$n=;zyEb>M7{??iX@&t{R8fFw4hB(~H1D6S^dN<xMG zYsd-6<mOS%?dkrYI!E~JU(BlTAW|SpZzd3L{ZH*BMW&&7UtLe;L?n6P-C|^QfzOlu zcBm%`j5M%cZWf@t>;M}8;0tV_k2-@-DK@HU7;Hp7s$%7)%+3H^&JoO3vo!~AVL2}~ zMD{J{vbS-ln>gfkJu%cdY*W<%B?Ne!-~(r20%w`<4Zp!UBuAzhH2DMywS$L^ZV3>O z_rgR=j9}U}@`5GAvuMP#Kp029I=HB8ZW*j@%fWfiYkIu9)4=U%AYN=0ACe9+;`dC* zmFA&w;qus`#s*vj27c{fL!{K=(r0Fs8+|ZO<gTCw{=A<m{b}`wI%<FUEI@lrxgoo% z;#Eqvk?oB_@x$3WB3R2_ZTnTy2eD(5OE{*$Yaq%m_)hTD)#MI8HVZR0%cQ$r)y&A5 z)I-b<8vp~D1;}okPvucAsbDRswEy+(W(<vy6jhQGJ*9wtJ0s$+`^;7QxiOM>X_Y=- z^-ENH7(wa1Jj$Fb%A6$19Kgo(qEEbpu$EfMb}_Fpv2V50@LyT5wCg?hFvDCw!yJ>g zSy(XWxz+|KU^YiHazjR#rM*u0G;B=OeDZVAWp&iw(APt-F-PQzh$d=0EW6a`re8V) zm>2-A@`x*8+Yr)mAl;7+Oj)es<h^G-qpT?a`4hVf+;gKfcxz@LUB{7^g_D;VA&=}k zz&oDC)Ymk`sJXCpq!+5OIX!;A8C=IT?(_F2F{5ilk^nC`t=4%t<RHcx3%xjBoNTEC z;+2R9`(4^x+}xZjOnSv&xd6DF0gaKatrgDsUv5|M>7w`$a>|Sz#y9i@Lv)ptbd`t^ zE57nVNv{{vtQUhWxdYKWT7d{Pv=ZngH0UKDf8M~d9RWvHL@MEub;cYG${Y=>91XZ_ z*JUQ7GE@9!^jwWlSU23zFH+o>drtfrR5LI}{SG$04mNn8>*j>qNKR!XPUX{l=QA2H z9#{PViOU9pu!FgvgE@fU0f`c~3lEnwPh(_z>x!f-znQ^V(YavqEfJbqi{#lHz{ToY zPqH`CDR1P&kR7w2Bg42je<=-rDQH^ko^NZq4C_*(J}jpTjaQSOCP19aU%U|s`^f-7 z6&<e}0k8Z%0%<-BX+8*P9$<I~fZ8Si=4M#uW=MTrqY&1kf|#=TdUF|eR7lawsHy2D z`LRC#dNm|iGw{_U=p*aV!0OSchtGZvH$!$2MsXI7j=X+sk1#_{5Jia>MTvxI<4ANs z9|yvZ19eT6H-^+;>Bgkug~D8ZJ_sWQj($~lNcBF#*{k9>wK-Vu=ZsdHP2)uA-$oUJ z@YC6c7Ow3HMT(?@@8f?sqqlLwx3@@LB8ehjNuXRxL`RY?dqA0^p90}efri$TMlfWs zWxqp8e-BFSCBcxTAT(lnt}1fuuq#QAmGATL;LWvAIhvcVz!)+Iv4x3QmylbRn28D8 zV+WEg&!R8SwoGMD43UlL46DM#XNSaP4+h^LS0A_xR(9@pjpn)1Hk3H$3EdxF#T@{{ z4uFP&lWW;H;EIw-6>gLD(>LEmGMzbeow=Hp{Jeh&4xJl~-|hxP9JN&<V@_Cn`aWBv z5tyeD;Po|Jx=cTh8Zbr?g_+nGzRYYW)Rv0rmyzq2IZw-H#zvsC*}${e7=}%+?fcC~ zPKqE80hu4i0&umPRo!XsIjvIAoowKpYz%+Ru4NWQ#-Czifx|8|HYKqF1vMoEH9u-v zzM+m|imRcBsYN42JhihagvoFP$#4M#ZLTdpsCpqaC4<32Yn6KZX$Osh;B3T7wXWd0 ze?J{>QD7g-LmtWp2XyS$q1RkeEr(cIKJ~VQ4gVRGvV0Z7CyR;<TeC4dS=fmEui3QP zvbshmutrCsMrS9W^K1cXqLV!hEyC!2YxN9rS05+=s3ZqeIy(d1Nf~}#PR0}GMQ65n z#{DERcSJFBj7IW)7O2q~?&a$5<pSWIoevt5V=tm(FSg{iOsp^#t`X#~5#XJ2w{$X; zO!jzW=%p09m?Mijqlh`9AVn}{8D!&8hW+CT`o{%uJ3}o-9mJI!<N~mtDFdYALTtlA zY@w%}jytKj_bpn^WeV>phG)6@XStZNtK6Qv+U#~u3ARrOa2*#H%g?usVZL^T;CEWm zMj6l4mw96pJ`m(T5a15DyMJ`s=jz|*68L_NcqTP!o>iUy^Y<sRqeb+i#S`pXZ!7Dy z-930{f0R%D6UzR7w*qbYp$L1S2ytN_nh7*1IhW8mmuhl*dMGJ(ZwR(;GGKW-dnJCo zVAsK$`hFXVlRe~;Jmh*Nzgc%iPDe96bd~LYB<Ow2=-l>sRYLFeLFw_C=>9yuNH)HR zKE8N@vu}&OZwtR~3qrhpy%!FZT(2fyuLdKXyT=~Hg<Wz5U2=K%Jis>S;Im^SE}kTf ztfY1J#)Zpvgh*|pI99V-Q20~<p>n+2JC~>VsMOt1)ZCOlW3O#~bZ+1ZYT#ljw7)0| zbkmb?)9cG0TL)-vSr_J;S&Pc*_KEj8IAiN6lq0K+JH*}Egx%VJdcAIM#=@Mqf}FTe z$PDi_;X{_RC6=`NdYjJ9$WWatLYyirOIoxxWB<^SKZhW~YjeS9a|wK^c*<~fYwPFa zVk!oDxW=5tFXe{};Mx!WrbM4ZN1v<tmAjI8y{G4d?j2LAB2lVRk2P0PA|w+~LLN{8 zrthg&^N#URk?>K$ia7teluh|Ci~can3H4^Na-A@J_$)ZpjafN+613o1A?6o{x}kU? zP;mKtGRadvU2-z^-HYq-uHG+H=MtWDw~yB+Q!p)RL)W{MlxhC}ZIttE!E?-p>D5s; z%8MsP!~k<%r^_<)+2NT3$F|^yOtbe>eUrlq%l|T%9dIE|BvLsOR`qkYt?j<=0zZFV zKU#ybecP1teU$y`UpT&6B5g9rjm<y${`RTC+Ed81iKm&p*&RdMQS<U-mtT*aOniPs zli7jr5~I=H;~n(LxtMnvy{Rm@MM)*RCNEZZbvqVh+0}N9MUCw4j!8WM6PN&rRL`lE z*t90aBSUul0Nf&G>qZjn_c4*>y6##eR=gVB=+vhbnK1}q=WvPZop)9zso%48Hu9{+ z&5yzr{SC*V`yVXomy6uDj310<a0bnBobH>SLvbo2iEnG#+BgUGsp_iA5Tvkyvbi#4 zCSsSnfYo=v<YV=fwf$gN_v36YD_KkWA4+pU;JBjp>OD*MYffgxF<q7v-i~MXeO*Jq z|Dv^seK_#iqpH;7mT&$I-#AUxQr<Pwn0?&-59OJ|4`fX%EATWlk$L&Z<n>_0=*62Z z`RIrTmNcTez8@*2zOmh$m(RhK5B-1fofA3#AHFk<MCT(mO2N6Ya90isSvo4ZcT&6z zKBiQ0A5}f+tYYkqOPcgSx`}V1Bp%ocUup+<XNf8F^Xl;CWDm#<uD@kTB&CRCuY#|) zjXe{JlY?o$c5&>QEEHc-NELvv4$b%xs7%uGfRh@Ul_OOm$D`0@7mA`uz9;l9w65}= zyRIN-?z@Z;S@szcw!9#&TFs%KiQ2*8E}JRHvHUB6^ed>liSGvYw&Z0LF4l+V<Zk{B z8~7{EW=C(0tHJaiwz?S@_6HsD&j&^<h&YX<dl6(0%hK)D_(`AJ<MCeHtmh|s+b<~q zys*!va2WMpafFtT^A8Of$-o}H1WU6%Q!;D}Lqz{ix`t4pVd=lXR{6H=Aq8}GCNsgR z%1(5eyQHOq?<ym1oL%UnU$TRbUi7}d<<Sx^jB1n#R;a&$!gmE_E$%Suc%s@%3y>`r zM{aWIIO&d%szM<}*biZZgv(%FpP`U%RSzxCXa5qb-f>1l@eT5q_=!R^yRIyz^D6+- z;?Ge72b$hz3_|zGAWtTH3GfM8*<7RWYSEl`@XR7VX9^}?N5s8GcNi)vKzdp(i3QM} z8<T$!h!^|*maiBrv>L~<y<!7vP?4m6RzbXjyS6=<os-?!_Dae3ll`4?d7tzdGICw) zvBib%$5-=wGD{Z{vI4>XS-bF2!%KhpMH(~74F%dTW<waWrf=_he)I1hWD%fIF64M* zYucm!Cc0~qF3DA=M6dQa{xd-t(lG?J)O~}(ew=sFwo&2sZW{6gz>1F@Ipywcc7v~A z8#P;!3Ax67rOP;zP^%!V#?11I_5EHlL1!~?tOdPvzMNzF53k7Q^h-HqA}Llk-MMWw z&?N0vO3oxEmoiAilh5PoYTCq@h-qelg4pmo=_s?TK!->Vq6fpT4dCl@hKL?BjvlJC zMiq?hP8p|fN%CbkxlTaiji&r$dExt{8@2Adiqxw>B?RqEzGgpL{>)w9`TRh>#v+?x zU+>Fxo)JPyyGCPs#nReha*``~JwY!A?;rCL3Xl#;yXLMR!d{?<{}EVk@1%#6y&p-F z=3hCc<0dAQZF8AhrdDg`DYfW74ghM!m@iVaTTpMCJ;Mq}%ib|9EvsdA>C2}DV+}}S z#g#sTN$WzY%o*f?LC=u(K&=fO;K?*q{A8!&2_hRgCEgpLYs1}eF<s+G7HTig{`sYO z)*FC>%TYzQXOpvzz!+Ipv!tbSBH*JlqGgGQdWBVQYYSNZ5^V=^j(hc>`=O^Rr6|>3 zMPP0s#BOFV@@$a-$WJ`{k54Sjml%P%9wi@blsrf-Ia!^$8;QC~oQz!05F#=8jp<9V zyr~X(jT?HZCz<EUpL3J<dq1RsFEY|xy;YcI8&<}!!S)d7zGX88VoNPl$7Z$*In*9@ zvvN#_T-pDNuD1Ycqiy^43q=dXf;#~M!JR@W8X!Q>;#yLm1TB<OoE8t1;_eWN6?ZT0 z6e%rEaVhT3KlgJ#@B97doB3uoGdr`Jo!N7*olLIlIFDbldy!Oc{}ixlz|Nb6#*#)z zkL92SuhAzzLjT&YqCX%ZjtBOc5mLP1bmM4TiIu_?ZG_!#nUF>~%V4$R8&mRudSR&j z+CChABA(^W`6EV0m36VP4F&JJ_#*(tt*9QjIy~Mtt7Ac+RtlRWfakqiv*k=DkK)7T zd3)xAvP0^!qyNR<t=+T90<l5vI=`Vdv0@1m+;Mz8hw3MF3MqllqhG3LZo^%kO@&me zb}2l?^i<nUagt8?@cwH={<dyPTU_Vq)X@|7uMzBjbt~H@1Kzg_n|*^81e|J}Z3!Wn zQ*(1qaO_5%iA730+KS#k5~R?}c<3X~c>cG&Z!#j~&0f8)#NYP!^}hudyzc6E5DPbX z_uf?HGCS=_1XJzz&4#?|aHp^5bBj*5+P4gCmnLTiZ(c&~v@!0Lv7edT%W!?qSi$1& zyVWduRFB`gdII&~UbGsy;H;D(q}=wA@-@-#X-yfyT@`7p`n`1iS6i3)XUIvtPF6QB z&Qg39X?-ep{A;RD5!gH*po*z-l1zk~C(8xJ%fqdfZe-T1ttDhG&WhnG)j9T~(_FD9 zJ)i;IVvWGFb$KK$50GDZzoT`_EY?){_x9~(R6C?=IB>R%*B#YIKvx@)LDBqY-rH*$ z&@-P)E@tyKQ_%r8SZ{zB9zg>aWq8mLBa!)x8cH_#)+X2by0+G-wzdV#;h}e=KEem_ za*bH%+A@;)1Hd0G4Y>fACYSxT3U1K?I(go1ydP@t=NP)1GMMPJb#n1J$)nDt&lC+` zG$NF<Td5bCo~S*(;rCy%<T<dYX|v|B2ui3|KDA%oY`xII!KpX(=_1s-({Gl*!>MO9 z;d#}#vy>#LPKhyBVzoT`#=s1hY`!;@L)(Pwtlhd))R`W<#lRmjlwg}=W={TIFr6oM z3(fR5y(K7VeLryFp`X;L^O-6zeb&l*Y3e<h^4>1j_ESl{ftQxK=eLxsx(%acK16xh z{tcsiFU|p`)B%?U0Nna#^VfgWOKN^gCN`#@EL#aZm-(n@ulXi?O11GX_Kj+K8)NQb zazRdQQMUE6QLrFEbGk>|X`i=Y^u6BqoC3*aa`AqMY-l{_Wc|~`O<o}-mUk9M<zH)Y z@b5)w#|@3&x-a?Tz2Qk?I1@tOUH?%2@KWXDeOS}~Db{ZHn0(l#q^`Xyj>P?G>GT*h z%QcX_wsYth=P$xnQ+_(3@-{Ad`EYN<!|jHqf5c7D&mO=XZdiDEsqLAdcbhEUO=?G- zU01g>;qtDh9YfW&9`JUx?Q*0*#K>F<ca}bsvveH{Nn2H==_4{Kqpl~cC+(@qKNM>< z-8sF&FC#&Gq{vM*(Brsl?`ZW8le9pF+;`}O30Ztuldr!yFq)ln29FeL%e3FSX?ayl z1)J2&a1%dzHKVF#-`Mkggjk|}`nPxg-QT#z+IDyvpQ+(JMMFnc)rT2}cSqm+bN*%= z?e0o4{P>!-GV@`efXw2h_ru-Wm8_P&GPeacY)4wy;_Kh_;n?4TiDy;~)fUq{*$*oJ z%C=ItfDT5a;x2BvB^BsM+)GgxkAAyLQN_&&Fr*ip49L|9J>Dgl4vt;C9&5`UTX&2l zI!?`z&vAHpxb=@$WJv~{xjL22`#Zu!mPVu8;o{sz%*0c6<?d<ozH1<`X-ZT|(Y?9L zlFA%sk`ykGCj8v*dBzC9#mRwK%A@@B&x=L#_<~RYfxniKxD=kdCvDZZj12}}e;6kp z*DEH;ChMn%%6aO$EH`~~W0?r|{*&aLZ?S)LTUA!|t?Sz|=s5i5PvuR1-~Nev8JS`i z-<q_?mEZRIjTHZnaruVNH-B1g@=x{;gk|c8o$4)`7W}el`_@aoIaWLj;HJd2s>uHm zKkZmLSM#5H^L41sq;>D9wk5(<QRwCCYX05X8o@<o|2Ryflz`XiPS0dV301jfJ^{Ip zWBX~XZ)SPI)@B^;B5wOE|DBzGR(+Q5+w8lEPv<Gmjel`^Wl^408pjT@ryW-4*yBi7 zSzPzuOGjBob)+yPjqYC7yWDsZ^6fOZY4^!F%S24(_Ar3|c!aq)gQQp_aWvgcy{cX> zilJYVMW8Ds&fC5}(_hs3+=u5hoj6`CILtn@SP)$bKC4-s$YD64PlX(J3f~}!+IAXF z_4=eN*hv@oeebASrd+m5zg(a{9VQG(i#y4ir5>w>&uf}!%|n}drExgiO(iQ|X989c zaEnGz3Z*)#jEPnBV+BS_hGoL`J)P9N_8zTob|>+nSTH8TWAd~*(&uBKec7~n3afs; z&l$ROM~@v>h-)qyX>=VS_%%rOF`H&}rAn0%M>u1%S^IMJv>x3RrXwa{%?wdu>Fe!R z^;#2|%HD-x-vh)*31%IXhrjuEDjRi^rYse5A0%{@&-M%10*13kq$(GbY1{2s3$xWx z0q4@hE_!rDn2w!KY8r`}_@}82G@4X5v$Q4sE0c~4ABQp60zPDqy!$y<icv&dXz9l_ zs>wVSrCUhbPyoCLnkn*%i?N%|44+%Yyf_q}_<i!PHnp2Ir=+yv1<WbRuD%ZXDmGWo zjx#g7XEgu~Nqp;R6pL|WA75FlWnwGBIV$3m=KCB~&o`<YVQ-<K^K|!RjIXI}7K0)2 zsVhZPDE`{=(|3*sUU4ajT4@G)f&02Y89?r#1yA=ZgcX@*0(2@))PgzQl;ikH2p9FP z6=h4oxHO}fl=t3JML?Jop-k)W>!5K#*>7RHOp1q0J*Wo(t0X0XCY<pSPA~6;9^i>G z>8WyKp-ek3oQ~`xIm<`#IE?rdh927nY^}Ou)k$L}d(E5RGtwV6Zmn2^I(%>~=J!7P z0u=JW<l4cy%-^EX2CniTfDT_~^o60<k`)&g4j707<`c5zmf;e!-U8s$qD+5gZ!n1; ze<a8F6d!?CGc-aS;7=aougiS;W6)-|%zI?^>+)i)+v|`mX2o6Ro*>*a<GT&x2CkP1 zZTiCo`x1L%LS+(o?cDOgTTF_(Og%vlP^*h(cHOX3?e0@;zQP|wgjkZ`l`~FIMW}e{ zNKP5Kt1tN{-}s2#)lwqI2HHF`aL{9L?qe{Bk@H@Ci5AERC1rvNV#uL~-fle!5h{!b zmF&SBvOB?yZ7CaWD{EK&j5%0}Sy7g`hYiy@LchvvhSD$L;5AOstvp7DY<RzHI1*<C zf#BVH&-^Gc-2T;B__xt{z5U0k1<}`ecsF^b^H~hT-lwftSK54oKQ?GsI$&in6=mBy z-_Qim%uYX{4%Sm0n4OkP_L8x-VDg3h&uHMUXn1D`R%(bL{gx-b0?L#gC^M74NU#hE z--4j^r%*2PCf!alFjbQ6D%bwrDFj<ZAzVu#e1LX#^gN77+zXcb6inr0iyKAP%1jy< zPe4;M1W3>*{SBRRVEdfM4K|9aufBTL+Cs}V>DER{v)@So)l>MOvc|M7{~!>x-paoo zGoOdIke9s6SXwV(mT+xlb;=oV$_dJU^PI+he|nVmId)aKpTSYsfp+(SHs8mndK|@H z+5WC=@)J?OpHc8CKab8g8*Hhq5e^(qmD5}6cz^QFRS&hp4z;@vwP9hz?|2sUy7fgK z8ffHX!l5$Z$m{XFC82c~3lEf(7uxt%?o<5mZ~5ntg$nt$XyEr~SJDtn@R8VD2c((~ z!L2w|dUjS!>n-@sk|tJdRThO0?!*UEY1-n};Vy8p1d+$FpeT}F9eUb)7%eX&{zk7n z)SH^3%-be$Dj>0?i)2G3bLOn-4@*gu&**xy2&ga4l7ADZp$nE}QG~Fp%Rj+>$sI*E zD1|pMklCv!_OLV4mF3{&eSUZhXgV?ay1B_=Ub;J`0{DiGe^>m<Wp7io<HjVS`1lzS zgc=N|27|i$mDMfgA}WB2HNc*33Kfy)*;gnsF#4H+lC~PAY%mjdOX}pSn9rF_)I$Ff z{Pkn|;uNEd!h@ocA;5eSLeu^B+-~E#IR`HaJ5TEOYXC4NIT(~vxMU}s_VDwwB+j6O zS%vLNqfep!k4NfK_GVHgVwo+G^~<kq_eFf<6l{V(;9L+GBsQR+?%WlsjpGtS4*1Nb zC2My<;*1J&MkRk_U3@||6uzIusWccYXeX_qWEBIniE)*S5bGQG{K%oPJx=xWXiBou zAhsx37MGRUwtZ3ZRt&x=DtQgKA+ac>;>yo{Apbct@hzHlVx8@vR}@!iVOhr{@+7wQ z3>Nn0U{Z7Q!eZBfagDpHsX4^iITn<(O%g@b25v^0hxIFPk$Cmr5aEI$;R5I}9cp_< zRM0`I2%!YSDZx}Vw(krVObZNxnSqLIz#a&xBgboA!{KrT&IONWr_BI4(-@$63>-7U z!|vxGz)@x8?UqSg*e+1<5Z&WKCF;x<t%|}^LnWI67pKK~CbjXnbs*e2e5Nt=LRVG@ zlA^rm4=6kjRB|^f`?SICVH=h<G~5sxj;|2QNyFTSSEL+Xp&UN&Vg--iQ6uUUsD29E zLtl0&i?I@tS^-H#vg>@C3n^K%i$US`AVx?AZ@%P;<@fyZW6}6B1r?rv2v2zD(;!eZ zh+G;3Xe3O0%j&}5J18x)bHjoDpi2aelBfr<j<D0~kx={FHyKT7ebr+<gaQts?>;H( zM4o5~ESZ$c*feUG{VY<G6s(TGmb_{vh^$~$uVCE^VDNmx?@r|#U!xhj|1PkE)EtFx zjxsyUUDCyFR;r2tRmHf+M2e-E<2=ioZ4I+;6YY!=>4<V;zKlUj7t4aACivE3E?#-P z;k3u1M_|$;`2N^(A8?!9;ys(ddN#rLeVm9<Tv8ZFfuJg~4J|OCtyD;@P>>{Xw-wcD zDB1EpBUkeHnIB_<LYkmb=5w7&TCwpoX@9dsLIIIbVFYAupaHJiI@Bf#3>9Gs6#+=F zku8?*o3KKm04TIsR(^yIpA8EE#6o~r!o<@@rhM(!@DM9_2rA`%6NVeRI`pYXC;$m< zhC<rwo17ynfa(>%ksyk_eDskNC?EwYJOCN_?Q3sEihz@Dw^oITpts5}kvPS8USq%L zADp)#vlLfXl$f7IFg}X_UUk2mN;T2_U2<*0x(Ed<LYohj=!oB5RKj8cP{;t(W9?`( z_<##Kk8!Vz64S(2IT|!RyLj8+m$~I18^*(?&VvqOWjQM;{&~oO?6{>CN)QoD5Q!^d z8yD?<BF6#KVjl_OatTWE5<+nzayhqKb>c<Pn|8cNT<%W<SjoNS0iU2VR-_|V1dv#h zflVgk<dzPRp5QzFr_k5(^5{Yr+a_`FKv^dstP^~+qzWy6mwjRgHwMnuCYe*%3<g9N zJpIvmTdeBzta~fej#%?faTWaU{lY{if<z}wzm4k){hD8lz4wVRFv*H)C5sS&M~GNP z)DW2byv2l&$AHLVY;waq6q+^ge|+@_t0u4lAm9K5Ra(CZjbwA7Lg%~4PJvF*iAa(0 zNRc=vD`UYp-?r6N0th`qo*n^Ofqu1_X6&b>QA(v&N*xebDFQ|kL>r-yMkur4+>H^k zW2DFtvL-^a2EqP8qVatMn%%s0MWk~5sWTfmu8n}Ps>4`EtZ2_n1iRQWh=o~;+v)%k zH%XLrq(wel|2`ApBPA(peS>w^f<_*H?$PFw>-rOy@n3dD#kaQjV3kx(m03lV*}@$` zRyDA{zNEkYK%Yp;wKT8WX1DGH-`CjsC%FZB;J-&LV+(*Bm1aD3x`e6uTI=IYQTn#l z%8vR=qZ|{CCvooD$t^wY>qZpC<eG@9kKy&j=Kh!aIeo$k9Ga#aBWsdJ*U=k4ct*2k zs`#t>6cm1F40DWFNgv%5I(gVyM{U>E*4_s9DRf4Etk6nD2JckwKROBhIlweAb+}sH zGnX{e9Vf#Pq<{!eK!E7O3p#h+4L(M$cU4tF#LfNnQ_2h?>Sus)GQ3!-2uxK3mDXU| z&kUJTr~8_+zDcH`wnvOV2)YO{wGg0>;Zbx;6=lVIxb~V6e(Ogy0{zU)2{xETUZu${ z-&15t%^T|&tsnG-)X^PJc{3v-zCvg*w+9<F&_@;Eqbj`oQYtuzdr#^nDpPZEpmX(} zR8TKfKra<pH28C!`DFLxZ@El6M_$3esiW8S(V+kii(7(CZi&aNhg8dvZEXMZ7`tu@ zL?@cyxwo5Km)CpWxDfYzG|N<yNrUQlwdc-jcEM|A-9($*s%KB;;j9ZCzWK#{)t%Hq zoW`jt<16bd6m*;Jqzf+>^KM;Ogwy~+YQix_x2DBUi3um3{bn>cdw#Vl|0)smD$xeB z8s2(W`{t-Z7eQeGIvEDq2(E5zzr7c`auV`B85`AzDhOr4@2C_3eCg3vv8CbAUlvd4 zWQ-!tBkQz9fRwoRU70K@xtlK!>sJnYS1m2c<#l;SP<Afl(Nf>gHs6<AQ5?ZXxEOUJ zfC`Ggd&2AC98(>KU1eoFr-vS<)E`JR)P!A(>3OAciJEI#R*0<Z5O6yL-^-FI>&s97 zuB%&wHjK&|CV~tTH#(~fkCVz7%w<`0)Brka?_!LBqId7KqRaD<<@qT-yo(9Q(^32@ z<J3#z*`D8ILtKfZ3o^@fH3aojx2@D<wIZaoH4%liLq0TY2m}y;pi+roF?V{RG;nk4 zN~9w!%{b;fv1NX~&be8$G_+z=#JFXJEX_A_D2;?{I(leLq$xri5%P`*K0AAE8Zdc( zb+pshh~Yf8Jj``xrtTkg+D8vc|5@sfej|mJT<#3aT>QxMN0!nw!GNylP-}bK65=~% zmWCRFj`bI7Ury&PI4n%dCEN41vZ46ThyD03*thWU|K>loYz>lU8CC-ft2MteU(9oU znQ+VzO_MTTLH_b~X4NN^X+5sJiFL^DnN+w?^=ig`WDCD~3;)QPZ%0S8e@iWW$g6S6 zl}?f6P7weVNW1cLZJYn`<<*~m7`~FMHREgrka4ojMCUVO=qe3X00J{$yA`uT1ifK& zhyd`u*4rt!9UaL$l-!QzJqFz;*&MgmRV%NAesPL_Yd#x%GTWh`EUtRVyVvQwClsdm zJrVRh(H*1iHgNhXgxUS&lPYIhdy+wGyg_SIExx00fR{|*XFi3`d|g&<N8jXM6xQmm zcpYzV&MTpfK9ki+GPl4Q01nbLB+Rr|aqak5uSRUsP_-hCYdT6UAc-X)$%V9qR-6sz z$T;NCI0X57C32VHs9_{)u-%kbqm5c3@15m^bYK{-LKtrs#Nnu>u3X2>KIj_;nPxuU z;1c`Qg^`>iNt`uaoON<CPlqlhRkR`W&y}Hch40TCP08Kr&LL*mArjf4hDXNtzxd~B z8KMUwG{R#tofkXTaqq7}5v)lMZk%RW(0L)qybx@K(%*OXugOwmf!uB)%Wk5JWxbf$ za7|MHO84T|J4T1U2$EH6yjAODYW|d1`?McaD<cJR6-g`=NtOYv9$t7KfH)WyA&)F< z%0Kc4e&kp9$iIr|<0voaW*lI*I)A8uztu5;!$3}bs8D4gh9a2*p4JB83G+dc>jTbf zb87T_eC?v~Y{Kwtk|7m)gvB0Sc?aykWEav7cY)UN3$pE@2B-yLPWN+%Kze=!dVWCI z>iZ$0o36L%`?gV$Pyq#~Ko=xH)XUc@`oucy#5y^he*@tq_U&B}h3x-SJJrH6Y+fj6 zUWjjvQlU^Ll3!^+@$`Cq`_F;q=)LRp>Gr##^sOzta%)o$UX0#fy$dtNTsj$`uKEaI z!<S>j&7<ulD8W&u{0F5&UI1R(dy~S%xv>9=xOepPr?suT#VX$^xFxZ;CAs7@KNIFm z`O-_JGd@;8YBwaHZE{OcAL!X=J?Al#MeNx&b9KvR%(xPff`NlD4Y4&1QCVF9r(}J7 z7SHpc_!mVfCzqK7-o6mlz7XHr-(O|5-aVExRepB_l<Q1l=|m5nw$%E&ur;BeH6a+A zLHYZZn`Z9+9WA0>AFQKM)?p}XQ#Ley=jMjO8WH-GZFC$>+h`QhVAR_)a!gcIAMv$^ zl7N9#u$C~c2z#5QL&28Kjs|E)L#3_8$$~Rx5Hai$udOfHrfMUOPN86_!`gZX`)-X% z+JJtKKMaw47;0!R$z(N&ICGkjiq#y=Gmf&O2^`~97~|~<a&pYe`gsX-9U^fZYKS&@ zo=mw_8<vg!at-5rTzK%8aBAb;p0Sl()qTYoQ=baxL_ec9)onn;jL*pQy#%d>G@%S{ zt|e`Ll1hB={rE2M;T$fdf*Q=}V*Q%vB3NrUh;L6uC|^k^SNWMByfzR&Tsne8zc;vI z#cMhBLqa(6OT?jWZ*W0u1X{?kCf+yk?9r8O$fa&?Pr>Y!CGAQv;c_t{z@TRiGVwzG z)1v<SVKEp$qO^y(b&#ZWP+(hc#0fy6WsRq0ZThiz<0(ciiZBQDnSi~AWRQ=e=+#yU z9trvg=hXzi5Usq^6Ot<{yeq5Z{(^=DyE2K-a%FKWWpS3S8Fg`$?(f^6YV@8{7|s-5 zK<E<Agw0tc&ws5@#ZZ8Kqx6#Rl%N5Pg1;HdYLb)$OUFIZ2*H0#Rw&x6;ry}$rK9p* zJ~xgfH_nnQ152{?Djrl1*2DPJZI=_l?iFV_k%na_*Ip)C`w@@j7r}xMMg}2Zt0u#I zVhqCw7GenN?Sb1#yUAw8vSh}(9L2i>B$==JNv`@E`jwBzSh8aO#wbuq5|-t6JnsBL z*ztuB;QkXW=f3_D22=<Gc0tI||B*)MzhT*~SVs{h;3@Vha?W<d%71|Juyk4DSK^3< zroV}+-K8YIyDsr%l|+V1I4oTtSglC-tnm1(lHcYuaI}xdjgnen)4;K5K-^F*B|3rM zw9B#~e`G`Oap60!9CM?FxAyUlUnfU1We#72i~gCcm|&jkBbn<Hn2{dIlxI%tBT4LQ zsE`_&dx6@e&fTS^vJPd@HRpV<>4k%Y(JR2{SK%xDc}Ulr=M5U0LzLVsn(Wb0ufw8V zH~6IQFYqp)EU|MP33D6?sT`|=gY5g_&K`&9pJR375R!_AkcfvM8)lRUifCjjB3UXT zT|POcia&-{2|}s_KS9M5o0@b*+*G=&1wVO+)f;_M5pw+gg!#6Y<hHlrk9b<{u*N(6 zN0nkB6=EUC+8L$J=5HT+ijbv`yhJgVs6m%DbiCdAk9_Gm?1#;lMRArzL;i^NVwcYt z34Cm!QD~t7go#&I^_RR}4e7+dnxe*>q6QUyU9uDZtuw;>s+Z(duK<Sd+<-@fU}0vU zf!0TQ8U=cquC;!L0_0C-X7*kZ_TC0g!4WzvtWIjo&SY6x>hg+5l>#9Z0=>b(_;BJ> zd_ofP*LdWwle3fkh8)I)Ar8c2)})-h4YGo8nu9uA>1B)wYr=8s&k=mAzy3M6L<;Z4 zk{|953XdTK0BAt&F_!KW%-zr+BoYtM945es)N{j_gMB1nB?W<iuwk~&?hn<)!M~W5 zX4POdNz;nnG58)4;KIz0nzkgYOdyanY<R89Atz*vs5{IRiN8+Pti|`d;;|Wdv6_6a zgy<=f0FJ8Zh9Hn;@rlef*)a{wO6F>?mc;2E`x&=%YucK}eVogJD*aMo^YWd|Pd_Qc zNLXXpL2PQnkSd3~P_!`T13PG6b$6vq#2G(2jts!T?(U-VjI;wMxk5x*mP{4K7C)^h zA43<Ciw{?*#BkMtub{g5GzOi9GT}jAyRp=fDP!a+E*h=)`P0<d{;VL?VXIsbLmvR^ zAsgtA$}VQ+?sw|!dSIstec0O-3QFcpHqa<~|6P^mnK*!qnT8!Cq`C{t+x0kOonr&l zsSI1E;psnYXw>L%f4q%LzT^;0@}J12ko}_q`yS^}{ymQR6Ney%=8EihK)V8FP<l6( z1oE+*hJNCeP=@ELht;RSn9%1)q&r!&Ek~MW-A!Z$U2hma65oQX`H&q><BX4+sF`c6 z7@PL^)Tvt%ner`e@05fN%k5nd7t*XScH=2#fFgPpqnob+&pYbSMl3C?9;crOiDV$d zg@?|=DHe%2#MM)<*S>UjGaysuV{Aq+j}_r75#6vhC`om+%#%tpSv(aON$fN>%S@x0 zEJy_gi+x5C2jL=@<j0Kd{`8T}d=8r}q8mbqG_xZ0j~E;F!ysi7WP!p#0jMRRktu~< zC^Zr(K-P@MiXLSZ*wSyp`q_|36*A!zwz(pfTC9EwB$At~xdAw0f(b!(2azEk=Rm?2 zGvFp4p)twPKo@3I|DaC!1;Ft;Ju{LGM5eL}jM=@seB=TYT!z4@G}v~RmsK?lDn(^4 zlrCeYgPCTIjxegAaCl7jCqp)!oG}YhPc|Y5<54a4R$-V3Su>Q?yzY<PkyylQT7k!5 ztVn!iGGQ0CyTrxZ*5aQe%*Je>8t5<tJ+rvF_chxC3(oy<Hzs+SwKC!bP+#5-mqd{a z5Y9#v1dMrt{^1f}b73Y#7BI;6Lt)V|)7UgeU+~e8idBr5CBc|BX(XG?1T>WppM;kT zV9aKdt9YvrutM7Jh|we_kL-rUL*qy>bmZW<0o{CD(38YRm5hRxFW^+aUVlh@v`jD9 zApxgK@0ug~tUR*&l%$^&5Y1|XDUm9I6}B3N-$&Z~mOhd?;1)k@@6qvd_{xWFKEJ*% zdyfL7;FzA>pJW-)H?K*W&g$MF;ckmNrbwE=>aH!(visfYnSa_euN}bs(H%LdB%CVe z_3wXnmnGq#vaTOQV*rvljJ0>&-J4-4K3_n4k6fR@SKfB>5h<UzKkA?r{3HseGJO5P z{SiK`AgKtPO0Mhir&CKKzPXR2vM41OG%`8jr|lRXvlc5TTWJ^5E=Uwp<kpqoBVXhp zT_r(#r9Ht%zer|!7iPRr^o)@fWHQW5<f-2;7aQDb*8tbgQjy6Xw3QJBEaF&LG!C3O zk1A;eEk)rV{k)k~c`W;GtY2YfuOi3#f={Vi>|#lJNdceHxA@H6&nis!OL8Ilx?KNU z*C^<Bn3+eU89O<%0V}9XX?Mjgr~+ps9l&hP3Tjar?zR_kcsk}x`ij*ZLoBr#M>-T6 zZ#@iukhD3QzPTP}>o49YDQ>_!ykPlWCD`Z4>7ME71X0-<C75mGbnvgkLM2X>*1(gQ zks2fc)|!2H_iuEuBFmi0R7tmK1;^1PGE?AOcEnZ*QacyI!CMQ%?<Z~kNH6~a_4QFB zy`YQ4imWLSx;?c5ubi~`kaqVjz`zAqB?^bzck|UL;RQycfj9c|>@BKTUl~SU@;Mwg zi|*O5ly8wB?&O#nQUHS0Jw{B5JDK-VoNl6@HYCorIyf3UDJQQSipRh}mD6<svzq#| z{vDp<`<J;pPk|&#gE<Ucmq>X88P~IjRi~vGM{fU7n^At=X4myR2Q3zbCr2%ofwlV# z-L7tUL*p)%67B-TlAOAsL9_2({~(%pCJ9;H!pe1dmOG%>HJTSF5Jl7>CCQiE=aiw0 zi^0Hv>E=fJ$ZfaNlRi(V4+VQyZ&yND&Rd7*KiDE^&s$yjAmS`YGBeI%rQ8?1YdimL z+M1im+ATQfW~<>XQ-@SvpxdPle2FG<>5YF|N~E;41>a=JKz-KThQ&!Y(2j8}5bX^3 z4_BC1^dGLUw;GKVa;;qalc(ZDziClza96VP{<+y%N_g$~|3s>I&y?r6Q&TLIrzxiH zMdkk3s5aWUo;PcM$Y^W3@)3DnFJ}_3IqjV259)Gow_ry!b}mN65xeL5&{%&F{XY^I ztN0eCERKs4rZ2sdE|QEI`~0J!ackYF3Ab4l&&U23D>T!tTU)dSS-Kvt1MfssD3erT z?}qfl<M=1nUW+kMMYz7GHzp2$SZ8vaS(=_oATZ>qRlD2ETR)97Uz?P;X&qgRYWEe< z3_%E8OHMeJ9@MYiG*J~@+M5ie+?}U6bWA+?;a0W5eAAaSMDu@fh1h>f@<oUm!JIII zqw#{2grd1bv;^jS%YKsIeB)tci&@w;-?F+s{o&oa_YC>fJXI;1Sh@KW5umGfnOprW zcn4GbBJ=PsrP&nfT~EYF7fKs)k*i$&SM%g(Zb;-rIdtZy*4-A9xO4Aj_15x-(ye7H zvh{W|NZr)nzXljtSEp@D`Rzlm7;=W#zKFu)%$Pgb_`Azr_rjEFXaC3j;ucgu@)k$C z=}t=$CNv~Cath@SMYu_)D>=t*0ZoYWY^6rLWn}(~6D~eBz9f8Wud9UpX^pDRKSW)- zk$v{f>YM3-_?u*bQ1Aai32)0EJ_xHlIP6*dt-3S^fp={O?_kL-;S?(6p_>O)q6h5U z4u*q!gVG1-Zvpb&(XuAdOia?(f45gVO8jp<yxt1dLsL$noa|mKt_qg7W5A51^a5?Z zS8VgTtDwMh>Q7+->q-MQ7t}BMcb7d*H@7-o&`GHm46xBgbyMQv2VzkZc2lu67Oc+b zN>%)^4x`)Z#Cd|%jZwG#Qf!u-&k2P`1{v!iIVJfZ;hg`NU^L|ICqCosP*lldA3xF9 zFZ`Em@_0BvyhZl2v=f9EIDt-zTpQ=H98P_VH!y*&g@Og|F)7|bthWd(R7S?@?69w+ zI#lMVc{)0%q^G1~a<Y2MFTVX|ZFiug!$N~eTH4og>0YrA*olu+-;xJ-6<(J2?+4}w z1Q4@9aw4=E#ODIY<pW5XsDm)xi~z6vCyuZ!pszY*P34yw@3*duq8o`8;{`%LafbeV zw~&def{iVsI@~4O-=!++4P~Psndgv0D>M{BK0c6T{$#F=&JO0Yv0P0fSR*F$8&hPm zavb6Nnzsh@I$wiv(qD?L5H(c<(v@NBS}bJbUKYTHcgqb`h^5h(FHv4#U{vUpqoG^$ z-KqbvO#7EA@%#~w3UR91jVG&J_wg|0Re~JT>8OZVm%Um?w(}`2vp52w{#hu|<dG*^ z8-;QU^EkHITe%R2?Y@q)=9;Y+GOCMnH~VN4jcIUu)(nHyxqZ_^Cfg)yiL%>)9ZN>+ zbZErv+oRZf-S!T1m+8+DUM@#F6?L)B>?qa$=?DvMpnCz;@U8bi?(z)mL89vwaV<;y z`fq9;)qaV|hqSEWE*_dedYY=E`~)(5pIw$OPn~5=_E@4@rhZahSUeUjHaFoBW$ttO zTT#|h)?U8$^z)yUY`gy2J~S^$sBfm4nnpIc#YVfnO|)wCx63CTgu5OUIJE30qVgqo zp7Dmw{I}L&K01>#Lo1h7x;{QEsbjP9SZRQbA<_PTv+3Bx|2?N=5#eNe?JVK-o9`5c z3UUcm2UPK&-UjIa%QOLQh||KrUgH@ZxOw7|ew>l%pP)1Kd>_j?b9tnl%3rj&Xq3!X z;Xs2IH)H;F;n?%WCJmWVoTaz4`*aQ;>{Pt-FQss8j59XIw!_HTa+v{~4H+M~m)%`T zl3Mr8Ox1+(1kciiexx8bd1n4DbX6Hp65O^pkjHJiQ2SDVw@I0Wp5SY50m;4WUpfdS zJy*LK44@77uj;Y%A10682}IDx_jSzm9i3LH)t<-hN0PvygbGxh6<50!F!O@>_cl9{ z_5$UxC5o|>+D42=brA|-4qxBMgwwIG)I}Et!)#eJV<P@KXfXZ!HrlFC5|}Xu7ZqsE zh@DH(Glz*DTYE|~j+51H<8=Cf4vVqm+yqG!kj}*CCg;Va2@=0yF}FnPH&nz~85{K> z<K>J7V^B>t4>+@XE;_2BEJ)Uhj3fmlFlT5~oxx<;<r?XCCrVIMjbXtk{-xN_p>0|6 z^SyoS9ojr5kyHF90-4_r0UztumIrovGHC3DXq$fvAXJp+6v7Xu0NaJ$C_=c&j9kiJ zDXwvm>5nVw%}WtuWfQtI5>HU#*KNUh!wbsZ_J!do0y&!=g^$Qszx9W}+%N!F&y|=! zI8`M0!COEUp#yugOn7I6&1IkN2xoI-1bgAn+C1TsBYQ46619a1c9LARtze<jp};TR zf^(^^6SNmWHh?TtX5ESw<7x9RfgfTjB49f}wG^BBcsvA~5-VW5Ux#D*3)#%)ARD(B znzVA3??B9A;48+ss$L-ib^DW7@9JLhx|z+1PP_3S_;3Okkth9~QnSRz{2OgXro;v7 zo5!xTTvk^bpYGP{CycP2k_)3hWk(AkqxYb;%AlDT(Gpt8ud?^7%S<V!%887T={n4} zG1F17Q`VOeA4AE*g4wuG1W#z7*PtJq(OfE8DpW6p8Z<nsS~BcCnNv;X=2y;%^L$7Z z_oAq%boRc>0Fowx^Bo|~Dqk0LB%Fi4I|9;TkzcKPHTC!7q*z@VUru+v3Ez9%{V1r` zN{6@c*Y)l7OUqL6>+?L$CGPd&h}zCvg<{G1O?R4@L`aPr2CqW5v9|;cL<3|gWEKyz zP~YPo12YGRAoI4-P$G;TSu5oN@d*kZgTZZ@qEjL@J%g;sSmTiWy6J56xl@<PL=ZR` zX&ip{yxsK^O-#}-6{+FY6@i!#6@g({p5aFvpZYu5$ZeR(Y-|)xWbf);e^)$ypq0jf zFoKo^QbdL`o!-+v$A!>?#syLYhWD^|Mr0cTWv9w0{uoePN;&re+6TI1gJofgvaoeb zxEJ@&-A~!_>0g2AU*Rhvo?O_^$#wfjb-PD(`P?^%DgcJlnhmh^PU~ypZQeJ5+*1kl znNMc}l*+5+f~7PRr8Ih0TxN;y6Tje6bV^ZlNa-;r7wB@bVUvWu6qHDBxtbaS=g6aR zXLtde?73%?h^tN^$?qb(-$ls{8f731O#;2hq?Z`)OuN&yXm!OnBd&zZ*7Em@M<<Iu zN{(D_l@ev>f3EZ>o{E;DhzlLKv!eSLiL1HxOrBn<h_<F6_Z+M992zX|Zyw`iTA0av z@58^TS=@V7BrC%=5mjGzPO(L(I<+N3ao^YTFax<Nt@`uf175xzVfGVD@-R#`iYI1n zikB`deqx$oydIb(3fl<vF?NH`OjK*iQVGGE+D~X+gfqY3BFR@qrzvV-9v8|&7?;99 z`S#GJa22YJ2C=&aMPuW;WR}~GczLTRpiPvkoVR;=?pKn=ys*YR(=mnvo?3XAuthzz z8;da*k5Q43kpi!imEy@ArOStSf)>C^?BDN1YeJcv)k1qb^)FkWY$aCqAbGhG1KH3* z$sXlK0qG9Duw#lBDXk;=XK88mxY+BbXzy6zhocQ`5o%MbC~pCh8wRV#;DE<qDhAF= z^<*h_bCwrSQfa8ml^oAe{yyMHHvCc+oizFnexv!H(`+XnoqwUZ*_x4({OBF$pjiKq zPB#Eoh%R4Qr?bd_yu9L48jc2zM!S9r3D_l84YW?+p47Q!{MG;SvVwv+(Z~f*ozO7J zHYG}ElR#pE3Nt|^{{a#QKTZZg=)iEaZ)F~u9XKtWW59tz>qR2hO7f++Iroi}#hkAF zEqoK2&$mkE>3LrGxV2xZ6mwj==dysQh``C2=M>CRa$d1OpIG>D92+j~2jie)jF4*V ztrcV?Dmj{+$?P%pV-zpAlNU_o42~w#vHvInQhWyLSra_cM;hv%o<NLrynA@SYdl~~ zUN9e`Xko$fJu2Kj`y%{wbb-S;W{BNyddmQrhB|+up##;>3DVHvbD!YT%pr+Gg~g#v zv)M+$KmSQ%uhR%D9nGU1jMC{h*1<B-;hUZ4ZGGh&(PiPngzaV%WTC@%A8Xh<!G)z@ z&b1~C#uNcl<qVj3G41Bd1LJ^fajt?Xsr3|4OPwG~9T*Yd9XVZ&1y_&|I9CV^N>p)N z`YQAa8iEH>Bm}Jo2<*Lb`YD;DTdJ09En3PLSo8?&mCxdA9pZCmr6>J!ivfN6=TD4u zphh}DMmn%jGUviHh$Yv*l>j+|H<+FU8GhcPLZ4<Doxkx0FCdOQCXO7CfigCe!{Z0R zx!732@~mJgIu)t%d_k$ISn`h8_=v=sz`n@Q&lO68J)*OUN$$blfr{P0b$Lpc=9&Xh zC*`sjU`328n#oW%ti}GIKc8Rn>ubr*WKYZCyi)gb;_0e4ZpS_E_tQ0Jnc8jtMwKW# zDv!$@eIp`Z;uB}z0wNPp$qj5NvrIByhz@n?=|8^O497Fpff(y}EAoP^c)<ba$LKil zp__$)sZ)jyncnJmt=m)>Gl;?)LYbO^4%A1BiAyuo<`X%Yoj!#+C04+~hpcrzM{Mq> zkY+C~vQGC|z2p7M>3yrNcgNJ~=X$RC-qD}?YVR>-7CC7aIn~uqYnf>i#}$ujzh?tH zi*N7GH@H&1c6`Rd%q1tyC8r|oF%Xr7MM`lh%5wIw%RBNni_k(Q;($NnTq`qE>$~w> zbRaG|e4pbEuFI@rH^hU+ACO@t=ClIM>NUR|mU)d!OWsWViu=1)KV~TP60NHFrBd0T zvHa%AwF6MNNY)l~Q0<Qr0e7N@Mgfv#@iwt(%WGhwr}lymgGD`@Q#~Asm}qLeeiMuZ zQp5xGSP3|?!x2KA8GEcBRY*Un2$I5hmRrA^la`^v%21{r`5WpOLNVlWG30UK-L&1- zwRvWidKr18j8r!mYs_Fw^h<<~z-5gXMII`K5Ad(3|FGGIUDtws>QUK&C?5>XPghA_ z0_UNm3(&?xrI8;`*GRyaq+k#dYHy=i0&f@P9|Toi^1cy|?{Ti-PUGkrH})4S>fIv5 zw?HM|0uy`B-&g3Uy4sc!5p`+rFXvR0n{$OSCGat!n82M(V5$e(NnYjp+N_}W5Oy$} z9Zbc8z$L)*1?NPQCk6j}{qtSC!gkZsIAWnDOL-13)pM05Db#Zs2p9|p7s(2+qvtHF zkl83qmiU$rLQq+qAXyzg95QE)cdbwVzPKF4X;caSt`e@IVOQm&!OEZlU{Dd>hN=n@ zy;Bz6zCtOT#(+-IxJZ=Y1l&|0l-&LKi``G^%Ov>>>!dy?d>>TGpS)*Ig2ir~H`0+< zZ0cBSdq8GKt-R)hzxR`uopt#S_XDe&f&XbyQB(Y)y_O8w@a)}#m@^z@caujBv#JlX z?!g%caF_CoT9v-UfWE}IyL@g5y|ow*9Xet|61^Ih36=Z7YUIOs*(_x>@DOb`uMp{t z5_EPR%Cbr$o#q(tki>fKzgb>@Ze#bkUUM!8T^WP1LR0_{m1btu$i5e}p3qbeXzGB% zPAa7^#c*R_yd(jH6(P@xprS2uX)xLlx!tm%)mBN>Qke}_wewqKo`(YFp~A~bEuJsc zq79e)Lp9>Y!XzewBqsQVV+{LbHRxENsm#z+d^xyu;>aGBSh7x35Pjr#R`u_!BUp@% zR{}oi&tfA*Vj^oI9BKmB!~GJY6=#Eap1?O4<a&A$Cs(B>8*c+6@0Rkd6NsKjTFHYD zR6;6Sd}!}=gopFcK}FvCvHQ!OzP$c>&*UYa&4ZfvN9N~eZxJU_eUD#bU<x9r!ip-7 zD$2Qv%2Sn;r`RNCp9OR7{dmJha)H9XKp8a@Xt8Q9`FbIOKVco^ibPPYmrS)w>3y#V zOxBSkd8x`p-iwd*X#$2v{-eR`ceCA^JYq#20iv>dUKFg{LrbcaN}}aej>j2^$El9T zxhF5XcUWl1+O7g<S82Xf|CR^e#CMteE*d!oQXd121dEA!!au(PslNh^U<)JX0#wsv z5hxKvt_XrEA4~#v@*_7RmQlCq(ymOX9`$+UQri=iXs#v`UaN4R+`zHd`9joLjbsvq zKZ#0723h(K9-msr-d|b0i&6z=>a*6V0P0kPE7f<2RO+{D!`%|?g8Aa6VY59p*9__W zETt-dQk7;~_2-7v=#k!!N`ZiE0Hy+x+ApkE6GPlqSd^L6=|LlF0xr)fmx>k!g-Go~ zrBg}NXM=5LJA&lPVLa?3R^UorM_-+(Yp)vp*}K6~USOgKOQHy%vb(PC3|uQGe&Ehd zs|`!lg3SiQuNe$YgTxR4V%x3qX(H%NE=`1Pw%e5X<SAq>*H@0$S2msWlOcz?A;(C! z<Nz6-(~F;Jp?x!U|B^sd^jyig7(#3$toit?`DWB$=cD{SbQt_Zcl^YsWF7P*@L#gW zs=_o{EiXBzYt~1+!h?PXraE)e3eH)l^RN4DZ01faX|7G;EJ$kSi^OrUw}hIS{Su(( zu(&<3X??~Z&HRg6MK=|yJFA#$=XcEFs0wgYZMJ<Wx1W@_-s%oto(^xt#w-@WC>8-| zO(76C7i*)4TBCtiUmmOIr$W&xovPSv`tL5x!>WK`)#g|Fiz{jjxI$$jf@L)kF13NR z5t&IOdb7cWvmzf`Df1#K&6>BQjt9)<xIMpFo{mE5Ctytp+PpT%Fkjvq=k?9S61o=I z4W<RDoH7x>d-lmP)6$tTu@{87gkH}7I)O}Rwr3UD5<zT<?ktt57R}I>2}sKXY$aj8 zj`}D01${X`e7jp#H4&tm=&oJWa+dmr#X;Sx@^DKF`8EIXcnzA@OJj>qbkC^~b3AzZ z+B@q*bH#=4&uw@cWzTJ+?7~p#3t){1ON|I!4!b~T2?a4r6fa40K7Mn4<8<jS!4sHs z$wxOvYPa&3x_o3^eq#+UzvJVe-2SPF?x_jBGJOHjZl|Ya0+#hP1kF<|mGVJ}prFJJ zV9hhE)LIqixX(ir3vY7;F>6IIYTW>`rLvyA{T&nC9TTQRiCY-8m<iY{e^dc~RNrA3 z2r-~ViAiQTMC&gSM0LtVw97@3ylSUJjt8QZwh};F35(pPs;sA~fKyd*{MOEAxye)Z z5)<4fYbPz6byCH$qY0qV1RK|~;-K-jEInSS)l(OLB6z-C!*%n;hia7SVOu<V@^6Bt zX4{xk8fz2#O#O!&_g&uv5M?Br&i1T5DRKNL`=rAx^}E?D_WqN+K#_2HND>H=<j&HR zDvrQgpTJt5fN>^Gqn580eVfm`(>^>)4|%q#V3h>2O0oeqU;AcN9q!PxT@Ts_l!0D+ zTjL$1dffEB(-%Rt&)rb=ZtjZ^losULDdN&85(fZHZdhmw8L=I!gtB0cchp1>)eUe} z@-<$@Ia$vP6fpEY31XNu-AzuayQ(qK-uf{f=sk}1WBO2`h0#+_SurtV5TG#F*R<)L zYzvP2WcQ;!pVCHMT~sV0Hx@ya@XgaX?2mx@AAu3<(4KFs)-3`t{EArq2uyzj=+eG< z^6inZaum#sztx~ANvSCb)Rg2t-s)~t99Y4pUct8)@E++kxu9J$sr7*%GMisLn|}|} z*HMaSPvrNaJnMxT;6kmr!2(XBRzmXGw1kx4D?Y(jGeZIAZQrq4+D{g#A1!9FZ|&w) zsUbcz@;)?tD-q)1ktF(0kJ|~4+6m(x*r%V}IA1@_Z6nNS`%G|F8`x;6#i<}KNQ^XL zz|nSmY0z|Kv(;KVx^nbIyEa*Ojzejdxnzi>WJtistmVk5N;E_6YZA-XBuk;zVxfeL zvVO+FMb?>%luZYcJZro>Yg6jdNMSY`REcN(SK<B{q3#(W*yu0!6JzR5y6!hLoo{F; zrMWLxm97(5t`qPf?PPuXI2eW@j|_XUzpvDNozt9lBJsAy^R`Z&=AK$y`KUo%OV@2m z(`iZr+OXp$RS0UuS=I~rqlaGfp6wWv{{hM7TE*16A_C@BXPvchSbR2pdXMtTGhn4m zw5+Ny^qNCk0(@6QyY*-~^=K%|xNh0x+m(hnSK&&Y<=s!sZZ_J?ZU}){ge+N~39i;! z@lBud+i{3}@;0SG$<XA=&`{lh>FqifYJZ%EPUj*lY#*h|rN*<Q##@e~c5&&jzdKI; z`C(6j20B{@8@BY?eSf9MH6^e#CAf^2`n~=p9C*mBaLBzHU=eIs;rW*`^lspHeqRXn zkx|H@QE%{%SzV`}%kgxjyh3)BYU;+F1@CFuTxftUDY9&QMOxH~XxK^wW9&)2w-PFm z1(k@vEMi}fVwD;qks50FV>BY;U}a7NH&2lr=DymXsWb?wFz5|#U2)FD-E_7&`P7PP zHu~m-dQsmWRxcD(F9d5zaN5SX=*KG&!YUEsGfXh-b<O{M<nO+2p(%Zr&XM+pbpAh- zS?wddA|b3IAwFnAy_kFK&%8JoUDP~Bpcc1+7W!t4_r5D-CjluFEUOBWS?yN|X-9b$ zIe#=)<r_s8X1-vQy57Hvu-4YQ*S0%KMiXHR_pBL%BpK)e=`LQ+{^ng+F4pe%FX)zt z!NE5O!7~U^Yp^?$uOdh!7Bhqe7ji2Ua(5}3A>(;gljk!t+B^h3j^a#-PlvJUg!n2F z>KP}-a9s34-s;(uH*f_ua49r!b#?2#FMj3oSD@~#-JZqT55^b5EJcI>mD&t!WB(1} ziRCn;?;8=ntUJV{a`k`n0sKtL9kSn?oXVBm96BDq67qXJg7m9M&XS?#w`pzLsT(!X zcRTXW%V=$KN%tQy=eBrXo;R0OWJp(9ec*+bP3)wYA5<4IX#Fs;5H~tZ4c7jD=qB9# z{-c{f|Ibz#!an;~H!&n7_afyhhlL+?)WlF6&-{Ovg&eFOJf1bSqgBAM0Q<Km{+&3* z5o|Zy<rcpFOE`~bo_Htmo(&8nMVwBu8JU7q&iPHi8f~z+s2Mj?p277wyBD1IN&Yp~ z{;!jC_+C|(@txI2B~FTa#b|EsUPyY&+@Ft2(R>})`U|bEZCm<s@Yfu*QohFs{6{vi zgIZ7Dj$h+YTjKf6ck3$HobpC>Hm4!$%cM%<p|cThzC=HjzhznY51A1jwS`pj1DPrg znKZv6p$B4gAe|+5WJ;~|e^-TukN%0I^JD%uk`7VQKWL@%V~Kfxv*SgIY;vrL@ftIx z;{R`1Nb;G?@J8s4@<W5CuymFpal5@DF-IKd!yYiLAj0Zinx-}=6Yo}QJNQ5ALjM~J z@a2DF0jAAX(lo~fuJ_khZ?3LmwjZ_CoT4nrl7$#RDObrhUZ|ul5i}E=C$8caQyQvW zCpx?c%SA`pXJocYjexxCZmo~I+Un+~LK-P34V1rwYUgv&Jqu6fCSBjrZag~ET>Upe zuV<s1cIcP&Q7cSm+Awi$(06g9)4gJzFhr%=Ofs(H(97-hkI5iP29w_}H?IZy^7Dfx z*Sav)hhZUlm?Iudg?<hCJr^?;Q2Wn(Iq<ELexoBX_YD1lMk0#jCP<3f@Tl(`K6LX1 zw{Wjtg8Q>RzT=;e%ptBdymnX_Ejr}sUDTw^uu*P2yFstciTaO91F72Z&5Xk1kl0=U zNigxr&dXJS>tg+b3q90{SG!7X)q{PdW|t|4>U+42q+mhIi<KHx>*CB!FD5IS5Oi2W z1<WJbn8v|S^KQp8w65}5$@CLGGu-LHOv#xO4U1~!jz8~b3Ze^A|D2wfkJkP=%cpIr z*3Y4Rza!N7Gsq;xIO4`txa+z0neMt|?P=>&eNU^rTvoBgKHq7j_k-2qpfn=s&Wh7% z6o+=~Ja#YVg-Aap3f&pZr(PoZh)eWUGlKYOS%Mk8Dj}tEnFm-V3B1etux83iwUa$M zG$Ng}*>^@9L046HceEluYN<$QU&QmA<WT3=&-l{qopOt(Uk!Kae}}Y)lDq_y{_s9g z^4V^90X#7N+ZvuSCQHa(CfBzzq4WJNF%dqc>Df(b6J<a7Cs=1n)lRhta~+Gf>ng%C zmj0X5&9U#&ALDe1FqK#N)59SrrT3KmL`P4h%)cjL3N?RsVt@7cX2-Zm>pe%~kDfrV zO#D&T?!_qGsKXC^nD(#|{|A@#-Lv@ybjTMcZrBhcTHGXhlo$rc<;elPNEBsxfNfO! z+(wD*u5?o!CSySGW!3j(4-%>e->jMr9ps#5g51;PA0iqh;!{@#hY{!$_{68|GZm?Q z5>go=Hx!cy&NPsg&{K(^aodp_%AqYEF*8(}opM3ZShgjIh<)YlTyN1Y%HR?C_Rm*h z@lIXCbu${WZfu*@_>;Zw=uFmYa(Yz?nLSi@Za3_1f4N0<-wc*30L23H%-;^{zir{D zTibDzOy*L1RfP@I!}Z}n8`j=Ooanz<#Yj_prjehNHf{c;X-F__$aAM+SIEG8ilI!V z6q9u81ogd7M_j@{xUtuay3RY#$+^tNd2zMPw99ds1kU|z2dmEkt3Km<rvSEhi*|&# zL1_I(mY|20-S>^1_TK2i!;7;{!sW;p?#6ja_GQxlA5q^O4p-2|8$uAhE)t@yzEKms ztj_8^tg>1N(R&wVt=>z7=xvqNTZpnsbh2tl^d3PFgxvkU?>_fF&;B#B=bZP<oSAoK z-tzmsiTupjWIzx-^1dHX6gJrU=Bv*H#@lsMTi;dBojXCd0so1Qwe1V*746TN%ApM& zflqf->-Zd-^}QbSB<G=of>5p%d0(G~+m?hn*ZDe6ynpBp{z@}}p-vn?j+cbwS}fuu zGJeEA2s5s`9Df&U^>2|gF|Sl8s8p=;9<|EgBW3$Sin{h6smbP5$r2jProP}Ql2qJJ z@l@q1`c>rnlGfLCb+6Z6Eid#5!~w}<ve!#<S|UEpS7I2O=JLMo+=YIT`WY;7C<h$4 zUfG(kyBw;=9W?tlqxZqL-k|>9v}^5s<-f(z!{nRf?ZB)0f8iMYR|zV-@)_vedp%sL z9z3PCf803NC3sN+|DJKOXnRysrKsQRF8N%R0@4ZM$7~K~hX#dh{uxwbBaf#<%_tfb z770edew_tuUYas_Q~Tt)D>L;VcDHBKdY-9wiF^A40J;3otKZjt?}l|k#Y3+D3#1oo z5*AneEwKDA&KD`~;47o~&cBXRQ_LT-HdHl;w|9*LTr%Y7M*bbFlXHY{JPUiPrFJfo zXWrT8l$sWO(aQ9*k)1$!RR0li7x%l(@$CBTkURePe~oT_Mp3L3qN=@%GtEo*n}=g| zZ?AN^c-wx__)ESo;OeTbupYUocTOWKwH>WXel5$CXMXbeWEO7#_~{>PK~%65IoKpt z^Fl^-*@s7dJyN1)1xNh}2%lSQQKdW6>t{8tTL2@;oI>#U7>JMJfK4lQcb@*}BfCIT zWO(oRw%MtcF}Y#W1oJ{EftambFQRKq@R0ZgRCLhKFNo^O$(oLl5N+=F11-3_uz0y^ zUvn({DAnurLqit4IWBU&!Rn|=BkM}A{`1ZGJ*9l>!8$_<1PHzDF-Dj7y!40h)1%p= z#>2--4lkdpR-3JUJ6iT;ui7WoRhqWWr!6)Or*^Cj5Ou=cIq8l0?8V{w(_iA{8+*0u zzCm?EEsH5Ihc8oqc?qvEuL^C7rlV@O{zI?sPt!FX=FHXV_T;+JpHpRC23X>H)jXEQ z?=hJOEEKMyXnD8-7Z6C>n8y`$`_Z0zC*_j5Y9|}o(jGf7gTs8kI=050V!bMUJHyPN zCX)Qn?!>QV^J-cT47a#*9puaQSGNfA@;dc;8e+sel))at?MnX3EoJsZqS04rrFRjE z8Gaiv9?0Hv=eT=KkOCF3mwWDR<+-F-dLv@Lpt<zibIB1~GQ<(Ie_6Bxfs2O49L;;$ zrCF6Xsm~^!Kecko9{@f0MH6D?Z2EM^RPoPP<5;xO#_I_n0^{6(kOxwBg?{$>nC<v4 z)3J>;_~&xfFNr66M?nF_e(?TC0a2=<yrag*or(u-c;V09%;QQFWqkV^qW4uoV{*5! zZqB}AY#B$xtlDaB7kZ}t>fysAl)2;(s3~NYE>3LrF+D`0G+(jcWJRT0%kS>0j%#3i z8Tf2&d-9z7JI)_h#jYRN6SU%y@Oxe%n#PH0hZEu46U|gV=&yIHv*f;4xm}C+fO!F^ zX|^AHlu>ca1wE=eK^4SjC1hS=6_)Ar^&w!94{Dvfiz~snw4flA?KY?U&Apmnvff0p zmwD>?bc%fSL%GHs_~QLR1i^78bMwM)hW(Y?+5-9{F8!*$u}h8TE4Dzrw*oDK;`<Tl z$C=u#!{Zr9kVWgOZx`%^Y%~@fIs8G*quKc4%a;4EgT~80t!F7~ZCj7wcKg)-o|gd@ z+Fy;~9uiijgvZ%91)GHfer8&>54&i;Zas0%5;-|D{L{B`&i5pP*-l}{Q}xx9m^k8$ z*2~;Dx`EY}JU_VJ`%I=h-I3eHYHRb8Nzk*WfxX^)Aq9#raXwk!>BYP{330!;o5ft^ z`hD!WdKdC*?QS;cDq!tBYpXl@s?YpN(`}W!iHlAHudc(Yb4PYgtgTJ1a`Z}I*88LE zpOw&kx7+oXt-j2m0yLE0?0dbl@1QPk&ozHU?g&4PGm-l<5xW2K_O`q6$TpS9Xi4Y; zhnH=R)@)fl#TSy$I;)!wSrK-}Te0mt;>=s>Nx1E=z~Qn5sWr!}Ng@Br%~?ezk(VV2 z3@B;y^3)76j{jSAm2GbNs_2d6qXln^&hpKW&T?CKt>Lmal4M?@hwqW@Bn5lzzm<k< zgym{nzpZdEZLRw^@SoYb>kO9#Njf-;|L*kD2HU_xNPh0Nd&>=XyRN+0$kcq2PV*u= zR%4DPsn3-u`|V*)uE>|^!GDlH^kc(Sp}~dO@GL?7;Y6C-vlm`dXojKj+ugTcL7%R% z(4bHz<SLd`(~}8t+p9@mXK2GOj7>ZWcyG|)DCghiWex~A4B7qi$7R_+FcBxKrLC&& z(?rJ@iP)odzKdBR&D9md!?m4u6RQvR+f}&6U2Rq0K23}}XCjq5r@#B_`rMvn82h%N z1behHPhEFZn&NJgTxh^dzbjuDuVAn3nfQkM`L|NF1@*f}tL4gdC-Kc(tW0%c=9Me& zC%2RH0;3jGXOGtQh3n4G=C+W`cMGY>)kQE~;{;+l_GT&O3fXGy*s5QG<6Z_aJ`h<; zouS=L?_WT-d@9}vbxfr&t?>{#(<yXzURQ{gFNP?7o#e!GPA-UxS@m}|EpyCh?2^L= z^$CN-fBHDqmzv>Ktk%4bAS{FlC#_bP%ICC~oD^4O%iGV>*6l*(dWCexXSt%UJgSFc zs(uLK><cPTuNab&8lY@)KKZxtTvJ||tNJM`(W6~ZW4!mylAp9#l~gE|RfJZKJiX84 zCUiShRBL{{4!W>~XX*`R>Ww>eAX8nWr?gmOR48LrPzs{mSPy2^+s7y|M7tP*sBTGC z+TrLP*P)AtW0@O_CHb6-sV~3!NpAKMVf_-Zq~{mZSGG<|<xa!uPSX@$w||c1IUe<t z?fSB2#a|sAMzbWiE_m~o<L1Bqf!(kRQ<l9bqQVl3zxi5AMmW^poizx|S=GMjMSatQ z>?FzSoNz`8GAoNRqX$m~IkM|0OOLqwkGO%3!@vC{+~4afHephq@h)4ItP#M=RbJFi zmyfH&t<$No=N3KQmqz@OMvU$*4d2KEbbc_SUBtWJZAZxFxyvG!6mo)gdiL)ndOa_# z0DGNr4@z@tqaQLO-E_si9mxOFS!6+PJvv_ZX9@r#!odi28s~d|rfUVn1MnARiZkg^ zOZAW1<$ge26Pz4Fb?@y#4t)!5N=5bC&dl;%SKJh(QbOg@9DX)51lNx-;)a^E^`6qY z6mDJGzM6)g7ib>duJWROdIvH*Nda|vIGs-2p(Zq=oSzp->a9q^j8;slD=@_--HSNi zw?D>FK@h4SmL_vVIz#=U;V<<EU+Ry~qgV2kuD{W;?Ws}jt99tA_9ej|0w3|=G4rr7 z^8n9AOvsb%{GuTo%DNoe#cX1|dlc@aaQ9LRIQx{%MbDuUZW<e28caB)6-BKt7m?4d z{E?luvIJ#V`RZX(^+VMhV$+i@Z95vCNE#kMnOgpKeki{-NOd$QC^0icqWC8u;86SK z^jmAC)E77SPpCjCAZ|oZA5Tahg3zm2rPncMtyZI~Q4_LJUQug*3!U2oyF8xmpo~}R zuvRL7754rQEbEI?=y}^o*o)ax*XTty<!@|gJb*`O+qvnon>lN`8fAuBN2QX~-uk=y zcwHsL(ngL*3>H-_Dd<bVo!-}SQSRF&Y4XRX%7{P8h@}D3k1EU<i;rx~OBVm@q=*Nq zShM;G<wrFkB4wnJgIk~1O3FKGuk_O$2WbXU7yJ>0p9WxyXumh4$Z9g<?uX_{4wpu+ z%U?Pfi%(H3Y!FK5D@o`>#`QkG@u+dmfE-(q`Z~O`;83>a*k)tL*PHcBIS*Qz13Z7E zGimvuM?8pIdqE*1jV%kyqmpsy-jqDZp*+HYwgZZVH6@F3D2sETw^-4`-R7F6%Ybu8 z+B?;H=6iAf->c_<hrCcJ#A7b;mec9tU*Th$`|)Q-#&1_sQc4L^OLG!9lGf}VG~Oxn zaB+KwUWzZ=a(BLlR(Rdor$Lg7U8H`5$R<j2D$8@CIe4p%-M;;7_R_q2w<I1V#8WK9 z158r?XfrYL=|-JjPK8_vs&8>bWfdBB8#9B0%Af(1H-FlKJv2FVH4|(5#zg>T6;P)H zsS5?DdxYICB7jF&n$TwwH!v`ERGq(mA3nXS#5k&gm{viIzJR$cf9KkDy5y7_gI<}# z9>(IaD-*J#?dVb3+Q>&8&(nw#domwjDQN_qLq}Qb)F|uKI>MC;*gK>VbcJx1Nj1tT zHK7QV6?&p7SLK*gHh8M1UV`thk24~at!f?Z%3acND!i#|{Hc!zIXjsr0izFY|5@nB z3g}I=44|bKYzJ;nVyT@1ReR_2I}RqF);$<*eKR(tT&B8BD59?<q7TW}v-t3UK#o^c zDV0qH3u}RhqN+O{9*Vc|n1;pY9kGs~-5b@m%=zt}@I+z*Emq+rj{`O#@qc-D2K+ND z>288UskU#&{tKr=UN+rEd7~z@q{>!?1WRm1)99alVr5IC5lYJ-PHR?3wk=?s{A3gQ z$U$m_V1<dzTb<HJy`w?X#@izB-ghnE?ys-pd#(*K&c~+^#2?5P{MTo5U`A4wWOd3E z^$s{>LiOSQ!W%5e46+kVYu>V`#@&65xIkX2Y07?>>7|NQ7gB(%<S?I-$X{uE<7_ec zm8SA54frd~HzM1Yp4@qm!>OOci4M5$dwP&dbWWN})RMLmw442M&aa1oh!Lfl*Pyx_ zEkpIwBI>6O`=A>2pjsD;N&$i3%Q@v8qO>FS?16xc;cdBH0^up<dn`&Q`Rtp}M1FQH zer(!4gNNv7{dMi%cYjM?b@pQ5z}YC^EJ$>Q45<u=K1kCY*Vi9%r+YJ5kA$+Ts8Oq^ zi3ov_X4dsZPK+6tvGWPPC)c%F_cj`MBVm#>KgGm0;G*mBW@6Q?s`?Onx|v&J74~K| z>Si^OBIQrvsaI#C(TFZFSdyqsk|?zo$Fw^`;0$`4cpsgh@+b}XD9u4Qg`SsC5tImL z*MhSjgP*#-B6I~tM<f`#J4C3+rU7NscFt09pC?a`<0e8lwIG}m_Phc0lv5<6iCdgn zTb##i&ja>ZExGp=iH5L@Y~_hnd)@C^-UZ}hBge++c2Sx-{<@_&&%lB$B%jM9v0O4r zT*qvZ0SB+Go=oMFzx%}?3jQFf@S&Obpjo{nyz14H7E(uAL2(xDj2&=M)Q#~r_q8a^ zn}{FWT0gia@KuRCr~cM`6P+y*ohcH{Cd2qIXQ{Ad0NFCu_$W2lDK)4mHN4_<p}sX1 zy@QVur@6GIxh7&{#e5seQ#VWFHcO#TE3k|VzbloXv!Da2f7Z3W5<Ijtt898%&GC&K zlCUR}y949NQ!ypmiErYzdb1rb1>!^bGnK0e0~PxPoq#dwem`4v^uw@PLQ9%+VvEO> z-Np%*ZvXF2a6p`EtgP2a{CoA&7;K7~fI78+x`>ndQvv6>Z=tmDNz4iESO>YL^O`;j zqdGOCy2y-L{^|JA^U-E;WL2k)bm-Z@{+P*_Fa3HD^Xn*1r$|mGY^cJO40)pm(YIZB zb{TbQ8TGC`^~C*82}D^HRhF-c7C4*Je2X$eZ9kBS>Sv4UWs9bF4w?n{VpiokTqoit z7(3mI1)M;xaZU<kNKVkpUmaFcOaVOxQ_0Q8&%yZttXAsOR_Y?x8aPwkYMa(l<{Uy! zY(h@JIQ8JQZLf|<cc7L#);%pE*2AOJlLqWbb2!WNj`bt@Ey0<*ed^ZZK!!bxBqFS6 z6i)q9wNUY>i8zq#bojaQ({$j|bl>$H-;>}EX4;m^wtEV2;4xTKtUToYhw5kmP+Jc- zU(VACUucLWCEYh7Ka@b|5x7uPp|F|w=C^sg(Et4KSBRilc+hNA(5%Hb>H#{?Zq(Ec zX|7IQj!xca@UqHlRJ_7-?QX8)4H>b2NXoTRqBSgV3-DgS&?AsNlR`$MFV~wzJYDPf z3;9vgXK%4S&A_iwTR^QX-~`9ZedF6dP}^87xbtk3^Q?v8oUw3L%{S(KpG_C{`j}^9 zLfIfcJP9XUiTzKJ`J&igM1C{z)|O1=wI%VR=5fA;Iq{%dXPfn?xC#Eo>z8hGa;nb@ z|6WyLGj4R;ewz)xo8@Qz>igDD%-hs&zz3~4ktJ&;-8TJ?l14+MNcZnB{L7ZkW6!5( za^h9C^%7C)XZA_g?}u+naEu0%@$a};%S5Sp&_Vn@ob$}OFO%+dj#qClYwOWl8i_x6 zw0`g$<LZdH%~L!tBYIv2_2)T>uu_S#&r^Mn93joCCCxjrrRQ1^Evlrnm;qeO@a-%2 z{q<)CLnWm_08<SB;IJrbP%CS6aqAa9`SPt|2g5y{rh780nJCVqCC)Q3sD3fN%51`@ z%|@$1O{*bNrMseL$_Q^M_s<QPT%$54_?@m4jP);5tKuMHvL861w)W_V&P$;=6+5nv z*z!eL^F^uG2N@>IH9W-h3q<t_MAOd(^`et-PI%F-KUnCOwDT6Vm(jjAFC__84$^@K zSRj$YJXtO%U)04cIaETZusQzvx4D#%@=-eQDBahl(AWCsv;y^vx=5V%(<i7ug4$Eh zvw`)NtDs&D<+XI+TDtFP!HejT(@VSRa~p>|%z`h%WL0_aVvTW0H*ZllZ!~6uJN&1k z*U}kO#!y<CIxsX+!wG1pQCu71s$12<>bi#+c=jcqwJ1-mY*wjk7Q##08!?MurEB|$ zAuOK7E1rc=(0-fuc>W7LOsQ5ft5kvomdUKx>QI>OP#C%88g<11*N7_Ah*H1eWVmp3 zRjB*e%OF3W37pS#XsqKv%#X|0X}!gf9i}O7+I39U4iR{86AZI=0`Tz>j=spp|NJMs z9Sd-QS^fk6qq?(3_dpRB{MHHJIc9M74L9c-?&62ju~WH_ga?oC{^wHv7*Stwwe@6n z9Peo$zt``}!SAz>`z$5eTgl303%wDu1DZWcqEl$zFX(dg$z$(&!=Cw<0?lVK^%*I< zWpTS@xzf)^2UeylkkW=%(*EH5Y+!!2!$$X|%~y&aWkf&9pbwr;<+jQ;sf?n3Ii!U$ zx%(xLgS5s$$1vZ!Cm&W>4mGI{HM>l$5(`)Vydoue0)Jc%H58n(#otHM7Wa!5VPPt0 zTN6uRL_$<7xH-O*pY!Big7>n4d)Z`ocW0koiNOB}NBt9y_+{nZV(gMSU+4Y8vTFOf zK|h*?w^WU_?#bH(8)u4t_JsfJbN<x3a(sJQX-Qgd(lp)F=9~KNZ3>?QoX^3+0u}b` z%05Ne0j}&|!QWWEYSQ!lVz%m?q>oy~cb&*qh4Nh1@?0C?iS|R(D?caUDZn>9L;69| zYr-{Cfp>VKig=;}93Sy_meTHvzEqM#PLV`Rkx&N%Ro=uUCzHUYNNljhpm}lKF_!Le zitcg2b^ClKo4ZP}bNx|_&&~diODVwqX}m&pE^BqJjs8S?*Q%6{c>$~AWMD{17|a#y z{xb2asNz@A&EoRoHLc{Pe;b$!4)ye43$WCiEhNJRk^$g&{PF}zS?xer?O>tX@;$Ff zr67;BAkPC!9P@pXA*zBQvVs99ooFjAojgoZJWWzGO+p>rnm7nkeOHh_?JyLLMR9wl z@?7h$(B?++arC||g^&ZGkb?zWXr{I2^_LDvb}gzA%Ql|z-266r!Yb7{nk?^+ZOqs+ zskbD*Y$>E22&Ek?eh3vsm2sL%>80l34W={nr!#;G5?F7_eb-dc`^nEvmRK6cDH_My zQ|u?6ke6mK6lX91%ErCI-|uC)ro3^0zrlVB5goC!n>PD<Ke5$Ad1%1b<Ub;ce?&I> z3j+=etXkvk#3i_W@1rNi)5AlqZb!f(gJ2N|UEaYj#&*evmz`hwTK|q1iVPZxK+5x! z48DVk9w|7-$UDan>2Jb8i9;#x9pLXBEWR~soffZOD8$JAG$KTiNW5MBM<7T<XeWYa zCt|_!MA7_~x7o=2wRt{alrBw(EY4B_@dzDcCQ<9iL`NKVx`bqQfn;VOA-<<oVf47F z#*eZ8(el!hC=^2^iUE)y08hJrK`}rCZeRdLx(4;3=_m&9z(@uVY(h|y=mGQ?CJdRg z>pUuX(hyyz(3;2Enz!DFX(bGkUZ#68Si;a>!T@4U?2>RQcSR|{@>pSc>r`_}U4s?? zPcBbdK^B&rJdeJwdEaeVH^wP8#@i_z3pNjQ#Dvv=B1%9JkZ|sFgPPW}Vl+t+nuJ(@ z?%u3qfL%DpCbjRUG$MT$!*Vf3aWRHh99pZ`;&}45j@)_IrRjaf$K|V`lH@jrWx^FF zdOJ7+49);hOjw#0KiX&A7$8|6AfbNtDE3pI4mssB2f}9#7JmebqQst?XvYMdl)WIK zw2h&#9g3zur|EvdgSAt-lr1-cdu<iBQW!Q;7yz;32BgxTE+o2@nR8j0b8XH>#M5?N z$<Q0cQ|zL-9z~;hSKK2{L<XOTfYx$$=|NMDJd6X1%hHn6v5s&aktiM!2!!E{tc4Om zZZ;~@=Gqs^D}JNJmdpSMa7q7>5aYT%b~7>_3a>Y$<Z&S6amY~<`kC^q`*|B&nZsQo zKM9!eIbh>jaN3s2Y}|bmcBG10i#m2AFO&_C_W!dHyD+6aWf}L3^2Ve;o&ji?Fn4?d zd-42@N3n-&SL5?*td*rHf6YWNyyVoxYE-9_LcoDgz`^3R&=f=^AMs{%&3a+&pY%Pt zi)5aqY@DKO+?~fB_YTV(H;|Cmc&@V`#%IaG*i8<ibaWtebjT4Gv6*>}Z}zh$e?yNz zYDh^kk5w|yV`iqmI^n~ibB|daRSfN*u?VR3m1$-p)KIcujRS@+n8k8~y=bAIn?<Hx zJ}ZwkE6=9!>&LklV<e9VBPm)O2wNO-D#cc_vPVJhictQO)?4yOu>reUb>_bRg!6FG zJ$Z<STgw1=Ju%m(wk!VMAxx6q^N0swuKfN7PRNHR!V4rq3nb|s<uvum9U-d+nDQo3 z;>EY+eVv{3O0^7N?9I*sDQPvVzn9KUzRQJ$T$&<@Bpv$882~RP45&}P$cJe@5Z%Q6 z7?8)@CG7CBsve_yl*@XQ>tQn$X|X;z7WMAEbct+y5FNqwx=`(9v2c~q+GzYP#f?3< zk^u-#+?-Dv#b$`d%jU>C#Sm*y|M?N%y|L7YVd0pd;FxG<ahfQsXB``-7#nvtb4ZBp zm~D|r-geTDuMq10Lelqz1YkTg&HlF>FTg&=-+l<q_a-!w1u;&67<bpRONh8|fxA-3 zI}pk{<UD9}Ef%bLspOf%>Y3w_I`E%E?i}UOSi7}VS9h0kMmB2(7JsH&`sZ8K&9+fC znRbSJE3#d^9sjVNGKsC{+oV6wO0HA}ytzMhEAM5q?qz!@^yXx@t=;95rhOtw{X~*} zWZ%lIpY|3;v1m`YXrJ@B&Xt2-VE$|=c?~pMXm!6`^wZk}821$$S~EtGH`Xw1(MO6e z+(PnSAQ?1+)swLmAN-D%fT{WJS>tN_8?oZo3_xYg;6%3P8mjOtR(O_&Lh}ov$?+Rd zxz9aK)`Z=$%T&kS^-F#GX=*CTvG!@R-qeclwX{l;A>~iYe`rj76n7U25n3Oa&PvRK zqT+qP0L?|d&3?<{&&wZmIQlbfsOrQY9-9xv5ArDv@@=wN5&<ej@0I>$vi{8^it0@x zqGkWh3*0k$N*K8PBy0%YfFQD=?V>PdKHa^x_q=~=fbVwyrl=*6(vy~Yi`M~M$MQkM z`-qM`o)<`GbOh5Q;<SicO-o)F4aiG)ls$mnuI=lY<`^W*MGy(ocCi=~I14-sG4B>n zd3l0J<)Ecj=XFRe?Kek&9%DF*a`x2{W=dD$u*kUt*Hq(&MRjx6dWLs7vC2IQ)I#7Q zSR@z?;igfQdh#99%<T!zl5lIuWOehTWXI<PJ~kXLmB&Z^X+(scPQAwjm1T1Ah9wPG zo(S!at;9TjOD3(jLhqz6G*b!#YE_?Z)YFgZ3Z)jofDDKxa)DZ>wKI~1vAc<Q<-d5- zI@AX|zC{JNM-6Tg4{NHT;@R6mw^RH9!^0!Kh`3{#u0`!989P^oOKgRYhuOc1c_)0U z$Z6L>#oy8>S%uw(3*pQZzyQain(nBO&w>#TbWy|)Fu_NW2^Bf?Izs8E9E+3Xn>DAu zk753)By0IrP^oO6-?X)F*7bZ7N-J~J^ic6M+f|MX7j?1x8*xd@`JeSs#QdD11G79y zN>w><eGiu63@qgD7+w?tDqjhGyOsKgmYS5;cjlwglYo^fb}J)-uK?MVUPr4W<Hy~P z$B_c79eyn-Z;vTyXsNk*9U_a9g8ZJ9Y1~O|6vF!D(4fERy8U^M^-TFsm9Nfx=R-N2 zguo@RNEI~XHH~WKwy$M(vZ|~hB)BpM%Tud%WPqS!zvlt|H8|>*JN{f(q{$v=Fkbr7 zV@U9UkAMo50feJGM;!)}2{6a8zfzmW&05_g7alOluu^k7g5imv@f;Aj*5&P7WVwpj zvS>ng1kn!~5ghGPp(j5wa{C#lE0bKQ<yd|rm0lw{qRJm6?_&1jn_@RO-#sYLc>ocj z{`}R+t<YF1FRpEZP#-~5O5>%VL1MG8`X+NE8ymdvIk6iHC9E!#oy{@LX$3fcMU>lO zxj+0)+S*)VbK*W*+4*|=N|?*gLKeX8%me(YKdvl5<lS0NDmj%cX)@)dWq!>{j{6>l z`vMKIP8V*R?+|^nIxG`#c(pFxQZYbYO%1F1LjQtdjK`rdKiIIf-dww_se|9Dmfnow zp2uOMFqr0iJ0Cp~jEK9Y5y{n|qAisQRgy+W`6Hn4ibTw8qj2Y!E%N&M^!+ms|H||$ z5k02ICUTD?7*rw+A$V0e>M8o98Q<!XR2v3twsg>gg^1k0Jmi^GYphE0(a7o?QzKNo z5v}o)FvW;eqKH};V39ZB5lkw=2EPbP;Cb+6PWvz4jk`nv$BcsO#fnVyH#ExxFEG#O zDcpgR_A!$rYYhz4hzL;Vl~AlyBWNtj^*2upuF3ghER^o%GoCDW!m25<5}{wwwT*JR z{WaC9e&{2dOt&!F(azwLz=F(?Hx;6eDwA5Nw+x6gPiU{naW@g7_Cr(pUIZY$j$(e6 z0#46V<c%TW$Q<GkSY2sZL8v1W;TVD_i?++!?1|Fu=ES=j`=~c)yahyud#y9y++M#t z0P-7|qd5g5?0T`Yu{=dj^h$`b83t6~lkEvA4|)({TWXJ18bjnZBV9}RV}0is^w;MG z*%Q}te_`JydAsJ_cL{nn6buYQgE)-OZOA>5unki*B#GA1T83D`mcsz8RF25Ct9Jbs zFRG!MV+awfTEtIZ#_ot0RN5;Rql1>W?_`SK!@w`mAa82L?xTMT0|CPA-HZj<3GM%l zpLmIdp;Fk^yX#rHe>nRCcU@bk?*k0@tt!ZmkXt5IA;$nBSdl~IwG93|OS33T6Y_p4 z)a$fqX2vA-?w|0=@crbTLSW7(+Qu7Ul??;PU`394Fc$AnEbeWiT)Y`q7Sk#V3ad8` zod~k<?-*0_VZhNip^uaOGd~1g*>1_92g4B1zZD_PuS4YW6I4@~veTc}ojXsaYX$r& zu#K3^*2QWGPRyd|;zDE2!5zQB-5M(f73f=<NC~8+hVc6Km4+TNIoS?sprbMoP}8dK zrmD;I0R}>+<uITd!pZ4zJkydv>Yh*Q%c+Dv*d%%}8%IG|7H*@XNd4ofNt%+znSTDT z-A|8%7+Ir?j=-jOmkTUI%u1aIXlc#&Z;XQ!QT`^UmH{S0XLYa*C>pXxJ0QsKac1@- zkfue>(k_fqK$c$qixDKFCP%#kre-y`(#rF##DqNT>3?G@acGATEuW{u#Z6H0UbOPW zwk@y2Tr>}FY&mSuO8tmj4*p5sa9^C<t?Yf5H2M%-S3llO9s`0;(l(7SATYj-ivM%* zkJ2SBs(+2+!qqe~uU5W}UJOu#vzViZ8@Hd~B5n0~eQtZV06rHlOQqaPeb7pW2xxO1 zOGj2)=Pmf$nur2^iy*q9?Q*wb^-|x)c#Ql)#I4hI(OX(ZY9=$MZqiZ@^Z9yo=Uq+0 ze<FxhX+>tBtH-Kt*X=dwQinCiGpl+TK}U@zV-wNeC|C#ifN+zeNdHliRBv9EX+Gdb zlOx<fF*(|lDO&16KHt+0-+;%7G<7-L7O41s&T2Mu8ncl@PP@a`Io_9(lKD40KB=Gi zjHsa8GaWF%2hAb&@v`wTt&&WUtL@}{ekSe4lTU|RDJ!(pZF~-%UEcK_O+KaWXr*-o zlm>*|v==5_(T$~*lwh4e=hMVgEqo68UE&&Foq5kK=b@*4a#Y<gHh(lE5}+Db?<_GG zfQ~vxTp`X6SSD)}#p{!Zcef>C#y<GYP_-W{?O<rz-!0aY+4M?+j!fvq&RqNPdD+Mn zBnj^iDE`!J;)Wet$I#P!Nzol=?#eeZHte-;RjB>l5q8d_^<S!%pa%W`)@(xzIxap~ z5*v&|@vmlJE6f9%9S%17R9wAk_B^@zUFEz2MzZvkf9xxRT4{hp+%h^z@}F&0<5H<7 z16ck;iT~}Y0-jkcg&h+xGNG^};P7(A`3a}Nt%>4spOhNgAw?W=fFt!ZlO%U@QQ^om zw!s#Q(w|Tt<u<B7aBai15$lulx8WEc@RL~zPJBoKLJkZ@?=zDdXS(@TcEtNLu`41K zNl;|ztUzSBr0LLd8^&fVQ5bhn5|83g5C?|aa&*XOP|5A*jILo;4v5TfyBa0aACOcc zJ#??K5!NDhqfT$*IXd|fD9uFTHak|F<l7-Ig&{qCEtJ9HVj3Gydal>rq`to7^Gb+W z8o(JtgGY~ju5Dvz@#VI6V-2}PPMflYS**J~6QGVC+Zmrgut~`%i9<mlM^F3iPtVWB zBnO`#3SQd>;}2TWm*B%PeR7b(+8u?ux=L9-gl6*|tYa^tiC2#gCy+JK6Q9x2>08zV zKCQLRjj9B#c*o9q`A_&yPC$Q|X!U0#m6Q+LD_<7`rt|Re&_z#9F=JyWl>xQg8HdH0 zU7I!0enq|nGtNxl8Xt?-Es4q%>#fRI{}zMOAkv4hY2F4lkH<KVJg+GnJhS~RPti(7 z-49IpzQV%pRjWAOLYCe!lw#rXV>+4Ixpos=D;72%Bi}-XgOLP%Tm~MNFrcN@l)aen z>U;>>=WTEoS|whcapxVfSl23sw~$dc4D}rN7v@(iWp{76th&XKJ_XN9;+Y)^vc73t zsi+PHedmuelGo8R#0sh&((ij*&}Gmuy(by>Vcr8Zm)FKf2tK4BtR28B@=%#=+Nysi z+DtYxEeT;<e&MTqz?|YS&pKo_j28coIiygTqA`gW+&W+v|9`(`d!-G`?quRtAr$6i z{zW;}IQ976<lruAAD~Y<gQ4U=Zbn84i3t2X14<I!9#9<B3`B+G{#-rH_CAl`uO~xw zOG2_1UQlHX@tQ5Z8aVX3JhciEj+P?4JfK*t8F&=r`aIP22Dn?IX+=66O<7(uFzD?e z`fD_Aj|Env2(L{dMq#>HRrHNx)y$ZHJn>>Nmu$s?mg}hvOj`~<@b{Q?&!#^s+YM@q zWE;(rQF8~P@HsX%r}bEehh5-^@qoLx*NGu=Pm7w~jntB{wn>7v=F15+PJ=u<$vv{z zDULV@cr2NU{e5z1p2roesj{ja9Z;ZZ1~_~@l(HXnsjVGQ1Yk>URg;%Qt9)ZX;_uE1 zO!@EX^6z#ip{T67GNLA?C_f*<HH=Mvm-x-HNotMR&c8=Zcxt-`6d!5^O1*eEIW)h& zB{F7q7EBL^)RPH)l7y6JE7`cEhjY}ErDD4$4WR0cQvVDO7qnyo4AopW5T9Bw^?UiW z`_~<-KL5PW-QOvRcX%LZ16_&2QrnimHxDS1u>IuW@vuUIQNC(x&z`6s<Dt<0LcK0p zJroo7`t8=B3MmT8)bHzKu~@gW@FcB6QfcSFebges47H!J6c}{fUhK!=Z89AF^UN?J z=?O1s9Xg?dOut7`>G}Y#I9NRz{8GiGJ}LfqTcWauU=n_CKv7*YpycDaE>U_<rw3&M z`}kN?)-g#t{)Q^eAGD9W>XLR-@i&hBVfI1(7c$V}yQ{zkV!(mlnfGR}wg9YYq;#Uf zU6(|RZdrNgXy@buFT;4CnqMe43zV&i`EDg7)Q}0)NrHy32@A8<s}R6u+nk*tBw}Vo z`Nm6a4@wYW%!K>O$3mXZ?ZYpQW$kNEk;4F%#HTf69!N=0Qf3>k>GZ2DBT_kIxePJx zI8#pVl);t*!46~T%x>)^N+S%bp;2sf_2ZwR6!aKYYr|pugfnJk{zJYUf1@SGu&fFf z7T#*b%1Sa~TG~+fOf=Qss?A8bYaPR&OM=6RnMmDW?wG%oWTz#PkWiZ6b*FMP4-;P+ z%>Q_}p&qkUMV4A22|3G9I?3$*&GG>t1^;+J5m`N;q^th*RQ5oT#3)wKkO>%rVDI!k zjEJftqb!%S=r>GWSUWpsdu>UQUDQJQo?PHh%OB;LIav3{x9n(wEjk<t1Evj#Pfk9M zeQSMK*Bsjx`s04Zp?ld!`1=Ejx77oKTIv}t4%fC1<h`rN(m|Yh!(rDYZCpKuv7^}= zaFFFaJuZb!^(Gs{HHGGFK^yUdlx@*x<XoG|k$MZBEw@>cELGKtrPXBVhO~l@7eD$o zV3P4_$S9GLkjTuo!z;~o?Diy<+k^?Q%?qbm<6~AgWn#1OvEV?4P;5)W2M;KyYBs?z zSBsPG8s@HQSA2sAXz2A;ua1DXM5ooy+9RS-8~;aM1WTq&Fk2r}7yjEm6^8NcA1-Tv zjNXf_=YA<w7}j#*Vf0t$q~8481pW6d<lh-pzumkHR(-Td0t@i5;IAK2d32nTtxX?J zv5XZKbT>5em1!%;2Y!OFIs4R}<vbcQVFH~2`gPnVo!NeqcB=TJ!kEEAh*V^0NFv6g z<5=-j)m;P$qdNy_4ux}JkuJ009%_I%7?cg+ldFVU-KF=TWSi%Nn=ar}o>N)S$9kvo z&2!e7W{=Xo%RiLjEVI4i1h6No_Eamgn8_D+2FT6*79OP=4^DM(Q<CuG&(q>696Z+Q zA_N>#Ss=%v;yr%1%pV0p{xAi#g8@15?+*``q@g5r>DL&46#Z0r{Pt+gG}4DsXr6P> zG&_!dlLK8+9PnaaKn#3s<XRw+cOn>~5#9->Ii%7@jwvD3o15!(%}StAF+N0$^Y-8Y zl9E~fH*U?>tTE@>Az!<7@<a?)rA4n^o(@;`3srrd2-vJ)5xZ1-c1RV194k%sFitep z|9u<9cqpuAi)`FllCHiIY-SR?w+JnK7LoZAv37S51*+dxd2nqD-AMMy{VU}9=PuPN zo)i$im2{Fl5rcS#+fAL$8|U$;Xt)#dJ112!NnT4=weymaf1b0!G@FQyTCS-x8w#7E z{Am31edA|mqRez&#5&$Ox)ai!qof!7S~W_%V$Y-2R}u2$fDMAw6hwijfj|t3_j7L8 z)2+6*FE~#e^rWY(iync8I`J3|g;{N@r{v~1iG$25PaR&|(C|0N)0t(P+ChQw<ElC* zpK(v^p#AASx&Fd&kM;c$^BX}PUpg(c8Eo<6IMJUYM_^E(Spw^x@8$B_pyc_h&+bQ@ z7{EK?;sl?L450$2H~nht|9cGpaLB+;wUt4^7K)qb)A11%4k-0~{77U}js1`+5jj?d zUF=?<;{6*z>!Y0@>D<CCSX0c}hZK7#pb>f6JOpAJ?Tq3$6i&74Dy{TM)tTp%HOn65 zS^-hdmFPFbZ=pb`*iJjk5k2j$t~%pwJ7fz+YW~7DUlxdg6@2wf*nagfo|DncuU@nf zG&|C%#C|C3WY=AE!B2k3mW<StZUm*P&eJC%<FWtGjC2N-rTV0*%wzAkdI@GfWJ^S9 ziZ;G=XIyd@U9LV^>Dro`iO~?M^4(j9E6tOtv6*jHUK=5ND7EG}Ma{C~fODDTy+(mf zf(fr1K}DmT5YZ*<%Iy25?8$QQpV9iP>i^qPh%|$0^mgBc|8G5hkw78bG@o2~;iPfd zGJPmsnh%lM{3>4xGG4wBgoAws3&R_dm)|?+M*q_O<NYV`BZgMp9?F*KlUv$odq1&| zwUF7-(|1`vB63JIg&f<;C2GD{>t!oMY6fE)r-R)XF}`B8Mrwwm>WBqf-)$%Kq)ppE zfs&Bi;~AU(QaA{|GMiDRowR!q<mVNl`>W>6=!03%N(`&jvYEwZs%YdM3iRKhY3g{p z(s91d#xs%PO`h<#0dzXh2??cFd@b5(`b<m*YoYhjq?>xCd~ceSNnIpT)iuI!Nact; z+(;11;)ve`t&~y%s=`Uj$o(kQ<~do+7VtUV1l!@3QTnBt&U3=d7L@tlKwkEGZ-Ce) zI-^7nJ5wBNjF10oX!a=`kv^n4M~>MQT(n-{Wkxi=**&_hIVtRw4dQ>1Nl!p=j~p8; z6dF`DAj<Oe5BUI5C7@5Iqpc{Qb%1hI_{8PU+o#R_`7I<G(U(?0Sw7F1^D3LjAf0cM z$(K!~R+GM^j<|$Q3CHPoTvQ8)a=sJN|H^Op1yPYRG_u+!S63|NYsnVOUqro3g^(3n zSLp-An#YMjFH{%%S`$Yc52*@k$F`b|i+pi}T%rBVKDjwBCVN!7-Dd=->ubAAEX@G{ zuF#DZA82>0*1)dc<L1gjT!9a+p^;CIXb4B$plrQ9(5<#a#3L7*Hk$|iwT|9nN)d;h z-0l%yFDz$9Vh^dF)s1Zr2q|UPy)GT}iKANZ(c8$gnt=x#Qti}^4R*U0;#0At;&{A; z_ILQ?inqBY6^G2yr%catg3YtlUvDz!08FF{gTxN^*lKDuk*#&{n4Nu&F_WG`M$X-( zu&2KI*qImH20C5s1of<t89%+z#Wn+)^I|G){e5>hNgGJ$TPGxDW%UKv#dIc!GQRc@ zh7$XiLzywpsrzaHUt`7o3^#JB6HoTA^Rr{|R`g7;@5G2DA#Tet8)L2J>*hM*#8!h! zS3ulrC|fahZ4jO7xxLh2e84_|onuX)bcfc&D6y4i!bUh|_E79$BNr*0^!UE&F(Jnx zRSI$pFU`a5Qo~4|&@7w94ho2JA;<!((w+`=Le}WtkX)r#haaIpD6BHL%z3=z_-WJv zzckq=PIlgYc9`QJ&`m#8VxDscyX-vukJGM<LU^8Y1gl#a3=&EfNaG!Ek>M0$gaP)@ z4Xog9VHN2~Q{}|`HMT~i=15~5u^F9;%|D+g&<8?WD8Oc1$MaMeET{dszK-}$ixY#8 zq<XD|>W+usv9RawnSUUvTq`In)CW3V@8Fcp#~5qQMz2W0fE?p^cbx6Lq)cL(Eocn| zK61Hgagx~zy1=frwr8IhpKBem_SdKq)-wav(eiRfyOO1`BlXOzy@3{6*-nG1k9x`W zStXFFTMf+VPl0+1Vf%yJSOPFFo~^{L5$4(MK&A78j@OonCrm+v-w!B*YlfrTjvN2k zk}H_Y;JRM4f2<W~?P6YFm5G8~5F#*}U{ucgGm8I|Z7v97Ft+^-;^xI?w3k@12}ow4 z#z2sY@i`xvhp9}z%|(tl|K#AWZtNR;tya~oVWxJ*m{#;MpH&79mK=2W8%p_)?`6Yz zF<yFQ^x(J?g+RiH14_K=-AH+%t>XCP<&H(yE7pswx0fn**4Ll)C#EwgZ>n~|azf7) zvW8cUC!gB2u>JdF@jc(Y`>)+;($kiC#aV-7H60n?{^(v;I=U=XSU4|m@b!TZgBCXA z!;8xF^w7_BR#C|ynL<kjSR7Y^v-WUjAv`OOllEDFmdu9OMNT&`>Cfe(ZRga)z}Act z^GfUg2bph-`+=<}KhPqB+JFe9szimA1d##6RRtu!Gc04)%M7%rrm`hLwOGj}*Gz_9 zJGJ=x&-hU(Rt-CFkBXw=DUDEaL3@$+S>ft306`}L1AHhaDkac`j>@*f{(XAc_vRJq zl5Izk5!D0AXH~l!?5>YhlOGm*Nvb%BO+OuBJRfmxM;(snhg?IzI+}##%+!4xGeI2@ zgsX|j*r;-5%Dg}eFtsB4KHWnGEg6{TMSB9!!PAyOXL<eur&~_~_t;hcLfIw7_E+`{ zgQ;lG<&fAy&(Ta<EV$4GC8_r1!1B%cQ|jM;@L~>7pLL6d27Aa5OkZ!!Uf^Ak)g%tb zT-`lkx=4}7u;Us{DSvdXo6)mL2o?F16bSD;pggGF1w-$KZg4MBVleEC##71zXQFOb zyem5`0g86U$th+s0AW7(7Jf*#0NoQ?da%=l1$XU(dpvVa*rFwKw=R4m$ZbtA$2i&g zl?(v##vq&l1g@!KK3XFovXEhOzsSJ@_2eDm<Sw8C$R(gM8{QW=`E^5Y@PY_84=59` zqt=5*<$aQX2$R<@i&NJIsn@0c7w`>?t$w#*SE|(BkEJA;((ns7?!1@YXWXj85Q0Qx z12d{W5MoTP>V1j}R@G^!XQsX^>rUBku~QZI;5lQq;jFcn*2o;9kI1o-0iJ8(|5lmU zk-DUyoo6>RO^$oKQm~W)p^N)AZc{1W-cUdcpu-c4psf55-ik)}e-<KR=`>AN2c#e9 z4i<NioxKp3*^0S<Kbg1n9B5roaPI&A&jCLArT$O8)g*b*QU<WXCtsTOJtn{*j3uZ> z^{BQW{?qm@+n0q`XR1lmR635oN28VwP=e-tQ>&CY7<OypWTNqnaYQ2A`_L4<iI~jT z!*;dI8-h&)S#pl443Iirq^?IojIiT?a;thc%EA@(Wzc~R${0}-2y!<%pJK2vl!?^4 zun?^Nz=2`$u2!9{Dj=5J&NjpnXX=wiRt4gfA9Q>+EKnDF(qcM><aziEWr-#1v&MMg zApgET(f3Q(s$x#92(&metXb*mx_&1br8;7m%wiw|vUBERcrye3%+E5Yb3rJF@mjCw z_94t8h^nk+E~*Z+Fr?LtcqAM_p@d<lFiIvahSjiMZo$(IC^fL7NnPxOo01B{u4b4_ z90yB;87#@eQx7Ors(1U<@G+b&vJ__(frEty9e)g@azJ~eae^3Is`8w8kcA3GaYbNM z!GX|>L3J6!#)8YAHP6Tt3k<ubQL<(omD8G`F$EYIh=)4pU@=~kRQFRKX+5A^sUEg7 zN4r|GtwIA7m;r6@o&(C8>R}}-e7vr;)ZHc<J#{fvIc?qA0^({~C9m5~f%gRGeo7jw z88xc9bp^y<XqBqUT^{OVHR|a>2e+l=joL9TZbu;A)<H+O#e2}#<bdeeZ-2==2);9) zbq5ZfA9w^<lH84`eZAm|Y$D|wl8VNUu$IA%yvUJn2zO1*Q@2rgZJPYiMg}OFQ177j zOOc!hCQ}T*$e}^4zVta@)j_ICqYC1=b~xJ?3v5i~;V5Q+kZ<?hg>`{=gY-hxq)d9% z9XBXsgyv(y>(jJhits-$8ITonh0qGAE3??C+HRWs16yMO`S@l!Gx;NmIbtZ#Vme2j z^rR(u3&or|9O!apx|z_-j5`pBM{?*9VG~Ldyh7Wm(LT1B$7aIK)$0QJlwKWQQ0Q(W z0|Fr#=t5tRth+q82`!Gl$ni$G7K;}eK30mqAQYIlEk?Jayy1qAOJgtK%=4SG19(3= z8aikQ2@WZrB6lO-iG?}DVP{}pPatFw;P@(PvTTq2vPNgIUY7cHyA~Y!QD9!7hz#Mq z=$IZWyU}$Mb#fqb3eAtW7$?|gkEqeXtCLOt+>%&D@dzgb&-H?+8RHkxigl(-{RaU1 zu>n*-n{c1qxJJjcwuiW8JDWmSr>?R0Q+j@iEN=S^-j9Q>2NnvR;9xJFn~|*p>hzi^ zJI^ZP-FB1(Lbku{2JicU*Sfj+X!}pvGokEd!9lEqHjLkTYqv6aVZ^kmyh-5$XbA9Q ze0|KKA4_44PH<gM{1m3!UWMDF@S{ZtAY&|u=E)cNJ@&C09sc@ImaJ?n#CZtb*+G}Q z<^7!K;)jrDPSB8Ip9`$5f1<7X?)wt9Cf70q7I={hd7isNx;l1|iaXEs*tAd`XLFx} z)GqZ3!?k8oICcv&JUni`>`az#kj3e{v0zzr`@2z{JklV`I&foQXBy7A<rBH8nq^vO z3JU>fx;$%H2pNpOAbLK(yMg}OIlh(gFVo=1^lop+VDbf#9JY3N`EOv4z+{-B{=Zv7 zu0!g4WUq<1*)wcfQDpi>hr95Q5^-olEWA;c^~()NX^CuzHbnGv;06-9NY*zHvi0sF zj(pzntgrR-t9}XGqCwW9?*;@iJtt?phK6kTU6}o?1CpUriZEO;#)ar<7!$&%G^xc4 zW#sJ^YO~=1jEO?ZQa0Z3gXfJMVbP_YrS8u>j6(X2E}-qzTJajIu8&G__-89`lu8an zoDBaH$yxmwtrSwKe-WpFan!F8XZ%4~fKlO>2n698T;y8wCT)@C|6mQN*7;o}i}mCh zf@OF1cHnFnKfTgCKQ?&O0X0?ilrmUoh(hP&h-PS0>bB|cUow<lNWaPjbg`0&L=YP* zEp?IW&o$2>AXQ$QL6*T>CQ<tO*}8T}q|^n}z2c5lc}(bwCh3<xq9mGQcCl)mua!OV zj4g_#-1tiG*RE6%m#In^E-It%%EdRy3fPh<h6{!*A#V~{m2XEr9#Frlp0d;R7+?AH zr8NNGjj;59I;DCFPydwjN)dax0*336QQ_#vjhpnl2FhE)ngeQN^;DG6{^oa8u02`d z`kTS-1Cd-4DxZ*K_mp=SE;8f7(Y_5ekjxi_pGJl4CLy3J4NH{RGsl@>w!R1AQ_H`5 zD8Mwvg}SC8fX6jUd6T5CV$FH!O(<YBQ_3!<0FBSpF|y#+8@#21E*A6m8P>m)KG7$I zY`I;;^<s9<+WrJg?wudEF;fi7vUS`<Z5?=}TIh2=zAEHntq{MYT)}X;n0${uKFgN? zD^PA@xH3%SD86W7;XTbZ{4bzSpUXX?5Y_2TZm5&(>%57uhUynh*HbywoUplGCsw(Q zL=M)<QnuYdHs)VMH2WWaOlDs*{*GQ*?(@Q$!XIF#@W+;PbFMAeMO-|_&jZ!H6x_Bd z={i1i`6&<#GcJUig#d&!eJ>0<tE{gV;gbi{k~Jq_N7o^;+?_L2YAJ>*&A3o!b{RaB zXF}-D6pe?K)_fBjNv9aAEZHmZe0SVMys?V*W%~9L^cBo!dV&&+z5jJU&D>`JS};}} ztR9>fnM1?|lPHDEL;77VpgFZWt7KFSH%gxmnutu1dfztK(6+rv50J7r4L6Vn#-H&f zr9di?LOD0^xdUqLnyEpjQ?a)Cl{&d!{fgx@H;!QEi(Iu@inwYU&rg&Y7%pAoLZUCu zvNp6!CLu7Zi;g3{R(tL$&aE4=d9JxL>8JTN4?@+S?VE-a+g{{)^UFWIeow|2Wlaza zpFf~}RWqgZ25W_MR$ztH=m^%zQkSD=)VfOraan-afiW047dFZ?R~$P0l?1Oe*#ar+ zfx3Z!=)S2%ciX(e>$L$#8W$423IQn8TrZOSKN*wW#6irlUy-tUO*bItd9p{et1lJm zZXhGHj=CY_TNFkZE<>Zj`0C{^srBYV1pB`x275#pd#CQ38xoGj>;uKFFPr2nd#@Ix zI|?S|2(E(}dbF4!LvF}B3_0ETIYBPv+YfC=C6_mD%}pjRlg{gx-fX{7y=uOPpqF2- z&KwuqBWnYXO~dF~9`5f2ukz2XOCx08PdQW_dimYm``z5^oX;Fd-+6yfx<=ePTssPn zXZ<ru%Tn396Ti0R`jUOQC-VOp0XT>ihIU8q{>GM^dgmv_rr*Y&uX9MCPW|q67QJT2 zZ3~01Z!lL^wSW=iY}Yuiwswz2X(4cQLs-2rY)Ql8%swx8ynGX;m)C84sBqf*w?yFf z$(vA59Ab0ts@{<1{GJ)C6Vb7EVd?g?EqP~DP)o&1wX^o(&NtZVij6kRwT7zkduY0u zsBlECwtB(8i;3B_zUP3Z_W|Xl*zDGQ@edh8o&(N26OM2BiO(&AFP$9z4*=&t7{7_@ z*0*^7(d?#vv|s+>W&R(H4l+kj8h={?^glOO*O4XfjpzAM`qI)zll<Qwek+XkVCPis zo5ExVKe#6o2zEK;9w$)GoqN%v+4ZOS`0ZsH9h@I#b3^s-XA?w4|G0TGKA%MoziUMg zCzB}u$Re^ear5`ds3lVbHaF$gCQwn#z3BBKiDnm3dO2Q1#UzdF2cqo9xAvd0mn?5S zMZ@U3myhq~3rMB|Y<tR0Pnbi`OovHkKc<-;>E$qu&WF?JO%h#Xi((Xwr`elH^z_N2 z)3cYS*^JNDzf6AE%al8rFn5K~y$3RhV7pOnHul;<4p?&KemaOaf65+YauE%FID0*K z`TX^ZN2k$)d(lrXpV$kMWIng&KL>~6VZ;qa85i$y7-4HsZY;tSvHWQ~J)hiUE8FJ6 zEz(i86K-AFYZ#%mhaClhid>u`4^hW6FG<lck!RXx;R@1*2sRXmHB^mVey(9-i)`@n z?}fsG_aO+8i$T=<@PRKOlu#g&(4WQ^xwXlUzRsQx9zS{b!`btfubw;-$_jpi2tzKw zQ1hb)euJPvE@lvC^s=GLJ`?@))8nV7XHjIdP)2Yjg!ggLePlAec>eb&Qgz@XLrCx( z#Orb4dIUl~eR6hcM^bmXLLtGQ5U9t+>1llaAzO#gIxez~VD-Lw`cfzy_zD8zxOg~% zXDSyCH#D@P3FJ1C>1cc*lnXorQEgmMo95>jcnG4;xZpDki5BTF9iQ8$n5TkdTlTl( z>06<5MS2XuV*;^bKv235xg1VMlVom_qTolV@Zd=ZGUH;*H2>VeZxAyk5He;toHn^Z zC>;0;V#m19F%04C!<<bAS*)CGhz>BfFxw*u&vOtRL*y72I3`&Aq+g{p0%eFN!@|i( z<)-V$>v?7xE)I&vaTJyJkL6XPeI|b8t;nY#JPnIZBh}HbrWN@$gs%xiuMtXwhii1Y z7RGsbn+yca5NF1PnPCW5c!avGxVg9(f2`*wUtFa}(fi?GGS1!_&fhMC)&z+(1f*f| zXjI&apWQiUg{eOXoFU!}6F0M+fOJ!C2iX4YpO<0&FGc%m`cdeY5kN!y85e%0`9%h< zk6<!PmJDxf-!G<1BV6>j!p6f#Q9h~j$t)dW@Qs9<*(+@ZVKc;<VWMVuLu~Vk3X9>{ z<OSI>gqCrUWj3ZJ93O8ldikPBV*e$YB=(0x^4cxcZ!f-%zG(H@i~l<<UHEcV<?2f( z5#nozUc-dfD9w3fwn9}XE4WF5&$!q#-m<cvQT^eF9|~Sn(M{Dp^Yan&LX;O5<i&es z!`84EXz5sjOC<!0i@+k5T$qiCgcSm;xcDl~KWy-n1Ws{rQy3D-<4^>n5EsRTMd6nJ z*%@b3KMt&nLN|gy6XKaLaVDzQYOXN}B1nip!UT|PCm<|jdpH%HL`t}X5k5lf5hi+s zEpusnY|b(sY)Ewg-$hgsE|g>|9fW2G=^_Ldaj``jH$#X3Ap(dC0J0M^giH@Ydbo%l z5;Ih!jIV8hTdkJVE`gIFum_jxu~q0KwM*c02-?AAcCcbQJWr4=YH&#e>2NVR8ecPr z;~*M`3&!C+jCKe1d1>Q+{k3j7y|!dX@gRtYi{T+WUtA6L*UuY^%=hJ?qj0Vu)PtBF zdqsL6(Sv{<T%HGa$=NjJ^uVsU`~*ZA)g#=4*d9!@2T%6pQKg;F0nTm^{Xygp7x*K@ z*eBD`ftS#j?MLZ;%&pW`LJMOUWP}hRBoHA)C=s|dVtNEZddOoK1a=Uw!-eaR#4sN} zj%u~oZ*DG*2ti`A#W$Ss%L5$bdl24(P4|eK3vdwLLF^7Tx?>vw>1e;8)QqQT-`=$s zbhYd$NZUtapZn5*v0)u71?<F_&p!NIq)Gj96lHVj=OV95dM|;r4uW;CSsffL0>qg} z>>yyrUU?me>mXVO8`i-Y#^&No<a7|G!$s-%O~;wY-XQdbi@eeNT*0>U)ODWQQjjxO z=(s*J9&}oteNTt=nH9|8Co9~O+(qTSNg5*cYTfKhUAZ7Erg;ezQ`bNnRTujPWnaeB z`BU-^scY1Xs@-q1L+=|>*C-eS!D!N{-pfWiiv#{^cs*PE`Tw?yui};`Abr&=X^*z1 zMz*MWF|funj$57W$Ma$~j}De$?KlU&XJ2yEb8bkopT7FagZYdY*is#yn~hDY&A;)y zmxWrvrb!JcS!%)CH_EiILBlxuB2wLg<t3EAhO;W=XTq#nT5#{Y=FqaILJlqazPf#G z$N#+fI{KomKbFpHe3Zxh+3XW@FOV=%s?Ee*9k=>?wdE-SH7W){F_=gzk<42^s@g;H zdqPOmAfN`5ry*Ndi*!CYAEt%tMon#$B~}MK_;KmMk9i(Egq=_wyTKUSZ*v<S-H(*m zgdc;4KQ2A|F|#|Am+`m-L{v^e`^2OV4E+Cb>Hm+JorJw~3mMHEL+o%|#tz3!T(n3V z;c@3NL<h%Zba32cbRZQJ0)XQ(061nI9B&onN(BTDe_VR_<9%+LkHPsKm(KTi-v`IX zSQ$>G;eij1^K$wFTi29*m&p+HoLIGMHRDy$IL~W#I{n5{bW|IQ#oJUZ-sXA2twbyr zc0RV*aA$tqH}hMyv9i2PrR8m&&tr)n;EYwZvBtbjMdt0jR++c4%)Cu?=53x=VvS{U z2d%1&h3IXnL~n<07P#tRn>lM$ZLDK&Qz3hs=i1nh2bd$Ji7eJGh2h1I1wm7~?Nx28 zfNxU?e4FDJLp?6qR&7?a++5|u5`96K+G2PPeIGMc*|(|8zP(RIi)v$4eVfYa+q}&# z*USbwYgRRMOT}(+!CQQ#U!FFX6Uh6(S=FH~71gCdKONx6S=God75c@+evyhT498WC z_fi30_Dg)JAzv!yOCacrJSbN+zDoso2}F3w<8n(X#)^zh#r(@}rQW8-gsGq~E-K8f zljl{92~$B~TvQnETy*R3%lON$#!b~|F%>Sx#f$M4zkJnG>iwV(sz#KlkTNc&%&zn4 z6*6WNL1t7S%8XPfbXf$KQK9HEIl#q|@jhQ?S8amh1%om>`M=YP^TzqVs@v5)wZ{K7 z@gMx(UA+F_|1KA!KmRvhE#*pWg#Vi#3jF~94i5m<Z3_U_e*l30006V){{sN*4sC+s zU>oE8u827wPrU%Uje&rrXI{JD{f1)JHi-P)Anb$d;e2@IDe~@^z~jZN*H_*Dcr5US zZK-bc+jnnEiRAgy;L%@RpZ#_4^2vXnX8UX%w}qnrM^S>8ShRYL%y2yV`IqP<`roMi zao9e}{%qr)UHfO;vw!Lfcwa^Tl1|_T8N(Yjd_TC+7fT(BWSQ5+m!sv6y8h$$^&bcI zAOE)T@5)D`L74F^qhT#)Z8%mGep3JOas9{V&e74%-?n`R>pu#rynKA(_VG<JmD7)d z#bvf#9}KTYH}z)mW$Mb(+YRh~e|cDbv{s)t{A3$!3VZH0$z`_3x22d%DU0T(<(t`G z8C*<;VlE>a-n`Lkc6DP1|7@1CSithQoLo{ir+)54Uq!E<oW1G~o<002`(8<NbJ(co zV0tV*{H(=Na~aRxQZMT{?BLs(E|r^0g7%i%Ce6*>W$x_0l(p0(AX+F97Xj@(idV_i zB1wzJp>_&nK_2Cs*q_A-?rbWww<@{$Xxjki^1eL=$UYhUTG?x<9$fNs7(G;_$9O81 zolAcXBfG9-zm~2|HYPfZ=mtdBQqj2(=`f<lR&)qiq|yiAMzc-O`SqvD1pVCk<)~ET z2sIL$q5!06{sXZRXHR5VFL`)i0~=7rhBjh_{w;yiO!t2g9gGV5IBR{FkJE&HT;^UJ zMTJ8vAI4!(s@fKpH?bkqo0RNqtzr4PwYhq(b*OggA$ZmT<=)Qhz36Z}k%}FFWz7&< z%Dv^1r<>>A2H;C)3wDdcTU@Xdj77P%kJ=xVd^xho(VNnu>V3YpnzA*^Gf#%2b;Gl$ zP#g<O;<&H!>~t;HH2{;ktJ$jFX@ac!!7NY!dbNj+-j;~Vwhkk{)FN@Y*Bhj*>P1;= zCtDJBn`WJH?vVT0E-iaY{gSVdmw&gZbf+&~JbxiyEnIx|2IcyE<?dW9H`C<fb#k62 zqfFsY%O(Vd+e2C3WfKC@Ef8Nyjt+q5W-J@2lw1IJ^L%SAaeHI95qGu^H}a#wwscZ* zaopnVj9ocj3x(v;xxM#Xnf02C&&TQD%|Da*?4a0Qg*Yr^BfFcQumKp|yumGsG_!fT zD?qn+iAjmITwZtc#9D9ac5}D5O)|8n7w3a4L`gqxzQLty+Wh3?x~xEjOCl-dJOG7T zxB9)t?mk1Hwzm_I0^-%%^2=ROwwqsF0T9~E!OV6S`HX&Zb1}$w=5(lBOylau{7ygr z@seEF<)QZxA)Cs*@i@wCt?`{(j$&Sg+H0^8-+|Oy`bP0hFB<~xDYwu=h5&o>PtobJ zBA@&6GpZ2O?|`S{q!vJL%lQwN0(&Hc^Of~o2O)^yjUSf(dlJC2b*Tgwi1$w-{byTc zn$E{p(IipX|FyV+#UKA2d}z4{Z*P<L;c`4l(CWR-tX?g%Ty6nF(7%N@67|f?Q5D=& z(N9guqvhp`XTTE#0v_{KzSI1lUk=C9P;pNXT)2mpzIHzdFI*tM&;tY^h4V>F<w}XZ zI;pRfT_M8*s<HGPLDUGq8E2>=oiki~c=LSr04Q+XikbW0E&Ra2@_^^C+6ntRf)L>F zkjXK%aR}xI0${=gN_w0B0HpBdlVsS0@8-d@0U+Jk3Xa*A0MdJ_5CHD&Opf#!b1B-* zKVvQln<0_-@Sjb)<}%Lg4Z!;GKh-#0Rd)f?#rUm7QWQkuwZ?YBn}86MY|}E`#%==G zlx(qp<h++R0l8CNUcN*H15IiTxLj>-9oF0MNk!+vx4lJQPHK7Ld?4C3bJBPhK}iVQ zJAhvV;c7Eyz=v^qei<EP)=wM-OUT-rwo5I|I4nFLE|TcctA{@h9zA<JcyjjS)z|jK zaFI-s^Hh9R7>LKsQw4W22TKcB8pdhz;UI?)4C5R{5LdY;<I&;aVM*+ce*IOdF`wBT zOyimh7>$<6HJN60Eq%9XfiT{xf$Yeo_M!G_5~O!nO?^`%B`oeR8b~>yVL08{0%Ft^ zl&?4QWGKy@3WVt930^nbkG^~UA~)L~=ELjg{LO4Gx7=Z1-N#h|9?NbQeWdbh6<f%k z*)v<o|Ld>OMuYyb-!85qmXH~#%0WQi#~s;f&rj4cjncznQxw1#39#USp5bOs1pQ*Y zeUN}Iz7c8s+xI~NTzObcy?sz9RQb+)P#A9cam>GX@$*1Ic;y_i>;C82%O7(0Go0AO zxlhq>n%@|BIH4fi@?M2n*v)egpv*Uj9e1`rE*~Wq!<$JetOAf=&OHUb(~4$0=o9Sx zS*2asy|wts)QF80vXSTFC5n0*QG`AzqCP1m_KA0#A!hlbb0z?kauJ|*!16~wN;D_M z#yN4biE|TJcA^l+I|y}BM0HYZtdnBgB$Y3l&rpTj*-u5Kj(8@ccO}r1Vw0XEsuVzt zQkCo{PgT(468}lL08rkl{44MGET2f|Qwb2In1m>aPc5cVwh0j9YtgR~5K1wLP!iFL zX;XBlmkN(QmMBn)iGkt>FSXu?d{V@GQZDFI^VZwc*u@pRxQWUiwBA*nlLZOc)Rzz# z7=?f*MT95CL_EdSs`Zb!NYh|DSL8q`0zoMz2}+`*ceI7PCq=*~#Uws)L>I4C^rl2| zQhP-?DP%b*f;lNR&54uu;#IA!5X_{A%%qrTrtQLOkAiK5j3q^oCB>vH$<hig=1EeO z!->rT@|F|<mz0aRv;z=5Iz8emDHmYLdt80XwG|SW6d{-to58frGLzb;xQ6(z82@|S z3nB|i5e!MWXh=J(+g6A%Qp7P*E|3vJy!pq0ZP~S!xphaH)={1*awUaUD});<q8lkD z-bl4ngRSHdX{3m0q?k~n?PRP4WasJdI(sS?vpj7p&38%%>%Tel*gYZ9ND<OVF_}g@ z-O4nsi=Vr(6lblFPNWD=q?mjnp5S(>i?g_pN2CZyq+CRz=1m@AhZJ##6caqe97Vdy z{rsd%LCI(Lp?v3rU?N3iBIQC8ZSr}7N~GJ*s;!DA8*7A%+fMOBLf=WuBgKUt33T-> z7f_vAdz`924)e5?A-Xg`K?af{2$FJ9kan<I(ODACNV#}Mo38TA_QSWNxZBl<0Qco` z6;A_ns02Y$E(+2P1{XacagG!dbi^6lJQvX(A>IM~yr6NvI6Shk*7BrD%acG5nWTuB zq+HM>Pi5`v;Ns`ZdPI7K(OA425YwoTzoZDjq+A51P5U+-ke3n?XsVFmqzK}qTok83 z`gywmL^Ua5H7O>ni6gqy1t7CY5wuCUs7*WQ=7t`Wa7@a@W7>p+Rof5W5)~npx7L2H z>OZ$vKZ-CVMKmSF#3^wGF~2mhxqC}Pp0|)YEJ|n#Vzq5naCLo<+4}r<NA*wUd4Fx` zCL8HWittK`$yefEkl839cV-2e`y|R6+CQ?1LEk-pA)Zp`s0q5HnAD}N+8&9VU#+e` zLTl@9eTMdzM=PK8dx{8gQbci5OpH_Lr<nO~`uXhH%OAu|9MNSH<w-FyPhGXWeqI;m zh-p&9X;Ms36Gz-TBaEBryXox1G|K)fi}7q46`hNN#T<xuQp9*tOvuwV8vkj0F-k6q zY4!c<|Nd{O!05k;_oQ6Fr$CQrM=J(H0is7K7e0#9YS=ChsbuK%2?wPD@t}f-q`g`L z*{XwVpr+@^bTqz@iiVz>$WMxie&WnwX|#;ICPly|<svpUALt=oNfBR3F#$`QK(E$w zsx$-B+4MYF0#io#PFa9g`{3bW&Sm@Qr=R3G(#T~}1ZGk$GSd#82Kr3GFDWK}iSsm; zrr}^bT^7)Yn<}I8Bjl1|GMBbFFOjZ4gefVaDJd6DX$ManT@=BSR3Lhi_l+uoloXMa zlnbTAYiay8NeA;}aXp(Zl3SS=9<&REa3n=^B*nxd9p61IrEzk<){eaDN6xH1+5Vid z-t$*{y@+HZMQ9`CVjDHToDgKBh-9Q(C?mhYERX*~_HR`PKT<?LQcV02LyM~KY5U`O zJ9n->oW2^oIDPr!^Rt(yaxaTiBt=*x#pEJ!HOc#NdU-R1B`KmMslDQo6!MZ30h5%A znB+H@+c$cwO?&SwUt};Tf-or;g((cbaX0-Q6(X1vF_;t+!X(hodn1T!CPi>2#iTPe zkEB!xU{XY2QZ5A34i+%FOkyi3CS0k%{Q~x6+G*q}Y2qqrCRb?-iz9r@8VO382ugad z1SO3GB~1h+?II}cFs9eYNz%kg(k@OCFH17VpWYJ7FFyRNe_2bKtYuB!gS5$e;=D<X z3?)qrCCz3ib+>5CBy@BdsYjZqN19DN+D69J@c-gx-RVYOMOwN8(8x2=#52-do)Js> zMLNGZPos2vm2Dc6^C(@2rSGBiJ(8ZASIdz;PmetE#Kvi46KP@-X&0Ml2S)E0g*qmo zxM{Mi;VhdD+37Ht&OQ{Uis>THlaXE{Y9tbAA`)pPkw}m_;#+>Dkv^n}KBQgrq2^}> z@_{t*fi#m3l+6son;HDXv3rm?Cf>bh#0P1@2WcigNVSxJ#I=*;Dvb~!O%Nf?g$Ri> z^j{<BbBPP2xm+NY@Y3)W2|$_%K-xtB+QE88$4QhQ&7}Nv^!8k$x}6^-lXO^G`aIjy z&)TCmCHjwM(tp(M(Iy%(KbkN<+J*UPes&<lM-#+HGa)`5M($Cq^<Z&IRT0y26Ms<b zEDjIy+*&xG`et!GoR<G|Cc>9ClDF@PwMPd`L?G=V0<Ap~`@y>pNY+K)+85LZYm-;- z8Ul3p#0t_bR#0O@fJ@9vCv@oq5z;P*P;j08<*5StY+?)Py|RTgvV}CUg*1~b#4#4j z?1ROJ%rIn|-`pS^Wi~--gOM+!i7%vGe4!l-D|%=m1!*QJh%>BS5CM%iAWb+R&BOt1 zw|De_2xw#gX<`6rCIg7K$6aasjvE&7q(vZ*CLoY@0fCyIv<Ujq1p3iT&<}5LeMtfu znLnDCKib9o5w0}p76Ji4ngBrB1pwN?vqon`7$5Dz`0Vn8905F<06f|S;NhK+UoGD5 z7$cyO%%h3SqnTtL)#^0Y0$wANM-!7ryO=y;8A}sTyO<E00d!!*?a@qb4^Qx-;mdN0 zWYZ=4&NJ&lBg{t=%tyOmKF!+-B==|{_h=@$hc~u%OIcoI*)9+tmZ_=vs?5JzuF3p+ zdjjE^@}Lp!qY3V#U2va`TDBROfjc*f*@uT$ZzjPKA2iZ}G|_@IlNKb?(l_@(BQ;19 zHApk5K|JB5ULWZ}n&?4#uk;{|^dL?2Anl?Dd2UOV4W~2P-u}f_mc9JD8a#Xc;&kx% z;j4#IPl}WwO_U++q73<^VWCx8O_|ND)6cdtys$vxf_IIaAx)ei&EyOT)XEp<ZjCLv zYr++2Ca$Q*Kk~iP;s$M<tr1<M30<U_=pqk2y=^Wsj5INfG?QT@&_HT<kzu5XVWjuU zFw)2{(!?;*Oomacc$uRsXY!lZv|a7X1C7OpCQs&(f24_jq+R@@-Ji@aK7>AvM--AK z6q0tKkQ!4Pt$~+L7)KBzNxK+HzqQkNgePf&C+WSylQhDUG{KWJ6Q0C16U(jZ{pkN^ z?{2u;wy}NT_oJ|D*4#Q7#}NRMvO7)havithr-_qmJ3XB{&pcYPM8`UjB^`;*%iNj! z*&l)wxBjwaM0*32(mB;Sr;T4G#U=@C00e%3!>dkCFYL)xO*8|T`UzIjELf@WW}vzx z!J7i?4G`a?U3}9Q-xQ$Iq)BPgE~V*9YYI?e(j+lym&DY3Q-FMuCO%0s`6NzLfE!Wo zv<c$=FG@<9Bqhz1l-7wt+Fe9JNt2+Yw<;)U6qGaxO4=nTZE|)V!6Z#!k`4qW6(do5 z0_3Kr=Mh}e1TJYNxU}E?d_yK3G$WCuiAd5+B59oxQtzO+qS8~$H5y2o3?%I`keaVq z2oz}oiZl}_VqHVK5Z0>5^S4fYJWg_nN|Zji$P#H{i8PZXO4|Hm3cY6+kSNkb6loVx zw1H;?lNKpLnyCos1GWJ%wQFI-ml6{hQ9_zY39a*FOH(akK$<Wh9S8%G77BA2IY2s) z10>I}2>xgSe{>-5r_8PP+??sh2hE3@4J2K(gEZMenrR1_J+;Q+71FeeYLF&1NW0V^ zaT)6dVfJB=_pYNIdt{_|k{x9sO|p<?%0fIiefeC~lhcz6=~6G`fi&?z+QkETm;P>h zJU?&Ze#(|M(#Q*G;)OJm7vgk3Rvff0Ejy+~@`W_h7vhxt{_Q9S1_5se=1c;Kv<oC! z^>U-NK3#VI++k_aF_{uuq+M*0XVLH9jn&;*@y)<YOwy5dNk=Q^3f4cx-tX{Xjj)j> z*hn*BBTj+q&t?xF)(9kN0+KWnNRkBVJ-|RCNt2PJT}G03@|O0GkxtS?Cut^~v|d@o zWyGvZFp_q`NX_@*(Kym%9BG$v#KAEu>h;a}ap&~MBWV#ac@k%&193)|<MB{hFie3& z8fh14#2sf0W_GBtQ!SUQ1`?BQek~m{piQL7CelosC_UI)<Lo$T*BgByO}>z3`a<iK z@lIPg%cmnNeA`RBTPeQ9W7~OscKqYXue<ig_VDOC-=DMJ(pDBxB26ffW}-yvg)45k zFo}^zq_^r3Y4nIRc|_Xf5p81j!5}+ih#fL6c8J?5*cpdemX}S#(iDWST`(vS8Ip($ zOCqwrD0vg<_fFiPS7gX5GAyr1TJ*a4u=CV)6!(7V4%=Y2d!N2}@#4YXe-u6VBi~D9 z@KPDNRA1C8qT*2=^s;C?$yP2U^ol>m_+yIyH@uw4Ai`t_VKOd+skt=-_kP1OwiIJa zDK^gh@_Mn=kvM9vJ$m6;luvIn-#gaEsM-`2XLj26j@41ofulBo6hY?YjHy?2`xxCm zMYpvjN_M8+HYU5CaUEb>2Nc&f)*n$^z2SJ4c?O1Flp!z5xV)(51GC_dZ(P`=Ax+A# zG^yZmm5Yge1H%pviB!fVQiX5vJ=;K3rVJ@l#-&U()CT6$?r1g{PxGawkiHwBMMQ7P zkT+#q-qZ#v*hk-|5c?ejQ5hFR)qGUBcU0KpAhOD^$f~W^E$m;AaAjP=6=$#>xQ~Z` zl_9{&xB#o*R~(>WuTZdyK%$jliB{53{Fd<=bgvA#SH|UDv5!cyF8_QYcooV2H1A#x z?RWZv_r*Ui$Nf*mzpnF};rCzt{t5A!W;UZeEpJ=*ZT56HxU?;&ema}>o{qA-xR3Al zdVBVgi~k#~;*-X4`S0Sh{O{PrI%$2SVr{febgQkuYN>WxCtpRafN?(fxt-<RX%u}m z9glO@?|ts)ztPWkU-!qo{L>_h%3Af^{GUZv`}^;1vb=5$-Vd@5_Cfi^A`N*q%AbAn zVbIU7pH(w6Ps%TL?c$C>clc!1>khMLwtHRv74{XyEGzyeZ!Ug(Vq0_jP!$dA@Yy%B z{L?U-U1wSGH``J?`zFsm7LVg>R<}KSdrzzXD}Qy*{=_x`WdW=9;97rwG=F@fv+{8+ zey)q}$KM|nV}?BIe;etR)=ygT6Wxwf{H>*8il2U0v?|mx6)|O1>YBGX@Wa{oc3K2! zFU6C5kPquN?19=+H)Ca^RkgL%@4qM-#pQOq`u>r9*T3oq=jDGm+9_J)C4lZfZ*L}% zh2RF$SsqcV8x70<K=*s;(L#Xv&qECJ9`fm9;e0;K=GSxiK?)Q-j*iBYPt(EM>pa@& zJ+co-EBfp0<)Al?4u9B-4u`|2{OPQCP-ofneb(O-=26I^bq);`!<$(ajjy8odN7Ns zhcvRk5EWm(wSSFWX?Xc5>PA1DKYvnIAXyABTB*k>VcusJF$|0LV^qYEUw8AUS9D=6 zv*@a*5dCN{D!!RTFHVk*?U6lKgQEV+$`9j`dQ=i-k*xR}AsAECBZ_VAl!W0yJvaz- z66Rpk8{QU=q+OCf`!stx8~5I2`QEi1XUob8gM)f#u+4Xl(7~^}_hH^PE?v6fw{Jf_ zeVf%u#^d_o<Q~oKv8MJ|We!ndOiYxS!lb5ECBEu;l@?D3tJ4;1CNA_NiZg38vBsKL zTl4y5)9GmJb?xv#Fggz`Os=_er*8)N%&Vw)q!*p&wavX3I8jCORDopm#l<V%zuI1J zaq-GO3k$n+0CQc~&`GB(;GzZcDeuyumUVfzd-xWVXmRvb$TfPN$FVQT>5H?rf|PK+ z>2@~XJ+t%p>h>T1DBlr1vOBJKqxa)MKYCnmuaTb&fg*h!LYUOEI)w6d&^(4}iC>^d zmK5_k5+>^!uR+oN!L9=@{x{Lt@!@kj6JOsLVY!#M*Sg%iO%h4G#u8pC_kWz7TpZ8K zUEU30!I#9ky5NCwSvH(Wi?w9U)Wr&ux9;A0kGsCKCB80Ypj>w6M*H03rCo(}F#~0> za)w-3uB9CYb-A{?G!s{5)+Gv-twuIooxgg~IX%93adP^zbVUa)=%{CF0u7Dk4;>V; ze9@$rH*j&@E#a%By0C#pMIO%{3gQHayZrFRpFI@A2@H36;j4Dr9DM#2Tz!k@x3}~9 z)r%LMm*<gcNpCSO6QETB+oV(w5+_GI5F`HdarEo2zee4%zcb$_efr|CbNJ%qr_+m9 z;<+}2!pRADG2xtwa$B}MwwQl;e)i({R9HlOKTogc1LcwWsiZPiZ@5oiygdJ@y0|+v zSXiA!IU08JeELYba2(&>)64s9<{nhQ2>}mefZMlL_6eX%cQbo?d3z<@WR5mC(cmr_ zoHJQH|IEi5@a3QFd-(2fIPR4{6xTE~zlr>IiQoREA7-Pn^y8~&()~0Xcl+|vL*gRJ z+a-AmN`D7{nB>#4^n;Oq=^@FH<?W)pMWr8%N8(2t-y+d#q(JYH?tHK|UiYWPcgjBs zht9}+lk)9CzCB7_J{L=$qBZ$j)mB%n_uuEWwRn!?4-2G30>53}w;-Z_Er)R{z4(wC z3GsFr-rlvcu8Mz?o}PgkH(}f^i<?p8e^H9*NT)Ip(I!LNMQAskpb^C;6Wc{%%M<k5 z%r`|Nh)o`LAPzf7LyI^z+1M@`+rOcmUsc=G+CK^(OcbpNv}SqMzU}N!$EPnA&8&Yr zi&!;T)hw!dW9=*&)I?CT1Zr2KwWxODW($RB0;ad>OCv8$y0i<I_8C`nJzFivNu)%x zkmzj=EKqtT=$Yj_Z*yRQrZbVwEYW$J0}JGwNplW_IS0viNIR44?1G&`3@q#nN%@`P zkHQ8GF=w)zU6gYJ!-_-5cK+!O@n^E11JTcc(;bq~Bti!Qp;y;Q?_mWp(WFENLZbh* z$S~prjp8$b&o1w|@dS;+GXc*o-`OWYcdoiOgW)G}D+Vc!bmu_0Gd+-lQLfS=$qo9# zdyL*QanCO8Sy)P=i&Eb7y0iT4bRsP)Bral{U5YcazRYj9xV|9POjh$&sb-X#32JsZ z&0h6oG9C`4wFPx%!kJw*v(IyAKmF{z^fp7LA*DGG(tIz|SUxy=pN;aK_|Q}ooC$Ca z<TwATzVGr%gG<$Et@<{T44TVCF1y5KuS%15r*E@dTx}r95WVb@mj%zFeFUpdxs5}* z${!L9S<5bJ*{6a(e%~FIhKs1AkY>nLcCpIb`cmC;ag9MEnTTYUklc8ULHU^AW0!l( zUsQ=JCxwNC3`3N$OEP8@vYZR+6l3%`;<%U_iyq$yU%Mk<OnxzwFIIc4gO{IO<|1r+ z&?6>}n5hx3SHQY{*C#Ml$E=pL$L(Hut)+`-ktimim<bfG7lV*xL|T|+VHYgid}W7} zLtwDW3l^-PE@$p!#X}^Rj9?cL%&z8^2Mt%v5ez0T*u@2}d;(L`ST#pHnCxH|9V{;3 z-D<v6!}sXoOY1rk!z2v5fMIbU!n%&sFiFFKpkZN&AP12o?1F^(b-kX#5Ec+}5HZ3o zMVMXNZI3-<b%%sQ5HQmL-rs9AM>8V>ObW0I0Tvf<o$79{zPP^QPF~u|%Y*ILi$qx8 zRcmSI?qch1m~1626mHHXCRnkU;Lp~2tV+^y;<j8effdUH{#@lBWgm8Ej@3SkyNfB; zt6}%;j81#9c}W@w?&c-2SGmOARa>HxHMVjI+XRKEt|C-dxlmnc5$jfAsj(IBjK@8_ z1m`Ljoa<Ze`SW1kl}iha+kQ#JRV)!Ve5-)ldkM5vF3{HZN?LHcs8-c^+vg|$``8}1 z9X*NWYuk$y9R2g3(r|G1FA28FCD{6gV?TCXe)J3@_*2<(R589eIlU;F78|8JFx*5; zgspNBwm|~BDZ=WN3qy8P*(g>gCRhYr+Ac1+77N(IC0nfQvBxd(0cSg9`Nhh`5_7R| zF1C3Vj9Stx7Mz94vsn3nFgkcu$BrI-@#VxkxnM6`?nRiA+eYYFxqe7ma!j8K2E*lG zgemzXw+HLa|6HwB5XXS2bm3#TfQ&FP+#e8FqP_T+I1<dS3s=JhYcvr_*?%lTIeqc6 z^JC}i_<y}QKEH_mS@kQ$v0<8CFdQz2qlwt68iSi0!~tQVUN{}wg*uj`js?}>vO0XP zG7XZ&*$D9tMS6#F@g35hfpk2KIENygLj~eFq=j1IpBDa8m~keJhr8YbVuUpm$r{Q< zYp@2y-Okl?eA6ikIiC-^vqaUdQKj+lV~+tbLK}*t4dtRXR(1UL_Zl1#qq?Dp-B2!f zLtMtika+QsT<=DYrR!7`VjPMz4&~xFybC{nE{Yh6C!=^w-VLP7z!V}Kij)o&i0P0P z3KJC(9m-{NcwbXHLVjEhk%z_baXzZN-n*6V^j3&^C{jI?i}hF$gx*_+6>4P2h2V!G z@k0e7Kct1iv_`Ura?u{E9*uO5F_68<Zf03ty(ur+iq<YY9*^V~7c(JAAj(C7govXz z`81DX?{+s@WSRO|7l*T?C@vVqF!@qiD9n9CgeaF0;(d*6GqO`P%tf!gxTZxfzH9%# zQ_W4?X<VXz{&U`pSJPHy3nZSfLV!e(K%!g(iFd&BWNOR(WGS*>({M<XC^AZv3n>X1 z)k9OJU5_bKBux~VCd!4H1PN)!b`@weS@9-Sn2#O>c>pnSlW(G2z)6_6x_75c>s$1v zl@F)?getNrirf_Cf>Tyz_tv&1R1s5Aq^YPtoQkwinB56UQ7$EA)$<cevtqZJf2lL$ zylRLqG3IzeQ<O_h@s6guJU{HN2I9al+molFT%byzz^X~uZiq?Pc!^V9c*@M)fgp&g zZxHl`VB#l*MY$Lj?^tXViT?D=YxIfKiXv-8xv&-ga+g=#v)q`!30_fw<P~Y5F!>U# zqFlC$_r<JJQCI%xVj?ARMY+foahE|lmx=_7B7;Q*LRh4Q!dyw#iVB3S1e{Anaz&B3 zq5`2Sc4+lB%k7r)ou$%trCmFeRuoYy%4Myrcp}ri{e$MFOwmqJgr_K%o+2*e-MYRs zd%aU_BY6bfr?Tq=Uzei`@j(JhCkZT$65wUF^#T<)517SBUr}4-R}}gyiU1ZBNMH%F z;8>x%q6l75f#enYoGz_64$?Sax*}~wxww^8<G$9OYOZlWQbm!eqFktoxQzEY0`vyE zn)UKobgWQUQN*h#m#-oYL|XX~SWzUbs6fPuv{0DBh)+?0{FH!w14L02sVFKCi&8D1 zSo9A3w;U*>Q54xI%7vq>>aME2H4a@6*Z-xnZWf2#Fh^Bum2v&f!Ofk{!Hs|C08tf1 zs)};4D&j!J?E~gGa#mCzXhm8m%whzps6e91ynPsqr2PVfR1`@nDiEb&A5nYw#+~6p zeJW1zHLbkpjdE#2fxwC)VMV!!m6a33NrN2)L{=0jE6T;Jh|7pC$coEay=}PLTkv}M zfIy2Pp+&if7Vl{6$Da3Po4e|vT5mwK8<mfleZH!9f-UiLh8dK!7v<t!R`!v^Zy}y2 zar=$>iz5C-1@d2{g~IGf#*1<xFRRyWFoxEv>cO*!wo5&_*R8H*j_u<kzV=IJ%q<R? z+v*f1axsd$807+Eysv%z9Jl0`60<4EG0H{9h#MYhHw4KTMP`f&gvLk<g*lRV7!}Be z3Aa5Gl^8`#j0)t$%$KllW<4nKGKzc|<pO3_tz6zS?dG~AsLLqgWt7X85tp%U1>h;M z%R$AvBvG1CM9nCsHNz|W{IMtk@Lmpz4viv+M!6)K4Kx#&sz{bmOj?F_O@l87-CsH* zb#X{4bC={|)f2m;=Cxb|r5Z(4jS6Jd2n&TijUu2%xrCY(*EHVSH``qdif)Y}xJEJM z8g?8_Ee1v9MiFzPT+Yn~o)t`dMAj&#S;M==<zmpPS*FFH%lyvD1)=l*MS%5qsNg7K zaFolz@eaCtxT**mS`dnojv`7&xh$O^QLS1%Sw$LV^&|p3iUc0zB6z~YbyF@!s*#RX z*{ZF&h5pMXk?c`q_9!OWV-_vrX0srIK8i#i<syAH(6TL^b-p<4oHzW8_hQaQRmdJU z%Zn!GH9~q4cWdcf^u@vG+?>vdCcsiQjnt1O>PNe%AOCXuFJ;q6|7fCrbRhaiS|~i% zoERU?WPErR(|cF2M%hP`?4y~o&wA~*a2`mb;-g9N(JsYj1GgIwG$*A;2U2=`Uq@;5 zdNg@G+U51Ir+?-zq~Hy8*!NKyl^#t>k7g=8dhejQi64#NjwWzNGr^tp%7}e*dLQ+W zzaZ_>X>@lqxjUNa?(ibAAICeX2j9a7dnct4>(PYuXcyMADrzO~<;h=4X+(WAp+4G$ z`ZV7{qSvFz>(NZFNAI;6OFACLNOo!*{?S9Otl!HijmVEC<VU-ZpAFmtOr50mXr|i3 zy9eGcr!)#ZnuH$B6nfTcfux-hly)>pJK81fY~Xfd!Xzz62hwu9J0<AmXmWG3%gteT zN<K^nd3Lu~f~N-r>YE^^qlweeOisrX9p}d6ZjGLfCQnDZJRNZvSN2Wp%vsUqR-2H6 zcT`a3(IoR|m(1fG-cm=Ude%18LqXq1lkcNhzK{Jy{<4|xW|Quy{=MRF`{sM-vwZi| z{`7lkTaVa}ChSMMu%G7JQPh1j={}mN`|zGDudd6Vyt*#v0crApw95n9z&*eOOUjRS zDL>x#z`yH)43H)UNHZCr^-3-6x}fr-N%_$(<)``EjdG7Bxkm?*d%U|YX!vL{e6-8( zVRv0-S>CbdYTxa>*y_J;dn-46Y3@L}M-$znnRHLG&KfmoX9YPPO&pJQaXiu@*3}&k zF^}F#t2~lDn#dmQB6~JaoiKwDtD~8$4(n>-DucJU%HXZ|wY)}0N0XzYnT`(cq1e0K zvk%5zQQfT2awF9mG>SQz#2n2Ob7X}t{+gLRg8Nx?`r}dOr{mKXonMa6&QD%RC0312 zjwUBZyPTX2Jm#3nh_um6(uQ@37rTZQ!_Av{um3GR^WujdnHx>ajdn3N(x9YW2t;o* zp*Pxv-ZcL(pk1TMuF)>LW|LhA6lgRFG}<N5NcIgj)rCNNMw30Gnf8p{Q@Xi61e!9M zOc~8IW!5WW*iHnhGMZEw?NVhnP@yn^5gDUhWQ_OaY@!!|%8VvuM!S@m4P0DIU4+PJ zCL+VTxOQ?5-rcTDTk}~eyQpueEA;g<pVk988ciIHc5yVT))_1|#%=QT8nQK-*cu&( zt&tWAvmFsN+C|i?+DN>YGOS+z`4NO_G(k0*3DvCk)Jr=z2-RqUYP1Wg*}(0_)JCX` zcA+wx?A)Lyqsf!efjpT-=f)QFb{51%(8$eb;%2mqn_2NJ?k{>5!TU3a&1k}Av<sUN zmXI>UD37XZEUw|0*GQYuE^Vgy+Jn4|CSFD}c^TG)T%BsGYfJgI`f@4hR^PIVmQPME zIxkO7rH?mCG@2wD&6Q}jvY-Wp8cjltb_q4B?$_ci(pvXxe(C*Q)1hOd$+6Kc$7UsI z$nWXYPfqm2uLdJ<qY1dtfq)xnp)mguVxyUe4d;odALDr)6<<xvj3nD=rfjoL(<ANg zAW5T%q|q*tW&`&dQy&>LI*>u*-QPitMw3RP18Fq$KIlFI1t-u}2h!r&7Tj?y-*Bzb zve9JOXqRQPa%j;yXl`u_S~Z%i8qKt7)+-}+j;7Lf0O1-<aE)fdHM{~>8}TRIet$3$ zPfejwqsgezOrwTZ@cI;8k4++o%xFSpG!vQO6&rOX>FG=wg&9r4jNYm+qfwaAB+O{0 zFvF~Fb}Q<N{fn@95w>R1uD@=zB~=<ICPOl2w9A<B4zzsYZJcG#vsx1u?aZs~@+lGa zx1L1R74X~Fs1dHw1lMRLTx0fH9)~@73=vSU(InVtmtfO;H9@jQ6Ir8OWR3UJgEQt` zoH6gpXUtK#(WKmHmvZABM|W?TVD&rZRU?3-3Bb`V04Hb&_dKj>ogOq&^1Fi>nLr%P z1aWwwO=-XN@+<GIbr>+H#Z-ngI!xR|>1ZaU!*7A_L|68u7v6zSK$y_U*U?O0$3LJd zpDZPjI=270VvX+;HDB5reH*pJk1F;X2<OpT#d$R1JeqJG&BS?lH{@!XWpzrISA0y_ z1oCJX$g_c~iHVq)9qnRv{9B`W|6wY=l<4qia(Fb;;aRWL(uo-~b~G6~+GXrCf4fo2 z(In;QKvItP#0;7_n#>&SGIK-=b#GPrnTZ+t@_lzG?V}@xqY1;&ObjQ9_nTXDgR+e# z*+w&Eo3)B~xArejlNEQMy6|Pcq`2tRFR?d3-rGXrMiX(PnZ(Un0g4+6OlU;ZXctkl zfrbK;6~Qw)5Ip1GP+;03f=0Ut8d*bO^coF?-QMHTP#7d=3=uSjNzkah{pRRygWQZE zZpJXVnf1!Jm8QZVOk)V9F)o-!9HFqSFzD16a%zmrscF2eFv!ptVrYzuq1j+tVNjqk zB+!^Z0?neWn63G?r<&LIX)aO>D5Ze7IjuQZ#h_qgNU$+3!A4rdH5-enoye!fz`1NE zqCZ8-qpjG-`1UD2Ca$_peB!3!0E>7)Mcn2Tt3jT|5Km)VJk2JX3Up))IWorO$nZ}N zoR2=1j{>2V;_-WFvw)6_AxFlz9GMl*<iTRCSMXK=Q5i$1jA5cO>y+?*qcA^$#h$vd zIIsJ?M|T0q7(--?agi~?V5BVo`Z0$57~}F|HqZiK@**C_xOkY2wg8y8NQN<iWEg4z z%3;O*7N8tRc(eeRl}L~=E<t8x4^}nUGeAbh5F=w;jEuO98)yYkk})L77^Wn%UO3Wr z03{hil8kXlGR?OG=)V~9UyRFt;kN@-S6f;_%vMCU7#7*``KDkN>KI{z7>gl{#keq* zRl9W7K=7n>A7vIpGK*o#EbEl;&Qhe2xO!u@B3#9|a23xISC6b+2yB;!h|7&>jQkbj z@>e!c<uN@GuVR?I3g=>$i;(P_{Kdi0)k{-l7wOPpX@9ePp!&PrCHFtNlkx1&|8J}M zxA?WOL8iqJ(_&mqi)XC%vol*-a0Kg&Y`mEMX7;D`V);l~q0xOY<h~e}`?6{k()#`R zr5Cc|W!(lr7(*b8ae**l${hlQH|W6_@?Z?pgJG0j+VMaY#*hkQm@14}tg`)ldtX=O zyER#Stud*R4`a6K!x;2o4EZpI>BDfYD{ZHcKeU)h34<|A3}&4MQT()G&Lr{0xWtzY z+-l631h<$#aEteF83`9dgo|+zF6_DW{Ns*YyMNWMC(uLeA2sN-7;;(++i7X;SZ#w& ziy^1QxSSSg5vl#0cbKIcB@8kyh8PzUh;fk?3iA-*Eyjhn_+H4e=V_N+{>RzL#qo}P zc&n#*VqZ!;s=u;tBW~u$+&oe8ju`qbhI|*p^j*|m%sk1b?2B1ZbvS<8$)?lsbf@^| zXuKQ!kN>(I=YRg=?AxeZ!&rT}8+AHY#r^Jd#CZgj7(+^oVJb1QNc|VS8>C_kQ8C6v z#dsHAnh;TtF(k+srXZ8Vj4cMX+Du_T^-k3uJ(}9F*;18RvF7#v%$K}M!^Kof(2QY0 zGxirhPxRg|`h#_<pIzR*-C0zoKmMb{T>kiv+q*StH=5pQRsQUGJutVEabsM@O=H(% zx#syqg_eyW%f`4Yo8VFX%QFP*7m#RUT%wI{y`<;y<Hz}_F)I_<qS+7D-lLRbNXjuT zDW~}k1wuH6ARNPla9DT1TkkO_;~0{0j7!Fm7FwEd(8)36<d{HCj<isivPs7=fpnbt z5NzJ@mKG5+HDNf$h2iiIj9LuC?wl2VXXE;Axz+k+CLNifn`6k$F-$jSt>;wQ-9{$I z5R+qEOpb5;_a2#{qGL$WF)l@?`MQP7jUnd7Fqs>67n4rAJwHGB-^X?bas&NIWN-{I zIL5``Y`#BPT!~ew+AD5Mj%4T<m!b0;=r^LPW60GpELUgC{YF%H3@JQ@sqnBXTlwr= z5Bi<k(coj}LwAsu(;+vr-D(Fsy@d*212J=x-eX*P&*p33{mT=)LSpZLh#<ovg1*2C ziQNP;h78LX+IEG+ZUi|*#^n%&sF3Bn<k|7z^Rgb&R%x1q3|<eBBr-%285c>^d_8<% zw$i>Jx3erOrdNEQSX7S;sYk}89{mRDA<{^OXe8sJk-oHgh)9wlB*`$5B>99&Sp{jT zvw=wz<dh6?O2)-0HQ)C~D#;L)WL#8Is7Vy@&U1s5k|9dTFe#-*Cs7bVGK3%*7lO2b zn~m9;ydvZBiZ=Nk8$BXJ9+3&;5mgf?gFL&pL9CMhy3@DSq{+_XNq0KSrjM4Fgx0_J zNIIp0vXLR#$gpLjbd9%8(m54WiwvnnhOHK@Q^vYISYCK5Z4(eHGK3WwHde$bxsPUO zkRUQd5E&Oi)O-tpa*!c8$Z+ML;xev(6+c`LhFQ@e?vju6w%#{bbces56K&$R@@NMc zvV#oQ4r=W&_DoZ%D?+Lo6T95AXko-D4;3Io3XpLrK*6FY*Lim3MaNV~R*>OZL87AL zt89-)2=gYPLB@p!t%~4)e{Sr(p6cC+i|XkL)<;E&$dE*2xDt^^qyd(9AWUQkCNf-@ zNDzdyw}?!UA*RT<m?G~gA}%W?TGES5AiYRhC`_hg78#dWw0cEPyvdirXcHN-i44;w zTCdL{zTKEU2`4fxoM;2L8?zySLdFFOZE_%kn2;e%$OOWK><*IoFa|o#Z#OoML6yjm zN@QFr(Mt8!H27{9X(B^3k#W&P;xg9lL6C7wj0{ms3{lKvh<GLU8OOwE62)W^#V(Vm z@dhGBMkppmC}uK3>E1r$SkvWkOqWJ6Zv%{CVl;<hGKXT9IkfVz*k>Sdl;}c@Vq!#! zVnT{y7g7`~3cpcIjDS&0fKluMjDi(C$S5X8u_z|7C}xU9uoU-89mT{5AH@V8#Z36f zCsO}WOpLlwOuA9b)Qu!T2)l|gVn;DyN3jb#@~$G%vZ8?$lYtZmGLWQ&!c<D~QS6eB zR$joCfcF!RVqzqZVj_=XCV8}8k41dDF?|wx6uZ!)4cu<bhJ+WzF1%=iqnH@wqL}2O zIFMX48g|N7zcbAy!%sWaro#G=?Z=nH@g*&1wO@3~HLV16m0J=mDJP8$b0GmpaUcN6 z)~h-cd-`vuchle0@GM3=DJDEAcHv1IUb!11krWe=6f=n=)=TH5SAOD_4ig-)Nima6 z;w=^O8JeMs6qAb-yIiE^TRnu3VuFxj7lgF(BJxLObvq*OLZg=yla~~`yrflS-!lw1 z3kLx^H}sC|YC68@6c2QDYE9K%(jPm^#~aDx#k5KKQtZ-~R`GfZ@h04mp}Y#gMhwU{ z#l$wnOt#4<&;TO_l$~Odonof!Bnd*=EkoHUCfO<G%1*3ld#q1$+o0%3?A%n<r933< z`0VV}nMbX`3{37*>~f!0M8!EO`QF2XuhQ!izi;FZ7UpX*qhh8R<r7djdE*fPCT@bD zVkQLTbw_*`y~W5p#l$?tOy)@vgS2)d@Dvm96mx;6y|fjgc7OehMh#+7EJpPyCiN-i zs!yVj>}OG_?YP3i+V%Lt+YyTqii!z}ikVQ9+B*<5##GNAO854}t;t{%F5{yq6_Y6y zyG*I@(fYM&C{V>DP{mAv$}fas+@23cx6(5PV-%@k5~*UQNF|Fw+^%7MC!;EM8C9!a z+Y65UwC!3oZ&1Hes(St9KO$J;dQ-ls*_}_V2WTCz4?qT1>@u)6wFYVtb-306I}Ai> z#V%4SbhLhL1Ik)4$yzZ}*4pkut{CmDnCz{XX>V<CAy<s@R!s6%?2@-uuR~(2pAGfI zVEQMYD`xs!yrPRQGbV46wqlpG)%?U3qF6DZSTPgDN;s&L|H~VsuwtUHVkU*v<W`y( z1+16^tk@-BZQy2OIwYqmW;s<2zPmv-Dke56X0cHZ7q5D8bJOe2^0(8;y+ah}MThhi z2J%ob@ldgghg#h!Y|e#@(SM4`e~Ov@(|TpBt9vohyXxKyhM(+(uKr|M?de--?MK%s zCf6x;xlZ0eR9uZMfw<I|sR(|GUGP)$4FbYWF~LqT6L#WV%GrlO-n*`j)F`Jpx{u@? zd}N<uVxM9c`{aqG7wtzD9bKHg=p0^LoONCv9iCrwemZ;IIX!%N{H-($OlSl}#V#l+ zfcb7em2+PdW3m3PJXoT;1i(wf!X!wzRP4f~0)<sRX!*2vGbw}HjZS|&>il$k`eJ^= zj(<5my(n*4ImhNP#6)u{CUYugnp3LnIq0&*5%;GMrHToqikT>tPYgKjik?1>e*N{= za`x<hMvtEggF>|`CbcSdsa1i3lJ*&qw2FzeikYO9j``Ka{}Dp6Dkicjc9B(q%I-g$ zKz1r7b}DwUQ!BHeW-I}GFpZo%mnIQ(rd)kxRFq-Yt^z70F$^s!AVW9OT|;+w4k6ts z9fHKr9Yc3_Nq2WhH%K=e-uF9at#6&5&w9G{eeb=mFmlK@N@U$3`j{V6Y^$E}OX;>6 z<_)>ZH@e6-%IEwL@qO|0)DGKGJC=Y#(wNlma9xj?;s!k%pYsw<$%x#|=F4mBlGDiB zW12$+<^zQ)=@2dF#P0F3_Vg&*Z(aGSF%jWm5#hQzDicibBU0qJ*jTvOtWDHDh*L75 z$I3Ft%Ev~TYHFk}R>rT^{%XoHYRbpeDXsk~n@7JiQxWo$D49NxKy!+KaYaB@Sr~NE z-m{Vnzm+JmAYf9Phb>%-<n`{n{Uqp*#`)KP<kV=GTgiaZuYossx6+7c!uJL;!PP%K z(tS!JYzcEEo}1hunsNVoo2MXBX=ZY1W-@7eQWJ=~nH!FeB_1X$>5Xd<NlmoBn;(p+ z7>=YEz8E^iZQ8260daK0U4NY>is3BXr|sRQ?X}j2q-W)wypIJl$AHh(q+obbup~*? zf*6fWHJ{*{Q!g>d<y`XkCX0ZDeFD!QiW~?s%aQ!#Y40du(_cu^oA(yrpDo&0<|2ju z-HIZT_9Bq>GQ5MpW23O*Yl<;X(`@Q4X4&dYfWiks;Z1Urdff}B?&j6U{eKd_F}@r! zD+fC$$~Y*F#7Af_|3&>g(uevm<$@rUn<SaLAVyH8g;3?zU%SY~((~J>`)v^Laf)^u ziz#xN{jx~fIb`A#Yvd4XR31m+dAmbAyY{uXmxwMf!N@<s2)7o<G4L+Vc%P+ro28c_ z5hQ~;Mf?>k%Pb{ZC2gst>Wnbp|B6UNl%Mn^Kk0z!T#ni6ukLUOXT_U?Ji_#MMOo%J z%L^W9fP}2-va{=7Hmu)i0AM-*kPgV-?>Q<!JQDFwQWj29u2vlZ35|frMnHx}awly# zTQ(~Rd(2o@8GwrnK;mufPeM%NH%oUQBl_i!Kv$mRtQBbV3Y2Ll|N1bqaSf)?2OYxe z%Z<i)Bkx)&XLrj~JdEj3AW~2wP*5_EhV8{I=$-5rtIO+8ba}E1Uo-+Ghbkf&43Roq zuaV%uNbkW&SPEJZ;utQySWa;Ohd4lD>UIfdU=|M`FCLH+51=aRp>d_}gm#Xu17NQV z47^l=fCNB(Wl!sV1SszieY4w`>Z=FHep0$U=$0>^StuDqmJG5Vlxa7uFB{h2{t%rt z3yq$IB2=fm4b6Gt14^6139S{IEU_#@{KrsfRrw6p<3dwT%M)?P7XzUm{v%4lBTC(7 z33y$K#tX?^AOAV9xm;bizm@hPEV<7nH;-K)c1c=D7T^WJxbNS2l2!Wac@>)oH$H#H zpxM=7Ne9#)P@v5+VCrKR>neVZC@c9e*FKqp7$1!o-zZvWH@Qnv!uqZ48v+(v9)Kke zP)<g<^z)=)ltoCGhD?~o5KAdG=W+ZWCABamg)pTIX1Kc7K^C%NL7+lGU>G;$7oCCI zjZQW>f8}mqng(V2;E!-Mi%<C{!xRutg{_kNBkX&&k8tux@8yxO+>AbmhFDF79n?>P zcs77)_p`aWo)cz{-`1)21u3@$DH%RlUVdAjQwRNXZ$L^>L`qf+8~*ihF}^5+5er6) z1?xo5;JS>N`A4Y;N2zo><=v?|Je8NmNgp1ys&yBoO1C*f0vC8lU1<!Pl}iy%Lbx{z z`d<~VHxkx@=WKz8RI_gg0)K$2FhI2%S~!yd=;Vs(L$Ez-m?Tk8`^)3=ZH$Uqg_1&r z(mERqaP(`(id9C6QASEl+XU(_xe9C3kZIExE-BHC7*(Yi+fFpVJMoMq%k!ViDwpis z@>zbqkqAu%C#|ReSk=sY>Zevv%~&6W2Z?b2mh3|Q;;O>ps@-hGqCbNRK@0Ar)-;Aj z%B52gw8%GzlHuSaB^82--{lDvMBzGMXEBfX$x!e>C^$(RSh62s>D6Eq5zuKOFRrr5 zl9Q5oFZz*&>?4gKi$WUh(Q69uxghYVAn-t-Z1xQ_Ku|4@R3$&Cwpf6$SP-~S(9_Fr zb3qUK?>h)XaWkqo8*7<v&?NTqcJ;qd7QRs4jLlSYPP!53a8+E&6#Vaz?U@z20dv@G z`$p=CEne?W>PmTpC~3$jX^`?nkx+u}l!fn<yL&V75@%d^FCD55XYX8Q8rtMEx|O+8 z1&CE0FL6W61&H*W<m56*UTMyPa){!iiQ?@}3VYX-Ugh?K6WGbV$76htx9b84ZNDG^ z7K;KGih6qG+!J(DzD?$U2XerTIPr$FSv+dOs@ZF<Aq~l|kHob_fa)SZzAScSvx=-; z<s?ClDpIy85>{EPI`Z#qf^HS0E)^uK{3XHkP8r!omF`~HoPJ6a{*Go|&pfUp+fSu1 z6sRS?#8<?448(Xlp~7p%eBYx;aus26m2P16oCOvPo%+8IFD$})sWY-KO(H{i^CAr| zDE7A{h6NbW0<0s5m8)Y~W4l+~Pf}f^3)igdTd?o=JGgSYCbKOO?FWV#7|{%z#5B$A zh%i+eaib)BqtsoS_`L>CD8VBK291V6ndm9ys{WK+iIRfINI`~hQfbwm74f1NATkV) zp}%Ar`6K=RU9$fvIoeP|O+-mSL@9F+>Wq0-0sZoMm?1*<La)qP;D1mB|MvG3BB(H> zz=%>{9m!bpq?uy6vgFz=_s9I3`*X&0&Wh*6+3Xr<bPd!lozh;%WrQ8QBrTtMlbegX zJRjsTOtC{kZl>cO55O%2()BzUKU;s)5(p(#7A95hMo6yRW&M$X(xYGsmNW$?(ZuEb zeIFb?z)so2PRUR{So3eH{X2mi624s6u$@-W)4{d5f>$PrOm`kPCBy7sP3LXmq7e3K zpCu188xWffNJPCpt64%DED9Vb>JgKB{;0N`%@rTb72h~g#As7T6sv+1qY@U8hpfmv zuWjwx@aJ13X3Iwk9ZH6cAy)B6&C@?834GIsnU{6WZcJMCeBri4B<<gM_`P1#-TU9y zl?K+9_P|WbQpCdH<-|B!chMrt0)LeSLae38(I&P8y=ck2Xbm^D)4HWSzffCKQdm=J zW7h+K^#DNqTLg#Qa&nDF6sidqs&$Lj%|U+UH4qGz1`d?=h?%kbmc(>|Lp#Ab2y;~G zRiyUu820gvp|opyzNzrvwl*rmlJ&Mr0GlNMD*X>#A2SccJZZ>0-=c-`5wx;=U&zcO zCKdeO=m0EO*f8@@%m7PffRiqO1;=ZwZHRJ|2y&D%cHzn<9m#r77$6n~NTi!}6G_ea z7$5sFo`s!yPHd%H#x^`!1stt%=%2^?Cr{0EN9OFlcVkg(@45u{MY~V=s!-{oP$^%6 z@^{(&;u`S22zpmE(<{$Tuz6IYj$09>*Y>@lUEODqi^~_b`JE#@G2~6RDU_=($vB+L zE2W*paUcH_I9URnD1nCQF(>#<exJ1>XB9)Fr9`B47Sb>rIuTfsnH&ZW4uf^|67&~? zzD5IgN}=1OGnD3K9#e0Lu)iBW_9u<M@H9+V2L`}9>C`nj%r!958d&$=T*v5@OSp$R z*hBqrs-^wu-~^~y0oACO>Gkk7oL&ZP>VY=&K)AP?Y9q38wgsU-VSztkI;g)ebDvkv z8q1S56K>HlP^FPjrF9J!Xn=9PIeQ7aRmwdBO5FoWRN_>K-v#^O%BrBHRZvJI^AN*{ zMiya0EMY?PO69J^3bhxE!V4y|@#gT$f2Mg1OfQF~l|zr5$|iRuZP@`jAWWU2h`*LE zYG2Fa0p;<{c4eQ(j0!@{VS(l_2HptHh}Dj^WT^7uB~fzJptX}#$@&_7!SWBYZpbOH zsSMg!1|77i6OccUb|gO30v%|9l;^c_{hWC)jAD7jglQ>-X-xrIrAmx0NxPd$#zW+f zG|r3aJ}@*6*32B8_*k9z=53meoJYBlf<h%&o)U~9eyE~H@A3kKtO7z(DU!~z<aZ_| zhzAhFvrJNtvFmthz1*iJR)~xae<h3u5XQ4CQi~_epp~a3G^7@l@XfwlHWZ4$@<d=V zMBpz=AI)|!qrphg;AB52b@yMa8AKTvf(%T?z;f$y8c`C4APJKZd~;WumK27G3d3Xo z#rKPlo=m0gOeLz9p6`__w=tc^(r_w6z%0BS>=9Yqwug^<`Ixa_q*$<S^i0S23LBgX z=)DREB?}qbtFZ|JEL8%ODkU0R!$xJlTEqh^;#q`f#oI)|ToPhjxB(zgtU4%0y(psf z0)>2?b~Gx-x#;81O@CvbZ#cBhRT}TLdL!HM1hr@>wP>9uwS35y#-B4Tb&^M|4C<S0 z*K83n*1<^Y;N-hGTXUFac!D}OL4ByUwZ3|SPi&Bua*)<pO3%kM(dAU(7A$oOPHs-z zDD!#bUZ*9(aW@sLqNS{&H4WDtAz~OCQkcE4U>nP2saL>J3>Q@gi>eP%G$UkxEc__x z1QT_F$>c;Ry4bUK*2)R19|D?FGT}r_X(>%<O=+|(<IV;##=uBp;AFcwg3+)$abp}x zVp`{O4Z_CBq=SKOurAIVm3|zVdpy8B{v&xsF+<?Vqv=_VqFWuC*cV#LFSMqc8g?^Q z|8Na03}GgQFc}o9bif>YTMsmNCt^VFWm1}67IO%UGz8XFNH9M*Z!3CBRZ}FV!0=L9 zQ^JM><l?l>%vu?V)d}S48^zy^8P1BcOX6co;#qX*+cfaD*VUI%%TsdZ<74OJS=tz+ zwqL@&OqN3@%AsK{_CpM#`~UAArOz%4^Ld&rxi&*w!Njv4;^@zHL2+lu-zz~m$Q%hm zN3@hjw9cCP`a{bEz%C^~mr_3B+>_)-sS2oM1ysu8;Q3mSM4Ko)q^BK)@d2<Sli}s~ zBiu<H?4&-F*P>$e%y)WSz~Hs``6Ti};92Ua)PUeyDy`{~j-~H&0VUxW3&fCFAg(Q* z<%C|&aDIIJrb;V4^8|~koi8a7=>)86p?;|=(9@{Y-Kg}YRa4mTl8#`~q-4~jL^WI| zcZl5(oFqHA0oFxRzic2dErpttLMe^;bg1vYlS~#vCyJp#YJ5879w#Ly>{5w6;5g)N zRZy2|5lZ<|>0NY=bbPGz+Y>7;n?M42D1+RULDQ+55bWzKv6$N4-o73Q7nPyfTn-R_ zUZ?;pPyi<L1To$e313qNuPGm1WN=J88O@O|ft)Ah-uHZBv#}PzHK`0GRRNQ#3?XC# zjobHYyg5Tz7b-D77eP^rpb$x^Zd4{aQ9T+;JsRh8rHr6NmxPHl@L(DkK3UlpPbczW zQT1wT@KQaUWc}&vm7bo`44hLiC3po?ThvS#?`w12l8Qok7}IatPb1cE{m%95&YAL> z?RfX(zPEEeO!C(4e|5OfYWDkJSPV5Np824RBwUl}(2kt2I#a+u1t`K6C`o9+Wfxk} zA+w4HSj9JM&>DJ4%c^jsM-}k&3P^0NT1+a@|FE4o3Gvkbji?4jR67)|<n>3L6f}&b zx~Fj-RQHFAAfz0b3)F!zY==)%o94d!1#7X5v~O#|7{-TOztUR8*sp$H96fwPsZV{% zixgE$4K1yY7+CVsv&glZrP?Sy0hFhVql}O1wcW_0+5pR!D0J#{yJu}d%(XEMmRPp4 zF6U~gQmD@dZU7qATFhEYEQ?u}pK98ps5YV{OMz;2x)!s$EFy%EVvb1_8(i7C?2!p^ z_hQ)#l~j<tJxhR1Vt(WaH6&MImMZ)0WW_HwF3?)V7Rxx7Sr>@9{!3IW2b`J>T<H?w zhtj9FRWaF?SR%77%qkhPs14Aoi{Fh!d3SHp<#~};DyjQL^${5tzw)S0_3r29j4@RS zn~FH>m2Idvdu{eOnoIH`S5#6Pi#Xy^H+w7uTrlU(8T$*a^J6c^epjre@n=@Bfk@hT zP`-I{Ce_AdSz-yzngLXXp3Gd5YA3TS<K7ktRANKnoyIWUu0nX$j9leyj>2PEs8A=B zZP@}WR+TmfWb7CaHhO?Uh%)bHP><h5Ys{L3tEPa)xU9t6SaMeESlZJ}r*9X-hc>EY zaw2zCQ%6cTrdwl0iLzWsLuRSaN=`N_c~Kb4h%8L%1_vx#e$n~vn*_<S`-18SXCI(M z6Q1o^mbsO)RE8xdfO<8A#EZaR<1i>s%qPP2uZ^=*b|s?-4G3Mqg^Wp0gPWGD^bF#Q zy|W)2InK3ha64x2Xm>acwQQ#9mSl9T;&|$o3N7oTW-UY1>v}i|;uy%ZY;bdCpCZL+ zN@P{kcrfBk8@Q!Vg72dm-#&|BK<O%tDUL?fwHsR+;=D<nV!LIW*R0u)x>U}Z_YEf0 zj1gG6M4?fa>_4j|rZc2{?eHD4DxO#@%b>cvqhynHXb?<hP&|r|uYp^0cpxJPsnM4h z&$(zS>!A1XW5&Ydn{}B~?nbI@xqo>H)QU&nt$}Rzf2_g#sbWJVN!ciJ>1yHfvKiKG zOz!#ToKE{m_&Gz0fFz&SzjTRVpty?grpZ;obo<sLznv3LnPyPKCh^y-SBsy9YHDS1 zJxa;N4-*>#!q2_l-zf5zL}lu9d!V*4B#9>)i+W+wkw}S%Z=X+eY=YL(o(Ordtf<Pe zn5fO)_r2EOZRKS#exznKvF^kKbS&CIIh({|3hK;j1)Eour91Mm8LG6R(Vpa3QO@~Q z5yK+cZlzQZU72c6)+%3M>=FWHU9tk8WM#Jc-+-C1eGxN0X3UHWrqt-X^LF%74_RIE z7r>d)5~r4FMeRHhT7MgnSOqY`d~@>anGcPYludQ)k_@fXNpiq-Kr@fLVuJodUY6es z)%&7RVD!SX(tZ+u#Ib)C-8$EkeO2Gl)9mDUdd;8LHvseV`F?N7mj3VGd1v^OV9U7p z88a=ZQtFcey`r1x^Mmun!AT=}^?&RX7Ibxk8kRM`VAsv-zt}0z>EF}Zy6y*2Aad6s zIa#&{7W9>OF5B}*l{W`u+sY)(OL<wg^b|1K;3K6d*sx?TF<=cf?2e`;Xf~{8o-T&f zosJsZ6<L_$eE!u~*R%G{P{{_D3OlE+^~<k^#xE}B3G%j{?wWDd(8(={#`@Y{Ix8wh z^FIaOUQr(MqzXfYAN|*V`VZmUs;N%J9Lfbsp3JOC&RRmA@&RpcN}9#81FETEI)iY% zeR67U$NtgwZ@;B_Yq#{LNowsnsd~#6lM>asuVzlSyA{x*vQ<^9;Igh&(>DW90(5$g zTi>%^(Q2urWgNIun>qoW@s_=*dpjt=a!bPw|IjjyxCMaNk$z3(tDvM>YM4pY5JS1f zf;=f!$q7qU3P}~Y?=00z@#uDiU(Cz#4sHK4{rPj>ifp@T>VbAye9MXPeOYA^wQ8MI zu_Y^v#)YxCvHmh&UhBt5b&pD2vW#kMZQy79=UBJ3H~bQtN$FCLMxE|2)l28kHpLu^ zDmMADy&lwuNWe_#u%>9Xx0}z^DhP_^D3w&G3(K->K`j2fVl5++Ct3#&QhXbNf)=hq zEmcxy3hSjKmqt8*dD%;%B6YfKz!0|j=R!J0pEF%^CWaRIdjsB-lbP<Ju`S5liEBCW z397ie4WjyGar#q?(@I#1N-A5C3#n}J7bB&6fj5+&`1`ByzZWfrl8y)u$~G4TOANl2 zvr7wnZQ`-fE`KL;EaSvxT{Pc{97=F4&;0`2H%*`i&e^T6HV%`imT{c3W**A^Q;G7j zicj~`Ul|0bxTgx2WFjrwE~Mi=7AxB*y&ceb$oFw?y491bcKrZ-4fnP6%dG(RYx9_G z@Vf8yV?oR~Tk5ZZ`{|1@=XEprkO1lB=^1(R>9zkj7@Y2$^tY{Lw4rprikIBw+3UQt z+|j*i)8<CLfO~rdoO85oo>iqAoJ!lnwS>NU|8?XUZkeWju;eD*D_?(H8TZZ2JZnGw z?dj4^O;fVydg+UEa(TPHYT~|1+Dc+VavX3GIU4`JIFr{kw*h)Lc~3^JOa$8jr~d{^ z=ZVb5t+ha};cIoPrfN^}YdTMNJuYh2<2eKG|Cq0jT*&{ic1btwUALA#KThR+)ZmS( z(Oi8xKH)2Ssd$>@d&F9%f_^9^2(@~Co_sow92@Fyx@%%+C-L=Fp-A};Z4z4^>N6Fd zx$ly<X?p^g-Yi(h9z|uB6O+-rU)pMM|B4`x7HL}`7JZ|{JNW6o@<$(WDZTTsTD`Gq zfc7(^9*};^AywD=)xxU<ReDa~JLBv0q}(Li{AkrE-mAMOYuNG1gn`zTPT@{u@Xq@B zv)+RH&mTgoAjF!U`y#vh&n6Gt<DZnch$SSp1`7`Uo;XjE9P?GnOCE)J%j9&d>7jXS z?f(mTQ+NCRYe+vC`?pmcinTlrV%`(?#-~kAVhLL_O}6&%i=!^OV&d6>7hx5z`?(kP z+|91WC!ljK$ylZUs3eB&<33=9$X~FrZ)>xQ-qHY5!e@0fSI-rwYc?w-KWU)i#TucP z_Jt@jg9KOJYZ7_jjXn8hKKx~1$?Zu+jl8GyFxk&0YAAbL{q_znvR|TY!{%Ia>7Ze; zU{QH_Zv3YFqy$M*(eRxPx-WdPs%wM?58fjX__6Lfnq$Q8Mo*|j6`S8wtk!=78AlWI zAxt#D9}ziGkgUzmbo0&0_~=2XncS=!Cd20YOnMegx&cR#H(%k^a^ieK+7b=FVMMy^ z`cQqh<ylcJOhq=-MadOfa{c$DkmrhqCJ&DVPX{5OvCw_JB3sn{XXl5+22#c%zUR)8 z!f0<v9lM_>Q#or<AA6mzX=t`ds<Cxyg|}n@-JiCJ8yDawdujDwma8=XhjfW@ACd-- z>-blFp&;(G)^khK<O}O$76{7Hs<M4A4L5!v98UhHQw(olm?tT6`H|+Dj*)`K2vG-F z=#m|I3UdRFLEF!{)wF3WdY2>5Di{NYRGk!qR<Pnu;{Jm6vi%B2gofO<v-dM1vUG^; zh=9X4)Ux+EA9bb#{if9FLuxyt<3foMDbQy=(0Rz+u$!UjuREDf<>FvaktUL2NGl{( zdLT*d`0z5Gi)xt+=uqGwz@hBts73zqf`s=|(as<v(%NZ$_|^R)twohqoy*l?a~dz| z=C|@w@VN5{&zMJ*ag`<v;XM)pgP)%wZ%b{>KA~xD>-6X)r0r=HZJT?RHgw;9kXE&> z5ZTzplk1UfxQ1{e9DxE+lGNZm!YNIlDLt}&*;23Vl0p#cec@*ej?UVTR~d7RsagSk zI`1Iw8R!IcI(f=wr&yKwl&5guF7QrnU2Se}(cY6p-L7ufP|<M}zYBzGl=16Z=2*Fs z_k2m#esQ0#UJ2A#eci|B$0o9{=109aLaY0l?oMC#$pLv8XaXmRWI+DD_4}|yrdGEF zaktTy)j>TJUHM7|56c8>^g*XsFgodUt%_W5S<huiVVBc|lO|PRUAEl<h@towfUI^Z zrx=c#^*n-G=+Oz>$HmackYvP2K%Amc{2){0=gPjPUM2bNd0FbZRC@j~$4D^r{WO!t znI>-eig3AKEgY`e#M5&yn-oBZG?Y}Z0b3D{1xbhEea*55Pm9TwCSS7`H715=rxPN< z$wfAs;KaLW{J%S4?!6s69@G^c?4LAN(mitVyp4Ta56==CL>F{Oc?1vNVG&u>HVJb0 z&Ah`Qz-Vsjw0WwH$gB%{tr-ov!_Z%el5aWJOg$%I(6;5hpTYlC-iQ4jqK)(zpN@Qp z?qYuh;A@X}6}0E!Kk0L|>Dw!>3Q_y<J!vOBXHHf?RjmAl&Ss6YYO>GswEeM`YaGxp zI$iF5nt$&+)L_YEF-*#rjrRLBZ(1Ok=Uii_oXXtcoU6@k`&;_m;EI1g=pTI8GWxGS zd}p;g=}lYd*kW~UuteW0I!<B?@LmAR?Y{kxjXqzV{Uj<{UWKDw3-^iI-Ve1s;NtpO zH{V|E&Pv@@>wQ4FeHl5un#t+cJ)NF=LqU#P`l$CbO4)aKq$>t;kHZbkZM?eNv@HyZ z@E{w=*zimL5q^bOaQRi>rUXxPk$tQr-sTi2!#VV`nb_lEk(PNH8G$JYxBB#XWI9!f z)8!G%&}udG<>Sf}QpV*4({1%pn|I9z5~G9AistQ=)#Jz3PnA5WG7&fz#Y??wBv8Sy zwr?n3_6|tQulGw<{#cD$dHjzA#HIG`(VKl8vQqyl1*ftvsgAszi<EqY$lsj}dV2xs zO)Fi8Q|m*j(o9N)at3O36<gNSy?ZQ&X`)p<XV3c+wwgTv<0wVf(}x$WYoga(>%m_| ze|AkD+~g@YhwQ&y-PhV+ukwml&G~7M98EL=(*H%t<!`kUN$`5H?sZ@u@{<Du#oyh2 zw$hGHIQ{VD0w)I`DEV%_!EmknZBo8@y}0Vu_Ji=@Estipe)mV>%3Ir+;)5j6?&q5) zkGMREM90g6mCDoI4OOa`?U-+9dEfNDH^<@c0{Nq1Tl3K#p6Ur4QY}9a%0KPU9G~wg zK|-&IEW(z!?HK|d5j9@|yM#&nzraz6bRy6B5PvTtBXKQ`X>Y@8i2?8Vt!8m2=CDgh zo<D^@`c7x*Go<?Bw7u~Q6(D;%8x@zY>9s7v`awVh9Df5}=AIawOOAYxIUe{D3ys!1 zL>6BYBK*u;+MDd$8hux%8^Ys#Xy~lWi<T)#Gxei0u4!h(YDhV(;w<mXU>4{>|L9y{ z+R>#qY+I4C>7uZN-W(Zcp3nl9eFVDlzBy_i_X+SOS@-aG=baqT%;;D->TLFDLYAwr z1@vhJAN|L$;%Kw_QC@{d`Z)#RNvF&^r)wB1!KVpZuEIz9PoHnJ_c7fOO?1OKfPEhC z_!0t|`yD3iep8Cx-o4`nd~%l9^t(s%SGL<o>woX`0qwB7vx`HY_lsb;K%wKakYj)6 zs_k@`$+f{hbkY!#8LlV4<UjMtpKc8_(McnSXEd*}Hs&#1ieIcM-e0~4pqS9v)sPzl zT3-G>1}!Tp`V;+z?^3lw(%0BW`P?3sNwR(F{;Y};6O04;Oh5KlK;<=}TF$xA5Ho$R z%BMJ}P$WVnWKK;p1g9B|-k(V8b9;#XM=0zWI4iuDEjA%i(lviB-KKf$5=Me_MWTfu zSex|KY#q;zTZtG24wD{0{<g=WzPmv2`#4_InXg(s614;am9BpV_~n8F)=1BEUcRPA z4Szs+uSQ#lLykqSM5Xn4*Vr&qu?{2IB8FvhiHbElfhjl0Y<u&USH-$l)A`-%bL;lJ zr^+ze6r3<}rqLPh>e<t`x<GPzmAsQ`Noj^DIB{f(ulEeBYSMU9!Xn5$WTX6};jg<F z4tP2;TD#(qL1uOaYYN;b3ZetBC#f{WRJW)@wq$$2xo1Sf^PEp1B`xG9Wm9dQA6cL_ zLP-Jz>;r7O8tMhFxkSdG7g(BL01GPJ&WZPuMx!+p$gf%`{L?D=F3tf-X3a4xw|ayh z#RwZL6HZNqJzx}zV~O;n9qKFF!Pp-3A?jv--;XgB=php>NVNk<7M7_l?=W-ZHzsB< zkg2EO2H_q6DgGWhZ-(29h~W<>=S4FcX;FOzH$@j>FqeCoF65{Oi_xmJvG>de?KG4? zg5#!99)Bn-;R-o|F}YznhciQ2A850R=f>LaJh$gHjB~z)gFjRk{-=*Ey9srOQ5M26 zbRP%OLJNSC%0s5|WpwVXCxb=^MZhqXAu*+(#t#kePv3W|gqzUp<P@pl=vKDZwtkxJ z?YM4!NV*v;QTo|Q1IbP(To1ZlHdxCTcLma?-GPlxDW}0r3bc@HSe*8N7RaGYg>(V@ z2KBQsQ7#hv9`CgYw+IqDg*tR8|8kfdPES3xu!|qPz}AM<+`7msdxxvD;hBAX*gS8% z1F!rrocme@W*(%eE0}YercPfHi~(c50W_#)Jxr}Ff56+&h<%TDI8Y%o-Zv3Tu7+@q zTZ})PMA}LwT}U=4$*h5ir`o*lZU{FGnC>wRVM)QNod!b!5xHHZQf~1^hpMd>$4;R{ z5AoW|Z)G^{-tT*N$5#q3Ui6FiD7?O@ze0rFz%jfqoh#^VJUyY?@5?ysC6#bHnw_a4 z4m(QbA^<lm=@58{Pw(*<aACxcMUq%Lk)sr-2uct)eG5C?(eC<nK8em}d#0vd*EM@a zn6>3VLv@;H7fL!HvU+$Z?G8)1Kd-=Ld(xf{bx?Uc`2x7fq~wHOOf~Lhcq1ZiFa1wV z=2|N+f7?H=^5`)o6LS!5M%~XnWXEp@YT<+0=b0s{)9dYWKZOycV*+71zyw#Oo0@?1 zksUM({AC+<tYhtv1i4bpFPeX(`#v2LY`0izWjDe?SCoE^(7!QN$gpx?I^lDN=3-3G zAAd_UtTT#tyQ2p#^;XO*$A)iQc!^AT9b`ygcR9%+BpMOuv{piveqi3bB|f9(O6C!6 zNB?@*5m-6zb;FU|V5t>k`>r6kR;ctp%l6=`Nf_dRk_;?DU&O^C)UAWP&UPLrK*G)8 z$#tE2rWI(f7k=Pgw<wSP`K$i(lX(l@Qn_GlNS)~A1KHZAvWa^o1aDCORqyYC4t@jj zZ>Q4CZ57uj4C(6Po6<4ou=;SXBBz7K#$I>(&*dN6j}&wx3p5*CKcmi`Zo2YXQtw)C zc0h+;k?RB-SImT(&0)l<BDo#$SUA2Fa4V5GWa<^YBxQI%pGZ1plO&@+Ed5XvB9!{* zt5fG9fni)@Tc-MoF<jQiEjj1qw(h=TIkaR4A(O}uUEc%_@aaQu7%-VULZ*qSdbD5j z$LRTIAP=5sA}CR}{$4O5xb%$hn+shijWR=t^`*T}5}LyqVfgcBxKXGyn-%YbuY38D z#DNT^bH2{pVm{%r*Amev)fS|EW_QXJo~^C05M(q19adZxmVMrTyff+#n_=5An&u!e zJtf+i!f%TZ@!+bs?Pvst^N~ADK~ca~yj07^UUpIU^1e$&I4leNIo=YNe{K0MT3Hq# z<W{mxm35JP)98I(niQ+9=r1#unnJ0vm}B`m+}g(KJ&xKq9yZ~f96NyJ`nom@Sq?Gk zREHw#(cjQXIpx3tP<}@KjmnUQ?WY>PDI?>=KvC8m^3k3OE?#QnAc|!2I2mR|mX{V- z?=s%FX}Kg6#4-fL0&U4BERUy$jrWGnTed4d9UI(y3zcD}WLe}pZzoFH2}4w7_)0f$ z#MeypK7r`#D{SCZiQ!%8y$ePdqgY>}1DXCBuFDIKUaKoQCX*O)k`ar+QQhiPUPx9V z`J{A{WW|4~A0FGbAl%NnL7VANYmibsG-A;RSn)+DelNq-V{4N7Xy-cS$IZ9i*QXm} z_xAAGFkuhrm^PTkT|%wn0au?yt~BNpj6k88_!M{itk-(QbN=MEz@?LLv^j&w$D{?= zq&xJ%)!uTW&45=rLMjS@afiIse?9oVihf5sN)vbdN3ydtYA>zeh@Xi!2=@m2h3n{a zv^l-xza_8z-y|;<@&*4Qq;sEPgD+DIk0oJ^L-X`IW4$@}w3->4Jnh*aR9Quf)U-lI z;Z)9*;Yro?tIrC?ekpJ(+o;}{S))R62j59<`$SrFvw4|!W_wG<2JdOH`>W1BPa7l! zccaEVz&8XE#52ndCAol%yKKW90k#D`A1g{RtmD)sE!1oVe>lAy?(dD=pTBx|yIozL zi(QQ$5=t=Y5xshNZF2^dOfpQHB);(}<_3TX-hwt7vmzcYcO<`eLmqf}Q}6%fW$NFG z<^Iec6r5&&FROy^T{zVoIPtE6UbqMt(ZnBIUJ6SuoZ89-2`dCs%R4!!ZuW9pVv*0o zAtc621xXx>gb(upze~-nKjAIE@5O2Vsv=P>Z0}lUdyNR0961r^ac$mztNYE!2J&yt zrMw4jv4z<$QTExC;V0>@Pn^8tc1%g*YQr=?J*Bi0&}Tp6_HE{WoN?2`J>JGND$oqo zEj$utzsS}QcsyRPay=V_?58J-TgqeA6==@r6-qbE99+mT6<$G<9@wN09;afd9=ubY z_)jh#Q>0V6F)BGF+B045eIm!xEP;<~VctuWHy`8|F3t01HDvqIa1DLlBs0CqB#XpH z<>Ph>bW`*%$5FxFDS7-Su@84OCpQ{)ko(FSL5fT?(Thc-$cLxoH>nqwgf>>pu^KDU zN49M5l(3s3KA4`*jSzOZ+I;9gi0~a7)`oV)FXw=&3)A3#*s0<w@>s<Mx`k^WX@FFm zO8?lDyS8*^@9|O6k%;lQ1TZXKzIgsPo!MW3IGnOAH(|9dl`Dnck#*%sHmAEBxX_}E z30&lye(<qr`B{k0&s2`FP9PH|x&z^e|2BComiz9!tOo&HonbcY(XGuz;K6_~Nqq<b zT(c?9Oh?$5wGy%us125TA>%5BoqeM5Oo8&9DBYyk`c95cZ|_19Q}-UDp}4c{P+Wb< zk)EDI2uDdj_2rg(`#<Iawjqxc6TZ=e>pAKMyRZmxP5HRef(Du+2=tn5(1Sa=l=IAK z{mfEIIszZs%11P?T(d*_IlPOSvpH^g^y}sgHY?e=d&=NmS<pF{XSHw-GIhzOJZ|jX zCG@yLy$6ZCtd$<KYUj`PE*NZ|mU)bFR@@jE)pPy+<<@0pQ<69p1<s9`0H0SDHN%X> z&02@RlXtxEsPfm}P);eUnSX2$x0Ip{%CKEmbx5QBtzQp5Av>=uL52&&E!#h7yz+kA z#^jQ%>g@t{tH6w->!CZ4?u#q6D&9zq3@SQ#)+$~(ftMHQ51L)fLV$z<T@Ae~fAti# zx*2ITCz-UowS%%^SAtm{*~4_RV%M}Iu8L=3{4Yg3vNP!}imp?6<YiaXlaSc`D>X{) zNI*JOm|P15w|Mq3u&FU5syvNKU9LrkD=bu(7(~2}!5FEPMnx~jTGvR0em=F|4RP40 z9S*vjJypM%<&!v|9)!ehvnj{Med(iMV9o~#|E)#&xh(kHk09!nYPM-}yu}p$&1j}2 z`FNqZUi)OEbZ(XS)$QV_+}j{ntgQ9&`A{SCqcuq+AdL!1u7=|KV}#H=<8{sOasy8U zWN-L~0L@EyNmu`bRpLb2w8<DGk!xP#t}w~HH*hgQhwH>)r@eLu4{;FUzs-gfyOkNE zMt`mEJO_K0xGMNmQoso<ipiQ5oq$jY^$RGL4oO^>63H$vek~LpLCex8kSd*KsA3S+ z7~3@=wywO@K>Q1V`^Sdc8P~H<OJYfJ%7*EhBE9m~*(MSr6)6bIo@NLhbF?#C4)kcY zW_gK@Cqyvhu)z)a^FHO>aSX=y0^Pqle)D0@el8``MlFXTieuv&+H0S8NVo}{Qc$^1 zSoYxpeFS{V7AmX?u=mbK<5F7LMSsf02^Q$W=?>ub(Gvcldqdp1b`gm5?6GY)E(MK$ zK%Q)&7nPI4`c|NumS#Q)lO-d!Pl^6MD!l2BUWj2c9aw+xaiTut=*)<F^z0u(Bu6S$ zs%(oj2So3R)Rt}2GR2Plq<hwD+O;u}p|B95G*c_BcuDW&mq<^Y1_6xKN`J?y2TaYq z?`4+VOfm~I?$Z8L`-g4OaLF`;xj-BC;ZLBLQW6?P5IuZ7&ur~KXV)1Lv#De?l^!;b z(Go1wn`}2kTuLU6B40OFLwUEq4YYWe?>5#(DwH2aI?dp39l^6UNjSY72}$I{d2%V0 z`KBji2&S-?Y3ZqAG?hT|H%{qfK7s4!n6NW$|0*Q&3DDDH7bh+%gGHXN8=922nt?6S zwfOf$*7fE`(e+wnF{k+sBTk2bFXM0GabMM?`dpTLDg0>$(_?AKGA7A%;BN>H|BYC~ z31TwDf5eG&fX-<-syvx$UZzHeb$wZJ956~7wA#k<ntN8($tHcAyoTs`BWUMxay>Pp zktNA278jeZ310e0!adR^nhC-2-u2XX3vv0lJ`tXgLM1P2+oODW?2`q}mjX}If#{uX z|ByPGg>tdd?Uw#L4H3#6iB>ez5MLx%MfdzNknYoeQfQ$iuIbxuv3GG3j#k2mUfvMF z{s!|Q4i!on!H_lM5RSXQ7DRP04sK-rv)R|a{k9@|BwE3Yg9bVZ{{`r4HU4sG`*7B- zNQtK^tZ2iMyga}5DE5KIr^M6oz&BS36$FdsuuL6W4lJ^zv-t&+t@4UVD-!A)#`tT> zf$T<Rt~G;kB@@BuEu<U}l}Oe<%=XufE3G?cv*EbP>Wn9GRa5QO8(x(}v<@{}%PhAL zM^u9tqQBn7ExO(kYMDUBK5VTrTFqPxYte9`^4jWtfiF@w%RR*IQC)4>%xpI_T=y5H z`2#58m`BcGF_lbaAymyz18OgJv=LwNG~{;mkA<8XXg;?jpR5t;uWJTY32l#)+L<CY zvJieKKO7H0;X2iy>Wnb`Os*LmP4`E*T39z&&?Q;OcsRPslz^$81I>q^whnbsEC0QA zNmL+`&*{RSuw%sAXQdOyM;Y{&-{JwS`}%xOt_ixODF%>osZKe(4gKIC-w(C`Vg>DE zY_wIJELO7td{#R1V`(dt2`W~TIQ#_J8(94Z#3X#UkzXiG%huXVWmAthsQLkRDP-SA z8~@gh7TmtkAq6^wUEi9qY}e(Z3;Go9qm|orjO8501(AO_w)~fUc<S&yjq)1s6W8h& zmvnx|4%=9fXfN;Aeg&E%hO;tI|G2DcZkOwtW_5WUh-PIFIUTN;SlA(F7;9{7T$c$F zml}(vFxQFIxvW^52w>gr!cX|Lw>%`1$$Rc)jS<a?Fo2Isiu+WR{qTBj>|5Yv*q}T* zCXm9weVD!cPGuhz<kSb7u(2OPKH(C%NwZ&cl%*$H!2cCaxaE0W^(dr}ZYbnD<@Pl9 z9&h^?)!u~)!~7dPFyB$>NQSgdt{v@NB)5oox;?&gtn)jP`~Y6<rgxKVUj&;`-|6y* zl&9M_x#$nEyrVcljd2MUTe`2Oh-82lBp%23ZLY(+hWqG(FU2cDkzpU>rY)mnv5H@P z`fIp(Sx`Sm=XzR&5zdrXgeAj%&~3R@D9Kr>o0S2{wuZ6&_)(H)oG3j_&q<H?r8(#) zGr%htk^c|*9RUd*?mXx&?iU}T(#tRD`^U}x9>jM9aPJ~f-aU=}3R6U6qd*`?z*yL) zP``gDK1|v;DruHoTPt$<NF*W>m2J-ztnJC8s@FN;Or$6(LY-ru9jfo8D<L)+onxU9 zzL}^sk7>*n$V`CKw_u^0>GR_{j4x+rBOxc_r0Q}*Y`QX%>iwg=378-OwCFb1z}OT{ zd)4o|QtmdW%3j<akH{0+qe6hIe80nqx{&>KeyUMtcwO#~UphxOLnKOzwGRU_-<vrB z%+Nid{jGwpV=9uGj7pFk{7Ytwg(Wq!$1BB^G318lx$AK=GjZ#sU{inoe)QjCh0m+? z-!~@Q7UZS2b$qp9aeCwLRQ>+Lf%TFn_ra)#XB(d<kJropl3cYdThgj)SE}OB`qn%< zr(YLtTen$}qgF_&o4KsHmM%W|R^t8c`n<O1^FsLSb?fZAGAtllU0CY0KKh#M96{g_ zx8r<y?i1}@i9W>XlEXbNeqUqDkNR+bUE_1(GclY2)jviP5Ad2G;!nPA{&SpsQk3W$ zls=MS+WWda+WTAH8b!O7>MZ;hm)FfG-7DLO*}SIO(`Y?#ynV3dckkBs)Y-_{wYBNP z*CGAY8i6W$QO(ZcrpCE-l2MZN{Zg;Ah|HtS$Mai>>C#m5XWOr<Qx8(KJ~_)V;T?4q zqyJG|W#gXl`j6^rR4S*`|EIbd{6p2ID7CR#s6=b`Fi{^UyYDcq`QP5*Q+Liwm;1dw z{X><mWkVU|LuLbK+`yql0OY>UU`<rw&&Ao952Kg#yMR)UP;9fuE#;y#G(wF%U)7|r z?R|SEwhXTnv^BlGNx3t{dpl9aPi+U^AM96J(#5tQY{aIMcQgdsHHDte?09J5dlvQI zWZI(Lj%t?;D16)6zFhT9ZlHTkZrI_)3#4Pu+9b%Xn|m9gGHn+26B?RDM&PZD3|Xb? zqnjzJ&XPZ(D4y?VKh7`U8YO1t{J8pafBDUnl{DggFv_(7*{>bt9ws`iF2(=bVw`+# z8p$ciF}uy}D!enpY5UH_&Ce&mP;4_9J~)If65wHgvCIDB>aM6%bRxT=<#PFWL`1#) zbRfjt`7xwRmDz*O>-nMA{!P4@@T&c&-8HH0&KK{O$Die#<^`$9d5Jv<c>&;7D0$-8 zTN9EkpNXim^y|rzvCWckLgPNG%%dJ<AF4QrP6q8!gd+`!kZ46jLVI6>XMe6WTBw{X zk7fxE*Ft}Vq*}3~@U5KAXc^nM+QnyIOBq%7mBDE`V0p+w9p6fMF{Pm?&GELmKU&;k z3)gC0{h!q*NMOB9m5WW8<H?Ye<gzv+gWkQlp&{Ae1V7yz2c4Q>rd;#%X{31!+3my) z)!b=*T?Fs{bPZ`4PbG3rBuiH%vojS|WJOcMG(5vryd!*ERG+kb3oc2%6^ILT!w+`k zXFBU;q`h2`h`VxcP7jbF6DWTGi>Wf_Ugna2AW~g<n8FR|W?>}i&`IP{5btK`z#F-! zDP11Vukl=uPVhb;9cn%{tX7Ga4cgJ-UMpdkSCiM(<95zvP)tfwnW<2;&y7g+aJy-} zd^mo~esk3sxp7H?#B`OKk8)V#6IUX%GhNGZfA6LHuRo7%9OwsC(c#0KH{f<yGCw&X zF_sM1={BRLCwKrtTyuK6GBmfCt{=)@|Lyi)#=UxfDN2Ys;*=0ucV`M`5ZGBf9-qv+ z(>L?x!E$S8T5_j2)nK&2(iEf;N?ralKfd1joj=lvU|#V+MNFATTM5BQd+f&&C{A%M z-K>VUxrt~uV6ZZcVkt4CzSgQ9Ez%Vlw5a?m+|$MD?&<EhmHKk?Wz|Ul?Z*$>oMJDI zoCDs2&@HVc0wr9wi9U=COGcez)kJEUwN%EwddHKgIPC-%M>@67fyq*-zC$<<`?CkV z=M}g+oZBJY3@3lHKD_@)^-|gB%f;*cvf231S65qk7oNHHF9d&x9=qQ0qS(>psblR+ zraq8;zay`=H}UoAR6qu<G(y|aDFQ}L!jssb?wiUP;G2j;q`x=4{KUjn&2ZqQ->Ec7 z>m#LPv@$HD&85M^Ma*#Ck!R}fCDFpDk;*8{nb8>Lf1`k~B+NYAa-W6U=H~nmS7{e* zWigCk)!*|ch!BS;X^a>Dl&&sQY`KYN9n-Wy6iK3^@&4xxe`7s=>B#FRE2oV>ccfdM z371dvKR(&NKRUD~3ACUp<Bm?W*!yX<_0!cp^R>UEW-mqp9$_%-2DP#t6`|rd+Sj7D z!>X&}mc10U?f$Q@2NBuzgqF{|lFyk^;-}`NW_@Ve|KO!Q99;|>%LbhVl7S{SJ?57l zRR7%HEd87zS-(87ljWrkb1e(icSpHFPiinw(|PsG9j$h+Z!mCeH?B)-Ed4PyKfb$K zcR6;Snwz_I>3IG#qR}KnZKMTfqyka%1SCFiz1KxKc1wk(P4fD^)wTTkM=k4@-)sCS zQs{5`k=L~uYjtV-8ry5XLEAc71*cm1r@9UsTvm<HG_}|ooY=Q%YVW@99MR_sc`<#e zqqfuzX3#gz4B(%ou6>(pqH~#d<wOOrt@8LS+5#$Nvs}Rz(j)v5-<O&ZmK|ag`ij%& zQb<{&Rnc8B&JTOFL|@a6FCA^^ivt<Y_PtTT=^jTfx%Yh^6-OqBvS9n=@%ulGZpwEj z$g<*h%7b<?c5u`#fDYbTdk@g$qxqDcws~9kD^6|74AH|gSdQt@z|^ht{qyT&`Y&_e z7hmn!j$YMoL1RK%u4qbnd!$~Ypq$UnO!mmSKWk5s^IFS0af+po-FeF{-G+v@2n#8r zYo@u)3tH34Zfng*wwsMZa(|yX;ldILF5I>DE}@(WYMuu^x!+#$8?)lnoGvb|J%aLR zEYZ#BmWd9WgG$rpG`V(6P4!~-a`}HN`zQ|-L()~JZ8H8O3Af7}c_m+5P@d707aH}a zEAs^DwdWjud2w*N*!&lQI|cg5kvHd(uC*+ir)F3(7o4_G?r7whiq&Q#X>`IJRu>?5 zrRJF5y(v^}IX_rTWLA7@qc(n3p0ZC*Sz5gRAASC`1&9cN)jXthRNDAlD}c<9vFtOb zSht{%gHf#PO+FU0upHvNu_t@@!|$f<Go)0vpo)Vrk{Mo;m%O*3;v>oH%`JK01(RS) z+JB<eU4NYZ9{h2Ey!oH=rzZqRVB`2t4(@-|#Eim^Q%sRO?iA@qKSZXi=A|myM)T%_ z^XALr^imVA+;AtO+O1JGxx`x0n`}D9Y#vAI1R@T&*X)eFXm!O}(D7|M#@rrPK$|Wj zEo(Ji+=r_&Lr3jA73nPr6SRFzJhO?jwUtEhDDVM2P5R%)yibLR<qX)GNBh%@&D6$c zGfxrf35({u9z0b@?7yO80si@<``x<diuoj6Hnn;jOvOot6_DMK!Jp0JyJhm+dv@YU z`nXUTF?p;Lp*<+N-=02twCteg8RvRS?ms#UukS^1QJz241EV`{j}Y3&i9#HZ8IF6- zM2OcaF8}enUNw!Ub!uxRDYz&O6a0{vBwM#V**X<lY9B~_(oI7=)mLXaR={$7ocOd* z@%ZksmEVt4eEh-w9g$x^GrV2r@w-xeOT(S-eqO!`dynvX?Tj>^a&hz{3ntOf=B=f6 zKcSCxREE8bn<C{3@RiiSo-Y(*cz23+-Zj7b<c#~*?~$Q#G)b`QqoD~8l-_-VtcqkN z?Ah;;JCXI#@m55nb2IqL_S@{|7&Wwki%;im1>W$JcXK}^mp?f#@mm-b-~H%<VG~VV z3#FH%Cml5RlKlQPv_&XN8Qkivuy+D)wq^#^@GvBUCz-*&^Lu=7e%`(8nkH!pFs!TD zvSd1(uVZ&|y?!SKM~;+&_Z!z)`7T(rE&<O!NTgG`y%iF0K^fN11DF*K%Mt?$S*6yD z76+jTMUeXAFhVZMx1Y*HuHQveP^BQyJ9cm(sxk(Z1zVDdPmo7u)u~2h1rZBH2>Pof zQOaK4qHM--sGwl_<A4y#n3lD|Uo)KwG~d8}ADLdAQ%5h-El>WLaF4m3*^;{JJS9L! zEy?sI$lJ1dS1~Q;_5~4n(u#x3gd!&1PFz=}-q(CO{)TZ`bFMXJY-%hi)sn=m9bmAq zUyrx!W78NX&h&AewvkThN+3-S%G=6uYW=EF+wrOj-hD=|h-hItjSNxb(?5UM&qF*M zlkdG41GLptx;6&LXX1G#R(J;BF7B75pLLK>JZXHPG@JOavsLZoFXpbfJ>mLBCi$pa z$<Huve$B1Z*RwbT&g+RsR6d4#vJVqj!z|SfQz--o;(H1qHlb$!W#-oiQ>g?8hWU1( zH$7z=C_bo?k6fa_26};IL)n%mO1Cv7rzZ-$4q6W3I0`Y+G#9jtpEHRG=GLOtBKt_h zO}~|viu-<9)0d==#Cb$Q*%}D?5)?M)<MM-N=i~3{lCR$F7<@{3#2{QxAQc?+$dt1G zSe`r9;aqa9P5MAXmJ#BG62&-yY1%Dp=tH$F*#ym<#bq)@AJyJWjlxg1`?@m~*~6*p zRl}SMaLTKvAp+$^0W~FPFkH6zm?YLDV{G#@zS#)qw63{b6tUvzM!F8sO^&Z6>N{WT z+xu1$HsQjnO-nkF?q<Cza+^uqN@9BD>0C^PhcuM&3lvZg-RAh^g$gP$z)NX#Hwy{E z^|-wB(8DW9g_pjWgT*e0p~L%ABSZs{B!|RE-4lG6S$CXgnX52u^OD*z3s&^p{8*%? zj{Q@1c6jC7BRH4|IwCUMubePAlqd*`1Z!j7#DaDPSd|zi1}?#CCY&{N>s9nFC6-bB z>O5lbFOn<wVq21!4tY95ib;4w@w{S=KVudK4csY`1f&F&e!khOWHYVDIKFw=#n_r^ zPr>aXSk$={%WYjcE5FTJc*<Yyb-3?DkfmaR@^tWG&D|nO;pw)#bQi9l)^{wJ_K}%` z{A0<5rJ7J-@wQWcA`jl={>`r7gT&*=^Q4-f`AmwBr?)B=T%hhWsI=n+ZIe@8V0j$* zf>e`9fhv1puN5iPt^Tws<Nl#qlb*<lqH#jjT@Y|Q?fWicf_r7(3Oe`9COF6sN-hLu zM*2T&op(5!@89=ZRi#GFTD1u=VvpLJNUT^jTeG6nXzf*m64VG1d&V9uYO5MiyA?{! zs!gfdqso)-_jlj-^E}7%97q0e1=o4G&d+tkdA>jI_Y0`@_KM;5p^7~WSpg=H<Z1;l zi-XB9kfxiK+C<c`zxNyxpQ~T0b$VR6U3+wA%_-!4Z&BFWN?QZ3Z|e&SM(t~_TIF%y zik0mRBl`q#yj8>=;>5en*7}8Z*w{K4v`f&5w#L)*ZOjd0A+5@EhkEn50nDZqFtUc; zq-j>QUo%mUMhA;wHyc`dFa$d8V3~iZ(`>O|7p8!7?)Z9mc(J*4ZhZVH`VC+)x`a9( zR$>SQsNl#Z!?so9uT;MWb<sOY2mN;WPCsOdbQQ!kR@^`IX07Ii@Q(_=$(q@&mcg4K zcYwIQGCXcC{3IyD<l*v`#3Yt}ABNn5)JQrV{Z^w7GD4~f;OGlmR!)BUOvki1*az`Z z=!r`Uj2RVOr8$moL|J+&&w1H?7AO28e7V-*cr7qiuB!vAFQ%tUT3(D>W<F)RQFt3m z8U=$=y4efWe4l$)RbDs^=sLo{!ND--uR%#7Xv=}FSUT+uEQTm;ud`gDQjrvzv#J3E zQ1g*;|B+*+3X1A@ah~KZ4|<xf0aYrd$HpRIP$48uQsbvgQ0`olT#H8)e{<m-EGYs; zu(eNs#uz~fIP%uyDA=kRkdc&cr!sa=s?_M9FpWHR_9JsB=4M;~473twEN~uq8<9&t zXdp<vYx-tp*PbVr`xZs*4*lBSbn=<tc8j2QV)mHC&G=7_KO^)Udna|Y(|ov$g-&-G zvrH1`<&BXA0&A&7ea<#VM;X&`X9>h#;$XyDz$SVeF#LTUj@1sPs|%DUp=V85PFvV} zuVQ74d@F#PDw5-~t7be1GRU9;+UCH9%nIcAnj!Z~-@E&U_)R?ovY$6hXq?}QYE611 z@ZOA3kBb7U8v}D^LB4PvcA44mR;AZVxr?<CHa)bU9pu+qM>!N3jy!E-Dx(^T-x7zv zDnW5ifW?i=qC&4;&UYwSPQA5IiO(m2Mk1tvO;e3yTRs6lHf-;GA2dqKqBqt@!ll_7 z&qXPIA6QV%i@p{$$n&TA92RtVaCW2~q9G<p+h1bCGC@+w4^WBBpf|C?2M_5c?aJk? zEetQmwJNhD9qc%MkbIowbF_Wzy>VH$!T3q^XR+c?xZW+C4cG|fpr_xVx?2{aWOa1M z0@VI)J!r<_=$-ZC6@LGF{9#w79^whrr&i*PUx}elMBYfbj(k~_0RrZENoT`C(Dw=# zOJY3<&kNY-ELEd1X->)aoUnL8qlz8RArBk#=<N-W6-s2D1GmIG6&2eBHojrS?Kxf< z@#D;Lr^2INiZXsx+AZQRVxRI+0EUIi#McwFN{0NQqA$TPVr5|I8E=bao>;2-EI4Ji z1k*xSyo4u{<jtXHHbBP7!TnCFpw(3DVmsT0FZ1cU4Us}ByL?<pAA2^lt!^Mg(zsRh zyl(=Hm+r|fpKgYD_rA8h>r+NgmzNqn9WeJ==?<)v9+jDjTc5dvH<n4wm}J2X_lH34 zH>FcevIc;iW<Gj653zAMc&LxwE?m2zLkR`rF~yQq;-Tf0HRnG)haY0X9yVq+>#-a6 z5t5vZf2S&6dtpDjWLYZbK}m|6jb)Sm369&mnPo25KThfbCu(RUAGyooAIR~C0}F-~ zmt(<`c#yG>>$!N8u7;~4smI+2^u`)j0DnTL@U?P!K6>DMjgdd`mhj%q^yZmR6W^%! z-^lH1-0DgtuFc0ru0xw=uRI`DAe-xneD-twdDoXMQV(siw!FN}1s4Ab>$J!+F-nsx z0+JMb`1OlFV!=yzXv8po+eJfwqjH`T5ByoeR0iM~M6#yl?fy~BiY0)GRN;=37reBa zL54G14Y&V9HbN6LO5fVke`qg1uqI1-sIqUJHRyRxd?X5AR5O8~DzKTQ<{wK%^8Iug z1_QE0-+LX|*2Pf$A?@>m19}-+*hA@6UVd}rEP+U-)V>{GJ#c-iqDG2#;kL1^P%rm{ z<C~>Sz8?VFc4_}^5wfp>#OJ1&2N>VLd0VAYY_h;Uz^?Ixzh}w8Ebl=2kI;Vhwh_;f zjXH^`Xuu#ul26ni$;t*c@_p4Gj{g4j5<wGboAnX2OVn;oSzz_EPJ>j;P3sGUZWC); zfIf3>w!u%62E!ve8_7=&!ua=uww@u{q||J)$b9!Lpx=Cn*s}|y4s5f|K%=YeNFQ>l zTSC*fa-4gs6^6H++5PkpN9+X~*ug_Q=yTP122mzRABuL7u<f{0tURh3!X=(dGmg#F zoR+W2mI87PVae9;ptNVVnpq?n3a#a-+m6E&Hz7&7Q@Wn;qUOf<McQ4Zw~|1Gh%v1x zR}Xl7lhnj4^7I7NFT>z!+9(CIn#H=t4L`EjV<_W^e<oilazOZrxn+j%48vXRz&{;n z*02zbj}+Ra87^5?9n?h6e}2(*h8NXKp@wMFRBjYj7<b@#?ck*Wd;%d%nkL1;*uhRb z^b~1v#hFm5O$wnyU^A)j*R9$qxJli$$U+GH>lU05Fovg=OPLfc+xEw3>Lkjf1G4qn z-76_=o<NgVjo_skxb}~8kMwG3a`40kaDW_+d@?NSG2yrfPizbaX{KM6PNhC;tdN>9 z&3a}+R@B7t85_$IDyXlVzJ6gEiT~54#)1>ncS!e(GaGGoEQi4HSSb_qvW?-^H>Pd@ z{U>QIk;WZ|bi?=2+Pt0(L0FIXBP|bzL7c+g3W$O<fRSFiYDIeXv{fWeAiH}U=Qoux z_GqPZ(_(WhxC#%g(YyaHT&aK3@MXFS-mIf1UWn4glc-vX?(K4JZ3j5Ws@M+;ZpTA+ zk>Mdn>-+FT;tT*0M3PMSifX}Qc7o+xSU)7g<-juAf=Ig3GHX(J)U;trw52gxl@5Z6 z!)5}^jU#3|?mOUHlxmEJ@Vw6O(lp#-o7UTeGZ$gO<9Mi6JV#ZyQg`i*3c?J!1v1#! z7>fO*Ys6-LF*i13dWtYxc7K>Y|C8$V%HkWM7b3ye1KIXpW4+-$EmCwVvqYA)G+TJY z%dHx2Tb2}%zAoC2%eE??w%;AR&uRKPDueC>r-HSh=M&XWMf-v6y6<|H{lq@aa&u~v z61UA7d^vd6PHI(aTxorKd=F1}E=s@SggQ3b*?8NfQf#xpe*4IsW92)!AbkV0i-PS> zs6$XdFN-foUmor9(`Me%S=9Sc@dy^Yj)!JKynNiEmfmVtKv0udTbM<%^^f)gGI3FT z4BExP&c#rC<L6cwvCTQ69}QT6v?qw}1sj1fvw2RJeH^*@NTBUZZ`a!ax*>4x4^pVJ zW!sT+WDU0kQk2g{C$dwD?!-#;tL|%(a(_6!y%DlEONfq6)474BBKDdwv&Ki-zu`eZ z+NnX~Sv5Y*-wfV&?6fIt-;;!+kXac3eTbxV&2gUEmd%~|M_G@AN1fgU*w!-$<yDf4 z)b3!~V_Wf{^~!T3A|xH~K~M5ra4|i1BJwaL#nAsop`gA|x{JD52VP}TsW_I%Z-Tl8 zk1&UWtoS}Cd{~hFPwm1@0_XD;7Nlb#VTNKHwANT#_pc<C;_C!=p%kio*><y?A24Y` z^6%E16sq~s<6IuNS|PP>nl)<T&0S5^G_W{Kp4gi13LGuPX6<}0yoVipjR$eK-TExK zt{0ixNbWb==Y4~OKtpmxc^B#z{mNx45;^|mS3EcF{@X9@n6X14m&hoO^ojIdcII2G zjDR9DZC(N-!0NoDwqZr<8@UvzGBZ&=1#8Ii&JfuGxzvChvqKIA%6s{?vHIRJ(WggC zn7bXLAy1P{B>I5NfU>@Jq;qJ<OCDQ2k7OeWO#x;=VPD7LmrNlEFUpEJhEo3z9@nm{ zwC`A+eX)>O6=E)}>x=&!W`6rXbwlH#exab#X~0eb8Vt1C5wvb+{j>D*L~!1y?i;0> zeoP~vcQT8YW~^*HPXInXZYSX+%3Rvn2W)#==lsQ3VpV{-wzzRqCF}#awTd!_%E_MZ zIQrSxa^r^QFxEY4eC~-MV<aTzBVX@rG*iTPC)v)yvfOs>+E{CL`cfZtGzFur1M&ND zF0>kAkh;gIg_Mp*xt%JoY_mqu>VwAejkjpk&D0-7kc1n*)~)s-wo%)uT)u-Xli2lk z+W{Wt<rE6E&axs+So<<1t!@k{Z!d51)X%io2BK2C$ixJ4nSU}VES+M7B|!DAJUm{F zuPJ6U`kn8^X)j?<{GO89?WXwO>%-pinvA7@YsOU2Y;{htWW8%-Ot?zs3Lg;rTX;P5 z?c0q9{~cgSh`eimjSHms!L8wyV&9|H!5!?uDpP)+85W-a5t&s*#mvMfaQDg}<<R3) zAK|7!K0)JwfoD}AOvooGTyF=&y156zR`>G1P<v4zYg4$U2gGc7lA?N69gUn4D8#k< zaZG{tZD;3H=LV8JoNStm56$TIxituI*JUlYIvhq}cIV06eIAXo6z?B8i!?E;i3O=n zx?l+q-(dSu(?<p8^^nF3yV$7imwL6SWUGQ;@@Qt%Ja6wyRDeYQ+^0Nba}RoJ#=vU; z&WS)%bVK@Yi+U^#Il}l12E`uoEv7$S)C#iSTF&mqv!q(p)S-XuX|GXcS;QVF2YzHE zxe3s?fwCupb`<PMft?kdF~x6#!Iaz3n3sei$s|^;36_M1X0y)fyM6JMSe0ik{mDxj z+>l9s&aZKavOh446zf!o8&F|h&Zj_yJEYmn>S!JhCSN$&Y)@=YMchnS{8_zYiV{rf z>veG|q7XOk$7xFEdwdC&SXE+1pRR_&mF$RaL;mXOF>_-R;?rh7j((gp{P)Zq+2WpB zL(>n~_hgd&CHfSYL3@qnL}(eFSaIeaOai&1+f`oiJEwt15+Fx758WK805ee<lv9=L z-ji37l0~2XE^Ial9EI&~Eb8a4w<w(QHwUlGEvKYwzphB)1@xw4vgVzie0d__B*t9Y z-Dm9}?@2kNAkikc_okEV#2{_@L)#`^n`oC$<0RF77Lr)2B3;hMj89E~KxS2WB4&{E zyeqI|nF-w|J>2^PEqy#Q7bgBZ`%ey++9?>ic{G+%enja|%FqcgFsC9ZOau>}0ZOZ~ z;%tL|VD)dqG-Cv~drM-oJOqu{Buc25(FD!VB%&{w%VD4;mP@-3^l7EA@d;*(lvD!5 z89QfA;o|&)=5CVg<|UI)7{$an_}<AfNtMdF5O*jA>d3M#!N2laIR8zMEQ&2S&c7<k z*^VQZ!`CjK?VnDi=b_(zFL0Q?c@yx9!-G>pCfR;g_2+Hj=geZFv`3CMUp|vqkw9IX z&M>MmNgZ?%2}xZ2pIVqWp7%caL)jo)XZ0GJhiHVWe)vTF-4PR#G&A=&N<B@6Qs9^= zHHgAwn=twrpzyK55=DQmn{z@gq;6#DKd1=~#_LQ^ch{3(ybjAl4vm~7Z*S#OcD6t9 z`Qf9XU7ODgn;4U33(#68k5Fb47IyoN27IgoE$#*V%b&Jf>o8(lv>Z-0Ax6J3S8L2f z>rScB6ejnV%@iwNuH5r$lFwg6qD#2Mono0Jpbom`mtJL>teVjjh3YYJclUc9xlx3C zj+Pl9XI_q`$Ywl<|G2^H8daIhWi}vY#`T?AaV$(`lbrb=I$@a6jgu&UB9GEdGe(NL zcQQ7BOZQ%xbSyQqdMpJUS8Aj3DBG&Lk%&YIAxGD0Qd2sa-Ors`PJ;LWGo#m}>N)PU zH0#S`iif)WYn&eMNS<8r5e>GGmaOX}xw11$BvDK#F57koqG5_=uliEBmI)Kg<DI!@ z$e{TC&hWRrqdR-?;dXES<RimvH)MPFx-R}Uq<@xbpd>hQ0sjBx$Zgv!Yk==<If>2w z+@1Nea{S$uAz$jva5!WBTKK1$jPaT})9S>jxaaSWEkwRP&pfIsXAscd*zn8nFEc*+ z`ciSsw(GPt|5{t+d*}kk>470iSg`8HKX%+s!hr3A2W@KsDg(;j?yRx?xp?@0DC%wk z*Z+?h_tV=;p`FIV|6!QU4Hf|dEu@_PA2%-Ru&UDTC?Tl!ee-GKMc0AF>5id$w(<S9 zZmPA%r#gq9WaWi8HkLQq&cZJL8jp{THe5BQJcs`+VNe<0)x~|Em0rLZb_r#1xiup( z^*()n7CKTQImY^%C%AQkfqAP@A&;89gxnwt>**pkUjY_fe~Mg{(b*&0e{@c8Un)6r z(AVRxWv-n+?_1BX@%`(?6}D5xWCSm)@4k={zP`1v7k%jerK~Ra$o{^KVtQUJ`NuDp zb$1V0fI$z~68ZB>qnf7!8z+KI6(6{%{C`lUy8n$bwH|2l{YCMAp-k`mZ<Oi6jllnn zGG(`<_+nTWyk&1^#6UoqHvKosbec^IZTZs7G&W3%iQ)T55hK6Or?QPtxL&)-P|Nee ze7jS8Z?$LwyGnXGY0#o?S8(<-V1cLYX?5>W)wLMYaZEFg2W|*^*Pz@m^LuNjt=-?_ zQ$~G{dVc#a@7ICRjRNiuc|5X@i*nZTo%y2k{1!e_9ooUQ!1*qcxg}w1S|!m5_Zi3W zXHjuX<d(uvq*mya(?^w~hN|UoYBt*kAEqh~*U@9Rs{ABFg}S8Ac7BBRmynQ`ewQ6g z!S9uu(!{6-oSmw~2q7_nsol&2KhDqhXS5#13KNa@sB#vjl=ZBdPHsHbkh}HHzxeQ= z49)1w`Ht{AZp39`3u&J@E>;p&UZX6I%Rj_AK4!Y(Bzs_j2^re(7m`~E@D3nEDBKgZ z`}<_&(TCOqIZpmm>~fK*`R<>qOQ7nnJ3qf}CGo3_dd6mu5Y41rGB9@GLxk=EQ6UVB zb@g$4R05UM<+KAPz^6L#&$Ux%sviCv{&7}sGb<KA*u8HTDkszx<QeZSBilpTNC0_? zFet@&ZPltut(;Bi`EpCE=<_MylZ7U;*RkmqA40HVgJqD7xZLZtw=KrG8~iG4`Hx@P zJ;=X$xzBk00_XKxw^+xehe0Dy!7z=9S37BL{@J%CuD?a4`WS)*lJc3!<+6RnNoGxu zW?$Kcx>S7eo94h!G!<txq)#~x)B3)(twh0W&O$b*ecVS$<n(g!Z${$}OZk!tDikp3 zuJ>5|-)6~&=N(+B`PH}7gsEE3D5ZoTR{pkL>sf!-k4O31+ryfg+Za9KZq-2g4A7CI zuSHtNqcja|Nq)7(0A$%f4~34yy|aPO2MsKDuvD-j%f-<<odb><G{2fFhVKLH^+}2Y zRa#Mr+e$=`XAupjzMg><Jhqof$m>@x*Shfsm-0nobOlW$H3FVAo4*eH*^@kR3Vi4( zqN%lwT4MJaZ@c#aaLNxWb=UFpW@JC<e}`p^4%cxQ?s#W5U4uOOyfTSuU`rs_65@$J zPK4jqemq5nYo_mZw$x%rp}hJg>BIwjJE+2XgIRUJ-TR;W1^&EkV48_z4xZE^Wwf8= z?(o`qS{72maaVg@MB59|K?9Jj@9&uIWOt^4w32O|?Nq<;3Gxo{3lgZQ(oIR$>_O-f zbDgm-C7zIu^MC^T>b~`i(K_%trL+j7u3OXThL<2(l9M?lb>+%rTNe|N33m6ujE}zs zwjbC!`iAwdX01~Xc~+X*>2qOI)q6B`k2bzDRzK*hova-C5iD?V8%rChhcSrbY)ek0 zRtKzNT9{B`TxT-sy1B_Omm>`>ks|I0YGtldUg}_OVVV;CdOeIOnWqg^;$TA&-}#H9 zqy3QE8G6OThJiA4qIcB3B8=$JaQx*OPFk|jHKx5j_eG!w>vs`G@s~m9P9HfdD&-BH z(SfG(HH^pNhj?qBKInjiw=tl~Pw$Q*uj|82BN6#+0Yq_&dzzRriN`qCT59pKgJ}<9 zX`x61#K#_8Q7lHdq;X?iE>7H9vDD&f!E^N%vI&{-;5!fAVZ$Ch{wv%uU7kzrw_I<~ z$7B3QHB3mDw?wbU(B=gEai-uPV2U<5*9MX;p$Qw%CDSY+g%HoAkkXgF>S-@JhD21H zaWAKuSiKmsv1>5jO_kA2eyc0yeG@SH-FZM|HJx}_FXZvv0&8`5Fz0(G{BGHPJ>$#p zlMq;lp<L*jCbDq=XvS%cw&!yl7yZdSV{xuN1RPUs($VJjd75qJAw^Qu<QHkKDMUq9 ztlqAr`+&Yv`rGo<FYnpUsqq>%0kIp=Igh)Fge1xe-EpaQ`U8-EW|#VN{hYY9?Uj$| zeRRX~WB;8%d3kUjk2J4_E`@z07gzLI_hzWS+~(YkT_A<$;ZLJt>HjJ=ACb`4+U|9R z1`2hL39U;P&o<B~3sEXj1G`+LW8@JSPfEuEUo_S+KuFOr0`LL15b~ryIH9ag;eUUc zcUClvw*1`95Tn<{mLSAZsMoGdrw^&|{LB^9sp>XHx`&@h2`)iZ49mdP#S03QR%+47 zm7%fQqGBc0owzH{{ij>F=nx1g>BJ3t1gx|gn`0Jk>{J`570~FD>GQYi?(Z?iHR?zW z%yZH%yLskxLq&NO-Pg$vdJq~P5J*Zm8cM?mTxN(7)8LX&?~jdVf`2%U$N@)^(oxSm zzQ&zjVty<5HiT@oTTk0<(Rtk%JSi|}x-;U`9wxw~@ii~#O+FQ8FZ(3($&>62Vs_Pf z#d6fzO;66DmLiBpPgOqd^G)8#DEUHmV#D$tz|sw$Rkd86drc2-1>IoYDHwZl$NoO{ zVl0tO)knS@HKB%KkZfwoICRXm5e>cp-!3pPxnp0d?ZI|2VwxXPxO20lHcH-?P3-ln z(a|HeC6dtD!q4+`-58LiU5ZU&i(<yW{cHGq-S@V~MZf8kTeQvFl+E9JS%k+o9XB^+ zHkp$9Z#KKehgG!#Cw*2uJ~4eo1X~_fS~xc)89nc;Y{+_9P-xX++okpA*m{KWPd@sN zIhBmLeo=aNOqQ&P$UN?Qk;kRTdWeXM@*hIbTY*)Jf0tJFsr5+8(gl|BM8%X`cB9$V zKkQldu#p+L>}<1ZS!ld$nB$T3wB_V4V>54bSbWn~GiEDQrIM<}N$0;W4FgVRL-?E7 z)O+4PON4aI^gF$>y6=6Tcg+07M(Xp1B@fJp(W{L@_UgDXT%@xEWxb7&NSrMBK@5B` zWS^YmD{X88wKs-$%nwab$w&FL`-hlP&ZsDhDdcjrr^}v5E>V=#6w)>t**sJ0*+4um zj9_K-ZdhJ^KmAyHugk|s<Xo2g#wWfd(od}HkUI=MGDt;M9I=N}loO!^Zog8UE1+1n z!x(f>dd_by8t6q%UE4ZddU{tqS|X7<OS{#b#Zm;-q)+-)Ak{4`o`4I>?N88LO1R5A zHnO1?j9!61O@1ot=K{7e8c|*SBEYEGE8seA0{pN!|6vbWzcu<qhBZM)!RtxIq_DP` zHjPj*rWX3=@F!o%f)2eSeTp~|-d}C}v90KT6!FTIiFlg?Zc%OTZp`shK+u9^^nvf2 zumE3~W<jhaIWx1?n*<*<34535ZSAJ&By@9>eV2*yiUL*gVM>ddcD6Q+K`};t^rACQ z;dJvgs)!)IoNVLBgJZF0cJ=_?T5a)8mhMH9sTx6t;}%1R%Qlg|hdb&zm(}cD#xg6y zGTrOJ8s3|T=61D$>Fq6Vl$ar^q1fij8w%F2CBWB_w`Vf;7XUMz)<<kz2gA=z*h)Vo z_9PfyzHzuvc*fLs?`x?Q$BEnVTMJdqBnK9y1WrVH<(sc7egx%`mk?tfGPQR#-)ikd z2ic={Q%1^htQ~}O42iZI)0bXqbJ3RQlEFX#-GF{qw&lMK+J9!uPW>?9KYb_5)j4!& zs7q|rzpNX66lvQq{<*?oeX+8@Jip+hxa#jvt!}QHB2;4Y)@Y(^>DP!wD%w6SAJ5km z`lIPEh$rDk+Di!{UoNeVWQPm&XY{5vsykxI!X-_5<iN&g`XA~;SaJ_9=S=n6x-_>+ zY^bP<13Eht#zho#Qj@+r7aLr8Z$!Lzerx^==g?3+-E|)%Z6a_JSoA7wn25GUrfSh% ze=!|WxVW1kM8HIkluW3WUkfaU(@$T|D7aENo9g}*s1KuO{9{>_0NJ`@)4!=V`<we_ z$-oU5h*%(Ci^EXSVx*9zB$g5el^u|c{W&5_0gWUk0iu~!*+>k;(e^LPJilLy{B4(u z!M=dpzk?S0t7J~m9cvgJo6N1H+sah9j^fW!L4M)DnT7|Tj{xoODud3me!0oInQgcx z)cMt}^3Wi{=?7Ji;Op4sxA&yA?YmA$iBUjH)uHH{(${GPm&LJH#-Kl+x|YpYaeo;H z|1%X(fWVSN4sE@NI(ZYt9Wa+xX|h9+dfu?tj`Ht@mFwg6)t$3eIqH%3t5gJ@M`JWr zZj%y7^g0dlV0H-hz%-U#TytoR+M~eNQojG0_ZvoQmSu+tx@IX#m4@9*O?hSYQr#4j z5*wrO?K4;@p(nQ9O^UVS{YINP&qtj#YU(BG>$NxK>_CU4v|%Ny<D<i;r5x@K=wCK1 ze)nHU(&!C23q;2qjs<;sO!YWNaqmIi-=p=l{jF#z7O8alLOo=KAX(A=bB`2j*s2H+ z(9$Q++SsaP52krnV$%;h92L0$BX97n(WaTp>WoYjSB64{%U-7)nyk&6NLBbt*glPr zk>DCG8E}R{F<Y;$gARWrLLuXK2qq>k7(xzMy39*D*#&Ui=C1>bcLTHsangZXh%p>Z zuC;A%f=w#7DB*41&gRcGgM<!<pL<jC?@SaAqk~Si*bRNGD{kd{D@?Y8tqKDf8&}zE zXFLRpP3YM^=<2Hz$5^4bYr*230Qi$x5^a;MuQhY;Cbk51-7y3u3kLlNX0bjv#j=O8 z*<>1bY|tdXggFsx{M(Ige{VY;E<HVr3so)_9C|WHoGYMZl;)skoGKReYg>&+kA@bD z(M#i{*ei*hL~;KFd%xq?9>-eJ=<{opqkJk1Smjz-Or&WDBCga{XIkJa1#f&6+&F{n z(e?3i2~+tDuzsOD3&cJ%&E4Qu`$)d-ZP!cf)8*vn&o4HJ-BiBzDY0jn$QYe}s#JI! z{r4b{`QrJ@_ZCACi{LfOce0Y#TO^Go^#Ari@ZB_=%KXGpO{wjmmm-eE45V@PU;$^# z7T)LY7*+cT!nle3(B8rcw-$Dw2nJ0+8vDQ};xE#;!}MA&E7r5^G|T8KOong<HSQ^? zQTllU1xBSXO%otmpD*v#$&6*3UOIQFUTaRJ*xv8&Pdhu#ELz(S!md(fUtlW06);e# z;1d4sHzC2K8zy4jX2>nG+pz^q%dw6hU+R^nI~19ZFu4y7=S7@(`J`1#fz4<6ETtE3 zxH(lyiJQ&hOamW7_H5f&*o5@oq`SzQ|CFBV2`Mwi;!9v~wBGxOIktaL1e0j*yDi#6 zdMF00tvS8_R>kZ#-Xw7#4dA4AN4<3Dve{<~xT9`I<s;906lziGW?Cr)G|Q?m?Y_Ht zhlif3TdKz-YY8|ST{b1~<8SpwtDsr2EOsy(Z{s;syz}81OnS&9YZW+}Ue=-h+cu># z1&i;4!5JZI%zfL(<&}K4$(1zk@Q6onfCG-K@Oi+dWP7JD3zzo|jM=}6Fp^I7?QtW^ zK2ZNG&F_cF=qV{R3XcH80RUWU0cCaRR{;n-m7sHF&}!1W6sge;(4$ktHs3XbBg&+@ zO|r-g-&M|s@a<0Ld480-Fv+?Ej-HfJO@ZWN-WIL}vHTU(4@-CXV+K^v`!h3Hq?Fj7 z4p`A^PpC4pKUf&Wf^hx!_u#7yQu~%!!%qiSJRE59wVy!f-eNO9X6TrHko?7R8>CN! z_9L^g=T08eEEvOrH}Ig`XJ51Uu7(pmgo`Hr6=@pd&#a_n`yTUM%(xU~;$E`&is{Q^ zT(+OE-~2NzuwzfnQJNWo;Uw}-><PO)XrBdqEiOEEVM3XQWbysIvAMOf>5<XJp0L=V z(lJ^mx|1`NJ@e$K>1-;TkiazU^kuZ@lVNm9(ZA+2sB;3%R#%a`+;HD}j#e>!8;pyO zz4p}9xcjoN|5R(}<65D{znxXjX;M41G?bty_R`ECrf}5wQ`Sa>eUfM6UuY+s;^3ux zfO~RBGUACH7=RsAGEh8Fbx}mB$3AOGY!uOZc2k$t711N5W}ihC%^Vg{5n;ead6a$n zWA-WZiZ~h$pzkL&4bc(%L`PC;%k=2bgmu#o?$a(cu?wRxdhS>?E}dnU1r;5Y>Xdso zlk`j^$V@h}FUB&DNp#ntBN8{Y>GLwN8V#6&v_Gn&PMJaT9L_YkDVnnd4nHaZB{89t zxa?-518%pY|EzV|U}ath5fD14RcvM|qk`NY*y)cyfnH^PV+Zh*w4rO7dE>xv1~V~z zL5xe~6Y+3)AJiO`6y71rReZMy*Q3eoGaaEF4@GH}+TORs2z0cU45Yywh8p96heEB5 z8&R_ufCuyrz8?{-4uPWhN;5MawOxIk>yNpW$dU<2gi1<FXs4YttSykR&`9dXX0CI) z-299AGDj&z`!p+7a+GgO@h0=W->t-^Ou!uUg-63^yEu!Mq<&H6I?`n{NtQ-*0)gJD zS$1aGm(UN$bXj)ZzvxuE?j&I;l+ZWIbWwNy*>QFH4PIc(HBpibN2}j=@GzJBLm_qG zoOLEKx;pGMyhgMm@kIawryY?p5jzBRg(O927eY}+rJ3r?LPXbWB;_e^{6Hgw=h=r* z4LB4fRho%s+R(e$6IJzvqU1|$w=vbZ87{K)15#v8vwX=OO9qa9JTlPsZ*TRVgH(?o zbQf6LO~&E?)UTHr<BO5!MdetY;YH_s*Da;6>rnp|)=rLl7i$N0TeKl1AEb;QXMsbv zI!nGXQPt4=#uEp?0ZZ@gnD_W&mSO1A(oI^1Y0FtD&NXb@0Uk6|b)NOw9SvxLw0{Hb zkwb1>bXQv&{NAI#ced=?95P1VDylz^c6sqQ=SjJSMc;T}_FC?}sIV|wt)t_H@|+^M zhn<@{!HDR<WG~UtzD|VwOmZb!%vaY+x%*WR8qf)mJO+8C5b6J3&j<V{^{2VO6Nkb9 zM|@=Uzdkgwr`ILl@zhy?1Hv^Ds4)OiXgjCaXVsEimdS3ZttYeCD31a-u0yXJ?NV%~ zeJDEs^0816`revu8!Ztx_$ebc5Z==v#d>H}#+Ir~7V867Z*3%BbGrho8bIjEu(ml< zfcEBrCvb<ijq%+M^hq+K1|0KJ!Qn|e$T9Rw0Ee%zzI=w?)}xWohCJ&h;~()(PvE5y z*i*dpgNN{C?Z0}cFs$uGdP_pp#rKoLmh4e^UzPc%vVi}{=N1i2-NK$eK<n+n-xJ@5 zn5WRMyFMshgF7VYJcRXSGS=rFJzzOpoYH1Bc#28vGk(&<yQL?I75Xkvg4Mz4p&YQb zNV7xu9k`&r6hYEA9f4TY!lIBDUqCYFoJ0$P`p?r{+RUu&lp;#g0TX)d&?-)~fUbUx zQ$18LHuIO+;WK{fHaxK{obl!R2$nc_nyJvJdCfQJ)U1s*Z3BxspuqRAv@YnM)Zx0m zp8{Vx@vC<5reIv$w=m={%ykecZ=F<%MHbi&IQsqV#-f}!WivaGmasl|h70mhDm6N5 zLUJpTG)g9ei*>lgy;}9=nGBZXwunY#hW%ZuoFZ~olc;|kqb-xw{e-Wf8C-zj7EJZm z2^u}G7LA9pR-LUt)`8r>;#NoNQG=^kmidL)AdMcGNzP8^*hL9Y(6EBhAImUt1{YL~ zTKO>bq_d6D^bor3CU|a5PD8qeq#LC11nnJR8^L|-nK}FDNQNP|%18QnFUw>r#g<J! z_Jv1*v;0SOHlxCCl3fWVZ;=_m`dgyy?Ir#*4Tm3Eti#4hN1sN7D(H~dgEYj@KYDB; zJE!lNude-$GIN@2r`WQMsq!b|rkvDKZy!!xaBlHKbKcm?ApHu`a6|v7v`r|2SaVCY zQ83%ORB5BtiieZOoiW<z#fg1Dx?7Y0nk#Ks%((VgJCXgF4rQfv%%sQ)teMClUUW(b z_7mi}B9=t^)!D{$nk3I|q!{7F4CukNcPv6~P!?Im7>V=}AQ4qB@cnnSgf+M`yyG5? zet+&%Me)w8A7}3ITe?Cmd?;DP+2$&3ReJ07FV3#(q9e8FX*W3jm6#)qj<d~!bX|J8 z{UCp7=@3K443Zejq;G;N4po?lngFHUbCz!f%Fep^64210oeJrUc-=pjq}t3x#T0Z2 zR&@zdZ-Jnyqs|;Pj-ljx&Nj-EB(o2p&zw}5OK;*jkQU=_Y6!SVgT?V-IeT7LMP`Y- zgyDcT|G-_*gFE-Xj{+8q{|4i}pNyXRE?@ns_&a`j8va8q`FHm<uK3)r#E>Hu7NZO7 z<->lH&8q*j<0rvvc*uN4+@MF6qKyD%sRDb6v2xZDUZ(FNe~6+SfiYuds@dA^Z>nEj z6g|BET@iY!31$ZH;S|325V_!&9VGY#hQta5?7a6DvZtQzC4Q#tt~N+bv)6-N&Pw3| zJ>fIrttdffOr>eZXO-q};fhg4X<PzBEd}N4F9eE=VvGb<)C(giDZRCLpzp@oBThye z&R~w8Uzq}XO|etKeOL{h$wG=PqkgQ0^tBx4Pp4R43DDF(jhYx5V}OPLp@#vQ;A5O8 zDhr=v9gvam(+nO=?sT#_!FxLH#QsX<@*ixO$L=Pvjq6LS0+>s)CwIQleC5&DPO-1l z={O3l!-4oMD$_TbB<8nrOhfx`?8?pR#<=tLHm0yV|0Euj8tG(n7f&+l4SmJSo~gQ= za!SuRs}r-svr?bLI~q8SOk6at=2<Cux6Qg@|Gn5!=VX97*vV#RTw4~x#EYb$(TV}n zcjx&0_M?jC(&$OHzpFvu{9dtgeLn1=*jA5u$<;d<9Wrzk08{MD`{cn~5<_9E5d)?S zj5Z#9f36ilhI+ug;uEW`Bi{6MD?mG<B6*3s7ZKl4{9CDKl+(qDR8j&u5=-}Kn`a)j zrOXxeC53BqK&+6*fcT3}zQr&9JpY@4JQ^J-_6OQIOdWPA1ujmyk`kcN@^j_;L|QSg zxO<6_a?@`kUd&M-wPO0XS7_sVG-;0JWup31xK;*Q5{fAmxiBhZ;u6rlShL}sw(Y<s z%j@}ucRGfQY`hv&sooEDg&bFRSp${^8Uo8Ym5-}0@Zq=O)hq^+tDJ0V@s-ok@wrRS z3>7?2`Xr;&QCx+CEr?Rp2pR9mOtsWO>Om(AFN*iU-tBAwY39@{3KO?wdRzIMk?bh0 zq(S$ujuM;V%m)~X2}hVq=!@v4M$<!zl{ai{rZ1e*qtBjSy>`p1o`1yXz(eYwAM+N_ z+n05su~(D*_|+2;x@G;C--LIviR~|@opx?hPdQ;8(G{;QBNHleKJu*)BzU6~@nhON zCz}A;7l6?)0&owo5H`tnyvuca!Vsk>D6j8lXFa0K+?PgSuh$<9tZCUBya*1@pb8f5 z0j~r<Rhk_${>n15RcIta?P5ukMM3B4koWe7dqf6E^(}yO0if|5W#6VBDc70JIhjKN zH|WPcJWscoB`*B!q#Ga+f#4^!zxSs8bRuds_(E*!|8yGSVI=-)|5+5ZhXg`~nQ^w! zt&?IeIqvfVIR(2$^{)vI1umq2`8BRk_7{dXU%QUx$UOU!Ea9ZfT*~!6nu{{XIHp6O z_oyg~;|nLTGijs*h}7*?A~nF$CzoQv7dhP(#Hzsmne)PlG*kj~G$<<d$D0kscqi`e z3s8k|Ooet_k=xNL#i-|LT(U!A3j)SZ)_<W$J<r;k&yQh`r%$}9+@m&D1N#yeZWNVL zpt5LjY<0@lo{O(flPH48oQ#=EwfK<k$AdBco>?6xuR_wfJ`A;-RmOY*Q05?>e(9B1 zwP!AU%@-?CvgY!oMZ(F3xzzi8;yweBMa(OqUXogty;)8Z=hzAfP-*3Ut$xChDfGy6 zq@--*g3f79j!aY=D+s^}x(J#j2<$!`=Kp~swZjqH;XuCyNk4DqWmEZ6*(C&+Lj%l5 z`Wh5z^!LRB#8V%Mr#uoz_01~gGxLNq(1kNdo>%psk1*|5Vt!YCi?;A6==N|doHZ2y zG^bRD9$x}cOc9lsSC!vxo03h#0#pIwNHg&`GjWq@hq~v_)~P#~;FTEHN(|T}&b+Og z*=KKc?Nb_L$#jIc%;_0`>y-}%@aCqZK&FZKM9x8CH&w+N*ONEA!GbQcCLg%IiDMOs zM^FeD4wP0|NWIE0*dO}{hj@g8_8}P%r*TMeT61w4^LO!Y-IODWEErH043eFKW9dhW zVGoL-3@9jrr&%e|xD*L4MYc+O-3aE!U$JtVigTI1BQJEjsw|XeK*=-Qft7{$`{OnZ zajS;7h|7xGLn&)NJ$Dc0Kn%r}3@A&6_L0hThO0xn*Dp&FNzI_7W;^QT2)>T|Ld9kX zZWD@Ih2lU@1-)i8+|fwmJR~>|*?N#>$aFP_b!e<`sIPFS)yKs;9Fyc~wyE)JR|^8F z1^w*J@@R;^7tj@ZFrYjbUU&#;Q*=}9#~C*u!3{{uEVJJ^aWSUQ7}F8y5+=sRhy{7^ zHe>NtWATZ^f7YhW1_=ODD8O__qEO~H;t2`gInZUuuv)M=mv2S<u8}yIk+{jLNYpXW z=<ppoN%rFV45<4IlJ5n;Ig5vLv069;0m&&m)Ub)Cp}h+eCxg9%B+sha_8)<75GJO; zVZFb7w661waS9Tgg0w|WR?2?9dGDU9)2?rVm>E>eY$vj!r*F#^l~Rk0t3}$rOn*Fx zWnczYVgxGXsI~Y+=mE|SB@T={?<IhTf(L*MrT$ob96}#w<Bn{e$GzVfC;sOV+BX$P zm!)cc-K_t_BvOeHuEabu1{1Y6@9cLUzfmK?Aq)!4c8F@!Z?{d!>m)hFbrQkeIiQj6 zxg|cdwhz94B|d8<K4bN6c<L^#(*X9B_=TnTx#hdz&v$7N{!Ka-LI4XPmo}@Pj5b+2 z#?wgfG}5-s{BV$crW*6D8Z+o3K81C6=Hjfh60aa&T)#SK!d2$%NMlJYprjTfnk_^! zorR1<MV}c^pBW@WL7!bLK2TFz)?yyjVg`LYio0<+1}qjMlPy`EUdHoC@I2CX+5C_a z)Mh2#O1P%4R&fc{T?yUcT%7gR;_s}*vllKdMNTbAW2?=f)#f8E?=ha^ELNnkZRXH6 z^Bw$q^-g2*dTMH}S`23`hSD3nI1)qn?iX|D7xR&rrb~z4grfv=XoC5OQ{yA9Gf`Cy zS|I?fkYCCpR@WBspET|alJ-J`%76SSrpOFhWHxfYM%mg4j?^9y1Pll+3OX_HI5E&U zF|>15>DL~shYA8h1^u>6l%I8)b8JsPSY_i;V4zcAX#ZA`sJ<w^4HMsjiJPGHRz7Py z#TRna!^Gdg-o>ZWW+cZPvroAvESW-=OdpWuq~5=aqPB#IPoz57_Ex$6dOCZW7Is)m zs)-}k#6dZc4K^&ruNdy1juAh4P_s4-<)mbwqhyeT3xE+Pbnf<~^2Xv12}K=;zjGP* z3ah-)ORo8A@#B*TSyDqBu^|o=An3Jv#U}i+(!r<F0d2w{Kmt!953IxlRAL5AyxZPg z3w|a^v!EVna)RP)9FfLLudO8>U4L-x?~%TZc@NG+whj@PI|;p>ckf$p+9<r5$xk4Z znQ0(`t$^+07}2@eyWzUK^ieHrAE}6bn2XajJG{TulUiiPfHGrfudZAVeyyvI)6~a} z8k-C!jvqOe<%Bdw4bEA9WxD<BwNW+_oQ=$!rSJ8&t2?)R^YGDORKF>--*iN(lz9B2 zSw2=5htS1AHIc?Iy&3u+81S0za2LuLMT;+_F40TgF2k5b#Un3P!#hT=L!@^;<eGWL zR$W|No-zKxw;!$_U7qz6Z##haJ_B8X3_{9%v}`^XT?ea3?4#bCr#F^iDwNLqk3T;h zmL2Bjgm#sv<3J2<tYS|ijZD>zOqU~zSn68I+6>5A4ag>Zt-98yM0|5Cqh*!UvVdG! zKzls&*-Mr_|G6hODH*)7A!)S4C|V*EEhDBe?p7+@Q8Mj8GA;V`s`x$8tVqT&FMeGC zK1~5WkUG3Ua-J+mk1SA+Y{F!D%<KCIk}4pV?x0&==EJChtRw+Ko20g5LOmDqIkTWF zEx9aBOo?wSy(WA5YhB*2QAUde@+8SObeb8o>KU|v`bL9Td<+va7Quw=!wE=VI~ByI zCC8_=*pyIyVATJjs5hXfXR}W8pA7?Fq>k@J#RTj3HwPDrjpt;?d-aBU?HX<f`|!Uj z%Q`*i2V~s3WL&y&<Z86JW?iO>5^qjd)ViE*mOLchDn@J;BfuPd`y1_W{Da6bWA!oP zWuG?)zP<;M`JYY#S)635=q;?~bL>I9EQI@`n<KZQk>8)ICC1}DBYvAUCCxouS1(yt zFIHC%qe=U-yW9eI&t<{q**Al6*R(m$+P0ImxR+0jBQY>_3~ae4O;H0#;E|;nF9upW z9sIk|fIB2?G}x?#6Iw}UPD$@J@YqA+$Q|!8q*0d7wprXUmA+gCW)p9fA~s9=v}9{o z==*=xk=CmGQi7eAf#0&h$Q%sF><!51UZfIR`h%>KuG~NW`4{+`dG<1&c(e>LQigyl zdlRMjaTy2b=?3W8^q3rq2nFer1?rPcJd<Bydt+)oA7=i1rCMUzU<L>LM8h**Ac@@h z2&x~Q818+nv@PZ0M3hSl*i0kVY}q5k3i+~{$jum%O@z@BTU+e%>)H8@962fTK@a1M z{oo$jOF*tA;Edq!G|t~?)W6fjBFX|npWeI}R={ao>dx<KP6D|mf!>7%tSvbh-Z%m` zQWN!k4KXhuB2lVAltT+xYSaz})yiUS58CS4{KAtwmvT{4Po-r{Z5)iFM<mlmCetz^ z`to$&O$49voBYzxmXcM9h=Hlcz?LP_%xmZWgy<N|#;F<sxr_+VNIk-0;d!uEc<u0x z_S&vMU1#U^^8H)KC5WREL<N5hU3%l7>Zt(NsepH@&ZsQ2E(@O~3m*vYiqa=h*Ctcb z26GOS2eEs8_iV<gG6K06f%a{>L5V0^tO&`0Hrc*58A{fw43Y0Cp6Vq+;sRMtqy>03 z8kiEspaVSAiW>&bs>Vl<y@3|?Ip6hY#C_b+7BgCojNtYByc@!%m?5-waKSLPb5id= zaT+~LH~ESd|BAMhq~rwp)7DYswu1_py$TuKA3|d#<OLnq?*n37KB6xl0lfOH*JU*_ z1rt|LqZHtx6!3<tE{YQ$meM&z(K<xYGO|vF#J?UgR39?zF%1hqH{SG?S8L(tYT>u< zQ7V#)%$gu0QX;#l6i2=}^U)+SFy&h=V(^!k(Bj=6w9Et4Rt}NEhU&tGJx+lE5i?1{ z&DAis8@gg@Bm7(={NDD;RYfbE2SRfLuLkTQFAUW$412zYpBbMO8IrN6k}<22P2BjW z|Cd>ZM1YG#z*}5(R93$HoVVnh7doo5yLHR1xB(6qRXgG5I^nmkS0NbLo(_Mri!?P- zH#O=hiKGp~Ev7Z03wYC#dDF!BxYQ8#EuF;1g$Sd<zUaHrz^?F#__*BFLIm(0!9?m2 zl)|bP%c^HHZ*-_HN~=LeqY)R+WVOJJ``N5}wQd(lYOGFbysRGE*ZJ_Cuc%t009PX6 zc4^x8FORkalWl8|ZE3_oI1cie_W={MQgO5rakOY~V?^a^a0*iqp>KV^7JFJdODtW4 zkSglK(!{Y+cthd`6TFK0qUk)A{2cSRUkG?-YGmhlYl{hRi3xZ|sNtD66g-<1CKwvV z)`Sm3l;TfwBn8#Ufa+u>G<u^O({FSY2Fm~Pmi*;~?mi_@?L@kFU1b6khAzIok(-l% z#^hg_m#+QSew(6y{I;R`Henva<=)Nbwu(4z(HAp%lVa9mZ|Y$vk}XJ=iySL?s0rh$ zjy8w7p7J`K@<Q8RzfiIlv4MmD#lO;YqFOd{DQ)ydJe;<8p^(?dt{F{ww%GgqLqn}m zKBa}1&RKk-U9^Uo1%0UGK9m?AyFtf^iJSO`26o*;Ud=;ZP}b9QhqoL-vyLp!XKxke zBMR~nWPf$lZD4nH=0DBU9SDg1q1{4xfjPA4@p&RXie%o3aq)zhU9h?<KbI@Ny}Ck9 zv~-_Ry5mAnp#J#C&PaA1+uX^^1D#3tU2Wf|Fc#i*GxZ=^M*IqM$=_-lDi)G@J)<+Q z?im=<lVsPzeKk5U<kc%}j`<vS4aQt1@jkh>m!(x9qfsG4o&89&o!7MQ0krdb&nP9z z8UxjpfNDw=<lC0-1E2imc|%kv2Xs&d+A9O;4&h#bkCE<%dhUkX4#6^BU6l8Sj0$^J z!QTfn=*RQYzT`<!&#vUSTT)KF&Up?_xdO*sfo+dISAv2s0tdmE3mAO}j5Y*TyVRgf zR`F?>>tor#c}d@S325x;Ei-ox^7n?(4pf>Cr+??kbvXQWJC~~pUMvgvVT4>Z)LS+j zVhCsQCh!{NEJm_2-oa`*g>vq$XkGF1UGc9Ss3b_XL>{NY5D~D*2z*VCDv<E%R;?f> zxsbSE*CoMfl3+m+x@W79KkTG8u*5g85jQvq%iq5=yQntTeErxEV5BlILb-zci0p0I z$AxKXSr~?f>=>L`Ziup_C<%rY1;ZE@=nCR#GL|4I7vQ)Hu<fMb;W7EYe|TEliC688 zQsiFun`0mC6YLqRBm`Cz0t2i~IFTnP8|o<=ZXX2xv$j~~HstpWl+S+fw=flznu=;m zdjQwy=n!h$m)!-{%LCuZSHyp{oC$Q_(GN!U8|d{L3`zM-0qqxpq)tkev~>CTborgt z<#QgXcfk!)K7r#tfio4~{9DI9ylniwTXLhap#ncjcz=|D$UYqgkpxWSai^nb(@|~Z zIfOEXdXy}cfNp;}9iLy%KB14uO?#D_Mz-U%{63%BbJhgm2aEKB0UB@Jp*`;!x_e0& zvXY;#lHb=@DMFp%jBq%|&o{^KJENRutgFy8a9PrKSrUQaAlyo8+F_K0B|A>;tM?({ zOlhI8)KFOIPA?fg%p53aZ`W8Bdr^Y8D1lDuh_jkM{n;ou`$V6CRt-p_RuNBnm%i?r zLPAd+2v)Cv&>jf4H%6$N3h<c<P$KRUtQv6``hv8I8x_Y@&&yk%_eH>ZB47ZjMuTFW z58pBJWQ55ewBP@dbph9h;#HfHPNC$2DnOtLoOA7y^hABc^o}br)`=Jk;&C+#4^3o* z;QL-r8R|_L4mE~N0l9oFLhKrN{-9|8pxVCWuRmjQQwGA7fhLFcw!QBkH#Fb+;G(n7 z&$rL-j8w^y+uaDuIeiLc4IF->X{4uVw9Or94tlo1F}v|yM;$D{2Nv)JtFxB#W7y+v z>$M7hSr29(xPk4vfd!H1o-ILw*<FdSPDEG`o$IYr)&`D1<%;3MnE`9Rv;bIY01Vwn zS2{dC67R<w2;&Zf0R|_W_-}3Hrfue?f%m)=m?IuH@(iO0_xgGI8aQPQ9JdC}6u!4H zR2wq>q4Fu)nUX@ABCu5vII#w=r_@&C=TqbNC6i|jP!;o~2|~4f$sTR&#=IqM0NY|H zi*44RuFc<@@2!_8>@JS5YnwpC-%Frr&O$;$Cw6@=7CMA-d9{uKe8&La3fZFKz4}Z8 z{Mc%)$kFP;(4%_0>x-+vs-70=K`_}M_!ig0_?F5@1O8jV;YPh-^PQu0dtsi6gPpH` z3hb8f?v_B|I(vM761$uKQ|Ca`*MC2mCvSXL9{aR6gw8kDOq1E%{8h60s|4!*no(Cw zMMle+pU;`!7pO2Qd*ZrT;<Q-;()e_pI$IHY5%@?^pm?X(;D)rMRs=s^1i$lL#h)B& zkbByyQj%K9{Cvs$&XJ0joFPA&=+pDk(()#;M*$2rv&ZT!{Cq9^l*Ff`<k2>UdNzjJ z%R%PT{W1+QwOL|9&s@Lqiz+CtJ)AUa{&>PXBrKFj*8mt-0-}EXz`<3Vbx)uE>C>kq zQUTsn0WzN1|KcvXyjZ%M-tI5{4f4eF6%6(YR!hW7`mNnw{VzY?U;edi6@pxl4d@Gl z^@QPT98`dWm%R#*?vHWs9UFCm!*3d5R-f|sy-)gwzkXlkNB<XNZvoU+_rLqL6z9dY zrMMOeP$(4F;1=AicyV_rrMO#>V8PujK#CPBP^=KNxJz*7<o*55f99S!_s-mz%p{rF zvu)PeYp?Zvp6B!VLtHn?kM(zKlJDM0mMdYM;mrkk9hO-Fn+Cic>*(&}Y;lV%af_8d z%OgyNKQ30C9WJxYyKs_jdlP-rDB)&|d~Yj2P+yQ*SCAToi&c2)<TOd3I830J`HcXw zIrWDuGe7lv{>%XCht-8b%+zGe)DD^aw6O`XFp_JG08PFyjrU<1HLsig*iOAVRY`hO zh<a3LKTL3uEh=&zg&)0lkIMd76r@oYq(Oe!7|KFU%;GBYE@Q*o*x)&16%$c}iYQW! zwCTF@f))7vf2JMQiA_7a&)rrV&7Ka-7Nx=iI1WtzOG}%!;~zcy7nRmP{T!!*P}pdD z@J6(sJ1=V}+_RH@hWu|-TJy&GAc$QrHGblVqxF8WJ1c&${oq>c`h0bF2U>f-Ve({` z479qub$XhpGMs77=BWMra4&h)BgVQqPmb~bAf=H89!hfgYXsE`Q{bLSdf!<7IlybQ zX~EZgBE902M$n4hZ~rIk&=AD;@+4Z;_U15K|H<zASWRQqO}68^+`tqYnwUXX{>sIS zuCCJA=QLP{O|Zp*A2RH4-SprjVLQRuLq}|UV8RpecykZ2`}2RfGcKk6<IcdhcaHw< zaIW>Rb^a4A=p*H-Y7FgBu}?DonfdbjY9uP{vv!M$_Gg2~tC+$yL#M-v6B;;qM`e(U z$&-y0C*KA0LAT|1v;Z}lQEb$%pB)nvC4&^A@$o-X)TVnD4@4IBMA?p;7ZRTQ`~`R8 zAbm7fg?($>Y{5b?hn!j66L<a%6!|Io-aLIADy$YhyrYE(?bLsR3NJf>SLB83qper9 z^@cWF;=twIi1Qt_kq%@~p<j+?Fz+v%H2QDmlO(axACV3z>dOwu?)#XU=u#*RuIzw7 z<L<!lBx3K@b+VPcqM_;mQ+@n-)O_3bUr_{@ZWnu&s(|x~wLo0|nz^q^=BCeVhH`~0 z!Sch78D)3Z!Tv-;vJ_3jv80nb50!Gr%ruSZ&vH~-5Fv0Yxr|Y1Z{)D~Y}XJb@DvG3 z0&W$SeWg_V+UP%|k)${vQ~ojgu)>pkl;R6`{61Us4dPiQ1~NAuKas#y7>rd(R;X>M z(>_%3^D{ZUwxw2kWW@_Ze&azXJVw><=Mj0rm$zr%4oS;(0T=eOW@4v{)h-yFbh$vU z^q6sMqUEmYIr8=DIaX`J?*kVNfAA$f4n*6MW$FXoSKf}`v?smb$Ovw3IIDqC^8Kzs z;cJK-vcT5Ib+VS3i`HY$u%EpNlpTzwsFa9KbLPSnWS^=+G1u|-lZ<zaSq~y`(=9S? zud5up3QMe_uaCyksh?^bBm?$W4%N6#YLCrP%Cj@7^SoqBl5>UKn}}5uTrm_X0XaxD zi`R)rV%kb*gttBiF1js^>&P-!$0kk;Rk<Z;vwObkfjX^{b72}LecrODeiM8_SWVwJ z0@SH)OLhDcW_lvf@y2U)yuz4kcH<PeWa6*oSxWIS>i%TNILT|EzvhPJQx)c({zdQ! zI#Zyv%R=%tXQuN{QR%y##x28(?HLB@p`s!qo}|j3_%9^OqI1~DHD?2W;Z+LTBq=!t zutN0x9*8*bAyp}F!2zF|iS0|75uWzB_v`nR<sbl`J+a|rVi5i9Fq(K2^w`_~sQ2mR zf{KiQ>sHCO(7_OI(s=(s=6CRAonc^-BYm@7r7dxmiVT1K0JB(5o&B!<l}BLfdEu5! z>a;9l>1xK#gO}Lxr8w^v>~6>XAlL$2v^{>8*R=c;_&6ae2CIF}6tI2y=XrjC$nR3E zNwaBpCYGH1MBLe#Im!4l(%QsDv{UVcv^G5*Ur)_7J%i_P>@M&93RdTE>PMgN{pf65 z$qvH5-R2FZtgB9Z12Vvup)JypTn@v(M|$JAo*Uh#k8VlY>VZJh6^+8b2YvHO5m~T+ zrCF(}QE%<o+S+L3qoMQT?b_kZ!vk<9W25mrMYj|@Ex;B0QOsWp7rXM^2}Y1jcgPmR zj)`;G-ni@LjErDx6_w`stmFL5m+_FMZjP7-Tkm3X<mj(9miI~mMxb45H1usGNO2FF z>G%zG35TWlEL-axx~a;bK(;|G1FM7auR_hEfujdXjzvPFt~2eXuD*eRMqM|rWo_YE z;RQE2!6rT7Ez<72e@*)10b9ndvoxGRhIc|4&~Z5eo5%KHC%+UmAS*N}E-RfNJyf2Y z@1fNI)59CRsm*2T;LqP=+Py5m@%y}OXC`keeDRb;)Y~o2t$O_>C#srhpXKpY`4mC_ zG_~{LoGuADb+w}p4|4oeCwenwPDjx(tToL`0|H}n3(Og_4|J4df@iY_8`Ik0OAE8x zs>5pCJlyIYxQ7k6tHPQc?0F@XxqTquUmYVyT>~)NVH@?I6K)Y`5vCc=d)_*Ys%Rxh zUFJi$#iQ#E$XAMa>nooteQf(|!k<}}ZG<2aF&Aj3knQk*^b~WCzFLS@c~=AWczofF zt9<U6)^!}7QDQTt%ZLlG#!3!?e>QAM4wB~3yX_2Pt8PtX-ks-}EB|C7e{l8yS1~mR zr%U-=ZyBn}M2uwNVSr_}g(80)yia%66nGTo)tu<u&N}Vn5pw$FxiH`L**-WaxNO6_ zQNdg5*`!^);J9@xtX}-t<R<?wp_PYJ=0QlqPZ|=D@K`)Lcd+F4W&YA0%Btn9XKAo7 z96_<Q9%bcW_WHcDVFH6zxya`i1^E58kY&~FJ?^_`JQR2EtCnF^F6v7lOCXxiF1t@D zdBO__@sBo)kihOhqHU1KPE7o*Mef<aM;$WuCYxZ2iRZ!%m{Do)up*#(GBJJkZJoqm z$Ri!)WsKI{1tRPuXF$n3@iSAkXST1+UJ;juUSF)=rra%UyW+Zi+g{_kE{1NNP-D*` zn3QGlVs-p%xq-Rs>Gr1f>P60B%8iyg=GW9e5}()0Ry(!s=vfhy4eIj)bmOM-(j6Xp zbL$tw%#<4b_rh}Iumz;C$?sNfV#6*S@4SKmGq>!xbGvk6!_DlkXD422u<N?K<`&Gm zZv4g=^u(h0PY~qVI3uVsLcdT#^@X6jCjW+?iT2~;S$X&2c*A%;?9*b4+Xs}#&BF)v z&P<8~M4@J<QG^c~-1nXq-9unOosA%O4=Cryqjs?#vBzGs@y^s^i2OXZ_Gc^M29}9O zNXEfK&2|Qkv`&$9yOE6>T2@ax??fbq@KWBJTk-Qf0`tg3gS|+uIV{uOce(dlCQvpm z(>QHXI7^WHFAwVP2OsN@)?1-tVuBjiQs8lpulj1p)0S?~(5#2d_k*u>+lDWZKPkQ+ zaBx5Cn60e!$J_d%nh3tlgr#4J4Wi?dK+gNW4@M#Ik{~|YVcgJ&n%L&UZ>+wIiK%=2 z+}ok%z4C|PdjHJQMkkx8qiYOEtCb8CG?~d3w6$yGX+k3w9OQPF;+&Y+xA&1}+s-0a z(qO1DdsVe@TqT%#O9h6lw1kYW@7w*&y`5?Pl29R5P%Dp6jU3W9@ZBZ`A$@VgyRPub z<M;Q2oO;L8B%d=1Dv@m=?<#~tXhhf~-0T;m$47PstmA3I6VqXEMw$}PabsaSA=T(^ zbirVr*d`FiUy9g{n8Tk6D*Fw@?B>MVbQgMv@x9VTF6U`3cdN(Y<>JXkgz-$EZ^-Q} z?*1J%^Wdg9H>$f-;&kvh)#4T+aj3NUvX*4#K~HflQP<36DEN9VdBt4*n+G<<IYHeA z>uwR%7k#gO>^^X9BTReY+xuO{aE5df6ZuGw!;FI&E?DnsAcQ@5E7B%xa?-3Or6;Ra zD{*sop6j^WGyuczK{Wu&^%eio4{KF69Fv77oqrfxpQouV2L)D86BnO(nC(ivC!Q78 zuTGvOn8jfC;^!l8e>`W-rFU@Jetpp}nh?Yi(n~A>qj`Ph@(+wy0zduP8)Zm8he_M! z%I<2W1<}Yw^P&ORTqz5azumzPs|@lYecU?D*ciVxoe;K(D4j6vI(z`m?>oz&W|>a= zMqjj5sANgZ3dxzbzex@K%4Dy8s^3ws+XWK4=qSb25Yy9N$;r(z6(QG6MSqu9eBdkm z=GR&G9GYX|4Wfb(*Iulb=!5Om*X!SJHUqwjUZAg0UHle$c6GCFN<FewpVO~sqd^CH z-T$5KvYT2aOfQrCv~xVmF8i0ER(YzZ+r708?je-xN7^F!-KKpf?Hc1#Z8Cq^1xMON zgTNynV&7B1?t;T~re-x|fp&?30~E%Q;IpHIv~}EG!2yL;vP@flE_V@IN7}`2J<o=^ zb;;AAl1Vn2EQVN{QPVN!F?}%tJ0MTX#S*+K`&>)-i#|=`hF$%Oz9dJ~;1OAyS$BPq z$d-Hi`Sw61GSmsq#NI3M2Gz%9tPfw#CO9x~(%0QY6=d`lcGxK<{DinUJiPJUsfv`i zvwUdn^>dM&o+~8>p9{#z4esm+&!(KoFYtX}y;(B8(}2MO3;Vr0C41#QQg*-WDeZQu zUPVxUtJh5+8y(K=YlQfS@!s`i(-hCkg*7BR@HL}<$YZ{jaagr^^@d#cl5l40xQSd> zw^7q*5PW8^5Oaf;CAOAD12}IC-5y*#GXEehPGzc9ouGxVRo^6R6>&)2!Ljp|(i1uQ zlk0a44>!{w4L?9c;>bhdZh>jJJu5|X3><{ydx&miQ}##9kLN9Pc&^47Bv6kftVcfG zPS}=qEG3k9Wp)pS{b~+;GdLKX+r=XK6D>3=I1xocyc1(sc(vh@#x*G%-m0)`1H5V; zjD;aaV9!Ty^O?_`Qw|eSC)U=*l6|w==iO$nzZkUrPLNX&Rd@~9WyoZ@JZ!C-%-x1( zqtoRU=PKS(EI^LDf<%0uDoprw_|l*t#O%3lDc6%?AekL-he(XtJ!a(zhkPf=#CuUX z$9g%)_0{(DO$(D_zW0!qPmAwm`<?1}j2UH-*M8-8vr;1GiAw`4;B!7Kz0pLJEvvTH z(JfgA&w0lBab%J*-bNo}##6R+G>cmM78je(TTb$9EXX0P<kn7(pS3ZQ0cT$5pGrM1 ztC@h=4a@JIHu`*-@vHcE`ZH9(u<Uhz0r*hiuZ^VTA8y{e2-Xg^r|UeVhu!x5;r0Nz zfY>NATs}7PXLUMj%>v;W&>7A1<T+=L@p9#9Z{@k1D2=fidM~bB6}0-?9yM`tFTUd` z^y6uwqGje1mUNV-GjSVuZ$rE&o=1`pc^8Pkd*Uwv-+B(jFN4N>tt>gZn0DX~@Dsc{ z6A1ld1s?A(-4**y8ct>UWV2JUc)lR|=Wo2ac~sWY#p{3!oiJfZT@tUAqf>UbFhgKC zlf9P`YZqt0Ux^esABRWjh+M7nRvHy{yFHzQ{c!Fn^wu<VL6N%Qv7)U;%H5kE%mNwM zrtkUNp{d(%GUBm2v*Mk*e=HY!njct@LC9+%0$EGmY{)*Ct(>vCPU`LBnr{vY<OqMh z%<1~3^SQM1r@-=>%hF=Gn&ZS^0vU{RS#|L**({WJPXMmsd{&NWCD7o?6`$7{DxU{N z7ihv(n)zEZ3r#r~2){>Zt;A-T%U;U(cmIoOT?sr6ZWDHC!(r5x^PAta_NYhDTOofw z%$oECTTUa8qsioo?^~ILO&u-sE=M<Z`{p;N|9NXOzOqn%s5)%ar7=fPA_vW)(UncF z*+k<jW^ah%XP+=(<&*98+qEKH{S|2L$yv25VkcN|MlE{O2)Z-7#yoYm`WH{z?$Ox= zr=m^<*NOLXd{O22qa&@eK>M{;$3$&USLx^{!&S|1*-Nf$%Yt)%gESMEI8>ZiaFfHc zmyF)L$7%FVt(g}oBulV8?HFBFV&hoZ$7;^*ZlV`xTh+S3PK6fFoJ#@5os4p;{I)+l z_OFC>&_`PyQ5<{0N4_Wt*tvQa@IT9-&U;mmJ@PvZUNeu@3O_Cm#}DqNcj0T_sN=Y^ z_-opqUoZLN*oBEMGYf?A|DMLJ*VN+l(<tDzi8L-aAURRRZ>#!~yKHt91Tvp2Ueu>t zqUzAoc=#P-gNTNpw<i31>wo_C{lvKHu=p2mGRPXXYlOE#_Ph+P7=%OLstJdQK=(E$ zKi!`!mo0<|i&y{l#s_#)?nS>Tz7`LT&+!lkc%PKj`OFJe*W6Sswm+oWGzQpDlsA)i z9~PQ;#w3;Bm>FF0YfiX~gvQ|75GoStml|zrd?n%FI5wF@?`5m_vH0LeJsAKix|mnG z3YsNFROQj^;Z8^onk=Y~TAdc)by}Xd;u7V-?gm$e_qCnOS^ln?;T(+Yw?DlcINy40 z^`*m5r4|Z#a#=a`3AIsi@+VD?gl^29zxO}qKJ2RPwKg<JdNOqMzC6m{Zy)wt;R2Hd z77ib6K@X=Zy6q50%eDj8tKJcw8O_3h?1v={*P}H)TGKk8r0uV|_017w`xz-@Dc)P2 z3Aw<5@JAHy9&Dsf+8#EpbKmJO(4MYj`~<pcDGL=IXndP**optn9;OPq?^KXiWt`yz zNU@rtq%Cq)nnhD1Ch=>>g;<c|M4%nhSJYNhmbO5XFTD1TeT}+|Lc-6W*!aO|Ws&82 ze0^kgwcq`s5mg(0loL$V<Ng<Dt>@0!%$f$>_r&jMW^re;#mDSwbVo+Sa$#^xx9L7w zcn5AG{4ICumBH%5&YJZSjA~_k6Cc%b{87mL*nLNOj_YoD(9iczsdC1a!I8JxVMh~T z^;LH8qx^%$=8NQANw5t5_r}tgS+0X+2JIC{;UYJOp8$Mt*e5m44bdeOBIB>lvhd2J zaO>+2s4g7rpXR&7J~WEqX(IL)-ju^HIWH%Ug!`$p9E3U6WQm6qAva%sWin+914O8( zU?iI1@1y$vcq>`sI$bP4`F=+dEQsHdDTq(&PCb)(PWy`hBtj${qUEDr+8dU5uon{_ zJWC+@5N~GpmG<z2>Mym`LeVef*x?;rZTZ&8=5#Mct`<gK-i0?zMuIwRd#X|@`ITf& zR!);9+hn|rJW>TcQiQU^C#XoXuSl!ypnFV4-zMD_+@rJt=fn%*&r88*peWo~5e|hI zHi>o&Y{FrG=TIxc7po1MRy$_3_`9;Tx16!HaIV!_ZC`oDV8H~IgEcspWS0vAXQ~~o zwP$-pr#Tn+me&DKn_Mr6C#;Z1uW*{I*(Y<y?2vV5=$>s$=>Qs*8!j3>l&5PYpdAnn zUH&kMYzk2t8kD-lY^?Z({c%Lh=iMu%&cWVmmzOl`)Ud$E+d1*6faW4!j*s{mJ9Hdt z%ZkgDUfJw#sJN(cZeQqg>eJ%<(_b8lxsjxE!_@aF)CW~V1PQ49+882?GE8;$A=e&j zUr(MYv<%O0bA&W<9w3_AnH~9Alo^b+wbme_gA2c2u=`|#S<dw16P-^RCcf+I^6kD$ za3^t$!uRZ<b9F;BQIcrtXnFjt_oAI#rBq&IYIa?~!lpHrt1i>qL%-u3bw7m?gWp=e zLKjvf8-ip;-$^}$m?<(eNjqvEsSkOvx(TP^9P6cJ%-p5S$h=Zs;j|4I7WTCVPD>N+ z7Z_DU*kC4%4lWKpfy#ndEyPnt9|_0|7HA~UWC&jsq6pGXNtt6aJV~RSiT9_JVQ1n4 z$0M*&10}r80;V%Jr@>pP+O?Kg?K1{Q7V8ie2*7GNiy}KcpQ{+o8c9zo)2>Hgj>XeV zn$eUM*Vm%-<|Q+)luW7;p?<TXx#?4Mod|H}<`<y(X6tld_<Vc~uI6k)oo5o6{i$)2 z8$kQBx<s&FhQyA3WFV@_PwS8AvPLZ%=RWhS+^S5(R3yE<3|fOM@^;I}&Lhnn3_-eH zd&7a3jSuz~K@6HQ?dpW)2XtdUSYuh~WoLBa2*ZaW>8)hYEMyOlp>yIi&)Om{BYs8F z+sL4W%Q`GjdG8mFuiAg}2`^Wt0`<qUW(YUfljhn3cIc%F<>^3xZ!*ZZ>h3%+4Zx~q za9V$^@jOl}iauYa{VUM~?QXkCENz2YH;4n#i(~q|-7<x60G~x1-0h3iYOzU)V$FA^ zmWm^RMJ2UOiLxzDq>&mUkNBrRY$sVP2*ZS}NRtHqZX~?aA!PjLlAJ}fMe@6<QTt;2 zdx>WkgKkrOTAHnYbXxXV*1f1xSbNw;m@2EX(l?GIn`l;v@k#I4qhFA15$R<G>m_P} zHp^K7Weu<=9FO}t61Bc9vm!1zVf^aA<v7_J0tHB4s?v6}TLF9SWE$=kc=x!LY&ot0 z2qfTAmh1*5troV0;K0~K+TMrL<F~v=3nT~rh*`(xS}Z$Os(Y5Y+F`Pl9WMUFL}E^o z#Lbq7#lT5oty5^0I{HOl+kNrCS*m<|pHp}U2=fI}H?D%Md@Da)50Jw2_&`9>+=HAe za?wBE3m74h$si-8Z{nGkX4*e(`(~|`S7fGGYZUtMr=k1|@(}qVkWsSrW3tj`-YLFl zhc~2{rAcJi=iHOLY>A?prVXVD5GNC=aHJgB__6Sd>@rAvq;S;XBXw7E#5NooVBB1r zSP9ykWhK{ZtN<zgG1cD?R+Q<NO|pO(#m3o01!9En&ai&5PgO$t?$4nf=;P}IZ&&2g z++UA6@a655*+?AkFxq|mZWL7tQqKEE9RH|JF~Ehp5-$Y&_Ku;+pQ581i^S>;kS}h1 zf$u@I5})}u=^FYdWcLs2m(L`cHH0z;U^!3`2zgB<3Vp2Yd<pcDkfD4K;A_dP7v}J5 z;C8HA0dFN+jsEjlPb?z(!9Lhv>rbXi4g5Yzq@CUbB3}yvbX&h7e|yfd$2&4G;bU^@ zCfmSNWAa^exCEq}V-0Q>U&IVx=VU6;M6n~$ELs~^j~Bu3);KCA-X@d##bfG!cDY8Q zS~*)~A+11X3z2UE0j8LLkWO^ge%u!9bxKu&>NgKb2MzEdNacoPlPn=^skrCSi|Fw4 zECyG|P#Z{jQ`TkdD7G(P(n~i8&Lf@djx_75gp8W-Eg%gqBB8a1UBO4f!!e5S^vrTR z;I~h)Se~Y%h8CZaR*97hH#b<B6Z`P#e#BU$x{!cAM%%6Ni64ahiK9Q1b<~D}hL%~+ zoJfc}*JcL%LQ_^ZIy~$T*5`FhYK%%JSh^R#lPNTS03#*0(74@LdQaK*`OLT~E?EUx zLMDh&daO@iJ$Op5t9u?WP(SKir2jgT0;n2mA;nW7_(Q*d01_Dq0x-xTduxlXu2((B zfWHcE^80Az*8?(ENK-3V45%+l$O-x0603_DxJtmCK`0I}dWyBdyiP}p@@^>5gkV;H zLW|xY>(>Q@S`Z_RxDzzayZ#p8V8J09EAN%7Fi-ZCjO#G`^mrE29JTSc*d?8UpOGfU zZ{Gi<O(Y#z>#+HjVVNu&2>lIk?G<#sV2x_2U&ej2N2ziVXFVm5^Sx+L5n>BbXqp5} zmfWTkClyTg|F&h8hRm&Unz5fQ7GL6RwR!P9d-FfH-o%o}?Z+~E%0g!{agD4+wsS;Y zk6l<&WVB~xef4C9TUgEiclppc=DA;>#oHRj5|5{*%n~l!Nb=@Brh4L=H!={ewesd~ zwLPc{@Phic>Ux}4lt7$uNJn`!L&vpv2>;DG5*>az5C+=|)IYWLk@9T9nZ*jy|2G_t znp|x^ex;%V0$QFdI=0Q|*jUXv?9AqB>+UL7wVZz~TJgHcP138m?{X4)CUW8DxL;)A z$8MsVpL9AYb7M=swn1L~xRk(eC~k0H*+Z$%_=S&9asi0y*qszU{&|<5>?OU*izKg? zGS5^CdLFTSg0c%+6oGb*98z*w`3zm!yYdVkMOZ>pfL&H2N`JwrjIc@7$#*4J?z}3T zSD!FJQvjKFMw-I-LXiAS&Kegy2}o~|0#bSzZudBcmFFn4XMjq1!?0e2<vOL@A4Rhs zZ5}-PHkv_lMuB+0$ha&;mvO2`Oh_#&hvmpEH_LfC(SAzigB|m1zaBGrB>HdG4|d5} zO-lC3%}VQwar)n9n2$8F`CXtqwaI-&#(2}rD`2~#bUu*M0+2Im6-<a-cZas{MS#`x zSn*YFlfwHHuVLlvz_=2mr?a2Wj(mDkP~Q}mMWXAgtdII}Pa-6xPF<ecj{ZAeirISi zc|MRANnQN&`l2!%^J)v@vERhewH6=Ftm2Sj-Jp_FHsWO3jQL%v&fQ(xvK!j|flW1w zgyl#h=j*3JC{^zLC&qDg*W0wAKIxxGYn3*RB&!N->IxfXG2z!KR4F@V%mH7_17Y{z z`tULQtH;7N*ca|pW(q~98LK(>6dn#6C@YoqNTZPd^dB>7rk9FP)Ur4az2AXTn__zs z$C{T9q%e`TJ7g<d8GkHv^YIaUYq~(K^nApz+BIzmPm>MHO#8t~g&EuM;WO|B&}iz< zTeNp7UsAoWG%ERrYv{5R{B_G@>@*7bG^3CjKhH&={`u~@?)~M40@w3ytCTE+u~;E_ zN?9SAa$s~P=J59Br+Zq0th^#IV{v983Cp)1Hwm&bip2EA#*td*xV#POS$eEvmIZnl zo<~8o0qgk1tSTC*)`}n%hvOWKw+>JEz;`Nzsa{bUlJu9$^W`A$RFSG(iO}p#w`yEa zDzmsE^r39~Gv}0gmM!a1VS&yc17^53|GIYR&s;pi4`;R>QS2NI8d-Yp#;l5awdbKA z^vXJUWjp#3zKrh+0pUPV#T4q|Ouv~sv<w|Rl6*ca^#vvg$NXN4ET$y|cUP9iryhM$ zOwc7&y_$X@0VzaXM?aWaiUG42>+2MNV1&1=BSs(n1C1$M8hbQkH0bLYCWa;(NFz%@ zA*!$b+E%AYcq{4aa!@e0pW(OW&nzY}rh-Dc;JJv2yu6&JO{#a>W*S9&x=CkoGj8O| z4_;ZGPIu?(&Ue}l)UVOb`6oeHN^%G(!&-d3eku-dK5y}G=9H05G);-OnB;$a_r|BG zNLv9G8V{QaMH=2$5K>eF|BlS*Eh_#y#JJK{ZSTI5)?5bL(uiyCHVx$YB@0agFBQ@# zFbo8!GNxH4YvsrvMJPHYT%I~aCzeggXxWj2NNK-ZE)?#|e)}9>$1ZW2X5Fistp2#j zpnU(;$d1`<;9W<XWN(v-SDF`Go6<IsdzFZ%*tkD+C%gT=c4DX(q2Cy}p33a1$U9K( zY27a(|2A$ZmDx!V+EyMyJng>O<JD3;i~Bzw*qj#?bX}ajqVBE?t1(~iQker4owf6( z%GB(pO8GSNER3gbv;QEVa@Um*XJCJm0zdMoT0MWn{cHSX>lBIgijB=?(R1;XUHU<G z<Z{hP-gUMrb`2#>qglxuZwz-n96p{~F`pDY>NJ({>1!=mfgCTbI8d~*Ua*a!mc6LL zetJ(<{7z*G+2%C=mBo%%!T_t|N}A{znptJY+gS2(0RIu4*zui8OR5)KV@%+48PIMD z+5BTHjCJa~bg4D1)N;@Bbbv~VDNMzg=_D+5KrXB|qZL+F*0GM~?^oOCXz(DS#lyK% z0Dm?Kqw%%V<@~U?h@_?|83Q|JJEo{vf05X#H0D2wy!z~_lf@h6o7H>>9ly%XG}#qJ zV&`K0&RKFEYFT`xl!#(u>hx2=)7SVA@8V%(@b`)0l)xzl{s#@cELM)A!aDxb7oSX+ zmK1qi*~dv8-MFL1)0lS@p*fY?7%6J!$6LRHO2vIlAI{yDp0yqhgkZ0Oo@dGLGObe( ze8C1Lna7KVdoC_^jTJ#c*;l#SVc8C~tv0VtZ=IW>)!qzl!D1%B!IWUz%e3g`$$>lr z$470Y=H@9=V70nrhgfT4r*K?hZOMk~@m<%%<AcE6?eW1=TSjn}CFu5hkifIeAI{u8 zq-2AA>3<{}lJ>cAXEv(=6c^_QHjjso`5B_`VDrtjhZxIiDf+d-zjEO-8c(EM2S^h< z>2rzzxwu$8RYKuY7rQ~kTBEb|ZK*jwbi85Rxuw|WN+matgL)8NRkPynuU7fY9_%^s z)c>cvAw(Mu`u_`0dC&4Mo>EJ*;uNT?uMdS~>ss8bIRprEerd{BR}dSD@SLtgE-c1L z!BMpw^)E-cqGfH`>&v@?`MQmB?aPCak_}x5xNz3+2lA4h^I8RnV~$L5OBzKAWjWuZ z2M1sKmvduv8Z7_8P|#Hi-y!^jk?*w9r`#;^f5<r+@FSxCFEs}{^^`t;VBY1mC69!7 z{xRCuy;meWota2(Wra|Dfu97!|4=7mqixpDG-u+1J_bJ(Rf!<gAB*bVZ+bbp*eoc> z90$uH8DPiTpj!FHf73K)BL3ggG$HEV#Jvucq%@u{H@5tmI>(|cDW?9sTHw|k`Y&8^ zJ*kQJA7p9a&57}%?rDQX?`bo2=eJCd2}xrPQyuQzijiAt8p*fX%fFtL?|FNFZN85% z&x{$@6x#*5fnQJKZGpL?2Ddlhj0f=Y&TRMtQx8Yp%GFuflm5lWJOyIr=wGPsc}2Ii zkd;+GDpF>t??&h;O#$4(;GbZTyEaONotfFG_CwFi*7hk~PVl-xMr6BiswZh}Aviz> zpgpqcZ9Txy5#mX<O2hdmL9sAZ;N@wnY?Voz^|*vvaC6=$-@KnN2;w35wQftT!)^C# zRe(2dBawy<<}v?5rNQAm%JfV60g-Fw7THPEYCE`<I^kI4e(T)T%@6c&xV2V0Ien&| z<o`;k%1yMw)(QK1t=!1ZNhCak$+aHO7V1H0PwN@gW|xGxna3p@#UI<am8R!^=`!a@ z^-{p~J^f7+i6k5#R=p^bfZNhGQ5|mq&9-(y3pS>AVzc7sh$-1nKoq6EK2K38rh$l) z2D1istm__f$!Dh)lQwv2t%+`peR!ud8oeLV;v3RK6xHP83SSD-gtf7{O+mnC3P~{R z-Z_$sbozkF@Dqb11$w68aK;ZojY%Kr*M`vEI$Eeuz6TbO)F;vp8frizd*bDUA&3Yt z>4xTgp!vqvAOeIWK-6|%gS@h>o`+3CiV=&4uAq4&;$4Bj+v^p0^^Yt1leb9v;)VOp zR^_xVd9A8iycgsat<_&<GsYs3lwLbB3Y)6`f#Jj!sLT(JFBRS@T6AjCqi7`YFVp5> zB_UMbJc~j>I}pB->W}<~f!usk-^q>=cP~L6B2k!BCzCiE$>dfp!(Lf!&SJS&KeS6k zsMN0&^~c`&t2c!<y;PJDGibw`BAgE8n^E^~<_7L$Nk;VcAG9E{W1GIt`%?$k!5Z=* z@6qPA1ZQioo!2x~?AP1ZSad{RjY58p9Gfrb1<9&Ja?_PCHR;^$M+aShA)gbbyc{hu zS|PW4_2PB(4Q&Z^e{`Q1l>o1u9UT|p%T1z?EN47gw4|fHqClUy+TBu4d)+P>eLbHc z9n`0`&OGhvXOqgY>|MOX7Iidwk|8UU4^MAt52P#bi7$D|@fJ+E@aZZSuqIT6HN+Ti zx#{w5er))Js(39VJ<~l#L_N!YxjbrOz>s;9i1X@<qqR;cLW1B{0zh4M+kqpPs7_O| z*B6{3sJ7XaJ&dO{^S)q0Sfj-;BM<9K8$Mi2c_HG!oNE>iHB_TrH`69<;3^kGs&R=R z-rC{)N*4IUhij>ZdfG`#bgqMF$9yK*NmFzR5m<Y5750z6$DO!ns!GnCGnQTUQerRg zhJ_8oy?-y$c}0{T*BK6gvoiy?T06z;Zc+T5N2RSJQmL3581xAc@Nf0l0$PiaWcVNv z<tQ7<12KX>bh;74`z|A#j+As=$pstq9$B?@iT@0bxPk=fR_Mtun*+2DMc2YA@Ct+g znl`|_X87Vx0&tYs1{AdRDdsz#z7RmM^mcYMk$rf~yg{&P=Vb{~u1Jd7S$>AJQM}Tq z-IJme8{^ACw7;l+V*oI<BvpjV+mg6Oo&D}ruP1bYJJD0ulV{4+tC~lF7aiBnOq^7! zi_bO-!zcI8{D|AY=he;*jQMBX+4PQjTgzAZ%UI9%=s!*=U(7xc-$y=l<D6a_ha8?g zcjNrl&nY$z*-&sTwdpHuJUBk_fB8Iig%XsM{bF>ltT07``VnNkJ8pI5#l28KqsPJR z4;xSk@l#_ly#V~U#BSqz`SBX3(%HeDH{W~mf1&`-3&oFBSG%7Vdsd5IqRtBs{gZFh zY<a(U-X6W;qVC~vzq~~K*C5yQ?qO^+BlzeoGE!5l%O}Xkl{Jp@$F`(`gIC^skf*;> zjH<rPZ&SR(v0H@x&SpDb#S18=FK9Xb(C#&mrMla$>*;cJ{MpU+vE%;?;6+FeEt^r4 zy!@^zWT~ynGSz@FAI-|@e`_|T<owLBeBZO|uxothFJ>#aXK2}K?+pLTOu4#Eg-B)c zZ#2INDe-iyjW_T9C?+gQa+0`lthMx`zT-(4-<SM`8JcP3dwGmNrpoCPUC_X9>~|D{ zir#x~n3vHyH2fquoI7JhanK<Ff|{NwWDvz7=*NHh^An~$zPKv0oN>2N5`}#;Cw_r$ z0ZWhQT^??GNj4Q6M&GCcizW-J?WxjK%|D)}`_7bJ+tH`bynOU?`B&Tfbh1yG?~99X zzfBqjdOGLp%kZ0uy7Ll?e^fb+CP7v!nA}L2{eDOzwUmhQ0QaBwu9LUH54Jr0@a9E~ zZ*W^1M711J-DO;Z19;|K9w#@WvHDTW*LdLMO7+EY6{ikMvopkc$HZCnt!xNqMqF*F zxpSIBH#NpQYWdaNDyn`>aJK5zNT@%^^u9HPiUO9`1&}>?*%WwHqA*c+Sb9i#2uG>< zr#dI=qiBHd+rJ@Ow8Gr4_~otYkZFFjiyz=Uw<!0ADmf;_>BoGIE~ce*GD|98cJ}?d zL3PdR#+*Wv{cUo`sm@aVJOiWs3v$!@+7aCPHO+|1RwZ(Jy-VCWyHpy8H}V_k@u;Cx zc>>!SS8s+rc~v#st9Pf{J$4N>Y*A*9F80)|{#!r-Qa22K&Twb_7`ncihglz$N^Aqq zW8KgqvEgrk*_Qr^nH-~i)|zNU#Z2g$<<s-IbMmn=jCrZU3wWYKpNF#HOfKQNy7}J% z?q@PRN|&?25Z#?Y@W#1?1bMzGg#}I});v!WNKSjkbn2(JWMua(Q-8O%Y<=)*OZ04d z=mm$0+PD*om*`#<Z#nZ>3sg-Ti+T~*?V!odHzGzdX$+t3cwI6^5a$q5U6IU99(VNA z_0x-cKbGb8;mTK_?&Vd}NbjPD@aPH|C7;IXHh({vLC{_?^ssHwLiBT7)AyyWhB0UK zf9i&{2ReseQMehAKDIjS?5>}B?(9bB+JG}6#A#^2RN|{~72cCAp<S8UT!lNlIJyY| z@GAmg6G0wLXi9L^ij_8^JHX^;C#CU`%31m295*GWiHEPVDPEnpj=wqwyN%*mLeCrB z<L(9SHBQdF_8V=3n-_*IXyMnYSdv#O{L4d6{>OFNevj=ue)6V|o#kE4y&2-v7&+hO z9Y%e{wXLhK^|`p7w5eVE#HAG$8wl=Q1Pf9JxEkZz`V*xVJ+U3#C)TXf+X8mp0eFh~ zyuf&iOT;aiOeJ%f>lzy+^b6WEOVBM~IYwaZ&MP7#sH)46BVgKI`q+N1y>bj3Wb&-| zr;@in!-ZyQJ_!8tDwBBRGb65f`f@~0i|J0&qhn3!LPSop=}y%nXAJZ{vH0qMqnSp1 z$#^BxN-YHnUS7`n(CRg6I(!FpH`H#Eb)iX~4FXqPW$S@C-rgKaJ1x|@PY0#oBph9) z9=py*bT*mp6eIU)gWPMQ=}yigvo6k@n)Re(ng;WITS1yvlN0aSp>!|2mU#Th+1>c` z<z``+5IL2Dv+-$XCVMu&{cM0PCXIxwa2fAH4?pk1OUtG(AqW*;tCY``dE#}=(SC0s zvrhJJF|QF<d=r<B@%8fZSMt#qo*E*y_B<}N!lPvF{Qm|JM>qqXrUV6%YMg;#_qE;g z7Y%<U!D#qd2H!lyQ75LPqeaRzH(zQNU$Z{$RmP0pBEp+465r$Rr~3Y&9BD3|nE2nw zWxGkbR_dAd%a9Di*Fe)Gv*M-omyGjaLOs-{B^+o>Fr-?-dy1ZcO419J>s9NVvuH+M zN~39bLZm$>7BP+m{jYzvmvJ60T={&2->C8O^c5PEsWnCB*&>)fzSb4$?<+9CRBMvY zwRLU2YgSsGsOf0!GkVa=m!71LEF3`Fc?Fx)Kc@TY2Zb2O>oyJ5*t%x=xkhM;I718~ zb(-X>ZFy|uUO)1$k;L26Nlwy-6*iAemf9E4P9h5&134F#L)}W0<tC3DFa##BNj}<^ zhy0|<b>kT<I<~qncoeMa^l&*bag%32K4x)W^9)y9fZgY1-#i=#k7t*@cq*;t^ql?^ z`BZ-N=VbME;`E_Z2R53A{2<3fKrp|?Ipwry49l^F0pmlVbtkpgc_re4*-!9z6)(p6 zYW;GwkZJxiaCr$3d9odbV9lz1UX963@NX3WMzg{=b0+K*Q8)|Po>tbq<+>cmJWDfG zs)3TLHvB5eF{q-A^-VLm@LGdd4z@zhux5;ge`?UX-UH0hK2MRPsU7gyMq?}W7fZD| z95!tI-max3M@{R4r8u1!CtY^!n({xltCW5}^5qY1Z6{-4=LOb6r$scNpw8Cd(`rY2 zVPp<Hbsm+;Tk(?zx105``p!KpTBnK$nDM=Idw8Y8h%gs^u#jNZ1V*!%i7}I_1KDD4 z=D<#2_86s=k-X+9<L)x+GVg4d%guV}_^><T5x>Xs{RxZ{0l!^)cxpA^Wa1FY=udUj z=rX(*xy&Me)X=+l;kEq+YH>`~wZth1+pl2a@O#12I0m>yOcIK6jV``<qxC-9nZ0eh zxT!j_vZb&s8VnJzfelRqF;|kkuN^Z@Gf16Gwu-!;TWj?dPo6qQU4kYBJKO5yuO|`k zf#HN;QgJl8Lq+SU5DoH#o**SG;eVdd`HK&E=JUKM@PuoFZi3?z0Gk5hs9d+V83Qio z_`)`WJA=T+%Yc<noeQw{)vxq)KobG78DRleJG<Ln>5K4or2eB`WSn4%k$0R%Er>I$ zYO&)COx!Qn{V-9LAvd?I@A2VAuisyEsASph<Ss?z7Xc9y?=J}XV1$i#Z|q5g;BZMJ zaxypkX#*v_z{z~)!_N|f8pDr!s=QDui8r4xiBeu~+#-zw!vhMF3HcNse(F)L@#NyI z;K?qFWCLl?Z=1mkc}qim|43T8^@-f>@qHQOYYAO}r3oynC5e(tQ&Y|jI#4Ta6s9-i z6dCv<askuHPv${iB5&9l6qIB$O=+kfjb`>^VBKOX?{e2wt=@Rwg|)&tPBx*vL;|~p z<7a!02!|E+s`)RQBN<;jldsy|rg@!d^xZdBo4b=ubPEMD26MN?7T4`=DTud}1@jvC zy}-+cSf*Z@_GTP8I5gaDmrLrOIh|XU`3iM@Ocf6^@|~)6)u77$vV}`Lmp~$*tSvdv zO-ladpJmplJdBo;-DT#z^d=Px-Z)Czl=&Kq^9z~`Ws+8f;X;)L3FyOXheWl2{65R) z(RH1uICekJjKg4$PeB$#Ugg38_pEoC-)o2s<u9;`Sa0%1U1z}poa?>rmwlX9_wzw( z=nHx+iu0ZMgT)vFj#V1|6%LjY!g5?DRF6x@XCWdj0M|H-Y;8Hc<=>f`Cpx6EzOBGY zI=tbV7f7QXIyj3K{y`)zhRsQ>C}(RqJL*AMv4xnGqjnPLdz9m|vIi$!46fO!tZ}jt zh5lTsX}-*i`xFzB8@dS`tCGf|#MH&O7$$5y*1p<_6a&(ZND<wb!O<qW7R%>ixwG+> zBmlPpAt+nzGABp6<wbsvY~A$^?|yp|6&M(Ej59d!|Niu*fUSZrsZLuW?<!VIV7WDH zCGVicte#KxA;6_rB5y?~@KCi(T#f?R7LM+qpiVH^wPttwo+bOqmwIyc$VG4ayMh3$ zMQQ3N0V$T9ger?Y_x(iQ3Y~Qi9q>M+A#1e{N{2p@`o6_o52L`ivWJvCD2_0>xk}}U zF$C6#b+&Rf4nlrBlD8O96n&Ww?s3<8s#>Z7J#2ee2P0p0;9%>ka$>nZw0<`(md~Dx zR9+RQI@*tHqa>|krN;tMEQ<FwDhpA)M6O5D=FiGUdtE+U<u+QTu-mnPVbIRb1}yz^ z>cI7P90os+*@`zd6Sm1-Gg)5=3m~#+X<pOwM(Y{pL>&rzh!u%OzqOR2DY$$~X<H~+ z^btM38ajU@#foD=@~wyEq*NMCA^rrODYfa_yr?|67Vq6j2`j6vleod@?zSik;cpGh z*wJic<n2al8PoFh)xDhEJm#Zcvuz=5n`Y;ZBpE~(_K=H*GzGX!mylqZnrFSJ<jJ<( zdjPev>-kI_qfc!(n-aTY0b_K&i%0X!g&d6lCMNp3Qx@0I+b@677g(?^TVIC9C){8e zzB6vpuon9x+`1vWnB?bs+~dk$aaT>fn}&h#<I@T_pRj4tP1jjbM`ViEuFRBXXLIB& zDER7q(>Tsb6Q^&J?gARl7_Qm8tt9Z9g9o?)^e~mIM^IF-ic6Mo*Nm^q7k+Ag%Qr-H z%S~ojrlD061r=M}+Or_>ya^3w;r^ftw|n@w${$Ws^4({(;>kRErjy)CrZlUb22?lw zetjz}Q~h1`#Vy_RhcvVwMDk|sdD<F>_jgulOfgoW^{7*N)Vojr{!6lwY(Ralf9xIH z)i6Tzr{T8&iYq7OFq@LYXs@Gd52vY-PEUVZogvB^=e5-Cvg)c0STeZ2Kh^T3E2eE1 zYp;nG?a@|{#i8l!XvCLgv<p*`m)s*vKOE?bcbS46UM7YQdmvR8xeP79_9e1}RE<n3 z@^b+VYHtc+x+u;OV9QMcXnzg~V)>#ILth0%n=&{~(5N_z=Ear*L^G0;M!L1n5&S4M z;DgQ3-gLHVVRo_-nWV<}V37=adV4+Yux_Hi2;YvOzW}0Xm>yp~AzC)uFH(iV0kQNH zvS`WXE)56c{M)wgsqy^sMw}E?Y?Tk+uY;b%w*+3+QveNO-CTKkUDCJZqEFI-iNcb< zQz%4(Ld(A24**tIGgjH37y*1GD!rCkv?{VWV`ItV?SBPZg(PHFfrO`pM!lotiDOBh zL7UC2<n!y|{1;=}yLGHz^iq{95O1jbtlb&4Nix|+!YlYP#;OBYf(^J|5@i<}IgMmw zk0mL9HjBz6)D<=1Z{Lvu)1$G!mOF@KLmCPr^+BOIr2nwsWR4{nfGn%aB<4q=Ep(kz z9P5wr`UigYD;!2+Z`MSf`*vCya=9E-cgxBM0h7RmC~NPS8dhWaBU0G4v`Bc^*b*TY z69?6Q&NGyrPK0PDH=Y*tyFX9#y?gWJjJqAlwwZd$_s=$6G)><2YSJSy=U_|xY4LeB zTI%{+SmEo&0W$I4@2?dsL4ahdG}bHMQLP0m$uJ;cZ=n%(OjU^IhPLtchN+3SNjmD< z2BrVEa<DN;%Gvk3AsY}Ne}L<2#VHsPV_I2@<VYoS^O$urlmpw#$Y2zQ9l6C5H^zj$ z#C!S;*q3C$fEet}R(YIo-?#^|Efgb>+I{V&#!rhsSgvBRpn45$W#=DKE{@y~n~>cD z8_=XS*xdt6K3FPl{J?a#BVJr!QNu_f+ipn#Q$MmPt%9})rNaM$eAxnT3ni!rr(P1q z5YvCxVC9XkK;hc=v`G!bB*rWGG-a6@lY+n>{E6s1%*~5M_hq@a-B^rsx`SHrZ9z&! zEPAz+k7M0>c<Da*@xCK+(+StQW*hPQFkI^0&HGDsrN;t=C0n-LC9C9%@r5ke+RCj- zWJtZVL~fj0C_mk+Cs*!$yuBo2dtSs|AY-nlB#K;8D8vYJJo-kgHd@YG3_rKsA$!~` zf`g$1B0miRsItg=I1gT33>=%W0zO{RU@n6Io`aQtr(UH`&V#-lmPw4nBVq6lQBxp* zl8rX_@j-z`2|SQ~WAZ7UMP064hDx9K6OH`d+Tq^Rnp(_s-kZ^--}h}<)>heE&gk60 zlpF}kq#&{@vN55_wNt!>u^Z%}hy}6062Idrw1WWKvO0}LM}*M=(L<EY+UK%#eh~RC zQ0P46iQs!wClV|HHUigI?v_{LKC8vC)QiEjIZW9wjpT9ug0GOsUJw9B?y5;q*c9_G zE0IfT%nyW;)|I%C7cI1}6*yuLB**ATLhu8`_?MMDl$bSo>owXxcpR#CUV@Xfctqzk z1s_L>*Kg45c2sp_x%1xDld}G{RPf)U7#I+Y{zZ6rR}WVs?H%uo=KAJx6KC<zLb;sq zH16Hsj8DwXBQ&zLTZJvW`@6J_u?Jn;_Lx=5J5^~Ji)ghok1kIHXd;(X3o-f;uiH}$ z#_e|_u@ht?$oN<3<NgJy9O=;aM2H1TZGaa!sh?=SK;(Ns0CbziKt(=Rl7f$HiP6X{ znT;Eqv}g~lS4soKsV|DR`T`U>;;{P{jmE`1SVk)&b*sbTse@Cms0h12MJuf2{*C+P z4-fyu^7$WeQPFjNl>T@_*Xt?zj7c?k5D<`A?h(<=qN)+O!m8n%8q<YE_|2HrlMC-& z#g&$Ii?z@#b#w&FP5dmt0K?*9d_DV2g1a)Q4r0`=8YxlXsp)?Xcsz>>%^U9P?UcWY zcUu#d>}@zGy|U$9c>J9n48X^4WCe+iSY4w2Q@d1lrS7nWzZGhJ#RQjYx6N}29TNbG z6Tlxz&wg`9q&z^3F4Q7_M_bg^SYP6AzBHd=p_XqCpw*X{s(Gs+8C^x&tj!@`Kvooq zqY>Ik`&{$3LLyp^mUIZMqQec|Rbxa}!Cp#;HT4zMj-04zz1+cJEK`<TJ_V=97?4;N z5a+eYXCawYM|;%!1x1Filcsc%V9FBHE`yF_-RbM`Pdk|iz5?lma6Gg~$eKxxY_oid zL6NaND6))yI%*n|((X%K6AnK%xv_iT$GE#B=0|zx1;osC7NzG^(yVy;U`s;%k)}hZ zYa2(4_hV&5N690*uM7so<V#>bW%9XUd=KmD{f+u`{Y}9~0BRavsNw<|8(Pdk53?&m z+Sh14nATAN+QbAh>Q!x(6<0{fD|&USfb1YyETRe+Qz@Oo%WvqIR1%Z%P~T~TkKHO2 zxw5yfzDC^dO!#=TPijnAzO&0HZkmK^#<?Xk3o1Z2iwLAo&JHvEA3M*WXZs1mX+}&( zZfR0qE%5W(=W^lBBd>at6+4o>_7v$*%E!U_%VK>Ko95<1Os)#h{$c`iIPiC6SYckI zv{a}<%8w#r6wS!Q!{8w2*|z4VP!U??f=wQ~j6o8P{Iu)HAbNbPMu5KRf|a172S62a zP&Dj06>9Wv;N=m~V$rL5m2Ra=J`|O#5N0Y&TQ+pxE^qIZiW<E%Z(o1y+CSOP$56NW z6=6H)msBh&@hM({s@X@Jv=c>9HdBDy;acCan&S$Ah1ng~){IrJVkizDwo2Al<|Cr4 zhjrhN$+yV&kYS|Wmt5|vLiz>s(Ny*WeMhVL#jy>CD4Pnya#57iROl`<@?@lmeia#W zr|h70M|(x5mzZGK&OMH0NRQJz$t4v27yc+5{X8Sk@@?@X3esPskep(zpn64an1_2F zG<hN>fe#@5T6uPu@Z8n~HE|&i?(w4O1Yk1Ty)WV$O~m$;bTKZ_RsOyal|RMtWkjGP z*!Nq=<BPMhrcuaQWt?^zdq?>>UMLtINiANH*A%6<KUt<_r%~ZSTdZins(fP!vdaK& zc?UW-Wb3D&JR}^CZBBRsmf{Scp4qy=CrLgcA*^Z4sfti_Hdx|5{R!vEhmXSIBoQGB zxvXqQg=Hw=+`(fMmawm~*^0<2l`+3|nJ}o!s!3Dr_QtQYV&<v#4XAXgNYgGumGpgn z!<0zO(}}99Ki+>Ppf<3#;?Fj>vy(9!eZ0PA^Hj7jq=us+G4!#~)@hVANaVH|uk7K| zj_2jTe`kurT!ZIaYC%G2gVC9}zuAwZYEcFZy2t^!N<P#((OG<CzfO_l>WoxUzVxoG zI0f(E{YF9shPGm?r73_5yOzWC$`^)jfOw2^aV+BnCXevA(x4M6Mv6lLg3)4Q4&C2o zWCx^2F9GYUb(Io|8QW~e>#Y0dMk6YhOhuRx?GFk;4jr<~N-4+1?Hw7k+<NZ5t)M#b zGkZdUhbhz`JHXAre$^FoUb=84$xo-W1eTKu-$Q@VdEoy7#6Ua0yz+ptzd<^f=IUVU z2fS*#$x`(4P_TzVPMF@R6Q<D#)8vF{t`oNY^)3C3d~j3L@mcpO>s<D3CU?g|Rp%h! zfCz~&O+=XH5@D>yph*9NymM)fsJa_pxVW%`KxCM9kzpHnq%g}9{H3|@*ZLQGK3P;e zSzi}fB>JDx6BT_c-lV7z`O<`ZX)f~B+}kvSxirCC+68lM;I3o7B|J;J@T^U~O+))i zlYOOK_7(eWTE=*rmIZm6hUS$f^GY+#tLB!wBW<OLw$e=6iYu(H+EP$`Jm00EfTc;m z(k=nZE1ZV|xzpzq2ZVW%^eoNPvpne4yC3<RG?cY8$y(YaYc<~}qNJrs($Y*xi-)jo z{6!jyTbjfz%@VilFaF!SNJH&QllG-u+SeEVA`LY#O&XYXX<%R4i!}7YG<jj#<%M}w z#^&CmAu^^38PkD~F=?SN*Ap$KU9_0j<!$~o8k%C7Ofk(g#nzALfwySKM@QlaFuxNz zrkUuNAcCMT(GVTegpO$@IwrXf&AdZHUrduPrkTE&G@j;Op`k6N$rjU0TTB|)M&F>J zC#K00(@alH5Nh}rXh?@?qQf+k4iksc<oh$k#Wdk!nu&`^LTlvp85(4o3^MI9$byEm z^6go9{@Bq^(c$pzUUZhd9nA9Sr`;&AC-TYP-k@xzNjB3=*-RWNY$U~Vti?ADI}-nY zd-uZJ#&M<#I6nohls6PjNu2JvAsgisSE6NBY{`eDHs1Adp&$YzaRd@P0H{mK``^#> z4CciP0&L>z?g5ltqEeOw%1(cC>94O(gFRD1_RKk&YU^l_Cy?6{;L((gM+;R~EbJIv zt}Ln_`_&fQ%mA~dY|L87;4C#^^<%%_xXl5hP1%e#-`4r^ydmGF#ks@J%X5bd_tZUZ zZj-=vQ$pJ<NZhODOuyV0x9_|ulW_`UoD!08>&Lx{b_p|W%4(c~8mDY(T=Sh>7T^>F zI3*O|*1x=4nKfk{PC<uLLLE+2A#P&Qlyx`-9ZuPFxD7l|+(dxsri7-O_<(>=bEYh} zDadU~D7Q7|5-`7}z^^GAzqWyU&N&%`nz9jUo18LbKurNqQ-J`rYRYtxC9qGK-g7=> z$BZ>Oo~^0aV^i?hR3MMdyl9pKK|AB_rv}bKP>i@KAa2TrxUE{i(Ac!FW~EI-Y12Zb zO?>j^3iZNkK3KEnrlGlMq2?xtV>yC5eF^7C6i1>EiE#D1LnO1~bMcv-A7Z|C4n}h@ z8o@Mn_T}<9CyT+DFP(#lIhYv1G<Le>y>s+_$E0fJ+%z~hZR6Y;Pr;fMHVuVM3l%oO z)#X_$denL1ioSMk<Z5QvG#EB5WZ3)yGi6y3nEBcxu$%+S5!f~tziDRFG#E84WYmPG z?cP0+eEFHW)6iIKGCgVi%W(RyMcd!?EE&znng+6_g~*!lyv)02Of5ffb?a#spYx$H znz1zvY)uQXH7yFyeC}Pua_5deHw6uKgp6joO@nUJHo7fHw7%zOYUbTEcsFh1-Mk9! z*ay|jylF6R+Qz)CdR^8(t!16nV9xIbXLG1;TByDSJWE!(z{@RaZZ3e5(?Uva^JmOz zhT}BgI4y+Z8b4!JvkRx;!s+H*xW*P~X|~`rEI4hm;F@o!u;!+rx#{LKx5ig#Y4+SS zJU88(=Z2Y@T6i=wt3MsQK5|{ArP*)O@Y{5Fzilamne1pHI63XSJUl)<`u;zh!{9^= z<xSg^w?JW3cH`oznCd&{SU6b&htoD3E@&+GO$N_?S{-}o8XM<s$a2~y%lXA-KKBIT zGpVf^lheTDba+f|=_Z+8RC#y22dmhd)9~hWbKV?cI2(@6J}ka7<yX#;aPEdQr<;@J z79)9PCPs^JoCm1bmD6zLbaSp8%76Z;_|HrRqwB@Hfv;U7VqH!{m(w;~E>J|K1oQX9 zXZ({fIt`3YH;2(7hW}UGht4bzx-0nFIU>&XfakOgo(r+1eQ~NS$l46eWSj;Wr$uC3 z@HQ@+ZyM&CwwZ7Ld|TQzvv3+LoR+e14-dYXZs(s}3&{x@;G4FAZ+;_$n^{7l*^JXL z<FwR_^NVX?s5j)?0rPPhe4Li@aY3T1hIB(tAh0Z_A<Jo-EZ2OU#ZH`t6Q`w4+_u*L zXlCIwSU4S?g>xNPV%|-IchffBZ3B0m(<dA@ZFATJg>qi`quEr`Fx9lpR1=h|9Kxlk z3^N(knciIOEUba)T}-A8uKdw#t7+J3+GeXYxbmkvold4#)smFzx6W~K%7w9}ZN{2= zTt!*WihplbZ1Y>kHA|W`H4RNo3pF+Ma0TKz;lWUv29&0SP}&*=tZV4|*M$|W%`!#K zo|I~!y84lG{mn@cTACJWX@1eweUnw;)jxBMkKHs4H%;5zwC1aSw#_tbGcB~u1Q*>* z2=Y}m`;3e9|MKn0VdwZHa-R)k+DwBs(>B_y+1bF`>&flS&1hV-@>?d#Z+lA<g07)* z&IXvKg<zUIRP(uW@0^>!%%N#;Xj;gj$zx!Q!mZ$(wBem;n|HRAX-p>2Gzc_pBhWTb z-EfM9Yo>*+nR;08sIT7S(_ngbSynlwX)r%E%)OrBBn<gX+vGDpPpUiVSJmU;iAqw} zVGy>_G;B0&v(dbY&Gr2%nr!y#9`Y=1Pw^9Dc9wtLe*qPvYZ~a9wxMgQdWBAPr8PaQ zxG2HaQL)LUVX|qV$>tukcO}bcn+DpZg=m{R0N2WvRW=QkO$$}FR9xQo#Z%)vS;q33 zhP<YQ@|xtBDO6?0K2;erYZ}a&wlQn|bH|Hy*;rPWjRVzXoYFzLX(8p-SY0-5rY_?q z186sGqusu;x{MnPpxCsHV%u(A#w`UfYud)Fttzj)z+ROZ%W4|3nik4xf>QVT=iS@k z)U^_0KTX3=(>6aX$WyUacePxS6|TR^ESm<)riCn<+bg`(@OOT|IK@L^(?W?&9)x%O z!vLEGz@~)&o1o9-TJf;4reUmUo3Yk>kCmY`4Jb_up)}#Pnw1-qXTMq6M0014jcc5o zW&x*ZA)F@MNE2+E3|nX#7Md1XXnDBWbj2ME)*@mpO+!o5LM=@mtanYs7Mg~IriB*T z`UQ8bh!{E3K+d!cIcvTmVvbCMBhx~TtSzdC%mgU5?v(H7$qxseS4Xc8Pfj~O9=>^f z`h)w{Jr>C{L^3TD$<`0Ze2U^ns7dSH6-AB8-xRU#wGesn^CxD4V)2X6fVF1TOhYx( zHq~tNfVHX4R@Gu&fpgM_c&2UQ+1CzLYlhA=pfhcQ&b~6JTC-WEVU}s3S+@Smxlq%* zSgvNAQw}!_V328>LAHUaoD(=WF>T|-ye{tSxprPz#nPCDG^T~p*u&*r&ezYU-S<QD zO>gkA_@~*aQT%c_y&C@Y509V!o}Y2wj6yswpP=qV|M_t6-ee^8d@??JZo2T3XJ^mM zBjEA>v0r@BI4*xJK6ifAD%;n8h+?IcO4NR){;(fqu~L6%?FWm}^0}Q%yW>{t5985j zYWsT+{rsQw^OtXWqqA}Zs(jD?GW%!0TT}{H{b^k-eH`>ZnFr-hW*yJ8=n%j7)2Bgi zdikQ)|2R17KP~^TH@F^52i@V*$ys;Ue_@*P<$vPrvOAvii+|<a>Gw}fRw(MJ4@EsW zeDSBr^vke6x$O6g|FS8?i$6{KpNq$FGN~)UXV0Ej|11CMGxHNuDU}7RYN$)~*O#-$ zw{=`T&c)AF@qPT)mqmYf+VB0jrS_G2x*tDPSu2YFY_=;DKmAKl&!J*0V(OPU{V%gx zkbXEB-HwYO&82uc9ZZLH6}s|msjJnp60NHI>Tmy8)Xs~wa`pYo(e2{G&H4u?<^Qc) z8lg^A-K7fCp?bdSRv<PQ>rt*C1#0cKUXE_Qj0YE&)7H+}lj2@S`P1TtN3H+3eLpxG zwGRI6S?gdpY?XgyQapH*{`h0R_slUtQ+lqGbErVxP5Q0Td24z(n6#>gu4Vp0tN7!E z`OjSUd#(3hTHV&aoxFNlz7TFPQ2(dy{e)TSTf{Id>VxYdj_GB0+Bz#5%<ucH^WqWj zwFcM4m;Kg{M=uZGoE#QCpW=OXD?fE(>P}3cWxTF{IdwwnF32|5{!oXa?oNbJ9RE1D zJ{#T^k7U&~HMQTf%j)-TC8aJy-C@{fcY!(!byp$GJ`v+gI9BD<App8$Gnb@G^C#1B zr#l{ZzjV&W{r=9K@20KYiK|S>pb|VKA*U26{o%pRjN?!?6G#w{gaA_1-ha4!80{I2 zTRUcRQ*l`b)e+c(YOHV4t$XCfSKoc-dci3>K}Hh7NNM`4y?#W9%se`?Aa17PUkAUr z4!JX%1U1QqCN*9uuzdvjNGKnz^%&oCF`cg@WhLN6Lc2&*?s<`mXWQf43D%2%7YXem zmx5R0VXi|rY#D(v5=%yFl-hBsg@GdYL|f&FSSJEbWV4Ajl5iOqf-hv_g`^30bTeH_ zxbyFdggbJkpt+lcewHku#rw~)#xgFGK@fw4U{D@COG2dFQIM3&a1h)eAse*bC106x zXF-_4c;sBQaISnE#CDI;r4r2#(rxgv-o2deXT?#;=ZE5LsN^5J!&~>FFB~FM7hRUY zWJRaz?bl>b3kH5&blD`2Q_;%{?pO8&wr8&6H&AwGrjcpGx`10<p|K$7)g=luqUhdo zSmbf)QiT~FthUa6nf8~O4)motK*P1|u)yfd4S=tw?XV!=%=ZE|U9rCR?uRX?IP;wZ z+kAZ%79iFoYBEQ?57aeWuxjQ@44N;wU*B*6p}``ACeo8*70)0IJQ^EE)A%#W#0-QP z8!)qxDxO^#urh&EnTpsLUW}-6FaKz`4aZuY$r*?<HgIO;MvZkw1RZO2wr4=k*yI`K z0xs0*UGGf_49dWhv2ilq1)rDMuMTB024aj2j0sfov(cpQQHL@a12IMj#;jLt*E*DP z6T}!B7}I<mN@)kmiw$|%NFB;J3v8A^G|RlwyxUBsFHL>wTA?!H0>ec}xHQ^KW}5{x zi%@1s)UzP7THPQ+Y)r5~U=ac=#fz^ThS(M}a<%0+#3UDsEC5+-9!uj@1yd`KR)o-s zL+`5V-MeCY1@wwdUhyt?H&9=Offo2ILY~E`<bHh_Mp<C82uYSk`!dY0Kwq)pD~-Qg z45PqBv9TzdU>_MSfm>o@OWYTh+;q=AtXx=9qljjWXlr-&hux2r09*W(YsZwqrU^(B zp=gq251$d`n4_66fnXv8Ox7u0{ob4XWjhPA^Jm@RaCEkF4Qsc$15chjX}zc_HRlbY zOr1bF5ke;cX}BuVP#Z$oLji{()KE4LsWD~(%S1?-G_I&IJ_370NRKG}EDF(ZowZk; zUja&yP)LLbiBivEd5iVVn_e_g&9MyAaqsqK=c8$`26(?Iy@D(eiY2jpNA!a)dKG1; z7oCk05GO+6#3M@IH=fB8h$lku#G&|(uRfzCFiV7FN%6i2R(#c;`O2^FzH`0Ql+0n3 z2&ocT;a#sXC1%(pHkzdQb?TH&fsoh?l2z>>wSGIub8{y9B;ZMeI!Ts2%+hRbZ>Dws z-|ciT^xyvX!2Z8TtNrZm{y(Lo$Nhhs_&o0ao4tJg`~Rx9rG9fmZU1ZS6x9ze&HKN% zS2rzlI_zLvbd^y<w}$0^zx!9$odf@qHw-HExL5FTub{a6k9!5J#hLFFEPB-a@%Y+o z6}<TBHVQ5jb29A>uBSfbY-|VN-EtPm$ETc4ZYy*wk#x7<HutTHw+=Rc`J{XQHZjN0 z<YvBdAZR-3+!m!v;~kzzm>6iR_`3DJJL&JWs=rb0tht@KHjn~r0!)%MHm<ntWeu>| zZ>{pxed+2-_iwhi$4^w=+w1E5vDR>OeNp}6b~xPBUccsFf9dW%-|JasbdPCd@#a78 z2cT%zmt*16QSsZIvW}<@487SaD+=drGtv!%zLA(g{)w5!d(rCOw0{5HyoSb2{Fm;{ zX!5WBXTSP&i+c#O%};TK*jXrh{)a`+#oUSVxq8uh_v4Rm-@NYpbnr{{RF(gz-;x)t z!{dWDuMfAl$uL?Ul@4}Kq}vLE-V@U{ZoNBtb6TYS;;y(}dg(?)M_uynwO`gIaW`h# z<QDfQif)Q&bQKlvPTdN7;+}TJ8x))0ry5}2q3CM*`jP?m8m?8|M_=-v;bWiwQRe}s zf9&%=iHZ}Y?#%zBS&}`@|7_y(IR6uF{>Qv6jZXiVy`zuQKaXDI;~dcA9MC`G9MI^d zxYLv2^T}oR>z@g#3;Q|QZ-15ZL0{jr&mRZpz5aRYhl77V?7Vw(baMKt^TXFX6;#~i z+v~w(+Vh%6Yj7gykNxZ3;QZ^G4hlQ7``-Y3-0DoEbmGUau+Pg=ls$_qo%?D2jt8(C z+wFw^&sSg2qJk{`jn+H$edp(cmxrC7PFg$B{=RFo{eKkcSmc*hb^Urf#f5v>`S-(P z*HPUDjmOEfI~|<0oafBN6EK3Z-A;!6{>={NLd_ic?WBL^dKsmYE`p-E3X{^Q5=nD^ z_Bp98VsYJC&s)XYyZ=AfU39p7vmxvq_sb@o!VnbFac@PFGZQ||K=J%U^Y)l@24aI% zZ<EkruRrX5>0C_~E8nY0wNPpIYSJ0^uet-*9nWGB(Xj>NiuXxrM91Rs5{daWt>%KC zMm#gWa37xV-!&URuO?e$6w@{K2;H48zM7PCtgB;koh+1!i_KRaQc5wvV^myOEF~zH zcg%8r_=8EMD&yu)CB2%w`1W?`sCx6Z_#WdaWF4D6mvrZ8<QtNdeEiCeCH-$8LI!yG zXC0=Z4%nT&^`6J4ivh`18?(jP0WWlaJRXgA$}zjW*8IJ$!VI-{J_I@`k8$zMbt-oN zi*o&PyDEcHce45SGJq%9Zm-|uS>3jC1yTd3l9IyL9}3`U(Qq^EwX2EibNkN^PkLTe z?;!=TN$HqdTuC#jI@!DzC}k!$*o_y1k&?0vE;<+e>5SeVj^3A$+2Ep<%+Ld?_Q&kL zzdeU$wma;*cJIYt<Vqar;bXyF(a`{U<T}Nx-}mAglVrGC0;A6>KkoLbU#=VZbU7OK zTgBx+?~k3=X@tNfC2>`J(=50JsV&;$py!NJ>-XOsLkpl!N<u?3w74Zj=Ii!$%2%TZ zW**s%*^|Rz`nI-1Sd{@Sx`p^dwYJ6FWw;p2`p+zoo0^B#+0>Kjm?2F)kM4pP(A<iu zCzUXp$4~>{mufyN)_mJA2xz%RP3d}vr6gtZcUa0zZm?}ARwe~y`<$FDw+)Lg8*Uqh z&?Y1OF!r}aFLIsY)$jW+$$q=+VW0KKQ$L|Q1Oh23x|s<qKcf#t!8eCLHow3)0PrZf zkY<R;bPmeFp?YI(_$eE){kZulo5A(R?r_jE4ei#q|5!13Q`S6wa~=M&WT?w<F*2KD zx`Ux-KvJ0UE1SF#OO?&n0KCTln+(F_-TIn6-z{E)>t4%jI5tB7CIJl22WQ=BzakMP z<}J9GUOJBlWRz;NI@M<3Q*9m5%63D)2=PVBv>sgZ17+l_&d6DF8Mz$Qm}TRh8gxvC z-Z5#p1~{&Jd#xQqvOL+nJGjv@(V9_!Dq`p1j+|0?UZ?WBxm0dGJ4M@%hN))M_>&zI z($g}WB2@G9Y6#1Dlq08npV#?57j{HbQE1kbQ{UrIBOE!k9`d^NkPCTed3>BpoQh42 zgS>7W<id{b`o(taKIW9W^E!9u+uVMUQ}WI0<eLZDu{Tc@W(=;?Jv$qXdxPtX;TPwm zkW;eF>tvft&(m9fB&e)T>#F7MATd=r0S1Y4%G!CIwR7p2d$Pf~`v!?A;>9q12Z?ju zQHU*t!leF{4-)5;^7A_7=fae~@fx&ENxNMq?Y1y!H(i0YDf_nT?AzXEZ@W$TvR&uP zwy?Jyt$*Rl(F#|QrcGJ0U1!O*@N~a58fNA({Ig>bDMhyH6xkN?Tf+8o*<Ai+c2tXF zu_=$X>pa?)o=_{FSust&>cB)3glmn}rmWhovub;rUD!4y!*-nv+rnfhd<=?LYnI&{ z%S^egUFWv8Z~}Dwxt7HoKA#;d(zWw*z&q%%g?_tx=odE8&v(%`*PE>8utpzTFJrXN zd+PVGseWJ9O<X4}IOfr4pSRNQV=w*wR#oMF-bcTWjr9A0Rug&7W<~qFd43<e=l8?( z-@3Qc%U*Zd?VNW%^cRHX@l9vYt7PT8Gi{v@yBCw{k6IOfo(wL|jBK>$8W!)s-^UjG z{cxSYg*iGCUgzxnXx!=cT(@HH^FI82Y{cIe_5;_bY+Z%uecpDzkA3(1!VD%z2i5t> z^+PmmwYoj$>Wg>i?_-PpzOb7nD17-m45t07PBkgFYku!HpBU})hW&l)*xwg+!~{{y zrkCfRa-^VRR?IoZut3Pn4Vf*U9k3wA%*hyGb`xCKtNxW~*;HqO7ggatj#4e^5a%qt zz{$)#neCn|uwco|F&UdC<9TsS)A!_u1C^vZv$XSZH0ZT<pUm>kWI8UM;GObMPh6AC z0z5O9XKeJ0XISO?*LzkLyK~u{Ts|>fygT2xR__aH&77?fo>35RAZv2jEpA|_5v*td zx|vHi!ZQx!@%b+lj26I~xp*Ty?x69JtZ0G3nL9Y!J=kCYxtS|B!m|w`!Awf=LY58M zBH5R}mTSv@`Q?|^blkn347=0*|8kxzh*-#pK;%TilMjU9)a`L|0K)9I&fXbkTG%;J zAUwylPzws%oM97=c?vFSISDgs5tc2*_qT&#uk-%Pv|l8r!SzL*xb95eKdBoGu90#s zhPe|7Pdbo9TDKx+EgSy>q$4(ZA|O4H^gx4fnQG+?43@Z9`H8^%M8bm*wvxD*1B&1Q zMK%y<D~XFmpa>*T6vzZ}Efi-{pg@sL1zP#4%66>tSO#W@zww+0j@S{300~9HlMW=Y zn9p)B)k>Q3n@N8>=nhTywwnAlmGNvr(W-0UTH&%+6ag%Xgl8s5Bd@YV-BqtDUH2L8 zh+(4$vQcECjW$r@-noOpDqOaZB49|7P(zYOTL#tZpB4Yt)wqCpB;BJ}5M1Ykt1#1V zBW*B(6hT3XgbY&iX@h~I2*OdcRpKaO<0t}h6bY3hYE7*-(i!f#<y;KMC=x+N;V&xZ zVhBT#jTrL0sNUPoA{K-q5JHj75OT~suI~>UK@pIkXsb$4#7s~GCn&N(L81dKTBmPc zy)|S`zjdq5&4#bebaZ=m*?Hf;FdRv#%Ps!IO!M7NT7#lLXciqhj~y@`6hRM)Y<$or zCnMSYi2(mZHu*<Vy#95s)4RR8`qCK}SGu^A<7%f}um90Z;uXKZQgoffix({NIYutr z?Ah2}x`_3k2>efE^MBk5h%Uusl;u&{>E85i%{<bs`Hkl+7=u9(#Gpt>1_^>#9D`|< zhu03xR*?R$)ht8j)zRz2lhe+Rhi_h={_vY~V4V7(2}MFq$S1Jw&CSqkco~eY1Bb>5 z6v$9yQ-%VEHtydHzx?|B(W|#+FW*lmuiaze#0s7$68c1vm*|>jU`;HpMQ5id0#p>) zq@oQRm%tepJW&+LC#tVmk$KD7fBy2$axFdc?x~eMqX?i;WD|}2o(Y~mMnrq9{m<v; zm`TR>?i0#vAw|HDBAbR3E-tz=cOs*oc*Mrp8Y)s`W05xSGAtY(GCw_}xeRS)B4$~+ z&eqrcPdod2<uMa4e|pt9K74(2a(Z}Nu2N7f$1~X?){r7_NRiY-l5L_}mBj+=Y>C)E ziU1%*QUOU83|dpYUU|!A<CXOOFTeS-1;8GWa_WYH6iFGRAdxQA2&?J>-_1M`b4U?9 zq(}%N1sv*}U5Q|$o6IFe@RA}SnB*`nSky0N>+A6NxO4QTs7~G-IClZqPKtmhMM6Dk z^E;9v_LL%kN|8-e+RD%-D@zfWrO4(iHJ=+<Qi?z+MM6ty?rS`F^?D=cdW2b}2(D6O zgO&Ws%K5ykOs1cA$}x?Xrw2cmX}sw3?4e@4nU2ef)p_|_x^QsV{NylMHg^b+(}P*X zS4CkEdGE@fb*BitQ)Kg<f>bLHCV|-v4VMHsrvrV8r0SD%pbN?1^cUwaI9UUSiljP} za~R&~fQ6_CL{ua-qQn8XrUj;<BG^!o4ToCw(#tmmqE;KPtkufKVL8HsW?}g!t{0Sh zy}<rd1b`}%3RH5Ge!Yre9Ij$uktza771>Oxu#qm*49Ctj1Cvq_OsU9*N`;NXziQwH z1Q4mnrbvZ}z`1VV1_9Kl$i_ykC~zX{C)RZXj>n>-F{^j~8?Tiw*}_?)^TS5B-Xf?2 z4)^ABlK?nXB-N?5{^E0!06JA9<*By!-m^3nftre>*3`ycd)A{O@KKS_j}pB0|JC|* zIT-d^J3Cd5|8@VjGQpQgK7Z2seKyq-{Z<b1o&3G?^6i^fN2f<`-<)*byglul9Go7V ze1CNK%K2SkQ7Qr{71>Ow4V*#DsT*KaBow0rZU^4jw|{fKkesH$M@2S2%57}XgYSqK zl!_oqMK)3@%%pjVV9drni$1RNMdri|VJfl_QyX|%IkCcqii9|n;G)(Gs>bfuap9Ej z`7z(Z4B4E3z)DjDrYW*HP0inEMwlWfOp%RY+T@}m=9eP)OHm+z=|lfZ(Rv$wxV>3k zYqY{csJ>dT1<Ze8;Jn?3DW?dQQ)I)Ogj4I~imCI_tuZ(~S5GnJ6v1+egqTx1Zf^M$ zOHL6er$}fyty99gsUYO~DTbXQ$WD=vc9KM~sRdMwK1EQUA{+Y@I<omz?7*RMz62i? z3H>O)(1NX?Vpb}GD-{W0DN!&pX$GIFUiE=2SeA-FOGP$Y%C|BIwGK=%L8U-YDH}o6 zcuPSsF{MCEDIqZ>x}fK+o$5ir?l7FyoR^0+|NeXRMtkpCRm@W<@KnmiQ>}_F+`@vz zz+Zg(kK4T}))(I{9p&oS{!q+cDezay#$N>qdj5vj@$I!%NFc6V0mW{Xf}5pmZdQ=E z?kuAC_k$mgUUd$RU%&h5@Xe`nFbM~fAQ)kLVB?D^6q{KJW|k6~S?d?vv0tWG&Qg%G zlugdsKy90Ip>h;Tn1cmJ_-$s%s$wKd0m)KAB+E6hdHat|Cjxq$<6<~V0nSoeg|igH zSqgBL62e)Mi@gckNwK4);AknEqvaV^S-UU7P61RW#rBqhy`_ZqmVA-UhEylT2$urF zrGyBVJid^t85Pr83iOr|(p&N%yb~~+S_-C?5}I1;7u+=gGoYmaXek?@wSlUW6EL(a zWz(`&)-mf-Jo7%UIZkHQC4RElPIi72IO~GhQZ{C*`Af`LmI9Wggjkm360fnF;^5us z57nQ{?>aAkIDGlHz3O%pe|h?3$9ac^Vq8lB*HSiI%QIf{SvAhp`mS#J%pbZZ#h3J_ z0J|_0!(9q+mlDEV(tx+I4MVZqr66}Hq1+WHRBq+2XyW<@%V{0Nml6_Rfr6bsvwJHZ z>HxuV`Umi(gus`7u#^bOLvr}d^;}u4SOQa!z?4t|3)l_~ysbttA*MixDH|d7^)*D9 z98)02l#m?TLPL~&F$G^t34O8V8=|a%DQIBIrhzrzN@CqhLHANZ-K(wFzkD0oqoP>y zQjolqQ1X&Q#x-l$%_)jOF9py`2|=%1zV?1oyHXUpUkdJ*61raw5r)~0qSymd@W7PK z0}E4r@A{L`Fa<PB3DGb?$(<`uPP5R#luZX)RnTPpRgQi;PriBKvF}7NJEp*nDIq%+ z#{p*z18+D{tduDzWlE@&xr7*I!MS3@OaU=dHpDDY0N!ssQ)dd)nX*x5o<(<k?O85U zkjqpcxy-dtoRHy_DVtZe>hkTcUu#Z24W?(8tu+?DyVf`?m?;QmN-CIT>pv1_-AUiJ zNZ)bQwqoi`fjU!C>P!$x{i&8i7PU)M%Kt?-y4C+Ym`o?mypUq@Oo2R8Qu53pnD^s; z_k(i<!`T|3nG%9#(fR`$^~3b{<F{{KcU~Qw9ymWfoO%J4DIr)UDEiXVvyZ2zH|kGX z*Q06m7<oKJoNED>DIr|u5R=zK#Aca-S*C1e*{V|SuYb-?uYcaX9Zp>z9rnx=JTn#8 zGpj$vGje;~|9sOwoA!G}hH!s8*f3Kt%#_eDlU(SPO)=j=EGEko$TB4)%Ur_nZjiA^ zrXZ3jn@Hx_qHt}HF;k|%lqnli)_jAEfiVSOOi6*U_WIVo{}wpKkeC7_ri75#I;&ni z_P{Adz!VTLB}Bknc0PpJ1gF^bQgFSL&Gl;jfn|$J!QxUvi%W7<y?4PWrneO6EhVJ4 z)_KWX>n1j~6pSrpGqyHxt2rwH)KY;!E#GZ$ifJtcT1(kzEkW^ay5mW|Jju0Fc2Rd0 zwzy3O7ki7F-nzY2+v8kA<5UHSOW7nYVRLNdNnJE1ScGIIQC-W=Sq;#Z5<*)f7~UI; z>!1O%Sqf~HlCoKAl(4SG?r!I)&e?M<KIb-ISW1dv35#DIbUpic9;&C<!BTLrl+D3v zzQ$wQO2M{LQrk*!S<O&=xre9Zp3L5zdZf&J`?RH2kC#<HG^1wUlw8D{vLEvH*nJd@ znJfh+O9`2*`K+-2u>C?8G1%ZeyI2Y?mJ+&H4sq7a7#hEK4}vo@$SWlzuLME3wrkk5 zQZTKQ&9vIUTh7@POqG%{RcigWynJ0>w3PGx=6njLO4*#M4O~V}p>U>@)R_`oM$Buz zzdbKnW!>HmPi2<BFIT)(C*qm>iV4p0PXQLbF*&6`PAMrlB?uaI<T^puSs8KHU-&cA zikT_}rb;!=RN3cs>#GthK`>^efLW==F{_aIfq^Rp;7SRBtH#M@#VC~mN~N}nQYl8M z6i_N9MX7}685A$7IX-Kr>{+gQ!~I`ima7!xDkYSw0=~ern8UrgoY<jWDWQ6`<yV(e zJ>)B8ldrb(>T>o6hNWy6)&^c(&d%Vjl$5(t>(8T@SJw;@^}5q;#~i}DGuzXN=0}~7 zyS)H!FsEQ>S<0qmHMu1HUt0^I2YZj%-%{|ml+E7?voJm2d(23e0@9^yNY_@DcQd!8 zz-_5O+?H#hI0b{%QbJbC<?Pbg%$WOa=Nt=eO9{EHb!s5z8_r1*l$NqlS{u0Gob{k! zDVu_|$*BgGtP~_GWs|G~#VhJoQ;*)q?JZ0*ob@gP&NDD-rGQ!~8*1e=&#;OIY^^b& z;-~W|=B^aDD<$Nv2v!U|4WSve(m<`W4YhJCAsQ^<bw14smWG0*g$kA=icJ}Inh7io z0!s@CEWgk~8Frd!D-GI83u!CS)3(IFnP5B!JI#!h24kg#jFsqy1b6r}^Hmyrl@{_< zemBCo>?xN$McKDG7Ok19(%`DJjjM9Jpnn{k_xk763aanl{pWwW7C7eu=P0nSrz&^? ziad%Hy1)GLi}RXG%~+KNR;7hl)mqoOf886LI~J4eDGhr{Z`GdCY)@&}Q(9<GiC+Bk z)=trA1Qu!Li&x<nzyIEPh?R7WnNuiWDlLSmBr&5w;7wp^#;7zfDlNpQBJWM|LD)pi z^pplYrG@mALo~k2j5T{x8s3x^dQ*auJ9e)%`%)Udl(zX&8>n_TJpz-`HcV>O)yvkO z(%6VEsM({^@Tj!SquRj5=KKg&O50c|&x^eYUr;klr2$iEAxtF+3)Of~Ur@6+r6Epf zp*R(C8Z4+Us2P~j0H(AMnA+}X$(rdX4LV8->8Q=0maLh9(qN#pkb!D^{!X*tq#-zI zo8Z)Z)yd?N2Dzk#<Psfq_u%Dg&==I~D{1&j+U6^5;1YAngqNg+UXtVz%YDI<qt|c3 z@Pe9^B@Jas3za2FxaPAxUQjdFq`@_58`l&d;ANSu?sJwb8+Aavm*8o(pET?zEwrEf zBiw{4sF{P(;GndSg9;RE!>XWWE=q%o(n2oEKiCFULCs*41{kG<U{t`?XJA!OvnZt@ zN@<}ewdLj~<5C*9losMrTWEeVHl=}0X(2Y%eDjl;C=Dh`+nA{4+eQpKX~0fe2s`Oy zeQlyQa;``ianeAXv=DKU6qXxw8=w$1TTdF+lNMS}E)jBC2umVrW}!4#C~ae*R_#T0 z3dx!W0?UY+sVNO=N(-qe_dvq{iJEmO4P8o0bt&gCyfXr$QW~g~mZDPP09-QzyHOf$ zloq;CI$3}1AJ=O;SfEfmKI<8Zu5ogv1~jFG(3DG@=CkZR&Z;(d`cbn#rQuI$sXyfw z(8G0GH~~_#N~NJvX{k!(9%&c|QnOQ~;Z$j<Q{^6qckRY-l?Gg;ZE#hX2wbZ-7OOPG zDlHVNsF^3K-g^CE_e<w$vSY^Dem;14Skz`vUp-ni3|MIZR$2;Jg@5zwfP=mI>|JSi zS6b*@xkno6&F5ADFf47uu!4r+|Kf8q0dSTU!ddbFoZov+_b{`x(9Dv&_y5)UbU7II zi#E-}_UellHqX@kW#JY92rg|SxSH?fGpnV+YH1s*6#)6zF)!{CDpW3eH!Iy|Gxc6A zN~XCqXf7?Jxg>#^&rZb!Jwe0yNtsOQjWo_Fh0!hzv`Y)oF1<dC_h2r$d-sCn6xP2q z^e=7Gzruv-T?;c2ra^>h8xiJLa@XpYu`mrROb5ckTnoiX7|fTpF<*`=BRw2N&6t-4 z=B1^Wm%|>FFpi>T>r2D>(l+aB1NWX&BLpuk6}$vj)!R|jY<6jwUD{@LIVKp_*PH<_ z4Zus=0I%k6HPc!ew3fEfS{vNls9D6)5V5pP#1a(m?EPq5?ddxokFGlXv(C+^DC=yU zV!gL!xBedbVEsio+w2+{XD2XO+QwuFw>K{C&8$Op+^?uv%hJ%Yv`x!eWvf0s{q5Q& zV>wGh&eB3TYmEZdbyk03*3sO2sJCD3-hA-ftH_j=2BoEKl$Kuz<x?@3_OE6!6d`oX zcfN6OQiHywh5D8tj@f%T|8$4L(V5RKIJUGjEG;dxv;-k6ZGsz_r|D_r902D-h*;Vt zVl|&_*ss#?tF+Cpa-jU5@3uzQ!!NDN?sae2Z<+tXRq^x5q~B|m^|t%TA)56n4ZTVW z^(x78QS{F_-<bYunwTw7^|xm1#Eg)B-jCgTw5(leXjj^%U9E^KV2753&GXUtsvAsV z(rjpH7+P9rXl<cG%SM)lk)?%3R`dN?rmi%oD{Z5$Hc<6&ZiQW?g?3eY{ki6HV6AKt zprK$^7Kd0z%f6L{Z>4R%m0v6i&7Dbq+WA~WHk)WhHDtzWeOFmBlBI!UX(5v36WNy) zk!k&#|Kb|<u{3-vE%dPhF0SOTgH^7~V`=bMTF7H<VR0gxSQ;jl7MfViFHU3=OT)y{ zTQ#vXn^+nqmKK^=!kyzg^Uew$<^Hw#%jGM)Kd))sUs@)!G{`J1C9@iMX{$)Xy|<jR zA#Z7$y!Dm5x186Zb7`B-wVn5tb2gYR9f;|2Efl9)7+czAY^{24*Pr(--&>4Dfpd6K zjYLfP<3V?5`toJ}y?()G>3H#9Gn*e=qvlKudP@uGEkV@gQ%x1r!xGgzWR^MCOfl<R zF?6n2s&j>_nO5DwP}Nh+idPK9E0!u=8?T;XHo9UMU9r^YYPx!gncs@RZ^br#tMTe7 zW=|`Irxgo5t$h781Lc_8zVp3KxVQ<58+-)XW5zUQA}a=w72AlcK*Qwo8Pl5&?iE4C z#m`XuZKlzf!K@fyRxAXwgoA>!<mfn`6SI^RL&}PUQkF0YnopT0di}HF|GRz~sz6*H z3C6TyU|R83F|C*}tr(bAEX1?~k3>C#K5~Dz7{iKzVZ}lWYmMsGHAyje6$8AAZQ#`g z?ldPUxK**ut=ixWddxUg44f*q;Z%a+RlU$o@iO;1-RX2Py_)WrnXI#sS&cTlSm^|R zPR<;g?lB8iF$AkPkYH6-Ps`<9_J2pWQ`dTzxvLo5RV?MMqK7M9*PaE#RWabI*alZQ zmT(~@&@^=Y*)`w!%|*v7Ud0fvVySo)BAVj44=}qPGj<gNyNadQl_a8t^)U1)-tami z_%u6D>zCi00_dEKSi*`SVZ~AjOAzH`I=(%dR=4k_I~XI%4<CQkuC8&+;#CasDwc{@ zk~r=zhM3<izeN!-!&fojt5^zO31V4V6;XfuR!77vVa1TJVw;53d`p7as~GH6Y-6uH zFE2}oA3m~x_~E0od>FHo6+_C3rBaqWjv_5{3}u>jkAf35gsgb0LRQQ|RtzC4mI_&t zH_(jO&hl_sHD32W72UV<!FBOv=c;?NqXSH|#B5>3u&`pOg%x->^KPuc#xq&MiXmae zQVDDG<CzRx#Q?5iDR9;JcqZFaF>I>XW>Yo)_Oc-r!;p%lhSa`rcURGV+5hd?hyIuP z6@Gs^81_0vduMQ6Kk`L$t@=%X^(iqsQZXE<Sn5a#;xwOGoFBWx+x}vt*Zm9AINhn6 zt3hJqWDQCxmQqr}7{4i_Dr%xq1T)q0UaJiIiF?({o>UA^Di(TD!47Wwa|_R6h>Di8 zILxV7XijY&6^|LAih)qYHiXKn;La5-CvLb@vCXAwzM^G+DuzE53;n5Re|?>)u4to& zD%!~)U`5LcRSbnH7AjPdIO~cwnpd>*k+Iq8n<B&@!Ep+QMimP+Drs={)Uc6H4a?kA z3~nkGa#I0oSUiLQYFI|7Vjxtp5TV*a4a@jc416jU;#1Anu#8T{K&N6GI<<ismh&ov zs8}dOMf>YtzPg5057n@rle2&|ET>_(QL)sG62w{8u<A}zcA+oY9gn+TcA_8=asr1J z6-&J+X@oQwzLY?UpM{8w1*sT<R4f&wgppMVq`X0$o7>4H-^;yL9rhECusG?1m5QaT zlv7wsc~SY~MfRp*cvG>^n+mw;2vtXbyvXcS40b9OvQwMiW)!m`6+@AVg^E<;+l*pn zqGB*nv5kppJ})x;6oY<>h4fQfcD{}o_<m?DZS}^MBmMQ?c3(mpvltaajEaR~lpsv= zSz1E-!pDV+8GwobK*cry>YsQ8Ez43dWT{vxOKrY7VmT^?92HCDsK%=!HlbpeP_fN~ zYQ8#Ry(xy?6btnx!7?<z6|_t?#UPtvA=$Lf^p?*OTK1Y^culd*YYH$4SI)tGGn;2~ zEjg!5piZ$AbrKF*o6pj!PZN%FWyb7N4E8COvQNT0fG&&gUEt&i^C`BOPb=?2fVH>i zjyT^5PNJZqVjC5;fm)Aq9W1C=XhFpS&+@!@DrVSVYfv3!Jg9aIo9_D6#H^<%zWVMv z_vQ-oQ8D<a*v3b#8m`iAIB(I_8<Ybtt`9v!Q!${a*al6lDt;vI5Z(Lm&tr0Z`kAMS z!BfRHo+|h~DF+su?+PbeC{(dcp;~!Y+|LlW=dM&yIo}t~(7>u<Ayy^1FRradR;yyD zRk2O2YQFwthbo3c6$>3INqP;idx6oZ80b_S9-VT&)to9pO2sx(Y6G{LQze+FI1m%% zy?cSds2E^W90-hB*u8K&z3g?T-5LIOcG(@bc4zYO9S`us<sSa<;nD*Ej9HV4p-IIy zP0DFI1B!lg`@YC`fDEfYR)^+=+Tg&FR18Tf7D`ghL4h&*Pci(bSm-|q`o!gxt)DMm znO%S9TIDea6$6Bdg&>qTlIgU3W5(T22!_6M4u&%!)Tr2|Mg<6F_P{TEZa$P>I|stq z6Vg;Hm8Jp&f@jVv9L}r2reY~J<&IL;pIw9#U=s~PQ!${aSPD(8AJy&kWN>la?^T(F zqPm%morB=y4N@u=l2Sg-X8rNlRKj9Z3^6Jeicukg@ZKN8hExngDi#`2K4@tD@!TH6 z$W#nuD&8tG6*Dpw1DT4Y$kh5*mv_g^asqEJnSJHH!-R3E7`Rj{#HAbqsw-2DsQ%6) zBu?UBq+%f><r&h_om%*TM{u0jK~2R%YDykl&}~iZP{nYl;;lMVF*{T-9I9CAP{{y| zvU4}zx%8LGP4~L~SBn4gpG*hCeCHe#XJ;@|v5lEpy3*z^K0J!DT=cv7;NCgsa)niS zC05NedxW1bP?Z3vN^C$?W8w28v{y_K#}pwZNq^lprvLH`L2(EQA#5|XC#+8;(5Dic zKIQ-Z-*@^$Jx0QVBish?reG6xtrECaiPW_Uyz*rEQiNK3lCX@GK*mahGL}4G-^C{h zYgq}jtVF0~tzU4*vE_tWtOP7pvQ-u<VHPU^i<JmjECJtU-s+Pd4pfrv%!YA4j*1k& z`(!qbJDHBniRtB^Tu**a7|u!nXC*>7OAwX$)GgR&W!XEI-N|JsNUr?ewOV3GD*>dH z*dVQD7sO32yT!c>RtvGomB8dmgeKSKm%t?qb0vVe5+Tgh_!78;eXayPSF%-~D`B52 zfzOrLe6CgR>-u##-pTV}_hMpbobq_~gLkJtygE2N=p3A$c3vJIzH0s6TKvJglf&cA z&&P)+hi^{ZA97B$@V*k8_Z2AI$>8E_bbCGZSOA!?@0Gy!N&@*_u7%>{3bHE^l3jvJ zx-h6QpILd<?OxoPJVqlMOFwlU8A#auO5lDaLibDZ<WS*@<W((RznqTV_oH;DnpkxY zhO;!-uf)cFHUA*7+?7D?N`!Kk;0jllbYb}GS@qrB5x>@VD;}xhTh~ZA)k5z|gnE}C zQuC=EnIe)|N9~#WP=3N}R|2*x5wcx^0B)w^rCU{fcUEoSi1wCmr1R^+l2-!BE3rvl z8+bi9Qv>BnY$%uCHNXEf<>~mvw>Nv{{dw{2KW^`~K=)cZvyO$?LeuiP5uC1JekC^Z zYXdievoHX!L<o2ZZiMN$t$6gkmRTnZcqIV55*y(4bu{-G`AUF%B{t-11J48}Q~+Ix z5a`NfLv+>3hTHSbr}1D~<Kff#K#2Ls+<Y=?X(r3}NUDUXt^`z9BBZ(mfum+xC-8Z) zUezWH5k6;ffM1Ca{0bkwS%f!hBl^e4$sSl(V#C5V5@X$tDZi#h&3ptp^rTh7L|Fo& zEU^(~o1e5=ymX-_u2?TipqC{!z3i)>xMHm=fmW8-w6d>l;)<EF1WZ|CW6GM(ip+~8 z;KdRlFDA^2J9ihtEdd(K%OL_7oe7g<2}rU;NRkB{AHExRu#sX$%@Uwyi48UTI+~6Q zpCy3L5-EJv_((CsWeMQ2#0Hl&|1vW;mH-?}gy2{%MB~=58y4R8V2DG)ELj4UED^F~ zf_Tj*EaH%`K9)cqON9E^KMCTHFj<y>EK7uB**5AWPTnxg5}RSRoqCD$IassA#+q%Q zUgEq9gDepmWcm6#XT1=Igh8<cpjaXV#hN_^Enyohfen@jZ7|`AqlJ3hby$n}uLS&8 zBILh>wYK>z?bKZi$Mtbx1S|mpme>%m=3hC+yAt4Ci4gB{+QT#M-(7U>erY*5Lh?$4 zl9z83i~SJiSUB}T`%1Q|eI=}YCD6VSsrI$WQ{ED$yAse{iIDDEBb&J9V0O6@xLk?N z<=ViV=A;HbE3xre8{8+IFp`x3$x3WUmY{ey-SMPfywVqg$+SN%eseSYQjN`*1I^Rc zuK5-Fq!)I&?UsKVJC048-!(=~d;qo*8?d#i4Y|gVm9Cu;*0vI8TZvHHTBn4|74B>! z*yrTTwPIj=D*?WhNbxP7(iabobLlzP0p&`hD3?#^yFKT^b8>^rl}KGKuS-9@nmQMs z(;zsmM9OgqiobLgUGMhl>Wg#vIVA$*N~9o{Px-6O2EV3>>p^n~OI!&guEZvBg$`o2 z0LP>6$Z}T#xhoOMT|PnVez^48TAnb}l>q8Wgix0xhNW%5t~<&TR=N@>U5QQUYQF8o z%2onpD-kMNk_*ZUFwJSTwBoX~$(=7Rr&w@XiICfJjifxsb{<K2OowwMoNgg(B|>4# zHInY)B3O?_uk3Fn@V641zZLS16iIjCmK1;Xh=tQI*ses%b_rrJlaJpYy?Wa@JU;Fm z|KeP5&cC3$5*yvMfm(<2DY&jA5Z6^-!RNaz)A_rdv_6f-z1Hq?*V1z0gyWUi953Ib zbKcr9*}hzgqFTTI-rCtI`+C2cZ=bf*Z{?55ALmb6zqj~@(QoDUrIWvR-jol|+hg}B zAU47h7-5Oc2wSCn$_c}J=YVdn`=4+6XVan&JoyxC@`tgo1Xx&N!@|PE={@_yBv=9x zED@4mf|9!qJuwZIfCfu!G+6T$5i4H_l&?gnd_}Qr+rZNoE#-W_IjMs3N^F$Z1}-CK zN3dLpjpcHy&&|;H_+#<zzyC7ryVvOKZY6NH5}~^#x$O%pZpZy@uWF>s2Jr5zJS{ui zXt<Pr3b5LgS*`>uS0ZG&Bte@`S$dO?_CN0@9*Kx^FgUJ6%5jCuLkmx0usp<IR|2pr zk%C>DPeaUeCE&RdDbLk-7GixXfxeY&Ro_Zj-%6lwB{qG_t@^A+!dl<8%s(%?*S(=f zCCbEB0%9u>5?hg$83b!rqRg=xQLOx9fNGQ(t^^EMB4oHEVWS>eC+r!TTZcVc#vdST zPVoS`5+Tqf4SS~?F`VzxLpZ(%*d=UrC9t{@o7J_U+qk^@!aZ#={*?g#N`&}V@MXob z3lJ`Ca_aybSYqSAzKXSbDMMZ<Ag|O0d2M6uUdlLE3Y;qy;as89X3E@F3T`V6#BEX9 z{G6PXd$=#0lV!>ZR|<tI6)Iejmi0Ky5i}PIgYB!T9Pi|iGP;!l-AaY%mLxj!DQ?I- zx^e*C7M*h?nzFE!LfA@$!j=kXikS!U_uoSvHJ!4?l|ti6g&LPbkp6XO#wE{Ca#<!9 zl-#)z&AFgC3cAh3S1FTQDaftVMsB%PqTT7#Ou@KUp-gC{Ahc2`p(Q++Y~dV>DukVv zZ%+<8hbJmYXVuKSYMoa@<$RNO-NUX{3Rf$Yx>^Cxw_kBVf>lC{aizexQYpr@`2+7$ z=DAYvT&a!c@+-M(CB$S`3bHG;kzLJKLJVuAfVEN^tmRk<&DKkM)Iyvmp=hNxMazG4 z!|KCy%zx8tQybqrGji3u-&p&qj+@s~M!8a;T&WP{62w@w=6IZ@HW+#Vs!&e5u(wj7 zz2$HW+j>>#>~@B$Lph;C=SpolSD0|U>rf`VQV?FLknj?e+_es6fh&c;mD&WZ=Ic;a zwNj{BsZ`Zke<vG8W6S4w(w}zDi?&g<TD^Lj%}<}+s`Khk<*I~oMa$d2xpy^L*Gi#l zr8Zs5FHF422y>wZ-fMMx6(UmnT6Q;sM9EniTvsaPy1b&CHFm2Y&2OtP%irAz)V*?M zqbr5cmD-H1hAZcVs}QVKX7(!u`;`jWFNZi6mXRI3IXygnbKtuCHf8oJ1^bms*{^Nn z7H$N<{Yq`_*Oqb%r*Bwbsm%gwKDV&bmBQ&tg-%zte(wfP?c2Y(-f_mYQs7#t5Z78~ z)t<**>6Ce_6g*Zc<grA%Q^x)NKl<a*4$U(;Ut><j5Uo<1XccU44ef$8>&Bf!;7kjV zDz%AJO@v?;j5~+GITQd@Y6Ga62%+e!IY+?R5&l$a^QRiQ31-O7IR?&+;Hpv^SG9qP zo6{axsZ`2JNtUh8c2PT{1t|kjDS)U{2t=)sY+O?`Lr^IosMH2QHGijBeM+G|rGeBZ z=iSpO!%r#Tr_=^N3CdM;F0psI>WudKAI+xe;+MVFifz<pJJ;^j#BrZ=%B)ig)+rUT zPI3J3su9-?6{Afl(56&~Hmy@ai~~$YSstaG?oIF3Z1&qVzwz7Wmomnb0%J;r7?UK5 zr88vbr@s7JoqN-Hb@cl1<h1kS;hWc|Ke+BCO_^&-!8N5quE{U7a<@p?zW(Xpm!D2v zy9dKb52jOUGo5^&wx#`;CK!*CWm6`gQV>w7kbv@v;e2#^?YhA|WfLle36%;>D8GB) zT6U(QQczK;jf!eMm9herLV-$!3Y6%Anj`Zto%6x0ja>OZ6Mp<pL~ccCS&oX>rkIRT z6rC)U*o;w*5i>G5%H0eVAHt?Z;UnZ`bFJLUu?x9FNE_uS_s!Sm`~3&LKfa#7ydJOj z<MDnxUXSPT@+y2<Z=CLL5kGq3%@@VB_1V_!^iT2iWin)w7&E+yRr4ZiLi${t=Hcbp z)*mUnW`QXXgX>jhOm0dyBkd%cw((5^x)>4cB`dL~pd(-JNeT4egJRFr1^F(_O{R}3 zrYqJ#JAQNx>CIjCX^Fl}{w9$>i^!mxlbf>5@Mn94^C8^k@LWrk3rBF&k{8iWHh4MS zIf8s~=c68l^zW)l2IEGWO~KY;b)brQ>vxW4Yv{ZyhF8muWeyIyt&9{u+{-9*qzyYd zXTub5S3fs}7cJ8n{a8u+&s$EDL#egiyFQ!mH+)`tc(eurhRh=H*)UHqqDEZr+h={_ z82+4ZP1WPkx44V`RhHFud7UGKg8_LU<EM*%M2r<{e*=N_p{q%)Do->_?KLurtq%H$ znh=WG27j7460%`Q1?w-;@`~hokf8UKKem^L-c4rt;M~;OB+c%BSj)!v5_4;I*F9|% z*Lsf!uf7ekZ#j$-dk#Kgj-jDv4bZc%;n@qFzq+QHXE_#dlg9y))^LfMV*&F`y9R3< zhS5ad{<UH&c0ju`EFGFg^JVmZd~-om2ix&4N~{Y^e&O&uIB$)}a1RY4-Wt}~CO_LT z%U(*kUcPhcHzX`Oq24lYizh?Gjj*{Wu}Sa|gZs9X`^$<onDQ;#+Ycteq($<#v=S{t z4T{I7o4X(THT1?hMA}&%=WOg7f^Ec%Amjzdh0St*a_Nub?BBxu35>ygZV<A8^Nvbt ze86%`pN$v}Lbi3@>00Y2u;a4FS}Zm6_=+!lv8{Na0jIp4qe*-2zM$DIfY$Yg@*&|_ zL?y%M`kJlzk%DH_Toox*d|#WT!lk1*29N7bq|HYpWy8|g=T`OQle-Ntv>tw<?r4Og zHiUGHBKAc~cQk%sjOV=MZRFm%G`eNywoePI0wKvzzD1TwVmvMC8|p1pc2pSyIrzJA zk7j4APOpz#PDJ1KfS!=Q*kYJ!^{!gYzNOi6%rQ?=dQqahP=2x_&Rug}$zA~=@lW=? zR!a^2qkFu?e_m79(z(NnE*gQfo|dEo&%M6{A}e|ZFCOMHwK$fk?v+R0L}=3GC}<Bl z8+J$AM~b9N5i8PGea+32@-9Ta>j7I9Z>Iadfc&)x8GW+eUBI0mpUz79k*9u-=rQ}T zrNv!d4h?$WcDjt(!E`?mCUOSr10m_}4XN#Z-bSZqnyiQScBei3qWnqkUgHh4*n7y4 zlh~ay0vLN$_DfLfsZ(wm3G|+*G~HAe*A!(Nildh1f!CC84dq&BwV$rXSGq0N-1B;F z%ZiNGrbHbmm)ma(I?{Q(BNjo)R%Tf$p!<SdT>>B^LyFi)nUxlzOM!tpoz~JAoo!-- zu(Yw5#QH(EF_P%I3m4ZI>>tK&YrdPlwLSfUX5lwyQwpS*NSTueugxRVjw5d8i8V`b zHu`n}1x^5~GQ@`$?Hgt|Uc}%DNwNskwH;dOLXA@uKR#t*r0=J@p%cZ1UUH>MLdB0q zd0%U@(PL$#VogR6is8<#Z3AG|7#V9)0`apkL2)=e=9KA0UMm<3|H{Vf1tGaYK1^uE zp4xU#4}VMOwri3_?{i^AYdhwl?3fz^-~c<NrAH$$DVr)R&^_t~se5MbRTMn@wDU5A z_>?l(LofAN>-WO{lM#0?vU_sjKh2Hu6?(&+ddJK>GW@oE?ea$RTne|>r8V}`R`B12 z(hr<`e~z9}YnK}$6PwWqRUxTWi6{pDpY+Dgz&_Z6h<ru&488PQ<q~SPYUjI#oBxK+ z51O$aWMg4q%^Ul;e=g<*X?alN?k)!Z*)3T9MbMg&$G-t_c0bl{xSaG=>w39>_%~%Q zXk-92JYZqq{r#Q4g_K3SMV&Dr{XX}Y3u_+@3ri@PcL;5HW-EMIQ&!C5>!~c}Rb#NU zTrsTvX@x5FF00`K*7DjdnZ$KAGRNq05}e(X9ZN2kFtb&&{tDdKUd?%Bt#{VO%+XGh zSVXyr*NqOW#X0u%K_B9%x9k=nA933(Av@t`nzDyIr`hKM6LbLL9sr>Vg!+f)e7<Wl zCh8p(t>RkBT8|hjmjG(g#~*U~*CeRea5hxMMU9dF9n6PbYlmjIP~}wZvdjWPv-IQl z16iJ91HxXqZYDNPRL)^pIVKPd*T=zMDgeZt077Mu1ZCIHl7h-BB`+=gbGNxJk3zI( z&P^!v{#G^;59x<=C@o<Wlw%XHm)f8TCTdrnv6_w=PsQivR8Nk0Jni$0{S~rOVG0#) zhlaaQWlpmaqj3lOuN`uB0cg<>F|YP4eWaGonR%`B_OYf4sPjt*@hU}B6Pn%>U@saS zdx$1+5UqBl?KHODTz~DL96-<ou#bi~n6NH4dL*OGMv<i)kA*!cTo-Ciwh=ai(C<3E z>!)XCv2|8jp=-|6P9@*C(*t+;fK(R%g2r}D)ZKkuYD#HTVR=eX|KI{fjhKsbp0B)f zlcx$UjJB;b$7a$cI?=8~E|Q~bF!Nz}tg<<Fuw25^*44Rt|J7e3_uWou5?@hn#+|?1 zWgjH(nT;*|3QZ+fMpV5?(wL$nZlr58y53quhD}uc(su5J5IrcO*7Wc!_dTCe?+4LU zGXgTok0M&6^CU)`t_}8gg|{{{0CQ-y#~qbg%57t4;lB{sXKoy65vUhMK#x`VA{85( zif!OPRlIT%ms7mCw`X<jRnK!>ZwWik?btpp2@8UG!;_8G`@_4_O@X`=?Ep%IA?y7x zy4u5Iyh*4a|Fu5rQX1Cs2fHMH0i*O*+m{jnXT4_+@~6+_u%UNcsmV}WUFeTA$#%$4 zz6+(yg>o6nicF-Mx#;B5nNusS5y-8bu~yjtJ8kD82oXsUt)N};Zz`{-gnybz4>^Xp zpF9;07p&VIM8F)<m+i8q!|8E_6zm-qG}D$Zvu<)=Y3}FW>cz$R@%Hi5y$sq!^X~TC z)IcrcGZZaMg~&2pq_m&(UyqH&UTT4=K-JV4IMV0GHo^uFdY2;yb%Py=eb59|kgX&n zBKjVHuA|wWpJ$h7$DPKnb))}$HQ+;yN#)ZQMw$+zg`Y!Y&0G?zIcEm64mmpmO3M&2 zaoGYv@9Ccag^5^Oh@d7#)LlFJ;5PU)cV6Z*G*fx6oiFJ#0Jw&7ZLWviQSl*=_~e_q z=TuFV0=*uO%UsYgx3!3eJ(6;0k+KmMfyf#>NVJ(3yH|MC&p?{K);yzJ^FuF_+sHa5 z$qJ9cnw*CyH-}6f7b>W*kzgtB0ov@wVyQu0tRRFaKoONJ<tW{ItG!B&*kncyqbAz? zTPP@D7MPB9;Gk+|9%CPUgywZ;_jw;$S0bip*OMbgnUPz421$`dxWj|P%m-dr6JHj7 z{@Uw%1JJ%|=tB(k)`Z7Nq1C-I=M%Kko*Fmjv6Jl_049DS4-RW~uzuGUC!&ibASg8# zMqi#fW*W6p4h^)Wa=O1Y6!CuwDS+vNHmUke5a({to{@eK0ggXFUIjY$+1pU27;>-h z1rn9kYUM>!GF3rYzIbW62l;XZ(=(s!EIQpETKSdkXU{#JBJ&Y92&W3vGb7i?_Xat{ z9ze)n(8WpZzes9ARbq0T1ADS2CSI~YBFfrTr|?Y)=U6H;{1(>4)9mpH_mj@+vFg4K z?K8Q1Vc?}a9Uvkn81gb`l3bf7@!d*oDaR5%|J3_W#f6I=CA!i}U#iS;bggGkH@o~| zlTYMJNLi~r{s7#sm%b60NY?9R%r=3ng~=e<d@Csx-N0(A7AI@rGLY;G>t`95AuIxk zRW6_vC0YZLtO0HLh#N>%s%Jx4ngGM_Z~*cr-yMFmYO5!D2*{kV7G43#(omVG=fkxU zjZr@b8ki3rU`+&BBc6W6g@mYL!X*?#=A%b&_EoNhwNx&s3T_=&-v=+a2k*(le6Z*e zT5A?Ox~iyKzJOmb^ip?A28o!F#qWaJ+XUWBqziY`S?DAFqfzkg3g0*gzs>1N->|>R z&fhCbPFc-qNj*^VqORt~YITHYG*uZfZUAZw#BIZ;EjIj)`vAYP(fLdjYo28uGjnM< zcTO^N^{wyr8y^XP(?R<7N*%#?6dw}ycOpL57+4>&x)J@qOwS}{1DGwJGmlY2LX3=8 zOH2u&#ovI|3U@{66{c2!#muUq?L4P<Ad%Z-@h714gWuyfN2Ix5CS9bWLGlJxH`Pi) zg0>guW*`0D_^AaZ6Uj_cVX}GSbi8|ieAkuwKkosPk&R<kQjb9L&+gs)?ZxR$-xN_p zRteYq^PV}F#~iofndE}54D%<3l-j9f%tjlYWeez%{?0|YzC6N|)!yNFG2lyFI!Uwu z7-{Wws<7$jPUDy5hr{RA!xkxzqm%lUXomRZYyG=lYXP@*{A@Mt{JoE9VaY@qlax$0 z-yB?bee_iXMHXj(Za%j+XLediJp@%<zQ+mhqb4vf-{6^;cx*36l~=j9Y&mT16Nfij z!XM-f3!CG|{v}kBPLah=<Sn1ecfZh+<STsGPZM^=eCjUaR=k+OH&RYVYE{n$+=r_r zahn&OOHjE`5gMxDEyxFicnRfRo4UuaN*B}WDy4<-LrwL4nhKd!9!Q=ilBZQbNJUrV zpP;RLaj0(d-sOjC!{-I)O#EwdclYd@xntSP2uohX9Z<iC&qv~U^3eOdTafqdgDK2$ za~|xzS#<*cU*lQC^(wcNx2xMP8<!VskJpoQ;HU1v6Y?-Ih&;E=^=J{LoBa-2&X#bk zJ?Lf;>e^}2Mr=Xq_abx*&Cu{Urx5%oWEo9nW}5L#tj&&IC-uFx_iyb@59ruCwJYlc zGw3n*xnH~aD|dHlZ}tChW4J`hLOQK^VoBr)sH*+mcr#cpUh|s&mhWVnUy=)#U@gS} z$uq5K8D1r4uBMcYnqn4%kcuBxrt`BFLw)~Akkz<SfKj)7a!ub@^X#KXY4}DA55~`r z7&FtZ2|gKSu*S<x>gSGYC6EQ%n50XTQni{>-S83*7T_aOz@7)2%3sep@W~2}$;V7t zwx88V@(TElUm2O(Y6AqZ0HsU;8=gr6^I}VjR2dgg!xV7f*&Qe$2$vATQ4G17#M<mt zMd!HahoO<Wb%cx9vu-EA(f^Re{UGQVFw~J@@S7Xpik@PE@6Lh)Bwr5+l+p;9WNV?c z_WkchXtbHzE64R44Bd3W(QnA&y^!%JtHr@i(eLnSTlnK5%m*A?=-Af5KWPHRz<nq$ z!Rjp&pA%OfB!fkm<e@uzOc1t`MzBFMI+>vF<5tLX-aqC3q&+VLUO}EcO>^m@-Zq^K zoGirhI`^7VRO8*g-25Jp`f#<PBe-Lc3;4zq!1GKVg0HY8)2H6*^pc6cnRu)I{IZ2` zK7Q;}t*?JQq53|fbDI#Oby^}pXPr#kVv>HQn99{bFL7N^QZ%sqo`{tAiErj#P0+_M zIO85hC}<g(IKU)*M&6bELc<JBhZXjXTjWl-O*YScd2jp9?qb(D>Cm~Y?Wwp;i<q>l z#lVv&FIfii;*pNz(ursJZok&NWjh?GV3u%0?`KAf;{aG>hHUP5ZgqfSv0dbp<s60r zW=;b&tE3yA@GQCJaz%?^?voS#C@=aa*xwhvV!~B>zfyA@T(_aCE*(=mq@ve7KeHCt zKcK(9|0k2AoC1M)-Jlu;9l7+xqR<=ne6SekiSly(ggjd-&Cwtkt{b@tK}7abULMlA zeWQJyy_tqB0n$)sDYdY8b)Kgmuk<4!vsYE)Bkn4504e1Ou5z^Fpx(#2@fzp^m3K!j z;tH0*3Sl=i+zh}XZ^`1n3YQI16_YKwkC9Ra;Hob4PBZMXbRhfx-XHc5Cm63edE=5T zL*{FuJ!*G(QUb>duOO%tR(xmiG3GvJiD~4apM`vHJ!c!ZR^bJiC|+IEi;IOoMWoka zX<GjsYL>e9nN`TYpxqa6>u<g{k2s^@rG=OnY|*L%1Ex-8F&nWw*jd)*Nd2d?Cx>YV z{VNIjb_~woLWfL%^h`m=qQBI$Zs48b;V1%0x{2{OZEVb&2Mfaq>MEYmPq1So3=>}e zX{6sFDwzwO!g{an_#EmFhwC-{Vv;OUf;TeGb6G~kgg+C|ZZdHXL!g!*^4wD6Vb+Q0 zX&!WjEV#nNm!e9QQ;?<I-_K9Jb&Gw*yVOWf5mOUyt3bEpqojJlRe5`xi6z8~CsRep ztUglFKk9$J^#W7qLP_Df|8xNyrjEIu)c2=|SATe$zw<)p3z_(XNs>$1m!LlQY)>X| zs0&&A-4<?l=B=LhZNoDnx!2E(Dlw7{u)TR>RRooKp0Z=ZE87aa41{(jH?<8t$5aX6 z!5A!@Lf<#Pg%_R8y&c0Y;Sv;atk!DA_GT+0gqKlAP+3-uZ(vyR%cTpzDYo_tqWq8b zlb2ssQl~wL(;nuGvrooDYT{uN_V_V-yux>0#qF|U(rB{jjCcGA+z4#b0l(&e&-|lW z^7z-y=V>JjJ`I;#`%6$_TQT{y_=&8}CXGJN?a3kONOzsmUg6SS%6_|N`;F6z_85cz zl#L(r)L=1k?l(`L3P+!c?4v2B8Rjo-<HLO7Pfn;quc%;7sy^H_aLt3U?C@=N_|%%- z!2V3mBc#G3q@9>sQTnvtY=jp*r8g?2m+};i8(!sYZU=u0F+M-KB&_r@tWIgUPOctf pQ4$rl-8?Zlzqs~f>q4laaeR7f$N#JJ<Sp(BteJSO?;C*a`yal}fz1E_ diff --git a/fuzz/summary.txt b/fuzz/summary.txt index 305cb0d84c45..0f79600f801d 100644 --- a/fuzz/summary.txt +++ b/fuzz/summary.txt @@ -3,52 +3,52 @@ Filename Regions Missed Regions Cover Funct fuzz/clock.c 24 1 95.83% 4 0 100.00% 35 1 97.14% fuzz/pcsc.c 59 0 100.00% 8 0 100.00% 75 12 84.00% fuzz/prng.c 31 0 100.00% 2 0 100.00% 35 1 97.14% -fuzz/udev.c 109 1 99.08% 17 0 100.00% 126 11 91.27% +fuzz/udev.c 110 2 98.18% 17 0 100.00% 126 12 90.48% fuzz/uniform_random.c 7 1 85.71% 1 0 100.00% 12 1 91.67% -fuzz/wrap.c 17 0 100.00% 3 0 100.00% 29 0 100.00% +fuzz/wrap.c 23 0 100.00% 3 0 100.00% 29 0 100.00% openbsd-compat/explicit_bzero.c 4 0 100.00% 1 0 100.00% 7 0 100.00% openbsd-compat/freezero.c 4 0 100.00% 1 0 100.00% 6 0 100.00% openbsd-compat/recallocarray.c 41 7 82.93% 1 0 100.00% 36 7 80.56% -openbsd-compat/strlcat.c 12 1 91.67% 1 0 100.00% 21 1 95.24% openbsd-compat/timingsafe_bcmp.c 4 0 100.00% 1 0 100.00% 7 0 100.00% -src/aes256.c 118 4 96.61% 8 0 100.00% 157 14 91.08% -src/assert.c 565 42 92.57% 56 3 94.64% 694 42 93.95% -src/authkey.c 44 0 100.00% 5 0 100.00% 59 0 100.00% -src/bio.c 419 20 95.23% 49 2 95.92% 559 24 95.71% +src/aes256.c 118 3 97.46% 8 0 100.00% 157 11 92.99% +src/assert.c 605 43 92.89% 59 3 94.92% 745 46 93.83% +src/authkey.c 52 0 100.00% 5 0 100.00% 66 0 100.00% +src/bio.c 451 20 95.57% 49 2 95.92% 587 24 95.91% src/blob.c 53 2 96.23% 10 0 100.00% 83 4 95.18% src/buf.c 8 1 87.50% 2 0 100.00% 16 1 93.75% -src/cbor.c 1049 23 97.81% 54 0 100.00% 1237 45 96.36% +src/cbor.c 1070 13 98.79% 55 0 100.00% 1258 31 97.54% src/compress.c 105 14 86.67% 5 0 100.00% 122 24 80.33% -src/config.c 108 0 100.00% 11 0 100.00% 151 0 100.00% -src/cred.c 634 36 94.32% 69 2 97.10% 830 39 95.30% -src/credman.c 382 10 97.38% 40 0 100.00% 518 18 96.53% -src/dev.c 332 71 78.61% 41 6 85.37% 378 86 77.25% +src/config.c 112 0 100.00% 11 0 100.00% 152 0 100.00% +src/cred.c 651 38 94.16% 69 2 97.10% 849 43 94.94% +src/credman.c 422 10 97.63% 40 0 100.00% 557 20 96.41% +src/dev.c 332 65 80.42% 41 6 85.37% 378 80 78.84% src/ecdh.c 117 2 98.29% 4 0 100.00% 146 5 96.58% src/eddsa.c 88 5 94.32% 10 0 100.00% 114 9 92.11% src/err.c 122 10 91.80% 1 0 100.00% 126 10 92.06% src/es256.c 315 7 97.78% 19 0 100.00% 372 12 96.77% +src/es384.c 158 8 94.94% 11 0 100.00% 198 15 92.42% src/hid.c 87 2 97.70% 14 0 100.00% 145 3 97.93% -src/hid_linux.c 173 68 60.69% 14 7 50.00% 250 105 58.00% +src/hid_linux.c 184 73 60.33% 14 7 50.00% 263 115 56.27% src/hid_unix.c 29 21 27.59% 2 0 100.00% 43 26 39.53% -src/info.c 186 0 100.00% 40 0 100.00% 321 0 100.00% -src/io.c 185 7 96.22% 13 0 100.00% 221 12 94.57% +src/info.c 232 0 100.00% 51 0 100.00% 409 0 100.00% +src/io.c 193 7 96.37% 13 0 100.00% 230 12 94.78% src/iso7816.c 18 1 94.44% 5 0 100.00% 38 1 97.37% -src/largeblob.c 514 19 96.30% 30 0 100.00% 684 46 93.27% +src/largeblob.c 525 18 96.57% 30 0 100.00% 693 43 93.80% src/log.c 39 5 87.18% 7 1 85.71% 63 7 88.89% -src/netlink.c 329 14 95.74% 40 0 100.00% 498 33 93.37% -src/nfc.c 142 7 95.07% 11 1 90.91% 223 27 87.89% -src/nfc_linux.c 174 56 67.82% 13 5 61.54% 245 103 57.96% -src/pcsc.c 201 1 99.50% 13 0 100.00% 278 3 98.92% -src/pin.c 403 3 99.26% 26 0 100.00% 495 4 99.19% -src/random.c 6 1 83.33% 1 0 100.00% 6 1 83.33% +src/netlink.c 329 8 97.57% 40 0 100.00% 498 15 96.99% +src/nfc.c 155 5 96.77% 12 0 100.00% 244 15 93.85% +src/nfc_linux.c 172 77 55.23% 13 7 46.15% 242 126 47.93% +src/pcsc.c 204 1 99.51% 13 0 100.00% 282 3 98.94% +src/pin.c 426 3 99.30% 26 0 100.00% 514 4 99.22% +src/random.c 6 0 100.00% 1 0 100.00% 6 0 100.00% src/reset.c 24 0 100.00% 3 0 100.00% 23 0 100.00% -src/rs1.c 25 2 92.00% 3 0 100.00% 39 4 89.74% -src/rs256.c 141 8 94.33% 13 0 100.00% 172 11 93.60% +src/rs1.c 25 1 96.00% 3 0 100.00% 39 3 92.31% +src/rs256.c 149 10 93.29% 13 0 100.00% 182 14 92.31% src/time.c 43 3 93.02% 3 0 100.00% 43 2 95.35% src/touch.c 67 0 100.00% 2 0 100.00% 79 0 100.00% -src/tpm.c 103 3 97.09% 9 0 100.00% 194 9 95.36% -src/types.c 25 0 100.00% 6 0 100.00% 46 0 100.00% -src/u2f.c 528 4 99.24% 17 0 100.00% 685 12 98.25% +src/tpm.c 103 0 100.00% 9 0 100.00% 194 0 100.00% +src/types.c 29 0 100.00% 7 0 100.00% 56 0 100.00% +src/u2f.c 572 4 99.30% 17 0 100.00% 726 12 98.35% src/util.c 14 1 92.86% 1 0 100.00% 14 1 92.86% Files which contain no functions: @@ -56,8 +56,9 @@ fuzz/mutator_aux.h 0 0 - openbsd-compat/openbsd-compat.h 0 0 - 0 0 - 0 0 - openbsd-compat/time.h 0 0 - 0 0 - 0 0 - src/extern.h 0 0 - 0 0 - 0 0 - +src/fallthrough.h 0 0 - 0 0 - 0 0 - src/fido.h 0 0 - 0 0 - 0 0 - src/fido/err.h 0 0 - 0 0 - 0 0 - src/fido/param.h 0 0 - 0 0 - 0 0 - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -TOTAL 8227 484 94.12% 710 27 96.20% 10756 777 92.78% +TOTAL 8711 492 94.35% 737 28 96.20% 11320 771 93.19% diff --git a/fuzz/udev.c b/fuzz/udev.c index 3984d8f555ed..3194012ab97e 100644 --- a/fuzz/udev.c +++ b/fuzz/udev.c @@ -2,6 +2,7 @@ * Copyright (c) 2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -241,7 +242,7 @@ __wrap_ioctl(int fd, unsigned long request, ...) va_start(ap, request); - switch (request) { + switch (IOCTL_REQ(request)) { case IOCTL_REQ(HIDIOCGRDESCSIZE): *va_arg(ap, int *) = (int)report_descriptor->len; break; diff --git a/fuzz/wiredata_fido2.h b/fuzz/wiredata_fido2.h index 68504325450e..6c66c545b235 100644 --- a/fuzz/wiredata_fido2.h +++ b/fuzz/wiredata_fido2.h @@ -2,6 +2,7 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _WIREDATA_FIDO2_H diff --git a/fuzz/wiredata_u2f.h b/fuzz/wiredata_u2f.h index afe418fe9d96..3be22d34b6c2 100644 --- a/fuzz/wiredata_u2f.h +++ b/fuzz/wiredata_u2f.h @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _WIREDATA_U2F_H diff --git a/fuzz/wrap.c b/fuzz/wrap.c index 4d6ac77a98bb..6f40ea1d079e 100644 --- a/fuzz/wrap.c +++ b/fuzz/wrap.c @@ -2,9 +2,11 @@ * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> +#include <sys/random.h> #include <sys/socket.h> #include <openssl/bn.h> @@ -22,9 +24,13 @@ extern int prng_up; +int fuzz_save_corpus; + /* * Build wrappers around functions of interest, and have them fail - * in a pseudo-random manner. + * in a pseudo-random manner. A uniform probability of 0.25% (1/400) + * allows for a depth of log(0.5)/log(399/400) > 276 operations + * before simulated errors become statistically more likely. */ #define WRAP(type, name, args, retval, param, prob) \ @@ -70,6 +76,14 @@ WRAP(char *, 1 ) +WRAP(ssize_t, + getrandom, + (void *buf, size_t buflen, unsigned int flags), + -1, + (buf, buflen, flags), + 1 +) + WRAP(int, EVP_Cipher, (EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, @@ -653,11 +667,11 @@ int __real_deflate(z_streamp, int); int __wrap_deflate(z_streamp strm, int flush) { - if (uniform_random(400) < 1) { + if (prng_up && uniform_random(400) < 1) { return Z_BUF_ERROR; } /* should never happen, but we check for it */ - if (uniform_random(400) < 1) { + if (prng_up && uniform_random(400) < 1) { strm->avail_out = UINT_MAX; return Z_STREAM_END; } @@ -673,7 +687,7 @@ __wrap_asprintf(char **strp, const char *fmt, ...) va_list ap; int r; - if (uniform_random(400) < 1) { + if (prng_up && uniform_random(400) < 1) { *strp = (void *)0xdeadbeef; return -1; } diff --git a/fuzz/wrapped.sym b/fuzz/wrapped.sym index 59224565ee0a..219a0d8b8f46 100644 --- a/fuzz/wrapped.sym +++ b/fuzz/wrapped.sym @@ -63,6 +63,7 @@ EVP_PKEY_verify_init EVP_sha1 EVP_sha256 fido_tx +getrandom HMAC HMAC_CTX_new HMAC_Final diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 910ee684e9fb..cf32a3a94208 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -1,6 +1,7 @@ # Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause find_program(MANDOC_PATH mandoc) find_program(GZIP_PATH gzip) @@ -11,6 +12,7 @@ message(STATUS "GZIP_PATH: ${GZIP_PATH}") list(APPEND MAN_SOURCES eddsa_pk_new.3 es256_pk_new.3 + es384_pk_new.3 fido2-assert.1 fido2-cred.1 fido2-token.1 @@ -52,6 +54,11 @@ list(APPEND MAN_ALIAS es256_pk_new es256_pk_from_EVP_PKEY es256_pk_new es256_pk_from_ptr es256_pk_new es256_pk_to_EVP_PKEY + es384_pk_new es384_pk_free + es384_pk_new es384_pk_from_EC_KEY + es384_pk_new es384_pk_from_EVP_PKEY + es384_pk_new es384_pk_from_ptr + es384_pk_new es384_pk_to_EVP_PKEY fido_assert_new fido_assert_authdata_len fido_assert_new fido_assert_authdata_ptr fido_assert_new fido_assert_blob_len @@ -114,22 +121,31 @@ list(APPEND MAN_ALIAS fido_cbor_info_new fido_cbor_info_algorithm_cose fido_cbor_info_new fido_cbor_info_algorithm_count fido_cbor_info_new fido_cbor_info_algorithm_type + fido_cbor_info_new fido_cbor_info_certs_len + fido_cbor_info_new fido_cbor_info_certs_name_ptr + fido_cbor_info_new fido_cbor_info_certs_value_ptr fido_cbor_info_new fido_cbor_info_extensions_len fido_cbor_info_new fido_cbor_info_extensions_ptr fido_cbor_info_new fido_cbor_info_free + fido_cbor_info_new fido_cbor_info_fwversion fido_cbor_info_new fido_cbor_info_maxcredbloblen fido_cbor_info_new fido_cbor_info_maxcredcntlst fido_cbor_info_new fido_cbor_info_maxcredidlen fido_cbor_info_new fido_cbor_info_maxlargeblob fido_cbor_info_new fido_cbor_info_maxmsgsiz - fido_cbor_info_new fido_cbor_info_fwversion + fido_cbor_info_new fido_cbor_info_maxrpid_minpinlen + fido_cbor_info_new fido_cbor_info_minpinlen + fido_cbor_info_new fido_cbor_info_new_pin_required fido_cbor_info_new fido_cbor_info_options_len fido_cbor_info_new fido_cbor_info_options_name_ptr fido_cbor_info_new fido_cbor_info_options_value_ptr fido_cbor_info_new fido_cbor_info_protocols_len fido_cbor_info_new fido_cbor_info_protocols_ptr + fido_cbor_info_new fido_cbor_info_rk_remaining fido_cbor_info_new fido_cbor_info_transports_len fido_cbor_info_new fido_cbor_info_transports_ptr + fido_cbor_info_new fido_cbor_info_uv_attempts + fido_cbor_info_new fido_cbor_info_uv_modality fido_cbor_info_new fido_cbor_info_versions_len fido_cbor_info_new fido_cbor_info_versions_ptr fido_cbor_info_new fido_dev_get_cbor_info diff --git a/man/check.sh b/man/check.sh index 951afeb88e0b..d969a7afb666 100755 --- a/man/check.sh +++ b/man/check.sh @@ -3,6 +3,7 @@ # Copyright (c) 2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause T=$(mktemp -d) || exit 1 find . -maxdepth 1 -type f -name '*.3' -print0 > "$T/files" diff --git a/man/eddsa_pk_new.3 b/man/eddsa_pk_new.3 index 998def484790..428d724a45ee 100644 --- a/man/eddsa_pk_new.3 +++ b/man/eddsa_pk_new.3 @@ -1,8 +1,31 @@ -.\" Copyright (c) 2019 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" Copyright (c) 2019-2022 Yubico AB. All rights reserved. .\" -.Dd $Mdocdate: May 15 2019 $ +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd $Mdocdate: July 15 2022 $ .Dt EDDSA_PK_NEW 3 .Os .Sh NAME @@ -117,6 +140,7 @@ On error, a different error code defined in is returned. .Sh SEE ALSO .Xr es256_pk_new 3 , +.Xr es384_pk_new 3 , .Xr fido_assert_verify 3 , .Xr fido_cred_pubkey_ptr 3 , .Xr rs256_pk_new 3 diff --git a/man/es256_pk_new.3 b/man/es256_pk_new.3 index 5e184340a575..7d6be4d6223c 100644 --- a/man/es256_pk_new.3 +++ b/man/es256_pk_new.3 @@ -1,8 +1,31 @@ -.\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" -.Dd $Mdocdate: May 24 2018 $ +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd $Mdocdate: July 15 2022 $ .Dt ES256_PK_NEW 3 .Os .Sh NAME @@ -135,6 +158,7 @@ On error, a different error code defined in is returned. .Sh SEE ALSO .Xr eddsa_pk_new 3 , +.Xr es384_pk_new 3 , .Xr fido_assert_verify 3 , .Xr fido_cred_pubkey_ptr 3 , .Xr rs256_pk_new 3 diff --git a/man/es384_pk_new.3 b/man/es384_pk_new.3 new file mode 100644 index 000000000000..e865913b7807 --- /dev/null +++ b/man/es384_pk_new.3 @@ -0,0 +1,164 @@ +.\" Copyright (c) 2022 Yubico AB. 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd $Mdocdate: July 15 2022 $ +.Dt ES384_PK_NEW 3 +.Os +.Sh NAME +.Nm es384_pk_new , +.Nm es384_pk_free , +.Nm es384_pk_from_EC_KEY , +.Nm es384_pk_from_EVP_PKEY , +.Nm es384_pk_from_ptr , +.Nm es384_pk_to_EVP_PKEY +.Nd FIDO2 COSE ES384 API +.Sh SYNOPSIS +.In openssl/ec.h +.In fido/es384.h +.Ft es384_pk_t * +.Fn es384_pk_new "void" +.Ft void +.Fn es384_pk_free "es384_pk_t **pkp" +.Ft int +.Fn es384_pk_from_EC_KEY "es384_pk_t *pk" "const EC_KEY *ec" +.Ft int +.Fn es384_pk_from_EVP_PKEY "es384_pk_t *pk" "const EVP_PKEY *pkey" +.Ft int +.Fn es384_pk_from_ptr "es384_pk_t *pk" "const void *ptr" "size_t len" +.Ft EVP_PKEY * +.Fn es384_pk_to_EVP_PKEY "const es384_pk_t *pk" +.Sh DESCRIPTION +ES384 is the name given in the CBOR Object Signing and Encryption +(COSE) RFC to ECDSA over P-384 with SHA-384. +The COSE ES384 API of +.Em libfido2 +is an auxiliary API with routines to convert between the different +ECDSA public key types used in +.Em libfido2 +and +.Em OpenSSL . +.Pp +In +.Em libfido2 , +ES384 public keys are abstracted by the +.Vt es384_pk_t +type. +.Pp +The +.Fn es384_pk_new +function returns a pointer to a newly allocated, empty +.Vt es384_pk_t +type. +If memory cannot be allocated, NULL is returned. +.Pp +The +.Fn es384_pk_free +function releases the memory backing +.Fa *pkp , +where +.Fa *pkp +must have been previously allocated by +.Fn es384_pk_new . +On return, +.Fa *pkp +is set to NULL. +Either +.Fa pkp +or +.Fa *pkp +may be NULL, in which case +.Fn es384_pk_free +is a NOP. +.Pp +The +.Fn es384_pk_from_EC_KEY +function fills +.Fa pk +with the contents of +.Fa ec . +No references to +.Fa ec +are kept. +.Pp +The +.Fn es384_pk_from_EVP_PKEY +function fills +.Fa pk +with the contents of +.Fa pkey . +No references to +.Fa pkey +are kept. +.Pp +The +.Fn es384_pk_from_ptr +function fills +.Fa pk +with the contents of +.Fa ptr , +where +.Fa ptr +points to +.Fa len +bytes. +The +.Fa ptr +pointer may point to an uncompressed point, or to the +concatenation of the x and y coordinates. +No references to +.Fa ptr +are kept. +.Pp +The +.Fn es384_pk_to_EVP_PKEY +function converts +.Fa pk +to a newly allocated +.Fa EVP_PKEY +type with a reference count of 1. +No internal references to the returned pointer are kept. +If an error occurs, +.Fn es384_pk_to_EVP_PKEY +returns NULL. +.Sh RETURN VALUES +The +.Fn es384_pk_from_EC_KEY , +.Fn es384_pk_from_EVP_PKEY , +and +.Fn es384_pk_from_ptr +functions return +.Dv FIDO_OK +on success. +On error, a different error code defined in +.In fido/err.h +is returned. +.Sh SEE ALSO +.Xr eddsa_pk_new 3 , +.Xr es256_pk_new 3 , +.Xr fido_assert_verify 3 , +.Xr fido_cred_pubkey_ptr 3 , +.Xr rs256_pk_new 3 diff --git a/man/fido2-assert.1 b/man/fido2-assert.1 index ee8135c18483..0ee6e0942ba2 100644 --- a/man/fido2-assert.1 +++ b/man/fido2-assert.1 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: November 5 2019 $ .Dt FIDO2-ASSERT 1 diff --git a/man/fido2-cred.1 b/man/fido2-cred.1 index 0b10e74a0507..bd82499acac4 100644 --- a/man/fido2-cred.1 +++ b/man/fido2-cred.1 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: November 5 2019 $ .Dt FIDO2-CRED 1 diff --git a/man/fido2-token.1 b/man/fido2-token.1 index 4f8b8d08efe6..65a228cb1a31 100644 --- a/man/fido2-token.1 +++ b/man/fido2-token.1 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: April 11 2022 $ .Dt FIDO2-TOKEN 1 diff --git a/man/fido_assert_allow_cred.3 b/man/fido_assert_allow_cred.3 index 7fd730c3f63c..0690efcff4ba 100644 --- a/man/fido_assert_allow_cred.3 +++ b/man/fido_assert_allow_cred.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 23 2018 $ .Dt FIDO_ASSERT_ALLOW_CRED 3 diff --git a/man/fido_assert_new.3 b/man/fido_assert_new.3 index 413b7a7ba2ef..192625e32630 100644 --- a/man/fido_assert_new.3 +++ b/man/fido_assert_new.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: April 27 2022 $ .Dt FIDO_ASSERT_NEW 3 @@ -154,6 +177,10 @@ in .Fa assert . If not NULL, the values returned by these functions point to NUL-terminated UTF-8 strings. +The user display name, icon, and name attributes will typically +only be returned by the authenticator if user verification was +performed by the authenticator and multiple resident/discoverable +credentials were involved in the assertion. .Pp The .Fn fido_assert_authdata_ptr , diff --git a/man/fido_assert_set_authdata.3 b/man/fido_assert_set_authdata.3 index 0d512b655012..f3a307fd05b8 100644 --- a/man/fido_assert_set_authdata.3 +++ b/man/fido_assert_set_authdata.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: April 27 2022 $ .Dt FIDO_ASSERT_SET_AUTHDATA 3 diff --git a/man/fido_assert_verify.3 b/man/fido_assert_verify.3 index 8c0823703434..1b79448b6c32 100644 --- a/man/fido_assert_verify.3 +++ b/man/fido_assert_verify.3 @@ -1,8 +1,31 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" -.Dd $Mdocdate: May 24 2018 $ +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd $Mdocdate: July 15 2022 $ .Dt FIDO_ASSERT_VERIFY 3 .Os .Sh NAME @@ -42,6 +65,7 @@ where .Fa cose_alg is .Dv COSE_ES256 , +.Dv COSE_ES384 , .Dv COSE_RS256 , or .Dv COSE_EDDSA , @@ -49,6 +73,7 @@ and .Fa pk points to a .Vt es256_pk_t , +.Vt es384_pk_t , .Vt rs256_pk_t , or .Vt eddsa_pk_t diff --git a/man/fido_bio_dev_get_info.3 b/man/fido_bio_dev_get_info.3 index 7f1696fc12a4..b8fc1043c231 100644 --- a/man/fido_bio_dev_get_info.3 +++ b/man/fido_bio_dev_get_info.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2019 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: September 13 2019 $ .Dt FIDO_BIO_DEV_GET_INFO 3 diff --git a/man/fido_bio_enroll_new.3 b/man/fido_bio_enroll_new.3 index 37b842e644fd..536ba9af9f91 100644 --- a/man/fido_bio_enroll_new.3 +++ b/man/fido_bio_enroll_new.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2019 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: September 13 2019 $ .Dt FIDO_BIO_ENROLL_NEW 3 diff --git a/man/fido_bio_info_new.3 b/man/fido_bio_info_new.3 index a7435fd615e7..41343068b162 100644 --- a/man/fido_bio_info_new.3 +++ b/man/fido_bio_info_new.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2019 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: September 13 2019 $ .Dt FIDO_BIO_INFO_NEW 3 diff --git a/man/fido_bio_template.3 b/man/fido_bio_template.3 index 232f3ead2ab3..a8ff8bc38dc6 100644 --- a/man/fido_bio_template.3 +++ b/man/fido_bio_template.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2019 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: September 13 2019 $ .Dt FIDO_BIO_TEMPLATE 3 diff --git a/man/fido_cbor_info_new.3 b/man/fido_cbor_info_new.3 index 45c143f5df62..a8168c05c916 100644 --- a/man/fido_cbor_info_new.3 +++ b/man/fido_cbor_info_new.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: April 22 2022 $ .Dt FIDO_CBOR_INFO_NEW 3 @@ -19,6 +42,9 @@ .Nm fido_cbor_info_algorithm_type , .Nm fido_cbor_info_algorithm_cose , .Nm fido_cbor_info_algorithm_count , +.Nm fido_cbor_info_certs_name_ptr , +.Nm fido_cbor_info_certs_value_ptr , +.Nm fido_cbor_info_certs_len , .Nm fido_cbor_info_aaguid_len , .Nm fido_cbor_info_extensions_len , .Nm fido_cbor_info_protocols_len , @@ -30,7 +56,13 @@ .Nm fido_cbor_info_maxcredcntlst , .Nm fido_cbor_info_maxcredidlen , .Nm fido_cbor_info_maxlargeblob , -.Nm fido_cbor_info_fwversion +.Nm fido_cbor_info_maxrpid_minpinlen , +.Nm fido_cbor_info_minpinlen , +.Nm fido_cbor_info_fwversion , +.Nm fido_cbor_info_uv_attempts , +.Nm fido_cbor_info_uv_modality , +.Nm fido_cbor_info_rk_remaining , +.Nm fido_cbor_info_new_pin_required .Nd FIDO2 CBOR Info API .Sh SYNOPSIS .In fido.h @@ -60,6 +92,12 @@ .Fn fido_cbor_info_algorithm_cose "const fido_cbor_info_t *ci" "size_t idx" .Ft size_t .Fn fido_cbor_info_algorithm_count "const fido_cbor_info_t *ci" +.Ft char ** +.Fn fido_cbor_info_certs_name_ptr "const fido_cbor_info_t *ci" +.Ft const uint64_t * +.Fn fido_cbor_info_certs_value_ptr "const fido_cbor_info_t *ci" +.Ft size_t +.Fn fido_cbor_info_certs_len "const fido_cbor_info_t *ci" .Ft size_t .Fn fido_cbor_info_aaguid_len "const fido_cbor_info_t *ci" .Ft size_t @@ -83,7 +121,19 @@ .Ft uint64_t .Fn fido_cbor_info_maxlargeblob "const fido_cbor_info_t *ci" .Ft uint64_t +.Fn fido_cbor_info_maxrpid_minpinlen "const fido_cbor_info_t *ci" +.Ft uint64_t +.Fn fido_cbor_info_minpinlen "const fido_cbor_info_t *ci" +.Ft uint64_t .Fn fido_cbor_info_fwversion "const fido_cbor_info_t *ci" +.Ft uint64_t +.Fn fido_cbor_info_uv_attempts "const fido_cbor_info_t *ci" +.Ft uint64_t +.Fn fido_cbor_info_uv_modality "const fido_cbor_info_t *ci" +.Ft int64_t +.Fn fido_cbor_info_rk_remaining "const fido_cbor_info_t *ci" +.Ft bool +.Fn fido_cbor_info_new_pin_required "const fido_cbor_info_t *ci" .Sh DESCRIPTION The .Fn fido_cbor_info_new @@ -180,6 +230,17 @@ has an (index) value of 0. .Pp The +.Fn fido_cbor_info_certs_name_ptr +and +.Fn fido_cbor_info_certs_value_ptr +functions return pointers to the array of certification names and their +respective values +in +.Fa ci . +The length of the certifications array is returned by +.Fn fido_cbor_info_certs_len . +.Pp +The .Fn fido_cbor_info_maxmsgsiz function returns the maximum message size attribute of .Fa ci . @@ -204,16 +265,93 @@ as reported in .Fa ci . .Pp The +.Fn fido_cbor_info_maxrpid_minpinlen +function returns the maximum number of RP IDs that may be passed to +.Xr fido_dev_set_pin_minlen_rpid 3 , +as reported in +.Fa ci . +The minimum PIN length attribute is a CTAP 2.1 addition. +If the attribute is not advertised by the authenticator, the +.Fn fido_cbor_info_maxrpid_minpinlen +function returns zero. +.Pp +The .Fn fido_cbor_info_maxlargeblob function returns the maximum length in bytes of an authenticator's serialized largeBlob array as reported in .Fa ci . .Pp The +.Fn fido_cbor_info_minpinlen +function returns the minimum PIN length enforced by the +authenticator as reported in +.Fa ci . +The minimum PIN length attribute is a CTAP 2.1 addition. +If the attribute is not advertised by the authenticator, the +.Fn fido_cbor_info_minpinlen +function returns zero. +.Pp +The .Fn fido_cbor_info_fwversion function returns the firmware version attribute of .Fa ci . .Pp +The +.Fn fido_cbor_info_uv_attempts +function returns the number of UV attempts that the platform may +attempt before falling back to PIN authentication. +If 1, then all +.Xr fido_dev_get_uv_retry_count 3 +retries are handled internally by the authenticator and the +platform may only attempt non-PIN UV once. +The UV attempts attribute is a CTAP 2.1 addition. +If the attribute is not advertised by the authenticator, +the +.Fn fido_cbor_info_uv_attempts +function returns zero. +.Pp +The +.Fn fido_cbor_info_uv_modality +function returns a bitmask representing different UV modes +supported by the authenticator, as defined in the FIDO Registry of +Predefined Values and reported in +.Fa ci . +See the +.Em FIDO_UV_MODE_* +definitions in +.In fido/param.h +for the set of values defined by libfido2 and a brief description +of each. +The UV modality attribute is a CTAP 2.1 addition. +If the attribute is not advertised by the authenticator, the +.Fn fido_cbor_info_uv_modality +function returns zero. +.Pp +The +.Fn fido_cbor_info_rk_remaining +function returns the estimated number of additional +resident/discoverable credentials that can be stored on the +authenticator as reported in +.Fa ci . +The estimated number of remaining resident credentials is a +CTAP 2.1 addition. +If the attribute is not advertised by the authenticator, the +.Fn fido_cbor_info_rk_remaining +function returns -1. +.Pp +The +.Fn fido_cbor_info_new_pin_required +function returns whether a new PIN is required by the authenticator +as reported in +.Fa ci . +If +.Fn fido_cbor_info_new_pin_required +returns true, operations requiring PIN authentication will fail +until a new PIN is set on the authenticator. +The +.Xr fido_dev_set_pin 3 +function can be used to set a new PIN. +.Pp A complete example of how to use these functions can be found in the .Pa example/info.c file shipped with @@ -238,4 +376,14 @@ without the .Em const qualifier is invoked. .Sh SEE ALSO -.Xr fido_dev_open 3 +.Xr fido_dev_get_uv_retry_count 3 , +.Xr fido_dev_open 3 , +.Xr fido_dev_set_pin 3 , +.Xr fido_dev_set_pin_minlen_rpid 3 +.Rs +.%D 2021-05-25 +.%O Review Draft, Version 2.2 +.%Q FIDO Alliance +.%R FIDO Registry of Predefined Values +.%U https://fidoalliance.org/specs/common-specs/fido-registry-v2.2-rd-20210525.html +.Re diff --git a/man/fido_cred_exclude.3 b/man/fido_cred_exclude.3 index 2aa87f28976f..0d4ba75ecbef 100644 --- a/man/fido_cred_exclude.3 +++ b/man/fido_cred_exclude.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 23 2018 $ .Dt FIDO_CRED_EXCLUDE 3 diff --git a/man/fido_cred_new.3 b/man/fido_cred_new.3 index ee7ac96a6b0b..4f8b1be7bc45 100644 --- a/man/fido_cred_new.3 +++ b/man/fido_cred_new.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 23 2018 $ .Dt FIDO_CRED_NEW 3 @@ -189,7 +212,7 @@ for the protection policies understood by The .Fn fido_cred_fmt function returns a pointer to a NUL-terminated string containing -the format of +the attestation statement format identifier of .Fa cred , or NULL if .Fa cred diff --git a/man/fido_cred_set_authdata.3 b/man/fido_cred_set_authdata.3 index 921a682f8f91..e4538325b291 100644 --- a/man/fido_cred_set_authdata.3 +++ b/man/fido_cred_set_authdata.3 @@ -1,8 +1,31 @@ -.\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" -.Dd $Mdocdate: May 23 2018 $ +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd $Mdocdate: July 15 2022 $ .Dt FIDO_CRED_SET_AUTHDATA 3 .Os .Sh NAME @@ -287,7 +310,7 @@ by default, allowing the authenticator to use its default settings. .Pp The .Fn fido_cred_set_fmt -function sets the attestation format of +function sets the attestation statement format identifier of .Fa cred to .Fa fmt , @@ -297,15 +320,18 @@ must be .Vt "packed" .Pq the format used in FIDO2 , .Vt "fido-u2f" -.Pq the format used by U2F , +.Pq the format used in U2F , +.Vt "tpm" +.Pq the format used by TPM-based authenticators , or .Vt "none" . A copy of .Fa fmt is made, and no references to the passed pointer are kept. -Note that not all authenticators support FIDO2 and therefore may not +Note that not all authenticators support FIDO2 and therefore may only be able to generate -.Vt "packed" . +.Vt fido-u2f +attestation statements. .Pp The .Fn fido_cred_set_type @@ -316,11 +342,13 @@ where .Fa cose_alg is .Dv COSE_ES256 , +.Dv COSE_ES384 , .Dv COSE_RS256 , or .Dv COSE_EDDSA . The type of a credential may only be set once. -Note that not all authenticators support COSE_RS256 or COSE_EDDSA. +Note that not all authenticators support COSE_RS256, COSE_ES384, or +COSE_EDDSA. .Pp Use of the .Nm diff --git a/man/fido_cred_verify.3 b/man/fido_cred_verify.3 index 696dec293e4d..9548870204c7 100644 --- a/man/fido_cred_verify.3 +++ b/man/fido_cred_verify.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 23 2018 $ .Dt FIDO_CRED_VERIFY 3 diff --git a/man/fido_credman_metadata_new.3 b/man/fido_credman_metadata_new.3 index cd6722e24aa8..122020bd68b1 100644 --- a/man/fido_credman_metadata_new.3 +++ b/man/fido_credman_metadata_new.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2019-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: June 28 2019 $ .Dt FIDO_CREDMAN_METADATA_NEW 3 diff --git a/man/fido_dev_enable_entattest.3 b/man/fido_dev_enable_entattest.3 index a06746b61317..7617f22389e2 100644 --- a/man/fido_dev_enable_entattest.3 +++ b/man/fido_dev_enable_entattest.3 @@ -1,6 +1,29 @@ -.\" Copyright (c) 2020 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" Copyright (c) 2020-2022 Yubico AB. 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: March 30 2022 $ .Dt FIDO_DEV_ENABLE_ENTATTEST 3 @@ -97,6 +120,10 @@ NUL-terminated UTF-8 strings. A copy of .Fa rpid is made, and no reference to it or its contents is kept. +The maximum value of +.Fa n +supported by the authenticator can be obtained using +.Xr fido_cbor_info_maxrpid_minpinlen 3 . .Pp Configuration settings are reflected in the payload returned by the authenticator in response to a @@ -116,6 +143,7 @@ On success, .Dv FIDO_OK is returned. .Sh SEE ALSO +.Xr fido_cbor_info_maxrpid_minpinlen 3 , .Xr fido_cred_pin_minlen 3 , .Xr fido_dev_get_cbor_info 3 , .Xr fido_dev_reset 3 diff --git a/man/fido_dev_get_assert.3 b/man/fido_dev_get_assert.3 index bc67e441cca3..bb2fc43b8b24 100644 --- a/man/fido_dev_get_assert.3 +++ b/man/fido_dev_get_assert.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 24 2018 $ .Dt FIDO_DEV_GET_ASSERT 3 diff --git a/man/fido_dev_get_touch_begin.3 b/man/fido_dev_get_touch_begin.3 index f3b8335cec12..f015eff2cb3c 100644 --- a/man/fido_dev_get_touch_begin.3 +++ b/man/fido_dev_get_touch_begin.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2020 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: August 5 2020 $ .Dt FIDO_DEV_GET_TOUCH_BEGIN 3 diff --git a/man/fido_dev_info_manifest.3 b/man/fido_dev_info_manifest.3 index 4be7e3a60490..a70a3cb299ac 100644 --- a/man/fido_dev_info_manifest.3 +++ b/man/fido_dev_info_manifest.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: March 30 2022 $ .Dt FIDO_DEV_INFO_MANIFEST 3 diff --git a/man/fido_dev_largeblob_get.3 b/man/fido_dev_largeblob_get.3 index c42208158c5e..12dd319485e1 100644 --- a/man/fido_dev_largeblob_get.3 +++ b/man/fido_dev_largeblob_get.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2020 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: October 26 2020 $ .Dt FIDO_LARGEBLOB_GET 3 @@ -68,8 +91,7 @@ function retrieves the authenticator's .Dq largeBlobs CBOR array and, on success, returns the first blob .Pq iterating from array index zero -that can be -decrypted by +that can be decrypted by .Fa key_ptr , where .Fa key_ptr @@ -179,8 +201,8 @@ is returned. .Xr fido_cred_largeblob_key_len 3 , .Xr fido_cred_largeblob_key_ptr 3 , .Xr fido_cred_set_extensions 3 , -.Xr fido_credman_dev_get_rk 3 , -.Xr fido_credman_dev_get_rp 3 , +.Xr fido_credman_get_dev_rk 3 , +.Xr fido_credman_get_dev_rp 3 , .Xr fido_dev_get_assert 3 , .Xr fido_dev_make_cred 3 .Sh CAVEATS diff --git a/man/fido_dev_make_cred.3 b/man/fido_dev_make_cred.3 index 60b77fb9c010..b13f9a14bc85 100644 --- a/man/fido_dev_make_cred.3 +++ b/man/fido_dev_make_cred.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 23 2018 $ .Dt FIDO_DEV_MAKE_CRED 3 diff --git a/man/fido_dev_open.3 b/man/fido_dev_open.3 index cdb148fe8b16..f839e26787b4 100644 --- a/man/fido_dev_open.3 +++ b/man/fido_dev_open.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 25 2018 $ .Dt FIDO_DEV_OPEN 3 diff --git a/man/fido_dev_set_io_functions.3 b/man/fido_dev_set_io_functions.3 index 8c2067c41f66..e3e10bae5aaf 100644 --- a/man/fido_dev_set_io_functions.3 +++ b/man/fido_dev_set_io_functions.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 25 2018 $ .Dt FIDO_DEV_SET_IO_FUNCTIONS 3 diff --git a/man/fido_dev_set_pin.3 b/man/fido_dev_set_pin.3 index b58ba6c86f89..eec062dda1cd 100644 --- a/man/fido_dev_set_pin.3 +++ b/man/fido_dev_set_pin.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 25 2018 $ .Dt FIDO_DEV_SET_PIN 3 @@ -89,6 +112,8 @@ are defined in On success, .Dv FIDO_OK is returned. +.Sh SEE ALSO +.Xr fido_cbor_info_uv_attempts 3 .Sh CAVEATS Regarding .Fn fido_dev_reset , diff --git a/man/fido_init.3 b/man/fido_init.3 index 1254f934b73b..12437e1b1a78 100644 --- a/man/fido_init.3 +++ b/man/fido_init.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 25 2018 $ .Dt FIDO_INIT 3 diff --git a/man/fido_strerr.3 b/man/fido_strerr.3 index 9d4ef35aa402..94b48bd621df 100644 --- a/man/fido_strerr.3 +++ b/man/fido_strerr.3 @@ -1,6 +1,29 @@ .\" Copyright (c) 2018 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .Dd $Mdocdate: May 25 2018 $ .Dt FIDO_STRERR 3 diff --git a/man/rs256_pk_new.3 b/man/rs256_pk_new.3 index 24a27bf8cdab..0c0ab78b507c 100644 --- a/man/rs256_pk_new.3 +++ b/man/rs256_pk_new.3 @@ -1,8 +1,31 @@ -.\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. -.\" Use of this source code is governed by a BSD-style -.\" license that can be found in the LICENSE file. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" -.Dd $Mdocdate: May 24 2018 $ +.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "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 COPYRIGHT +.\" HOLDER OR CONTRIBUTORS 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. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd $Mdocdate: July 15 2022 $ .Dt RS256_PK_NEW 3 .Os .Sh NAME @@ -132,5 +155,6 @@ is returned. .Sh SEE ALSO .Xr eddsa_pk_new 3 , .Xr es256_pk_new 3 , +.Xr es384_pk_new 3 , .Xr fido_assert_verify 3 , .Xr fido_cred_pubkey_ptr 3 diff --git a/openbsd-compat/clock_gettime.c b/openbsd-compat/clock_gettime.c index ca261a65e7f1..bbf978c42893 100644 --- a/openbsd-compat/clock_gettime.c +++ b/openbsd-compat/clock_gettime.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "openbsd-compat.h" diff --git a/openbsd-compat/endian_win32.c b/openbsd-compat/endian_win32.c index 9981dfafbaeb..756c0cbdc838 100644 --- a/openbsd-compat/endian_win32.c +++ b/openbsd-compat/endian_win32.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "openbsd-compat.h" diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index 1518ff755b97..9f1ea3e7cf51 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -2,6 +2,7 @@ * Copyright (c) 2018-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _OPENBSD_COMPAT_H diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt index 87482ef35362..246bffa175c4 100644 --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt @@ -1,14 +1,15 @@ # Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause add_custom_target(regress) -macro(add_regress_test NAME SOURCES) +macro(add_regress_test NAME SOURCES LIB) add_executable(${NAME} ${SOURCES}) - target_link_libraries(${NAME} fido2) add_test(${NAME} ${NAME}) add_dependencies(regress ${NAME}) + target_link_libraries(${NAME} ${LIB}) endmacro() if(MSVC AND BUILD_SHARED_LIBS) @@ -17,6 +18,14 @@ if(MSVC AND BUILD_SHARED_LIBS) "${CBOR_BIN_DIRS}/${CBOR_LIBRARIES}.dll" "${CRYPTO_BIN_DIRS}/${CRYPTO_LIBRARIES}.dll" "${ZLIB_BIN_DIRS}/${ZLIB_LIBRARIES}.dll" + "$<TARGET_FILE:${_FIDO2_LIBRARY}>" + "${CMAKE_CURRENT_BINARY_DIR}") +endif() + +if(CYGWIN AND BUILD_SHARED_LIBS) + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + "$<TARGET_FILE:${_FIDO2_LIBRARY}>" "${CMAKE_CURRENT_BINARY_DIR}") endif() @@ -31,13 +40,16 @@ else() WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) endif() -add_regress_test(regress_assert assert.c) -add_regress_test(regress_compress compress.c) -add_regress_test(regress_cred cred.c) -add_regress_test(regress_dev dev.c) -add_regress_test(regress_eddsa eddsa.c) -add_regress_test(regress_es256 es256.c) -add_regress_test(regress_rs256 rs256.c) +add_regress_test(regress_assert assert.c ${_FIDO2_LIBRARY}) +add_regress_test(regress_cred cred.c ${_FIDO2_LIBRARY}) +add_regress_test(regress_dev dev.c ${_FIDO2_LIBRARY}) +add_regress_test(regress_eddsa eddsa.c ${_FIDO2_LIBRARY}) +add_regress_test(regress_es256 es256.c ${_FIDO2_LIBRARY}) +add_regress_test(regress_es384 es384.c ${_FIDO2_LIBRARY}) +add_regress_test(regress_rs256 rs256.c ${_FIDO2_LIBRARY}) +if(BUILD_STATIC_LIBS) + add_regress_test(regress_compress compress.c fido2) +endif() if(MINGW) # needed for nanosleep() in mingw diff --git a/regress/assert.c b/regress/assert.c index 695a3b78edcc..98609257b8b5 100644 --- a/regress/assert.c +++ b/regress/assert.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/regress/compress.c b/regress/compress.c index 5d537838bdeb..7afc8bb339a7 100644 --- a/regress/compress.c +++ b/regress/compress.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/regress/cred.c b/regress/cred.c index c62ff8e4dcb4..e4dc76ac1f0d 100644 --- a/regress/cred.c +++ b/regress/cred.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/regress/dev.c b/regress/dev.c index 92031e17066c..0ba552b70552 100644 --- a/regress/dev.c +++ b/regress/dev.c @@ -2,6 +2,7 @@ * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/regress/eddsa.c b/regress/eddsa.c index 42236ea58adf..06236987ed17 100644 --- a/regress/eddsa.c +++ b/regress/eddsa.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/regress/es256.c b/regress/es256.c index 17ef27fd4c98..3a62a415977e 100644 --- a/regress/es256.c +++ b/regress/es256.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/regress/es384.c b/regress/es384.c new file mode 100644 index 000000000000..b55ce015e17a --- /dev/null +++ b/regress/es384.c @@ -0,0 +1,213 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/es384.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static const char short_x[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEAAZ/VVCUmFU6aH9kJdDnUHCCglkatFTX\n" +"onMwIvNYyS8BW/HOoZiOQLs2Hg+qifwaP1pHKILzCVfFmWuZMhxhtmjNXFuOPDnS\n" +"Wa1PMdkCoWXA2BbXxnqL9v36gIOcFBil\n" +"-----END PUBLIC KEY-----"; + +static const char short_y[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuDpRBAg87cnWVhxbWnaWlnj100w9pm5k\n" +"6T4eYToISaIhEK70TnGwULHX0+qHCYEGACOM7B/ZJbqjo6I7MIXaKZLemGi+tqvy\n" +"ajBAsTVSyrYBLQjTMMcaFmYmsxvFx7pK\n" +"-----END PUBLIC KEY-----\n"; + +static const char brainpoolP384r1[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABFKswbBzqqyZ4h1zz8rivqHzJxAO\n" +"XC2aLyC9x5gwBM7GVu8k6jkX7VypRpg3yyCneiIQ+vVCNXgbDchJ0cPVuhwm3Zru\n" +"AK49dezUPahWF0YiJRFVeV+KyB/MEaaZvinzqw==\n" +"-----END PUBLIC KEY-----\n"; + +static const char secp384r1[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEdJN9DoqPtTNAOmjnECHBIqnJgyBW0rct\n" +"tbUSqQjb6UG2lldmrQJbgCP/ywuXvkkJl4yfXxOr0UP3rgcnqTVA1/46s2TG+R5u\n" +"NSQbCM1JPQuvTyFlAn5mdR8ZJJ8yPBQm\n" +"-----END PUBLIC KEY-----\n"; + +static const unsigned char brainpoolP384r1_raw[] = { + 0x04, 0x52, 0xac, 0xc1, 0xb0, 0x73, 0xaa, 0xac, + 0x99, 0xe2, 0x1d, 0x73, 0xcf, 0xca, 0xe2, 0xbe, + 0xa1, 0xf3, 0x27, 0x10, 0x0e, 0x5c, 0x2d, 0x9a, + 0x2f, 0x20, 0xbd, 0xc7, 0x98, 0x30, 0x04, 0xce, + 0xc6, 0x56, 0xef, 0x24, 0xea, 0x39, 0x17, 0xed, + 0x5c, 0xa9, 0x46, 0x98, 0x37, 0xcb, 0x20, 0xa7, + 0x7a, 0x22, 0x10, 0xfa, 0xf5, 0x42, 0x35, 0x78, + 0x1b, 0x0d, 0xc8, 0x49, 0xd1, 0xc3, 0xd5, 0xba, + 0x1c, 0x26, 0xdd, 0x9a, 0xee, 0x00, 0xae, 0x3d, + 0x75, 0xec, 0xd4, 0x3d, 0xa8, 0x56, 0x17, 0x46, + 0x22, 0x25, 0x11, 0x55, 0x79, 0x5f, 0x8a, 0xc8, + 0x1f, 0xcc, 0x11, 0xa6, 0x99, 0xbe, 0x29, 0xf3, + 0xab, +}; + +static const unsigned char secp384r1_raw[] = { + 0x04, 0x74, 0x93, 0x7d, 0x0e, 0x8a, 0x8f, 0xb5, + 0x33, 0x40, 0x3a, 0x68, 0xe7, 0x10, 0x21, 0xc1, + 0x22, 0xa9, 0xc9, 0x83, 0x20, 0x56, 0xd2, 0xb7, + 0x2d, 0xb5, 0xb5, 0x12, 0xa9, 0x08, 0xdb, 0xe9, + 0x41, 0xb6, 0x96, 0x57, 0x66, 0xad, 0x02, 0x5b, + 0x80, 0x23, 0xff, 0xcb, 0x0b, 0x97, 0xbe, 0x49, + 0x09, 0x97, 0x8c, 0x9f, 0x5f, 0x13, 0xab, 0xd1, + 0x43, 0xf7, 0xae, 0x07, 0x27, 0xa9, 0x35, 0x40, + 0xd7, 0xfe, 0x3a, 0xb3, 0x64, 0xc6, 0xf9, 0x1e, + 0x6e, 0x35, 0x24, 0x1b, 0x08, 0xcd, 0x49, 0x3d, + 0x0b, 0xaf, 0x4f, 0x21, 0x65, 0x02, 0x7e, 0x66, + 0x75, 0x1f, 0x19, 0x24, 0x9f, 0x32, 0x3c, 0x14, + 0x26, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +es384_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + es384_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = es384_pk_new()) == NULL) { + warnx("es384_pk_new"); + goto out; + } + if ((r = es384_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("es384_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = es384_pk_to_EVP_PKEY(k)) == NULL) { + warnx("es384_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + es384_pk_free(&k); + + return ok; +} + +static void +short_coord(void) +{ + assert(es384_pk_cmp(short_x, sizeof(short_x)) == 0); + assert(es384_pk_cmp(short_y, sizeof(short_y)) == 0); +} + +static void +invalid_curve(const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkey; + es384_pk_t *pk; + + pkey = EVP_PKEY_from_PEM(brainpoolP384r1, sizeof(brainpoolP384r1)); + if (pkey == NULL) + return; /* assume no brainpool support in libcrypto */ + ASSERT_NOT_NULL((pk = es384_pk_new())); + ASSERT_INVAL(es384_pk_from_EVP_PKEY(pk, pkey)); + ASSERT_INVAL(es384_pk_from_ptr(pk, raw, raw_len)); + ASSERT_NULL(es384_pk_to_EVP_PKEY((const es384_pk_t *)raw)); + + EVP_PKEY_free(pkey); + es384_pk_free(&pk); +} + +static void +full_coord(void) +{ + assert(es384_pk_cmp(secp384r1, sizeof(secp384r1)) == 0); +} + +static void +valid_curve(const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkeyA; + EVP_PKEY *pkeyB; + es384_pk_t *pkA; + es384_pk_t *pkB; + + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(secp384r1, sizeof(secp384r1)))); + ASSERT_NOT_NULL((pkA = es384_pk_new())); + ASSERT_NOT_NULL((pkB = es384_pk_new())); + ASSERT_OK(es384_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(es384_pk_from_ptr(pkB, raw, raw_len)); + ASSERT_NOT_NULL((pkeyB = es384_pk_to_EVP_PKEY(pkB))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + es384_pk_free(&pkA); + es384_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + short_coord(); + full_coord(); + + invalid_curve(brainpoolP384r1_raw, sizeof(brainpoolP384r1_raw)); /* uncompressed */ + invalid_curve(brainpoolP384r1_raw + 1, sizeof(brainpoolP384r1_raw) - 1); /* libfido2 */ + valid_curve(secp384r1_raw, sizeof(secp384r1_raw)); /* uncompressed */ + valid_curve(secp384r1_raw + 1, sizeof(secp384r1_raw) - 1); /* libfido2 */ + + exit(0); +} diff --git a/regress/rs256.c b/regress/rs256.c index f6e685a11da8..799396f07a02 100644 --- a/regress/rs256.c +++ b/regress/rs256.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef NDEBUG diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 44a87282869e..73493b1ea8e4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,7 @@ -# Copyright (c) 2018-2021 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause add_definitions(-D_FIDO_INTERNAL) @@ -21,6 +22,7 @@ list(APPEND FIDO_SOURCES eddsa.c err.c es256.c + es384.c hid.c info.c io.c @@ -83,11 +85,12 @@ else() endif() if(NOT MSVC) - set_source_files_properties(${FIDO_SOURCES} PROPERTIES COMPILE_FLAGS - "-Wconversion -Wsign-conversion") + set_source_files_properties(${FIDO_SOURCES} + PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}") endif() list(APPEND COMPAT_SOURCES + ../openbsd-compat/bsd-asprintf.c ../openbsd-compat/bsd-getpagesize.c ../openbsd-compat/clock_gettime.c ../openbsd-compat/endian_win32.c diff --git a/src/aes256.c b/src/aes256.c index f093b7ce0bd5..dcf716d65abb 100644 --- a/src/aes256.c +++ b/src/aes256.c @@ -2,6 +2,7 @@ * Copyright (c) 2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/assert.c b/src/assert.c index 949af919d25e..a690f46dc882 100644 --- a/src/assert.c +++ b/src/assert.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> @@ -160,42 +161,51 @@ fido_dev_get_assert_tx(fido_dev_t *dev, fido_assert_t *assert, static int fido_dev_get_assert_rx(fido_dev_t *dev, fido_assert_t *assert, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; fido_assert_reset_rx(assert); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } /* start with room for a single assertion */ - if ((assert->stmt = calloc(1, sizeof(fido_assert_stmt))) == NULL) - return (FIDO_ERR_INTERNAL); - + if ((assert->stmt = calloc(1, sizeof(fido_assert_stmt))) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } assert->stmt_len = 0; assert->stmt_cnt = 1; /* adjust as needed */ - if ((r = cbor_parse_reply(reply, (size_t)reply_len, assert, + if ((r = cbor_parse_reply(msg, (size_t)msglen, assert, adjust_assert_count)) != FIDO_OK) { fido_log_debug("%s: adjust_assert_count", __func__); - return (r); + goto out; } /* parse the first assertion */ - if ((r = cbor_parse_reply(reply, (size_t)reply_len, - &assert->stmt[assert->stmt_len], parse_assert_reply)) != FIDO_OK) { + if ((r = cbor_parse_reply(msg, (size_t)msglen, &assert->stmt[0], + parse_assert_reply)) != FIDO_OK) { fido_log_debug("%s: parse_assert_reply", __func__); - return (r); + goto out; } + assert->stmt_len = 1; - assert->stmt_len++; + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); - return (FIDO_OK); + return (r); } static int @@ -214,30 +224,40 @@ fido_get_next_assert_tx(fido_dev_t *dev, int *ms) static int fido_get_next_assert_rx(fido_dev_t *dev, fido_assert_t *assert, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } /* sanity check */ if (assert->stmt_len >= assert->stmt_cnt) { fido_log_debug("%s: stmt_len=%zu, stmt_cnt=%zu", __func__, assert->stmt_len, assert->stmt_cnt); - return (FIDO_ERR_INTERNAL); + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, + if ((r = cbor_parse_reply(msg, (size_t)msglen, &assert->stmt[assert->stmt_len], parse_assert_reply)) != FIDO_OK) { fido_log_debug("%s: parse_assert_reply", __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -365,59 +385,108 @@ check_extensions(int authdata_ext, int ext) return (0); } +static int +get_es256_hash(fido_blob_t *dgst, const fido_blob_t *clientdata, + const fido_blob_t *authdata) +{ + const EVP_MD *md; + EVP_MD_CTX *ctx = NULL; + + if (dgst->len < SHA256_DIGEST_LENGTH || + (md = EVP_sha256()) == NULL || + (ctx = EVP_MD_CTX_new()) == NULL || + EVP_DigestInit_ex(ctx, md, NULL) != 1 || + EVP_DigestUpdate(ctx, authdata->ptr, authdata->len) != 1 || + EVP_DigestUpdate(ctx, clientdata->ptr, clientdata->len) != 1 || + EVP_DigestFinal_ex(ctx, dgst->ptr, NULL) != 1) { + EVP_MD_CTX_free(ctx); + return (-1); + } + dgst->len = SHA256_DIGEST_LENGTH; + + EVP_MD_CTX_free(ctx); + + return (0); +} + +static int +get_es384_hash(fido_blob_t *dgst, const fido_blob_t *clientdata, + const fido_blob_t *authdata) +{ + const EVP_MD *md; + EVP_MD_CTX *ctx = NULL; + + if (dgst->len < SHA384_DIGEST_LENGTH || + (md = EVP_sha384()) == NULL || + (ctx = EVP_MD_CTX_new()) == NULL || + EVP_DigestInit_ex(ctx, md, NULL) != 1 || + EVP_DigestUpdate(ctx, authdata->ptr, authdata->len) != 1 || + EVP_DigestUpdate(ctx, clientdata->ptr, clientdata->len) != 1 || + EVP_DigestFinal_ex(ctx, dgst->ptr, NULL) != 1) { + EVP_MD_CTX_free(ctx); + return (-1); + } + dgst->len = SHA384_DIGEST_LENGTH; + + EVP_MD_CTX_free(ctx); + + return (0); +} + +static int +get_eddsa_hash(fido_blob_t *dgst, const fido_blob_t *clientdata, + const fido_blob_t *authdata) +{ + if (SIZE_MAX - authdata->len < clientdata->len || + dgst->len < authdata->len + clientdata->len) + return (-1); + + memcpy(dgst->ptr, authdata->ptr, authdata->len); + memcpy(dgst->ptr + authdata->len, clientdata->ptr, clientdata->len); + dgst->len = authdata->len + clientdata->len; + + return (0); +} + int fido_get_signed_hash(int cose_alg, fido_blob_t *dgst, const fido_blob_t *clientdata, const fido_blob_t *authdata_cbor) { cbor_item_t *item = NULL; - unsigned char *authdata_ptr = NULL; - size_t authdata_len; + fido_blob_t authdata; struct cbor_load_result cbor; - const EVP_MD *md = NULL; - EVP_MD_CTX *ctx = NULL; int ok = -1; + fido_log_debug("%s: cose_alg=%d", __func__, cose_alg); + if ((item = cbor_load(authdata_cbor->ptr, authdata_cbor->len, &cbor)) == NULL || cbor_isa_bytestring(item) == false || cbor_bytestring_is_definite(item) == false) { fido_log_debug("%s: authdata", __func__); goto fail; } + authdata.ptr = cbor_bytestring_handle(item); + authdata.len = cbor_bytestring_length(item); - authdata_ptr = cbor_bytestring_handle(item); - authdata_len = cbor_bytestring_length(item); - - if (cose_alg != COSE_EDDSA) { - if (dgst->len < SHA256_DIGEST_LENGTH || - (md = EVP_sha256()) == NULL || - (ctx = EVP_MD_CTX_new()) == NULL || - EVP_DigestInit_ex(ctx, md, NULL) != 1 || - EVP_DigestUpdate(ctx, authdata_ptr, authdata_len) != 1 || - EVP_DigestUpdate(ctx, clientdata->ptr, clientdata->len) != 1 || - EVP_DigestFinal_ex(ctx, dgst->ptr, NULL) != 1) { - fido_log_debug("%s: sha256", __func__); - goto fail; - } - dgst->len = SHA256_DIGEST_LENGTH; - } else { - if (SIZE_MAX - authdata_len < clientdata->len || - dgst->len < authdata_len + clientdata->len) { - fido_log_debug("%s: memcpy", __func__); - goto fail; - } - memcpy(dgst->ptr, authdata_ptr, authdata_len); - memcpy(dgst->ptr + authdata_len, clientdata->ptr, - clientdata->len); - dgst->len = authdata_len + clientdata->len; + switch (cose_alg) { + case COSE_ES256: + case COSE_RS256: + ok = get_es256_hash(dgst, clientdata, &authdata); + break; + case COSE_ES384: + ok = get_es384_hash(dgst, clientdata, &authdata); + break; + case COSE_EDDSA: + ok = get_eddsa_hash(dgst, clientdata, &authdata); + break; + default: + fido_log_debug("%s: unknown cose_alg", __func__); + break; } - - ok = 0; fail: if (item != NULL) cbor_decref(&item); - EVP_MD_CTX_free(ctx); - return (ok); } @@ -481,6 +550,9 @@ fido_assert_verify(const fido_assert_t *assert, size_t idx, int cose_alg, case COSE_ES256: ok = es256_pk_verify_sig(&dgst, pk, &stmt->sig); break; + case COSE_ES384: + ok = es384_pk_verify_sig(&dgst, pk, &stmt->sig); + break; case COSE_RS256: ok = rs256_pk_verify_sig(&dgst, pk, &stmt->sig); break; @@ -676,7 +748,8 @@ fido_assert_reset_tx(fido_assert_t *assert) assert->uv = FIDO_OPT_OMIT; } -static void fido_assert_reset_extattr(fido_assert_extattr_t *ext) +static void +fido_assert_reset_extattr(fido_assert_extattr_t *ext) { fido_blob_reset(&ext->hmac_secret_enc); fido_blob_reset(&ext->blob); diff --git a/src/authkey.c b/src/authkey.c index 33e0a8d44bd2..761562b26a1e 100644 --- a/src/authkey.c +++ b/src/authkey.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" @@ -60,22 +61,31 @@ fido_dev_authkey_tx(fido_dev_t *dev, int *ms) static int fido_dev_authkey_rx(fido_dev_t *dev, es256_pk_t *authkey, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; + unsigned char *msg; + int msglen; + int r; fido_log_debug("%s: dev=%p, authkey=%p, ms=%d", __func__, (void *)dev, (void *)authkey, *ms); memset(authkey, 0, sizeof(*authkey)); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - return (cbor_parse_reply(reply, (size_t)reply_len, authkey, - parse_authkey)); + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + r = cbor_parse_reply(msg, (size_t)msglen, authkey, parse_authkey); +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int diff --git a/src/bio.c b/src/bio.c index 8c52de5d76c3..57db85f53b23 100644 --- a/src/bio.c +++ b/src/bio.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" @@ -233,25 +234,34 @@ bio_parse_template_array(const cbor_item_t *key, const cbor_item_t *val, static int bio_rx_template_array(fido_dev_t *dev, fido_bio_template_array_t *ta, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; bio_reset_template_array(ta); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, ta, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, ta, bio_parse_template_array)) != FIDO_OK) { fido_log_debug("%s: bio_parse_template_array" , __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -385,33 +395,43 @@ static int bio_rx_enroll_begin(fido_dev_t *dev, fido_bio_template_t *t, fido_bio_enroll_t *e, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; bio_reset_template(t); e->remaining_samples = 0; e->last_status = 0; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, e, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, e, bio_parse_enroll_status)) != FIDO_OK) { fido_log_debug("%s: bio_parse_enroll_status", __func__); - return (r); - } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, &t->id, - bio_parse_template_id)) != FIDO_OK) { - fido_log_debug("%s: bio_parse_template_id", __func__); - return (r); + goto out; } - return (FIDO_OK); + if ((r = cbor_parse_reply(msg, (size_t)msglen, &t->id, + bio_parse_template_id)) != FIDO_OK) { + fido_log_debug("%s: bio_parse_template_id", __func__); + goto out; + } + + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -487,26 +507,35 @@ fido_bio_dev_enroll_begin(fido_dev_t *dev, fido_bio_template_t *t, static int bio_rx_enroll_continue(fido_dev_t *dev, fido_bio_enroll_t *e, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; e->remaining_samples = 0; e->last_status = 0; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, e, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, e, bio_parse_enroll_status)) != FIDO_OK) { fido_log_debug("%s: bio_parse_enroll_status", __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -654,25 +683,34 @@ bio_parse_info(const cbor_item_t *key, const cbor_item_t *val, void *arg) static int bio_rx_info(fido_dev_t *dev, fido_bio_info_t *i, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; bio_reset_info(i); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, i, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, i, bio_parse_info)) != FIDO_OK) { fido_log_debug("%s: bio_parse_info" , __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int diff --git a/src/blob.c b/src/blob.c index 31e4cab0edc4..b431f49a00fc 100644 --- a/src/blob.c +++ b/src/blob.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/blob.h b/src/blob.h index 76a8dd994f22..724718595513 100644 --- a/src/blob.h +++ b/src/blob.h @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _BLOB_H diff --git a/src/buf.c b/src/buf.c index f7161e64a9ca..42b6df1c24f1 100644 --- a/src/buf.c +++ b/src/buf.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/cbor.c b/src/cbor.c index 8b7edece3d8e..ab99b34da085 100644 --- a/src/cbor.c +++ b/src/cbor.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/hmac.h> @@ -998,7 +999,13 @@ get_cose_alg(const cbor_item_t *item, int *cose_alg) fido_log_debug("%s: invalid kty/crv", __func__); return (-1); } - + break; + case COSE_ES384: + if (cose_key.kty != COSE_KTY_EC2 || + cose_key.crv != COSE_P384) { + fido_log_debug("%s: invalid kty/crv", __func__); + return (-1); + } break; case COSE_EDDSA: if (cose_key.kty != COSE_KTY_OKP || @@ -1006,14 +1013,12 @@ get_cose_alg(const cbor_item_t *item, int *cose_alg) fido_log_debug("%s: invalid kty/crv", __func__); return (-1); } - break; case COSE_RS256: if (cose_key.kty != COSE_KTY_RSA) { fido_log_debug("%s: invalid kty/crv", __func__); return (-1); } - break; default: fido_log_debug("%s: unknown alg %d", __func__, cose_key.alg); @@ -1041,6 +1046,12 @@ cbor_decode_pubkey(const cbor_item_t *item, int *type, void *key) return (-1); } break; + case COSE_ES384: + if (es384_pk_decode(item, key) < 0) { + fido_log_debug("%s: es384_pk_decode", __func__); + return (-1); + } + break; case COSE_RS256: if (rs256_pk_decode(item, key) < 0) { fido_log_debug("%s: rs256_pk_decode", __func__); @@ -1135,10 +1146,8 @@ decode_cred_extension(const cbor_item_t *key, const cbor_item_t *val, void *arg) } if (strcmp(type, "hmac-secret") == 0) { - if (cbor_isa_float_ctrl(val) == false || - cbor_float_get_width(val) != CBOR_FLOAT_0 || - cbor_is_bool(val) == false) { - fido_log_debug("%s: cbor type", __func__); + if (cbor_decode_bool(val, NULL) < 0) { + fido_log_debug("%s: cbor_decode_bool", __func__); goto out; } if (cbor_ctrl_value(val) == CBOR_CTRL_TRUE) @@ -1152,10 +1161,8 @@ decode_cred_extension(const cbor_item_t *key, const cbor_item_t *val, void *arg) authdata_ext->mask |= FIDO_EXT_CRED_PROTECT; authdata_ext->prot = cbor_get_uint8(val); } else if (strcmp(type, "credBlob") == 0) { - if (cbor_isa_float_ctrl(val) == false || - cbor_float_get_width(val) != CBOR_FLOAT_0 || - cbor_is_bool(val) == false) { - fido_log_debug("%s: cbor type", __func__); + if (cbor_decode_bool(val, NULL) < 0) { + fido_log_debug("%s: cbor_decode_bool", __func__); goto out; } if (cbor_ctrl_value(val) == CBOR_CTRL_TRUE) @@ -1407,8 +1414,9 @@ decode_attstmt_entry(const cbor_item_t *key, const cbor_item_t *val, void *arg) goto out; } attstmt->alg = -(int)cbor_get_int(val) - 1; - if (attstmt->alg != COSE_ES256 && attstmt->alg != COSE_RS256 && - attstmt->alg != COSE_EDDSA && attstmt->alg != COSE_RS1) { + if (attstmt->alg != COSE_ES256 && attstmt->alg != COSE_ES384 && + attstmt->alg != COSE_RS256 && attstmt->alg != COSE_EDDSA && + attstmt->alg != COSE_RS1) { fido_log_debug("%s: unsupported attstmt->alg=%d", __func__, attstmt->alg); goto out; @@ -1619,6 +1627,22 @@ cbor_decode_rp_entity(const cbor_item_t *item, fido_rp_t *rp) return (0); } +int +cbor_decode_bool(const cbor_item_t *item, bool *v) +{ + if (cbor_isa_float_ctrl(item) == false || + cbor_float_get_width(item) != CBOR_FLOAT_0 || + cbor_is_bool(item) == false) { + fido_log_debug("%s: cbor type", __func__); + return (-1); + } + + if (v != NULL) + *v = cbor_ctrl_value(item) == CBOR_CTRL_TRUE; + + return (0); +} + cbor_item_t * cbor_build_uint(const uint64_t value) { diff --git a/src/compress.c b/src/compress.c index 074bca876489..3be6fd52fc3f 100644 --- a/src/compress.c +++ b/src/compress.c @@ -2,6 +2,7 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <zlib.h> diff --git a/src/config.c b/src/config.c index 2baaab0fd62c..5302e118b63f 100644 --- a/src/config.c +++ b/src/config.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" @@ -16,15 +17,17 @@ static int config_prepare_hmac(uint8_t subcmd, const cbor_item_t *item, fido_blob_t *hmac) { uint8_t prefix[32 + 2 * sizeof(uint8_t)], cbor[128]; - size_t cbor_len; + size_t cbor_len = 0; memset(prefix, 0xff, sizeof(prefix)); prefix[sizeof(prefix) - 2] = CTAP_CBOR_CONFIG; prefix[sizeof(prefix) - 1] = subcmd; - if ((cbor_len = cbor_serialize(item, cbor, sizeof(cbor))) == 0) { - fido_log_debug("%s: cbor_serialize", __func__); - return -1; + if (item != NULL) { + if ((cbor_len = cbor_serialize(item, cbor, sizeof(cbor))) == 0) { + fido_log_debug("%s: cbor_serialize", __func__); + return -1; + } } if ((hmac->ptr = malloc(cbor_len + sizeof(prefix))) == NULL) { fido_log_debug("%s: malloc", __func__); @@ -57,13 +60,16 @@ config_tx(fido_dev_t *dev, uint8_t subcmd, cbor_item_t **paramv, size_t paramc, goto fail; } + /* subCommandParams */ + if (paramc != 0 && + (argv[1] = cbor_flatten_vector(paramv, paramc)) == NULL) { + fido_log_debug("%s: cbor_flatten_vector", __func__); + goto fail; + } + /* pinProtocol, pinAuth */ - if (pin != NULL || (fido_dev_supports_permissions(dev) && - fido_dev_has_uv(dev))) { - if ((argv[1] = cbor_flatten_vector(paramv, paramc)) == NULL) { - fido_log_debug("%s: cbor_flatten_vector", __func__); - goto fail; - } + if (pin != NULL || + (fido_dev_supports_permissions(dev) && fido_dev_has_uv(dev))) { if (config_prepare_hmac(subcmd, argv[1], &hmac) < 0) { fido_log_debug("%s: config_prepare_hmac", __func__); goto fail; diff --git a/src/cred.c b/src/cred.c index 6da502c8d90a..188afe4e64aa 100644 --- a/src/cred.c +++ b/src/cred.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> @@ -251,7 +252,7 @@ get_signed_hash_u2f(fido_blob_t *dgst, const unsigned char *rp_id, EVP_MD_CTX *ctx = NULL; int ok = -1; - if (dgst->len != SHA256_DIGEST_LENGTH || + if (dgst->len < SHA256_DIGEST_LENGTH || (md = EVP_sha256()) == NULL || (ctx = EVP_MD_CTX_new()) == NULL || EVP_DigestInit_ex(ctx, md, NULL) != 1 || @@ -266,6 +267,7 @@ get_signed_hash_u2f(fido_blob_t *dgst, const unsigned char *rp_id, fido_log_debug("%s: sha256", __func__); goto fail; } + dgst->len = SHA256_DIGEST_LENGTH; ok = 0; fail: @@ -302,6 +304,9 @@ verify_attstmt(const fido_blob_t *dgst, const fido_attstmt_t *attstmt) case COSE_ES256: ok = es256_verify_sig(dgst, pkey, &attstmt->sig); break; + case COSE_ES384: + ok = es384_verify_sig(dgst, pkey, &attstmt->sig); + break; case COSE_RS256: ok = rs256_verify_sig(dgst, pkey, &attstmt->sig); break; @@ -327,8 +332,9 @@ verify_attstmt(const fido_blob_t *dgst, const fido_attstmt_t *attstmt) int fido_cred_verify(const fido_cred_t *cred) { - unsigned char buf[SHA256_DIGEST_LENGTH]; + unsigned char buf[1024]; /* XXX */ fido_blob_t dgst; + int cose_alg; int r; dgst.ptr = buf; @@ -368,8 +374,11 @@ fido_cred_verify(const fido_cred_t *cred) goto out; } + if ((cose_alg = cred->attstmt.alg) == COSE_UNSPEC) + cose_alg = COSE_ES256; /* backwards compat */ + if (!strcmp(cred->fmt, "packed")) { - if (fido_get_signed_hash(COSE_ES256, &dgst, &cred->cdh, + if (fido_get_signed_hash(cose_alg, &dgst, &cred->cdh, &cred->authdata_cbor) < 0) { fido_log_debug("%s: fido_get_signed_hash", __func__); r = FIDO_ERR_INTERNAL; @@ -480,6 +489,10 @@ fido_cred_verify_self(const fido_cred_t *cred) ok = es256_pk_verify_sig(&dgst, &cred->attcred.pubkey.es256, &cred->attstmt.sig); break; + case COSE_ES384: + ok = es384_pk_verify_sig(&dgst, &cred->attcred.pubkey.es384, + &cred->attstmt.sig); + break; case COSE_RS256: ok = rs256_pk_verify_sig(&dgst, &cred->attcred.pubkey.rs256, &cred->attstmt.sig); @@ -965,8 +978,10 @@ fido_cred_set_fmt(fido_cred_t *cred, const char *fmt) int fido_cred_set_type(fido_cred_t *cred, int cose_alg) { - if ((cose_alg != COSE_ES256 && cose_alg != COSE_RS256 && - cose_alg != COSE_EDDSA) || cred->type != 0) + if (cred->type != 0) + return (FIDO_ERR_INVALID_ARGUMENT); + if (cose_alg != COSE_ES256 && cose_alg != COSE_ES384 && + cose_alg != COSE_RS256 && cose_alg != COSE_EDDSA) return (FIDO_ERR_INVALID_ARGUMENT); cred->type = cose_alg; @@ -1073,6 +1088,9 @@ fido_cred_pubkey_ptr(const fido_cred_t *cred) case COSE_ES256: ptr = &cred->attcred.pubkey.es256; break; + case COSE_ES384: + ptr = &cred->attcred.pubkey.es384; + break; case COSE_RS256: ptr = &cred->attcred.pubkey.rs256; break; @@ -1096,6 +1114,9 @@ fido_cred_pubkey_len(const fido_cred_t *cred) case COSE_ES256: len = sizeof(cred->attcred.pubkey.es256); break; + case COSE_ES384: + len = sizeof(cred->attcred.pubkey.es384); + break; case COSE_RS256: len = sizeof(cred->attcred.pubkey.rs256); break; diff --git a/src/credman.c b/src/credman.c index 8d2649a144f2..c36424233816 100644 --- a/src/credman.c +++ b/src/credman.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> @@ -19,7 +20,7 @@ #define CMD_UPDATE_CRED 0x07 static int -credman_grow_array(void **ptr, size_t *n_alloc, size_t *n_rx, size_t n, +credman_grow_array(void **ptr, size_t *n_alloc, const size_t *n_rx, size_t n, size_t size) { void *new_ptr; @@ -200,25 +201,34 @@ credman_parse_metadata(const cbor_item_t *key, const cbor_item_t *val, static int credman_rx_metadata(fido_dev_t *dev, fido_credman_metadata_t *metadata, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; memset(metadata, 0, sizeof(*metadata)); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, metadata, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, metadata, credman_parse_metadata)) != FIDO_OK) { fido_log_debug("%s: credman_parse_metadata", __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -325,69 +335,88 @@ credman_parse_rk_count(const cbor_item_t *key, const cbor_item_t *val, static int credman_rx_rk(fido_dev_t *dev, fido_credman_rk_t *rk, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; credman_reset_rk(rk); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } /* adjust as needed */ - if ((r = cbor_parse_reply(reply, (size_t)reply_len, rk, + if ((r = cbor_parse_reply(msg, (size_t)msglen, rk, credman_parse_rk_count)) != FIDO_OK) { fido_log_debug("%s: credman_parse_rk_count", __func__); - return (r); + goto out; } if (rk->n_alloc == 0) { fido_log_debug("%s: n_alloc=0", __func__); - return (FIDO_OK); + r = FIDO_OK; + goto out; } /* parse the first rk */ - if ((r = cbor_parse_reply(reply, (size_t)reply_len, &rk->ptr[0], + if ((r = cbor_parse_reply(msg, (size_t)msglen, &rk->ptr[0], credman_parse_rk)) != FIDO_OK) { fido_log_debug("%s: credman_parse_rk", __func__); - return (r); + goto out; } + rk->n_rx = 1; - rk->n_rx++; + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); - return (FIDO_OK); + return (r); } static int credman_rx_next_rk(fido_dev_t *dev, fido_credman_rk_t *rk, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } /* sanity check */ if (rk->n_rx >= rk->n_alloc) { fido_log_debug("%s: n_rx=%zu, n_alloc=%zu", __func__, rk->n_rx, rk->n_alloc); - return (FIDO_ERR_INTERNAL); + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, &rk->ptr[rk->n_rx], + if ((r = cbor_parse_reply(msg, (size_t)msglen, &rk->ptr[rk->n_rx], credman_parse_rk)) != FIDO_OK) { fido_log_debug("%s: credman_parse_rk", __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -534,69 +563,88 @@ credman_parse_rp_count(const cbor_item_t *key, const cbor_item_t *val, static int credman_rx_rp(fido_dev_t *dev, fido_credman_rp_t *rp, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; credman_reset_rp(rp); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } /* adjust as needed */ - if ((r = cbor_parse_reply(reply, (size_t)reply_len, rp, + if ((r = cbor_parse_reply(msg, (size_t)msglen, rp, credman_parse_rp_count)) != FIDO_OK) { fido_log_debug("%s: credman_parse_rp_count", __func__); - return (r); + goto out; } if (rp->n_alloc == 0) { fido_log_debug("%s: n_alloc=0", __func__); - return (FIDO_OK); + r = FIDO_OK; + goto out; } /* parse the first rp */ - if ((r = cbor_parse_reply(reply, (size_t)reply_len, &rp->ptr[0], + if ((r = cbor_parse_reply(msg, (size_t)msglen, &rp->ptr[0], credman_parse_rp)) != FIDO_OK) { fido_log_debug("%s: credman_parse_rp", __func__); - return (r); + goto out; } + rp->n_rx = 1; - rp->n_rx++; + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); - return (FIDO_OK); + return (r); } static int credman_rx_next_rp(fido_dev_t *dev, fido_credman_rp_t *rp, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } /* sanity check */ if (rp->n_rx >= rp->n_alloc) { fido_log_debug("%s: n_rx=%zu, n_alloc=%zu", __func__, rp->n_rx, rp->n_alloc); - return (FIDO_ERR_INTERNAL); + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, &rp->ptr[rp->n_rx], + if ((r = cbor_parse_reply(msg, (size_t)msglen, &rp->ptr[rp->n_rx], credman_parse_rp)) != FIDO_OK) { fido_log_debug("%s: credman_parse_rp", __func__); - return (r); + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int diff --git a/src/dev.c b/src/dev.c index 635e41714759..2d662a6cc48b 100644 --- a/src/dev.c +++ b/src/dev.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/diff_exports.sh b/src/diff_exports.sh index 9cff0095a201..2e15cd0c5b9b 100755 --- a/src/diff_exports.sh +++ b/src/diff_exports.sh @@ -3,6 +3,7 @@ # Copyright (c) 2018 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause for f in export.gnu export.llvm export.msvc; do if [ ! -f "${f}" ]; then diff --git a/src/ecdh.c b/src/ecdh.c index 9c4f2b99e1a9..878f97615e3f 100644 --- a/src/ecdh.c +++ b/src/ecdh.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/evp.h> diff --git a/src/eddsa.c b/src/eddsa.c index a94ae3023917..d043f89f9f37 100644 --- a/src/eddsa.c +++ b/src/eddsa.c @@ -2,6 +2,7 @@ * Copyright (c) 2019-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/bn.h> diff --git a/src/err.c b/src/err.c index 8c2ae5ff4170..3a6f3e0a6124 100644 --- a/src/err.c +++ b/src/err.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido/err.h" diff --git a/src/es256.c b/src/es256.c index 4d6e86f8a26d..17efb0ad2c16 100644 --- a/src/es256.c +++ b/src/es256.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/bn.h> diff --git a/src/es384.c b/src/es384.c new file mode 100644 index 000000000000..013d285ef7f0 --- /dev/null +++ b/src/es384.c @@ -0,0 +1,296 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include <openssl/bn.h> +#include <openssl/ecdsa.h> +#include <openssl/obj_mac.h> + +#include "fido.h" +#include "fido/es384.h" + +#if OPENSSL_VERSION_NUMBER >= 0x30000000 +#define get0_EC_KEY(x) EVP_PKEY_get0_EC_KEY((x)) +#else +#define get0_EC_KEY(x) EVP_PKEY_get0((x)) +#endif + +static int +decode_coord(const cbor_item_t *item, void *xy, size_t xy_len) +{ + if (cbor_isa_bytestring(item) == false || + cbor_bytestring_is_definite(item) == false || + cbor_bytestring_length(item) != xy_len) { + fido_log_debug("%s: cbor type", __func__); + return (-1); + } + + memcpy(xy, cbor_bytestring_handle(item), xy_len); + + return (0); +} + +static int +decode_pubkey_point(const cbor_item_t *key, const cbor_item_t *val, void *arg) +{ + es384_pk_t *k = arg; + + if (cbor_isa_negint(key) == false || + cbor_int_get_width(key) != CBOR_INT_8) + return (0); /* ignore */ + + switch (cbor_get_uint8(key)) { + case 1: /* x coordinate */ + return (decode_coord(val, &k->x, sizeof(k->x))); + case 2: /* y coordinate */ + return (decode_coord(val, &k->y, sizeof(k->y))); + } + + return (0); /* ignore */ +} + +int +es384_pk_decode(const cbor_item_t *item, es384_pk_t *k) +{ + if (cbor_isa_map(item) == false || + cbor_map_is_definite(item) == false || + cbor_map_iter(item, k, decode_pubkey_point) < 0) { + fido_log_debug("%s: cbor type", __func__); + return (-1); + } + + return (0); +} + +es384_pk_t * +es384_pk_new(void) +{ + return (calloc(1, sizeof(es384_pk_t))); +} + +void +es384_pk_free(es384_pk_t **pkp) +{ + es384_pk_t *pk; + + if (pkp == NULL || (pk = *pkp) == NULL) + return; + + freezero(pk, sizeof(*pk)); + *pkp = NULL; +} + +int +es384_pk_from_ptr(es384_pk_t *pk, const void *ptr, size_t len) +{ + const uint8_t *p = ptr; + EVP_PKEY *pkey; + + if (len < sizeof(*pk)) + return (FIDO_ERR_INVALID_ARGUMENT); + + if (len == sizeof(*pk) + 1 && *p == 0x04) + memcpy(pk, ++p, sizeof(*pk)); /* uncompressed format */ + else + memcpy(pk, ptr, sizeof(*pk)); /* libfido2 x||y format */ + + if ((pkey = es384_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: es384_pk_to_EVP_PKEY", __func__); + explicit_bzero(pk, sizeof(*pk)); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + + return (FIDO_OK); +} + +EVP_PKEY * +es384_pk_to_EVP_PKEY(const es384_pk_t *k) +{ + BN_CTX *bnctx = NULL; + EC_KEY *ec = NULL; + EC_POINT *q = NULL; + EVP_PKEY *pkey = NULL; + BIGNUM *x = NULL; + BIGNUM *y = NULL; + const EC_GROUP *g = NULL; + int ok = -1; + + if ((bnctx = BN_CTX_new()) == NULL) + goto fail; + + BN_CTX_start(bnctx); + + if ((x = BN_CTX_get(bnctx)) == NULL || + (y = BN_CTX_get(bnctx)) == NULL) + goto fail; + + if (BN_bin2bn(k->x, sizeof(k->x), x) == NULL || + BN_bin2bn(k->y, sizeof(k->y), y) == NULL) { + fido_log_debug("%s: BN_bin2bn", __func__); + goto fail; + } + + if ((ec = EC_KEY_new_by_curve_name(NID_secp384r1)) == NULL || + (g = EC_KEY_get0_group(ec)) == NULL) { + fido_log_debug("%s: EC_KEY init", __func__); + goto fail; + } + + if ((q = EC_POINT_new(g)) == NULL || + EC_POINT_set_affine_coordinates_GFp(g, q, x, y, bnctx) == 0 || + EC_KEY_set_public_key(ec, q) == 0) { + fido_log_debug("%s: EC_KEY_set_public_key", __func__); + goto fail; + } + + if ((pkey = EVP_PKEY_new()) == NULL || + EVP_PKEY_assign_EC_KEY(pkey, ec) == 0) { + fido_log_debug("%s: EVP_PKEY_assign_EC_KEY", __func__); + goto fail; + } + + ec = NULL; /* at this point, ec belongs to evp */ + + ok = 0; +fail: + if (bnctx != NULL) { + BN_CTX_end(bnctx); + BN_CTX_free(bnctx); + } + + if (ec != NULL) + EC_KEY_free(ec); + if (q != NULL) + EC_POINT_free(q); + + if (ok < 0 && pkey != NULL) { + EVP_PKEY_free(pkey); + pkey = NULL; + } + + return (pkey); +} + +int +es384_pk_from_EC_KEY(es384_pk_t *pk, const EC_KEY *ec) +{ + BN_CTX *bnctx = NULL; + BIGNUM *x = NULL; + BIGNUM *y = NULL; + const EC_POINT *q = NULL; + EC_GROUP *g = NULL; + size_t dx; + size_t dy; + int ok = FIDO_ERR_INTERNAL; + int nx; + int ny; + + if ((q = EC_KEY_get0_public_key(ec)) == NULL || + (g = EC_GROUP_new_by_curve_name(NID_secp384r1)) == NULL || + (bnctx = BN_CTX_new()) == NULL) + goto fail; + + BN_CTX_start(bnctx); + + if ((x = BN_CTX_get(bnctx)) == NULL || + (y = BN_CTX_get(bnctx)) == NULL) + goto fail; + + if (EC_POINT_is_on_curve(g, q, bnctx) != 1) { + fido_log_debug("%s: EC_POINT_is_on_curve", __func__); + ok = FIDO_ERR_INVALID_ARGUMENT; + goto fail; + } + + if (EC_POINT_get_affine_coordinates_GFp(g, q, x, y, bnctx) == 0 || + (nx = BN_num_bytes(x)) < 0 || (size_t)nx > sizeof(pk->x) || + (ny = BN_num_bytes(y)) < 0 || (size_t)ny > sizeof(pk->y)) { + fido_log_debug("%s: EC_POINT_get_affine_coordinates_GFp", + __func__); + goto fail; + } + + dx = sizeof(pk->x) - (size_t)nx; + dy = sizeof(pk->y) - (size_t)ny; + + if ((nx = BN_bn2bin(x, pk->x + dx)) < 0 || (size_t)nx > sizeof(pk->x) || + (ny = BN_bn2bin(y, pk->y + dy)) < 0 || (size_t)ny > sizeof(pk->y)) { + fido_log_debug("%s: BN_bn2bin", __func__); + goto fail; + } + + ok = FIDO_OK; +fail: + EC_GROUP_free(g); + + if (bnctx != NULL) { + BN_CTX_end(bnctx); + BN_CTX_free(bnctx); + } + + return (ok); +} + +int +es384_pk_from_EVP_PKEY(es384_pk_t *pk, const EVP_PKEY *pkey) +{ + const EC_KEY *ec; + + if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC || + (ec = get0_EC_KEY(pkey)) == NULL) + return (FIDO_ERR_INVALID_ARGUMENT); + + return (es384_pk_from_EC_KEY(pk, ec)); +} + +int +es384_verify_sig(const fido_blob_t *dgst, EVP_PKEY *pkey, + const fido_blob_t *sig) +{ + EVP_PKEY_CTX *pctx = NULL; + int ok = -1; + + if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC) { + fido_log_debug("%s: EVP_PKEY_base_id", __func__); + goto fail; + } + + if ((pctx = EVP_PKEY_CTX_new(pkey, NULL)) == NULL || + EVP_PKEY_verify_init(pctx) != 1 || + EVP_PKEY_verify(pctx, sig->ptr, sig->len, dgst->ptr, + dgst->len) != 1) { + fido_log_debug("%s: EVP_PKEY_verify", __func__); + goto fail; + } + + ok = 0; +fail: + EVP_PKEY_CTX_free(pctx); + + return (ok); +} + +int +es384_pk_verify_sig(const fido_blob_t *dgst, const es384_pk_t *pk, + const fido_blob_t *sig) +{ + EVP_PKEY *pkey; + int ok = -1; + + if ((pkey = es384_pk_to_EVP_PKEY(pk)) == NULL || + es384_verify_sig(dgst, pkey, sig) < 0) { + fido_log_debug("%s: es384_verify_sig", __func__); + goto fail; + } + + ok = 0; +fail: + EVP_PKEY_free(pkey); + + return (ok); +} diff --git a/src/export.gnu b/src/export.gnu index 8fc94af31c92..6916837ecbcc 100644 --- a/src/export.gnu +++ b/src/export.gnu @@ -11,6 +11,12 @@ es256_pk_from_ptr; es256_pk_new; es256_pk_to_EVP_PKEY; + es384_pk_free; + es384_pk_from_EC_KEY; + es384_pk_from_EVP_PKEY; + es384_pk_from_ptr; + es384_pk_new; + es384_pk_to_EVP_PKEY; fido_assert_allow_cred; fido_assert_authdata_len; fido_assert_authdata_ptr; @@ -82,23 +88,32 @@ fido_cbor_info_algorithm_cose; fido_cbor_info_algorithm_count; fido_cbor_info_algorithm_type; + fido_cbor_info_certs_len; + fido_cbor_info_certs_name_ptr; + fido_cbor_info_certs_value_ptr; fido_cbor_info_extensions_len; fido_cbor_info_extensions_ptr; fido_cbor_info_free; + fido_cbor_info_fwversion; fido_cbor_info_maxcredbloblen; fido_cbor_info_maxcredcntlst; fido_cbor_info_maxcredidlen; fido_cbor_info_maxlargeblob; fido_cbor_info_maxmsgsiz; - fido_cbor_info_fwversion; + fido_cbor_info_maxrpid_minpinlen; + fido_cbor_info_minpinlen; fido_cbor_info_new; + fido_cbor_info_new_pin_required; fido_cbor_info_options_len; fido_cbor_info_options_name_ptr; fido_cbor_info_options_value_ptr; fido_cbor_info_protocols_len; fido_cbor_info_protocols_ptr; + fido_cbor_info_rk_remaining; fido_cbor_info_transports_len; fido_cbor_info_transports_ptr; + fido_cbor_info_uv_attempts; + fido_cbor_info_uv_modality; fido_cbor_info_versions_len; fido_cbor_info_versions_ptr; fido_cred_attstmt_len; diff --git a/src/export.llvm b/src/export.llvm index df9a667f7477..bd21fb4a54f7 100644 --- a/src/export.llvm +++ b/src/export.llvm @@ -9,6 +9,12 @@ _es256_pk_from_EVP_PKEY _es256_pk_from_ptr _es256_pk_new _es256_pk_to_EVP_PKEY +_es384_pk_free +_es384_pk_from_EC_KEY +_es384_pk_from_EVP_PKEY +_es384_pk_from_ptr +_es384_pk_new +_es384_pk_to_EVP_PKEY _fido_assert_allow_cred _fido_assert_authdata_len _fido_assert_authdata_ptr @@ -80,23 +86,32 @@ _fido_cbor_info_aaguid_ptr _fido_cbor_info_algorithm_cose _fido_cbor_info_algorithm_count _fido_cbor_info_algorithm_type +_fido_cbor_info_certs_len +_fido_cbor_info_certs_name_ptr +_fido_cbor_info_certs_value_ptr _fido_cbor_info_extensions_len _fido_cbor_info_extensions_ptr _fido_cbor_info_free +_fido_cbor_info_fwversion _fido_cbor_info_maxcredbloblen _fido_cbor_info_maxcredcntlst _fido_cbor_info_maxcredidlen _fido_cbor_info_maxlargeblob _fido_cbor_info_maxmsgsiz -_fido_cbor_info_fwversion +_fido_cbor_info_maxrpid_minpinlen +_fido_cbor_info_minpinlen _fido_cbor_info_new +_fido_cbor_info_new_pin_required _fido_cbor_info_options_len _fido_cbor_info_options_name_ptr _fido_cbor_info_options_value_ptr _fido_cbor_info_protocols_len _fido_cbor_info_protocols_ptr +_fido_cbor_info_rk_remaining _fido_cbor_info_transports_len _fido_cbor_info_transports_ptr +_fido_cbor_info_uv_attempts +_fido_cbor_info_uv_modality _fido_cbor_info_versions_len _fido_cbor_info_versions_ptr _fido_cred_attstmt_len diff --git a/src/export.msvc b/src/export.msvc index a9082152f5cc..55147f99e67f 100644 --- a/src/export.msvc +++ b/src/export.msvc @@ -10,6 +10,12 @@ es256_pk_from_EVP_PKEY es256_pk_from_ptr es256_pk_new es256_pk_to_EVP_PKEY +es384_pk_free +es384_pk_from_EC_KEY +es384_pk_from_EVP_PKEY +es384_pk_from_ptr +es384_pk_new +es384_pk_to_EVP_PKEY fido_assert_allow_cred fido_assert_authdata_len fido_assert_authdata_ptr @@ -81,23 +87,32 @@ fido_cbor_info_aaguid_ptr fido_cbor_info_algorithm_cose fido_cbor_info_algorithm_count fido_cbor_info_algorithm_type +fido_cbor_info_certs_len +fido_cbor_info_certs_name_ptr +fido_cbor_info_certs_value_ptr fido_cbor_info_extensions_len fido_cbor_info_extensions_ptr fido_cbor_info_free +fido_cbor_info_fwversion fido_cbor_info_maxcredbloblen fido_cbor_info_maxcredcntlst fido_cbor_info_maxcredidlen fido_cbor_info_maxlargeblob fido_cbor_info_maxmsgsiz -fido_cbor_info_fwversion +fido_cbor_info_maxrpid_minpinlen +fido_cbor_info_minpinlen fido_cbor_info_new +fido_cbor_info_new_pin_required fido_cbor_info_options_len fido_cbor_info_options_name_ptr fido_cbor_info_options_value_ptr fido_cbor_info_protocols_len fido_cbor_info_protocols_ptr +fido_cbor_info_rk_remaining fido_cbor_info_transports_len fido_cbor_info_transports_ptr +fido_cbor_info_uv_attempts +fido_cbor_info_uv_modality fido_cbor_info_versions_len fido_cbor_info_versions_ptr fido_cred_attstmt_len diff --git a/src/extern.h b/src/extern.h index 84536d58b6f8..1bc95b27805d 100644 --- a/src/extern.h +++ b/src/extern.h @@ -2,6 +2,7 @@ * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _EXTERN_H @@ -57,6 +58,7 @@ cbor_item_t *es256_pk_encode(const es256_pk_t *, int); /* cbor decoding functions */ int cbor_decode_attstmt(const cbor_item_t *, fido_attstmt_t *); +int cbor_decode_bool(const cbor_item_t *, bool *); int cbor_decode_cred_authdata(const cbor_item_t *, int, fido_blob_t *, fido_authdata_t *, fido_attcred_t *, fido_cred_ext_t *); int cbor_decode_assert_authdata(const cbor_item_t *, fido_blob_t *, @@ -68,6 +70,7 @@ int cbor_decode_rp_entity(const cbor_item_t *, fido_rp_t *); int cbor_decode_uint64(const cbor_item_t *, uint64_t *); int cbor_decode_user(const cbor_item_t *, fido_user_t *); int es256_pk_decode(const cbor_item_t *, es256_pk_t *); +int es384_pk_decode(const cbor_item_t *, es384_pk_t *); int rs256_pk_decode(const cbor_item_t *, rs256_pk_t *); int eddsa_pk_decode(const cbor_item_t *, eddsa_pk_t *); @@ -119,6 +122,7 @@ size_t fido_hid_report_out_len(void *); /* nfc i/o */ bool fido_is_nfc(const char *); +bool nfc_is_fido(const char *); void *fido_nfc_open(const char *); void fido_nfc_close(void *); int fido_nfc_read(void *, unsigned char *, size_t, int); @@ -194,6 +198,7 @@ int fido_do_ecdh(fido_dev_t *, es256_pk_t **, fido_blob_t **, int *); /* types */ void fido_algo_array_free(fido_algo_array_t *); void fido_byte_array_free(fido_byte_array_t *); +void fido_cert_array_free(fido_cert_array_t *); void fido_opt_array_free(fido_opt_array_t *); void fido_str_array_free(fido_str_array_t *); void fido_algo_free(fido_algo_t *); @@ -216,11 +221,14 @@ int fido_to_uint64(const char *, int, uint64_t *); /* crypto */ int es256_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); +int es384_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); int rs256_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); int eddsa_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); int rs1_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); int es256_pk_verify_sig(const fido_blob_t *, const es256_pk_t *, const fido_blob_t *); +int es384_pk_verify_sig(const fido_blob_t *, const es384_pk_t *, + const fido_blob_t *); int rs256_pk_verify_sig(const fido_blob_t *, const rs256_pk_t *, const fido_blob_t *); int eddsa_pk_verify_sig(const fido_blob_t *, const eddsa_pk_t *, diff --git a/src/fallthrough.h b/src/fallthrough.h new file mode 100644 index 000000000000..bdfd30fd63eb --- /dev/null +++ b/src/fallthrough.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef _FALLTHROUGH_H +#define _FALLTHROUGH_H + +#if defined(__GNUC__) +#if __has_attribute(fallthrough) +#define FALLTHROUGH __attribute__((fallthrough)); +#endif +#endif /* __GNUC__ */ + +#ifndef FALLTHROUGH +#define FALLTHROUGH /* FALLTHROUGH */ +#endif + +#endif /* !_FALLTHROUGH_H */ diff --git a/src/fido.h b/src/fido.h index 63d6de87b5aa..ce7da160619e 100644 --- a/src/fido.h +++ b/src/fido.h @@ -1,7 +1,29 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_H @@ -66,6 +88,7 @@ const unsigned char *fido_assert_sig_ptr(const fido_assert_t *, size_t); const unsigned char *fido_assert_user_id_ptr(const fido_assert_t *, size_t); const unsigned char *fido_assert_blob_ptr(const fido_assert_t *, size_t); +char **fido_cbor_info_certs_name_ptr(const fido_cbor_info_t *); char **fido_cbor_info_extensions_ptr(const fido_cbor_info_t *); char **fido_cbor_info_options_name_ptr(const fido_cbor_info_t *); char **fido_cbor_info_transports_ptr(const fido_cbor_info_t *); @@ -86,6 +109,7 @@ const char *fido_dev_info_path(const fido_dev_info_t *); const char *fido_dev_info_product_string(const fido_dev_info_t *); const fido_dev_info_t *fido_dev_info_ptr(const fido_dev_info_t *, size_t); const uint8_t *fido_cbor_info_protocols_ptr(const fido_cbor_info_t *); +const uint64_t *fido_cbor_info_certs_value_ptr(const fido_cbor_info_t *); const unsigned char *fido_cbor_info_aaguid_ptr(const fido_cbor_info_t *); const unsigned char *fido_cred_aaguid_ptr(const fido_cred_t *); const unsigned char *fido_cred_attstmt_ptr(const fido_cred_t *); @@ -178,6 +202,7 @@ size_t fido_assert_user_id_len(const fido_assert_t *, size_t); size_t fido_assert_blob_len(const fido_assert_t *, size_t); size_t fido_cbor_info_aaguid_len(const fido_cbor_info_t *); size_t fido_cbor_info_algorithm_count(const fido_cbor_info_t *); +size_t fido_cbor_info_certs_len(const fido_cbor_info_t *); size_t fido_cbor_info_extensions_len(const fido_cbor_info_t *); size_t fido_cbor_info_options_len(const fido_cbor_info_t *); size_t fido_cbor_info_protocols_len(const fido_cbor_info_t *); @@ -207,12 +232,17 @@ uint8_t fido_dev_build(const fido_dev_t *); uint8_t fido_dev_flags(const fido_dev_t *); int16_t fido_dev_info_vendor(const fido_dev_info_t *); int16_t fido_dev_info_product(const fido_dev_info_t *); +uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredbloblen(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredcntlst(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredidlen(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxlargeblob(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxmsgsiz(const fido_cbor_info_t *); -uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *); +uint64_t fido_cbor_info_maxrpid_minpinlen(const fido_cbor_info_t *); +uint64_t fido_cbor_info_minpinlen(const fido_cbor_info_t *); +uint64_t fido_cbor_info_uv_attempts(const fido_cbor_info_t *); +uint64_t fido_cbor_info_uv_modality(const fido_cbor_info_t *); +int64_t fido_cbor_info_rk_remaining(const fido_cbor_info_t *); bool fido_dev_has_pin(const fido_dev_t *); bool fido_dev_has_uv(const fido_dev_t *); @@ -223,6 +253,7 @@ bool fido_dev_supports_cred_prot(const fido_dev_t *); bool fido_dev_supports_permissions(const fido_dev_t *); bool fido_dev_supports_pin(const fido_dev_t *); bool fido_dev_supports_uv(const fido_dev_t *); +bool fido_cbor_info_new_pin_required(const fido_cbor_info_t *); int fido_dev_largeblob_get(fido_dev_t *, const unsigned char *, size_t, unsigned char **, size_t *); diff --git a/src/fido/bio.h b/src/fido/bio.h index afe9ca4752b4..f5039e03dc90 100644 --- a/src/fido/bio.h +++ b/src/fido/bio.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2019 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_BIO_H diff --git a/src/fido/config.h b/src/fido/config.h index d8134a3c7b6c..cba286f08f88 100644 --- a/src/fido/config.h +++ b/src/fido/config.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2020 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_CONFIG_H diff --git a/src/fido/credman.h b/src/fido/credman.h index 66a966970501..9f9dff1d5f05 100644 --- a/src/fido/credman.h +++ b/src/fido/credman.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2019-2021 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_CREDMAN_H diff --git a/src/fido/eddsa.h b/src/fido/eddsa.h index 083721cc3d3f..7981a6f8bae3 100644 --- a/src/fido/eddsa.h +++ b/src/fido/eddsa.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2019 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_EDDSA_H diff --git a/src/fido/err.h b/src/fido/err.h index 74fdf9d2bfe8..7db25f269126 100644 --- a/src/fido/err.h +++ b/src/fido/err.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2018 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_ERR_H diff --git a/src/fido/es256.h b/src/fido/es256.h index 683494dadfe2..0450de29e831 100644 --- a/src/fido/es256.h +++ b/src/fido/es256.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2018-2021 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_ES256_H diff --git a/src/fido/es384.h b/src/fido/es384.h new file mode 100644 index 000000000000..b4b4ca71ccbe --- /dev/null +++ b/src/fido/es384.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Yubico AB. All rights reserved. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_ES384_H +#define _FIDO_ES384_H + +#include <openssl/ec.h> + +#include <stdint.h> +#include <stdlib.h> + +#ifdef _FIDO_INTERNAL +#include "types.h" +#else +#include <fido.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +es384_pk_t *es384_pk_new(void); +void es384_pk_free(es384_pk_t **); +EVP_PKEY *es384_pk_to_EVP_PKEY(const es384_pk_t *); + +int es384_pk_from_EC_KEY(es384_pk_t *, const EC_KEY *); +int es384_pk_from_EVP_PKEY(es384_pk_t *, const EVP_PKEY *); +int es384_pk_from_ptr(es384_pk_t *, const void *, size_t); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* !_FIDO_ES384_H */ diff --git a/src/fido/param.h b/src/fido/param.h index 7c6db98cfd5d..511370bca272 100644 --- a/src/fido/param.h +++ b/src/fido/param.h @@ -1,7 +1,29 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_PARAM_H @@ -82,12 +104,13 @@ #define FIDO_CAP_NMSG 0x08 /* if set, device doesn't support CTAP_CMD_MSG */ /* Supported COSE algorithms. */ -#define COSE_UNSPEC 0 -#define COSE_ES256 -7 -#define COSE_EDDSA -8 -#define COSE_ECDH_ES256 -25 -#define COSE_RS256 -257 -#define COSE_RS1 -65535 +#define COSE_UNSPEC 0 +#define COSE_ES256 -7 +#define COSE_EDDSA -8 +#define COSE_ECDH_ES256 -25 +#define COSE_ES384 -35 +#define COSE_RS256 -257 +#define COSE_RS1 -65535 /* Supported COSE types. */ #define COSE_KTY_OKP 1 @@ -96,6 +119,7 @@ /* Supported curves. */ #define COSE_P256 1 +#define COSE_P384 2 #define COSE_ED25519 6 /* Supported extensions. */ @@ -118,4 +142,19 @@ FIDO_EXT_MINPINLEN) #endif /* _FIDO_INTERNAL */ +/* Recognised UV modes. */ +#define FIDO_UV_MODE_TUP 0x0001 /* internal test of user presence */ +#define FIDO_UV_MODE_FP 0x0002 /* internal fingerprint check */ +#define FIDO_UV_MODE_PIN 0x0004 /* internal pin check */ +#define FIDO_UV_MODE_VOICE 0x0008 /* internal voice recognition */ +#define FIDO_UV_MODE_FACE 0x0010 /* internal face recognition */ +#define FIDO_UV_MODE_LOCATION 0x0020 /* internal location check */ +#define FIDO_UV_MODE_EYE 0x0040 /* internal eyeprint check */ +#define FIDO_UV_MODE_DRAWN 0x0080 /* internal drawn pattern check */ +#define FIDO_UV_MODE_HAND 0x0100 /* internal handprint verification */ +#define FIDO_UV_MODE_NONE 0x0200 /* TUP/UV not required */ +#define FIDO_UV_MODE_ALL 0x0400 /* all supported UV modes required */ +#define FIDO_UV_MODE_EXT_PIN 0x0800 /* external pin verification */ +#define FIDO_UV_MODE_EXT_DRAWN 0x1000 /* external drawn pattern check */ + #endif /* !_FIDO_PARAM_H */ diff --git a/src/fido/rs256.h b/src/fido/rs256.h index 039816191783..6f8c78195f8d 100644 --- a/src/fido/rs256.h +++ b/src/fido/rs256.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2018-2021 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_RS256_H diff --git a/src/fido/types.h b/src/fido/types.h index 593a6a6b4813..cfb4c7a75315 100644 --- a/src/fido/types.h +++ b/src/fido/types.h @@ -1,7 +1,29 @@ /* * Copyright (c) 2018-2022 Yubico AB. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause + * + * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 COPYRIGHT + * HOLDER OR CONTRIBUTORS 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 _FIDO_TYPES_H @@ -73,6 +95,12 @@ typedef struct es256_sk { unsigned char d[32]; } es256_sk_t; +/* COSE ES384 (ECDSA over P-384 with SHA-384) public key */ +typedef struct es384_pk { + unsigned char x[48]; + unsigned char y[48]; +} es384_pk_t; + /* COSE RS256 (2048-bit RSA with PKCS1 padding and SHA-256) public key */ typedef struct rs256_pk { unsigned char n[256]; @@ -105,6 +133,7 @@ typedef struct fido_attcred { int type; /* credential's cose algorithm */ union { /* credential's public key */ es256_pk_t es256; + es384_pk_t es384; rs256_pk_t rs256; eddsa_pk_t eddsa; } pubkey; @@ -219,6 +248,12 @@ typedef struct fido_algo_array { size_t len; } fido_algo_array_t; +typedef struct fido_cert_array { + char **name; + uint64_t *value; + size_t len; +} fido_cert_array_t; + typedef struct fido_cbor_info { fido_str_array_t versions; /* supported versions: fido2|u2f */ fido_str_array_t extensions; /* list of supported extensions */ @@ -233,6 +268,13 @@ typedef struct fido_cbor_info { uint64_t fwversion; /* firmware version */ uint64_t maxcredbloblen; /* max credBlob length */ uint64_t maxlargeblob; /* max largeBlob array length */ + uint64_t maxrpid_minlen; /* max rpid in set_pin_minlen_rpid */ + uint64_t minpinlen; /* min pin len enforced */ + uint64_t uv_attempts; /* platform uv attempts */ + uint64_t uv_modality; /* bitmask of supported uv types */ + int64_t rk_remaining; /* remaining resident credentials */ + bool new_pin_reqd; /* new pin required */ + fido_cert_array_t certs; /* associated certifications */ } fido_cbor_info_t; typedef struct fido_dev_info { @@ -281,6 +323,7 @@ typedef struct fido_dev fido_dev_t; typedef struct fido_dev_info fido_dev_info_t; typedef struct es256_pk es256_pk_t; typedef struct es256_sk es256_sk_t; +typedef struct es384_pk es384_pk_t; typedef struct rs256_pk rs256_pk_t; typedef struct eddsa_pk eddsa_pk_t; #endif /* _FIDO_INTERNAL */ diff --git a/src/hid.c b/src/hid.c index 926272b6b3ed..662bd44adfca 100644 --- a/src/hid.c +++ b/src/hid.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/hid_freebsd.c b/src/hid_freebsd.c index 21e408ffd53f..2bbe80b5349c 100644 --- a/src/hid_freebsd.c +++ b/src/hid_freebsd.c @@ -2,12 +2,17 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ -#include <sys/types.h> +#include <sys/param.h> #include <dev/usb/usb_ioctl.h> #include <dev/usb/usbhid.h> +#if __FreeBSD_version >= 1300500 +#include <dev/hid/hidraw.h> +#define USE_HIDRAW /* see usbhid(4) and hidraw(4) on FreeBSD 13+ */ +#endif #include <errno.h> #include <unistd.h> @@ -57,8 +62,60 @@ is_fido(int fd) return (usage_page == 0xf1d0); } +#ifdef USE_HIDRAW static int -copy_info(fido_dev_info_t *di, const char *path) +copy_info_hidraw(fido_dev_info_t *di, const char *path) +{ + int fd = -1; + int ok = -1; + struct usb_device_info udi; + struct hidraw_devinfo devinfo; + char rawname[129]; + + memset(di, 0, sizeof(*di)); + memset(&udi, 0, sizeof(udi)); + memset(&devinfo, 0, sizeof(devinfo)); + memset(rawname, 0, sizeof(rawname)); + + if ((fd = fido_hid_unix_open(path)) == -1 || is_fido(fd) == 0) + goto fail; + + if (ioctl(fd, IOCTL_REQ(USB_GET_DEVICEINFO), &udi) == -1) { + if (ioctl(fd, IOCTL_REQ(HIDIOCGRAWINFO), &devinfo) == -1 || + ioctl(fd, IOCTL_REQ(HIDIOCGRAWNAME(128)), rawname) == -1 || + (di->path = strdup(path)) == NULL || + (di->manufacturer = strdup(UHID_VENDOR)) == NULL || + (di->product = strdup(rawname)) == NULL) + goto fail; + di->vendor_id = devinfo.vendor; + di->product_id = devinfo.product; + } else { + if ((di->path = strdup(path)) == NULL || + (di->manufacturer = strdup(udi.udi_vendor)) == NULL || + (di->product = strdup(udi.udi_product)) == NULL) + goto fail; + di->vendor_id = (int16_t)udi.udi_vendorNo; + di->product_id = (int16_t)udi.udi_productNo; + } + + ok = 0; +fail: + if (fd != -1 && close(fd) == -1) + fido_log_error(errno, "%s: close %s", __func__, path); + + if (ok < 0) { + free(di->path); + free(di->manufacturer); + free(di->product); + explicit_bzero(di, sizeof(*di)); + } + + return (ok); +} +#endif /* USE_HIDRAW */ + +static int +copy_info_uhid(fido_dev_info_t *di, const char *path) { int fd = -1; int ok = -1; @@ -81,7 +138,6 @@ copy_info(fido_dev_info_t *di, const char *path) (di->manufacturer = strdup(udi.udi_vendor)) == NULL || (di->product = strdup(udi.udi_product)) == NULL) goto fail; - di->vendor_id = (int16_t)udi.udi_vendorNo; di->product_id = (int16_t)udi.udi_productNo; @@ -112,9 +168,29 @@ fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) if (devlist == NULL || olen == NULL) return (FIDO_ERR_INVALID_ARGUMENT); - for (i = *olen = 0; i < MAX_UHID && *olen < ilen; i++) { + *olen = 0; + +#ifdef USE_HIDRAW + for (i = 0; i < MAX_UHID && *olen < ilen; i++) { + snprintf(path, sizeof(path), "/dev/hidraw%zu", i); + if (copy_info_hidraw(&devlist[*olen], path) == 0) { + devlist[*olen].io = (fido_dev_io_t) { + fido_hid_open, + fido_hid_close, + fido_hid_read, + fido_hid_write, + }; + ++(*olen); + } + } + /* hidraw(4) is preferred over uhid(4) */ + if (*olen != 0) + return (FIDO_OK); +#endif /* USE_HIDRAW */ + + for (i = 0; i < MAX_UHID && *olen < ilen; i++) { snprintf(path, sizeof(path), "/dev/uhid%zu", i); - if (copy_info(&devlist[*olen], path) == 0) { + if (copy_info_uhid(&devlist[*olen], path) == 0) { devlist[*olen].io = (fido_dev_io_t) { fido_hid_open, fido_hid_close, @@ -151,6 +227,10 @@ fido_hid_open(const char *path) ugd.ugd_data = buf; ugd.ugd_maxlen = sizeof(buf); + /* + * N.B. if ctx->fd is an hidraw(4) device, the ioctl() below puts it in + * uhid(4) compat mode, which we need to keep fido_hid_write() as-is. + */ if ((r = ioctl(ctx->fd, IOCTL_REQ(USB_GET_REPORT_DESC), &ugd) == -1) || ugd.ugd_actlen > sizeof(buf) || fido_hid_get_report_len(ugd.ugd_data, ugd.ugd_actlen, diff --git a/src/hid_hidapi.c b/src/hid_hidapi.c index f6d21711e152..fed6f69a2237 100644 --- a/src/hid_hidapi.c +++ b/src/hid_hidapi.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Google LLC. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifdef __linux__ @@ -133,14 +134,14 @@ static bool is_fido(const struct hid_device_info *hdi) { uint32_t usage_page = 0; - struct hidraw_report_descriptor hrd; + struct hidraw_report_descriptor *hrd; - memset(&hrd, 0, sizeof(hrd)); + if ((hrd = calloc(1, sizeof(*hrd))) == NULL || + get_report_descriptor(hdi->path, hrd) < 0 || + fido_hid_get_usage(hrd->value, hrd->size, &usage_page) < 0) + usage_page = 0; - if (get_report_descriptor(hdi->path, &hrd) < 0 || - fido_hid_get_usage(hrd.value, hrd.size, &usage_page) < 0) { - return false; - } + free(hrd); return usage_page == 0xf1d0; } diff --git a/src/hid_linux.c b/src/hid_linux.c index c4ce4fd578a6..841a95b08e41 100644 --- a/src/hid_linux.c +++ b/src/hid_linux.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -54,20 +55,21 @@ get_report_descriptor(int fd, struct hidraw_report_descriptor *hrd) static bool is_fido(const char *path) { - int fd; - uint32_t usage_page = 0; - struct hidraw_report_descriptor hrd; + int fd = -1; + uint32_t usage_page = 0; + struct hidraw_report_descriptor *hrd = NULL; - memset(&hrd, 0, sizeof(hrd)); - - if ((fd = fido_hid_unix_open(path)) == -1) - return (false); - - if (get_report_descriptor(fd, &hrd) < 0 || - fido_hid_get_usage(hrd.value, hrd.size, &usage_page) < 0) + if ((hrd = calloc(1, sizeof(*hrd))) == NULL || + (fd = fido_hid_unix_open(path)) == -1) + goto out; + if (get_report_descriptor(fd, hrd) < 0 || + fido_hid_get_usage(hrd->value, hrd->size, &usage_page) < 0) usage_page = 0; - if (close(fd) == -1) +out: + free(hrd); + + if (fd != -1 && close(fd) == -1) fido_log_error(errno, "%s: close", __func__); return (usage_page == 0xf1d0); @@ -240,9 +242,13 @@ void * fido_hid_open(const char *path) { struct hid_linux *ctx; - struct hidraw_report_descriptor hrd; + struct hidraw_report_descriptor *hrd; struct timespec tv_pause; long interval_ms, retries = 0; + bool looped; + +retry: + looped = false; if ((ctx = calloc(1, sizeof(*ctx))) == NULL || (ctx->fd = fido_hid_unix_open(path)) == -1) { @@ -256,7 +262,8 @@ fido_hid_open(const char *path) fido_hid_close(ctx); return (NULL); } - if (retries++ >= 15) { + looped = true; + if (retries++ >= 20) { fido_log_debug("%s: flock timeout", __func__); fido_hid_close(ctx); return (NULL); @@ -271,8 +278,15 @@ fido_hid_open(const char *path) } } - if (get_report_descriptor(ctx->fd, &hrd) < 0 || - fido_hid_get_report_len(hrd.value, hrd.size, &ctx->report_in_len, + if (looped) { + fido_log_debug("%s: retrying", __func__); + fido_hid_close(ctx); + goto retry; + } + + if ((hrd = calloc(1, sizeof(*hrd))) == NULL || + get_report_descriptor(ctx->fd, hrd) < 0 || + fido_hid_get_report_len(hrd->value, hrd->size, &ctx->report_in_len, &ctx->report_out_len) < 0 || ctx->report_in_len == 0 || ctx->report_out_len == 0) { fido_log_debug("%s: using default report sizes", __func__); @@ -280,6 +294,8 @@ fido_hid_open(const char *path) ctx->report_out_len = CTAP_MAX_REPORT_LEN; } + free(hrd); + return (ctx); } diff --git a/src/hid_netbsd.c b/src/hid_netbsd.c index c24c6de7ce29..d5b9fad33412 100644 --- a/src/hid_netbsd.c +++ b/src/hid_netbsd.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> diff --git a/src/hid_openbsd.c b/src/hid_openbsd.c index 2993d10dad9d..2d08aca42aee 100644 --- a/src/hid_openbsd.c +++ b/src/hid_openbsd.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Google LLC. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> diff --git a/src/hid_osx.c b/src/hid_osx.c index a5fa8281f81e..9309762f163c 100644 --- a/src/hid_osx.c +++ b/src/hid_osx.c @@ -2,6 +2,7 @@ * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> diff --git a/src/hid_unix.c b/src/hid_unix.c index 946b2dc3b65f..e53882d79e86 100644 --- a/src/hid_unix.c +++ b/src/hid_unix.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/stat.h> diff --git a/src/hid_win.c b/src/hid_win.c index fe403bcf46f1..bc98a1701b0d 100644 --- a/src/hid_win.c +++ b/src/hid_win.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -27,7 +28,7 @@ WINSETUPAPI WINBOOL WINAPI SetupDiGetDevicePropertyW(HDEVINFO, DWORD, PDWORD, DWORD); #endif -#if defined(__MINGW32__) +#if defined(__MINGW32__) && __MINGW64_VERSION_MAJOR < 8 DEFINE_DEVPROPKEY(DEVPKEY_Device_Parent, 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 8); #endif diff --git a/src/info.c b/src/info.c index ea26f22297a6..cd30828d7ce9 100644 --- a/src/info.c +++ b/src/info.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" @@ -68,10 +69,8 @@ decode_option(const cbor_item_t *key, const cbor_item_t *val, void *arg) fido_opt_array_t *o = arg; const size_t i = o->len; - if (cbor_isa_float_ctrl(val) == false || - cbor_float_get_width(val) != CBOR_FLOAT_0 || - cbor_is_bool(val) == false) { - fido_log_debug("%s: cbor type", __func__); + if (cbor_decode_bool(val, NULL) < 0) { + fido_log_debug("%s: cbor_decode_bool", __func__); return (0); /* ignore */ } @@ -236,10 +235,55 @@ decode_algorithms(const cbor_item_t *item, fido_algo_array_t *aa) return (0); } +static int +decode_cert(const cbor_item_t *key, const cbor_item_t *val, void *arg) +{ + fido_cert_array_t *c = arg; + const size_t i = c->len; + + if (cbor_is_int(val) == false) { + fido_log_debug("%s: cbor_is_int", __func__); + return (0); /* ignore */ + } + + if (cbor_string_copy(key, &c->name[i]) < 0) { + fido_log_debug("%s: cbor_string_copy", __func__); + return (0); /* ignore */ + } + + /* keep name/value and len consistent */ + c->value[i] = cbor_get_int(val); + c->len++; + + return (0); +} + +static int +decode_certs(const cbor_item_t *item, fido_cert_array_t *c) +{ + c->name = NULL; + c->value = NULL; + c->len = 0; + + if (cbor_isa_map(item) == false || + cbor_map_is_definite(item) == false) { + fido_log_debug("%s: cbor type", __func__); + return (-1); + } + + c->name = calloc(cbor_map_size(item), sizeof(char *)); + c->value = calloc(cbor_map_size(item), sizeof(uint64_t)); + if (c->name == NULL || c->value == NULL) + return (-1); + + return (cbor_map_iter(item, c, decode_cert)); +} + static int parse_reply_element(const cbor_item_t *key, const cbor_item_t *val, void *arg) { fido_cbor_info_t *ci = arg; + uint64_t x; if (cbor_isa_uint(key) == false || cbor_int_get_width(key) != CBOR_INT_8) { @@ -270,12 +314,31 @@ parse_reply_element(const cbor_item_t *key, const cbor_item_t *val, void *arg) return (decode_algorithms(val, &ci->algorithms)); case 11: /* maxSerializedLargeBlobArray */ return (cbor_decode_uint64(val, &ci->maxlargeblob)); + case 12: /* forcePINChange */ + return (cbor_decode_bool(val, &ci->new_pin_reqd)); + case 13: /* minPINLength */ + return (cbor_decode_uint64(val, &ci->minpinlen)); case 14: /* fwVersion */ return (cbor_decode_uint64(val, &ci->fwversion)); case 15: /* maxCredBlobLen */ return (cbor_decode_uint64(val, &ci->maxcredbloblen)); + case 16: /* maxRPIDsForSetMinPINLength */ + return (cbor_decode_uint64(val, &ci->maxrpid_minlen)); + case 17: /* preferredPlatformUvAttempts */ + return (cbor_decode_uint64(val, &ci->uv_attempts)); + case 18: /* uvModality */ + return (cbor_decode_uint64(val, &ci->uv_modality)); + case 19: /* certifications */ + return (decode_certs(val, &ci->certs)); + case 20: /* remainingDiscoverableCredentials */ + if (cbor_decode_uint64(val, &x) < 0 || x > INT64_MAX) { + fido_log_debug("%s: cbor_decode_uint64", __func__); + return (-1); + } + ci->rk_remaining = (int64_t)x; + return (0); default: /* ignore */ - fido_log_debug("%s: cbor type", __func__); + fido_log_debug("%s: cbor type: 0x%02x", __func__, cbor_get_uint8(key)); return (0); } } @@ -298,22 +361,31 @@ fido_dev_get_cbor_info_tx(fido_dev_t *dev, int *ms) static int fido_dev_get_cbor_info_rx(fido_dev_t *dev, fido_cbor_info_t *ci, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; + unsigned char *msg; + int msglen; + int r; fido_log_debug("%s: dev=%p, ci=%p, ms=%d", __func__, (void *)dev, (void *)ci, *ms); fido_cbor_info_reset(ci); - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - return (cbor_parse_reply(reply, (size_t)reply_len, ci, - parse_reply_element)); + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + r = cbor_parse_reply(msg, (size_t)msglen, ci, parse_reply_element); +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } int @@ -347,7 +419,14 @@ fido_dev_get_cbor_info(fido_dev_t *dev, fido_cbor_info_t *ci) fido_cbor_info_t * fido_cbor_info_new(void) { - return (calloc(1, sizeof(fido_cbor_info_t))); + fido_cbor_info_t *ci; + + if ((ci = calloc(1, sizeof(fido_cbor_info_t))) == NULL) + return (NULL); + + fido_cbor_info_reset(ci); + + return (ci); } void @@ -359,6 +438,8 @@ fido_cbor_info_reset(fido_cbor_info_t *ci) fido_opt_array_free(&ci->options); fido_byte_array_free(&ci->protocols); fido_algo_array_free(&ci->algorithms); + fido_cert_array_free(&ci->certs); + ci->rk_remaining = -1; } void @@ -475,6 +556,36 @@ fido_cbor_info_fwversion(const fido_cbor_info_t *ci) return (ci->fwversion); } +uint64_t +fido_cbor_info_minpinlen(const fido_cbor_info_t *ci) +{ + return (ci->minpinlen); +} + +uint64_t +fido_cbor_info_maxrpid_minpinlen(const fido_cbor_info_t *ci) +{ + return (ci->maxrpid_minlen); +} + +uint64_t +fido_cbor_info_uv_attempts(const fido_cbor_info_t *ci) +{ + return (ci->uv_attempts); +} + +uint64_t +fido_cbor_info_uv_modality(const fido_cbor_info_t *ci) +{ + return (ci->uv_modality); +} + +int64_t +fido_cbor_info_rk_remaining(const fido_cbor_info_t *ci) +{ + return (ci->rk_remaining); +} + const uint8_t * fido_cbor_info_protocols_ptr(const fido_cbor_info_t *ci) { @@ -510,3 +621,27 @@ fido_cbor_info_algorithm_cose(const fido_cbor_info_t *ci, size_t idx) return (ci->algorithms.ptr[idx].cose); } + +bool +fido_cbor_info_new_pin_required(const fido_cbor_info_t *ci) +{ + return (ci->new_pin_reqd); +} + +char ** +fido_cbor_info_certs_name_ptr(const fido_cbor_info_t *ci) +{ + return (ci->certs.name); +} + +const uint64_t * +fido_cbor_info_certs_value_ptr(const fido_cbor_info_t *ci) +{ + return (ci->certs.value); +} + +size_t +fido_cbor_info_certs_len(const fido_cbor_info_t *ci) +{ + return (ci->certs.len); +} diff --git a/src/io.c b/src/io.c index 70f777fb49a0..a9715b5b4bf8 100644 --- a/src/io.c +++ b/src/io.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" @@ -331,14 +332,25 @@ fido_rx(fido_dev_t *d, uint8_t cmd, void *buf, size_t count, int *ms) int fido_rx_cbor_status(fido_dev_t *d, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; + unsigned char *msg; + int msglen; + int r; - if ((reply_len = fido_rx(d, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0 || (size_t)reply_len < 1) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; } - return (reply[0]); + if ((msglen = fido_rx(d, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0 || + (size_t)msglen < 1) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto out; + } + + r = msg[0]; +out: + freezero(msg, FIDO_MAXMSG); + + return (r); } diff --git a/src/iso7816.c b/src/iso7816.c index a4902277c6d8..5bba10697ee4 100644 --- a/src/iso7816.c +++ b/src/iso7816.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/iso7816.h b/src/iso7816.h index 9bfad1fbab9d..7545719c6f1b 100644 --- a/src/iso7816.h +++ b/src/iso7816.h @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _ISO7816_H diff --git a/src/largeblob.c b/src/largeblob.c index c8173170766d..c1f2e62b2a6a 100644 --- a/src/largeblob.c +++ b/src/largeblob.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> @@ -200,27 +201,38 @@ parse_largeblob_reply(const cbor_item_t *key, const cbor_item_t *val, static int largeblob_get_rx(fido_dev_t *dev, fido_blob_t **chunk, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len, r; + unsigned char *msg; + int msglen, r; *chunk = NULL; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto out; + } + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); - return FIDO_ERR_RX; + r = FIDO_ERR_RX; + goto out; } if ((*chunk = fido_blob_new()) == NULL) { fido_log_debug("%s: fido_blob_new", __func__); - return FIDO_ERR_INTERNAL; + r = FIDO_ERR_INTERNAL; + goto out; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, *chunk, + if ((r = cbor_parse_reply(msg, (size_t)msglen, *chunk, parse_largeblob_reply)) != FIDO_OK) { fido_log_debug("%s: parse_largeblob_reply", __func__); - fido_blob_free(chunk); - return r; + goto out; } - return FIDO_OK; + r = FIDO_OK; +out: + if (r != FIDO_OK) + fido_blob_free(chunk); + + freezero(msg, FIDO_MAXMSG); + + return r; } static cbor_item_t * diff --git a/src/log.c b/src/log.c index ab18ae12b4fa..e54f8fca6b90 100644 --- a/src/log.c +++ b/src/log.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #undef _GNU_SOURCE /* XSI strerror_r() */ diff --git a/src/netlink.c b/src/netlink.c index 8f14e2c3bac3..2a9216c39058 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/socket.h> diff --git a/src/netlink.h b/src/netlink.h index 9b98064ab8e7..c600b522196a 100644 --- a/src/netlink.h +++ b/src/netlink.h @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _FIDO_NETLINK_H diff --git a/src/nfc.c b/src/nfc.c index 8e1221bb5057..2e97d5fc50da 100644 --- a/src/nfc.c +++ b/src/nfc.c @@ -2,6 +2,7 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <stdio.h> @@ -289,6 +290,35 @@ fido_nfc_rx(fido_dev_t *d, uint8_t cmd, unsigned char *buf, size_t count, int ms } } +bool +nfc_is_fido(const char *path) +{ + bool fido = false; + fido_dev_t *d; + int r; + + if ((d = fido_dev_new()) == NULL) { + fido_log_debug("%s: fido_dev_new", __func__); + goto fail; + } + /* fido_dev_open selects the fido applet */ + if ((r = fido_dev_open(d, path)) != FIDO_OK) { + fido_log_debug("%s: fido_dev_open: 0x%x", __func__, r); + goto fail; + } + if ((r = fido_dev_close(d)) != FIDO_OK) { + fido_log_debug("%s: fido_dev_close: 0x%x", __func__, r); + goto fail; + + } + + fido = true; +fail: + fido_dev_free(&d); + + return fido; +} + #ifdef USE_NFC bool fido_is_nfc(const char *path) diff --git a/src/nfc_linux.c b/src/nfc_linux.c index 4673dc2b7d18..4b69eb1c54c2 100644 --- a/src/nfc_linux.c +++ b/src/nfc_linux.c @@ -2,6 +2,7 @@ * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -59,7 +60,6 @@ copy_info(fido_dev_info_t *di, struct udev *udev, const char *name; char *str; struct udev_device *dev = NULL; - void *ctx = NULL; uint64_t id; int ok = -1; @@ -72,6 +72,10 @@ copy_info(fido_dev_info_t *di, struct udev *udev, di->path = NULL; goto fail; } + if (nfc_is_fido(di->path) == false) { + fido_log_debug("%s: nfc_is_fido: %s", __func__, di->path); + goto fail; + } if ((di->manufacturer = get_usb_attr(dev, "manufacturer")) == NULL) di->manufacturer = strdup(""); if ((di->product = get_usb_attr(dev, "product")) == NULL) @@ -88,17 +92,10 @@ copy_info(fido_dev_info_t *di, struct udev *udev, di->product_id = (int16_t)id; free(str); - if ((ctx = fido_nfc_open(di->path)) == NULL) { - fido_log_debug("%s: fido_nfc_open", __func__); - goto fail; - } - ok = 0; fail: if (dev != NULL) udev_device_unref(dev); - if (ctx != NULL) - fido_nfc_close(ctx); if (ok < 0) { free(di->path); diff --git a/src/packed.h b/src/packed.h index 3857c22dd2ba..5f53ae565b75 100644 --- a/src/packed.h +++ b/src/packed.h @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _PACKED_H diff --git a/src/pcsc.c b/src/pcsc.c index c02251e9bfe1..d7bd6c65ed60 100644 --- a/src/pcsc.c +++ b/src/pcsc.c @@ -3,6 +3,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #if __APPLE__ @@ -149,6 +150,10 @@ copy_info(fido_dev_info_t *di, SCARDCONTEXT ctx, const char *reader, size_t idx) fido_log_debug("%s: asprintf", __func__); goto fail; } + if (nfc_is_fido(di->path) == false) { + fido_log_debug("%s: nfc_is_fido: %s", __func__, di->path); + goto fail; + } if ((di->manufacturer = strdup("PC/SC")) == NULL || (di->product = strdup(reader)) == NULL) goto fail; diff --git a/src/pin.c b/src/pin.c index 30eeb086a6ef..c3dd9271ed71 100644 --- a/src/pin.c +++ b/src/pin.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> @@ -72,7 +73,7 @@ pad64(const char *pin, fido_blob_t **ppin) size_t ppin_len; pin_len = strlen(pin); - if (pin_len < 4 || pin_len > 255) { + if (pin_len < 4 || pin_len > 63) { fido_log_debug("%s: invalid pin length", __func__); return (FIDO_ERR_PIN_POLICY_VIOLATION); } @@ -81,7 +82,8 @@ pad64(const char *pin, fido_blob_t **ppin) return (FIDO_ERR_INTERNAL); ppin_len = (pin_len + 63U) & ~63U; - if (ppin_len < pin_len || ((*ppin)->ptr = calloc(1, ppin_len)) == NULL) { + if (ppin_len < pin_len || + ((*ppin)->ptr = calloc(1, ppin_len)) == NULL) { fido_blob_free(ppin); return (FIDO_ERR_INTERNAL); } @@ -284,8 +286,8 @@ uv_token_rx(fido_dev_t *dev, const fido_blob_t *ecdh, fido_blob_t *token, int *ms) { fido_blob_t *aes_token = NULL; - unsigned char reply[FIDO_MAXMSG]; - int reply_len; + unsigned char *msg = NULL; + int msglen; int r; if ((aes_token = fido_blob_new()) == NULL) { @@ -293,14 +295,18 @@ uv_token_rx(fido_dev_t *dev, const fido_blob_t *ecdh, fido_blob_t *token, goto fail; } - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; + } + + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); r = FIDO_ERR_RX; goto fail; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, aes_token, + if ((r = cbor_parse_reply(msg, (size_t)msglen, aes_token, parse_uv_token)) != FIDO_OK) { fido_log_debug("%s: parse_uv_token", __func__); goto fail; @@ -315,6 +321,7 @@ uv_token_rx(fido_dev_t *dev, const fido_blob_t *ecdh, fido_blob_t *token, r = FIDO_OK; fail: fido_blob_free(&aes_token); + freezero(msg, FIDO_MAXMSG); return (r); } @@ -579,25 +586,34 @@ fido_dev_get_retry_count_tx(fido_dev_t *dev, uint8_t subcmd, int *ms) static int fido_dev_get_pin_retry_count_rx(fido_dev_t *dev, int *retries, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; *retries = 0; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, retries, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto fail; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, retries, parse_pin_retry_count)) != FIDO_OK) { fido_log_debug("%s: parse_pin_retry_count", __func__); - return (r); + goto fail; } - return (FIDO_OK); + r = FIDO_OK; +fail: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int @@ -623,25 +639,34 @@ fido_dev_get_retry_count(fido_dev_t *dev, int *retries) static int fido_dev_get_uv_retry_count_rx(fido_dev_t *dev, int *retries, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *msg; + int msglen; + int r; *retries = 0; - if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), - ms)) < 0) { - fido_log_debug("%s: fido_rx", __func__); - return (FIDO_ERR_RX); + if ((msg = malloc(FIDO_MAXMSG)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; } - if ((r = cbor_parse_reply(reply, (size_t)reply_len, retries, + if ((msglen = fido_rx(dev, CTAP_CMD_CBOR, msg, FIDO_MAXMSG, ms)) < 0) { + fido_log_debug("%s: fido_rx", __func__); + r = FIDO_ERR_RX; + goto fail; + } + + if ((r = cbor_parse_reply(msg, (size_t)msglen, retries, parse_uv_retry_count)) != FIDO_OK) { fido_log_debug("%s: parse_uv_retry_count", __func__); - return (r); + goto fail; } - return (FIDO_OK); + r = FIDO_OK; +fail: + freezero(msg, FIDO_MAXMSG); + + return (r); } static int diff --git a/src/random.c b/src/random.c index f13482bfddf9..9688d35ca945 100644 --- a/src/random.c +++ b/src/random.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> diff --git a/src/reset.c b/src/reset.c index c5fe6dfe7ac1..4e09dbbca5cf 100644 --- a/src/reset.c +++ b/src/reset.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" diff --git a/src/rs1.c b/src/rs1.c index 134068b16747..03636b5cdf42 100644 --- a/src/rs1.c +++ b/src/rs1.c @@ -2,6 +2,7 @@ * Copyright (c) 2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/rsa.h> diff --git a/src/rs256.c b/src/rs256.c index 95bae167a177..59ceb948fa07 100644 --- a/src/rs256.c +++ b/src/rs256.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/bn.h> diff --git a/src/time.c b/src/time.c index b82b61874498..fd0e4e3ca33e 100644 --- a/src/time.c +++ b/src/time.c @@ -2,6 +2,7 @@ * Copyright (c) 2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <errno.h> diff --git a/src/touch.c b/src/touch.c index 66b1c3478c0a..6844e2c2dbc0 100644 --- a/src/touch.c +++ b/src/touch.c @@ -2,6 +2,7 @@ * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> diff --git a/src/tpm.c b/src/tpm.c index 74244f8cbf08..69c48c3d4d86 100644 --- a/src/tpm.c +++ b/src/tpm.c @@ -2,6 +2,7 @@ * Copyright (c) 2021 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/src/types.c b/src/types.c index 54c0ca582865..f31f8da12952 100644 --- a/src/types.c +++ b/src/types.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include "fido.h" @@ -27,6 +28,7 @@ fido_opt_array_free(fido_opt_array_t *oa) free(oa->value); oa->name = NULL; oa->value = NULL; + oa->len = 0; } void @@ -57,6 +59,19 @@ fido_algo_array_free(fido_algo_array_t *aa) aa->len = 0; } +void +fido_cert_array_free(fido_cert_array_t *ca) +{ + for (size_t i = 0; i < ca->len; i++) + free(ca->name[i]); + + free(ca->name); + free(ca->value); + ca->name = NULL; + ca->value = NULL; + ca->len = 0; +} + int fido_str_array_pack(fido_str_array_t *sa, const char * const *v, size_t n) { diff --git a/src/u2f.c b/src/u2f.c index 6ebfcc7bb848..b1f7bce3b7ab 100644 --- a/src/u2f.c +++ b/src/u2f.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/sha.h> @@ -14,6 +15,7 @@ #include "fido.h" #include "fido/es256.h" +#include "fallthrough.h" #define U2F_PACE_MS (100) @@ -143,9 +145,9 @@ static int send_dummy_register(fido_dev_t *dev, int *ms) { iso7816_apdu_t *apdu = NULL; + unsigned char *reply = NULL; unsigned char challenge[SHA256_DIGEST_LENGTH]; unsigned char application[SHA256_DIGEST_LENGTH]; - unsigned char reply[FIDO_MAXMSG]; int r; /* dummy challenge & application */ @@ -161,6 +163,12 @@ send_dummy_register(fido_dev_t *dev, int *ms) goto fail; } + if ((reply = malloc(FIDO_MAXMSG)) == NULL) { + fido_log_debug("%s: malloc", __func__); + r = FIDO_ERR_INTERNAL; + goto fail; + } + do { if (fido_tx(dev, CTAP_CMD_MSG, iso7816_ptr(apdu), iso7816_len(apdu), ms) < 0) { @@ -168,7 +176,7 @@ send_dummy_register(fido_dev_t *dev, int *ms) r = FIDO_ERR_TX; goto fail; } - if (fido_rx(dev, CTAP_CMD_MSG, &reply, sizeof(reply), ms) < 2) { + if (fido_rx(dev, CTAP_CMD_MSG, reply, FIDO_MAXMSG, ms) < 2) { fido_log_debug("%s: fido_rx", __func__); r = FIDO_ERR_RX; goto fail; @@ -183,6 +191,7 @@ send_dummy_register(fido_dev_t *dev, int *ms) r = FIDO_OK; fail: iso7816_free(&apdu); + freezero(reply, FIDO_MAXMSG); return (r); } @@ -192,9 +201,9 @@ key_lookup(fido_dev_t *dev, const char *rp_id, const fido_blob_t *key_id, int *found, int *ms) { iso7816_apdu_t *apdu = NULL; + unsigned char *reply = NULL; unsigned char challenge[SHA256_DIGEST_LENGTH]; unsigned char rp_id_hash[SHA256_DIGEST_LENGTH]; - unsigned char reply[FIDO_MAXMSG]; uint8_t key_id_len; int r; @@ -228,13 +237,19 @@ key_lookup(fido_dev_t *dev, const char *rp_id, const fido_blob_t *key_id, goto fail; } + if ((reply = malloc(FIDO_MAXMSG)) == NULL) { + fido_log_debug("%s: malloc", __func__); + r = FIDO_ERR_INTERNAL; + goto fail; + } + if (fido_tx(dev, CTAP_CMD_MSG, iso7816_ptr(apdu), iso7816_len(apdu), ms) < 0) { fido_log_debug("%s: fido_tx", __func__); r = FIDO_ERR_TX; goto fail; } - if (fido_rx(dev, CTAP_CMD_MSG, &reply, sizeof(reply), ms) != 2) { + if (fido_rx(dev, CTAP_CMD_MSG, reply, FIDO_MAXMSG, ms) != 2) { fido_log_debug("%s: fido_rx", __func__); r = FIDO_ERR_RX; goto fail; @@ -256,6 +271,7 @@ key_lookup(fido_dev_t *dev, const char *rp_id, const fido_blob_t *key_id, r = FIDO_OK; fail: iso7816_free(&apdu); + freezero(reply, FIDO_MAXMSG); return (r); } @@ -298,8 +314,8 @@ do_auth(fido_dev_t *dev, const fido_blob_t *cdh, const char *rp_id, const fido_blob_t *key_id, fido_blob_t *sig, fido_blob_t *ad, int *ms) { iso7816_apdu_t *apdu = NULL; + unsigned char *reply = NULL; unsigned char rp_id_hash[SHA256_DIGEST_LENGTH]; - unsigned char reply[FIDO_MAXMSG]; int reply_len; uint8_t key_id_len; int r; @@ -336,6 +352,12 @@ do_auth(fido_dev_t *dev, const fido_blob_t *cdh, const char *rp_id, goto fail; } + if ((reply = malloc(FIDO_MAXMSG)) == NULL) { + fido_log_debug("%s: malloc", __func__); + r = FIDO_ERR_INTERNAL; + goto fail; + } + do { if (fido_tx(dev, CTAP_CMD_MSG, iso7816_ptr(apdu), iso7816_len(apdu), ms) < 0) { @@ -343,8 +365,8 @@ do_auth(fido_dev_t *dev, const fido_blob_t *cdh, const char *rp_id, r = FIDO_ERR_TX; goto fail; } - if ((reply_len = fido_rx(dev, CTAP_CMD_MSG, &reply, - sizeof(reply), ms)) < 2) { + if ((reply_len = fido_rx(dev, CTAP_CMD_MSG, reply, + FIDO_MAXMSG, ms)) < 2) { fido_log_debug("%s: fido_rx", __func__); r = FIDO_ERR_RX; goto fail; @@ -364,6 +386,7 @@ do_auth(fido_dev_t *dev, const fido_blob_t *cdh, const char *rp_id, fail: iso7816_free(&apdu); + freezero(reply, FIDO_MAXMSG); return (r); } @@ -643,7 +666,7 @@ u2f_register(fido_dev_t *dev, fido_cred_t *cred, int *ms) { iso7816_apdu_t *apdu = NULL; unsigned char rp_id_hash[SHA256_DIGEST_LENGTH]; - unsigned char reply[FIDO_MAXMSG]; + unsigned char *reply = NULL; int reply_len; int found; int r; @@ -694,6 +717,12 @@ u2f_register(fido_dev_t *dev, fido_cred_t *cred, int *ms) goto fail; } + if ((reply = malloc(FIDO_MAXMSG)) == NULL) { + fido_log_debug("%s: malloc", __func__); + r = FIDO_ERR_INTERNAL; + goto fail; + } + do { if (fido_tx(dev, CTAP_CMD_MSG, iso7816_ptr(apdu), iso7816_len(apdu), ms) < 0) { @@ -701,8 +730,8 @@ u2f_register(fido_dev_t *dev, fido_cred_t *cred, int *ms) r = FIDO_ERR_TX; goto fail; } - if ((reply_len = fido_rx(dev, CTAP_CMD_MSG, &reply, - sizeof(reply), ms)) < 2) { + if ((reply_len = fido_rx(dev, CTAP_CMD_MSG, reply, + FIDO_MAXMSG, ms)) < 2) { fido_log_debug("%s: fido_rx", __func__); r = FIDO_ERR_RX; goto fail; @@ -721,6 +750,7 @@ u2f_register(fido_dev_t *dev, fido_cred_t *cred, int *ms) } fail: iso7816_free(&apdu); + freezero(reply, FIDO_MAXMSG); return (r); } @@ -804,7 +834,7 @@ u2f_authenticate(fido_dev_t *dev, fido_assert_t *fa, int *ms) &fa->allow_list.ptr[i], fa, nfound, ms))) { case FIDO_OK: nauth_ok++; - /* FALLTHROUGH */ + FALLTHROUGH case FIDO_ERR_USER_PRESENCE_REQUIRED: nfound++; break; @@ -834,9 +864,9 @@ u2f_get_touch_begin(fido_dev_t *dev, int *ms) iso7816_apdu_t *apdu = NULL; const char *clientdata = FIDO_DUMMY_CLIENTDATA; const char *rp_id = FIDO_DUMMY_RP_ID; + unsigned char *reply = NULL; unsigned char clientdata_hash[SHA256_DIGEST_LENGTH]; unsigned char rp_id_hash[SHA256_DIGEST_LENGTH]; - unsigned char reply[FIDO_MAXMSG]; int r; memset(&clientdata_hash, 0, sizeof(clientdata_hash)); @@ -858,9 +888,15 @@ u2f_get_touch_begin(fido_dev_t *dev, int *ms) goto fail; } + if ((reply = malloc(FIDO_MAXMSG)) == NULL) { + fido_log_debug("%s: malloc", __func__); + r = FIDO_ERR_INTERNAL; + goto fail; + } + if (dev->attr.flags & FIDO_CAP_WINK) { fido_tx(dev, CTAP_CMD_WINK, NULL, 0, ms); - fido_rx(dev, CTAP_CMD_WINK, &reply, sizeof(reply), ms); + fido_rx(dev, CTAP_CMD_WINK, reply, FIDO_MAXMSG, ms); } if (fido_tx(dev, CTAP_CMD_MSG, iso7816_ptr(apdu), @@ -873,6 +909,7 @@ u2f_get_touch_begin(fido_dev_t *dev, int *ms) r = FIDO_OK; fail: iso7816_free(&apdu); + freezero(reply, FIDO_MAXMSG); return (r); } @@ -880,21 +917,28 @@ u2f_get_touch_begin(fido_dev_t *dev, int *ms) int u2f_get_touch_status(fido_dev_t *dev, int *touched, int *ms) { - unsigned char reply[FIDO_MAXMSG]; - int reply_len; - int r; + unsigned char *reply; + int reply_len; + int r; - if ((reply_len = fido_rx(dev, CTAP_CMD_MSG, &reply, sizeof(reply), + if ((reply = malloc(FIDO_MAXMSG)) == NULL) { + fido_log_debug("%s: malloc", __func__); + r = FIDO_ERR_INTERNAL; + goto out; + } + + if ((reply_len = fido_rx(dev, CTAP_CMD_MSG, reply, FIDO_MAXMSG, ms)) < 2) { fido_log_debug("%s: fido_rx", __func__); - return (FIDO_OK); /* ignore */ + r = FIDO_OK; /* ignore */ + goto out; } switch ((reply[reply_len - 2] << 8) | reply[reply_len - 1]) { case SW_CONDITIONS_NOT_SATISFIED: if ((r = u2f_get_touch_begin(dev, ms)) != FIDO_OK) { fido_log_debug("%s: u2f_get_touch_begin", __func__); - return (r); + goto out; } *touched = 0; break; @@ -903,8 +947,13 @@ u2f_get_touch_status(fido_dev_t *dev, int *touched, int *ms) break; default: fido_log_debug("%s: unexpected sw", __func__); - return (FIDO_ERR_RX); + r = FIDO_ERR_RX; + goto out; } - return (FIDO_OK); + r = FIDO_OK; +out: + freezero(reply, FIDO_MAXMSG); + + return (r); } diff --git a/src/util.c b/src/util.c index 61e120cfd06c..25281bb51b28 100644 --- a/src/util.c +++ b/src/util.c @@ -2,6 +2,7 @@ * Copyright (c) 2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <errno.h> diff --git a/src/winhello.c b/src/winhello.c index f9ab6061fd60..e0453cb8c70f 100644 --- a/src/winhello.c +++ b/src/winhello.c @@ -2,6 +2,7 @@ * Copyright (c) 2021-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -354,6 +355,9 @@ pack_cose(WEBAUTHN_COSE_CREDENTIAL_PARAMETER *alg, case COSE_ES256: alg->lAlg = WEBAUTHN_COSE_ALGORITHM_ECDSA_P256_WITH_SHA256; break; + case COSE_ES384: + alg->lAlg = WEBAUTHN_COSE_ALGORITHM_ECDSA_P384_WITH_SHA384; + break; case COSE_EDDSA: alg->lAlg = -8; /* XXX */; break; diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index c81397f41fb9..e1f4366c4ef3 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,6 +1,7 @@ -# Copyright (c) 2018 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause list(APPEND COMPAT_SOURCES ../openbsd-compat/bsd-getpagesize.c @@ -31,7 +32,7 @@ if(NOT MSVC) set_source_files_properties(assert_get.c assert_verify.c base64.c bio.c config.c cred_make.c cred_verify.c credman.c fido2-assert.c fido2-cred.c fido2-token.c pin.c token.c util.c - PROPERTIES COMPILE_FLAGS "-Wconversion -Wsign-conversion") + PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}") endif() add_executable(fido2-cred diff --git a/tools/assert_get.c b/tools/assert_get.c index c38040253520..8260fb8359f5 100644 --- a/tools/assert_get.c +++ b/tools/assert_get.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> @@ -209,8 +210,8 @@ assert_get(int argc, char **argv) fido_dev_t *dev = NULL; fido_assert_t *assert = NULL; struct toggle opt; - char pin[1024]; char prompt[1024]; + char pin[128]; char *in_path = NULL; char *out_path = NULL; FILE *in_f = NULL; @@ -284,6 +285,10 @@ assert_get(int argc, char **argv) errx(1, "snprintf"); if (!readpassphrase(prompt, pin, sizeof(pin), RPP_ECHO_OFF)) errx(1, "readpassphrase"); + if (strlen(pin) < 4 || strlen(pin) > 63) { + explicit_bzero(pin, sizeof(pin)); + errx(1, "invalid PIN length"); + } r = fido_dev_get_assert(dev, assert, pin); } else r = fido_dev_get_assert(dev, assert, NULL); diff --git a/tools/assert_verify.c b/tools/assert_verify.c index 7985e95042c5..4cc2e86bff13 100644 --- a/tools/assert_verify.c +++ b/tools/assert_verify.c @@ -1,11 +1,13 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> #include <fido/es256.h> +#include <fido/es384.h> #include <fido/rs256.h> #include <fido/eddsa.h> @@ -93,40 +95,54 @@ load_pubkey(int type, const char *file) RSA *rsa = NULL; EVP_PKEY *eddsa = NULL; es256_pk_t *es256_pk = NULL; + es384_pk_t *es384_pk = NULL; rs256_pk_t *rs256_pk = NULL; eddsa_pk_t *eddsa_pk = NULL; void *pk = NULL; - if (type == COSE_ES256) { + switch (type) { + case COSE_ES256: if ((ec = read_ec_pubkey(file)) == NULL) errx(1, "read_ec_pubkey"); if ((es256_pk = es256_pk_new()) == NULL) errx(1, "es256_pk_new"); if (es256_pk_from_EC_KEY(es256_pk, ec) != FIDO_OK) errx(1, "es256_pk_from_EC_KEY"); - pk = es256_pk; EC_KEY_free(ec); - } else if (type == COSE_RS256) { + break; + case COSE_ES384: + if ((ec = read_ec_pubkey(file)) == NULL) + errx(1, "read_ec_pubkey"); + if ((es384_pk = es384_pk_new()) == NULL) + errx(1, "es384_pk_new"); + if (es384_pk_from_EC_KEY(es384_pk, ec) != FIDO_OK) + errx(1, "es384_pk_from_EC_KEY"); + pk = es384_pk; + EC_KEY_free(ec); + break; + case COSE_RS256: if ((rsa = read_rsa_pubkey(file)) == NULL) errx(1, "read_rsa_pubkey"); if ((rs256_pk = rs256_pk_new()) == NULL) errx(1, "rs256_pk_new"); if (rs256_pk_from_RSA(rs256_pk, rsa) != FIDO_OK) errx(1, "rs256_pk_from_RSA"); - pk = rs256_pk; RSA_free(rsa); - } else if (type == COSE_EDDSA) { + break; + case COSE_EDDSA: if ((eddsa = read_eddsa_pubkey(file)) == NULL) errx(1, "read_eddsa_pubkey"); if ((eddsa_pk = eddsa_pk_new()) == NULL) errx(1, "eddsa_pk_new"); if (eddsa_pk_from_EVP_PKEY(eddsa_pk, eddsa) != FIDO_OK) errx(1, "eddsa_pk_from_EVP_PKEY"); - pk = eddsa_pk; EVP_PKEY_free(eddsa); + break; + default: + errx(1, "invalid type %d", type); } return (pk); diff --git a/tools/base64.c b/tools/base64.c index e13119823c98..2cfa98ddb254 100644 --- a/tools/base64.c +++ b/tools/base64.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <openssl/bio.h> diff --git a/tools/bio.c b/tools/bio.c index 1ce1041c30c6..7a1406d70de5 100644 --- a/tools/bio.c +++ b/tools/bio.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> diff --git a/tools/config.c b/tools/config.c index 3eea4c9b6cf6..49253e83f3b7 100644 --- a/tools/config.c +++ b/tools/config.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <stdio.h> diff --git a/tools/cred_make.c b/tools/cred_make.c index 7955fa2b7f9f..a6239ec27aec 100644 --- a/tools/cred_make.c +++ b/tools/cred_make.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> @@ -137,7 +138,7 @@ cred_make(int argc, char **argv) fido_dev_t *dev = NULL; fido_cred_t *cred = NULL; char prompt[1024]; - char pin[1024]; + char pin[128]; char *in_path = NULL; char *out_path = NULL; FILE *in_f = NULL; @@ -221,6 +222,10 @@ cred_make(int argc, char **argv) errx(1, "snprintf"); if (!readpassphrase(prompt, pin, sizeof(pin), RPP_ECHO_OFF)) errx(1, "readpassphrase"); + if (strlen(pin) < 4 || strlen(pin) > 63) { + explicit_bzero(pin, sizeof(pin)); + errx(1, "invalid PIN length"); + } r = fido_dev_make_cred(dev, cred, pin); } diff --git a/tools/cred_verify.c b/tools/cred_verify.c index d622ed7369bd..3eae435899df 100644 --- a/tools/cred_verify.c +++ b/tools/cred_verify.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> diff --git a/tools/credman.c b/tools/credman.c index d7fb15580f87..a0a3149d5dfb 100644 --- a/tools/credman.c +++ b/tools/credman.c @@ -2,6 +2,7 @@ * Copyright (c) 2019 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> diff --git a/tools/extern.h b/tools/extern.h index 8b25dadd45ac..ed4b348cfe46 100644 --- a/tools/extern.h +++ b/tools/extern.h @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #ifndef _EXTERN_H_ @@ -85,7 +86,8 @@ int token_info(int, char **, char *); int token_list(int, char **, char *); int token_reset(char *); int token_set(int, char **, char *); -int write_ec_pubkey(FILE *, const void *, size_t); +int write_es256_pubkey(FILE *, const void *, size_t); +int write_es384_pubkey(FILE *, const void *, size_t); int write_rsa_pubkey(FILE *, const void *, size_t); int read_file(const char *, u_char **, size_t *); int write_file(const char *, const u_char *, size_t); diff --git a/tools/fido2-assert.c b/tools/fido2-assert.c index c363d9a49927..d05c541651cb 100644 --- a/tools/fido2-assert.c +++ b/tools/fido2-assert.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/tools/fido2-attach.sh b/tools/fido2-attach.sh index d4bc44989f2b..ef02db6b9ff0 100755 --- a/tools/fido2-attach.sh +++ b/tools/fido2-attach.sh @@ -3,6 +3,7 @@ # Copyright (c) 2020 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause DEV="" diff --git a/tools/fido2-cred.c b/tools/fido2-cred.c index 9463cd591e75..965dbf9ef1ad 100644 --- a/tools/fido2-cred.c +++ b/tools/fido2-cred.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ /* diff --git a/tools/fido2-detach.sh b/tools/fido2-detach.sh index 9cd2e64bbe31..140278fc6993 100755 --- a/tools/fido2-detach.sh +++ b/tools/fido2-detach.sh @@ -3,6 +3,7 @@ # Copyright (c) 2020 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause DEV="$(fido2-token -L | sed 's/^\(.*\): .*$/\1/;q')" diff --git a/tools/fido2-token.c b/tools/fido2-token.c index e6d9f9f96381..412c2f9016c5 100644 --- a/tools/fido2-token.c +++ b/tools/fido2-token.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> diff --git a/tools/fido2-unprot.sh b/tools/fido2-unprot.sh index 44b28b8d06b8..7d8c77936ee9 100755 --- a/tools/fido2-unprot.sh +++ b/tools/fido2-unprot.sh @@ -3,6 +3,7 @@ # Copyright (c) 2020 Fabian Henneke. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause if [ $(uname) != "Linux" ] ; then diff --git a/tools/include_check.sh b/tools/include_check.sh index e684d0b6f12d..70abada1640d 100755 --- a/tools/include_check.sh +++ b/tools/include_check.sh @@ -3,6 +3,7 @@ # Copyright (c) 2019 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause check() { for f in $(find $1 -maxdepth 1 -name '*.h'); do diff --git a/tools/largeblob.c b/tools/largeblob.c index fc2584ce8bdf..00cf79ea8fef 100644 --- a/tools/largeblob.c +++ b/tools/largeblob.c @@ -2,6 +2,7 @@ * Copyright (c) 2020 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> diff --git a/tools/pin.c b/tools/pin.c index f342347d1ff5..8b2697ed8e1e 100644 --- a/tools/pin.c +++ b/tools/pin.c @@ -2,6 +2,7 @@ * Copyright (c) 2018 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> @@ -21,8 +22,8 @@ pin_set(char *path) { fido_dev_t *dev = NULL; char prompt[1024]; - char pin1[1024]; - char pin2[1024]; + char pin1[128]; + char pin2[128]; int r; int status = 1; @@ -55,6 +56,11 @@ pin_set(char *path) goto out; } + if (strlen(pin1) < 4 || strlen(pin1) > 63) { + fprintf(stderr, "invalid PIN length\n"); + goto out; + } + if ((r = fido_dev_set_pin(dev, pin1, NULL)) != FIDO_OK) { warnx("fido_dev_set_pin: %s", fido_strerr(r)); goto out; @@ -76,9 +82,9 @@ pin_change(char *path) { fido_dev_t *dev = NULL; char prompt[1024]; - char pin0[1024]; - char pin1[1024]; - char pin2[1024]; + char pin0[128]; + char pin1[128]; + char pin2[128]; int r; int status = 1; @@ -98,6 +104,11 @@ pin_change(char *path) goto out; } + if (strlen(pin0) < 4 || strlen(pin0) > 63) { + warnx("invalid PIN length"); + goto out; + } + r = snprintf(prompt, sizeof(prompt), "Enter new PIN for %s: ", path); if (r < 0 || (size_t)r >= sizeof(prompt)) { warnx("snprintf"); @@ -125,6 +136,11 @@ pin_change(char *path) goto out; } + if (strlen(pin1) < 4 || strlen(pin1) > 63) { + fprintf(stderr, "invalid PIN length\n"); + goto out; + } + if ((r = fido_dev_set_pin(dev, pin1, pin0)) != FIDO_OK) { warnx("fido_dev_set_pin: %s", fido_strerr(r)); goto out; diff --git a/tools/test.sh b/tools/test.sh index 02d82d5a18cd..67b757e80a8d 100755 --- a/tools/test.sh +++ b/tools/test.sh @@ -1,8 +1,9 @@ #!/bin/sh -ex -# Copyright (c) 2021 Yubico AB. All rights reserved. +# Copyright (c) 2021-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause # usage: ./test.sh "$(mktemp -d fido2test-XXXXXXXX)" device @@ -16,6 +17,9 @@ cd "$1" DEV="$2" +TYPE="es256" +#TYPE="es384" +#TYPE="eddsa" make_cred() { sed /^$/d > cred_param << EOF @@ -24,11 +28,11 @@ $1 some user name $(dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64) EOF - fido2-cred -M $2 "${DEV}" > "$3" < cred_param + fido2-cred -M $2 "${DEV}" "${TYPE}" > "$3" < cred_param } verify_cred() { - fido2-cred -V $1 > cred_out < "$2" + fido2-cred -V $1 "${TYPE}" > cred_out < "$2" head -1 cred_out > "$3" tail -n +2 cred_out > "$4" } @@ -44,23 +48,25 @@ EOF } verify_assert() { - fido2-assert -V $1 "$2" < "$3" + fido2-assert -V $1 "$2" "${TYPE}" < "$3" } dd if=/dev/urandom bs=32 count=1 | base64 > hmac-salt # u2f -make_cred no.tld "-u" u2f -! make_cred no.tld "-ru" /dev/null -! make_cred no.tld "-uc1" /dev/null -! make_cred no.tld "-uc2" /dev/null -verify_cred "--" u2f u2f-cred u2f-pubkey -! verify_cred "-h" u2f /dev/null /dev/null -! verify_cred "-v" u2f /dev/null /dev/null -verify_cred "-c0" u2f /dev/null /dev/null -! verify_cred "-c1" u2f /dev/null /dev/null -! verify_cred "-c2" u2f /dev/null /dev/null -! verify_cred "-c3" u2f /dev/null /dev/null +if [ "x${TYPE}" = "xes256" ]; then + make_cred no.tld "-u" u2f + ! make_cred no.tld "-ru" /dev/null + ! make_cred no.tld "-uc1" /dev/null + ! make_cred no.tld "-uc2" /dev/null + verify_cred "--" u2f u2f-cred u2f-pubkey + ! verify_cred "-h" u2f /dev/null /dev/null + ! verify_cred "-v" u2f /dev/null /dev/null + verify_cred "-c0" u2f /dev/null /dev/null + ! verify_cred "-c1" u2f /dev/null /dev/null + ! verify_cred "-c2" u2f /dev/null /dev/null + ! verify_cred "-c3" u2f /dev/null /dev/null +fi # wrap (non-resident) make_cred no.tld "--" wrap @@ -105,10 +111,12 @@ verify_cred "-hc0" rk-hs /dev/null /dev/null ! verify_cred "-c3" rk-hs /dev/null /dev/null # u2f -get_assert no.tld "-u" u2f-cred /dev/null u2f-assert -! get_assert no.tld "-u -t up=false" u2f-cred /dev/null /dev/null -verify_assert "--" u2f-pubkey u2f-assert -verify_assert "-p" u2f-pubkey u2f-assert +if [ "x${TYPE}" = "xes256" ]; then + get_assert no.tld "-u" u2f-cred /dev/null u2f-assert + ! get_assert no.tld "-u -t up=false" u2f-cred /dev/null /dev/null + verify_assert "--" u2f-pubkey u2f-assert + verify_assert "-p" u2f-pubkey u2f-assert +fi # wrap (non-resident) get_assert no.tld "--" wrap-cred /dev/null wrap-assert diff --git a/tools/token.c b/tools/token.c index 9124e7b7fd29..366d5a15ab04 100644 --- a/tools/token.c +++ b/tools/token.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <fido.h> @@ -94,6 +95,22 @@ print_opt_array(const char *label, char * const *name, const bool *value, printf("\n"); } +static void +print_cert_array(const char *label, char * const *name, const uint64_t *value, + size_t len) +{ + if (len == 0) + return; + + printf("%s: ", label); + + for (size_t i = 0; i < len; i++) + printf("%s%s %llu", i > 0 ? ", " : "", name[i], + (unsigned long long)value[i]); + + printf("\n"); +} + static void print_algorithms(const fido_cbor_info_t *ci) { @@ -108,15 +125,18 @@ print_algorithms(const fido_cbor_info_t *ci) for (size_t i = 0; i < len; i++) { cose = type = "unknown"; switch (fido_cbor_info_algorithm_cose(ci, i)) { - case COSE_EDDSA: - cose = "eddsa"; - break; case COSE_ES256: cose = "es256"; break; + case COSE_ES384: + cose = "es384"; + break; case COSE_RS256: cose = "rs256"; break; + case COSE_EDDSA: + cose = "eddsa"; + break; } if (fido_cbor_info_algorithm_type(ci, i) != NULL) type = fido_cbor_info_algorithm_type(ci, i); @@ -161,6 +181,101 @@ print_maxlargeblob(uint64_t maxlargeblob) printf("maxlargeblob: %d\n", (int)maxlargeblob); } +static void +print_maxrpid_minpinlen(uint64_t maxrpid) +{ + if (maxrpid > 0) + printf("maxrpids in minpinlen: %d\n", (int)maxrpid); +} + +static void +print_minpinlen(uint64_t minpinlen) +{ + if (minpinlen > 0) + printf("minpinlen: %d\n", (int)minpinlen); +} + +static void +print_uv_attempts(uint64_t uv_attempts) +{ + if (uv_attempts > 0) + printf("platform uv attempt(s): %d\n", (int)uv_attempts); +} + +static void +print_uv_modality(uint64_t uv_modality) +{ + uint64_t mode; + bool printed = false; + + if (uv_modality == 0) + return; + + printf("uv modality: 0x%x (", (int)uv_modality); + + for (size_t i = 0; i < 64; i++) { + mode = 1ULL << i; + if ((uv_modality & mode) == 0) + continue; + if (printed) + printf(", "); + switch (mode) { + case FIDO_UV_MODE_TUP: + printf("test of user presence"); + break; + case FIDO_UV_MODE_FP: + printf("fingerprint check"); + break; + case FIDO_UV_MODE_PIN: + printf("pin check"); + break; + case FIDO_UV_MODE_VOICE: + printf("voice recognition"); + break; + case FIDO_UV_MODE_FACE: + printf("face recognition"); + break; + case FIDO_UV_MODE_LOCATION: + printf("location check"); + break; + case FIDO_UV_MODE_EYE: + printf("eyeprint check"); + break; + case FIDO_UV_MODE_DRAWN: + printf("drawn pattern check"); + break; + case FIDO_UV_MODE_HAND: + printf("handprint verification"); + break; + case FIDO_UV_MODE_NONE: + printf("none"); + break; + case FIDO_UV_MODE_ALL: + printf("all required"); + break; + case FIDO_UV_MODE_EXT_PIN: + printf("external pin"); + break; + case FIDO_UV_MODE_EXT_DRAWN: + printf("external drawn pattern check"); + break; + default: + printf("unknown 0x%llx", (unsigned long long)mode); + break; + } + printed = true; + } + + printf(")\n"); +} + +static void +print_rk_remaining(int64_t rk_remaining) +{ + if (rk_remaining != -1) + printf("remaining rk(s): %d\n", (int)rk_remaining); +} + static void print_fwversion(uint64_t fwversion) { @@ -256,6 +371,14 @@ token_info(int argc, char **argv, char *path) fido_cbor_info_options_value_ptr(ci), fido_cbor_info_options_len(ci)); + /* print certifications */ + print_cert_array("certifications", fido_cbor_info_certs_name_ptr(ci), + fido_cbor_info_certs_value_ptr(ci), + fido_cbor_info_certs_len(ci)); + + /* print firmware version */ + print_fwversion(fido_cbor_info_fwversion(ci)); + /* print maximum message size */ print_maxmsgsiz(fido_cbor_info_maxmsgsiz(ci)); @@ -268,8 +391,14 @@ token_info(int argc, char **argv, char *path) /* print maximum length of serialized largeBlob array */ print_maxlargeblob(fido_cbor_info_maxlargeblob(ci)); - /* print firmware version */ - print_fwversion(fido_cbor_info_fwversion(ci)); + /* print maximum number of RP IDs in fido_dev_set_pin_minlen_rpid() */ + print_maxrpid_minpinlen(fido_cbor_info_maxrpid_minpinlen(ci)); + + /* print estimated number of resident credentials */ + print_rk_remaining(fido_cbor_info_rk_remaining(ci)); + + /* print minimum pin length */ + print_minpinlen(fido_cbor_info_minpinlen(ci)); /* print supported pin protocols */ print_byte_array("pin protocols", fido_cbor_info_protocols_ptr(ci), @@ -280,11 +409,20 @@ token_info(int argc, char **argv, char *path) else printf("pin retries: %d\n", retrycnt); + printf("pin change required: %s\n", + fido_cbor_info_new_pin_required(ci) ? "true" : "false"); + if (fido_dev_get_uv_retry_count(dev, &retrycnt) != FIDO_OK) printf("uv retries: undefined\n"); else printf("uv retries: %d\n", retrycnt); + /* print platform uv attempts */ + print_uv_attempts(fido_cbor_info_uv_attempts(ci)); + + /* print supported uv mechanisms */ + print_uv_modality(fido_cbor_info_uv_modality(ci)); + bio_info(dev); fido_cbor_info_free(&ci); diff --git a/tools/util.c b/tools/util.c index 612d81b2000c..0e518bbc5ce2 100644 --- a/tools/util.c +++ b/tools/util.c @@ -1,7 +1,8 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. + * SPDX-License-Identifier: BSD-2-Clause */ #include <sys/types.h> @@ -13,6 +14,7 @@ #include <fido.h> #include <fido/es256.h> +#include <fido/es384.h> #include <fido/rs256.h> #include <fido/eddsa.h> @@ -244,7 +246,7 @@ read_ec_pubkey(const char *path) } int -write_ec_pubkey(FILE *f, const void *ptr, size_t len) +write_es256_pubkey(FILE *f, const void *ptr, size_t len) { EVP_PKEY *pkey = NULL; es256_pk_t *pk = NULL; @@ -281,6 +283,44 @@ write_ec_pubkey(FILE *f, const void *ptr, size_t len) return (ok); } +int +write_es384_pubkey(FILE *f, const void *ptr, size_t len) +{ + EVP_PKEY *pkey = NULL; + es384_pk_t *pk = NULL; + int ok = -1; + + if ((pk = es384_pk_new()) == NULL) { + warnx("es384_pk_new"); + goto fail; + } + + if (es384_pk_from_ptr(pk, ptr, len) != FIDO_OK) { + warnx("es384_pk_from_ptr"); + goto fail; + } + + if ((pkey = es384_pk_to_EVP_PKEY(pk)) == NULL) { + warnx("es384_pk_to_EVP_PKEY"); + goto fail; + } + + if (PEM_write_PUBKEY(f, pkey) == 0) { + warnx("PEM_write_PUBKEY"); + goto fail; + } + + ok = 0; +fail: + es384_pk_free(&pk); + + if (pkey != NULL) { + EVP_PKEY_free(pkey); + } + + return (ok); +} + RSA * read_rsa_pubkey(const char *path) { @@ -425,16 +465,24 @@ print_cred(FILE *out_f, int type, const fido_cred_t *cred) fprintf(out_f, "%s\n", id); - if (type == COSE_ES256) { - write_ec_pubkey(out_f, fido_cred_pubkey_ptr(cred), + switch (type) { + case COSE_ES256: + write_es256_pubkey(out_f, fido_cred_pubkey_ptr(cred), fido_cred_pubkey_len(cred)); - } else if (type == COSE_RS256) { + break; + case COSE_ES384: + write_es384_pubkey(out_f, fido_cred_pubkey_ptr(cred), + fido_cred_pubkey_len(cred)); + break; + case COSE_RS256: write_rsa_pubkey(out_f, fido_cred_pubkey_ptr(cred), fido_cred_pubkey_len(cred)); - } else if (type == COSE_EDDSA) { + break; + case COSE_EDDSA: write_eddsa_pubkey(out_f, fido_cred_pubkey_ptr(cred), fido_cred_pubkey_len(cred)); - } else { + break; + default: errx(1, "print_cred: unknown type"); } @@ -446,6 +494,8 @@ cose_type(const char *str, int *type) { if (strcmp(str, "es256") == 0) *type = COSE_ES256; + else if (strcmp(str, "es384") == 0) + *type = COSE_ES384; else if (strcmp(str, "rs256") == 0) *type = COSE_RS256; else if (strcmp(str, "eddsa") == 0) @@ -462,12 +512,14 @@ const char * cose_string(int type) { switch (type) { - case COSE_EDDSA: - return ("eddsa"); case COSE_ES256: return ("es256"); + case COSE_ES384: + return ("es384"); case COSE_RS256: return ("rs256"); + case COSE_EDDSA: + return ("eddsa"); default: return ("unknown"); } diff --git a/udev/70-u2f.rules b/udev/70-u2f.rules index 6e1f88bbd042..913bef2a9936 100644 --- a/udev/70-u2f.rules +++ b/udev/70-u2f.rules @@ -1,9 +1,32 @@ # Copyright (c) 2020 Yubico AB. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. +# +# 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +# "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 COPYRIGHT +# HOLDER OR CONTRIBUTORS 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. +# +# SPDX-License-Identifier: BSD-2-Clause -# This file is automatically generated, and should -# be used with udev 188 or newer. +# This file is automatically generated, and should be used with udev 188 +# or newer. ACTION!="add|change", GOTO="fido_end" diff --git a/udev/CMakeLists.txt b/udev/CMakeLists.txt index 29a9d41fe37d..abddb80f4d82 100644 --- a/udev/CMakeLists.txt +++ b/udev/CMakeLists.txt @@ -1,6 +1,7 @@ # Copyright (c) 2018 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause if(UDEV_RULES_DIR) install(FILES 70-u2f.rules DESTINATION ${UDEV_RULES_DIR}) diff --git a/udev/check.sh b/udev/check.sh index 97bbb97b26c8..804a8843b378 100755 --- a/udev/check.sh +++ b/udev/check.sh @@ -3,6 +3,7 @@ # Copyright (c) 2020 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause sort_by_id() { awk '{ printf "%d\n", $3 }' | sort -Cnu diff --git a/udev/fidodevs b/udev/fidodevs index d519acd2ca73..d8a80fc1a4ee 100644 --- a/udev/fidodevs +++ b/udev/fidodevs @@ -1,6 +1,7 @@ # Copyright (c) 2020 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause # After modifying this file, regenerate 70-u2f.rules: # ./genrules.awk fidodevs > 70-u2f.rules diff --git a/udev/genrules.awk b/udev/genrules.awk index 2a85c7cbf98f..3dad667da923 100755 --- a/udev/genrules.awk +++ b/udev/genrules.awk @@ -3,14 +3,38 @@ # Copyright (c) 2020 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause NR == 1 { print "# Copyright (c) 2020 Yubico AB. All rights reserved." - print "# Use of this source code is governed by a BSD-style" - print "# license that can be found in the LICENSE file." + print "#" + print "# Redistribution and use in source and binary forms, with or without" + print "# modification, are permitted provided that the following conditions are" + print "# met:" + print "# " + print "# 1. Redistributions of source code must retain the above copyright" + print "# notice, this list of conditions and the following disclaimer." + print "# 2. Redistributions in binary form must reproduce the above copyright" + print "# notice, this list of conditions and the following disclaimer in" + print "# the documentation and/or other materials provided with the" + print "# distribution." + print "# " + print "# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS" + print "# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT" + print "# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR" + print "# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT" + print "# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL," + print "# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT" + print "# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE," + print "# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY" + print "# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT" + print "# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE" + print "# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + print "#" + print "# SPDX-License-Identifier: BSD-2-Clause" print "" - print "# This file is automatically generated, and should" - print "# be used with udev 188 or newer." + print "# This file is automatically generated, and should be used with udev 188" + print "# or newer." print "" print "ACTION!=\"add|change\", GOTO=\"fido_end\"" diff --git a/windows/build.ps1 b/windows/build.ps1 index bd63c7f21095..4c3a9699b07a 100644 --- a/windows/build.ps1 +++ b/windows/build.ps1 @@ -1,6 +1,7 @@ # Copyright (c) 2021-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause param( [string]$CMakePath = "C:\Program Files\CMake\bin\cmake.exe", diff --git a/windows/const.ps1 b/windows/const.ps1 index 8acc2b2e829a..31426e99fec6 100644 --- a/windows/const.ps1 +++ b/windows/const.ps1 @@ -1,12 +1,13 @@ # Copyright (c) 2021 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause # LibreSSL coordinates. New-Variable -Name 'LIBRESSL_URL' ` -Value 'https://fastly.cdn.openbsd.org/pub/OpenBSD/LibreSSL' ` -Option Constant -New-Variable -Name 'LIBRESSL' -Value 'libressl-3.5.2' -Option Constant +New-Variable -Name 'LIBRESSL' -Value 'libressl-3.5.3' -Option Constant # libcbor coordinates. New-Variable -Name 'LIBCBOR' -Value 'libcbor-0.9.0' -Option Constant diff --git a/windows/cygwin.ps1 b/windows/cygwin.ps1 index 6e602b6d9474..0681830a911d 100755 --- a/windows/cygwin.ps1 +++ b/windows/cygwin.ps1 @@ -1,6 +1,7 @@ # Copyright (c) 2021 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause param( [string]$GPGPath = "C:\Program Files (x86)\GnuPG\bin\gpg.exe", diff --git a/windows/release.ps1 b/windows/release.ps1 index 6f3f4e9600df..423ec20f7e59 100644 --- a/windows/release.ps1 +++ b/windows/release.ps1 @@ -1,6 +1,7 @@ # Copyright (c) 2021-2022 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause $ErrorActionPreference = "Stop" $Architectures = @('x64', 'Win32', 'ARM64', 'ARM') From 00db45a65823dc224f3630bc8185e789064fef6a Mon Sep 17 00:00:00 2001 From: Ed Maste <emaste@FreeBSD.org> Date: Wed, 26 Apr 2023 12:40:46 -0400 Subject: [PATCH 3/3] Vendor import of libfido2 0.13.0 --- CMakeLists.txt | 91 ++++++++++++++++++++++++------------ LICENSE | 2 +- NEWS | 8 ++++ README.adoc | 3 +- examples/README.adoc | 9 ++-- fuzz/CMakeLists.txt | 52 +++++++++++++-------- fuzz/Dockerfile | 4 +- fuzz/Makefile | 4 +- fuzz/README | 15 +++--- fuzz/build-coverage | 6 ++- fuzz/fuzz_assert.c | 2 +- fuzz/fuzz_bio.c | 2 +- fuzz/fuzz_cred.c | 2 +- fuzz/fuzz_credman.c | 2 +- fuzz/fuzz_hid.c | 2 +- fuzz/fuzz_largeblob.c | 2 +- fuzz/fuzz_mgmt.c | 2 +- fuzz/fuzz_netlink.c | 2 +- fuzz/fuzz_pcsc.c | 2 +- man/CMakeLists.txt | 8 ++-- man/fido_assert_allow_cred.3 | 18 +++++-- man/fido_cred_exclude.3 | 18 +++++-- src/assert.c | 11 ++++- src/cred.c | 12 ++++- src/eddsa.c | 2 +- src/export.gnu | 2 + src/export.llvm | 2 + src/export.msvc | 2 + src/fido.h | 2 + src/fido/eddsa.h | 2 +- src/tpm.c | 2 +- src/winhello.c | 34 ++++---------- tools/largeblob.c | 58 ++++++++++++++++------- udev/70-u2f.rules | 3 ++ udev/fidodevs | 1 + windows/build.ps1 | 7 +-- windows/const.ps1 | 13 +++--- windows/release.ps1 | 11 ++--- 38 files changed, 265 insertions(+), 155 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dc31cc0d4806..6fa341a01cc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,17 +29,17 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_COLOR_MAKEFILE OFF) set(CMAKE_VERBOSE_MAKEFILE ON) set(FIDO_MAJOR "1") -set(FIDO_MINOR "12") +set(FIDO_MINOR "13") set(FIDO_PATCH "0") set(FIDO_VERSION ${FIDO_MAJOR}.${FIDO_MINOR}.${FIDO_PATCH}) +option(BUILD_TESTS "Build the regress tests" ON) option(BUILD_EXAMPLES "Build example programs" ON) option(BUILD_MANPAGES "Build man pages" ON) option(BUILD_SHARED_LIBS "Build a shared library" ON) option(BUILD_STATIC_LIBS "Build a static library" ON) option(BUILD_TOOLS "Build tool programs" ON) option(FUZZ "Enable fuzzing instrumentation" OFF) -option(LIBFUZZER "Build libfuzzer harnesses" OFF) option(USE_HIDAPI "Use hidapi as the HID backend" OFF) option(USE_PCSC "Enable experimental PCSC support" OFF) option(USE_WINHELLO "Abstract Windows Hello as a FIDO device" ON) @@ -49,6 +49,14 @@ add_definitions(-D_FIDO_MAJOR=${FIDO_MAJOR}) add_definitions(-D_FIDO_MINOR=${FIDO_MINOR}) add_definitions(-D_FIDO_PATCH=${FIDO_PATCH}) +if(BUILD_SHARED_LIBS) + set(_FIDO2_LIBRARY fido2_shared) +elseif(BUILD_STATIC_LIBS) + set(_FIDO2_LIBRARY fido2) +else() + message(FATAL_ERROR "Nothing to build (BUILD_*_LIBS=OFF)") +endif() + if(CYGWIN OR MSYS OR MINGW) set(WIN32 1) endif() @@ -151,7 +159,7 @@ foreach(v ${CHECK_VARIABLES}) endif() endforeach() -if(HAVE_EXPLICIT_BZERO AND NOT LIBFUZZER) +if(HAVE_EXPLICIT_BZERO AND NOT FUZZ) add_definitions(-DHAVE_EXPLICIT_BZERO) endif() @@ -159,19 +167,30 @@ if(UNIX) add_definitions(-DHAVE_DEV_URANDOM) endif() + if(MSVC) if((NOT CBOR_INCLUDE_DIRS) OR (NOT CBOR_LIBRARY_DIRS) OR - (NOT CBOR_BIN_DIRS) OR (NOT CRYPTO_INCLUDE_DIRS) OR - (NOT CRYPTO_LIBRARY_DIRS) OR (NOT CRYPTO_BIN_DIRS) OR - (NOT ZLIB_INCLUDE_DIRS) OR (NOT ZLIB_LIBRARY_DIRS) OR - (NOT ZLIB_BIN_DIRS)) + (NOT CRYPTO_INCLUDE_DIRS) OR (NOT CRYPTO_LIBRARY_DIRS) OR + (NOT ZLIB_INCLUDE_DIRS) OR (NOT ZLIB_LIBRARY_DIRS)) message(FATAL_ERROR "please define " - "{CBOR,CRYPTO,ZLIB}_{INCLUDE,LIBRARY,BIN}_DIRS when " + "{CBOR,CRYPTO,ZLIB}_{INCLUDE,LIBRARY}_DIRS when " "building under msvc") endif() - set(CBOR_LIBRARIES cbor) - set(ZLIB_LIBRARIES zlib1) - set(CRYPTO_LIBRARIES crypto-49) + if(BUILD_TESTS AND BUILD_SHARED_LIBS AND + ((NOT CBOR_BIN_DIRS) OR (NOT ZLIB_BIN_DIRS) OR (NOT CRYPTO_BIN_DIRS))) + message(FATAL_ERROR "please define {CBOR,CRYPTO,ZLIB}_BIN_DIRS " + "when building tests") + endif() + if(NOT CBOR_LIBRARIES) + set(CBOR_LIBRARIES cbor) + endif() + if(NOT ZLIB_LIBRARIES) + set(ZLIB_LIBRARIES zlib1) + endif() + if(NOT CRYPTO_LIBRARIES) + set(CRYPTO_LIBRARIES crypto) + endif() + set(MSVC_DISABLED_WARNINGS_LIST "C4152" # nonstandard extension used: function/data pointer # conversion in expression; @@ -213,8 +232,12 @@ else() message(FATAL_ERROR "could not find zlib") endif() - set(CBOR_LIBRARIES "cbor") - set(CRYPTO_LIBRARIES "crypto") + if(NOT CBOR_LIBRARIES) + set(CBOR_LIBRARIES "cbor") + endif() + if(NOT CRYPTO_LIBRARIES) + set(CRYPTO_LIBRARIES "crypto") + endif() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") pkg_search_module(UDEV libudev REQUIRED) @@ -305,9 +328,7 @@ else() add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) endif() - if(LIBFUZZER) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer-no-link") - else() + if(NOT FUZZ) set(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wframe-larger-than=2047") endif() endif() @@ -391,6 +412,9 @@ message(STATUS "BUILD_TOOLS: ${BUILD_TOOLS}") message(STATUS "CBOR_INCLUDE_DIRS: ${CBOR_INCLUDE_DIRS}") message(STATUS "CBOR_LIBRARIES: ${CBOR_LIBRARIES}") message(STATUS "CBOR_LIBRARY_DIRS: ${CBOR_LIBRARY_DIRS}") +if(BUILD_TESTS) + message(STATUS "CBOR_BIN_DIRS: ${CBOR_BIN_DIRS}") +endif() message(STATUS "CBOR_VERSION: ${CBOR_VERSION}") message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") @@ -408,12 +432,21 @@ message(STATUS "CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}") message(STATUS "CRYPTO_INCLUDE_DIRS: ${CRYPTO_INCLUDE_DIRS}") message(STATUS "CRYPTO_LIBRARIES: ${CRYPTO_LIBRARIES}") message(STATUS "CRYPTO_LIBRARY_DIRS: ${CRYPTO_LIBRARY_DIRS}") +if(BUILD_TESTS) + message(STATUS "CRYPTO_BIN_DIRS: ${CRYPTO_BIN_DIRS}") +endif() message(STATUS "CRYPTO_VERSION: ${CRYPTO_VERSION}") message(STATUS "FIDO_VERSION: ${FIDO_VERSION}") message(STATUS "FUZZ: ${FUZZ}") +if(FUZZ) + message(STATUS "FUZZ_LDFLAGS: ${FUZZ_LDFLAGS}") +endif() message(STATUS "ZLIB_INCLUDE_DIRS: ${ZLIB_INCLUDE_DIRS}") message(STATUS "ZLIB_LIBRARIES: ${ZLIB_LIBRARIES}") message(STATUS "ZLIB_LIBRARY_DIRS: ${ZLIB_LIBRARY_DIRS}") +if(BUILD_TESTS) + message(STATUS "ZLIB_BIN_DIRS: ${ZLIB_BIN_DIRS}") +endif() message(STATUS "ZLIB_VERSION: ${ZLIB_VERSION}") if(USE_HIDAPI) message(STATUS "HIDAPI_INCLUDE_DIRS: ${HIDAPI_INCLUDE_DIRS}") @@ -425,7 +458,6 @@ message(STATUS "PCSC_INCLUDE_DIRS: ${PCSC_INCLUDE_DIRS}") message(STATUS "PCSC_LIBRARIES: ${PCSC_LIBRARIES}") message(STATUS "PCSC_LIBRARY_DIRS: ${PCSC_LIBRARY_DIRS}") message(STATUS "PCSC_VERSION: ${PCSC_VERSION}") -message(STATUS "LIBFUZZER: ${LIBFUZZER}") message(STATUS "TLS: ${TLS}") message(STATUS "UDEV_INCLUDE_DIRS: ${UDEV_INCLUDE_DIRS}") message(STATUS "UDEV_LIBRARIES: ${UDEV_LIBRARIES}") @@ -437,33 +469,30 @@ message(STATUS "USE_PCSC: ${USE_PCSC}") message(STATUS "USE_WINHELLO: ${USE_WINHELLO}") message(STATUS "NFC_LINUX: ${NFC_LINUX}") -if(BUILD_SHARED_LIBS) - set(_FIDO2_LIBRARY fido2_shared) -elseif(BUILD_STATIC_LIBS) - set(_FIDO2_LIBRARY fido2) -else() - message(FATAL_ERROR "Nothing to build (BUILD_*_LIBS=OFF)") +if(BUILD_TESTS) + enable_testing() endif() -enable_testing() +add_subdirectory(src) -subdirs(src) -subdirs(regress) +if(BUILD_TESTS) + add_subdirectory(regress) +endif() if(BUILD_EXAMPLES) - subdirs(examples) + add_subdirectory(examples) endif() if(BUILD_TOOLS) - subdirs(tools) + add_subdirectory(tools) endif() if(BUILD_MANPAGES) - subdirs(man) + add_subdirectory(man) endif() if(NOT WIN32) if(FUZZ) - subdirs(fuzz) + add_subdirectory(fuzz) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - subdirs(udev) + add_subdirectory(udev) endif() endif() diff --git a/LICENSE b/LICENSE index 359c853fb448..ad0e13358930 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2022 Yubico AB. All rights reserved. +Copyright (c) 2018-2023 Yubico AB. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/NEWS b/NEWS index a5353cfb952e..bf648aabfd92 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,11 @@ +* Version 1.13.0 (2023-02-20) + ** Support for linking against OpenSSL on Windows; gh#668. + ** New API calls: + - fido_assert_empty_allow_list; + - fido_cred_empty_exclude_list. + ** fido2-token: fix issue when listing large blobs. + ** Improved support for different fuzzing engines. + * Version 1.12.0 (2022-09-22) ** Support for COSE_ES384. ** Support for hidraw(4) on FreeBSD; gh#597. diff --git a/README.adoc b/README.adoc index 6d6a96eb1712..44d559894dac 100644 --- a/README.adoc +++ b/README.adoc @@ -38,7 +38,7 @@ is also available. === Releases -The current release of *libfido2* is 1.12.0. Signed release tarballs are +The current release of *libfido2* is 1.13.0. Signed release tarballs are available at Yubico's https://developers.yubico.com/libfido2/Releases[release page]. @@ -119,7 +119,6 @@ officially supported. | BUILD_STATIC_LIBS | Build a static library | ON | BUILD_TOOLS | Build auxiliary tools | ON | FUZZ | Enable fuzzing instrumentation | OFF -| LIBFUZZER | Build libfuzzer harnesses | OFF | NFC_LINUX | Enable netlink NFC support on Linux | ON | USE_HIDAPI | Use hidapi as the HID backend | OFF | USE_PCSC | Enable experimental PCSC support | OFF diff --git a/examples/README.adoc b/examples/README.adoc index 6853757acad1..d44218c2cf87 100644 --- a/examples/README.adoc +++ b/examples/README.adoc @@ -20,8 +20,7 @@ The following definitions are used in the description below: - <pubkey> - The file system path of a file containing a NIST P-256 public key in - PEM format. + The file system path of a file containing a public key in PEM format. - <blobkey> @@ -72,8 +71,10 @@ The following examples are provided: Asks <device> for a FIDO2 assertion corresponding to [cred_id], which may be omitted for resident keys. The obtained assertion is verified using <pubkey>. The -p option requests that the user - be present. User verification may be requested through the -v - option. If option -u is specified, the assertion is generated using + be present and checks whether the user presence bit was signed by the + authenticator. The -v option requests user verification and checks + whether the user verification bit was signed by the authenticator. + If option -u is specified, the assertion is generated using U2F (CTAP1) instead of FIDO2 (CTAP2) commands. If option -s is specified, a FIDO2 hmac-secret is requested from the authenticator, and the contents of <hmac_salt> are used as the salt. If option -h diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index 52355c1ab6b0..cc30baae88f2 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Yubico AB. All rights reserved. +# Copyright (c) 2019-2023 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # SPDX-License-Identifier: BSD-2-Clause @@ -13,58 +13,70 @@ list(APPEND COMMON_SOURCES mutator_aux.c ) -set(FUZZ_LDFLAGS "-fsanitize=fuzzer") +# XXX: OSS-Fuzz require linking using CXX +set(FUZZ_LINKER_LANGUAGE "C" CACHE STRING "Linker language for fuzz harnesses") +mark_as_advanced(FUZZ_LINKER_LANGUAGE) +enable_language(${FUZZ_LINKER_LANGUAGE}) # fuzz_cred add_executable(fuzz_cred fuzz_cred.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_cred PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_cred PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_cred PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_cred fido2_shared) # fuzz_assert add_executable(fuzz_assert fuzz_assert.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_assert PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_assert PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_assert PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_assert fido2_shared) # fuzz_mgmt add_executable(fuzz_mgmt fuzz_mgmt.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_mgmt PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_mgmt PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_mgmt PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_mgmt fido2_shared) # fuzz_credman add_executable(fuzz_credman fuzz_credman.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_credman PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_credman PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_credman PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_credman fido2_shared) # fuzz_bio add_executable(fuzz_bio fuzz_bio.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_bio PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_bio PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_bio PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_bio fido2_shared) # fuzz_hid add_executable(fuzz_hid fuzz_hid.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_hid PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_hid PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_hid PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_hid fido2_shared) # fuzz_netlink add_executable(fuzz_netlink fuzz_netlink.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_netlink PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_netlink PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_netlink PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_netlink fido2_shared) # fuzz_largeblob add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_largeblob PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_largeblob PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_largeblob PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_largeblob fido2_shared) # fuzz_pcsc add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) -target_compile_options(fuzz_pcsc PRIVATE ${FUZZ_LDFLAGS}) -set_target_properties(fuzz_pcsc PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_pcsc PROPERTIES + LINK_FLAGS ${FUZZ_LDFLAGS} + LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) target_link_libraries(fuzz_pcsc fido2_shared) diff --git a/fuzz/Dockerfile b/fuzz/Dockerfile index 0c99f2c95aaf..9cda37589b44 100644 --- a/fuzz/Dockerfile +++ b/fuzz/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (c) 2019-2022 Yubico AB. All rights reserved. +# Copyright (c) 2019-2023 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # SPDX-License-Identifier: BSD-2-Clause @@ -10,7 +10,7 @@ RUN apk -q update RUN apk add build-base clang clang-analyzer cmake compiler-rt coreutils RUN apk add eudev-dev git linux-headers llvm openssl-dev pcsc-lite-dev RUN apk add sudo tar zlib-dev -RUN git clone --branch v0.9.0 --depth=1 https://github.com/PJK/libcbor +RUN git clone --branch v0.10.1 --depth=1 https://github.com/PJK/libcbor RUN git clone --depth=1 https://github.com/yubico/libfido2 WORKDIR /libfido2 RUN ./fuzz/build-coverage /libcbor /libfido2 diff --git a/fuzz/Makefile b/fuzz/Makefile index 857c89ee0742..0e6756f0ada1 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -1,9 +1,9 @@ -# Copyright (c) 2019-2022 Yubico AB. All rights reserved. +# Copyright (c) 2019-2023 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # SPDX-License-Identifier: BSD-2-Clause -IMAGE := libfido2-coverage:1.12.2 +IMAGE := libfido2-coverage:1.13.1 RUNNER := libfido2-runner PROFDATA := llvm-profdata COV := llvm-cov diff --git a/fuzz/README b/fuzz/README index 2e88db74975e..427625c6e714 100644 --- a/fuzz/README +++ b/fuzz/README @@ -8,7 +8,8 @@ use preload-fuzz.c to read device data from stdin. libFuzzer is better suited for bespoke fuzzers; see fuzz_cred.c, fuzz_credman.c, fuzz_assert.c, fuzz_hid.c, and fuzz_mgmt.c for examples. To build these -harnesses, use -DFUZZ=ON -DLIBFUZZER=ON. +harnesses, use -DCMAKE_C_FLAGS=-fsanitize=fuzzer-no-link +-DFUZZ_LDFLAGS=-fsanitize=fuzzer -DFUZZ=ON. If -DFUZZ=ON is enabled, symbols listed in wrapped.sym are wrapped in the resulting shared object. The wrapper functions simulate failure according to a @@ -21,20 +22,22 @@ To run under ASAN/MSAN/UBSAN, libfido2 needs to be linked against flavours of libcbor and OpenSSL built with the respective sanitiser. In order to keep memory utilisation at a manageable level, you can either enforce limits at the OS level (e.g. cgroups on Linux), or patch libcbor with the diff below. +N.B., the patch below is relative to libcbor 0.10.1. diff --git src/cbor/internal/memory_utils.c src/cbor/internal/memory_utils.c -index aa049a2..e294b38 100644 +index bbea63c..3f7c9af 100644 --- src/cbor/internal/memory_utils.c +++ src/cbor/internal/memory_utils.c -@@ -28,7 +28,10 @@ bool _cbor_safe_to_multiply(size_t a, size_t b) { +@@ -41,7 +41,11 @@ size_t _cbor_safe_signaling_add(size_t a, size_t b) { void* _cbor_alloc_multiple(size_t item_size, size_t item_count) { if (_cbor_safe_to_multiply(item_size, item_count)) { -- return _CBOR_MALLOC(item_size * item_count); +- return _cbor_malloc(item_size * item_count); + if (item_count > 1000) { + return NULL; -+ } else -+ return _CBOR_MALLOC(item_size * item_count); ++ } else { ++ return _cbor_malloc(item_size * item_count); ++ } } else { return NULL; } diff --git a/fuzz/build-coverage b/fuzz/build-coverage index 8c989fc0cb6d..6cc5041a1db2 100755 --- a/fuzz/build-coverage +++ b/fuzz/build-coverage @@ -26,7 +26,9 @@ make -C "${LIBCBOR}/build" VERBOSE=1 all install # Build libfido2. mkdir -p "${LIBFIDO2}/build" export CFLAGS="-fprofile-instr-generate -fcoverage-mapping" +export CFLAGS="${CFLAGS} -fsanitize=fuzzer-no-link" export LDFLAGS="${CFLAGS}" -(cd "${LIBFIDO2}/build" && cmake -DFUZZ=ON -DLIBFUZZER=ON \ - -DCMAKE_BUILD_TYPE=Debug ..) +export FUZZ_LDFLAGS="${LDFLAGS} -fsanitize=fuzzer" +(cd "${LIBFIDO2}/build" && cmake -DFUZZ=ON -DFUZZ_LDFLAGS="${FUZZ_LDFLAGS}" \ + -DCMAKE_BUILD_TYPE=Debug ..) make -C "${LIBFIDO2}/build" diff --git a/fuzz/fuzz_assert.c b/fuzz/fuzz_assert.c index 603957ec2bac..9f39f3d6ecb7 100644 --- a/fuzz/fuzz_assert.c +++ b/fuzz/fuzz_assert.c @@ -141,7 +141,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_bio.c b/fuzz/fuzz_bio.c index 6ebfd151a3d8..0c6b12c4b7c3 100644 --- a/fuzz/fuzz_bio.c +++ b/fuzz/fuzz_bio.c @@ -155,7 +155,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_cred.c b/fuzz/fuzz_cred.c index a0866dc6e133..497298f70290 100644 --- a/fuzz/fuzz_cred.c +++ b/fuzz/fuzz_cred.c @@ -151,7 +151,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_credman.c b/fuzz/fuzz_credman.c index 1cb95dce3fab..ef2147581564 100644 --- a/fuzz/fuzz_credman.c +++ b/fuzz/fuzz_credman.c @@ -142,7 +142,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_hid.c b/fuzz/fuzz_hid.c index 27ccb2feadfa..daaadadf19bc 100644 --- a/fuzz/fuzz_hid.c +++ b/fuzz/fuzz_hid.c @@ -105,7 +105,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_largeblob.c b/fuzz/fuzz_largeblob.c index 432629681e58..6cdc0c0d57cb 100644 --- a/fuzz/fuzz_largeblob.c +++ b/fuzz/fuzz_largeblob.c @@ -119,7 +119,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_mgmt.c b/fuzz/fuzz_mgmt.c index 6a5e7b667952..cbc313d1f793 100644 --- a/fuzz/fuzz_mgmt.c +++ b/fuzz/fuzz_mgmt.c @@ -139,7 +139,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_netlink.c b/fuzz/fuzz_netlink.c index 2fa897e46fe3..4d28129c3567 100644 --- a/fuzz/fuzz_netlink.c +++ b/fuzz/fuzz_netlink.c @@ -76,7 +76,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/fuzz/fuzz_pcsc.c b/fuzz/fuzz_pcsc.c index f0f6ccaad13e..cf6210b71be5 100644 --- a/fuzz/fuzz_pcsc.c +++ b/fuzz/fuzz_pcsc.c @@ -94,7 +94,7 @@ pack(uint8_t *ptr, size_t len, const struct param *p) goto fail; if ((cbor_len = cbor_serialize_alloc(array, &cbor, - &cbor_alloc_len)) > len) { + &cbor_alloc_len)) == 0 || cbor_len > len) { cbor_len = 0; goto fail; } diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index cf32a3a94208..a47767fb6d4b 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -59,6 +59,7 @@ list(APPEND MAN_ALIAS es384_pk_new es384_pk_from_EVP_PKEY es384_pk_new es384_pk_from_ptr es384_pk_new es384_pk_to_EVP_PKEY + fido_assert_allow_cred fido_assert_empty_allow_list fido_assert_new fido_assert_authdata_len fido_assert_new fido_assert_authdata_ptr fido_assert_new fido_assert_blob_len @@ -149,6 +150,7 @@ list(APPEND MAN_ALIAS fido_cbor_info_new fido_cbor_info_versions_len fido_cbor_info_new fido_cbor_info_versions_ptr fido_cbor_info_new fido_dev_get_cbor_info + fido_cred_exclude fido_cred_empty_exclude_list fido_cred_new fido_cred_aaguid_len fido_cred_new fido_cred_aaguid_ptr fido_cred_new fido_cred_attstmt_len @@ -295,7 +297,7 @@ endforeach() # man_html foreach(f ${MAN_SOURCES}) - string(REGEX REPLACE ".[13]" "" g ${f}) + string(REGEX REPLACE "\\.[13]$" "" g ${f}) add_custom_command(OUTPUT ${g}.html COMMAND mandoc -T html -O man="%N.html",style=style.css -I os="Yubico AB" ${f} > ${g}.html DEPENDS ${f}) @@ -304,7 +306,7 @@ endforeach() # man_html_partial foreach(f ${MAN_SOURCES}) - string(REGEX REPLACE ".[13]" "" g ${f}) + string(REGEX REPLACE "\\.[13]$" "" g ${f}) add_custom_command(OUTPUT ${g}.partial COMMAND cat ${PROJECT_SOURCE_DIR}/man/dyc.css > ${g}.partial COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial @@ -357,7 +359,7 @@ if(MANDOC_PATH) install(FILES ${PROJECT_SOURCE_DIR}/man/style.css DESTINATION "${CMAKE_INSTALL_DOCDIR}/html") foreach(f ${MAN_SOURCES}) - string(REGEX REPLACE ".[13]" "" f ${f}) + string(REGEX REPLACE "\\.[13]$" "" f ${f}) install(FILES ${PROJECT_BINARY_DIR}/man/${f}.html DESTINATION "${CMAKE_INSTALL_DOCDIR}/html") endforeach() diff --git a/man/fido_assert_allow_cred.3 b/man/fido_assert_allow_cred.3 index 0690efcff4ba..652013734295 100644 --- a/man/fido_assert_allow_cred.3 +++ b/man/fido_assert_allow_cred.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions are @@ -25,16 +25,19 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd $Mdocdate: May 23 2018 $ +.Dd $Mdocdate: December 1 2022 $ .Dt FIDO_ASSERT_ALLOW_CRED 3 .Os .Sh NAME -.Nm fido_assert_allow_cred -.Nd allow a credential in a FIDO2 assertion +.Nm fido_assert_allow_cred , +.Nm fido_assert_empty_allow_list +.Nd manage allow lists in a FIDO2 assertion .Sh SYNOPSIS .In fido.h .Ft int .Fn fido_assert_allow_cred "fido_assert_t *assert" "const unsigned char *ptr" "size_t len" +.Ft int +.Fn fido_assert_empty_allow_list "fido_assert_t *assert" .Sh DESCRIPTION The .Fn fido_assert_allow_cred @@ -56,9 +59,16 @@ fails, the existing list of allowed credentials is preserved. .Pp For the format of a FIDO2 credential ID, please refer to the Web Authentication (webauthn) standard. +.Pp +The +.Fn fido_assert_empty_allow_list +function empties the list of credentials allowed in +.Fa assert . .Sh RETURN VALUES The error codes returned by .Fn fido_assert_allow_cred +and +.Fn fido_assert_empty_allow_list are defined in .In fido/err.h . On success, diff --git a/man/fido_cred_exclude.3 b/man/fido_cred_exclude.3 index 0d4ba75ecbef..d5e840d56e11 100644 --- a/man/fido_cred_exclude.3 +++ b/man/fido_cred_exclude.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions are @@ -25,16 +25,19 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd $Mdocdate: May 23 2018 $ +.Dd $Mdocdate: December 2 2022 $ .Dt FIDO_CRED_EXCLUDE 3 .Os .Sh NAME -.Nm fido_cred_exclude -.Nd appends a credential ID to a credential's list of excluded credentials +.Nm fido_cred_exclude , +.Nm fido_cred_empty_exclude_list +.Nd manage exclude lists in a FIDO2 credential .Sh SYNOPSIS .In fido.h .Ft int .Fn fido_cred_exclude "fido_cred_t *cred" "const unsigned char *ptr" "size_t len" +.Ft int +.Fn fido_cred_empty_exclude_list "fido_cred_t *cred" .Sh DESCRIPTION The .Fn fido_cred_exclude @@ -69,9 +72,16 @@ will fail. .Pp For the format of a FIDO2 credential ID, please refer to the Web Authentication (webauthn) standard. +.Pp +The +.Fn fido_cred_empty_exclude_list +function empties the list of credentials excluded by +.Fa cred . .Sh RETURN VALUES The error codes returned by .Fn fido_cred_exclude +and +.Fn fido_cred_empty_exclude_list are defined in .In fido/err.h . On success, diff --git a/src/assert.c b/src/assert.c index a690f46dc882..dabe8b9fdcf7 100644 --- a/src/assert.c +++ b/src/assert.c @@ -673,7 +673,15 @@ fido_assert_allow_cred(fido_assert_t *assert, const unsigned char *ptr, free(id.ptr); return (r); +} +int +fido_assert_empty_allow_list(fido_assert_t *assert) +{ + fido_free_blob_array(&assert->allow_list); + memset(&assert->allow_list, 0, sizeof(assert->allow_list)); + + return (FIDO_OK); } int @@ -740,9 +748,8 @@ fido_assert_reset_tx(fido_assert_t *assert) fido_blob_reset(&assert->cd); fido_blob_reset(&assert->cdh); fido_blob_reset(&assert->ext.hmac_salt); - fido_free_blob_array(&assert->allow_list); + fido_assert_empty_allow_list(assert); memset(&assert->ext, 0, sizeof(assert->ext)); - memset(&assert->allow_list, 0, sizeof(assert->allow_list)); assert->rp_id = NULL; assert->up = FIDO_OPT_OMIT; assert->uv = FIDO_OPT_OMIT; diff --git a/src/cred.c b/src/cred.c index 188afe4e64aa..4a7a7257c985 100644 --- a/src/cred.c +++ b/src/cred.c @@ -562,11 +562,10 @@ fido_cred_reset_tx(fido_cred_t *cred) free(cred->user.icon); free(cred->user.name); free(cred->user.display_name); - fido_free_blob_array(&cred->excl); + fido_cred_empty_exclude_list(cred); memset(&cred->rp, 0, sizeof(cred->rp)); memset(&cred->user, 0, sizeof(cred->user)); - memset(&cred->excl, 0, sizeof(cred->excl)); memset(&cred->ext, 0, sizeof(cred->ext)); cred->type = 0; @@ -765,6 +764,15 @@ fido_cred_exclude(fido_cred_t *cred, const unsigned char *id_ptr, size_t id_len) return (FIDO_OK); } +int +fido_cred_empty_exclude_list(fido_cred_t *cred) +{ + fido_free_blob_array(&cred->excl); + memset(&cred->excl, 0, sizeof(cred->excl)); + + return (FIDO_OK); +} + int fido_cred_set_clientdata(fido_cred_t *cred, const unsigned char *data, size_t data_len) diff --git a/src/eddsa.c b/src/eddsa.c index d043f89f9f37..bdb53b188cdb 100644 --- a/src/eddsa.c +++ b/src/eddsa.c @@ -11,7 +11,7 @@ #include "fido.h" #include "fido/eddsa.h" -#if defined(LIBRESSL_VERSION_NUMBER) +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3070000f EVP_PKEY * EVP_PKEY_new_raw_public_key(int type, ENGINE *e, const unsigned char *key, size_t keylen) diff --git a/src/export.gnu b/src/export.gnu index 6916837ecbcc..604741ed7d92 100644 --- a/src/export.gnu +++ b/src/export.gnu @@ -25,6 +25,7 @@ fido_assert_clientdata_hash_len; fido_assert_clientdata_hash_ptr; fido_assert_count; + fido_assert_empty_allow_list; fido_assert_flags; fido_assert_free; fido_assert_hmac_secret_len; @@ -125,6 +126,7 @@ fido_cred_clientdata_hash_len; fido_cred_clientdata_hash_ptr; fido_cred_display_name; + fido_cred_empty_exclude_list; fido_cred_exclude; fido_cred_flags; fido_cred_largeblob_key_len; diff --git a/src/export.llvm b/src/export.llvm index bd21fb4a54f7..0be829538d7b 100644 --- a/src/export.llvm +++ b/src/export.llvm @@ -23,6 +23,7 @@ _fido_assert_blob_ptr _fido_assert_clientdata_hash_len _fido_assert_clientdata_hash_ptr _fido_assert_count +_fido_assert_empty_allow_list _fido_assert_flags _fido_assert_free _fido_assert_hmac_secret_len @@ -123,6 +124,7 @@ _fido_cred_authdata_raw_ptr _fido_cred_clientdata_hash_len _fido_cred_clientdata_hash_ptr _fido_cred_display_name +_fido_cred_empty_exclude_list _fido_cred_exclude _fido_cred_flags _fido_cred_largeblob_key_len diff --git a/src/export.msvc b/src/export.msvc index 55147f99e67f..10f8bd14497d 100644 --- a/src/export.msvc +++ b/src/export.msvc @@ -24,6 +24,7 @@ fido_assert_blob_ptr fido_assert_clientdata_hash_len fido_assert_clientdata_hash_ptr fido_assert_count +fido_assert_empty_allow_list fido_assert_flags fido_assert_free fido_assert_hmac_secret_len @@ -124,6 +125,7 @@ fido_cred_authdata_raw_ptr fido_cred_clientdata_hash_len fido_cred_clientdata_hash_ptr fido_cred_display_name +fido_cred_empty_exclude_list fido_cred_exclude fido_cred_flags fido_cred_largeblob_key_len diff --git a/src/fido.h b/src/fido.h index ce7da160619e..607c44fcfd91 100644 --- a/src/fido.h +++ b/src/fido.h @@ -124,6 +124,7 @@ const unsigned char *fido_cred_user_id_ptr(const fido_cred_t *); const unsigned char *fido_cred_x5c_ptr(const fido_cred_t *); int fido_assert_allow_cred(fido_assert_t *, const unsigned char *, size_t); +int fido_assert_empty_allow_list(fido_assert_t *); int fido_assert_set_authdata(fido_assert_t *, size_t, const unsigned char *, size_t); int fido_assert_set_authdata_raw(fido_assert_t *, size_t, const unsigned char *, @@ -143,6 +144,7 @@ int fido_assert_set_uv(fido_assert_t *, fido_opt_t); int fido_assert_set_sig(fido_assert_t *, size_t, const unsigned char *, size_t); int fido_assert_verify(const fido_assert_t *, size_t, int, const void *); int fido_cbor_info_algorithm_cose(const fido_cbor_info_t *, size_t); +int fido_cred_empty_exclude_list(fido_cred_t *); int fido_cred_exclude(fido_cred_t *, const unsigned char *, size_t); int fido_cred_prot(const fido_cred_t *); int fido_cred_set_attstmt(fido_cred_t *, const unsigned char *, size_t); diff --git a/src/fido/eddsa.h b/src/fido/eddsa.h index 7981a6f8bae3..5c0b681ee7b0 100644 --- a/src/fido/eddsa.h +++ b/src/fido/eddsa.h @@ -53,7 +53,7 @@ int eddsa_pk_from_ptr(eddsa_pk_t *, const void *, size_t); #ifdef _FIDO_INTERNAL -#if defined(LIBRESSL_VERSION_NUMBER) +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3070000f #define EVP_PKEY_ED25519 EVP_PKEY_NONE int EVP_PKEY_get_raw_public_key(const EVP_PKEY *, unsigned char *, size_t *); EVP_PKEY *EVP_PKEY_new_raw_public_key(int, ENGINE *, const unsigned char *, diff --git a/src/tpm.c b/src/tpm.c index 69c48c3d4d86..3e09bca00ffb 100644 --- a/src/tpm.c +++ b/src/tpm.c @@ -48,7 +48,7 @@ struct tpm_sha256_digest { /* Part 2, 10.4.3: TPM2B_DATA */ PACKED_TYPE(tpm_sha1_data_t, struct tpm_sha1_data { - uint16_t size; /* sizeof(body */ + uint16_t size; /* sizeof(body) */ uint8_t body[20]; }) diff --git a/src/winhello.c b/src/winhello.c index e0453cb8c70f..efc7dc22f851 100644 --- a/src/winhello.c +++ b/src/winhello.c @@ -85,7 +85,7 @@ webauthn_load(void) fido_log_debug("%s: already loaded", __func__); return -1; } - if ((webauthn_handle = LoadLibrary("webauthn.dll")) == NULL) { + if ((webauthn_handle = LoadLibrary(TEXT("webauthn.dll"))) == NULL) { fido_log_debug("%s: LoadLibrary", __func__); return -1; } @@ -472,12 +472,8 @@ unpack_assert_authdata(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) { int r; - if (wa->cbAuthenticatorData > SIZE_MAX) { - fido_log_debug("%s: cbAuthenticatorData", __func__); - return -1; - } if ((r = fido_assert_set_authdata_raw(assert, 0, wa->pbAuthenticatorData, - (size_t)wa->cbAuthenticatorData)) != FIDO_OK) { + wa->cbAuthenticatorData)) != FIDO_OK) { fido_log_debug("%s: fido_assert_set_authdata_raw: %s", __func__, fido_strerr(r)); return -1; @@ -491,12 +487,8 @@ unpack_assert_sig(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) { int r; - if (wa->cbSignature > SIZE_MAX) { - fido_log_debug("%s: cbSignature", __func__); - return -1; - } if ((r = fido_assert_set_sig(assert, 0, wa->pbSignature, - (size_t)wa->cbSignature)) != FIDO_OK) { + wa->cbSignature)) != FIDO_OK) { fido_log_debug("%s: fido_assert_set_sig: %s", __func__, fido_strerr(r)); return -1; @@ -508,12 +500,8 @@ unpack_assert_sig(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) static int unpack_cred_id(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) { - if (wa->Credential.cbId > SIZE_MAX) { - fido_log_debug("%s: Credential.cbId", __func__); - return -1; - } if (fido_blob_set(&assert->stmt[0].id, wa->Credential.pbId, - (size_t)wa->Credential.cbId) < 0) { + wa->Credential.cbId) < 0) { fido_log_debug("%s: fido_blob_set", __func__); return -1; } @@ -526,12 +514,8 @@ unpack_user_id(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) { if (wa->cbUserId == 0) return 0; /* user id absent */ - if (wa->cbUserId > SIZE_MAX) { - fido_log_debug("%s: cbUserId", __func__); - return -1; - } if (fido_blob_set(&assert->stmt[0].user.id, wa->pbUserId, - (size_t)wa->cbUserId) < 0) { + wa->cbUserId) < 0) { fido_log_debug("%s: fido_blob_set", __func__); return -1; } @@ -549,7 +533,6 @@ unpack_hmac_secret(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) } if (wa->pHmacSecret == NULL || wa->pHmacSecret->cbFirst == 0 || - wa->pHmacSecret->cbFirst > SIZE_MAX || wa->pHmacSecret->pbFirst == NULL) { fido_log_debug("%s: hmac-secret absent", __func__); return 0; /* proceed without hmac-secret */ @@ -564,7 +547,7 @@ unpack_hmac_secret(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) return -1; } if (fido_blob_set(&assert->stmt[0].hmac_secret, - wa->pHmacSecret->pbFirst, (size_t)wa->pHmacSecret->cbFirst) < 0) { + wa->pHmacSecret->pbFirst, wa->pHmacSecret->cbFirst) < 0) { fido_log_debug("%s: fido_blob_set", __func__); return -1; } @@ -752,13 +735,12 @@ translate_winhello_cred(fido_cred_t *cred, struct cbor_load_result cbor; int r = FIDO_ERR_INTERNAL; - if (att->pbAttestationObject == NULL || - att->cbAttestationObject > SIZE_MAX) { + if (att->pbAttestationObject == NULL) { fido_log_debug("%s: pbAttestationObject", __func__); goto fail; } if ((item = cbor_load(att->pbAttestationObject, - (size_t)att->cbAttestationObject, &cbor)) == NULL) { + att->cbAttestationObject, &cbor)) == NULL) { fido_log_debug("%s: cbor_load", __func__); goto fail; } diff --git a/tools/largeblob.c b/tools/largeblob.c index 00cf79ea8fef..78b97ab1e96b 100644 --- a/tools/largeblob.c +++ b/tools/largeblob.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 Yubico AB. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. * SPDX-License-Identifier: BSD-2-Clause @@ -25,6 +25,8 @@ #include "../openbsd-compat/openbsd-compat.h" #include "extern.h" +#define BOUND (1024UL * 1024UL) + struct rkmap { fido_credman_rp_t *rp; /* known rps */ fido_credman_rk_t **rk; /* rk per rp */ @@ -303,34 +305,56 @@ blob_delete(const char *path, const char *keyf, const char *rp_id, } static int -decompress(const struct blob *plaintext, uint64_t origsiz) +try_decompress(const struct blob *in, uint64_t origsiz, int wbits) { - struct blob inflated; - u_long ilen, plen; + struct blob out; + z_stream zs; + u_int ilen, olen; int ok = -1; - memset(&inflated, 0, sizeof(inflated)); + memset(&zs, 0, sizeof(zs)); + memset(&out, 0, sizeof(out)); - if (plaintext->len > ULONG_MAX) + if (in->len > UINT_MAX || (ilen = (u_int)in->len) > BOUND) return -1; - if (origsiz > ULONG_MAX || origsiz > SIZE_MAX) + if (origsiz > SIZE_MAX || origsiz > UINT_MAX || + (olen = (u_int)origsiz) > BOUND) return -1; - plen = (u_long)plaintext->len; - ilen = (u_long)origsiz; - inflated.len = (size_t)origsiz; - if ((inflated.ptr = calloc(1, inflated.len)) == NULL) + if (inflateInit2(&zs, wbits) != Z_OK) return -1; - if (uncompress(inflated.ptr, &ilen, plaintext->ptr, plen) != Z_OK || - ilen > SIZE_MAX || (size_t)ilen != (size_t)origsiz) - goto out; - ok = 0; /* success */ -out: - freezero(inflated.ptr, inflated.len); + if ((out.ptr = calloc(1, olen)) == NULL) + goto fail; + + out.len = olen; + zs.next_in = in->ptr; + zs.avail_in = ilen; + zs.next_out = out.ptr; + zs.avail_out = olen; + + if (inflate(&zs, Z_FINISH) != Z_STREAM_END) + goto fail; + if (zs.avail_out != 0) + goto fail; + + ok = 0; +fail: + if (inflateEnd(&zs) != Z_OK) + ok = -1; + + freezero(out.ptr, out.len); return ok; } +static int +decompress(const struct blob *plaintext, uint64_t origsiz) +{ + if (try_decompress(plaintext, origsiz, MAX_WBITS) == 0) /* rfc1950 */ + return 0; + return try_decompress(plaintext, origsiz, -MAX_WBITS); /* rfc1951 */ +} + static int decode(const struct blob *ciphertext, const struct blob *nonce, uint64_t origsiz, const fido_cred_t *cred) diff --git a/udev/70-u2f.rules b/udev/70-u2f.rules index 913bef2a9936..c443f7524a08 100644 --- a/udev/70-u2f.rules +++ b/udev/70-u2f.rules @@ -216,6 +216,9 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2ccf", ATTRS{idProduct # TrustKey Solutions FIDO2 G310 by eWBM Co., Ltd. KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4a1a", TAG+="uaccess", GROUP="plugdev", MODE="0660" +# TrustKey Solutions FIDO2 G310H/G320H by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4a2a", TAG+="uaccess", GROUP="plugdev", MODE="0660" + # TrustKey Solutions FIDO2 G320 by eWBM Co., Ltd. KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4c2a", TAG+="uaccess", GROUP="plugdev", MODE="0660" diff --git a/udev/fidodevs b/udev/fidodevs index d8a80fc1a4ee..196e92f0b100 100644 --- a/udev/fidodevs +++ b/udev/fidodevs @@ -115,6 +115,7 @@ product LEDGER 0x4015 Ledger Nano X Legacy product HYPERSECU 0x0880 Hypersecu HyperFIDO product EWBM 0x4a1a TrustKey Solutions FIDO2 G310 +product EWBM 0x4a2a TrustKey Solutions FIDO2 G310H/G320H product EWBM 0x4c2a TrustKey Solutions FIDO2 G320 product EWBM 0x5c2f eWBM FIDO2 Goldengate G500 product EWBM 0xa6e9 TrustKey Solutions FIDO2 T120 diff --git a/windows/build.ps1 b/windows/build.ps1 index 4c3a9699b07a..52a1d6692de4 100644 --- a/windows/build.ps1 +++ b/windows/build.ps1 @@ -163,8 +163,8 @@ try { & $CMake ..\..\..\${LIBCBOR} -A "${Arch}" ` -DWITH_EXAMPLES=OFF ` -DBUILD_SHARED_LIBS="${SHARED}" ` - -DCMAKE_C_FLAGS_DEBUG="${CFLAGS_DEBUG}" ` - -DCMAKE_C_FLAGS_RELEASE="${CFLAGS_RELEASE}" ` + -DCMAKE_C_FLAGS_DEBUG="${CFLAGS_DEBUG} /wd4703" ` + -DCMAKE_C_FLAGS_RELEASE="${CFLAGS_RELEASE} /wd4703" ` -DCMAKE_INSTALL_PREFIX="${PREFIX}" "${CMAKE_SYSTEM_VERSION}"; ` ExitOnError & $CMake --build . --config ${Config} --verbose; ExitOnError @@ -219,6 +219,7 @@ try { -DCRYPTO_INCLUDE_DIRS="${PREFIX}\include" ` -DCRYPTO_LIBRARY_DIRS="${PREFIX}\lib" ` -DCRYPTO_BIN_DIRS="${PREFIX}\bin" ` + -DCRYPTO_LIBRARIES="${CRYPTO_LIBRARIES}" ` -DCMAKE_C_FLAGS_DEBUG="${CFLAGS_DEBUG} ${Fido2Flags}" ` -DCMAKE_C_FLAGS_RELEASE="${CFLAGS_RELEASE} ${Fido2Flags}" ` -DCMAKE_INSTALL_PREFIX="${PREFIX}" "${CMAKE_SYSTEM_VERSION}"; ` @@ -230,7 +231,7 @@ try { ExitOnError # Copy DLLs. if ("${SHARED}" -eq "ON") { - "cbor.dll", "crypto-49.dll", "zlib1.dll" | ` + "cbor.dll", "${CRYPTO_LIBRARIES}.dll", "zlib1.dll" | ` %{ Copy-Item "${PREFIX}\bin\$_" ` -Destination "examples\${Config}" } } diff --git a/windows/const.ps1 b/windows/const.ps1 index 31426e99fec6..f657846def5e 100644 --- a/windows/const.ps1 +++ b/windows/const.ps1 @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Yubico AB. All rights reserved. +# Copyright (c) 2021-2023 Yubico AB. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # SPDX-License-Identifier: BSD-2-Clause @@ -7,17 +7,18 @@ New-Variable -Name 'LIBRESSL_URL' ` -Value 'https://fastly.cdn.openbsd.org/pub/OpenBSD/LibreSSL' ` -Option Constant -New-Variable -Name 'LIBRESSL' -Value 'libressl-3.5.3' -Option Constant +New-Variable -Name 'LIBRESSL' -Value 'libressl-3.6.2' -Option Constant +New-Variable -Name 'CRYPTO_LIBRARIES' -Value 'crypto-50' -Option Constant # libcbor coordinates. -New-Variable -Name 'LIBCBOR' -Value 'libcbor-0.9.0' -Option Constant -New-Variable -Name 'LIBCBOR_BRANCH' -Value 'v0.9.0' -Option Constant +New-Variable -Name 'LIBCBOR' -Value 'libcbor-0.10.1' -Option Constant +New-Variable -Name 'LIBCBOR_BRANCH' -Value 'v0.10.1' -Option Constant New-Variable -Name 'LIBCBOR_GIT' -Value 'https://github.com/pjk/libcbor' ` -Option Constant # zlib coordinates. -New-Variable -Name 'ZLIB' -Value 'zlib-1.2.12' -Option Constant -New-Variable -Name 'ZLIB_BRANCH' -Value 'v1.2.12' -Option Constant +New-Variable -Name 'ZLIB' -Value 'zlib-1.2.13' -Option Constant +New-Variable -Name 'ZLIB_BRANCH' -Value 'v1.2.13' -Option Constant New-Variable -Name 'ZLIB_GIT' -Value 'https://github.com/madler/zlib' ` -Option Constant diff --git a/windows/release.ps1 b/windows/release.ps1 index 423ec20f7e59..cc5f635b8faa 100644 --- a/windows/release.ps1 +++ b/windows/release.ps1 @@ -8,7 +8,6 @@ $Architectures = @('x64', 'Win32', 'ARM64', 'ARM') $InstallPrefixes = @('Win64', 'Win32', 'ARM64', 'ARM') $Types = @('dynamic', 'static') $Config = 'Release' -$LibCrypto = '49' $SDK = '143' . "$PSScriptRoot\const.ps1" @@ -36,8 +35,8 @@ Function Package-Dynamic(${SRC}, ${DEST}) { Copy-Item "${SRC}\lib\cbor.lib" "${DEST}" Copy-Item "${SRC}\bin\zlib1.dll" "${DEST}" Copy-Item "${SRC}\lib\zlib1.lib" "${DEST}" - Copy-Item "${SRC}\bin\crypto-${LibCrypto}.dll" "${DEST}" - Copy-Item "${SRC}\lib\crypto-${LibCrypto}.lib" "${DEST}" + Copy-Item "${SRC}\bin\${CRYPTO_LIBRARIES}.dll" "${DEST}" + Copy-Item "${SRC}\lib\${CRYPTO_LIBRARIES}.lib" "${DEST}" Copy-Item "${SRC}\bin\fido2.dll" "${DEST}" Copy-Item "${SRC}\lib\fido2.lib" "${DEST}" } @@ -45,13 +44,13 @@ Function Package-Dynamic(${SRC}, ${DEST}) { Function Package-Static(${SRC}, ${DEST}) { Copy-Item "${SRC}/lib/cbor.lib" "${DEST}" Copy-Item "${SRC}/lib/zlib1.lib" "${DEST}" - Copy-Item "${SRC}/lib/crypto-${LibCrypto}.lib" "${DEST}" + Copy-Item "${SRC}/lib/${CRYPTO_LIBRARIES}.lib" "${DEST}" Copy-Item "${SRC}/lib/fido2_static.lib" "${DEST}/fido2.lib" } Function Package-PDBs(${SRC}, ${DEST}) { Copy-Item "${SRC}\${LIBRESSL}\crypto\crypto_obj.dir\${Config}\crypto_obj.pdb" ` - "${DEST}\crypto-${LibCrypto}.pdb" + "${DEST}\${CRYPTO_LIBRARIES}.pdb" Copy-Item "${SRC}\${LIBCBOR}\src\cbor.dir\${Config}\vc${SDK}.pdb" ` "${DEST}\cbor.pdb" Copy-Item "${SRC}\${ZLIB}\zlib.dir\${Config}\vc${SDK}.pdb" ` @@ -62,7 +61,7 @@ Function Package-PDBs(${SRC}, ${DEST}) { Function Package-StaticPDBs(${SRC}, ${DEST}) { Copy-Item "${SRC}\${LIBRESSL}\crypto\crypto_obj.dir\${Config}\crypto_obj.pdb" ` - "${DEST}\crypto-${LibCrypto}.pdb" + "${DEST}\${CRYPTO_LIBRARIES}.pdb" Copy-Item "${SRC}\${LIBCBOR}\src\${Config}\cbor.pdb" ` "${DEST}\cbor.pdb" Copy-Item "${SRC}\${ZLIB}\${Config}\zlibstatic.pdb" `

n+2JC~>VsMOt1)ZCOlW3O#~bZ+1ZYT#ljw7)0| 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 g3zur|EvdgSAt-lr1-cdu#M5?N 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 z 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