diff --git a/README.md b/README.md new file mode 100644 index 0000000..00a0ca5 --- /dev/null +++ b/README.md @@ -0,0 +1,295 @@ +# Contents + +- [Pix2Pix Description](#Pix2Pix-description) +- [Model Architecture](#model-architecture) +- [Dataset](#dataset) +- [Environment Requirements](#environment-requirements) +- [Script Description](#script-description) + - [Script and Sample Code](#script-and-sample-code) + - [Script Parameters](#script-parameters) + - [Training](#training-process) + - [Evaluation](#evaluation-process) + - [Prediction Process](#prediction-process) +- [Model Description](#model-description) + - [Performance](#performance) + - [Training Performance](#evaluation-performance) + - [Evaluation Performance](#evaluation-performance) +- [ModelZoo Homepage](#modelzoo-homepage) + +# [Pix2Pix Description](#contents) + +Many problems in image processing, computer graphics, and computer vision can be posed as “translating” an input image into a corresponding output image, each of these tasks has been tackled with separate, special-purpose machinery, despite the fact that the setting is always the same: predict pixels from pixels. +Our goal in this paper is to develop a common framework for all these problems. Pix2pix model is a conditional GAN, which includes two modules--generator and discriminator. This model transforms an input image into a corresponding output image. The essence of the model is the mapping from pixel to pixel. + +[Paper](https://arxiv.org/abs/1611.07004): Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A. Efros. "Image-to-Image Translation with Conditional Adversarial Networks", in CVPR 2017. + +![Pix2Pix Imgs](imgs/Pix2Pix-examples.jpg) + +# [Model Architecture](#contents) + +The Pix2Pix contains a generation network and a discriminant networks.In the generator part, the model can be any pixel to pixel mapping network (in the raw paper, the author proposed to use Unet). In the discriminator part, a patch GAN is used to judge whether each N*N patches is fake or true, thus can improve the reality of the generated image. + +**Generator(Unet-Based) architectures:** + +Encoder: + +C64-C128-C256-C512-C512-C512-C512-C512 + +Decoder: + +CD512-CD1024-CD1024-C1024-C1024-C512-C256-C128 + +**Discriminator(70 × 70 discriminator) architectures:** + +C64-C128-C256-C512 + +**Note:** Let Ck denote a Convolution-BatchNorm-ReLU layer with k filters. CDk denotes a Convolution-BatchNorm-Dropout-ReLU layer with a dropout rate of 50%. + +# [Dataset](#contents) + +Dataset_1 used: [facades](http://efrosgans.eecs.berkeley.edu/pix2pix/datasets/facades.tar.gz) + +```markdown + Dataset size: 29M, 606 images + 400 train images + 100 validation images + 106 test images + Data format:.jpg images +``` + +Dataset_2 used: [maps](http://efrosgans.eecs.berkeley.edu/pix2pix/datasets/maps.tar.gz) + +```markdown + Dataset size: 239M, 2194 images + 1096 train images + 1098 validation images + Data format:.jpg images +``` + +**Note:** We provide data/download_Pix2Pix_dataset.sh to download the datasets. + +# [Environment Requirements](#contents) + +- Hardware(Ascend) + - Prepare hardware environment with Ascend processor. +- Framework + - [MindSpore](https://www.mindspore.cn/install/en) +- For more information, please check the resources below: + - [MindSpore tutorials](https://www.mindspore.cn/tutorials/en/master/index.html) + - [MindSpore Python API](https://www.mindspore.cn/docs/api/en/master/index.html) + +## [Dependences](#contents) + +- Python==3.8.5 +- Mindspore==1.2 + +# [Script Description](#contents) + +## [Script and Sample Code](#contents) + +The entire code structure is as following: + +```markdown +.Pix2Pix +├─ README.md # descriptions about Pix2Pix +├─ data + └─download_Pix2Pix_dataset.sh # download dataset +├── scripts + └─run_infer_310.sh # launch ascend 310 inference + └─run_train_ascend.sh # launch ascend training(1 pcs) + └─run_distribute_train_ascend.sh # launch ascend training(8 pcs) + └─run_eval_ascend.sh # launch ascend eval + └─run_train_gpu.sh # launch gpu training(1 pcs) + └─run_distribute_train_gpu.sh # launch gpu training(8 pcs) + └─run_eval_gpu.sh # launch gpu eval +├─ imgs + └─Pix2Pix-examples.jpg # Pix2Pix Imgs +├─ src + ├─ __init__.py # init file + ├─ dataset + ├─ __init__.py # init file + ├─ pix2pix_dataset.py # create pix2pix dataset + ├─ models + ├─ __init__.py # init file + ├─ discriminator_model.py # define discriminator model——Patch GAN + ├─ generator_model.py # define generator model——Unet-based Generator + ├─ init_w.py # initialize network weights + ├─ loss.py # define losses + └─ pix2pix.py # define Pix2Pix model + └─ utils + ├─ __init__.py # init file + ├─ config.py # parse args + ├─ tools.py # tools for Pix2Pix model +├─ eval.py # evaluate Pix2Pix Model +├─ train.py # train script +└─ export.py # export mindir script +``` + +## [Script Parameters](#contents) + +Major parameters in train.py and config.py as follows: + +```python +"device_target": Ascend # run platform, only support Ascend. +"device_num": 1 # device num, default is 1. +"device_id": 0 # device id, default is 0. +"save_graphs": False # whether save graphs, default is False. +"init_type": normal # network initialization, default is normal. +"init_gain": 0.02 # scaling factor for normal, xavier and orthogonal, default is 0.02. +"load_size": 286 # scale images to this size, default is 286. +"batch_size": 1 # batch_size, default is 1. +"LAMBDA_Dis": 0.5 # weight for Discriminator Loss, default is 0.5. +"LAMBDA_GAN": 1 # weight for GAN Loss, default is 1. +"LAMBDA_L1": 100 # weight for L1 Loss, default is 100. +"beta1": 0.5 # adam beta1, default is 0.5. +"beta2": 0.999 # adam beta2, default is 0.999. +"lr": 0.0002 # the initial learning rate, default is 0.0002. +"lr_policy": linear # learning rate policy, default is linear. +"epoch_num": 200 # epoch number for training, default is 200. +"n_epochs": 100 # number of epochs with the initial learning rate, default is 100. +"n_epochs_decay": 100 # number of epochs with the dynamic learning rate, default is 100. +"dataset_size": 400 # for Facade_dataset,the number is 400; for Maps_dataset,the number is 1096. +"train_data_dir": None # the file path of input data during training. +"val_data_dir": None # the file path of input data during validating. +"train_fakeimg_dir": ./results/fake_img/ # during training, the file path of stored fake img. +"loss_show_dir": ./results/loss_show # during training, the file path of stored loss img. +"ckpt_dir": ./results/ckpt # during training, the file path of stored CKPT. +"ckpt": None # during validating, the file path of the CKPT used. +"predict_dir": ./results/predict/ # during validating, the file path of Generated images. +``` + +## [Training](#contents) + +- running on Ascend with default parameters + +```python +python train.py --device_target [Ascend] --device_id [0] --train_data_dir [./data/facades/train] +``` + +- running distributed trainning on Ascend with fixed parameters + +```python +bash run_distribute_train_ascend.sh [DEVICE_NUM] [DISTRIBUTE] [RANK_TABLE_FILE] [DATASET_PATH] [DATASET_NAME] +``` + +- running on GPU with fixed parameters + +```python +python train.py --device_target [GPU] --run_distribute [1] --device_num [8] --dataset_size 400 --train_data_dir [./data/facades/train] --pad_mode REFLECT +OR +bash scripts/run_train_gpu.sh [DATASET_PATH] [DATASET_NAME] +``` + +- running distributed trainning on GPU with fixed parameters + +```python +bash run_distribute_train_gpu.sh [DATASET_PATH] [DATASET_NAME] [DEVICE_NUM] +``` + +## [Evaluation](#contents) + +- running on Ascend + +```python +python eval.py --device_target [Ascend] --device_id [0] --val_data_dir [./data/facades/test] --ckpt [./results/ckpt/Generator_200.ckpt] --pad_mode REFLECT +OR +bash scripts/run_eval_ascend.sh [DATASET_PATH] [DATASET_NAME] [CKPT_PATH] [RESULT_DIR] +``` + +- running on GPU + +```python +python eval.py --device_target [GPU] --device_id [0] --val_data_dir [./data/facades/test] --ckpt [./train/results/ckpt/Generator_200.ckpt] --predict_dir [./train/results/predict/] \ +--dataset_size 1096 --pad_mode REFLECT +OR +bash scripts/run_eval_gpu.sh [DATASET_PATH] [DATASET_NAME] [CKPT_PATH] [RESULT_PATH] +``` + +**Note:**: Before training and evaluating, create folders like "./results/...". Then you will get the results as following in "./results/predict". + +## [310 infer](#contents) + +```python +bash run_infer_310.sh [The path of the MINDIR for 310 infer] [The path of the dataset for 310 infer] y Ascend 0 +``` + +**Note:**: Before executing 310 infer, create the MINDIR/AIR model using "python export.py --ckpt [The path of the CKPT for exporting] --train_data_dir [The path of the training dataset]". + +# [Model Description](#contents) + +## [Performance](#contents) + +### Training Performance on single device + +| Parameters | single Ascend | single GPU | +| -------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------- | +| Model Version | Pix2Pix | Pix2Pix | +| Resource | Ascend 910 | PCIE V100-32G | +| MindSpore Version | 1.2 | 1.3.0 | +| Dataset | facades | facades | +| Training Parameters | epoch=200, steps=400, batch_size=1, lr=0.0002 | epoch=200, steps=400, batch_size=1, lr=0.0002, pad_mode=REFLECT | +| Optimizer | Adam | Adam | +| Loss Function | SigmoidCrossEntropyWithLogits Loss & L1 Loss | SigmoidCrossEntropyWithLogits Loss & L1 Loss | +| outputs | probability | probability | +| Speed | 1pc(Ascend): 10 ms/step | 1pc(GPU): 40 ms/step | +| Total time | 1pc(Ascend): 0.3h | 1pc(GPU): 0.8 h | +| Checkpoint for Fine tuning | 207M (.ckpt file) | 207M (.ckpt file) | + +| Parameters | single Ascend | single GPU | +| -------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------- | +| Model Version | Pix2Pix | Pix2Pix | +| Resource | Ascend 910 | +| MindSpore Version | 1.2 | 1.3.0 | +| Dataset | maps | maps | +| Training Parameters | epoch=200, steps=1096, batch_size=1, lr=0.0002 | epoch=200, steps=400, batch_size=1, lr=0.0002, pad_mode=REFLECT | +| Optimizer | Adam | Adam | +| Loss Function | SigmoidCrossEntropyWithLogits Loss & L1 Loss | SigmoidCrossEntropyWithLogits Loss & L1 Loss | +| outputs | probability | probability | +| Speed | 1pc(Ascend): 20 ms/step | 1pc(GPU): 90 ms/step | +| Total time | 1pc(Ascend): 1.58h | 1pc(GPU): 3.3h | +| Checkpoint for Fine tuning | 207M (.ckpt file) | 207M (.ckpt file) | + +### Distributed Training Performance + +| Parameters | Ascend (8pcs) | GPU (8pcs) | +| -------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------- | +| Model Version | Pix2Pix | Pix2Pix | +| Resource | Ascend 910 | PCIE V100-32G | +| MindSpore Version | 1.4.1 | 1.3.0 | +| Dataset | facades | facades | +| Training Parameters | epoch=200, steps=400, batch_size=1, lr=0.0002 | epoch=200, steps=400, batch_size=1, lr=0.0002, pad_mode=REFLECT | +| Optimizer | Adam | Adam | +| Loss Function | SigmoidCrossEntropyWithLogits Loss & L1 Loss | SigmoidCrossEntropyWithLogits Loss & L1 Loss | +| outputs | probability | probability | +| Speed | 8pc(Ascend): 15 ms/step | 8pc(GPU): 30 ms/step | +| Total time | 8pc(Ascend): 0.5h | 8pc(GPU): 1 h | +| Checkpoint for Fine tuning | 207M (.ckpt file) | 207M (.ckpt file) | + +| Parameters | Ascend (8pcs) | GPU (8pcs) | +| -------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------- | +| Model Version | Pix2Pix | Pix2Pix | +| Resource | Ascend 910 | PCIE V100-32G | +| MindSpore Version | 1.4.1 | 1.3.0 | +| Dataset | maps | maps | +| Training Parameters | epoch=200, steps=1096, batch_size=1, lr=0.0002 | epoch=200, steps=400, batch_size=1, lr=0.0002, pad_mode=REFLECT | +| Optimizer | Adam | Adam | +| Loss Function | SigmoidCross55EntropyWithLogits Loss & L1 Loss | SigmoidCrossEntropyWithLogits Loss & L1 Loss | +| outputs | probability | probability | +| Speed | 8pc(Ascend): 20 ms/step | 8pc(GPU): 40 ms/step | +| Total time | 8pc(Ascend): 1.2h | 8pc(GPU): 2.8h | +| Checkpoint for Fine tuning | 207M (.ckpt file) | 207M (.ckpt file) | + +### Evaluation Performance + +| Parameters | single Ascend | single GPU | +| ------------------- | --------------------------- | --------------------------- | +| Model Version | Pix2Pix | Pix2Pix | +| Resource | Ascend 910 | PCIE V100-32G | +| MindSpore Version | 1.2 | 1.3.0 | +| Dataset | facades / maps | facades / maps | +| batch_size | 1 | 1 | +| outputs | probability | probability | + +# [ModelZoo Homepage](#contents) + +Please check the official [homepage](https://gitee.com/mindspore/models). diff --git a/ascend310_infer/CMakeLists.txt b/ascend310_infer/CMakeLists.txt new file mode 100644 index 0000000..16eb6da --- /dev/null +++ b/ascend310_infer/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.14.1) +project(Ascend310Infer) +add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g -std=c++17 -Werror -Wall -fPIE -Wl,--allow-shlib-undefined") +set(PROJECT_SRC_ROOT ${CMAKE_CURRENT_LIST_DIR}/) +option(MINDSPORE_PATH "mindspore install path" "") +include_directories(${MINDSPORE_PATH}) +include_directories(${MINDSPORE_PATH}/include) +include_directories(${PROJECT_SRC_ROOT}) +find_library(MS_LIB libmindspore.so ${MINDSPORE_PATH}/lib) +file(GLOB_RECURSE MD_LIB ${MINDSPORE_PATH}/_c_dataengine*) + +add_executable(main src/main.cc src/utils.cc) +target_link_libraries(main ${MS_LIB} ${MD_LIB} gflags) + diff --git a/ascend310_infer/build.sh b/ascend310_infer/build.sh new file mode 100644 index 0000000..713d7f6 --- /dev/null +++ b/ascend310_infer/build.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +if [ -d out ]; then + rm -rf out +fi + +mkdir out +cd out || exit + +if [ -f "Makefile" ]; then + make clean +fi + +cmake .. \ + -DMINDSPORE_PATH="`pip show mindspore-ascend | grep Location | awk '{print $2"/mindspore"}' | xargs realpath`" +make diff --git a/ascend310_infer/fusion_switch.cfg b/ascend310_infer/fusion_switch.cfg new file mode 100644 index 0000000..22c2563 --- /dev/null +++ b/ascend310_infer/fusion_switch.cfg @@ -0,0 +1 @@ +ConvBatchnormFusionPass:off diff --git a/ascend310_infer/inc/utils.h b/ascend310_infer/inc/utils.h new file mode 100644 index 0000000..efebe03 --- /dev/null +++ b/ascend310_infer/inc/utils.h @@ -0,0 +1,32 @@ +/** + * Copyright 2021 Huawei Technologies Co., Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MINDSPORE_INFERENCE_UTILS_H_ +#define MINDSPORE_INFERENCE_UTILS_H_ + +#include +#include +#include +#include +#include +#include "include/api/types.h" + +std::vector GetAllFiles(std::string_view dirName); +DIR *OpenDir(std::string_view dirName); +std::string RealPath(std::string_view path); +mindspore::MSTensor ReadFileToTensor(const std::string &file); +int WriteResult(const std::string& imageFile, const std::vector &outputs); +#endif diff --git a/ascend310_infer/src/main.cc b/ascend310_infer/src/main.cc new file mode 100644 index 0000000..b7a21a6 --- /dev/null +++ b/ascend310_infer/src/main.cc @@ -0,0 +1,140 @@ +/** + * Copyright 2021 Huawei Technologies Co., Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "include/api/model.h" +#include "include/api/context.h" +#include "include/api/types.h" +#include "include/api/serialization.h" +#include "minddata/dataset/include/execute.h" +#include "minddata/dataset/include/vision.h" +#include "inc/utils.h" + +using mindspore::Context; +using mindspore::Serialization; +using mindspore::Model; +using mindspore::Status; +using mindspore::MSTensor; +using mindspore::dataset::Execute; +using mindspore::ModelType; +using mindspore::GraphCell; +using mindspore::kSuccess; + +DEFINE_string(mindir_path, "", "mindir path"); +DEFINE_string(input0_path, ".", "input0 path"); +DEFINE_string(fusion_switch_path, ".", "fusion switch path"); +DEFINE_int32(device_id, 0, "device id"); + +int main(int argc, char **argv) { + gflags::ParseCommandLineFlags(&argc, &argv, true); + if (RealPath(FLAGS_mindir_path).empty()) { + std::cout << "Invalid mindir" << std::endl; + return 1; + } + + if (RealPath(FLAGS_fusion_switch_path).empty()) { + std::cout << "Invalid fusion switch path" << std::endl; + return 1; + } + + auto context = std::make_shared(); + auto ascend310 = std::make_shared(); + ascend310->SetDeviceID(FLAGS_device_id); + context->MutableDeviceInfo().push_back(ascend310); + mindspore::Graph graph; + Serialization::Load(FLAGS_mindir_path, ModelType::kMindIR, &graph); + if (!FLAGS_fusion_switch_path.empty()) { + ascend310->SetFusionSwitchConfigPath(FLAGS_fusion_switch_path); + } + + Model model; + Status ret = model.Build(GraphCell(graph), context); + if (ret != kSuccess) { + std::cout << "ERROR: Build failed." << std::endl; + return 1; + } + + std::vector model_inputs = model.GetInputs(); + if (model_inputs.empty()) { + std::cout << "Invalid model, inputs is empty." << std::endl; + return 1; + } + + auto input0_files = GetAllFiles(FLAGS_input0_path); + + if (input0_files.empty()) { + std::cout << "ERROR: input data empty." << std::endl; + return 1; + } + + std::map costTime_map; + size_t size = input0_files.size(); + + for (size_t i = 0; i < size; ++i) { + struct timeval start = {0}; + struct timeval end = {0}; + double startTimeMs; + double endTimeMs; + std::vector inputs; + std::vector outputs; + std::cout << "Start predict input files:" << input0_files[i] << std::endl; + + auto input0 = ReadFileToTensor(input0_files[i]); + + inputs.emplace_back(model_inputs[0].Name(), model_inputs[0].DataType(), model_inputs[0].Shape(), + input0.Data().get(), input0.DataSize()); + + gettimeofday(&start, nullptr); + ret = model.Predict(inputs, &outputs); + gettimeofday(&end, nullptr); + if (ret != kSuccess) { + std::cout << "Predict " << input0_files[i] << " failed." << std::endl; + return 1; + } + startTimeMs = (1.0 * start.tv_sec * 1000000 + start.tv_usec) / 1000; + endTimeMs = (1.0 * end.tv_sec * 1000000 + end.tv_usec) / 1000; + costTime_map.insert(std::pair(startTimeMs, endTimeMs)); + WriteResult(input0_files[i], outputs); + } + double average = 0.0; + int inferCount = 0; + + for (auto iter = costTime_map.begin(); iter != costTime_map.end(); iter++) { + double diff = 0.0; + diff = iter->second - iter->first; + average += diff; + inferCount++; + } + average = average / inferCount; + std::stringstream timeCost; + timeCost << "NN inference cost average time: " << average << " ms of infer_count " << inferCount << std::endl; + std::cout << "NN inference cost average time: " << average << "ms of infer_count " << inferCount << std::endl; + std::string fileName = "./time_Result" + std::string("/test_perform_static.txt"); + std::ofstream fileStream(fileName.c_str(), std::ios::trunc); + fileStream << timeCost.str(); + fileStream.close(); + costTime_map.clear(); + return 0; +} diff --git a/ascend310_infer/src/utils.cc b/ascend310_infer/src/utils.cc new file mode 100644 index 0000000..3c8b4a5 --- /dev/null +++ b/ascend310_infer/src/utils.cc @@ -0,0 +1,128 @@ +/** + * Copyright 2021 Huawei Technologies Co., Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "inc/utils.h" + +using mindspore::MSTensor; +using mindspore::DataType; + +std::vector GetAllFiles(std::string_view dirName) { + struct dirent *filename; + DIR *dir = OpenDir(dirName); + if (dir == nullptr) { + return {}; + } + std::vector res; + while ((filename = readdir(dir)) != nullptr) { + std::string dName = std::string(filename->d_name); + if (dName == "." || dName == ".." || filename->d_type != DT_REG) { + continue; + } + res.emplace_back(std::string(dirName) + "/" + filename->d_name); + } + std::sort(res.begin(), res.end()); + for (auto &f : res) { + std::cout << "image file: " << f << std::endl; + } + return res; +} + +int WriteResult(const std::string& imageFile, const std::vector &outputs) { + std::string homePath = "./result_Files"; + for (size_t i = 0; i < outputs.size(); ++i) { + size_t outputSize; + std::shared_ptr netOutput; + netOutput = outputs[i].Data(); + outputSize = outputs[i].DataSize(); + int pos = imageFile.rfind('/'); + std::string fileName(imageFile, pos + 1); + fileName.replace(fileName.find('.'), fileName.size() - fileName.find('.'), '_' + std::to_string(i) + ".bin"); + std::string outFileName = homePath + "/" + fileName; + FILE * outputFile = fopen(outFileName.c_str(), "wb"); + fwrite(netOutput.get(), outputSize, sizeof(char), outputFile); + fclose(outputFile); + outputFile = nullptr; + } + return 0; +} + +mindspore::MSTensor ReadFileToTensor(const std::string &file) { + if (file.empty()) { + std::cout << "Pointer file is nullptr" << std::endl; + return mindspore::MSTensor(); + } + + std::ifstream ifs(file); + if (!ifs.good()) { + std::cout << "File: " << file << " is not exist" << std::endl; + return mindspore::MSTensor(); + } + + if (!ifs.is_open()) { + std::cout << "File: " << file << "open failed" << std::endl; + return mindspore::MSTensor(); + } + + ifs.seekg(0, std::ios::end); + size_t size = ifs.tellg(); + mindspore::MSTensor buffer(file, mindspore::DataType::kNumberTypeUInt8, {static_cast(size)}, nullptr, size); + + ifs.seekg(0, std::ios::beg); + ifs.read(reinterpret_cast(buffer.MutableData()), size); + ifs.close(); + + return buffer; +} + +DIR *OpenDir(std::string_view dirName) { + if (dirName.empty()) { + std::cout << " dirName is null ! " << std::endl; + return nullptr; + } + std::string realPath = RealPath(dirName); + struct stat s; + lstat(realPath.c_str(), &s); + if (!S_ISDIR(s.st_mode)) { + std::cout << "dirName is not a valid directory !" << std::endl; + return nullptr; + } + DIR *dir; + dir = opendir(realPath.c_str()); + if (dir == nullptr) { + std::cout << "Can not open dir " << dirName << std::endl; + return nullptr; + } + std::cout << "Successfully opened the dir " << dirName << std::endl; + return dir; +} + +std::string RealPath(std::string_view path) { + char realPathMem[PATH_MAX] = {0}; + char *realPathRet = nullptr; + realPathRet = realpath(path.data(), realPathMem); + + if (realPathRet == nullptr) { + std::cout << "File: " << path << " is not exist."; + return ""; + } + + std::string realPath(realPathMem); + std::cout << path << " realpath is: " << realPath << std::endl; + return realPath; +} diff --git a/config.py b/config.py deleted file mode 100644 index 70e801b..0000000 --- a/config.py +++ /dev/null @@ -1,90 +0,0 @@ -import albumentations as A -import mindspore.dataset.vision.py_transforms as py_vision - -# DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu" -TRAIN_DIR = "maps/train" -VAL_DIR = "maps/val" -LEARNING_RATE = 0.0002 -BATCH_SIZE = 1 -NUM_WORKERS = 2 -IMAGE_SIZE = 256 -CHANNELS_IMG = 3 -L1_LAMBDA = 100 -LAMBDA_GP = 10 -NUM_EPOCHS = 100 -LOAD_MODEL = False -SAVE_MODEL = True -CHECKPOINT_DISC = "disc.pth.tar" -CHECKPOINT_GEN = "gen.pth.tar" - -both_transform = A.Compose( - [A.Resize(width=256, height=256),A.HorizontalFlip(p=0.5)], additional_targets={"image0": "image"}, -) - -transform_only_input = A.Compose( - [ - A.HorizontalFlip(p=0.5), - A.ColorJitter(p=0.2), - A.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], max_pixel_value=255.0,), - py_vision.ToTensor(), - ] -) - -transform_only_mask = A.Compose( - [ - A.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5], max_pixel_value=255.0,), - py_vision.ToTensor(), - ] -) - - - - - - - - -# 下面是修改后 不使用albumentation库房 的代码 -# import torch -# # import albumentations as A -# # from albumentations.pytorch import ToTensorV2 -# import mindspore.dataset.vision.py_transforms as py_vision -# import mindspore.dataset.transforms.py_transforms as py_transforms -# -# -# -# DEVICE = "cuda" if torch.cuda.is_available() else "cpu" -# TRAIN_DIR = "maps/train" -# VAL_DIR = "maps/val" -# LEARNING_RATE = 2e-4 -# BATCH_SIZE = 16 -# NUM_WORKERS = 2 -# IMAGE_SIZE = 256 -# CHANNELS_IMG = 3 -# L1_LAMBDA = 100 -# LAMBDA_GP = 10 -# NUM_EPOCHS = 500 -# LOAD_MODEL = False -# SAVE_MODEL = False -# CHECKPOINT_DISC = "disc.pth.tar" -# CHECKPOINT_GEN = "gen.pth.tar" -# -# both_transform = py_transforms.Compose( -# [py_transforms.Resize(width=256, height=256),], additional_targets={"image0": "image"}, -# ) -# -# transform_only_input = py_transforms.Compose( -# [ -# py_vision.RandomHorizontalFlip(p=0.5), -# py_vision.RandomColorAdjust(p=0.2), #与ColorJitter()参数不对应 -# py_vision.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]), #MS中没有 max_pixel_value=255.0 参数 -# py_vision.ToTensor(), -# ] -# ) -# -# transform_only_mask = py_transforms.Compose( -# [ -# py_vision.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]), -# py_vision.ToTensor(), -# ] -# ) diff --git a/data/download_Pix2Pix_dataset.sh b/data/download_Pix2Pix_dataset.sh new file mode 100644 index 0000000..6b38aa5 --- /dev/null +++ b/data/download_Pix2Pix_dataset.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FILE=$1 + +if [[ $FILE != "maps" && $FILE != "facades" ]]; then + echo "Available datasets are: maps, cityscapes, facades" + exit 1 +fi + +if [[ $FILE == "cityscapes" ]]; then + echo "Due to license issue, we cannot provide the Cityscapes dataset from our repository. Please download the Cityscapes dataset from https://cityscapes-dataset.com, and use the script ./datasets/prepare_cityscapes_dataset.py." + echo "You need to download gtFine_trainvaltest.zip and leftImg8bit_trainvaltest.zip. For further instruction, please read ./datasets/prepare_cityscapes_dataset.py" + exit 1 +fi + +echo "Specified [$FILE]" +URL=http://efrosgans.eecs.berkeley.edu/pix2pix/datasets/$FILE.tar.gz +ZIP_FILE=./datasets/$FILE.tar.gz +TARGET_DIR=./datasets/$FILE/ +wget -N $URL -O $ZIP_FILE +mkdir $TARGET_DIR +tar -zxvf $ZIP_FILE +rm $ZIP_FILE diff --git a/dataset/distributed_sampler.py b/dataset/distributed_sampler.py deleted file mode 100644 index b8b3691..0000000 --- a/dataset/distributed_sampler.py +++ /dev/null @@ -1,48 +0,0 @@ -from __future__ import division -import math -import numpy as np - - -""" -用于多机多卡进行训练 -""" -class DistributedSampler: - - def __init__(self, dataset_size, num_replicas=None, rank=None, shuffle=True): - if num_replicas is None: - print("***********Setting world_size to 1 since it is not passed in ******************") - num_replicas = 1 - if rank is None: - print("***********Setting rank to 0 since it is not passed in ******************") - rank = 0 - self.dataset_size = dataset_size - self.num_replicas = num_replicas - self.rank = rank - self.epoch = 0 - self.num_samples = int(math.ceil(dataset_size * 1.0 / self.num_replicas)) - self.total_size = self.num_samples * self.num_replicas - self.shuffle = shuffle - - def __iter__(self): - # deterministically shuffle based on epoch - if self.shuffle: - indices = np.random.RandomState(seed=self.epoch).permutation(self.dataset_size) - # np.array type. number from 0 to len(dataset_size)-1, used as index of dataset - indices = indices.tolist() - self.epoch += 1 - # change to list type - else: - indices = list(range(self.dataset_size)) - - # add extra samples to make it evenly divisible - indices += indices[:(self.total_size - len(indices))] - assert len(indices) == self.total_size - - # subsample - indices = indices[self.rank:self.total_size:self.num_replicas] - assert len(indices) == self.num_samples - - return iter(indices) - - def __len__(self): - return self.num_samples diff --git a/dataset/pix2pix_dataset.py b/dataset/pix2pix_dataset.py deleted file mode 100644 index 65e1c8c..0000000 --- a/dataset/pix2pix_dataset.py +++ /dev/null @@ -1,70 +0,0 @@ -import numpy as np -import os -from PIL import Image -from mindspore import dataset as de -import mindspore.dataset.vision.c_transforms as C - -class MapDataset(): - def __init__(self,root_dir): - self.root_dir = root_dir - self.list_files = os.listdir(self.root_dir) - print(self.list_files) - # print(len(self.list_files)) - - def __len__(self): - return len(self.list_files) - - def __getitem__(self, index): - img_file = self.list_files[index] - img_path = os.path.join(self.root_dir, img_file) - image = np.array(Image.open(img_path)) - input_image = image[:, :256, :] - target_image = image[:, 256:, :] - - - # 第三方库albumentation的图像操作 - # augmentations = config.both_transform(image=input_image, image0=target_image) - # input_image = augmentations["image"] - # target_image = augmentations["image0"] - # - # input_image = config.transform_only_input(image=input_image)["image"] - # target_image = config.transform_only_mask(image=target_image)["image"] - - return input_image, target_image - -def create_dataset(dataset): - - # dataset=MapDataset(root_dir="../maps/train/") - - mean = [0.5 * 255] * 3 - std = [0.5 * 255] * 3 - - trans = [ - C.RandomResizedCrop(256, scale=(0.5, 1.0), ratio=(0.75, 1.333)), - C.RandomHorizontalFlip(prob=0.5), - C.Normalize(mean=mean, std=std), - C.HWC2CHW() - ] - - train_ds=de.GeneratorDataset(dataset,column_names=["input_images","target_images"],shuffle=False) - train_ds=train_ds.map(operations=trans,input_columns=["input_images"]) - train_ds=train_ds.map(operations=trans,input_columns=["target_images"]) - train_ds=train_ds.batch(1) - train_ds=train_ds.repeat(1) - - # print("ds:", train_ds.get_dataset_size()) - # print("ds:", train_ds.get_col_names()) - # print("ds.shape:", train_ds.output_shapes()) - # for data in train_ds.create_dict_iterator(): - # print(data["input_images"],data["target_images"]) - - return train_ds - - -# if __name__ == "__main__": -# dataset = MapDataset(root_dir="../maps/train/") -# create_dataset(dataset) - - - - diff --git a/discriminator_model.py b/discriminator_model.py deleted file mode 100644 index 727e491..0000000 --- a/discriminator_model.py +++ /dev/null @@ -1,73 +0,0 @@ -import mindspore -import mindspore.nn as nn -from mindspore.ops import Concat -import numpy as np - - -class CNNBlock(nn.Cell): - def __init__(self, in_channels, out_channels, stride=2): - super(CNNBlock, self).__init__() - self.conv = nn.SequentialCell( - nn.Conv2d( - in_channels, out_channels, 4, stride, pad_mode="pad", has_bias=False, - ), - nn.BatchNorm2d(out_channels), - nn.LeakyReLU(alpha= 0.2), - ) - - def construct(self, x): - return self.conv(x) - - -class Discriminator(nn.Cell): - def __init__(self, in_channels=3, features=[64,128,256,512]): # features——output_channel - super().__init__() - self.initial = nn.SequentialCell( - nn.Conv2d( - in_channels * 2, - features[0], - kernel_size=4, - stride=2, - padding=1, - pad_mode="pad", - ), - nn.LeakyReLU(alpha=0.2), - ) - - layers = [] - in_channels = features[0] - for feature in features[1:]: - layers.append( - CNNBlock(in_channels=in_channels, out_channels=feature, stride=1 if feature == features[-1] else 2), - ) - in_channels = feature - - layers.append( - nn.Conv2d( - in_channels, 1, kernel_size=4, stride=1, padding=1, pad_mode="pad" - ), - ) - - self.model = nn.SequentialCell(*layers) - self.concat = Concat(axis=1) - - def construct(self, x, y): - x_y = self.concat((x,y)) - x_y = self.initial(x_y) - x_y = self.model(x_y) - return x_y - - - -def test(): - x=mindspore.Tensor(np.random.rand(1,3,256,256), mindspore.float32) - y=mindspore.Tensor(np.random.randn(1,3,256,256), mindspore.float32) - print(x) - model=Discriminator(in_channels=3) - print(model) - result=model(x,y) - print(result) - - -if __name__ == "__main__": - test() diff --git a/eval.py b/eval.py new file mode 100644 index 0000000..f073fed --- /dev/null +++ b/eval.py @@ -0,0 +1,78 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +""" + Evaluate Pix2Pix Model. +""" + +import os +from mindspore import Tensor, nn +from mindspore.train.serialization import load_checkpoint +from mindspore.train.serialization import load_param_into_net +from src.dataset.pix2pix_dataset import pix2pixDataset_val, create_val_dataset +from src.models.pix2pix import Pix2Pix, get_generator, get_discriminator +from src.models.loss import D_Loss, D_WithLossCell, G_Loss, G_WithLossCell, TrainOneStepCell +from src.utils.tools import save_image, get_lr +from src.utils.config import get_args + +if __name__ == '__main__': + + args = get_args() + + # Preprocess the data for evaluating + dataset_val = pix2pixDataset_val(root_dir=args.val_data_dir) + ds_val = create_val_dataset(dataset_val) + print("ds:", ds_val.get_dataset_size()) + print("ds:", ds_val.get_col_names()) + print("ds.shape:", ds_val.output_shapes()) + + steps_per_epoch = ds_val.get_dataset_size() + + netG = get_generator() + netD = get_discriminator() + + pix2pix = Pix2Pix(generator=netG, discriminator=netD) + + d_loss_fn = D_Loss() + g_loss_fn = G_Loss() + d_loss_net = D_WithLossCell(backbone=pix2pix, loss_fn=d_loss_fn) + g_loss_net = G_WithLossCell(backbone=pix2pix, loss_fn=g_loss_fn) + + d_opt = nn.Adam(pix2pix.netD.trainable_params(), learning_rate=get_lr(), + beta1=args.beta1, beta2=args.beta2, loss_scale=1) + g_opt = nn.Adam(pix2pix.netG.trainable_params(), learning_rate=get_lr(), + beta1=args.beta1, beta2=args.beta2, loss_scale=1) + + train_net = TrainOneStepCell(loss_netD=d_loss_net, loss_netG=g_loss_net, optimizerD=d_opt, optimizerG=g_opt, sens=1) + train_net.set_train() + + # Evaluating loop + ckpt_url = args.ckpt + print("CKPT:", ckpt_url) + param_G = load_checkpoint(ckpt_url) + load_param_into_net(netG, param_G) + + if not os.path.isdir(args.predict_dir): + os.makedirs(args.predict_dir) + + data_loader_val = ds_val.create_dict_iterator(output_numpy=True, num_epochs=args.epoch_num) + print("=======Starting evaluating Loop=======") + for i, data in enumerate(data_loader_val): + input_image = Tensor(data["input_images"]) + target_image = Tensor(data["target_images"]) + + fake_image = netG(input_image) + save_image(fake_image, args.predict_dir + str(i + 1)) + print("=======image", i + 1, "saved success=======") diff --git a/export.py b/export.py new file mode 100644 index 0000000..bd6650d --- /dev/null +++ b/export.py @@ -0,0 +1,75 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ + +""" + export checkpoint file into air, onnx, mindir models +""" +import argparse +import ast +import numpy as np +from mindspore import Tensor, nn, context +from mindspore.train.serialization import export +from mindspore.train.serialization import load_checkpoint +from mindspore.train.serialization import load_param_into_net +from src.models.pix2pix import Pix2Pix, get_generator, get_discriminator +from src.models.loss import D_Loss, D_WithLossCell, G_Loss, G_WithLossCell, TrainOneStepCell +from src.utils.tools import get_lr + +parser = argparse.ArgumentParser(description='export') +parser.add_argument("--run_modelart", type=ast.literal_eval, default=False, help="Run on modelArt, default is false.") +parser.add_argument("--device_id", type=int, default=0, help="device id, default is 0.") +parser.add_argument("--batch_size", type=int, default=1, help="batch_size, default is 1.") +parser.add_argument("--image_size", type=int, default=256, help="images size, default is 256.") +parser.add_argument('--ckpt_dir', type=str, default='./results/ckpt', + help='during training, the file path of stored CKPT.') +parser.add_argument("--ckpt", type=str, default=None, help="during validating, the file path of the CKPT used.") +parser.add_argument('--train_data_dir', type=str, default=None, help='the file path of input data during training.') +parser.add_argument("--file_name", type=str, default="Pix2Pix", help="output file name.") +parser.add_argument("--file_format", type=str, default="AIR", choices=["AIR", "ONNX", "MINDIR"], help="file format") +parser.add_argument('--device_target', type=str, default='Ascend', choices=('Ascend', 'GPU'), + help='device where the code will be implemented (default: Ascend)') +args = parser.parse_args() + +context.set_context(mode=context.GRAPH_MODE, device_target=args.device_target, device_id=args.device_id) + +if __name__ == '__main__': + netG = get_generator() + netD = get_discriminator() + + pix2pix = Pix2Pix(generator=netG, discriminator=netD) + + d_loss_fn = D_Loss() + g_loss_fn = G_Loss() + d_loss_net = D_WithLossCell(backbone=pix2pix, loss_fn=d_loss_fn) + g_loss_net = G_WithLossCell(backbone=pix2pix, loss_fn=g_loss_fn) + + d_opt = nn.Adam(pix2pix.netD.trainable_params(), learning_rate=get_lr(), beta1=0.5, beta2=0.999, loss_scale=1) + g_opt = nn.Adam(pix2pix.netG.trainable_params(), learning_rate=get_lr(), beta1=0.5, beta2=0.999, loss_scale=1) + + train_net = TrainOneStepCell(loss_netD=d_loss_net, loss_netG=g_loss_net, optimizerD=d_opt, optimizerG=g_opt, sens=1) + train_net.set_train() + train_net = train_net.loss_netG + + ckpt_url = args.ckpt + param_G = load_checkpoint(ckpt_url) + load_param_into_net(netG, param_G) + + input_shp = [args.batch_size, 3, args.image_size, args.image_size] + input_array = Tensor(np.random.uniform(-1.0, 1.0, size=input_shp).astype(np.float32)) + target_shp = [args.batch_size, 3, args.image_size, args.image_size] + target_array = Tensor(np.random.uniform(-1.0, 1.0, size=target_shp).astype(np.float32)) + inputs = [input_array, target_array] + file = f"{args.file_name}" + export(train_net, *inputs, file_name=file, file_format=args.file_format) diff --git a/generator_model.py b/generator_model.py deleted file mode 100644 index 894d687..0000000 --- a/generator_model.py +++ /dev/null @@ -1,106 +0,0 @@ -import mindspore -import mindspore.nn as nn -from mindspore.ops import Concat -import numpy as np - -class Block(nn.Cell): - def __init__(self, in_channels, out_channels, down=True, act="relu", use_dropout=False): - super(Block, self).__init__() - self.conv = nn.SequentialCell( - nn.Conv2d(in_channels, out_channels, 4, 2, padding=1, has_bias=False, pad_mode="pad") - if down - else nn.Conv2dTranspose(in_channels, out_channels, 4, 2, padding=1, has_bias=False,pad_mode="pad"), - nn.BatchNorm2d(out_channels), - nn.ReLU() if act == "relu" else nn.LeakyReLU(alpha=0.2), - ) - - self.use_dropout = use_dropout - self.dropout = nn.Dropout(keep_prob=0.5) - self.down = down - - def construct(self, x): - x = self.conv(x) - return self.dropout(x) if self.use_dropout else x - - -class Generator(nn.Cell): - def __init__(self, in_channels=3, features=64): - super(Generator, self).__init__() - self.initial_down = nn.SequentialCell( - nn.Conv2d(in_channels, features, 4, 2, padding=0), - nn.LeakyReLU(alpha=0.2), - ) - self.down1 = Block(features, features * 2, down=True, act="leaky", use_dropout=False) - self.down2 = Block( - features * 2, features * 4, down=True, act="leaky", use_dropout=False - ) - self.down3 = Block( - features * 4, features * 8, down=True, act="leaky", use_dropout=False - ) - self.down4 = Block( - features * 8, features * 8, down=True, act="leaky", use_dropout=False - ) - self.down5 = Block( - features * 8, features * 8, down=True, act="leaky", use_dropout=False - ) - self.down6 = Block( - features * 8, features * 8, down=True, act="leaky", use_dropout=False - ) - self.bottleneck = nn.SequentialCell( - nn.Conv2d(features * 8, features * 8, 4, 2, padding=1,pad_mode="pad"), - nn.ReLU() - ) - - self.up1 = Block(features * 8, features * 8, down=False, act="relu", use_dropout=True) - self.up2 = Block( - features * 8 * 2, features * 8, down=False, act="relu", use_dropout=True - ) - self.up3 = Block( - features * 8 * 2, features * 8, down=False, act="relu", use_dropout=True - ) - self.up4 = Block( - features * 8 * 2, features * 8, down=False, act="relu", use_dropout=False - ) - self.up5 = Block( - features * 8 * 2, features * 4, down=False, act="relu", use_dropout=False - ) - self.up6 = Block( - features * 4 * 2, features * 2, down=False, act="relu", use_dropout=False - ) - self.up7 = Block(features * 2 * 2, features, down=False, act="relu", use_dropout=False) - self.final_up = nn.SequentialCell( - nn.Conv2dTranspose(features * 2, in_channels, kernel_size=4, stride=2, padding=1,pad_mode="pad"), - nn.Tanh(), - ) - self.concat = Concat(axis=1) - - def construct(self, x): - d1 = self.initial_down(x) - d2 = self.down1(d1) - d3 = self.down2(d2) - d4 = self.down3(d3) - d5 = self.down4(d4) - d6 = self.down5(d5) - d7 = self.down6(d6) - bottleneck = self.bottleneck(d7) - up1 = self.up1(bottleneck) - up2 = self.up2(self.concat((up1, d7))) - up3 = self.up3(self.concat((up2, d6))) - up4 = self.up4(self.concat((up3, d5))) - up5 = self.up5(self.concat((up4, d4))) - up6 = self.up6(self.concat((up5, d3))) - up7 = self.up7(self.concat((up6, d2))) - return self.final_up(self.concat((up7, d1))) - - -def test(): - x = mindspore.Tensor(np.random.randn(1,3,256,256), mindspore.float32) - print(x) - model = Generator(in_channels=3) - print(model) - preds = model(x) - print(preds) - - -if __name__ == "__main__": - test() diff --git a/imgs/Pix2Pix-examples.jpg b/imgs/Pix2Pix-examples.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1f24d5ef635e16773ea163a28cec68d09a59978 GIT binary patch literal 480390 zcmcG#cU)6luqYa-0xG>XrAP-AkWM}eB_N>m9u+A8A<|JGQKU!{=?X%mNhi{!M!JfK zbV&pP2uKMeq9K^V+kWS~bKW2K{@(lDckfE}-jkKJ*IqMgX4b5k*+*ZG@E{%wQ-~?( z*s)_EbKnCyS_VBdiGulnKvq^DWe^B-9K?Ez55x>W$AAy$m>7ulUl;_kI41sIuW8L;&et_k)MQL;c|Q zPHU>41L2f(tCVfX&RX#gy6JK$gV)n7OS z7$8vJ@)!2~5BUARZTJG=_>uL{NGu^yrTeIK%gt|d-p?NzJ6h+F9DSDJ`D--Qdd2F;oSL)AkbgB z|Hm`;Z~RNoV?v+)yY4^!`FsBFx|bp#kWB>$#6tV;I<0gN=#?r6#GU)!b!X3mKs*{C zQ145x@Q{fA?CBVjCJ6NZ_WS4^i1#=XiJiuLOa{cndyJX)*wG+J8XzqzAQ69s;=g)h zW?^MxKhD9)1vF^o0Wlq8W@chxW@Y`$n8#v|F#%l6%gT4={3SO28@JeHf(0%-$}Bl9 zd%3Ys&~}0-r+GUhj)PN3SVUAz{;YzclCqZeMIBu|{VP{ZOwG(87IyXyj!pndUU$5G zeEnelp<&?>kx};_JdRIDOnQ=>l9ip4o0tFmML}ss_L4i=9bpB_O~6K{R4wT z!z1rMe4Lz`o|&EdI*(mmS^d7YzVTyoi}Z8<*KhIx z052vM7G@Uqzjz&EiUba3UKZ9f=h^r!-C(~J%rA4{(Q$#xnI(;V9I~3WM8Vr36P!YF zTFdgJzo`9-+5b1h;{KN~`!B@)8!sH_%3t*b6ei%y%)|ts#0(S`00p41va$YK*#5Jy z|64fz7S8`FM?fdXfIET00(?2y+1UTG~-F~1L?7b|Nb(?2}uI)68U=aDy@{rNHG z_5A1~P%Cuu(T@Pi+7amSW$^cF^lIcz1%{EDRayuaRy68)i5kb+I{j`ASpQg+HDGFq zgbDuqUPIUnLw%6`x?tBk9Y$CGwy+gC0_Qm`oExWZb1Cn%!$*cZ(jP@R%l#PXho&eV z45G1I46Y*(Y4s`*)gPr%4oz4TK#I6-Ubm_g&J&q0>5N+ZTFyHpS9_Ov?B34U*%{?s z!t`~=t=(U)Vf*mX-!snsD)Sbv$!)2z5B{j5r>;&+TFTDZT(QWQC}~hN+iS> zk%nB+tk$!|7GJ|C*{Lr)z|$WN^`J!&^6 zBNl@%EXdfIr*b3vhKiZ!Sr~lIl2|LZRLluVdYQjwRH_x@i`df_Ql*`-^e=IGx19+a zS=^1-?nvc&WmzpX74N<+F#Z+lO~xRKqBuvBS&+aSMo-t%!rklNU4P%^}4ofai zS%-3)!Tj4VUb>MhFKlPXd$%y`pG?{EIIvo-`PgjV=e(Mr2S&ys_SVz|1u5^|5A_x| zQW9l~oPr$K!yBI7!_{NE17DM4ZT42J=EAJ*eC#y(F6_hKcIiaw+5YH@llKs>YiiQCz8mBy>4D6aGyCIeSPPYl_^$p*-BqlG^8GCn6 zm0k&l$#lclWh?X7o-Nq{cRT>&tCs{Bn$q*xWC6-a(kbpo4}1ySuV9{Pq>Plk-6l#~dvZ+PEGN0I8I3m<_gCs;K+jSm54_ zz?uKlTZ-jxo(S)<9P7oRa3-(oE1=`@_36`gmfWW@JDW9h4!}W09|6>;D3+#I^~xOj4*nS~D{~33;VV^b|Ksy!R&#u9 zBq4)vlD+5+NEiWPW@;QnlkZ!}DOGGu{ZL0h`*$QLt>)EFnPGLt>8yuKQ*Pg#r1Vw;GQFNgyT$*MOGD*y(iZm9lvipXFm9OQX6IUN zVeqEZY|y68m$i!V6Ke7b_jOHOcXrWt{`As|lMX7NPo;@&;}m6^WH3Gp+?1CT-pjJGSQP&dc>8Uf_*<_8ypFKb8|BZL`R23N z#Y5So@>k&$O&r;pIJfgAE9MMoJf$9C{6i?P#)UFUSiGiFu%qmg)>CDAkvxp&Rx5et ze)VFrrHazxmc_aBYbHJKyY4T@t$ELwl6z(rM~p-|hKnxJH&tp0K3FSqNGoBggP!AH zbeS<_@djm&34G>eI{E&q!tsaA5+{m51nB1tnz$gKHCQS0R0Oim;A|JY3|%oB<4atE zz9rT#*59MV#IDuvPnYI&evAHfK}l} z1N4cJW)}p4-^=DIR8^)_>MP$Uor>t(*=@jRBl^qa&-OI6wFT5PH-n!*A0gW!X~K34 zE&?fa7z`*YJW2{Y3HC(;^4C`|U0{`05*#2nT!Q#f>P-7WKDaOzy4GSl#@Ex+4O4#Y z9WMU{Va!;>5Ir?0r*($WoKejTPQjHi6>=hlYh}UO$k@tpc5)H>lMOpLCUH{2F$=eJ z-{R+pU|;d#)wCM@i)0&liZoRbc-SC{2seAu?SLm?Zct#%G(t2Z+aOfR@G3X5)5}G+u+?i>JHUM`xrgDt@7fsyaGF5XuKi zQtd4xr(}4}C8zm|IvWg!7RBH08DN~!r{~9r1MEBvJY6zInO=nPm2`40gb*=9$JJFE zS_5)BdSDtQv#sp=6;E|-uQz|PNKA`k+WQt_{>{tOE-RAUogCi$-Ep&KeSJS9xU=bY zrFFPJz>}!mj_!tBGh|_gMwW%gU1X5YpFz))x}Q*fDwvPobO@VWL7`~}Rq*gY73(bB zaIUIX_oGZQXDpGO9HKN8%2y(Mhj~SsB4e{N4y+AaXzH~X^Et#>#-x)cSBHnK%KnK0 z4RTwLcAeuh0p8RXvaOvLNt*S8ezzTYhr|dDv|4%+@|FfgzMUpugO6Ei%clwDlZPjN zYouZL_*Q~%>7@U%y0AAu9(Hn;%~~XsE1m1hRHIc9md%`Jx$}dqAlCK^Xn~H_NkW&2 zaTmN4SH>3{R_5jgX_eH0n6y!2EUjD^nc>#d8&kjD8c$W*NOs@n>UBKcVZ;Vu)}~nk zGueFvYQv-)fqa*60juLQKFlCW_!b36tXy7C1*aJDuha%!R(W`TvEek)=fWZ(5}hd@AMR5b%E zVrzz{noc$tio`fFWOOpf5BuB?ndUyur&S$xe@?1Es$<@m4MCXzko-Ce&hat-PV<#>F2&bs z?jnEaf1WiEH?J#|t5dAv*iH};MX%Q~PKg3UvS7@B+h3wMF#f2oV3(GuUiBDWOz{!u zT61@vfmf86xjH@|AUU(dtv0&W`4i-xBikwJLU3Y#eFwe*VeLION(wo=Px#rmkm(@Elb$de=wvKww@zUyoc)D-j913l!K?cfog%> z{jZLR|MP}@^%EC$;2?u0P6wv%5e48LR$1c4AnK8H>qf#dac)@Su~@t-qWkX3IoAc% zCij21{uw_Lw<}uj{dE0YOjATl6iX?>PJ<=^81t;-^aQPrKn%VD(>S)+{(AF#U4F6L z7ul{Uf^55|TtPH0Y$j~vS)lJ3`Gnx70x=`M3dyVhEqVb~IEyfd0a1QaA0R%UxK#}W zN&J1q(ioCchF1GzUD#OYb!V@)UHn$jcP~OK21#%CuYLNsbD~zJdRJLu`b)Sl+|9D0$8wvJpbIdZ``pU_qZNFj_zX!;FF+2 zNWUY{F&Z?`Z3xrE9!JxxifZoHUt^SbYfX$+n&xK&z`Z5=-acB3vwX74JztsvsUJ+K zkvo@IXXQ)Ll6KohKSlG}_3o(aR${fWgFCH{0z*1+eLh!1#Oc zn@sPuy7hqj8BEzjoj!3|h4P%16|LWg&DEM5PCwPUa^}gHR<>pV^$LT7pR{TL(B&R* z>)kpeJ`dS!GZKJ&y40LMxF8mQIW=~w*|%<}3~CY>8j*Q8dpEG8<0MSW&Ll|I#nIW@ zZy=D%zS_brU97;uV!H-cFm?cgP5ucoam`H0wQwC)A0y0;l^;M3n%mkM={pAH=69YY zIEcy-L6VS~HvOll>H%`m#i(7`&pKE8=49K>0lJJv!f-Zf$gd?LzsJ#;esKKQ&d*oI>Xa>*(oTR{B#} z;BJ0o-!POJ!Gah;sLkG?z)0gZ=eMwDD?{Yf#A6$n1$Ht^uf4I7h!mO>;5(z5(3Ynm zP_MVVY$SQ7Bi6OkrgdlM_vE-`?v1wtyt?&D(839=hORCx!UFcsMI^!&B5}T@>5ct$ z%k#RRQ{@G-a=L&`uYEYC=G@&aFz^LqK4=9_y zM0WB$%B@?H<04egetEQ+>|hz+TY;b*3YL; zvbN&d;rpD5rLW$UrYM5`Pao*@b_hU-hm6@d6fso260mFzP(wFqXIhCDwn#r@`UjD( z3l%H((>LZBSnC4?II6h~%gCvvtP+nvv<6r`VAyFv=@;FmO)w2#lFY`DxytFWV+vah z_E~@GVd3tmbXOSTB-#||l@p)9`W(;c$^aHeJO5({Y)NzWio&G%cX|a8V?>W} zjUhD)kK1Z8F7@A|vb4O6zgC*WUz1I7I)DGE)YaJJMBI9s>4{&?1|2_6_mE;W@V3b`Df}D1mYz$w__896zVj$!ji15UL)8MLS`3LVLUI`DQ2{aU zlSINe>Ji#e(GD$bZ7sy{6qz}xKMQ?2{FZ8YR?TPM?F?UHP8+-}KL_7J(Ii>9hc&S5 zc=V1M_rUf>GwBGF-fePM3pWapnpmFI77sLdU!Zhr^quXBNqE>{wy4A-I|mEhC_$zEo29-WY4T3}4qM zO!GC+>=N0i@Sh_oQEiZYqncBEuyBFO6tu>&_8;4h<_58@~4s+or(wVK_#MV%X@?qBJ+vi4keWYdWzK0uA4-J={*}ue))x4$gKT8sip^wMg7C%l=kC?>9a}{IiAnnjRaZ5p@JI z+qWD0ekbO|!W0(s2=$eF6+HsTT^Hj7;L%Jag_7^&{Tv@^6C18(ar%Q;4!;#}zs42k zxp?`*{xH$?gGyb^r6(EZc$;O{kYAw;j#@y-Md&@q+g2Lap;)1f%k-L<@MG5Vv(IaTa7j>z5M$q7ep&HkDvX$XPTwwVsLy|+RcUb$dsT_bm7)Q-fIyg zzVEZ^M?2S@tn3Ab(1Lty#;@0C6ed6;JrdOn-DxMulAlcd`ZZHYR7li@^O$+7CJJ=K zUi|DwxxIAuhIQWY)2sY5s2?AWnhFM6`gvi&Us-B zNv_v5-j+4`M7kn3WhVM_eqQICgX*WD=QIMa(j9^5$-VrHc@)tKE#*P8>z&ytT#m@7 zkHSI396m*?1e#e-?B$8UQV z^&Y&_%(v0to5?{MXLtoa_7_{Y!h-rJbneKfwiU> zEt1%3ecMGfgc3x1s{ot?#buEH8k`$3e@z%-%q8IL1K_92I0utDF%_1sK4L$0_jkRD zd9?FwF_YYdFFJOcItSPGRChj#-xGa@eZ@(JQoP|5!)?Y>r)3NS1OwAP&aGz<0;pz) zNmSDaO)`OGxq{g#BbM&1>ZFztf2Y?(1$~CdbvLT?Hv9J$`w|Y1<3g zcMpv3tl>fqbj4g5p@SEt>2K<)=9d-6-CFCZ``U-jn?oMAH(0VDmuL4Y*%*=VeQ*hq zqA-$x41}@*i;oC#jwYZp*a=T%sJm$&kQeLA%}zu_a?WLISLQu)bsoOx`us*?5bB)X zw~&$TuGq+{-951vCx3DT$$tKkW#TKcoy#sONYMj$y@mn?&OG!+@J$UiiY)m$Nxrf_ z0L|m^6&iD?yL(0)l5I07Hr+G!rsJ0Q4rJl#ht7+cc3zTcTgW_aief&EKbvuqLVpVO z@~~M!?l@7cj**t$Ju?X|UHIXt(lWF6+sax`@Pw`FW=Ftn>T{03PsW#yeQT;^>ztAB zx6i$kTU1vc*^0G%-R8Kkpq8d&VtvlO=rDJ8H>)ecss{y?55WF70zn@17Y<2@w$IEB z9EhdYMee1yja}e)x@#({5Ii2FatNX~VDM;g3ub5P2*frPbDCb&vhctSm3jmc__d%i z;JA1?^TzI(x5X++9n&J`#T$%AVW(X{a@N~tBzQe<5i1!dIVjvD9kLo!4Dm%uk7PAY z5MLqa2DBq&qL;{Cu`JvyPdwMPbK|~Qs`iG}iB7D%cL?`Vc2IeZ77JO6Sm^oX z5jIEsW?vzeQ#I;)BUFAutzpS34EKqF-B#T0l-Xj21iWXR-{gMY>x=&Od2bSvGyZ6a z6@%~ngQ4-b4S|~u21Uz>z6AElEnky~-vl>kOY{M;BjA2{N1)^9=tjwpR}U^$tC%;{ z$h^I|?1_zYLO%q`E?@_D{MJ=cBWM_^cpEJukwMR=^J{y74g#_P7EZq$BW4bFJ8^Dm zHovabWcds6e5=oy8qNl*h~5;TvxNju05ZoRfQLIHjAPh=CEla^5;d4+H>VzRYZb|6 zSsjJE)H`G8X?>sxHS?+{Y|m`}Cf|~;=-w6NSB8ZcqKd)zVrgQaa6A%UvedMQ0(kK6 zo;8JLM|xdNLaqw7cq+V^4jcXI6|2tmtQod%U~^*3kicVxJrO)4e%#CCe6k8;D#zdY z{OtJ~fEkz^Y9hag?YY~vWuiA6R;K6o9cxKbAM0)F{X7@jP>1*oj1`Ow%E0EY0`8~{ zaw|QnS0M^THCx^oPzgNWtzFKgqHB_E{pPTq{N$D8i`2Z^F`Mp8QJ|aLKOFxjj;6ov z%noA^rJ1UP>~qEd(V!$C%*URr5#zFA!}Nnp@-HC#{?y*CA1@TiTGDl4Ty8Q`t!8*r zB1?0)+;lKko7le7Ud{M`Awo4WJdNpqmj~YhZ7I&ibF=;E{Pf2+&RA@LQfd9AcyT84 zj?2}^5G7|mCE2vG6Spm2%#6MlGD&C z$C7%I@uf{#4D16>4;BG8%gm{^woGV?4)qU7zwp+WFX^J*HeI|EJm?!2m?8c?SswYS z!q&px%TwF{ZCX@t2&&yAwmg=sIKLq{Mg9}rKV z>)5!v0&nv*g*~c~|Gb8pyG+$8x35jpC}Glua2+R1K(G|<#)pK z0}VoziiM1wi%q3)Idf*Fk*MieAluF>0uH%n)0?yKYTY08}ahv+`h+XYR{WQ9kF}RS`MqS#FA&6QOnmOi|dQ@q<^A2x@qhnKvXy)GZ;@^5Li8YhE+j zN~28zIhBHBS&8U4^k?g5VP=NS{7#hI&WmOGyeaRD6o z#N!LAr)gE~?O8?Nn1iBpS5pKwo(!l;NLCU$G-jt-@)^uhaLe!s$)K>!+m7lF2IfO? z70Y3J44qNz!6Bv_jGtYis7Mq3I`7ngWkquU)4G)6G=$=b;i|`eYL6Qpw^1wikNEDU zk$a1^Th(@Dc0;W>LiCDM?l`i~1dK0VYG-Yy32)%pf#53Hh*T35FreSsi>i*AWSMH& z-c&ES-=G0Mb79eST$MF!^s;?F>E-Cl?@CgV#1WfTfZ@WBee+`D10F`m=59f%73Hkb zj#}vr$(G33HhjYaCI%uuL|EboRQ_nOdzEo~yJCb2n8qK@YX_azm%8^0z&-HcnWpaCx3@x{*`f=~;wdAuqb4J@yt}hfc>6DR-@u zdfehtw|Xkd%UgbQys}%<{L9QXkC8BF8m?AHS;BE<2UhPX7g0IK|n-aeh zg5%HBV(OoN%qaZyE^63Avz z{HiwXIzSvNU&>!+ZYDt8X*Xma4~>7-!|WYkaWh1JL}2Hh;;x0erCajg7A&0OY~8s= zEd!#~?IdjTi^{V7>j5Nbf?bT`xp-ioB{Tl+D+XT;B|?y56x8xwGDBiv^UL-{&8@S$ zi$D8!w^VK~>9b{r4-Ak~VFi}=y~cN^8^pYH6)*Sr`a$N67SN-g=6q6`^l z|9uNWSP%Lm%E=cOs{`&yp?EPk!PICPut3GZ81IV}>Gj6yL-N00Cnldve8K!=W4cv5 z?fL)4L5miDRXKT>MR3AFb50I?CVXP6ySRVgb56@5&g@NsJFB0ZY73(|L{CoOrPtm`tB0UcH&MYZ)mzG&F`ie9kRk zdeO03D}$nhp$SqM$3v-Z6ivJtO~}S=%2+iAtM#xh=|kx`BjM=aqDUo2*x_ zzdH5MDK7>=&j z;2rqn(p3-mNV}_LLe|PeNuE!8(TzubGA-$RA`*vi?f#akK3UmeB))2i2zTnoP~;DG zY5{*WD-Y0>J!NVL=p}>rKs?rzuw>7lZr!ivW!WB~B=o_-rby1~;?Gh;Q|6wCRf0@) ztj~kX1a)$1a7aMw)b^pKx3z7}n=i8wR^;y7Y52nH;svKL1O||uF=#uS;PlrcNPpa| z0a&S*fC!U}vHWyQaOIB!Vbrb0X`Oi+FQiuHebQ>`=Ks zMy+d8-o*luUXMOphx`(xi6i@BkO5W!WMFUbI0)mwb=!2!E8t1_9ru??%%NTiKQI*4{0uNmnxbSz6I57sqVbgB(PGwUI4TmHOG&J-qZZs3AHq@4~T-=7;R3uyQ@o%A(gL*v8~9CdsyP}w-Zi(6w~yG%50GjDNGQ?*S+j2(#I8?d^6f2MNC35c=7Cg9SMP6Ng+Oc4AV#9u|@EJ+0e zLrzvF^V8uC^;%z^K~!}t3S9+?qwX-Vw7k5nn{}QAs&bb>GgJWt^*zu@V3hFSpUCtW zeyR~oYofJCW?coxMV03GK|XM7Kc|}|iZ4(xiCRmazMy~3`{wb}DUX4@6~8otV-3g{ zxB^dwO80V6z(c(X&t%4G{Pi7L=Ioxlv*&+r7lyNEg=)14+zcM_%ki?+F6${r(`ad%nbKI3_{>47RKW9kmbv5T=Zw3GBGgJUklhiNMmqzX{gHihod?55 zpr^ZEDAI!nwy7AM+O6wX4>T(K?)wIY3StL1A*waaxT{U7H{0_*eH3|^PJco(1#W%7 z=sN-l$EYnMnQ1l@ZG3&S3Gtc+e3{C%aBA2sP@UuAUgBq=q&vLEg9{Qjm9QNWoCL!_ zswCorG+(z#L)5^EaQ_}hK*30IOJk}3p9Ds#S8ycqb#;2)$MySXU}xJLQ!X?b2(St~ z%4NB@KqMGYb&MF3Sp~DWi|ge1z~}($8-=x>>MBL*^+P_YfsHzM55O5q6kQ+}r;loc zSXydcO2FXrp+qZ!KRC_Pn9|;`3D=K`(jIEOB6z_Wf1tjjqqQ%^W^qZv**JX zgNRUyM&(Xw31bM{GO`mubwErMpMs}IGclwoPG*$QRmBr$%`a~vZVPAfk7D-+Lgi*_ z+*K^u`kiFK^GiEG9D-$o{upxyBkUgY54`}v8)et0|9e^uezu|lmPhnBJas85?_MvU zh3%VESZ^OYjdz+x7!bK1^(sXf*is@%nx>5;;iTWsr2voUwQ0g?S4(HyrKFUovyM-% z-kNbS*H->jCTxZXzp-S$(_!yQ__$bu?P?+TynK0BW_K08{QBu<3#%o}1;A0XT}fP~ z2FJt#OTrDXFKXU)bya$2jkvnJH>4r9HCwePNnAup&KFoF$K?bGh<7viyf*!$n81T3^Kdd$myBK$?SczJB)&L1fGX<@iUu)qbuX@x5=g@JKhQ~!(F>Ie8LJ4G1=8PgvM%?nMz(i8HGh%$ z&|5x)TeiUAmgq!|Y*!An{PrIF;^N*1mmvMn@71E(rM8~+uhDA(3{{3R29BmE!TY7> zod%)J+&h50uyRnWmX`z=pN>HMG29gk{!(XWcTn~Lk`}WQWxURS>M z>4i!PjU8ZgJYpP7yu=;f%S;>@1PoR=r>87XNsaJry)X~qWkz#&9qzrSx0fc*fyS*+ zt{tk(B|~d>g0q`=*%1g3lvGT!!p8eOY+jjM_O z1fQ&&6(6m!31ok-ob#|2??mH!%;0DQQdRzGqo9cj`22Xl8V?XsgVnfgHfk@_3M#uU zx-hq#a7f8}Qhhq}%WN*RebAz%Ff}x!lTwekgQ^^e4cnK=CTrcYRwl=#7tdLI8*S+N zL-5)fe~2VDftO99G#J8C;AM42{}iT;{EIO`)j|f0(A$=vqZpc0utX(;1CFQWn)=}> z*%gLqHRcYCvFTywr;p`MMZa|VJ>(fq@>*u^&&ZHs>ZQ1lx(4*2sWi>%c;N?*&9IZd zUoza1c|Ndgks8e$!sSEij)|NWQ~4aOqH3a*ZEM?ZC07BrQuSoBJf0(mb8pbuu5*WP z*VD#Vyck?m5_LdY+L(v&9z%3Ne*H|0v7mSnZH6r`HU-MQePVL{?Nm_7{-m?5x$sz1 zfQzS9iF}@1pAULI<0*<50)!MWfNE-VtfpGfE>H?9C`p6D53WxB=;d?to~@Y1p5<}% zaAAc7+FK>$!Gu3@0=_PlE^_5^{tk|66eC3O(COojH)i`1qlw35fIoj}8PmtkS!WZj z@b9&zXeW113>N0>N`^uuqkI|1#{royB}S&nkoJ-QF*}CadS{(eZg+P=c@LPUIFenAMtDhAsbYdB=>{xsLL0pD?#47<3x-Vzb9^qy7$ zNF4<1ZIg^?29RMupB#Y%11lPPC><**8A8suYl(Vnh4MW;^>v@hPjF>2yPKMwf=Y`gNNK6~iGySF~ zf_`w-{EL|gXU#bf9;7r)vetd-*BA1-uD%oE60o=sh_Q}e{`TX8ec^iUx1v97y9}p8 zT*Lu5Rf8e}B;=?O_m@!vu~72ggoZ)NoITNL7|ycoG&||fxWM1EWFm)F$P5i{OlTpe zcdE6E^OpTg3mVLYvH=)AN8)Rjh*o>J$7H)H%x(C*HJKY&qlL85JTP?0H$NfUMfDe_ zU#f6LzjT$$Z?6k2Wy^_I4@fz;z>4va8$g8OA zKN#iY`yh;+aYQOv^2uHZWGU9uLVT7cT0_6;kgv=Z0%F_@?$_X?XgWn z@Pjg{3*che?e*cVxVqA)%q3XS0Uxb63|u7lv@XtV*}Ik~85&nF&TWqM;;?@L|44se zrwKRrJvi7&0=S@y{xC+G)Gh9YP6VQi6~(<2|w>(*;R!fd5!|B zwku)+%nJ4&r^s>-fHT0&<4@|l9hOfWDyC9J$9v`-tlzaD1g!Z~H=FQ%Y zTQyB|6634pwk-Wv10n4fX%$-;<-c)xYJE~o{Y8aOF_-A+fT%S!t@8I(A}^#-&o}Nn z=DO|=IxfsOg#CV;HAfSBuw|%~Cw4t2yj6$&z)Il=l)e2U1_o$S6#aRxEaEE)h!&?x zgN%9IdJd9XZMbosu-Rbzhe+f6V0e{U-Oa}@6sX`_kyX`qcf!$Y+zbx()g{Ws{E?+b zw#-+ECBzA$O&mgl!ZiPDNnl{buOV#)5o6^PkTciE2XieVg3l1 zNd%iVUM+F>2XyQq=m!Y>kfDj}QwHM;p)ERt0q9hWxG_6LXAq%)36@{4ykFtgIyP0s zDYgF3!_R&8>YI_0uTDJ{9N$x(@u`R5X0#S-KUDg3XMcN+A^Y3QExlbT>x3);`BPR# z3@7l*C5nttBUPS(gSIM+WC$|)rJLbNy}~pZA~_YgY$d&Nf_Jg6W-EK^vb+%ETEi?= zOfLF`ozxxWz=5g@POESlugyCQ(F_PE?+qdaF*o59wWWtNon=faf{P?SnAbU;n&lT5 zq&j%sbhdFpQ_f$olxos-&Y@UoW<_HRS?)9dO_V;_dooJah5{p|4*ZEspc#~pthvA* zSk*a3L~Le746!I@zWN|XxRDh)+Z#!*0OL`}Ms7lKjZ45%D|bKo1ZBf^s_bVVIy_Kc zbay3HzPsYBvOMqi?6o~y_Di3Z&V;K!Y8y=0V;4|57iX;xCR|+R+iL?{`l>hgLRA85 znmzqL`0ws!e8&J;kOwrr(SJACqZCVW3?T0}7@vB1NYanHS)1MG7z%PaWB^wuM-AD! z&L|kKoQ>YiI1WkkJX0T&D7)wgOlv#A32+sk14O?`3!En1a`2>-n3S-K5FDy(sEm|& zz2Ms+EOVM5rf2Vyo{hMeh|h%1DeTaxYK*a^rlk1SM2(#>ycPR9SCi=_zqhSl?w)Rh ztaI{@6~4cE;X@1S(pfjq2|VWp!jLh9YGNl?)oga|5!8rX{l(zkiOiM8x1>{9F>=k z-iv6(#j17uYOx(Lv@}!|m0+{gW0ATfNCUhL_m4n#k+@I>$D_Y)0}4Mi?8k$QWNqkt zD?Y=Vl$6v`n@{CmEN{PTS|BXLTI}YQlQkDDGpg1$>;2B3(OLFX*UP!|detk|>*qj{ zAi>X+k-lPXO7gPDm3J5(twN*7D>JX6-3SKP;|yvopUa7RD!s~e)sww7prXVQE|}9X zWA0G?JJovJ_d6kQ?%U4q`Aw^lEc;qDxjI7UK2-a_!^3l9bts=EVFhR@&*@$vWdB!q zhM0uw{rLA}yDL$huihO#+e};{Bs32T@o`@_??bNv=?sxXb-;t2OpRnLB3p%bJeJLf z;QowcY3^$X4mO`J@Ti`PO2$}dcwfy-Tc!TiAKH&vL%Gsoay6@J2< zoKFrX>UCVWUnp*wT))3b_M$$->>NhN*8b}1^JFIiT+aEG!oNJ5;r+_*f%|1HBd}Hb z)7jZY`5({vILm{pc4}TZC{Aq@IYqy<=78OKUAGi5Iq%o7yBBau(0}Ut^-aZ(jNnMu z`@grbBP3v($hHo+$}o4Nzf#GvJph*?7>l0rkC%lr5T^pfhPv~L&p_0AC*Vdq?H5Xm zlIY5d>#$o{-x$OM$Lj+TOSQ;5Kpc03Uo_- zHMaB1`*PDc)ospi*pFkvSr+-JUL)(==g^x-8o%s{4UIp84A{?cACEx&TmW`0^cOT` z%*kFM=h13^X@N<}%d=ZtmF)!!tSJV^NugSCBDUd9S#oc4?Q58!(@6wj;GP9~95^6D zXkhgSgmqiyPKbe_FLAmxR90`kv3zhV!$2k=z0@gPhp+0BL&!ZgtLXN3d-HpEGeGG5 z7@~~Nj8hZc+{-_{!xB*?^OwAWykp>*Wsi8Y(jRr;RHF+z!=(+CXI-nX6BBx_A3a=`AV&$XR+NCHEG`*2f7ym^7?s$D!8bsEHrwoI z9)UaoF{yCMrMuBI=`S(9n7GBWBX!Z!vH`V% z3&2Cq9#+KuY`(bR^|Eoa+kIxk%&H^2oj+}=tByd=(@w$<_dg(wopm?2qYJF|Cx-2gK&a}9wMb#~Hze~?8@hjQ zo|&uz=+7L(fK?Pl1^%f1Z+HVNsnyy^WVBbi*#zJ6j+$_hb=OORU);xy!u6{nQuJ1G zADS(ACIcMJL;?JdfbA8dLo$m4tW}Eq#ts3`jn!P)NdN7uS~8`DX&rst2fz5sW3KJz z6YTODr;t{NY?@)#^Esa*&@Oa!d}kHN4J{+e($3S%x<$*PRtNS@7w(8HywrJ9S99Fu zhL7XCOx)%7&u?Wv_B>AoJl1`Bn43%U;)7XHQ)EBNm1P^&fRKJNp?dRycem5xwRqtt z9)X(2zgDR}B4@FgF}+T?QE8oElPIPVv{E#Q%>5lfO|lJgP;k}nh@3ZY-G&ymI2k{q zSm8%ClE7Ss+C-}Lo7TztUuw$ZHcvl}Am;uw_~3c9G*4%@>zUkY zR}Idg6c3~7C2mF82Y01qL$>N+3P^*Nx!2{3?#-`@ah0)ahp3GafRpzqjetfG zB?|B4fxQ7|Skj|zSu|yR_Ya_;>`7*cb-mvTF6IWDW=FJZJSWIcj|&*ch z{TXF&eV_)=RN!A%$sqb0urI;QhBRD+x8cG0pLYEyrqJ`HzGeP(^YdIUfmAt9_ms^J zjl6$;=?VIj~TBLrxwbG^rD`V<2^LAKvhInAUV=J>~`6t`twsjML|jF@P7=rp#_ z^3e2nea1;dAF`4Caku6&hAqk$a27vS{e@=Rva0(bR9)hH-_^5xr(v$m;+D+f_og$N zCaphfBJU}=RDD#o-VNJ=em)5cn#FlQZ!N0dD@hDU`A$pWe5#ey+ZQbA9&5DQ8wwRq(wA*R&h|DEl)i&P!nXU zqyCZcHEfR}cR=IUFsD>X5BF%|H6Gn0UDH8fdAB%9=94VnF>bzf_(@jnw|QwUa1QyL z=iA&5HRa6p3b*;_CX_~j#f1&aiaBj`b5rZ@x0};B%C@~V5{p**CVht*;l1e|OCNwt zPD~Sg7)8PW`X5R zqHX&JyK}LUONYOcWh(L;0bxW%#6>wdEtwLk7z%0p0>X<+17W!!uyEjb~9S zYeDt%m)y2}uP2aWioW|(;I1LWG6l^zz7NbbnlzrF&NxeHC&v;c8SO}e1rK-2Qdhy^ z`y$<0qdXZOGZ&J5eQcexoU=lquY{y{h{d_f&fQ!Un-O_fIib>zM#hS=miBENYfpq& zZ-_im7=5F@(CsA{m3mugMXULxD9H#hSqD(>Qap&lcsSta2cZ(ctTDnRQQ-bhlN}Sktn}w>rbgY74QFSuy33zX!x6yC zxKMUaWFIdEpXtPqfeP4A^(ZHU950v z0Fi%)E1{_%`;=l#h$Cdi|Ha#z$3yw|kHRBK2rZVZQ(r`c>|~jwtd)>Grm~ZLn`~3| zT?j=?izVwM`#N?B30WcrV=c>!7=xK{KKkDG^Lw7(eV=oF=RD_m{!m_*>-t=u_r8AK z7XacR8MF`_9VXG2br%Oc#DfZQkcK!m%D^^qRyftH?px&+>!pXndL^CQ^-5NKchf{C zLx2#5g}`QN;UC7HAZK#;`69WbRnp^>020kW=NuH~JenPrneVmPuW_ z`97#Pn&!-3f75E#2zJ|pL0JmwWeT^xA>B#zE1Q=VQreR zg`e@A*S)n75SC+Nx>Z&;Z|JVL7)ZEZyz#mJvBfR(ovlhuskV@d|xg+5?%^lTg$)1Dujx}3AV zEI@~t-3%{^Z!snASli*lX3(u0-*;O4P)s35Nv1k@hsYAWs^*Nh=Isw0c(gln?Lwzc z(JG(*GTwVyr$-5WtI$m}`^w3Qi>3blZnrR|7sM1yeDfMJC+%$CrflgzJ20)AtYrQ? zf+TcHSeW{*-VW)?KIaDx7p*Q71Uc7Ha<@R^8kHw(PJ9(+UrV?fV4V5OuuZ@$s8H_I z$$Hz(!81m^}jD!5tw^P6T#>0eBCcBcF1VIk1ti>(DxK7%3jq;PL~&hpGUUd zrGkH|uoY3O40G;bAaAunM^cz$?bJW(xaRP7%8|I~GM0Js?CB|Ie~awz*=yF*Q+!WO zKi(%iKNZ6VYr-bLj)X9U3?4vO%cyKYNPK=OPM;Yrt+Hod<;1>L-00xrzHqbT&0w>w z2kpiAlP;|x$B?Z`$or`8Im{NUPcZb2=V#s5Ce1I&36~GK8d^5!JT(_Dc=qP;IS*~e zm$CeFABgbP5fI7u&97Iw{j%Q|6U_Ok?BZhaJ`G_y-6N)&ma`JHKH9&LH!#OZ%*2=0 ztc?K^^D0Orj%YsWN;WQ`4%A$6E5z{$=&SiIJU1D%p8OH>n$cGCsf5WwOxuf7KTf~J zJZ_``Y;zsBkkTOAM{(HKA)&g`iB#o}U%y!)&I(4E2D^!{$>mBNrI|?yI$HnZ{J6i& zMH6Gn90hbx+Ja<69MND}s28zRKDKUfU*u~FtQ;{d6CqI|+ zbZPOJYok-ujv`y7F*7-+3f6>-Inz~8&4IU4&k)!igj?jJawoMOANPzrIq;$94 z2Ozu#h*LmDjH#EY?U;(@D)*8g3;g06-#I-L(?o-Oo=|pvq09TCy!yfvcx9*C3goIr zZ}cX^Uzi7=z7&tbd-#*j1On~|y^j!Ug;r*C@F~wO#eq=QYfOElGFV%;hSR|54kc$A zcRRr#XKUbuZvP3IJRRvg$ap_RfXqQjK-!|eV>&0WNf?KX$Q&-bNzL5N1Bf%$G1ICv zp>sx>OFL6rK-2d(L(rM{-=mE(bCTrKAkC9S@Sh9DcDVxyKcaF9jX)W^_%RK)ULH+p z`qrJEK5HSJ+5l}F6609Ee;0S8+c%41NSi2OIe?B1ckk$XWzTA_(t7r%0^rAv~m-8O-T>IxZ!ox(kt`bA1|Y zt}cAT(wc89Br7c|=*;J`t^XpA?Magqh(RO<{8IM>rqexY`uJB_C>tV_DbUKuY`AjL z(sF-X{M5sm*u|eBqfYN4Wv?gLK0I|7Oj#4_hB@hzgt4m{`wyMdEq2y4@Wt(FO5ZA% z$yqK_mbW7VYv1;`Uvy)Px&ByiH;_2L#8t8~5q{C=ZRMT2Q~MW{E;Np;4ei+Jd?_jV zR1*fHZ@re-l^%yUKujBr>x6V=-%eIdVNG_1?Oac9ealiX zF}BbpnpkBlPM2b(@{6H3Z_Ih5c@X@(;@|=0 z&D=$AVhXH^H!G=2-lR)F-h7ZVbr}3j=(r@6p&&100A6L<;S?k__v;qYq$%Z-V|^3; zq?IoEOiW41QusO-E@U?G>RjUnl?4JA3lq{0#RK0g62=PV7oqSsvlUE9rQkTpDMV54 zUA=Li-Z;f~h;wxjuCEjK6x~$Xm$)vx=z7-4SnhOOykcJr*j8|S?hI}KqdURChVE$0{cQ8MqrQ`{$UBaH zAD;!)RV6_6o(++r3C;`YgR-DBzRvSJ zzv@;{7uv?fR{mp7Y?4U-G~AlzjtfQd_|f}gVPsB9I?^8Yz4@0Jm^P!vOM<66}6p8Sc`X4svXJdHtrf3%eKZ&SB_9uF!fVz`X9qR zWbt>m7KSLeb*rFVPPA1CQVfRoR|pI8#@n~s9NNCW_lD&a0DBDkq)l}_V-O=hq zS(1j-!qaqy1;cr*5E3!1ivwERLZ=YlbsS&23HU%DCny{fHbFFs9eDIm)Swte z3coDcP1&}!2)W9EKL zn`Bb+si>PD3A`S?p3EuY&8QQ((eHLACN}i-uZZl_t6$LxdsZ+6o0*p+U7}x2-Pa50 z00!bHi4xgpSwOZXMG%tA2e(LTDpJD4(8k?G`RcrV3#}r1&|tBJ96{P_PjLf+~WlGv-Ax%;luygS5E<`oL zbOyn6PPj|^+*jE(g?8JY_Dn84Hk{J;&Z?i%9Xxa5~P zn6MErz97jwQg{26bZnJVK!2`jb;|SmpZZUHUa32KOtZ`Q$+=J(^m8>3Wr%@lEw(}{ zQ9R@VnUN$gv%ySCY>k_6uAVTiYpS+4j3`|fG)dtQ?bJzl{!Dw>(`-|;GNd#*WNm)E z#@W!zi99(LsIcIAcSJO{iOxxg-JuG{&PJWDoV+o#L;(H(T@x52WWEo~XX{631#ESa zKy!ls9DXNu%VgyKrL(QUfe(tOr_^gbf?gINHWif-Xg5ID)F7iq@ZU{jYX_7O9Be^y z%Vza7vw(2^IX};cTo!_V-t0?tl9O~%ci7_9(-SMHEJN4qHq)m3&_sXG!HXm@gVAEv ztVct>PBVN}dHiOtZL=I~l>_2u(M>n(GuuXZh3njF-qUJO9PS1N6)GtCQ0DjK{$OA0s4OS-W?Td$W zPb&{mMakDmJx95ZW#^L~W#4RdeSGQRqF&hXzb;z*^&s>}5Ha&chaH%s2nKSwBkiyp zA%MH^kD^uw_T|Y}HRz*NROg!5tIU{=U4~naJMYxoapQ$vaGF+0WSJJ*XCQF_UMvAG zcMs|3SF9ps;l*Z>!WtFkl#fX|6-_#sfWEz#x*RpN$rjpX#q1a44b=tSbOx*cZ{g3W zcF3t~{da-z%577f;0^1I^1DT~CJ8#?0^G?a8;aj+cElul8ywz}kkqU4u_YN(j? zOJ2`T?#|N@#t_Ic2<_`5C|$3`tPF2P&-sG0YSEz6Hl;0A>IIQW zu!9MzIsrd37#x3}l`pdsq zmZ-yG0$0j{FbzK_(fTA2ESdK*Y>bS==h{+!kQ{F9Hlvp11hIGncaoyB5Qr>6P}CMh zUC34jJ9L@VkAheFq4T==Q8=!UK}NhCquNz^{%lI|DwYL-zDcl4nOad$&cLHbS=f+?&vtHpz6SQrCQOf#}KIe4st0o1s!JJRpB#9Qb|-sIpBS;sJ2@IAgK6flUVAh(nCN*00j~N1=_Qs zVbDh5Zi=1-aQDuQ7N6nIJ%C8<-8WEt-d$(58H{PGX~QR)TX}tk#(_T!M3*P0rIJsj z!)D&W@gB2^P-vqN7}zwLeE|6+TR>%$I(#1uiUglNGeC*^d(rw0?ae;qd4p?XANBS> zmHUUdY_$gv z1S1ReP11@L>}TR#%)%J;CO~Ui2V!86%(=@2!xNAsMSp7CPB`HH%wf##u_O`#L*@mD zy|LehB;9htlEW;(5R7}Mp^PQfvsBdV?E?CRi-8}=@ZC6yO&6FNxXT5_699{OQvq7T zF@G=f96){pGc(&d3~Jl|yjYb;=)&#Y4Y64tFYyYF2vXpl|M*#2_r+?dg~3=eN;w;$ z0^%l%j}cl0Z>5sRY~BDSdaB+Ics}cJZ~1VNNDZ0yN^b)dShIhwS~)IVw)%?7w!CO} zR*-rP^P*r*4R}YkX~SbTs9MANXVweY{LcO#X@r4KB#H;Plm;Ms7Az|0RW6gA>bllfO4=@pi`;tJ1QffKRt7DDgm%G z{BK;}atFN@WM1jGI*cPL18%b2!VkF>S$Q*&ej4_yG=ZlzM3!)c2gABDH1%4D>HXPH zOV9`nf`EMfhDlKkIM<~)?i<~ym!6^&jhT6i!F&9`Ns&YF1-RL41t2Rt+ zLyeoj8aZ!9)^nFDRBUPKh7*cVO{!+pYZahKn)XWdfq@(q0Qsz_i1gTN6!7C8CY%Pp zFw@LR{>^eg+@j)=-**B1Wbk>1wOnIx ze=N8kF+i532h@CdNaJ_^SVUkW#&er%leN@quceq?Kd6JtvEFr~ z*~8Iq7XY+EmBJ;Jz%Opy zRq(`nm&;NEXy-*WFzd+-HZzBb&f(=hhaq*(PBFavT-vl0xixUPjAm-nEIHAWWLnko zQRjW!Zct&q!$h8!vF4SNo*Sm%{DM1wgV%W>ZTD9YsfG!RFTNWU_h8MN-q&6K6X7@S zMA<0|l@L!O2a>=qa1R|DVDKpOqtD2} z_~OEK6`6b>NZQ3}8&pQX+4S_|%wwoZ&Tt%Uiebeo$Y`Ku zjqkCj{g3!hs~B4@dWAJYRMlDNsKiQdUP z83Lc(x1Z2V4rS5x5fs+v1^CHE3HKQ9Z59+1U+^hU-vL-8a)Xg#oMc`}iQ^<7Ju1+> z^hzvMy^x;F=1ygSO1+Hg#xQ;qd8kWrxh2d5xcM4J;5^}2mD>u@MEujhaML4mQa4;L z*HWys&g2KPU+2Qdg6#;6sWpG9gQUd$JO@}SbkhIupqDpw3{|5A8tnBu;MEQ>;z0&; z`gA04dd+XgFI|506eV-w^U%%XYY$^Ar9Z9JW%#kkJQ3RkBnu4#jO7NKDT4z2Fp~!Z z&Z`6L36{+V2suf=HRLZVnVVHv?Gtvty3e%oJh9KD6(ILLwinK%+yEH5T9CO!)F=J+ z^zZ_-G`OVY<@4*r*i1KQaU|+ajH-^-6?EhHw;gk@}N!jWWFs@nvpY29ul^c zcU%0x0w>Gp9zbxuOH^5~ayGKnkIdti0cH|k5$f8x-iA=nIqH7DX>RRR<|LFpE_eCK2PIRR@5KwW~4V}R~i+jkAyEeP;L8H1j3Y!!8Gfbz{rw+H9va(~ z|G)}h;y-WtPnS)%gl|BQswjLXaPF`aepCb!KMlMuW9YwJL0s|t}?_veA>6sLD@LA9LVsT$%M2fp)nEmU5>(em(zq`ZK>m=IK^9J5cU2+*j4Ca z{~U^RsesJc+g3mQ=CwYd{aRh^Z~;Q_B*IchK*U48-?^$olFSLCGPPEjQ{|RhPN8<$ zD-%_d_T-S)z^u-VaRH(TNqu&*$+BgbkEzq*rNS{uxtI4;qJ&u+iSC~<&v~F>{Hiry z=Lttg!@qa$H<8I5Hj890u}I&d_QGD#FB09O3NZXVP#=`Ys|;}=dk%sm(|B<%a#PM@ zuizi^PKRY0aGK9>lWluiK#807JR>W7t8$gw7W?%1TIqlyF3B0c5zBwv(rnTUU;MZ_ z?Aua2%H7kvn_VHVlY29Hj}199J3x|%FAiE(= zWn`NqutA%0A#yAAld9j%9*4w>`E5=bj0#yYt6sG)doki(_%X}jryX$Dfa0Y4Tq6jL zn=lZd<|ROZ&^!GFbmB8mS@;-_?wk?>?q&AjWtUAY3%oD!g~jyh!|RIfr4Lp(GQ9%N*5b0FDCEXfmR86W@M|+Qn)Vm>{i5p&1{0e;i4A~%`jN>Ypp)%UZ#ev zL(&N+C^-(EQZwrBH~Mbvlxvyx57$&%b6UQi!WRoIW^xC{x4<)C+I!tcorR?MfZJdO z)8GMQm!o1-f& z45MyG5ktSO#g|43w{h#O@z-u@BCk-!@D8mQlA=bpwMg}#ENqgso!PrksleR74~DyB;*6Y)_0wv3cv`D-m=rEEbM8hkZ|NVG^%S za4Gy{%BW`K#4FApymK>(*U(k`lkd5Dlq68)|5>fyjUs}}VUbUIC{-#T%82}1GcLhm z4)Y$+82>m46u!IN?{Yd!?4FizPH|XjM0RSK*l*4`7@1vwxKE(Wrx$dMnWTTbPf1sH zF*u8ZBH9M_Mg&nt3f5vaM5_My5|!mlyxjrB70Hlspo0|X z*D_`Uardugng!A3yF%VSnt4U2HC=KDhq=JwiILMwbEYvu@(Y;YsyiHNSdlgBgxnw- zfkvKQ=v6xQyIm@z$&V=QOob*WZ1r% z9C3xTqBTc8MV!abU}k1SgdGJb6=YGr9eC7)6Ljxn(Pc6l*wg_;C90oN5p=0M2?u4} z8s2k54}kdt{UfrU=F@_#YJQ%9?a>9j!(m9GtO<>(UPS)WV;%V99+9YD6CbkLHGD)y z`*=$hfTKt|>)*XW5`(TT0mK>|_MzIdP9TX-2AeM-BysA5sL4`*A;y(GnN}cz#Mqr= zT3Pi4<)xGhJY0zQuxI1wpUs#r-9%bSe&d6EEuck^w&snd0TQ4zY}p-R!p7W;j4V^| z+1~74fG=m?8}dwTlvj;UrsF;HCLPUcyG-@+e$!)+gMdRIvO?7MvnnOB8OT?*4l?h_7k?Nx?dVQ%cmuneo z7G4ecVU5=90b-Mot)J9CCrxl*li(*1cS2AP@&W&ULV~i=o}wj^d?85qFoE(z{XJ*) z8{;m`U|5%|$A(2-vCv$ZP*}Se*L5 zts;y3mrHWf8~U62pyOCy{~Kr=lq4l0PQJJBh6=iarT!?$iKqW3O4jNbCS=D1in6r-lsd?Y`n9tAtTmu7UhT zL=A9y9omq8l1Kk?&1(H0ySwl|TM_zSU-8f0nqWOJoEBM2MW4dp2*M0w%JP_G!xm{eMLUOyL4b*!}3Mx z!^d#y#Uw_SlMYY?pB!N z}tqCWn}uZA%jdU?d>P|~BeeuH|~3Z)t5v;mBW zTO}5MM?a2wKB)uBb}5Jl*W_7cUQ+6cOZj!Jab&0`XLLwJoY>8mD{5?G)#~;Ap$?gb z046dGQyDwo+)U4eccYFwd#gzGRzr`*vr4H?qEy1-adLYgPCHt&L_M)HidlUb1hR-j z*psHe+uy+vegnFL;v23H9OO+VUnmIfy8Pg#NaO|h_+&N>EJWP)l?_vif|C?Ysf^th z@{VP5c5blL)kpW7VLg(<6*-Vf@uy#+h$Vo~Ff0M6rVnSVezf}&1loxN%gWD!?sQ2n z+UjP5evqf=9ye7|PerbO(LXPc%;T|J{X2XmmD*EQKhfPnJrA$c@@65X8AKX!dG~wm zKepcaS{2^m>kxS8)q|R}iN&gVAR(^(j;73_cF^hL*O-!a*JZNPrV!u*JPW|+n-D^3 z{9mu2cpC*PCR*I&duFN(m)R6PGj|KWG7YyxXw9mW=+zJjR}j`x-%a~QSf2wtJ9N$?SyzsfYg z88&wR1T8C0Rh=x_8AawD0k8LOWL^ro_Vvv~L*fQqVh*;EJ$(8UNsBdF&avv{LsQH2 z6XEesSGwJG*E!pf6(VqXpJ={@#}BA%!JcYS*IMqnm^>T+kSc;~lKEfJ(m^_3r}kFi zM{RLq6gw@D0$T&`xc|(StUJi&HxLTjw*z*dO>$pmwjlmmo~BIgiKNdT&$PoUEI&am zv)|F5hISr6e&(0Q?!BfCpnmh&XMn{;!Q!TJJQ}{jop4t5@5bcQG&U=JZ(lb7+NA;7 zm85@)#Li_zUGVqFLe8Ero(~Op*;LGnP$s&=MQGjnLhO1^`0Nl1(BT;SmE4Ht;fGJh zYwdj?Y4j>J>;}uUL+L|78FU`-7d( zIm;iTGz%|7L?i7$O+wK2*xd&Q5OL&W_pAwOw!0>(Ub{ zi=|l;4muCzgN9vw=GH;F#Hn=?E}ee3%Xh{vdyF)OXaKz)2dN8 z-Pp{co(4I6%$^qqOG8kj03sxit(Mz`?jSmhcsV z1D-1VS?a=9a#%L{fNt#MN~B^aSHsP@=O6~0-W(xJsk^GboDq7w72uQEHq zg@NY&!avjYvunU~8XOpmh>a!NQ%{tG(RUH)$HY{k+8Cn0++|T2$Wm_LAMx%2sq-Z= zdt3|k0_fl-TjD!Pgia1z3Sl;UR_^g?&L~H}6!9hOEh3gO{J z$+z+2PgNT4LFpxigpP(K$xMz`1HU{h1vXRs^*S2VR2|xH_J#Z;UFMgsID=9cbZN2s zh_{-%wctE@s@L^|;jJ^W51wnjhG;$1puKykQj*zO8uq=)_xIF6JxoBep*!^RRx-xWV4)A}-ri|n#cO5Ya3it0>HH@Zc8PhGUpviiPc z=0FRs@F9$GOLC$~<*1s{O7-;l+L}t}_h-%B_hH2k6Fn{SqV;Uf+ay=bDbBq$E4#&oCI&kcJv)T^3bNJc z24=#ZRQy^rtg3wGNr%+(LN;xv(*e(q7)gu{7c=_9q0d+MUB76Ka8|CGx zjzXfTy^x}hVyB}*IMV+2IV@kT5JGvlOtt7;LehkWxvv8;u>w?C!xBJY*&=j33rKgQ z`0uYeGaU5WuZ#|v2b?j>y{{nzMm{jzPW5>(bB&&wROZyEyf1%4&~4E2vig@Ldbwez z=~I*!g4NN%Ig^iEYM-9#A^tMn9`_U5zk>E^sv+~j!A`|#^>SzEQlHR3FxLuDr^O=G*eNeN^q|R)I6d#b>2mSc{EBffe=B3r z>70i;Z*hG<5QnLfL=RcMwaYNEl=*gs$^>vjC*fg?abl$x41b>hZ3%xIkqDt*sgfjBh`O%bHrBnYxOFFHVCg&ZF<-b6OS3WAwa( zB|fQjKiY7vb#<-PnC51*mzG);MGDzk>qkt-;PtHxc}|}Ym}8Cedr)%%>Da8aRAt3` ztyDfa?UBqow)qf}>1Hb66iH<3O_&>OoVE)IQ4!cbOR67hbC^3$&?i=ASlH#{3Q|Ac zl3M#9F_&tOt<+`dbMW}$A+}eIp4F$aUV1S}Hm9WITfd{8L63@a)Zez*T*rbA3;^q3 ztyM3fLL0gxx&kF9Sa^VRJ!Yof=rWvSwWl~h(aqEX8OO2toUkB==p&x7TM05YwGSO> zw*rAv61stG_4QHY_67?)mn?|z0kK^5cK0$0@8JNFrWUmv1hV~*fFMq|ZBGdtT5u+% zc8nIQJ)6M^o`TCDeEXAPf=VYng<;u{kg0yK8DRH9H?F=x;p~$_Wk3|052*2J8%*@E z+8{|(OvM?17tP~f_*k&lB=}$EC8qWF9JtPVXX5gQ-s+*%uT>0Dcwe zv)hr2*8;{={qlNkJ-*TG%P5d}Hvn)Q5gO3gi3bC)O>svoInLk)psE^}e7}IBa+JML z>L$loC;*tpW)~LTbY~>KvM&<6=x}nXH-P3Uv;hRHhYDd{_N^SLG@o||*dG_IZfeT6 zO=N2yi1O|sqOk-Uy~9FexQiwzx?7OJSDLa=LT*CQMLFs)oOzDOWy?udoAQ_za#9{7 zWONE(X#kG5+`pqw7Ecf_UzsiCIn38S2U_kecop{AK7A*%9A^FAAZGV8=8UX3|1T?l z?YkeimYMB;^0Q_R;daWGWNG#@z{corfz>=DV2kfpiVq-OiwS^kX@fwO(yJm{JsrBR zvGs7+w)irZ90L#aSZ3xVe}qMfy|4Z{$ZnNnFg)}G=1WiJJ>9BQ+!NZ&_ zaP;urNHQn$ZTilH%M=y4cOc0i9&)ZU_Wk6FuB&eRd-`8jp)~+Ihl&}eFa?l-%fv&5 z)Wn@^_>v+kLr^3p6VST?V(ie_PYvCj{gP1PrDf0y6$g)LK01i980p}o7nzFE1*>zC z)Oxjt!@9D(H?Bg9IWdRMCnv`jT18StUb8YQGa!1b3x_00={J=rLH6NwQepm?6`+Zy z{~(K0E*dlAyOO9>BF;S|T%RHj^`WxS?1zGe+9filQtswJ2Sqjz_>Bthkefp8!eriV zfUWLLa!>Q66{j35KEV-OaCIT5m|qKcn!I*LpIbBh%KRPr)#-vmMgz$3^cg3&6HIRc zHhnl94;&t>g~vg*Obd_rRAw=03Xi8x%{L z>mA5^=fO)`zM&2KLqwgT;TW<&fD{mHT_TSpNpS$=$^%(nVb00|hqTV-5ZBIB`$o07 zG1ElzT1J=UU})!gan_A1fnVv@Hb91cL7yZc8FkJnpVW}2Q}Y4;B@ssaHkMjL<}(1V zX*?Q1dY8}3i~Lk~2r`%uwA4`?OrM%EnWQon&!-}@aa`NYk#_GGhzpBAzgz79S)3V2 z5JUeVAB*-O@qni|_Vjm)t^j|#&iha*bg6;2ViG=bx&=GmjW6tkAoWodrexkp@VYEg z*uEB7m4w7WV*-3flhLFs?P2#faMqPmFU89?9!46oq`!Io+)DvWT%nhv95Q?#9B+u8 zbf+?G`{SXSlz6ha%dAdgu=kuumARYGr0R8T+2zWenzpIV3;oSOb>HKcUd@>9HiUG; zHxV!f*s3o$6iR*d8oh2qWtDs0il%=4SlG%r4Gz@}avR%3KYw%0J8}i~$*?}ok(?a% zx0xHt_LuBRIEVaEdMFBVkARHPEdusjzIheKkK9(>FpBmaY) zsc==0Ke5X$(3{FcPLemv91N(~>OIUY1IBIj*+TGp6VTev&kgXi4;@2p-WwADDxkFu zgTF_ypRttevbrFB`&f|VI~1jw9bet#RS zgKX^oY8n=xUXpNmRyTCV>hUM3dt%Ccd}FW~%%}Oi1(%7X6%<)*hsyNo!|rg9|KMF4 z*yhDQs=fPAwTB+6cHXWtga)k)zV3)h!0FZ7czKNK%tv=Yh0j+^Kk-Y}V_a$!AZv2i z@IKG&;Gc)x7n)neqdA*o)^R1|3>c~*@z)U}9DfRsiNe2`cu@j4$e?~EUibj`zwUaj znC(l;z{>&B=Dt?Qv0QT!$=zOi%(YMbd>z{4Z03-YH=pyn^^ie5AbG%-^!)4A(p>dR zpnygXWxa|Q_D85$?0%?;u7pt+nhqIO4F7X;{NvH?MUTk_t>>`l?rtKZZJtM+%pk=B0=E7$Rx}aq{wHM0AzF@*P-lNT||CvpzJy7fU%zW z35Hc|ojDr?Y(V(|#PDyGPD*&=RAbRw-&F!Qw`ky-ijZ7sk96l~Ridu-}zB6q4Pw3u8QCW}xg1MVCP*y4GWDbCkMRJ@%q$@RY>rmcODi^fm|3pD zLsNrcSxBh%>_U_X!>6BU2}~6HG6RlYa+a5s{&X#DW)V~lRlah8P8OFHXL`_c2{g@L z-+%zO_5mr;`St;5`6sZS=6|nsDu^?$x~5pD5jX$fRj}A_qs=UjDpc=u+l#3c^Sj-n zk*~0!N>fh1y?#(^!BLp7ETDwb-@~aKUFqXn_)*}Kf2vAiCG*h&M0VE3tH9Z1+w|Q@ znp=n9b~v5Xqebs{o7LaS%!<@Jdv3InP$k4MIr){(IVLw`S@Q4azDSlg3p>60CjnfM ze_()REb0*8dhq@9O61{M=O552hz&gYW@?~y8uS;jY8Y+rrTFP@O6HW74NNovW`Cf+Sk^lsa&MH%5!W_qmw77 z$xAH%Y@w=PZ-Ukcs(Hel%qMxs8QM;9}!TcH8%sl~3f?{mndk+u9Vp_oVn-Z=wg>qsSLgo>GwagBM0}(>2 zg5s1dynKcA#2@**^%x9?8^Pc$I|W%|_MEz*n-ahZ$H3#Pr3uhUqh6T&`u7!Ud7rkS z$4?pPb42mmMT*vi9)-enl%vQFWANar8?cPo`GD+7heqf&3hxUeb8H_#7T-HzNVos2 zHeg#Hc>a?i{iCnXPI_iejjY0DV7aI$B;Kcn%z-u_MZ9*ZALz)ISpTwQSQ&}nX|KN) zBamWidacK~jP~NWwEMxwRmS!(rX&Tj>{(LAZ21Aizy(SXNyJQFt1J)}nabdqG&&ff z0ImRI(qSH+d?e- zngU*;7iZ>?TaZv2*2URO*}FZ=RQX{mes#}KXP#I6miW?TyFN|WpRDYLSD z+6CP!ic4E^%L`_!^2gAX#7DDzmob(FpF*0f+-oB;6~_Zo$y#Hj{&42;9-O82!&$tn9BmHA>)NQ)nrvhJ8Wu{+ns@($zXkL(LcJ231bF9?zUz?1oFy!$^2^70iybRfShs$=z+G z>rr16;a#JDbp}2F)4nvu7d0!a!K}bgFzlB!*eKWfKy2}JvDJkkIej$pO-|(0@ui0}^x7AeO z2Sx08(j2C}?wOu@@kGxluHPItF77VYO(snwm)u`O9}SRvL4BJOMM|=0AKva4Gpn|o zV!43{fAu(h{z_6I{X~sm#FK&d^uN&p(O!@3cjX@OT}fZO>GN}+vFO(EO^1c;{G;HL z7G}AjR~a@e?!UjCM!wN?k2TZ7i48!q+7=V3da zO_$z1T{x*Iw}W1N?TO#pb9(xnZcsdl82U7Jclu&jLB{XFU;|>~snsHzA1(qJ6!cxW zvJ6ibE`cvug1%Hn(mV%Kch;^X$#fc4rAkf@VIRt?7~fxbzTE@a4Zaa{RgPlz#6Rg1 zGQ!VeuE10>uCy+Rb2zq7oZZ&$ijL^oX5R}iL*(q94Lis8XEql(mn?0pzsc-x>qOm0 zP_I>^C4G|TYHy|hB0Gqx2q~l)5cFz_L+A9a5D%WKh z)~&3gQL5%vNx$X%m?hgS8tr_ty7VGv1w0ybcFv^^H5W&1o~V$CD~NfYx||p=lBZ*l zUO>;#HSii%>Pi~(M!dx*<~VGz>lqIDGINv0o#W=uwpgt_EAb`^Cc0>K%;t}-yZb#$ zk)P2oAdM|=fX4Pan~#lJ^stk+yR)~oVhab%dEb9pQp%tEk(&f*yD1Oqm7h!B{Jwlu zK&`UvoIJ)pK9v5PB2REf_x^ro5< zf_WwJVmqwU;QbAXVM)a_t;Dx>kfgUhp%C)DJtc=yLe z(9=+oyfs}FzGltt(W|4RjX5D`L{lD82~*AS&esVTbUI4a>neJm9GS{UyQ2)iqN8SK>m7}L(}q4knS zky|X(KqHU&%Jot=(W)70`X z`5Zv$QG?KYO%Fq)iqycyQTIJ-)Iq1!p-nS z<{~w1E2*KWS<_HjftTZaJ&>BaPmqlH5>L2eDOn} z6*+N1yO9U?`$8D{&2g;r=EIm5=Y{F}rbe{)s~U>+ug{CBe4E4BtWUb$o|BwNUvE9* ztQv2wR;$3jy*4!TLOmP9K2dhM%h!74$CKdUTb>3~LO(G~wY(IXKI-Q}knaWyhVF`1nm{Y&RdLC4sX|++VwbX{q1s z+FH-Dx@r^MgIhv|;ycO(Mmf(@^xeAgobRaPP-s~roV_`D?xG=Ev)$#jo46#R{%`aK zmKZdG-o}PnbBt_jN_u+cPd3IQgkq1lkQZ`wR5%GU+M4aCxWHUncJ%*V(F z?w5+n9#3fZbGY9ZAG{;f--ur5`q`&U+pn+Lf|LcHfPzO3F6Sr=Q7=w))No8+HKchs z8`tyIqjoncfNIt(j=m7C8#4bz@3}iN_3{7wEsdj-G(A7_8vgDkWDD(0DpZnr|YqPNE z+PZgoJ}hjuc6^oQn7f-a59_j~!K0%aIrD#7+*sA~t1f@ZH5Da{hMd9Ax!YdgfMLrVA&f596G#@pRqsRQ>;-R3Z^&k6R(x5wdS8R6;1%zGaUP!o_uOk&$(?Gj9l)m+X1T zCVO0aTq65k^Wxsy?|i<0{QltK@xZzFp7UO>=j%DBr-o0qI5UyIDk}qAbfuQJ4R4zU zA}QYEdhonL$}@pG@l-Zm&J4VaqEgR4nnSc1F*2=AGRkv%pUFW9lo)scUqrEK=Xp7z z%_GEH+hyUgO>ybB9=#Z!%{>gCaGM*{8=ngGG;EA^&C*h`+8DOI)RLNo%++X*1EmR6 z%{b~_>2J6^5sjQ0?4POfIIXl+N=XTdBCuFMEVVCIzK(I|P34y1yj7pZ|L{ck9P3Z! zlVVsKYn`dfh@7O@sL2ddX%Pzf4FAJmnq<^=S`(gUQY<-@%)PvO|L589D%J~W4JC;T z6cDkCmPcp;y2V$yxkk9Py0)oVDtnII+Ow?(?tQ~EzXV}T29Z(3*6}gHB3T0<9`J}F4 z3f3)%|9QYRCWaR%B#WM025R|MHNP_(zk8NL&J%XX6#2}jB1n!h-NVN6_5I)NN!${B6p$;9?yCQ!ZI&S@^WmCx)_P`R z01o^E7DIh^Yb@Udg`cZ>iE>Y1Tq=o9Pt5l2J5JR_mm#nHcRR5hNN3#}>sZcR?PT|M zjqA4`uJJ2VmMz@!iER9kUt+Pp&W~g?sW(%{Pa3|%8uStb2TD7XFVK-)8b(x+etvIO zx^9~|IK8+;c8TFCOrJ=Rih7NqTYp(K3|HX}D4gICV@j6lqs5LZegJZ)-+6~& zFwoHbfy=?dI0M8uSioUUF7EN%fS^bXIDr1(hbz{_J<2z&+Tt-|IxEo5 z$E|r$&{XOCo$>D@3-eH^{DUy^^MwluYB5?%6=2z(9LlrSTTbk?1cP>075eHQ5?ue1IOmOA%W+> zLyiPh?RKP;>VCSGpV}C^5)(!&0u#m-cqJ^~|2=LLGjF+gFvy-T|JzX8XvFxj7TIMlt2zC(Svy$3q6M~ac7D=C;} z@eO9{^12u;LoJT0e*D^2<8QFenCK6&Ywh4|;6d|*Q)u9?r>mYBAOJM4;Jrq@Wb`~zB| zhjY;g5_$4DP^4CB<3N}KM@@VgVMPN@({8|}fKhhqI|W0%Gd){Ue41ETw|FiRy#`sO z6gJBgT)f;ZM4uksO0C4=AHc1e@{Ln1K?hyZ-;Xbd5TiyvmrI+kzxU zGO(qF7L&#SF}e(LA&V-Pb5u$iQoPUV1q4HdkwyVE0+Liu<dof?JhG19JfRBE0XytOaruSb8E$5Wt7yJPcIce3az)b*|IKwd~`U zw(2K?OVCHZ&>GU$e>UG~vFF806`5RSrzIJFR;yQaZjlyoukqj86>SiRD@`{9CsFPn znGi2#;3F|?{Vt+U*WwIV=@~6Q&#ZSkS7EjW@rvqdrtp`UBhcGQkgFe_&^co?T2~;4 zoFc6%0X;1ykX~RXt=zU*j6pkzx+s?Osc>tx4X~*F@Q9mqF4W%RTt-bbbe$%*mq0om zcCOCzrsci4I&c>&Z4={>T7*Xj15sJ>TszzE&%%u_C4r@#cq3MJ$X*fDN_k`m&s*F@ zjdM#WDA5f>;%fau>kQYvgu>sM7^*i{=tkLjxApb)2x_Smm2MppTPSy@xJ^|AxKOnu*5QiS z{J7AWqCJ1RL$g{zr(~(M8YYGOeFJ?FZdB;#!=vi&-R|mq7WG}=so~en%#%DQoPJ`B zAe z0VbBKr;J+Hoc`;=Q#g(O4gH9~!4SFJN}(V7T*uzf3^ zjRUwh>t)OVu+TvBVR#!9z`vPCfNVkV`ivVr zfzoI>kNl+A>K*N6=&)8aA!*`@(`^&|WYL+5KBc+MC`kDXnLc%IPwCH_N`a4F=0wB1(amQ$XA4Qkz5qK?7Fw&4(+){mgkg+>AsG(cAk)^ zP@yrQ#wX!6l`2VeF^ZV2hIY`o;?>mt#>B7YNwc~BJL^CJR)enSi0`iskiVSSGkQ?q zx)EU#TJ5lZVG%p!GYBDKV&vsVS3XziO2hA1D@uLlVN#G87+7tLe@=<5+T4@xQJsOD zK>Ai3-W>2j4hst4=PD{IeMVWWC&LtvPnalBeC0kb_GIg6%bF5K6j(gM;g^Z`J5eYF>K(#d z<;2A4^Q+T;UWKK;lzwY#BQQ=egIzv)qpN&+xkM|l<5ilA=y}->+E7DSL8HN$>N*6+ zrhjDX^km*7-)Q~t`)tP0vgJqt4Ai67L;y@Hga}9Rc^yt3w3UX%!&!gI>IMjAxMcD8}> zkP;S7srLH7us+c+$OvZ}4;ic2@VWnhq2^KxJ)Kv&_jW9F$?kfgu1F|&9SW5>x8-8AOt5h6ZH2M`AJ0g_)*QZ)!5`8^xx zj=zq)s%lo0$$T+;5s|pZ8LduhT3jypu#}GGft3YlbFgZ|OrsCBf=(^aC z)Nc-9Gp5TodLV!iJ=3iau^DN0Au6QYPR65DcwYf1Y@m_L8wbCOhHp?MFl@(_t8I$4 zkxcAbEF&M(zmfvp9{bC^UAW)3AvWF-QPOvle>0dQf*1Fx3Y}lo$kbvWi_cW4sOYZ3 zraWhtLI>v_Eg%oIy!P+PnHL>wVvR^L8))Yf-HYznV*zYQR$6d+{lgC?@n8v=HE$ zJs*ss@)7tG$~P+{Y;_Zj7xyz$PKW55NNIrk^fwsiQpKz@5i@P`DUQXU13?G46XVgS?TS4$}Hj)cXbMEW~9EmvhLas!Oaf&#aD`o{WM-s+b>#tF;$nIYw7so z9*MV}N8V#r+dOCK+|nyKyR3GGcu&jQS;Dnzu{~yxT~SWMVzyzdV~`a6k!#B(WxTSW z>M_{iEpubQ3wjO0sFfr9Mbi4Z)gK}w!NMuB5j4;YC1^%>CN7_MLhRf%uYsDK(s$IH z3smw+kD%G(ew;4xDCS`135R&l+;l#Wj#WHfNB?4PJj|d)j&?pnUFiXQsl27s{e`yH z9l)?)=m2_i+&1kHK%m&=Lt6;6U-a~s9tg<2iaUA4?CDRrVv0=yS5$8~TrBRj8MAR5 z+O~-TWffnh@NC>%b?e@Iz;`=~r}0zg-9s&vq8SL|O2{cr_d;3bE=!l%=6$0WpGD>i zG!AmVp7LnBwpBZuxCwn>YvVg8q_O!UB4pJ1UWo?fPct?-Qfl%}oXwNHn?11f=(e_h zd+I}zA^H(ed3zf6E%;L~H6P0Ik7m7h9$SkgsVP8jogJAb=gll|qRGMEafHD$9!_wz z{x8)adh+dNfR-~F#ZCdxk=D)E$&_TD!!w6Sz{FQC-gE+zBXoB6*(s=7B&6zH-{VH{^xET=ot_Qx zo~~c-J(y**(Vrt<$tm*Ai2LCk>)F)A+u;zxbil&AhJb!mAe&^Q`go^5q>2Or^jR*| zva@+Q@9||OCyP0QYM(5- z=|$Ly*cf%zn^%0D1ZdAkF&=r6k3s^(O}28Q4TsTbkcnqMMKcRGjOSd$D>kq51*5DINoqv*R{bne?tz;0 zaYOEn0Gt2d&u#59Lm1LvIInWV?U=iE`g;HXZ<~xXN=iq=y>I8={q6W?4^g$pCmG#8 zFJRJ$^Cj^sh466s?HMEvx4{HkSxF9Ut^u%bjeTP=p^fexx8^quy`yXCzp)=;J5MvzbTykXZ*kEpD`{0GB!H$`XKf>qecte*6-3wlz8#bYcKT} z6n?))JuX}GcC#ZP2CW{C|7&ZL(0UnXn&H;@h9C!Zr#*v*;bDi zM=UORq*rG`{=Md|c!+s;ZQ{3+DWCkovyoj?@V04@7t(D8^v=lgxiQtYmCI)O$A*W+ zz38HrUCSO!NMg=VuhXMyTOo?G$&OA;ZP&R9p{K^r?~6?5GOd5mC}DdviIV|LtXt_) zTkAx5+391=K#q3$No8&p&1UJZR^)9eNKSXa*8oQ^Fj3(rpw0V)IZnY4Oh^_0ohv!i zlNnr9j6Lv&oQ>ja*%PA$%m0m103up&krr|>#q2&M0m=ke^-L9=h>U-1qNKkcrt~$S zDctNxGc3XT;~Ss>+&z3mKrUI69013verQj^8{o*5m!TA(gH4E;wJ80n30W5l= zVo!ZeN-Fa7)D!t>0EhDb|5DZE)8w!_;alq7jB)^FAU+_vkmsvJ#*3S!NO}8boH}I= z<|bdi?6ZC4V!rFu2-M!rC*q5PA4=74lAn*Ng1IF5isv2Icwd<|c#Sch*0f{UN6jg@ z2cSzZXWdk{pzZSpd5j8z$(bi-lywQsXGZncau^GLALw%-aMPt|qP8(Xq2^NACpX?P z>B5+jV9UHPye>;S$M9hOY+%{X*yE2~>YZ36u;U#w+%hUWhmO|vwOUx;rUfR1>{3FK zS~u6MbxdHXrFpxS4sS_4jlzbDghnJ}c7>pN{jx;#y$;jP6t!fLJ}f7@P;K%#QtQ%S zXsS0Ag}-bn0!jO=WfdltgGvd!g0P2i9>tBwC!?McC6Ko12kPR}sz3$EWu{l(M`dv6|ST%5|;+tcVY&*|` z-zM+w7T1Ag4lya;EF`V`&MP^*F1ayP<+pgGRQSzx-HfnC|A#CdcEs)fR0m?i*QL_2 zI^I+&Ggm^xR5S5?VI*Zi4l*(BZ17}Hpma?V4>%n-2`CQfhrmr8t%jc>6Us!C25$r} zOq79_w8>I+B+qGEGyOz+Ayy7QVWWNbHI+fE|AFbg&?MrWtXffalwT&B-@>k6A@<|k z453tv_)Oba0CTJS4}zW`9Y(&K4Pt?rDH@LL{T}HKh#!mJaH)*k>JjL(c*_U>9-B!< z`*Yr=r3Kwtq16#8?%zLZA=58eBClM?iZ_c}En)G%8Fxe%co zwNT#nslc*-G&V-#y+p?JE&cLGY@$xe=_9zki-K1m^kyc`13Su~H{4#Ouk-KpD?}}) zuBJAciCcvPeaHeRat_2a3zFT1&iK4XYh7OZTY^zP1}7Th`vvo#`F`#HIOT3ZbnU0Am5UALbR4!+j^RotW!>UiNMAyL%+iPM;dLiLiu-#AG&j`Qg> zv&_LUq0JRi-NZ?YYQMsa)N%H$oCdH~BdhPbqahfm)2-&G%8t&*P8zFw(M_!ds_qVN zYzm!yo}1)W&LqTy+@OcS=6DOF6aI8b#&zqWDMQqWEpAafea4liZ+PiurjPbawzG;2W8Tl;r;1 zm(ZD076X1qfnlamQ=Kz9wIt1~%OF6lFQ;i}>lC3^tPw_+|*DtT>i>Y2#|`iS-Rk`E&qPo*T(;4~zPh zs3cUEYGyHdEzvMXI|Ve5AKl3L4HcSfW}iWy$e!4k=Ifvu6sYe7{c7;tQ^>Iwp*smC z2to_6*R6@syP-4B2)USPfj``KEh0gewpgkV4jZX%x!G13g0EgwXr^OsMD5QyG$F0t zai~{|Fx3t6a72$iCypdVh#&k6O1!T0X*mbA_EhhsY{xx8Kkfb~&FwF~-kb6Lc4pTd zIC=JdjyYA8Q&@r1+|}KX!5~%hH|xI6$lGYL%dw%|-j3_o!2(4SK?D4rbqCSU61DAV z$dx(X!?%Jr^grE)4hgq=_3>kRO*5Z|g6HO_>{K`@`k@?bjg@PYQ}`GJ`IMkuoQ{ge zE=~vWKBkoP9sn)%Lp+!wQi)kjJL;+r0Wao4t1XKMAjrtY8y?dgE~gM+_i)mZlb)VL zj{6Zo)c9%0zWJG@SqYBJPIuJuned8i=T@wy@$(t=xObZp9a^*Z=pW5f?H+4y&l=>| z3HBK!s|s@-fZCYe`ITL|MgQ^mA!^;K!I$XOmMK1xlPcR&QP)*-rqvvPYX(L3y=<&T zu?Vp1>1zP}Ell2|<?8UR7CPe8XWasaq#Os`sG_*H5!;4 z0}Q}Tps%)&P^Ivb%6BWCn)Yt@Qk>VF6Is@7wlN;sE)pmk5%FJ1q2G0e%MG<>_+ zZn=(H)dqh;j6z%`c>xJ(R>I$RG)!Nj?yg`Sz;;h3l5$`~vk=pZTLF-C=Vl>G>pm)L zzt*@dV~eQLmUjL~XN@a+eG7oH%d8`ps}|+ppKwFv&M) zl?0>P(``zSP77t|?FE9%(Ipb))jaZ;`yeonljy38rr*VXgQ+uf7&GSG&84H0tSMTl=PAm1gq=fD`1 z;7hpxvkiMTZx%ARZWXQRtyj4wV9L((F1ViYPWDd;vB>pm!@0;clOg{d%AI_USv4yiOy3PO6 z>Jn2Yte*e|x|z2r>12B}iy*1PiPwVUXQAoqaW2Uuz4V>Aqd}jv@vhagZ%Ya(z1hp} z2fuo6TP-}-)c#7zDGF)j`bVQaUe1wLWVvpzk>ucc-w;W8wQ77^1K}|e)qaISWjv7O zqX6}77at@by8}Z??YttOf-N_{Ht=A3Mi8JhuIdTVFie6v z(0a0*92dNeB4AT&rv%1hl3&EvRH;v_ZQ+U>^5g%Y@tw%dp9OEwT4bd$oAQZU<>3Q=U?rcNzzk>!^>mY@t96ludu@|1s1^dp`7WOUol2OD)M02)KuBF5SNPx@Rf2ZY0^P0||Dw@TYeZPFi$B_) z^hl>7{uc{-`^S`gu#^W`aHLRF?vXJ>Em@Pmk%d=zKlZ-Qx2&qV%{m+20%tmcf(cXomMp^XJ0gid4^6iSlFE4 zt~iOg7!CIkP@Dub>M0=}uUY!dp?Xy6oc~)Sp>*a6p$paScI30l{(SA7`uzB*3?QDn zAC`;ii#cUGIW+6U35{SdcEfL5>*pKG7QIkAsef`JL!NqeA9^U6x3wyPcwy4s!^XsG zOgY{IN)+);N%0P_!%rPoW_d{xh=>V2q=@Zm5r3_-T1s$yZ0r8MM#t~j1}+KQU39(Q z>N)e6%Jy~PIla;iAnZ^guxKXVbT}FhyOw+5Ug0oYy2Ry)ysqc6^0If&6 zY$s)ST<@$p1Ot5-Sk%=l+)=Qp&J%+>ySJ4s-%9VRT0V$0t55irI}pT+7KdHPXtd-@ zLW_2hAi8+>b3F=Zxn$puAJdV4!O!rGccmp%_1LeUYXq#7>()>CV`}OdgcAxL-Lzn7 zX1<406OT!}&)B%8_6$BMLP?b42LqdR&>^)`-1_WyDm2;`lo#@2`2=@Lha>0{c=f~d zfnQUoovh{;S)-*p`}SGzJRINj|7s!w*tbNzN^Qp4wBw?z*{Le%$_piZh`EJI`RQgs zXhgHb@~m^R66F%+NDxCDrDW&DfoCd?f};4u;Si!bHGRkBRR3?mZ?aJ(a;*b8K>xV| zv?qr6@rTpGRSQ;Wdm&@LH=WP@l@dTTC^}R*0@~0)hKOM_NS((Vu1^3>f%LI{=L1$J zwG*}lWU4BT{c(Sy(~T!ibDL(JKP0KYvDVo8rSRmG4|03~*!_}8qlB(s|7glPKjy&D zravnhBFr;}pNi#3Ie02stME|Uh-s0E!9jawiu0VgetO1nf9g&IJfhlPmpNB+-1n{V zB3=ScT`b7Aprx2DAcqZkW~swMW@S106&}Ab$rpv}!U2dBW^)WNggx)GMrD%(1I=CF zFFRh^9EFjDrs&$u5ZaXcsQ+yJ{+u?e!Z3!+EcE|q;y@C$@%I4=h7RB~fm}u2{0zL^ zdz8{(O14e_J4>s??{{ z=Vnx*khaup@)5s~Rr;-i=MYoPYNQmrtDd;7xN%c`T~+EUxbjnp5c5mip&ERwsgxsk zk|=KL!wWG|^>EmkOh1b3cb%GeIO~DujD#`uCQ1~HReUn9G#oGS7szx#4g7^fy?a;x zvpIQU8Xd%eCb%DWUN&j`+NhCx_fWtO$Yg%yLgiy2enI|50%NEf(2F}`1D1hLl8We3 z@#(>DzDCZ*1DRt#W~hvoX9C_(E^~y;Gh`gD1KDm!EOA^P{GVmKpSuEHWo8PwlD{v0 zrh{y~*(^luhcbABBL!}Z9h_~tDr(o?`P6_)6VvQmG3eYNxgSYUP}EygT(f)=K|h%3 zs#=18$C<@Ph&`c}_YvPpOcg~E7#UB%ZthbR_?oR0ygNNius!McGX?HE#Jc5hf2TKaQ|)uYdoJ z&ZdFWL*mSi+LqKknao#4tX7~#$j_SmM>Tc8$EK%_TqG=*&pF*pivohyC>41q(hc0U z%JlIw0ldS1X3><}ETlW2t-_HIB&P|+Y8T-DY#>SQ$SI9FD3|Fq>OLUmtS1Ml--Qid z`tdB-XJe^u5zw`)ZTdq`#KEb5fET$!9rdGZA0_q8`e6oZPU}zFjsQ3=$c$`D$v|-T zEbp@Gnav>MxdKlXki>zj{U$*KS=#}P90t|mfV!rtOhXl}|2XTDzQvd-_#7WP;;EMi`KrkBwK^}n zq=ZBD?f>osut2qPA^};&C**nfEBq$Ucb2W|spi8D&BsC0E)uR*5_r`dB4fOy4VidM=lF6fVK z)Jv>HR5do2YV_Y-wY*2YvP;U4T&a=WJbe)haOg_6z?&I}V}Od*3$_XG8eG1NJj3f# zZx^)z2WJ_|7uDlvRr9xy@+oP6?hDNvCqC+|TiVck=%N>^bD-Lh<{>zp2FMlk|KuN` zfF~dd8(oZ;grSUa603lu_C?Ll_S+Vsi9x}?1NWi&>uACQWMrQmk0xGHriIUK|1-@V zZ9C%dIC*>K%pdU|ut1i{azd~X`I~+dH>+j48-(yeUpU+wCL#06(&X!5N172s462rH zQSUB^ig0mJ*Qx>q?zdyPmJ;6Nvfr2V4FZ;{`f59L7sE4Wf&C`Rf(|GIN?1fiArC+! z*gY`75X%E@-$g3iv4Pf_$efgm+$^Jd;C4}DRrHa%m41{YlIst+#}Qa1!nP1Md?GtJ z>I~3_M#vEOK2fK$i?dG;sL9U(FB5iV9u8Ppj{f)Q*Jl2+NV!aYH}w8Q8r^PYKl!q} zD_xdG2zBUvBJv#pYyo^g_Up4T@@2wAFL2U%lBD5Ty>wTB^=g}Hxb_@%9kZ?7jwTp_ zr=$%CuZXCQiCxjq2Zd#QIH#_88s9@qk2^^a-7Zb%`Ba4{xC-_0PmhBR@H+*QFi87 zI3|KS8yNzHRW)MD|KldQRrCQ=9gl_mCFIJ&D)PJ;5VVFm8XKnnqRI_#Q(FoCM-u}{ zBfp`1LOSn$Qs=HEq9Rpg)MCCmzn3Fd1NXBD z7TIbxxaEL{y~Wu0nY7jlMb=VJlxQF|ZP+JP3jGyismpg;gc&No&q5&^-ixqE-p?II zImQtdgM;J&z^mag3;7}Uk0@JU;?$6Gx+vJq!z1YyOD=ObJ>hqCcXmLA^1L-SVrSC0 z8JJu_FBBF?aw-Py`eC5!`c!@3k8!`m8M@lQmo}o67^D(i!@C;Ar?J7CU1^U_Jtaka z-ZzVkTJ_?&kNkXyh`nd4J5(9?)zOu+3%lVZBTE-e_1z6f5Ldjb=LDEdBy@LW%H7L7 z1=eFmcBhn4X~^2a_&6)LSVM%`t<~}LlQf;AIrPqI;~y@~>i%@hch=MQK#G(4g&^A+ zqFUMDt)G}?HTX5#-}85BS~0&=7J|V74-q>X=jI4SRQ3xst}b(X4%dn=w7-pZ(*h72)} zDO=1RwkoIbu~Bj0b9aSetZ8YY_|Sih!?r^R&jq=xjJxcY_b>oBF*#^HQu0b#9;5v7 z1y^?ZIr?XVX-5zu-S3CaQM7|LMq!69hdA$lCrl*Pb=sD3MPPAq`qTH>x>Qv)Q5-u^(%<@RR zr~oQFTO-275L}ZFb)G;AE&u*ByCkVs0IclDkIh`TTta7&uh9MKx5f}UrNs#{s0!J7 zC+C*_ zm2Oinwv$(YE;+^mClRM={Km4<=FhtQGd(hYl~!}+p6`X~AFPK5plAeS3eHFj93M=Q zuU_%^m5CHP0)ke@- zJ9I-@Rxt(XXV`Z3fPAgG$yIFEYR|2Ndiqwaur#^=>0oX;sr9Xuv7hS@RFCO%k6xf@ z^uVJc3^%Fl)M!Ikv+C=1L@@J7CZd;5kRIau7 zO}Y`~UZYKHMGo*-t}5`EC?{Oo%RL0 z+$0?n1de*9;E&_=vxzDKR(f zv-g~*N~DXAHD}+3PXvVr8v_}-J+kz+OG4dLv6H?g*YV_~->2_*KMKHGCrHhL?wi=$ ziYryfV0Mazx0(GT*W{56Sq1T4U}|&{#`~*O+$z5p_fy*sc+q8{THtWST_!| z9k~!kf8SI-al<0yZv-lQJe@#HpbeV+RB{drrKjB&lluFA^m69U9TwH=Z*vn2_f3HK z@P@ilDa?YcbHVIBdIWp-J$j0_Gg*vovnA&H)}nP&{1S94r|7S`cyK3YYG0px<;O3# zJU$*4>B&N#p#9Vao5?!F%_aJvDy^YL?H_7Qz24EuscVBkdNQK{aFlVmI~Z8Cm)wP# zS~egKMzDO|mS?~AbE)z&=kE2 zCz6_%?3Ae^;9&%6d4u$FKVSHjOT?KEpk@0K-!4>IZ|F8JZ257jC8cV9mFuy4T5doMnKf>z7;wTv z@tVtSi4wKD1VOrPi;%^^7U}bd;bg#jWS5(?^FB46&v1jMT^~|eSS7!w zGkpZ~n3;@}^b+qmWhEW{SsS{E4^oaGPRZ|0PcJhu`~9Q2-TWJf43$*d{_>gg@)&}h zxQacyx8M}(R_S0oaKW$dFIApk^VPObdqeF9-2v8w6n(KtcGB#=+Q!@t$~`cTP8LWI zfqN4IUW`@sjY>{v4Tx_x>7722OZ=q3!2g48AG+KXEEsp{xE-HmbBgOh@DuHG7W*bl zOmpmwz33JLX=)bz?-u>KI@#UTs#MfI@@7_YD%bfR| zykNCdW+GnJv>(o+aGqTe|AAxFq`tSEg+9s$V>?VvtY#4Lu;P($sJaYKE@-+Z8{J zpmXzy9p;wE_MvVym*LxCGB_211U8?vsA~`SbFB3FV@Rj8r}#!2Gh%2KY}f7LdG7L#oRHrTLElw zT=G=?Buh$Id+&?wVLy$V8Hw|GCiviko;Fv3AjvdeSHS?vRg`L6Ypwn`I5y%y4P>Dg z$9#tt;Pyy=ych!Ldql==U8z!aU0ND!&UXWsAe})3KMLw76LTg$xh7z@8%6);VuH&F z8;KR^ zA=}0XvpzqpDuHYNoTxm0VmsS6vu*(nZsv44CClst<~E5>Es|*60chU5?k&^41-rOG zzL8OXS}y0VZGdq}KbLL+oB~ z{@~wS*>*Yds2jmAI9uwyV_9_h5U)i{4z>l@xTsP;jBGOt-B%;ZYz((nwB}C5fsrXG z%(eJgwNG@$Z5OvJ>hD&hHcT2CVbGk)uH3(B8L6B*}4mlG0&(?rx) zo6ivupM@YX&u#e*F_pc6G0Lo2pVemTOGY5d-0Fg`eH5sS4=e?M7cA68+x{pJPE1it#jfph()=6T+`NXWD2 z0?P7ycF|`R;V00p2Fzi>qxVKu0UkDtx5XzxZN8ALk=`gBuLk;vUt^8Z9&DZ=>V^j|tLlS3^-k6uEzf9)vcKv>N&6xAlCw#UzZ>C4_&u(Bi z3)alqo=Hx2dMdSIWSamp?LFjx%T!g9yx~xy(z5*W-n8!f-(f%Gci-6OGuwB2R#w?a zdZ!Qs=?gmiSEK)wluli|%t#C=3$P!!XDOsE1iNuJcCgeX`@7Qk(8+Llv1M}_ESg2P z4V>{_r=;)4l-~m!YJ=xfa>d2t(wPU86`F`OjFuQf({R6mVndoC%kA0IRD9fG+Fs!1 zu<&Oy$=Yp;UnW~Ar8JAN(-rwb**kU$M=Hn~i%0pNZ~Uc~UpXC&bYJ!T=r5{-@fnR1 zkG}J8Jx&X-Jz#gj4;p{Td#9^)d8+q&_C(&WYwd>9U;ia3rY^AAw%hKTINB~V;#cNQ zrl)k%H4@%x(SN!<)$2;96SDvOj*Jhu?Jen;tzXHUUDT9S7hP_gmEopXbmIa(Pd3i^ z?5k3xC!O{!BQuY`L(6aHHpnUavXux{2dei8Rn+iV_&Yw%)sYx!ZNqOXb=)J$KLyiYb7B&#jj4I>0eo*Or2 zAdoV?v)N8y$*8wOhL_-zp2@;;FAYwW;@|pTtmV~TjuAfvXq~|TQTPvc z>i?Kq$p462k4f&-XIV@^C-dxb6T-e4fwflA81LO300m@lTljA=t)Ytkk0YEY0{h$aG^I-G1S7P${)#e^B&|X z?3cY^xI#l_%FLgxLovbH^oh5>)K_Jz``^6PZ2g<&rLdK`B{YjWz!ERSWbi69f3toVJ%7=EN=SDpc3 z!)S}BY9-5(K61A6ORb(F8kSPo4|EeOBZ^YMLABvW2-DQvex`XcOp zC)5tWzT$SopT0-BoRtYp4Ewd#Hpb}6zp+Qz^w&!@NR!|X zAXbv-N^_7GOtHNqV0US@wxBea;l)rjcezo{%f^kr1@aob=~~;;!yN%nGHfxdduc=7 z4Adr7$n^u2;GBe*9x3ZvkBmj1$6?OPG!H1%7a+VEc5z_g#^7Gl<7o#2$rUNF6wN+x z(@iO)4ngYCNsDT7LsemYVeyj&%e~fD1?E591G1JbWaJQ`)~tRFdd|ghv#SjNJh_AE zxBgXsht?jFy#Jztwjx*k;~>nDivJC-nWR(n+wgHa%bMH1bG>BPS*$@541h-A*{meht{=n>vzKWuS#dlUA{VIs!bE{nv9X0TUz{q>aD-#jSHTf5F1qg4 z+ynVnmmW|2;9IYCCe;%J!%H1-x{*OTD+_Y%m&F5aPV$sbW8R3GOmlpn3V+E+qFX3L zXS6&f-Ae9e0j2|v37xkO=y}>_fHrRhQAnxaQy#ZsVIzirIk?0|i4hBylsHHjR0uea z8YbNN8obnORi&rWbs+TW%YRfQA_Bc`b?670)>5c(jC=cQR$J?2IDZY1gI-Pit#lUCnj>kYxBu$>%p$lTe5yQl zw!@LJnjxb^1uB)~6?}0nBeGJS!PYJ}jbyT5;4m2E0ht%F2g;!)5F}1bTrji?Q|Yiv zx6F78oE}^h1RZnT15v#*D|uu!L`CIkpbEwM?#2|8fn4Oq3$v+s8q~6G5aX*y!$m z=D$ZQk70)f-2U#8o)u3L9dxSF4qZ%zOn-`w2L01GFaSm4{7TBMr8?FU{kx;Yf<6Y4X5W);lv(h;$XsK^>f0O;#I z^{i>5_p1@F)ChG43Za$-ozSWAwst+FDc;bbs*bDuzL^0Z-hYE3sFi?h&*H*^VqKab zP69P2r;L#=J*n$m4d#z+ps%dqe|fLsfo8~2CR@ilKhhEOp5iiJQHcMW0K@dJYZ`&? z;eOkcON0z-fd&@^|A!ei+I#b3U9}NSflF%#$BrulwuLV|Mussu(z@92wOwxp?wYd+ zANKPVU~qFjkql$A=BiKK60jDhQc&mB(%n1HK}4TyzTk|C%aZgf z`wAhresVk^XsCMe_1gs?1CGd$CD~8ax=!8rxL%ou(s!0 z#S09_`Pnji5ea%1-Q%1eWX#K|ZM+K-6Rnx)T$dFXsiF@D14N5|I^l`da(kr|w-oNm z0LFl`?Io^$V93U#Spa)6@MTqR_RUAtZ6f3!iq%``$!5*TNyTSL)XS}w)_(&LQk- zR^Kb8T3bx1Pm*Anpk^ki3{Ie0#w!LwP{P6q4e!dd-y^rYPJj_j$S{$slMV)SdxuqR zeWF-)ZI%tSUY^!UUg}XQKJ{(QQp7uS=<#?1b%1kHLv=d0|9C}iVFqe)F(XI@hR<>We;L)8PS)1IDoL7^nS6V0xpd&Vjcs@NjaYopo_FWuJ@M5%B+X zVO#6$-sRb1w&TLqb|(3A1^Ya>DW|B@s!OS#i;Rf@|S zkskk3fXrqo5)+pg!^hnhh&7uoIhk$u%`|{1lV8++bdKO4i(ak5v|TDwIgh)uh(&SW zj9p{3hk)k;dwcmSyq}qj;;DLzE{A^~u1TkULF@VTTfjPNw&6@qf=Ybnsp(~j4QFSn z2S1~zNO*EH(A-@33a)1SQW7M%*!+sl>LG{u*1YF!t!EDVSKjR?#3qt}9jMh>nFFxU z!4eAjk{xo>BdV}SVFSTy3h>z2m0aPDk}$*@+OpCjepp;1v&LcuK^Y| z^`|7(Q%E~@vVU1DI*6r^WHwf1>yjgKrlX@nAJ3EGNKv6ZYvk?1z`-_R#JjJ}-FBcj zF(jsn_0X(e@xFy4y=RW3l*;WEYf-7j@)cwC-qP?I@VCkLd1;32cN=dW7b>!;T|K;{ z(6ZSLE!ei2`+K2W@0;W39?3kt`twSx&Zi@xj0dgB=2$rI=2h=#Mik6 zMc;X|=!mC>P)*99NDdKg96w?aI#3gxQ7GVWDKOe3E=rW^Vbh6~DV1+*8OiLwUGA3!j)f=W=(>=9o=UVa zp4LRI@4sIhb`cZ(X$<|g3!iIXvAo@)G|c?RRJx=PRE#*^f`Qn~p%&T>4loaHb^V}Y z{<8$Ape~KIT(awzzwc5L6^$PVW}ms>+*pY3Cc31oiE)#Xbv;5H?7TRP4aR=ZZE2!| z@jAcXeJ!S+b8Gi{IQ40VG}ew;iH|Ryo1Z~%r|!hNJw7RZt5_y+e1gseze8~nLzhMm zW}S@s={>2x@xPpKLl3u9NHhy_fVd*``UqfuSGZ6R^WS}%FMBKBtkvAt`8gB`hvz_X zqy)x++BIq}KQ^bmeS9bo;|{)q{!F2D1_+L+Ib2_7JRTnf);4}*|E6)BdU67|=qW;z zZlM`W#w#UW{!;vuW;uZ!8yTH!MGOLo-s_V2#A&z{e_&nB=K zR`|W?&iv-A$PW%qY>K->{)?B=PSH^)x+dzSoLpyK_Hxy7O;nPrK6I|}ZHp-})4|@W zR8y(yWm_tjv3?+E+bX6|)Xu)YUjc*~@hj*!ksK_UsjPIJ7Ow}`T99<-1zyTMr-sjw z1<*t#s%aESFPPdlTaw4X;FXl)yvMoAOEPQ;#H;P(goD(^u;02==X7FC73Cy>_Qq_G=kKyD5@WlS#NZ%#C4Q;^K!d`ltqd08FVv9$GzK0CGxB?Bcv) zC=%QNSgbk_x^>s;yK!Nzcb>f+D@E=^5Ie718>{{iC7FA=ulu_nDBopx?@_lo~U+-}DlL?uR`iliggGqBfhDD>O?rjC*gqc9H8A zI2-}G8aaOFw~KA;AHBF;?*=PI*O7+z?SiMWNwma*BByezvfqESK7D!o7f>G*VM$U2 zou#We0( z`Auvr>?S%7n@?SdOSrLU%UgYxQvi(5-zCu`rbu)dSl6M){Pb_b-Y7TUa5oB&`I+>k zP%XFUrBSlczb1|)EQjBO8B%RT)FSBP;>rp|`p6ChXm>hw{X9ol8tc6*Cw8(-gVd`$ zJug=*SHs)-Z+ltf8*B1>1hi;p6d|mKzcqO4dp0iw-4<(UBKkr2K?fFd4Sq3jQ_~_Gb-T~DBe3Bi4Mt& zPPm5}qQ2X=U80JgKB-@-KXiuov?w%*fKPr{D~Ti%Fgwf3ZZsQ}&TfUPMxYNML;zXO z@Jhb8TrZlM{G(JA&$C3|F1HaJ6LgJHsq3vo)zT}8N}&1(Pf}od8pW^&mvEM)@Wmc& zvRI}zP1qdLFTQz0zdky~rO+JM_Ov26*0#YDP7o4u>XOH$dpYC%^2(x1*7y&?H;05f zcLy43s%cVu-n+^GY{l&pzrWE=MLJ9?9!*s``+tw;klFl1O+rFPlDPAnJ$^SI~yeShore2b6dPR~QPOL=TmG3=5tHsiuh*SSi#w;pFnG zpT@VBC_cV3(bf=z6!wqN>h0vmA9l4|BGxWm7}RbhXx#%8yXypAOrb@}UfFfqUU`1` z?M`?qe4_(ruYE!2YWdt#!iJj zwM*MEUTXDoZti_0b8LW1iFPpf>kV?!d2CaZtBz0Mm@9W%|itl{-dWO+l>tjrc! zvqaiHWm_DpOa62I@>}@jDL-LwgHrL}vZB4^<-CXj_IZdt!Qicg^t##&LuKANazcv` zQ|)dMV~_;!f*vAyNPL9Tb}OE09<>e0qbm;Rag2?*#J48I0zXM)d4HPd4`Pha&$n)V zde?Ox*PZPQl&Qe_uH$l2{A66kt?SnL5dM#U|BKuxx%JIm1 zQCQR6d?jbq?`6CJtwPKCuWPa-1%e&8^n?WaO6J$gyEiHwT8(J<%4| zaDBIdSTr6R%!ZE+Xeg=&fp^#3D8elfL{|ITSywCK&hB0!Uk#MndGs0$SjoOFOR$^E z^|rB_0>kS>UiBAtIWIfagS*$(W4uArnyuzWuz=)9=}VmMTJ`B@@-bA1c!*o*#Bgp_ zIGQI%h`I9n;a{0$sVnGf7^j4WNDabMDWiB=`0Y6?2mfhK?Ciuc=cA2yXAQ`sh*^gy zGIi*04!8n6VW07;T%(w`tFMi7pt*C7&gl-qa{;ftgXp+>9*)?^2m(Yd!(@2NG+yv{ zC>>wW$~OMR8R#CFmx0@FXok2`bM8KR*GL_Th0>jLv2xGas!3H#_J~U+tLqqsN{D)QKZijz&i^BS>4e*yKlWN+`Am<9ztOn+ZoTJ1VY^j;%W zT%Yc0X05Jx{$}OmxWsX3HKN!xq%hLM#3C!^2T-B4l>5!|;(z;#`Rpmbv9y(2zT8Y_ z;N@Dbd8_YkD?4{!;Gv}k3V#_9ekZ|iW46PURq^*Fz(R2%ziSm1)&aA9-+#z<3B{wW zm_dH28((jAE7^j1=@~N`H<}isXiLW-$?2my0LCl}~n6U)^K+AuGzHvmCFl z2|p_{ct>Dai45w?@K$QqAg1Ckv@)E1t+_;t+Ue?i&Z%G&0p$V z@8w*z)>?Gjrudh=2m2yKkEVWlL_colZN>|%wG`q73rHfE>y9mq1lGTjGeSv#mP)dT z-Yx_3S{z~g7v&<)o0!|HV66ddyhAd5LrLr>{%n7SxBG2H%*WBHZ%T9wF%D#Yv4l&H zm=TfcwHRdoH}GG?@%B1uI$^1~yL%4O&Uu9m3A>uZozg=uzH`k$$M|8N=jyZ1-+dK+ z-N$GAs!$tu4XrUyCc}P>xHW<3-W~3Is{`M=D}?y5GO?c6y;FqILXG93Lk76rfHSBzC6&UrVkCj@=uXDq$%>eBddD@Sn7`^vzay6+z-W@ zuMvPoLTsGLCx>udqnMK151=J0nVjOuYzu`imwpU5#P%MCsN_$iR~&!|6@ArO;P^=1gQqs%8QY`w zfGoo+vm^uJ!<^pyS=y|w12y*FuejbWdd(2fSUR8*XIhO?fbOzK^xkb+jwW=^7v_b< z*nf~8%T(ex6-~cT4dRj&_jCEMowDb)YMP^vz#&gl+Z-%durc27K5p8)X25QT&%tTM z?iAe}L$^p1YfCsm;&{x7PfUE{l=;8KwVqGx*v(7eUBZk0I;Vv^{$onfu=c3U@>IYz z7_(}7Rs`qG|3u!LvTF4O3<~}xMZ*=}p{cL!kmhF<;IDwZsQQ}O`=k8tJDxK)KGj?B zXbBZG2d*J;N{k&(t53pgd_G&L3R6w0uX>EGKvsOx@j|#eSz^0S$ktQ+^OhA4>!`vQ zM^^biie!CYb($CS>J!mJHZ78KTj)2L&n6laH;n!zfQo>Zp2ZS>ifoc#>|ngv^`@fH zi?eG|i2v_L5kf&Hs1nn0LA*1%KMcn8w$+NE&}K@&&wsR^=ZrKbM+ z-@E9N=MR)E3$9#b9kWEg+v$s*hG+uvaC{5K!Ib~Tlb1*jHo%T%6&re?7IbygK2-Z( zm3RD>|DD@W24Y;OY_8X!HcTptg~Us|u=$!&ZM#xFbExl?*{6hfDcr`e8~mAEHxu5HH(goEY-J>hrH7 zv@uX!32{^UC=&8>08T=oi}WAW?7M&igK620@g(KDcLsWbeyH+~x&t1WEe!s-*-`^J zfn?#~)`sc8a*21hRLYmS@6S6LO|S1LA?U$)zu|CV|AoNAJw-sR^z(@`Wxbea1`62hHWy+pY984 zb9bZ$wSt%yRPKsiQ;|Ljk0YFnTipNrGsJJ@5K3>YRy6g@ST&B#GamCy1*Gbi(~WSN z7~iFuHT49OjnAPM%EY$et)c0Mh7t;10Nm+%8cy?2;4QrapAXplVtY}xBjU-g(s2i_ za5*I!AjD7kTqC`x=+VDu37%%yfFcC%pffi8Th-+DT(rB%9*8s?o`h`BCl@)#$KFAA#M#4EJy1!O^Rjm2Z?{K31_`4^_ zEnVhy;oJ=SHk1?a1ksfg{0o`ov!DJEUni)&`XwK7#rp^2y5wp5bZlxdd#UfWXWxS5 z(fM#5OKZz+sxix50qV1fzhEXfx8u3@&af(T{0|AffM`G~ezyE_?CrnqWS21E03aT4 zYrhq9jU+YpuBK+}j?80Zvo+>I1ArN5+AjJu5C4p`qji6MX>wvIFS$#M&B?ddBY&>y zeWtiRI5Xf{Jz*W^`?U(d2X5CmUhK}HM$@Pc$zFO@>bt~<2IHNEkViY$;%NfY!^o&LGvt!s@xseB=o&Zi#w;d3f- zWta8%>4)mqfuG&(sg-)lm~vcZg6o`r1t~-u2lE(L_`U{BnH06ofD4F#P)yTCbdgbd z>-_Og^O^k4nXGEP52&Y`wh=+8S0>!9rSYrCFO$vju499{<&z~Azm0Il;5$EYP#Z*|IDHH{81K2|rSm{Xmgr;7X;cNOpz%H3V_ zK!0Tseeff$OE1X4|BBYx zmG$|;%;l6`kb!yRV)iS`frBEOCF41i3bC>q;W*B`rFhx&Lnl0(L``rh9V?M|@u}8@ zVobz7I%O_9=>FiqhlmLt1a=?#r*A&b%FQ==ZT=~<9HHKQAg5X08q;?8>NEiKyFY)@ zxu^Kan}^ctSr3WYd0Vkt{5|}`^=P^vvyr`c3I1Oq8?X(~O~1Bo2zgQjn=i67)AfeS z}JRZJ|A`X?(L%Ih5pO>GpLG4s7}k|7VEdERE95t$ZNQBQ9TNv`DjK zLEt)RC04Xt!K;W{{Gpzo*Gkc~>%H<#p95gguQ==-a}>wg>vfq91eLNE*9^Ls7e^Hp zc3M>)GMbr5>tZUq0x~|3L}CeF+BocovyPK%fJH*#0#MVmvIhABniq3mm0%;>AlB-S z{65{NLD7C>913HeU)P-{=qx zME-T9d;1JzO;K_u*8N&Ix*vV;@aU*!Eruv}C3$OZp&*G$fmsNg2(63vb~^0+dxo$R zG&8{`gLyGT`TYTGsx&9dZGJZ1`dLC&bvLo5OVYOow&7mQE&QO?t1Z*oIVPv=*fC8( zEW;t{@WB{;%%>jdo#_mG|MluWn^A{T9{}n{eXmmS<}ZV!n`=hvJ{9s@)oQce(tWd& zJ-glJN7^3>=nVu$L2pd)P`(>S*^#R;sVK#f0Pfp9`f_lQe^nN*YirbUIEs4n{A)!x z?aM1&_Jh92I(KJ=vpK6P)9I>zN@Vz_sa67IWOm^xkwldNDAVO+Xhu{#wgF{ z0D*_nLK+PTw>jfAdlIf+q65)LTTeuu%9?MO_u0p515GxBa5qzJir-puPp`CXb~B^u zUz}OE)TYIVsr2vJ-ET1d=P#X@>xT?1$7W_m_}^n$dxajpUey$su6+0{MuKh_^_x1e zDAjQ?@s(z&MaYsJmi>G<87$iM!aX`^K4APan;7kM=J}{_Ip&cTpYdE=1jQPbjrvD>r^%?>+FEZ+K`D zJ^t}&)I(W%Kx*95NlqpSIsIz)F5G(Rn--!*U9-bWqnx?DTyzQz12dB#Kb=kHnaWe2 z%RX+TcJ%W`oY_bG`EO(d~614 z-+VV=Kzexl?mq_NOV!5j}nF{qn*C z1w;vG);ZgbpWHGF#^=mq}qca1#;pP{Lx_8$9q zK6X&@M}38fAxxEQC+JFdj?#B)!C||a`YFCDZN9_Ex#;L1ax=`D6W5|(R^r~$rO!O0 zNzvReLo?bDxo>;$jx5ytB7noKuOnZO(YA!Kyte0}E-AD9Qnrumpver08<)@nn3+S3 zsxK#n6V(h41?np^I&9-_nO#5l<`EkEV`6TBN% zZn@(Z3MEMAm%Hb)mwdWmt+>Cg)C~$;$PQI-GOwiMKgUDhwTqUf5P0dt+p7iwdxm+^9ZFkO?+y{9V-!yY97b9 zwkQyh?E%ScgSRz(VMTgZK5Dz&ZXZ&aiBw?8nj=7m48of9z@bg{Fq}NU00*;V9s3p| zV0_$!!u+Var}r9{-!_yLN{_Wi(b+8oQI|T6JA55 z5ryG@Mqh8vo+nBN^AARiD?N#n8nUY6puoreO;4IT^YYZY+}0VWyzAcoQO@<+^+EsO zq(T=jc*BzpuhzC&~gL#Y9mDq<+0tdroBB<=&R+Go&{Cb&FnMp2@+{ojM}JiVh{7!{ zo^!sF=B1n8Q86bsa9!lKhElEE733ezyt1v6G{MhliNo3t)cG{ohj4xzD<7nLh%B#K z5_TaCF)N;`eg=sycj@j?XE0g=Ry!IctfQT&ldXS?<~uH$XOnOaITM3s zg}tZ&x{X9Nlp`d}`t^2Oh{0wW<@qwNOlb#4V&1b;-?5qO;}pvlIcFa?qfYP4fcB1- z8_g3(B-&_)LCe)|$D7B>V@nGa0~hP#?;XyvAK4pkep~towic-+tbGYw`l^dz^@B>9 z&p&@Q{ZWenJ8`j)=Wno6@6Qdti;1qWHjYlDY${NoZ7rcs2Pz&xuRpu=5s9%ai@Dxq zo;8<8QpJA>JDwS&d7ZqoAmK7aQ_tQmepLF7*t-}Jnwt!3s=0S5VU1(^v<@AMajY}J z;^=>bWRED?Ay|yjpFngrgv6b!M-$ZPBC^vT_gZ`SyyCVLCOZG4DxT!@e*s%IX=Z$u zv{`v1N*A%NwGy#sc1s!FTr~K)B1FN|WXkpd6@BjdUe;C1w?8ow9S@$}TKY2CZnC5F zYGK{wb5+Ex%FZ?^gVDO8bNyILYAj84@bzUzM#~_%_^m^;=Gftxof}h5 zI+_WhG8v13Yb^@nL2iug4ALZj@B241@|U9SA@9qOCyge9b{EDmspx68lNIt$j3b(5 z4wm(RK;H{{IK$I)mBmga{#J=&XrYi$8o9B}jph(@tLXK~tCu1B)kw|lIvw`Fe?;Vt zS34LF0Z&n%I1nZBH|M1YPq!xU4EZCPfv`fO5PzsVSB?BJ8fy@cG8okHI0k9mrV}dX2;ls%#Q-mi`(c-VwZ;{m?1G}|E zXFfJX$hcu6MUc)(5NKL>wbHQ;xRS0tS!|DfbE~tS-t=gUln|KDOYk zkCH+Siu5_6)f7SPuakw_H1||@w~ibtG=ZiY^ebxjJrKsjjv+>keLeY3Eam_M0NyZ; zuAT{SJS5a8UQLUJSXUNga1B4`?3(@~2f=UdS442w7HS29W`k7m&RY;W{~t>qyS$Qk z$~UdcZ*@c-ITK+g@}uhv#ZJu3#xGoRMz|_T+k2+5_6F`_q)**vf{F=BAAT48tKVD7 z-_kTX{|B6Vlrby+C{O>Rnlc?l9L?E4htRtV2t@=Q;x-+q7fP{Kbi1jwb2Y=5%nG1% z!3V%hg$J=yyahgY{f+(unqkupIi%d!yfEG}iY6y_xibNsvq}Rz`fCSxuBNXzmt%ya zELj%j#UU@g80^0d6%JBK7$QbG_sw#gf$+i?G_7fNxHhMs7x7&H4InlFI38dkl@|zU zN~{fet)K*1B7|Yc+I9yW*#Pev$*`~eL;L55qZGK_iecSB&+{#nA{OD9Sc!Jy{U|9@ z(@j7j-uF9YmpB*e`NLPb6FxXSlx|y@?Dfeu z*EdOiWqur%A9=ygvc_;w=0#3y1W8)(x5Yx`pKFufnK5FDV&+ri>?$Q$z4}<)2ZHIR za98E`cBsN5bmkG1nOLE_O_QwKpk@E|=WC63hE$t>wo&HJL)skQTSS7?$B!^v>b3=E zaRPK9W!W@WkO8ZEEe~4}5n>vfGsL*iHvtY&v&4T(hze`vrf;)S6)R`I`bWtIrG9si z9^9|8)1*y2MhaI0Kj5Z9E$X?dG z_gvU`LRX(XRLVob+ewG77)K_ zeZ6SM08N$&wBcWpZs6^Inw}k9h_(%fs_%yf*w0jBYPVwLu0H2?q`7z%DeOXe!KvTKV7ywXk#$=VM z?p8C>44vc%JdM{B3O6VF5E+1lNpVE^P7w2m^3BZ?&+0`}$WT)(ALfBNI0$?yl0zN+ z9V%iIY56y(;MnLw-nk*G60gv99$tMVsn*kJe9biP%G2^_W?DYpma$Dz7pl5(Wcp?+oIHGU8MPsD6dxw|_+_cQm&Ov{e0lWX zM}{X1IZpCj3TAxKIJ)O%V_)%VxTs;z@|HZua>9IqlPisGV6a2}bn{8Ju<8|CF@b2- z*B@50uEG@%ttyzsd}ukc-5`8=y&cOjXF-hLTa#9Gp#S|8Jj6K9?8-iEKnG1k)Si;= z6l)SY7eTjzn26APYbU9Wt!ugQ3>CNCb?5`VTG1IYFw3uaqcn~|9Kg(yU0#bu$Y>-(I%dv?ZJYYxF;bC&olWiwb4dAc;33eYqQl1 zhz!0WT0P+kByDmU*nUo7Nw#gWgVVZl)!b@U0QNb8L$K?H%)bV~74hvTiopN;#nTFa z9;g!C(Qm**e6_h-O{Z?lqG9qNMZ9~!U3Gs<58gwWz~BwhK(nm%x$i9oI$$G`)@ED+V&eBi(>qmE$`J{Us?Ys6H+W!XJ zARE>ZzWY#kLtxFyQ!~9ZlFD3#8#l5&8{l_;Dr>MJvd|*tT#DnGa$Ek~_G6K@o`)>4ZB66;en%^wm^lc@t|m%sWceDO zDsa)7PtFe2z23N;fLb*LAmKO{OTi|W+rkpjt{`hzMl*r6Gp{w&py!o5faEN9E8VPc zTAK|!#KIqZ2g$pSZK|LPOLRZxd-uG}{x;OK zKer(2QPQdIU(ubF1O>Y3-Jag{`DQi?;8hCK_R3K&@)K(}myTAgiHWn2F;M;uN%H$j zxe<5qV$wpJ;k&s@)5}}spKR?GM5RWj&&U7$#FY$Wn?Ra$?||uoG^N|7w`Kll_+NW2 zf$Dd8?>Nsx)X3jfod^;M_V&7_ea|AIl^fyRT^e+k;6S z=-kT~1B?UvF`AQt^$ao`-%ASCaJlGFAG*~2hQ?+(Z^^0apd4NO>(pT=0LXHkGEvBD z993lJ{?r^@JE8EYmwlBi;@f5|2;58XhSdJV6J5G@`sKPseWA5p4=BcGECd$Z`0oYQ zYJZIa5p!Bn9EhFaAmjK59oyu%lD$b?h-qw|SfOXl-(mAAgr>3- zu@ldGpjDNrD$_+Z5F;~t{2!HD6w!BCsB=FI!}ufEWPV7Y(f&=led{}Z-p^Ufkl6E%<|`8q-~K*yX?7Pd@32OVBf-wxP)w-cpDb0W^a%GMlr}a0i+%k#W)Q4sTJgc4MN|IzZ{l%wIU9vssYZF1VFyO*C2cG1yAuNZ9~ax)&&DtoI@+P z1_<#n3kID{tjVBGq2zsX8b%-S9!fl^I0ql12VB5=n2UuAX*jkOdLVd~b;3fP27?FA zYfoMR_`XmWU;;o-#sQ$5?IU!z+mt3nhXGBxiFvCDL<0@CumOFq758TFz~LbXhgQo4 zAXqE#MB=}T7r-q6YBgX8r%4HcomeA?2VfnNBRLm zq-V)4$(JgzU2IH2y~=&^1HeM0`V+5U45Ye~+IM z7WV$5lG;@Nj|v%no`&C_ra@9!%Z{8u>WgHv2KQh<9*nXw$eIG`!-(`F777D$da_B5 z=cuTFWYQOV38V7+4e_uD{cLgo;1V8Ma(#!K=933k@aMLDw|85}A*7Z3!uf@Cj% zBTG*KBiYxDd}U%a5uQ((#2h?q2cF5y|L*?G9{Sr|lN3pLfASl%M>vZImbdOB#6Cbn zY(QOI;Jr4C*`7iiF+sz8fX7M(T>#|DJ!C8LjHwEJehejFfu!QtE~*((8xBYcvr=#i z5vac3+tx1a?Vmd%j*K9arKg=iUKe)2^91yxH3k1ssaFTlFaj5~&PWmP2cm^LNXQC> zvdUfP4^%luw&5G#e?T1ZLs2py0)dE#frrAo76{}*L>*>eVtdvmU(aYIfQUZz2j$z6 z)lhEu5-VGZYCNLR;u%G0f^=>oTK*puUoUtL-Tn|Ty98uio&$v{1DesemP7I>5TP{v zn-BaHq_aTSC&iqi_A!+3G3-pp@B`3#9zuNyGYfnx46Zri4R)naD+f{Afj3hq&!(F_ zFyperO^8J?QpBCdGjD(hC)>$EekLe(>MH=qD&E3omXe$TP?A8%pK?$VEx%g5k)5K#c& z3l{PGLQKgKfj2booE#j3#~P2iz}bn$_iG^|*Ag9LXI-&VW1fsJx1s+#SqOC@7XR+5 zAjbaxH@p`c=RhxrR!eer?v=`!j;&tb+Ix(8&Tk%5aLM=Gt<1 z%V&6o`i4T24V@TQ%5tc+FJZp}!pln-ip=Y-%S}27N)%e(L=HEaDS8)7Z?VPL7Pi7Z z5qtd2T}`b**F}`O^v#oHGnMN*6oVC ztkyNTFFk$XfBHue?(HeY>l`o*CHkyU<`?ry3Yd21{e zZz60QY@Lc`wRDO)Gh!KET7Dc=yesr6h%ZZWboa^Gorg8OKCgehnzF34M?A&S(Ozi$ z%R_{B3(>UCiMob>%?i8BO2E&~E;yt&Y9a&wLX`)mdb{ z9Swm9+l!AkvVS=KB^GzeO6Xrd7zy~k?8;tyT&k-i+NaQij5kp5!KKud%bQAC+|AXaDEF?hebnTS zOCyNvU-9!fUAodxV$#p^XVf<0x8*Hbq4k1;nl*G?4a#aqMKcomKf z`F(3&m`8y%>6%&9oc=>w7pqJD*Z$BNjkZi5c@jmRPq7y&yD+lgDPL`ze>~&;BVfY5 z{msAwYPykDB{`{;me|}BO*Oq2h5e`$FoA5fm-Gw3t#N(zAD3sAaWrEOmj}0LD{>wy zG3r*uw%SeZKUA$tRO)0;Iq3aqQb53u!754ayz(0Whf{IiC`HBa%If1ihD#EKNK z-j1)eP5aus_aQAg;<5Q+uXFhW>?wpK(uHu!eVUZGl~()aHmwfI2z< zBX>;>h{q3mRJ_0vlZOsf1WOM#NvWR5`+SXNqO`b~FXn&G|IjBJ8%^2-5^Y?#bcqZF ze)&{DoI+jWgIql!{4QeuNUk&BbSH0#_yHZwdt>~a6~#{6psEHZkZ7Eqv0k`ujlnJ4 z*=S)RdgSXZH(H76az(Dn5bC2te5fQsx75vu;1bhb0;=7x)6MPnD~opbD}0xuwsJ2a z^%FN<=Vw0g%3XfUSPFJ@dbVvK5FtsiY2`+yObny&&u-D|gyOz|H}d>OfRX(n1UPB3 zjfqK*AEwm2NST{R5`ZTjYm#p5-T_bXcY2^zfsAxucM@Tlc>JV3UAEDAfQ&>hSx^`s z*2j+E7IqRn#DsIY{jp6?AE5X0F`xE{O6{+L`8yUWx^h7CF+py~&JPk~*h^6Fcn+B& zO|()*%$MZVK?lpHZS!UvfG~;QPkH8rVKHyp)gWx(6{N&LmkREqWbfHYtinX_Qu^7W z*(dT;ffF~!M~e4ET6xDNH{v80#aGg(PGBG&VpMCAg_%X{)GkzyBt$$ep4mzwKrP>2 z4fmX1&>;>~?9yfMR{e&u+cDl+^}qHJoW~f>D>D-GGPlGxL8SX0ee@#5HV*m=fj7WR zr?(<1X^_>KA|0K4!z7KG^tErOIq8BlmL!I*DSeOdo}M?_*aH-vdRZpNmT__={VMGr z`Az80teb?G?$}&iSW;i@TXiag5pZZSAl-hp=#z*Ce9rq}$J-2um*Z7uJEeE4>tyd< z`4h^&nkU>_#~kZ>Gvh5LwWmeGDd0|__~=jFh^ENp3k5K?!L%s1wDMG6GH#bEnMpsDu?$ z;+2;9*V?FZ#~Op0pb!tkJHK?D-_>IU7xL`%h|D*W#1OZebB{YS(lrC9j**ePH;128 zh#sv>_D@3kv!sXT{X%zy+|lpq37yyoP=D&_IB%(Q!gT!Tr2~P6CmuS+$r)pSX19*! z4Du5e5vSAFtS#NG_%CK(;zs$h7t6>0N7;V|HQDyjzbHO{SSZqa5fGFvNQXp3nh1y} zC@lygO?qz$MS6*V^d=%8QUXYCp@%96Na!W>o=^iMao_LkGru`A=gjQce}rL@8HOZx zxvuZ}thEXfui1?K=Qr?`_Cv7T{X%KRKKHzCRp~%urr8%BrmE%F_&%$#bLDAWZ(HrO zq?jbQuZjzFPHhWHJ2s5HjRZe{D5>$RwuHuG4VW)sI4z(HqS$;pZ3LTq;2;q>w*6C& zjq%BymglkSa-R#`Aguv5!c5oj>2^+Qx|`aKpXiU_*}@a#MfMhsEYXe3z>XF*I^BYi z?-=1G7zBwN`a~ zxqR%+6jYBbgMZ=&Ipytr6G64tW~TcDa$mEOahyFeXmE)A1d#tUL3JhgN%nSMPMuwd z4qo$2^%v?G&LZ#g1GzJnGaJT#MZeSKgzB}Tt znPqA=O_Yx(d0ji1iYZq2{SXg;Jmw_iHw~r_+L7a`Wn)2NN!e0VMasQCXSg{AKTHV7 z-#a(P#1sB3>xNIlpK4x9hjTslW^Z`0UrG15!Bog2@dLppOgU&Rn%SC=dD^wC)qBAa z`fj3@cQ@z!GcSOzhprIzA^$>&F5*34hWj+voqy?7kJv+#=)`lygLJPRj0(wBoX5-L zU!IQxa2hegB^){lxn*Su!_;9nNx9->R}6p>GFQhk4lKk!aH}byd@;utz29SF%d&C` z*ZOjEN7sxDaUbuj8>Z*$*R7l8$66k(7sd>naiJp}E`fYoJt^Hcb3>n3eGN7tK*B5D zBiZahyOChqIrT9_Hu@E|Y9j?*RT7;tXESiGHe)~e@he`_(Hs;b)9y&HFpj+Q?9#dV zn%o`HjkxKzMWVb4g2qg{&wNs5GWrnGW5cOm6v(_~=lvW>X6!wm*Pyb!x=sprqql-J zyf0P6kg&vziieCYxfn%@1sQaCt1m`WOxIbI+H+L-8`F>4{Kdbe87m%%-`Rp^W`xeb%wpJkQ0xhd)dHfO2nPFiTaF+D?p@*@pET~hbD}bv}YrnA# zyIxlz+MPv=Y=V_JoU<7FoHg(|bT%0q351P*{!`|9e^Y=>fghQ98xl9G8UC|o=S5ME zE;TNLo#Z^OIaneLc8^w7M6n_Mx=uHoeZ;#~3`oYR7&@>N3evyhYlcWOQ#abIp9oW& zRie(|#1ts4g}t!p#7Va3+x<6puzg7vnTMaQX$C6+{Z7JZ8(fOrzo#B%gg7@hxU-)cog!vO zqrr5otSbp``5Iy<-1B6{yedulnzbTM>1cIX4?1pWqbfyD9Q_w0-e`WYEXjQm)OgU+0+7carKxO?M~!JeJK(b>dGE z>Ws$T+e%KF0bc7BqbB&6%DuSuezP$fa4E)yloj;{@s0WFkA)Ab^eeA zR?Do$HpHUvnqpNf;9Bx^9YjHisJQHhb~{D6d`1cFRrFV0qq#iM>#I5m7tz;mxn1c$ zX()y%odMB(e!Q=6QL!h8TV2UdXN&e&LZjyzey7?j99y}!@a2h~(qZ5P#+0XR6XMo* z1Amz%p^l|lPfZrT*ffV%awFvhzE(#8WCqLw@xP_s+%zglEFD}2W=)o;f=@%$e$xXh z+s9^}IJxoB!N%ixYl-Zrk&(HOCbIlxo3+bU#?7C6m@v__XMv}?e6K! z^5@!@)W_2#9NRV^!n62(jI!n}p55-Yu4?SpqL0k_;?peMYgMiApxG}&p?w(ApmBeY zhtkSXJ0%Qgw-ingTOHz(hgG;`A>xvUGcr5KaR|%!d*GGAn3hW8I;B9ir!u0HTb`D4 zTpzCVZUi{5nG6NM;=kH)&N~aW!?6i#0iSrxof~U>N_$@B*!uG`nH&E&qGO!xEY7?o z%)S&W6^mQ#<-Z#J0HVOMXn<)19CkC%*( z$E{lH-?CYW+d2iXg=8`&)-B-G49hR}jf2c6YmGbd6e^iPrWNyD1AVB_=0UbXZ8zmx z0h(G5tItPe#pX;`J_VQl!DSt^VOY*}>6K~gex}eg%7z_Qx$GNbY*dsxFSJa%zAI(^ z$VEpy21#SDBn7S@`hd5sv5YuWMtInI*A0oy#6txYfssOcJ}|T}G`Y$_7o`>d7$gFt zo)f8o`^vokricr`H8GmX9VWm!=C@xf+v{sEwlGF5o+9AaM2iy4ze)_$lrDT~uVmq<><6%U1S)RbP$5 zDvSmy?Wf#lDS~5fA1CPjv~YaJugu_J5tdNy4($4QQ=x_!!QF}872#)kE_O;ev8djB zMiBEG{MFOs*+u56<^-zryUOA5VN&`_`gx}pILzpEzo^d398=@wNOop@^t%Wvg+r7A z0wYKf8_0Khr6SQg;Wd-i zBH3et>wg32`dYhD`CMM3pBz|flAV!{Rq8r~Rh77|&MMJwruJ)fIpKHa2?b0M3w_!r zqf9ou_I4IW*#>4*4nI*=7w{?N#_4WO~lB6pzG1}7>C7)MR>$%Ra`0ge~*s@oYAEh|jn+me9;W?jY~Niw*) zi5M5}>;z7RBRVb{fKQj&N<~2?uv+Uy>_sabd`w7j`A^N!!-`Xit!Ur49b~Govmq}Kl#z9 zV`*SCR0jjnSx!rJni@Vx*Y}DHx9D8To6d(XmwY<00IO%~M;ZyGjfys83u!aBb}GYn zE#ui}K%C!WGFXqPUbuY<4^cWcYaZ!M%Uzk%9SXBL?(QSmFkhjTX4@Ibv)%vuR%&>b z<$MLytN--}5#E!05Ea01LkBMYS?wa&(=?Cj*Em78z4g44)>Fl( z2)IQ3z8xqr!0@nvqH^3rZk6lOq&Ew2l~Jv37z=uDJis)&(W%kB1l#iyE(#nM$|&&C$vHgN1ppTcocmP|AU0mAurCo3xukb*_ZO zfcC-odHe6sOkf&7X@Ccm4o&n6bv}*TIqJWui0+72cthX?2(BnUreeR<-?~u0@f~-k zUdV-Ws>{>I@#MP@c*Hbq&IFr(qt-GH-Kwb_=q8p&`S#04Rjt1qW-gM;Mz%)xB+xx1 zPCOhtWx(wBHflz4FAX!(;Bt*!e*a{l79MZ`KeKMI!vzzE&3}n}R%MFn3+@e~x?&@Z zr?c?>CyR)<+$hK{Q=HgS6yWDKd}8;*qBOB>_t0R*%zS(umse;t@iaZTmuvKf+gsll z1@cM-g$~5>qS*4D3Ar_HI_MS5=kP<|Ls+98)js=*s{V1`nXhq`jFna&SZh{~BWWLm;afmlXw^XY`I=R8fD&g@np0Ya=BZYz%UZGZze@43 zJvu+$>NpF+I$l&NoOB?DsxRto;|2<%zP0^@4c9%GEIH`eKD}Wlx284uGju=P^7u-{ zV8zLmVSWK$Vfc-nK88#{0faQg+8^ZU#3bpnhTT{T*7#^|q!JK}?R+5IPryYs8DP3#D?*&$PKN>Kj;7nOavbAv-<9*@@xHXZwydS zU&|T|8y$Jt5ca}&nF)N~`W7I8$rnNGNVAZ-{2p*fyVxIKQ$^i>udcaXHzu4SLHk20 z-SF$C3yr{5@vgThW@}?cetcS1&h%hxon;_*K7q*&^U?A;F<;_9-1eq-r5^W>=OI4f z8<$=eq8DF34Gs0r*i6Dnb-~A1p3unv*L^ynh+@Bw4bx&PI<{2slMvgNav|V|C`E$k z^4AtW#L02T0p)NbnD5oGE2ib6zh7qO&^*)eRD4p$w^-uTkY~pK!m@yeSjhi=d9bbq zkF~uoTvGAM-_$*saqLp~>>Z9KEn&6EYSNWqkbQqzrvEY3h9$^aQE@ek7&}3_;}>U$ z2lMs?IxwuNWvR0#tGL(Af(j=K5StmK4TwC&KeFatedsr&1=5z6iQoa5Mxc%zO^ggy za=FY#?KrF7lgqnG3i9~gBDv$_BLotAn^6tn74nqtVK(_#yC!2|5>)AnA_Q-G841dt znPNk1rk?@Em2u>9C8X}D)bpfTlFTPcYv59$4oB}okYMZwjoFX2TZn}m{pGcAf(SP-VpIkIZs!M94Xu;K!A)|tfb+YiR}_RnSN>ucvg zf5S0=pZvHhD;O1BNIlWX_p*ds=wbK-w>IMU;q5KC*^<6Dt*&SII17vSclqF%G21yX z)*|mErXVeU`H+)__9i>CK+hKBJtkUc-LY_&?o}CrVOsB4@#2x>p~fKt?~YZ6UvRxU8GYs+Oo~sdwD9n{O0CRS_uMBhIOb z4tl*(Hln}eHRRf`F?z1p`}(gHfRXRFwP#`OWnQqOU;#nsq;e3G-{yWgj^S9nu6AsX zS$+QLjqMh8o}M#ASgQ;M#=c{kP@ifq+?eino69z4KESOIY?0cYbv-aNRSt~%687Xf`R})M?z7D|L2S_9a>o3e7W#cMi9wlDYeY}vNu@dl9PBc=Q8nm9TzC{c-=P~YuC+^x+-jtujc~gwX|S`?%&F54F#1l z9r?Fa?ouD^E`pG{_u|vE*A*1WK1*2yE}JwHgs`Yj-gF!^9#a}k36rVZS|UBZ0&UMR z+gq88^JfXSSF|Epy;sUOGwTwl9yf+*Ny8j1=VlJ6%R;^xn}7EFOvStdWguohy1i|w zY!FSN)Z`}LP2?1Mg&p)zv6;6F_0~C-ut=E0z7(X zp%U2P^SE;sZq51Y+xeNcCj*F0fgT7Q=>D6X1kWOTix>NOD@p1Y)KTo# zWCfnOo06yj^~A$4Nywu`jp?CIxZ(qp<|^OiMiUBOarJr&%IPe9g;FB+r98NGmd+6| z{HHuluu&Y*tY^@s37P5QPJ4Ivh_^CCAB^LMQG=2bt%zQ8>M?4M&57l1gpV zdh8lO2WPn;8rY(R|qBUmEOheOL2jRq-6L7I*fESfN6Pv+F2ZUhr{#<(Ra8aX|6Agu?D#KX*dV z(sI+mD%LB_lnG}(a&#d2pUceAIlF3t`8p_zJlpOx1!qRO9aZEgH=By+-kr0*8~={O zJa0(?h+!@sG};=6B81-7%de^XFi0pdu|#lxMvoqwo*6rb<)i`6Zx zp$^ko2o3GnevXH~Te&j0q1jA}FS2Olak@_UmDTlV-Ei@Fj9%fCta7%qflbI^G+~5C_l7(?UqVj2UJ)!V{73aZepUhOl|2})pEqPN}V4$@W?Q5i2_`pdx%`CJk zJ|`Z=8gR<3FMhiNM3LTIFMigNNo!=iR_{*2?KxIBQ;dVOh}pe4;5*`JD?RQBGxP3q z?M?^qc#!CL`N^A;3hDP>xD?;>ttQK@*^MKmRg|w+*kCAhQ`7#0D#wN?g`Xha;VKKR zhZl(F_$KQ;isibPFc85!yM z4~xr#nQpA%D3a$NHVIa5Fa8)}-mBm|=(lY87WQI`3W1+^F<$X;C2gJt#aW%01K88C zQj9KXIhxe46*d^A@jXykbyrmtJr`XuA<&p_Ey>_lai#Fmtk$hkG zNk_QBSR4c|gxU+plf`!z6W;uaE>8OXEC1o=1Djv=cRfd!n2E`BvGVe1naO8bpSi@G zACTJ-J%7`wR_h$NS^K9n5r(&c7zpj9IiJBlR!Vgx{yY~*Ji4dQe`_c{FdyPL zVf^k^Jn8iTY&jChy+g)&(}A2>pNG;a1fG(90^`Y{W#68|>8rDs=__dX{{H^K=PFuZ zYJEc0j?5+cz#^(=;o0S#3G*-DLmRMuDpqTMqLSODTaKk6P=bJhD36exrBqX?Sf?wQ z<Um0~Yv@u2SD3K9B`9VIBt>4+0#EXzj%vp#lt(StxoP zxNiKtiuq5&^?L_@p2D{`XW!lX$|h4LtsAeRE7%^D$Bq#9sHXrs(LK*cP<=m7(#`N? zRS8A@sYB==kA-^|AuhS#KzRSuQv5%%_qxp3rzEQJ_eX9>u}=)wR5sJjPZ56{Tm%|F z=w?1+BW?U4@tR^z*IJsM{AslI1D(nTzx|dnO>p7G8njtzNn8$p>@Ii+{G~1LZl`># z!6>`w$k~F-%P^}}hR5ppS9|C^zxt*pGis zlIh}L*Lo7Hbr_tLwLaRHK~lu~ueN^bseTV^<%7vcr}hHd2)saA3N0`oq5Mru2aOIs z3;NJORFMsYY|lY9)POsqe{1Y6a9z6+{r;5q0Z?6f;cSuhk4*1!T$%e3iGrD=1g?b; z^0oHq0rbkG7k25@j5w1(;KqsHI)RYnE#fyi;_LrI5Vrr1AT%NRm0fgT8}msTFHf}q zj8q~CZLz#`K`neWK-f+0yyABsZ(h2dM6CM15yJ5QXN2%Q%*qsiiP`>{kq>KuEtDlPVoN=62fQH%t$OW2rB&U8E;YZ=6E~f|2vYxRb_2GS>i{`D z$nQrNXq`iF2-W{@s_^xe`+u)-hmaBc()r*L29|mJ8XO~Ow1SvpC21(Yc3WUuLP)Xy zHAVMPk?6JmKTn9OG=ZC8BE+aL@S4G~U0uXKGGF+x84OQ?6LCPyp4Kvo5It)`3_y^= zM6rE~ilF%@hpX;}Ht1#$+iJ(GF>LcMz!zHDMMDlIL9ha#BU1bH>;M{~rfz7h1;%v|s0vQ0b9skik_ed>jXmr9-4(QC1U* z?PQy)x|)344ibVb&ov^c0kM@WkjM#Gt7S<@gVr(&)b5ji7VO(YPfn08&Cia@yZxN87}JOKQeP@B+?G)SP9~? zup~bI4 z-i;3~*=jE7lDu*A+jWvE%Saqg&uk*;6n9QwfRSF)PJ;LTPhQ<`ybU!Rd))nj#W0uG z0GRW8BXHe})mQV+Edrl5WSiG4cAp#d`6>2u8?-q<$BhQ4_8Jhaj%>D%Y5KIXd7qzF zSm-P05sYA?BFiMjol;LMYfpeOH$GaLe0M|3ywT~ndQd(bM2>&w;P8VqYASEI4fS=o zWcS=VPp`M}KKt`6Z&HWc3WsuSu1hFnPQm!bP{%clB(8hroFml6`EHhgQ#;|jm$%R? zGOJpznTMO;syMr-`YqE&-&ez2yo2ozfi_JX1`^hO!@EA&f0glpl&yJ)0gl?{7}3yb z8x+;8)TH{98%7UN#gok9=sx9LOYT_yof4jx%aKQE`7z#XJz`X%4R2WLXSa-sbYa!; z=eWcT=e?Cq{6O~V z>gM04FFQJJUSA#M7M<gm@H=xl;<>HP$V^stVKg8`hT!Hcg0#@W z@75_MB-D72D&FgsRP(Y!4(j_5831{Ar8ihmnUy)uJga57Hre{@?VCLJL%o(it5@KD zWd^5je@0rHy*!=*0{13wD1UKVwUe&f^13-aL^ftzPhhfW{sIP zRUBcXd?}81U!cg>M=RVGxpn37?mv3=j};QmE`!P}FP3+i_1FdVlbKuxD8)YP{gl8y zAI9=VE|0f5GtaAkF}@fWb;LqKjMGi>Sqa)@N*|S=#XX@Z`Pqr7r?g2|37#XuY{EE1 zKIuj@a>Ws%!*OBho%o#&xmaE$_0mL=UerD)ecAQ)%mO}1W%vGhwVQ=|<0dEv{Rb#q zSV$`?Df(Vhd;LL4hjA$x_wY-=64^iuo=jLx=--QBB z5jimXxUvVDsU^QXaI@Orw@$;|8qW%qe(I(@$fLo@XvMVC+e}4gC2s)yq}bqW$PE?Zu&546YXgLyhI77obD$qpA{+SnZ}H^jsEuJc#eFKo#o1Tt%zYCdvi`G;`bS&Z zc~W1Oy=D139*);NTAS{Dykk#pZ1z!tU~JXnoHErC7YJ7RuVlRX{RCZZEE#g8^zfq) z!)!HVynPvOhm$m&u$=6;tpp%_h!|(az3Gu)RV?}QHnfW2nbR9njmLDmk9phj$zV<`ywTd_H`Ur&JO`)KdzR>?wtU!8S& zHX{^h(?0_3-CA(@f(`3!#DCJxSPUT@j1&9!;C`|TQW@N0M~T5nz3 zoNZUf(Z-djeRQqZe}5n3yqL<8jg#f*Fw311vj_7EH`2 z!>Tc5_^6(6!=|gJb_eMEMMvoSkbs;QRF!zs)3xT2GHBgiioj5@f7Iuhi>N1Bkik~Q zj(prPF!6~9c7I2k7DTUP@R4S2xPr3lvkiU3MJMR%>Z5D8rP$9JZt7eN0VWfWYGl{w z%rOS=GQ`yJ!W+`N&>A(z`xRpB0{*t2_g)?xvWb-BW+%G$cOvpzJxeUE=dIIc8YXU# zhc32_o=M<%qgxd#ow}AZop!lhwcCGPJ;gD)Bv-UF+hQME^>78>C+F>eQsP*{L0~^? z2vt>MT`RgGGW*A1XitmFQ~QH{&P`7Dx@McihY<8qH_^!ickl}Xi@cQkd>#P2jm&qg zjrAH2_;bHTFGWx@*HBTc#*!RiwoP8aftaYUlMzqdBeWjUK)@4dsz45;A#8=%Zj@Q3M!GuSb_p?Y(@AqL4o2$}4O{ zEat}}>tVgBxBDg>8v=5BC(P!a3)4%%@8b~t^$rJI2e)y~?X7m$D*s%(quU*Ar zawK|tO5?u=+Usv0#;1Z|vmsz9(EZ(Uhe~l9g+-^$xl-H4&zU-6{s?b;m9xtMYXQ_B zL6`M+Lb!s=hzyRIeY{#1oPt$1a!Qb<2#Pch(+hH{tye=7w%>MypB2@ppFdv3eWeXw z{gBr;<6?Nz*2<4vwbu{y>CIACd!@_;dKyS{RQ7~@)5Z}oh0I3=pUS^mK$RV^+6rIk zDhVRdX$9GdqEx8!Z=!OFO6&r=;g5MH zu0-cspi{700>a^|u5_^N-;2m!qj=RQU8R0vx)-oV6n70W2j8y^CyL@5iK*bV{dNGZ zo8DhJBr2Mr&vt=}Q}S%wC^Ko$7==GGc)cnNH{=`ss?JakYo9Y5FYsCX#E)S9%`oBE;hm+^j5ZAKNd;PDVkrQXCbuh{7y>lwMU9x0?PifxVBc<2h&UCW$)C* zCQN@t#XCEFx@YTsM&aMrUmRCEihDjM{>9T=8RO$Rvx3`;>>j11)ANaa=PrM^RObnF z6~mUlwhQ1mbgmZ&35X{%lDY4Rt`l8f#dT-tTs`skgXa&n-^SU+r1Z?jCz*oQG}mbB zu#Ge5`lF zM?abjfcXB@X^RUYYwJG${H$)1C_*EN2_r`BrTbHdP@7D=>{@xn^k7cC=|!!Hh+L3e z8QZD6qM#x|^so2uikk4$H=J-R>x=B)Mn|#7LkrIb@w-_k0yi3(CT`f*sv32(Cd>BS zb)9M}`nxu9-k|*DNa=m>;b1Fyr}=`1k_r0qmFY`Ap$+9SDVH@bDf0r#|E^ti1m8Hc z40iO%cIV1^jz8{IA854l8`y?ukWl%wP;$a!oN#m{NY%m;7*=jwny0^*bJ&X!{3Ro% z)3mV4$<+SrV3R9M#`4~(h4kUa^E-WeNy!#fe&?jRJ>KeiBm(c*o7GdFr3`tyt0Y%o zdS}mB<^;s zQ^iQ?L5mYh_K*Ib7`^mcKP(FAjuS%-$aCC8FNd(S$O`;iFGvJ$R^*`Pi@;m6W$gsM ze_6q_R?OUZt?DLun0x3pBCGDe9Mtd=CGYp!wpo zc4M&hN&r(;b*`9-apeIp#-B@nKGiM&{T+bX+r^f3yLw{uOpnArxGnnwY(l+xbLxQe zkVF?NyWkc2=r4wjCPDT<>_cc_Q>`Z#5D6+uW%*NWP3k}iy?@vTnG?W7hGSNKF7Bi( zsMggY?T<3F0Ca3UXjrDPN`c!Q@&(Kbk^m}xB1@^F%gbqszs;rLK40VN2=4ms?L|^L zQ+SdlBiUWf{6<*cAUo6L`#Cb*W_Z=Sfhw*T_el5yoTZexfY(g+EkJ9gY zx0MWh3+aW=dQ9p$3m2b08&<$;VDZ9$q{6#EIHgy2+8;KYgf&Zed(avJ1a zWbB&>exVTNi#(2`6aI?$>;nBSh@n06z}q$YoRxN@k*ek}=e!BibYyTFADd?@=KNgr zm+}L*MVIxVJ@$(^%!tcoH;APbN7<^JHKS`o2!~`fr|;*l&JB$5zLnb$__>R<0KOkJz3 zY&$6F`0y}S=^*}+)@pjA?8bD~ueQ9cF`zWW$hM&WI<%9*i!V_lU?T>1 zzUmt(F}16S)BpNOVob0pX^c9N%txTk|BkRC;ssu#0`H`WtH@o77h|~WofiACxjt+D z{zNqtaa(oBBgo>WiVuq{uTP4S+hmdHw=g@a{5s)%miO*-ao#lLZd7?|)TeXD?xRI- zTJYUh&j=c|90q5k7HIuHGP!BH##IvDk*GZeWeU36UKQRGpc&(^W*&qi=V;{Ar}a== zGx03O+jT3MC+ieD)Yp$l&Gy|llm;*JnXKaD(Gk+K2pTQ1D0w{V1+QJyis|3`KM%AC z_a_fPcXy29oImW4Hs0vZn?EY=XmHI)$?BN0ovOeU?lO#KU>9GNul=W~26!97A;^4e ztRIM7Z|zd=3;ZrciYvRKWzPNx)DsBMyWXn4iirIYBx+S97?bvZXR@o@Y5H1k;Dsc^ z+6gd-Q@_pBGGh_I^@hYoIZ!~{6}9~sS~ zLmC2TqP%YCM#_u&Zkqnv*B6rg*(;C<%Np1evxwB!9M=UY$v-D-LwJqi@?>P+I2!5& z2nAD0@Oo9f%+-Xl-+a4J^qKp&ht7`9fu86yEj1&HeuUdFQeVma_3o*;xFei~nbkEJ z#9t?St0v61s_S>4ksI;Y=(<3Wf{awJ{kEpdQA$(Z0$nlqJ?v9@K6kr{J^0p1n>CmY z<_JEN_~7;f`a3~>r0H|eoIAP=_Hv0DyqswX!W-gvRx!8z8lFrFG({@ES9hmSe-Hh@ z3Co!7PZ>w1^3DVtoDHp7#(CQbXo$4Nvg@-!_nYba5eq9gMwHyan8dGu{_j7G8$X9A zd5J@YL65K}GKXhxwe&Y<*V(O4<&%)5_oTPgeMKi%L1U9H_jk0bfs4l+l3{qDwD z$p&9@V#CX(JVVIpv~b^95$4{NIf=r=ZS&H2Uj^Pgt&o42XbXCk#_FyVdGV{UPg|J0 zEr=V4IikbAzS7wq)4&j)aGH%M+$hYt*+BVpzS~brExu`YvFT>R02jzf=Hj`9FN50~ ztJAanw^zrZ(rYOFued8xc~QfI%u}Btt0#U zn{YK6&)NMMa0fTrMY(Xk_icFiWMprT>71vIcpv&3LbhLfIDL#-x^23xpX=+&M#U@7 zzXl{ks6wv(5_W_5nnQs*Vt_&i9kIYQ{zzs+9A*Um6?Ck-EXlm}-Sxw-XQqY%()^Jvwg{zhQlT=Jm2JB1+MUB ziz#O*JO+mtZd)2)lf7!k3){vkd<{PCs2$Mp^tG?n6Vuy;w@K`z-o}LI(h|4AN5K^k zeDIa9BZxJju<_FmkK6y55uEx<1xbwINjZy|IAotZ$3lAn;!UPNb@YwS%R8{}3FdLX zD9rj&%vuAQzgpxE*q{gY%d!iD=CA7j|W#_7wu`$`N-CP3QYL`O=^bjIgzEKY6< zp@s_!fo5*I=o8l%bbU;@!)*^|G((Ca<>O5X%GHu*n*>VX?iS*QqfxzIfx1pFsgk%3 zV{VA&X)0Oy$eyMm_fCt={IUjT%{Bs^=HtG8_LygI>pW_`G(nSY6Z4UFqcm?TDk4+b zvYv2giML{@Ug{8?>gAtpDPo{OW)1Dd3I9WSv5%K!A zf5QK>Z+_tJv^0{v?d!&>hA#=5)ydQ+h;AVNv6d!-ZnbPT@KxAe`fHXu zKf3P(P@r(eLH*q`En6PV4ZXZnyPx=ESZE(3|7bSN~Do{}dDFOciz~;#AGyi(R`?di&HEv?cRN-MCkMG72^w>HEDmqo+#0=yd6m=JL1J?0%|GUWy&M zUbF@OdIc6ad)4XubIvkmef91=)wXEFB4XO^%!(LGdK4s_-otT{c5XTu_}clvY_H^? z07&D=Z-qr7O+XaDnXU?ZuU)4tiJ90FOOtq_dp{i?Y_Y?&jq(E7Ty*{g+tAUN`F#)% z)N5<4*L?Yg)1PY@F*K#Gh{zyO`YHJNq8Lo^d4pFk>YuD^WDN{rztfrtAlhI)?GK50 z0QDOAK!w%W&c@ksCyx4aFQ<#hg}{0r2#68kg)TyB8unJORLhCwi*(hj0c(E>)w#cG z`Mb)hDJNwlURz}r89)D~yAe=$k<>WubsNs0q8lbSq7hEkHgP%Cmab}+F+odhO3AfthTMHf7KdHETzoL7w30Pf47*+) z%WXh!1fR$PMebGmhu;cPK|$t*23x|xLfjgHfqxCoopvpRF&~X_f)&;k?o!>q z$mYEd+W#6fG2b02J^e`t#BZbl$qx;+4Q;R2;I);oleY+cyxP?Zd{kcr2#$f#-ex3c zaY)u9khS&b?oPz^NQ-{QS(#)i{-hX9R&t4+WG!9q7Fs zTc;OTn;?0m?cIky_r&?j%hv`mtYB=NSE@NRDjYolHZaBWcAfEX z#u){_=sN>enXq@ZR3!yGsi%A5EB@l;r(n9BaZ^(y2%skQ9n0gFlQ9oimbJME?; z302?2Cj@&fzVf*pzV$!cqr8aMf4cThxOahS`E@P*_HV7OeU>bBO%3vT{|#y%_4Dy4 zZ5AM4Z8(~JQbwfHi%)qT3r%N;>>!iXmivbi;>%5HDv*{twmN(vbJgf}rI#jgjTcE5 zG*{XL4jfHXOw9Q5$d|7y-sT~0fh3-~O&IM;Tvr}fR)4C*#dac~*xVxOAXxMKnGbI+^YPD*;a4n&PDCZqH!XdeuT`zWkSOG8RJh99 zRo=Owv&ir+xs46`_WSsOTx03|hAaJ#pFJpHRS~dMaQ7W80#o)`+Gihp!s^|Nog?x~ z4x&sKNv;R)o4wlDa$E1&E4NdNqI#T?TN5`(uy1VO=VcBVop!C?8HReja#m9kh31XNx(UKY;gK_0vvb4YCo}4<;ZgiEbq?$rL=g(d6KZX<1C#$BtOxlcl*m$Elz>|B|G(&Z>#(TasBIKPML--8DTzTT5tQy2 z5orNw$x-PBX&4w4K_vyGW9X0=x@G7Vlsj}@Z+I6tqS?Iz^wrZUxL*7E(Vcf{$>a0oA?YEbkrn&^Yft!0!LG-2-#T=xg}KtF&8Eyt8M8p(=g<{-$Sc89co*V zN#ki5RbvED&k!mULhts3!~3^8xf_)T2IpmpMO|s*n|Bgfre)ms2w;`O#9T<=9qXUX z7)$T!CZ->#RtFyC$svHklcDbH?vpMaIr+3^^d~nm1x;P5>t%- z{%=vbe(8#_p`NKYonNwxx7n zmtdCA+$SOv=`jlKIVVi}Q0EH&&8|w7RRI<^UMAYkoBznD_Mw^3qhdvQd(u;Y>}ENE z1UzELUrHIi4>7uw7vr8ns7T0E=8cGRAe9Q#zDsk`kTStht`WKGnw z;iy7zdi%Ubrt_0$fQrOW(7XBuA@Hg8kchBeQA#5rnhK^(V?z`00ht1Ee6xn6!*QGW z+v_Clyb*pK@d+_n5X{%?t{Iq0Mwv04sJuOZSas^H6U=4OEp<8B3Z|?4?xdPGoPGgs zhky=AcL*K{FY(%KVX~!c-`;FO&L@NG@Q=4RM2=d|yLtkjWAT5Ua=VW5RUsQ-CAvs) zhLk9>8$fWoWP|VDSR3xUS($hoXwjx!be`2Fu$7ni_90%@{~Ro)Gu=aVhdFD>qNG=3 zPe955!xnFzvhSL2=O#Rqr8|}{Iuh_ELBEgthm^O1+A35CAck(rQiWj#-<%{=0o6`- z&Kqk1VDDQV>_ZDhhcLrjr|Qxpqan{5=>npRT62}I%@cFxs=b#(msuD+B%&GrW_OJA ze~~{WJt7tLl_(1nm=cp-^4yXH1y9xJM*keqPr)F{C^Ee zt>g8Z2pDUexX?9IGpD5L4pFtbxZgnSx&uCnb1a_!B<8tq7$rvD6k~pO;zK`A>83!i zRL#9JOS4ofB!2lwH@W=ud6CSB$1m?wc`j^RtP$q(`@->7Ia~3QR4x~lX>fGN+j#=e zpmA)5?wMD=DCgQxoKZZ(zpYqLlDB6;j~A$VwK&s%6=lup(Q#fFY(ubVB{#nIUD^t_hcRB{(P7uL@t6#- z_ZelQDM+u1&P&&Ya6HPQ@QxhWyy6A5F87G%Am}N8^Lx-rEN_!@u)6){G*hn2i^jXM z{v}4(g8UB9wWs@%@gN};cl=JLpZKf!kBIM!J{F*j29QcxDPWYfvf!U(m$D>>Bqq2Y z4DMvFsS|fG6h_2Kh{M;^C0EJA$I~}MbPK%1NMnGEI!6Ol4ElLf2AabAlZ_3>%mF!4 zQM%bXe?ceqjlSmuQE437*$mz*VCs6FYB!}*CRFf=?i24bX8T6UsHytoV*jTExrEMh zzqo>nR=jd&`QVD@s7@koFXS=ICuU{usJkVfnGfFNzTu^(jgdnq&%GL0Ez$CR+#1?{ zc4^}Et7L>NYSR?fbP>CC*javUD%6#|2K40NIOWHMs7rLY_S!DZzM7hFJ*=v3z=x%i z?TCCEI(ier4smD^&~tPxurSXi_uzI}@sPVTS|?^h92sgI#%M~Y^joy5m?btROR0v^ z1oy(2u9e{7=yI>lb1=)EgsIQnh{d-JCp54|TWJMiY3*--Ha~tIZDYmDalhu34z7Q> zHX)h4mliH@57h&Sbq~A@+eq~ks^UJDH39iyhSn;Q|4LwE#ory+MUiJ@5l9l_TI_qi zGCQw{r4ytSZw2$tKt#6yKJx*QgJle!nXg|Yvpx1RcZwfU&28?>eVy6X=1l`Evj(9_ zGI|Vg0LPR%F)H~Nu>41)m$hyT{vGLCS$GDq!;Mj1(d?1j|xA|)#X~5y2S?%zl&=B zC;|;5iQ?ulXe$+Z(*@1;l543gx1C3ygzyr~P2z*1?;gP3^;8Dr#z^fflS_DvRBWDV zVQBiGRIS?C{?^ZaOE?D&h###Paz_`mtY7*db3#~jZ6)f;?!k7@S79-zWq2UT(uMSh zV5=cNuTA;H@V$vg#qv{P4#c7SiP5aRr;{P3>PsK@KQd8gv!+iX;O^gsm7e*rJ9gYD z&b~-F;TV1yK0g5MY{lelpn^*vmX?L#xiPWkCTo&W>>R|_Bax;9Hk%qlRFp>uS?ps$vR#W-%?cl1~3(M=i zQN`^5U?SM$7?Dl-1AJ!;i6tMdU4HCIxvt=4DG0Bf-e;2iW`@HvN^A@o+Vb&^OllWc zUrGXX$?6eyLvA*HHpw=wJL*RO^N3j1WcxC}bDxRq5Ll$tnJQblbpDix7TtH@-;W!; zj>=@WN9*?O?uN%-jvd>iT(w!~X1k*V$$UExEXbUD=HK8ny+@n?* z5u_j=-Kgc-TaAM!DuMFVY;j!RmJtz)%+1&~VGE1;JjO`5)Gyo_>xr8(1b%}aqUjtf zg9-JIozVp#Jzwp!6@?OAKDIQz&{gu@L1*ll@>m zL>;&tg6K5bf}6xEFVo9oO->ZYnrO2?R+9r-^g0;}39?RaCe`yt=VHGk&&i{%5FptO z4Rn^4eV!aRG(@z-?Hx#S;K;I|C^N^@Ovk8)WSe%{LA->VKp} zvGq>Q#J-4NO3XnA|0;M<+Ty!#f++VL6)$)cGV^w!&S7bzLmBJ8uV2eoG`$G(e)-(ure8tK0BZx<nALs%vo zR1I-jX4#%H{&lT26gKEVevZ6GOlbp4#ln5 z2i~0C2JHzID!IEzPzjr^50Yxhu|>d$huuCqf&0%Z<;EMwI+PYBD{6hQpP5M1n8)4U zRG)p-{rd}UY({Evc3-)8{F`jJ8J!<Gp3whabcQEnyP z&NGMHycTaW*IYS!TY}0x(`?t~EbjXDkOi}^%0+&u=zbwJIDDO{Eo3Lw3+n3ZH9y~F zn`<`2-pyzR^Grn>aM<{Y4bX&>9_AhK=J&)a4 z{LkNb{3)A>R$YfTEloDfX^V+}ygXiX-5AWzD-Ac+`zXuyk`l-{ zs)Is)H=lnw1CbFP9|4pTFoohl?#ZO1t6?wSGgE1hwsx`+*g$%`BQVgh`p6MNE-zFH zWBTJwq!QO)G&g@c^fxjp%tlqaqdG7?=$L%PhSUkIn+^|o*blKE{a{5=`KOLG-7;Zh zzT0W%M%(0q^`?O~-@G>0f%jHL|K?TNVxz{P*FL|< zLdgA-+hw5yL5Ad~4uY-9g~C#dRl>qGIZKCbT~|NK+5}F!0^PQElWiOX!Eq7@C;DrN zR@MK|e7G;IqPs;H{1qAQ&91!m_^@~1{N=dNugS%l+WhyRgJh=Lr zyF6Q2jExPZ5`I|%%){{y?@&ocf4_#NZSd7y91SGHonRAjk?i&R6218Op6iax!fz@+ zhBA}5mQcd2p6KfB$PiO=XYzRk=QFNe;J6*;ju{|4NrRbv?B9JOxJ4E4%!cu)aGodo zQ{-SQJ1($ue(hFG!F(rn%G2^&)leLt{6nZ7Ae0N;!)N*s@aXpK(?TnMhsd`W{&|3$ zT{Gc@`Hjy>vbQpK%+;s-)f+8JwjNS!$Ps1D9o4OzCqnLM@gy}ifp^KkiB?lE$khh! zM=KnOQ#jqOO2=f8g;F=JqB^o*3FN$n&+1-f|2&k-VeVN6T8Df!I(WXoRISt@3#!*} zL48pOAZWO{wFSQ>w6I`*kp+!JI!B7d>_X*W*58%hTE97u4r)uT=wPTH3o;pjvP#ed zWRokpdBqlx!TO@}KN$3harP)RLWZx4%|(#4u+N&XNLSR4Ts(g|eRaj!lP%(Reaizy zTC!j*JohrtfUBqMeANfPhl2y$sK#f+et5@vvVh~-=&b5$^W*a<$SFb-xhjQ~NEyJ} zz<4ay;hoN_fc7K+e>?{mJSmggrxm$~iJVsDL1++>Z>$t?7a3NJI7apB$Pe^25n`O$ z9!JfKTeFK;JucrF-w|VOzfkcrx#a4*;TXW};T)CqTaBNx9A?Ln5#YTr$m~DnTQxj8 zUu(ayBajzHHAl9q6YqV2q#$rggXJ98pF2>{c`2&&2!0Ra`NK2>Dr9%2UUrRvsyE}Z<^Tb( zGX(ME7R0?^|h?g(OZ1X@$t3(xD%?q=^ncf0gy$i4MK^cst74~<#DK)neLIMcOqG3=X3?_j4Jlvv9a z9o~-~t4l137PMcKIm)9>vKCC%2wGWdf75<|S(aMhF2n&9C0o>m3`_It0$n$i z|5|Rzv)<-LQCc)?8XST_h7uIum?wDjM#+yEC*GX{+VN{flt7=7Od9NcY4_95YKjnq z0n{i#pWI!?v<(+{GMnO`GODD1vVGZld$6TCWLsf($LhM(TqKg`VUN{xUDiLcclHfF z;pO^;ET%s}ad3yjFHmch%JlQ(>2@mi#D+(`N=i|1I=(c*G6oT?@ilEZm16I;9B?w^ zilH$ZhnZlSw&gVUr0f2w z-FsLHTEV%+Ro+asal2QH=rozcYkUU@u;Wg)YL}dJ6OM1`6ba6raO4$?x{5IGS|uK3 z=2uOlec7bvFQ=xOa+DN09HyPld))o4RU4|BVzzE;#^FNhe!?`9*o!9V^hqMa!F+$AzMhd#XK*!i)^yH~B`9)=h$*<{4n?T(!try>d_dp}9)C^5B z=tX9gZR-VZt!GnZH%Qb+h{$RhXVH8wt3P?Wzx&*j6jUM9N06ww?{~T-SJsde0dKiH zRiya5Vg36}B&dOYmoJ7kG_9hnTJn^c89L8^qGA4~(N{hqn~KLxs9zq7ZjmB|q8d+)pz1Z5*}D`2PJSRs;ELp=}Zv$GiEt;Pd_DHQlf;9UW@{f%izy>>C@U zT&|w9SX{AL8eSCzS)3lmBodwB9W!Z}y^+8{Zf)h%W08$He}GFNfp;~oSt|82SP#1S zvp8gInf~nQv66pPdX&HoH2-@LJ8f|C%~e~gjI;#fU{KX+poCM2v_`4e=~2Gkk7rRV zbXN|!C^$`I{L1~^#teuB@T=V3%a4kQ+97&7sJn_hmV?imf6cjGNOF&aQV=sIKe@Ns zR-Aaa9a62>E}kGp+OXn3-i#5~V{3|3tBViy5T&w3-G`skTpl%~)#W$s{%w{bebf$s zM8X}G!!LCbf{3y2>{6{e!*1pY`eylNV4yUP2&a6?W}8%!0?QDSg@oV)a6bNqS@-q~f?(eA2LD2d_m1P8t8AGe6)lhiMA z?^G9Jy)sM+m>ACeW9h04caHUABKijZtjgYr6`LSff~%3eNiEKLg|BlS>87Nhmwjoy zNCHGeh=9N3z?p*i3-|-Nra3{44?Di}?FT_72h6bZAJbDwfmsNzLa557iWg1i&)ySg9q>PrI=x+I&c`cxH)AdV5O+uJQLGoPs8~$0!c>*X0&( z1+U)6i4&=QW(MX3=Q51YCz#r*IieaDKIkk1;#4otf!tOQNVCj7v7Gp;d*@Obm&uO$<_#bAMOutrDUU8gZ6>s<~a56<{Ph8i5Et?)o?9; zgVh7D8K+A!Pj;5n~fAPv$D2%@Zl*n0y1coQ0z;rOF6?fdD&HZ4;mUqA9NfLE7 z)aw1_Je1kz$W_={e7F#ussbO+xjF$ZT|_Mt&YP%^C&ROqKc;YzGs*ICq4QbH-)3XU zQbD@t@!=cb#mx(oue;z{@W;P{J#hX}fDkgwV;XVK`?{Q9R6IhJmT26nYZpM-VBsIC zsX7lzQD2E;l{#iKfds6jr@IU|rE-+BfQL8K!3{X=+nH?Z$j;VhWs>p{59DrCy}<(?lN!6pJq`gjR=yg$}FE!^Jt~rvkXLkS8z_9 zgsBxfGL?!S5ynn30!a)y=SCCdwoDD&r1R{{sSo{u+GiQQymID|*`0cERUVY0LWqfF6-m)@m_{)>4hD>GzoQC5aU-MaD z#G6ECOohT+QCTzdH7g*mm$`Y_>^emliZwBTu3{>;1jxggzSxkuPD|W)_q$%3iMP(y z;Kj%{)Qe4MhS3EeWq~%PJkG~0j}9(GVI{8DA?Hoa1DXrEEOegUr{bo+Jl!>C3aMgg&QtjcMtv>`o@jlPH=lNz@mM5AHl)vtTWj!}cUCRgeo z9F-Y7d!dWsi`xp8{jFv4JDJ2NG2AB#>n1_Q(!nvC^1+EHK%A`Zr8{+`S3KE|F-QH* zcaGw0MH=9!B~{iH{=>}WvHHg_KlZ3yfs9}sflI;@ z-KX_1aeLtK#l2>TnY;>K$yrwM!;?IxXV(TF&N&dx@9GbLjJZDC+LC5fx7R#96eG4KQ52@ncHwbDsx+=9 z$MmIFBX%F!XO)gu!jZc4;x`0hYx_5&eT$)t)+hd1u4XbP1HSxo*|B;PWPpbHW zxwHDtSuls#*EosQ!<(Sn0FiUDZK=+T!IfwEXxbC|QTcW9C_m&7&)`|p`VC1ieizOVRuVF!x1>4b zTClw>)Pk0An>{l)2? zrdFM7M$^eqB(-q1Z$6g)vF@%wPqRrEl$JD1saNekZ<=yv?4t;HX=jmAX(ECEXhMF{ z$9H=zSqMZINpoH0$h_seD-@2Xg>>uQCUByD|21cAaZa=~O11Wy$MVDQ!&I8Fp z1h^A^8#3luLrFJQ^B1>(6u=S~otWA}Tx5760DMyobo(!KV;rcGhK?ptpZ}4q`~+8b z&HviC0RA=2e%?JCsW4g&&#&`VURBeEe7FXW??y1e*pJ{OYIeN3vz4ghRVnZtg7uvX zYd*+ajg)RN@~jAn87JnP&I5xohs2zmMC@E_gw+#rHOgUEeRO7fI5S0I(DZ)WRgWay zK6&WZ)eJmN!sE=aY(Mx-P7I$+_d3U@WGBoc-hs#wiS5E^LFkA-@t)McDhyUG*G+fk zbPp8^P2B}rV~H1et6(x*QEv!O?a_4T+oXfbW1|@Er(-p8!Y}hYtw#b)W=sAXvLjX; z+}98y(3ZaFzNJzY+MvUf;fGNh;W9B@sncb5e1I#er{+W&l%a`Qtl zt`nFHa(aoVXX*@T{7JCZB|T|PnD-gx>pDH)K7|hveuB+y)?C5XY}DOZ!zS z7;DMA6;zG;Tklkn-~&!YQAAf9qTC|n3q*CGJ}*TY2r zfW{ATxsD=OdWDjxEb(UKvAE|x!0!N|{vn`BWD+v9eEQG{j-&ZUHV1g zSKJ8$P>loW=zS~1inkiJ1E-_o89bWLA4_CWBS?ZeV}LPA5&_uw*pPw~kd-t@ofYEU z>-6@(8Z<7fK0JeLl5HboZ1f3<#*5^}ar(FQ>2PV)Pou;Ezk^4F4 zc{A`;B#Ayta~Xkuiy*xFfQJ(Jz+M0EGAF12ZnRA-S9C!t9p4Guto0-CB2*Z>&Nen4YK5aQQh#H>9p$=yp{HuvcIZ?DlulQ1#6q8R=`&Uk z`A+q`PR^Q7{Wmv*<%3C~T&6#O;|&9IvK@#cwf}LeA*eH`9lQRY>(bZtU=?z7Niqhp zbNE$G<{lDcHv)J9j5=y115x)(asB8z5;qT+yL%FW^Mmf20%h7QpjLPfETDM7snVq+ zpZh)&aQ*^Wi6rsbM>iXPUJ0TkNGx|M|Auao8viqYp&I@*j6X>~LTCiC{Xf5c0a?ie z*LfFPL&=?X)O$mI@quys9&HbZz?(XZhFzLsq$1_{ewfa=89CZEB#>2($S`=5J};}z zrKySd?T-R4TyUC(Mg$6%)BLOtL}(-CfL7A0^g$rB6EA?*(T8_I3A}7?|6dQdG7j7l zm~8y&x-xybe0`@{`CYjBtZRPP6BEa6f;mca9`H49(q!o|f^26Ne7X-f1HER^Z~WFQ zrF{xeqr{S^AQ&;&yE*-GT^0A5rrkblCr&Sm@qh1-4=iE_PA_AB0`fm=cnr`dT-_)B z@cc&x03u9Ai9!Dv5$KL}wZNTXFZnJTNEH8FnSx^;LjR9b02rUENL*^0H2nAye8Im9 zKAM42>mDrw(6{eEH2V$$Vv9P7^&c7j_&={ekl5$(hVVa-Nz@UCE{Qi5=jXn!_mAv3 za62H1{1<8@fn3{`OuNeM6MoRn(J~~*Q%Oiay{pY2?XDE(3 zIvAbH{zvxfe+~8d^!cUaJV_Mav) z{+)#{SFG$eXi}ytKzN^ZCh(CCbS`J}r94F`urOZ%EB}Yb{}>!HA#0rc_-y)po!(vW zPr<2zXC-X^$c7Xr$JKz4;%VeC86#)4G)|(rbE$>NUw!nbR^k*=0-(d}(7@FDN2mE) zAc6oi!XJVqu2JK5JHa){`=GVaYg_lCtoVh^w2I7yuZRy^=i%ZGg#urE$0K?_!adp_ zoM;Gb8$XDUHN86@a%=0@jKFpDGxZxtNTa6zkvXIZkcjMmb?M}3Wg=bj(+zePRgLT} zmA;zX#_ucgkF0E1gs==vs)MX1hj4Zp8)8^piK~7}lEC40g}A;49*h zz--dZcsE5ZYs94;5CDTa*5+exb=T7rEzjIO=rlGpsw7AAN&Max_J2l#h-o+1q`qAF zviJ(!)b4KPnLFJr1=Su6OUHU*CdUX%_q}%UjsM7SY34$+={?hQ0lUaSvbRNaee)!W zLulU1xvk#Wg0EGzD-W&mrrB%EjpuYeI~ER!Pv3qT;YY$uDsjJ)*?L;eAQPM*WvW=T z3G@qV>{_s1Y-#9&UihTi!1;yqfV?SQa>qF231eE}4_oy$)fXzv_tzl@r)ww^zG+3U zlA|YgU|m$Y0oQrIhQ!Iw<;YgnHTW0o)bzdR6r*}yuZT1Rk#nB$-C5@yi;hy2fK{ zhS~%6*&S7}v1W&Kl@Fi9=*Nr6BCG}v4LK$e8ShAaE3`$%DL@ngJaz36KgxzDW^&QT z(e&-JUri4dJWrLN`QyCb9)LD7z$({EwQqf9qvh#tms9nNktF%lUKb4% zn>Fs^d#=V>;eL3O{0{j|H~N^}{!=m) zwvmEE)Y9|i;+&(%nr^M?!1TK};flEhf7+@+&NGBPV3;*)3M#3f`8IeG2$|ct#LTmY z^fvbvz9{6yUX}+BG(26ZDj%$J_cYKUQCE|nDY$k12B9`b?=cXl3QJyD{Q=(q&EgG{ zHf=aKGi}~+oJck#!6un!#ssDu*-K~_AD@KPi-q(K8|&})=|BNu@^1OD;28O zf&fi$x)||DtSzR@bJGD}go&~zb(t`1t#Ib)>-P7y=B~s;ECg^sViMYGLkF`X#;q%S zjseJYRimK``|umUb{Met%N-+z)k(c|1Iq4o7OBFplkxf3ehqZH_s?qmN7=WnKZ4aq z-+8tFkV%o7C6UN1ja%M3tkFvbC+T(LbZR2b<6+x=rl1EDVXzRftJi*Y*W>C)N)~Jq&06~@y7o0 zQt@`$bCjzb<>2+epy~X12WLOZ!|z8ADF(&UfsvpFRJp4zmon1?3YF9eXLre2HMrxbSU27VawJ|d;018Yc*ci<>n;ynFlQ1+Z68+M z@9cVA`?JT}LK(ZrB{Nz`hWtTdB>`z(?O9cfC0G09I;O?eRIq@Pcx%al;!L?4#YA_i z7OP+qb&r6=q1OtgtQ>j1(Kj9`hPM?o;+XKSmmEJ%hOqjlMuL6uxT#u$o?NQxACJ$5yzn zQ}F6+Mb%dvGT9rwR?|F#d}?l9Fe}tq=Va)6VI39pl5z_uqss9r{$5z$CXDt}p2S%u zw%n<5``EOe^%r@g%vOHox>rU*8c~TDFAkc^>uzR`?bDqz@6iB#lz&#kDs*$fLe^^3 zoyFlrfhqMt((`~T@rwGlRDEMZQU5tH>K2J_85i0eB0bi&;4M+fxOM!Z>cVS4C~MWI zvxY2N__YZ@9L|j>LaqGpdWAdh^KH9^vt0|CPfrihG9MbEOulNNnLRu|?h^KOX#b{Y zpMr)s`2`+>T(ysc*um$t%$t%hZ}A-Yqh#T#kFa9{DZOjiA`jbzx!67DS`l5#x6gu> z?^*ee>c{N~mCJ8)rc&OR?Yzsqep?+mWodwQ$2FCahSP+ifx^O4XNvu;jmGIoNSkZN zXP)w~i3+sa-%dLfdzPzJY$ksX_i2k>IW(8oCl=3EWIV}Hi^{fj(Tb8>SpEF#qa6KH z4%&c_<(n{{)tnVA-=JSQ4h33CU6tB99`9pVzEbeX(=Rm&;rN-lqRm%}_9+UtIUZKl zkDm!--kE-xbmL`NTyVjLk@<(F&spqDMXcu1XhcaZ04?QU$0=iUm2g$Axjhw%k?VDJ znFrc!Td9`H*&Vimd7Q%1TWV(b7Hk8~5-(2z>YOX(ZNj^XtW8INcvcxTMP zSn~Rmvxc8}N~+&#+?}WM8oqk9@8KfD9IyH^hi?4@a_#J6-{;g(#*0%4KKaX|`Ig0| zuG|g@A5qp4Ir7de+lEW>gm$$1ZW`HT z>}p6hUnQOTET9mh$UQGnu${=nqM%+b6wY*w@0Hd&V2r;Ihbs8s#;x4nAs-a%K(Xlv z(|1W8`u4#}0?q#BOy+LFH!;iWP2iMYGZB9`YQJ&`2n}nKd9q5ux}yG(A{>V{biMuBQ?|vsJrx+$Hbb=f3UuBS)ID+(*hx>KiCIOCa8}+H0S5m;4m5XH$%* zm+E{9;_Gb#Qls(2pKw3$QNYcQLQElpq8!spK(ad){0J3#IMXo{GK&BL?VitX$SL|7 z+y{CTK=^eXi5Ju?x@v{%Lg3#N7#mG)0gd*4XEm>j8`G^y^vZSh9~A_K+$121URl@l zf2M70d%z*2IwhABIVi#aDyI3JAHS%=7vSV8>Gx1tLBLmp4JH2C%OY1;uf0^ys@DE5 z3&E-BNkxOG-RYcr%KX>Ox#CuXXP^{vy>0U}pK%M$6H2~vi^dN$v1@D_HR*{N+;*p` zI*GFV%0cLe>FHb!bq9RRnOT?ScT3W~N8>2ECy=M@%M+l=fi+!eeAIE0amM|HlL+?2NO?xL88RP&7xb<}2pxv8!Gm6-I%!X&_kpT4;srSX zD|YWf&7NZu>$7A|;n$oK1l|=0+H!_&`A&04(dyED&Xm!4v^WP%&F42V&=IlUfqZEb z=$@k~b}Rir@`5HWv%!qhrq1F{PB_H&oVPF9u9Bwx%&!Phj?J^1(%x69R4j(?Xt1`Ni zXt;l(sEv6<#q$Kw(+ePTow4VV=hvORKFVxoWlbK;<;sgPAEa_|uDH9{WQERTbvC+M z4TV^~%mAfWZ?J6lp`7q#5D7W{?yiJ%WuVNpmouJ#$*e`&t!+#}p3nqoH9on22cBbj z-4S`;rDB%T-&$Yf!^Sx>_c6@6#D8Sp2l!9tdi9l$jE&z09?Z|HR?c^Acs%R7^N6fP zmGVm4>$XWB-D@x!U|jlRS=oc|V5iI7S20J=JB{noUGq9N>^D@CehtTg*Ist93$)^l z%9On9nXRljUHe|p^(r{uL}!j+E9W+~{iO{)f&PGIlhK=>QT9alZrPDiAjtO+Bb96) zrxQp)6z{$MXmO}-$^d=BvC&zfE=1jEgm@`rjujh=kq44hkk6>}D}T4O)v3!3=Aq{! zI|B{gG2u^}SU-#oojb1{&Qh#0bsc`aJZLJx9coEowvv*nyI3_Ib;Aa*FJ?@rhq?G3 zDZRL5c&s}KJu;>>9_^i*M06d7D?V&R7{xpkLV9oWa0c|y|8m_jeyOt&{G-b&=meUw z@%`vkM&~Q$9{vfd)Agn%eY1DikU((ZQPiU$3I@t)>ysh$=gwG0(l119QdP*g^OdpSp28fNu zBwkh(hy40S#_EHZ^;5?n_9;tdyL?0odcRNa@HB}W|Dj1`?|3;>MgComc6RZ-a)=8d za7<8KE1gDL|Bv_IpOG+K=GQvM?}b^qK9rG%Cupk9`#_Pr$ndF-1W6KN0D#~GD&G}8?RGAMVX_`PWLZMU|c3+ zG)KL+5_ooBi2Rs_t1Q)_;BnssuL=iHIXn?l22t`>vI@<3GCyDOXh&KnH zMa8SxP5tIesvk2OYF_9zvIsXcRknU&@)udqW%vC^dRW22NOHS&?QhFQkR^0g!wptp z|EV;x!>HhT;#q@pNEyj~kR^x1p8w{87c!n)C>HF;D_yOCNnHEAzi!879WT*CJ5=x_mz_Oe$>vz2^x_PV{qRi124K9;q5 z`}bltaeZ|!8$XF2j4WnM?U+QznD&`?ZKJ|vW7FOL4tgDfcdddjvZH(BU#;1#$_PS@ z0*A4+)HF0Pbe-}Tmks}XbJB-dJ z?{ywCVwj!Cocc^#o0Tzs<&*R;U#2;xS*7Ff8x^AZ`W9KaKScFs@@wTr!+O+uK(t;7 z#By6eSC}nIjYeAN5%jX1C+L$g@_!9q_eX>3^oplasU1h(}3)$LcC`RwUTnr zDrUdZk^m4$@l<6{ai@C4x=bJS6o&MZZq>Aa=cK%JS~Kp8oc>2ZP1-}PY>!^3PJaeA zuzZ~PKQc8fXg@u0%GQ4=bu59kkl=q7l>s%__4mzR)v<_~%M!?kUB}txRd7`@v8J@S zi3r$W7rLa8%HssS)yGeSgmlNsx%%Kdq7XJ?%$DN!#Iw4EB6ia=i!mIsSdChR^81gw zmq_qnD+pU)%8TRq@hBNCFvwkV=en)Z*v}I$`UDG5PbRIr#?iF#@4@xadvQ^4iqi8- z6J*z9iQcfaS?PI2Kq^vxOTxtZ$k<`9A#p!ry#Dl;)+5o8w;|c+<8oRil}VV!54Ajp zs*7p*;K>#5t7p>e*Wj9OM8x@5@*>O5Ax!0}x^$1krwxQ0&hCy^`XNii;jy|(V!hEM8RGD0eJ%OT=8Ro^-9F<Fml*{G^8K^2l(zvz zbf^7<-R*+ZH#{FNdt{sfXsAq03~lNZC_3O&ikvvCiX!`XeiHq__o#zSD?= z8?rwNk1d#SXnuarF7?WM7sq~aWBU+2f%Dc`UW~x;Fd&jtVmci;fp5LW_n~O7kms(R zm2E}Y$bs(}+pX&l7qxSfxizj|e4y=@;C6q{_#)9NMY=~##R4Iw9XG%#t|dU}68=_! z~d>K$HrO5A)A{w^Z%zKNyZ@`w9-cEFSSpi@GVs z4v=dQ`lPX!`hPSP4~n16=&3O1rzfpZKg`X)%EiSX`0hr>RRF{zXXtHExX6#!bl10K z9(i(S2G<2N4XTjgFtrNBx;G)NH{&m&vaHT}WrP1RoRPxvwn%p?KaM^P7kD_Oe{e^b z;!fj0JG*~5^;7wtBqobe&W`g1NI{^)$wJRqw9M#Yvvf}4$||39pTUV3cCT*YbM&4B z|4U+GxgO1}>%?QW5F^a>upB2V-pTCWwLT|L?B$F!`XC0-1_U#S!2!Ws%j|Lh9gMR% zVR(Oae@+eVWkq#_#A-l4w~5tZEJ>xbr_Sdld&FDtWp_=Y*kd$|gX!^0ys@GbxXV97 zRbWo)0KtpgbH;Rpz^gh9flRoYlVpAZ9Jz}Uu`NAKy1Dibt=KYoMDB5+@tYRn7?wExH^1t|%5 z0`vlrfCcQW+dT`P7Wa&`0D2I!yKbNvzn*2AEZ~4i@0FGKlj15WDeL;@874dGT~U?p z_$_#t4C`LL^tEY-FrU29OAM=Mv|$y4`03q7HS&j2H$ntSL1(eImbRMn=ZuzzxNjMT zU+7X+&<4c<&D75cxWhhKx7fmYngPaFvw3sObU&3w{QDGkPicVfwtD(K48Epuw#}O~ zqBZh?jKcQ{Knpoxk`3d+sjZ?ujA!b0;wyX@Sz!ZYgDaaK$+$B7kYz<{ycTHYHJ=xo zgSfzOdajhXMW$DR|H45qL3x5GQOR#rBXHKx9w z?&?6dtQ1-|Sw}3Ivq|X1mVJ&PtJXD=ASh%?2zD_%bR88U@*}!gCh~y4q+K@uACkU0 ztjYI%8x%oWx|s@s(%mo-X#oN0m`Djor_=x?1tuUMITev+ba#h>QbTeZCB2aY#y;=! z{k?zej~(pT!ErzLuKT*r>kQysq3`!_p_;+~{m&TV{4Mu1dt3>D0V}iseeJH4(%EVs zbUQPVpaIoem-XhcP9Wq_KU}-#JL^CFPk6E$eXp%E>TO*c{aGTh5p%Wm;pe1z3#>25 zLfGNERM(WcXA4EmuI)jUx75Ug=6s>T9_Z5oY?^C{j&TxsNy-_uOXWZg?Jqv9a zEDqncCp*vZ8qQK{q{+5Wm@wLU@pZJtN)+Z0KWwpJ$~GND5*lYa>(QM^yw~no?J#`p z&$2GLG_e@H#-g+IYcl{-zT3hxS5dX(PFQAHq9>zq+&0^q;XPnS=WV^dsP z5!JE-b7L;T`Nkp9d++SJ^=&-#75$j->cieuU~73!C!F1KSNPA?=lJ`$vv?j-BNS`OkV1?(*sjKnk-H&3UN)i-wbc)*$K6`w|3#6Dp z=i+)r#>Ttjm#%8d74O?R+vmKJbAQ4_qPG0g^+ERjcFfNlW9^L_#P#y%hRT=XK^-Gr zglU167ykE2#+yN~s+YDaG|nFPBlJSn7Uv36Znd$Ac_XOUO?f;RG3ORHeWBBUBZFC7 zk#dupnD>Kxhg-4%4YZUZjW!ofkM7ZsRQdWU`;38wHbwYalgwRsGy^0%TDIp3=G$1) ztW8Hi&rCsjRvRQ(`eNJ0OpP1YZL=3*%#N?ugUU98c{1bwWz7EzzCUgD-iW(kbO@}m zZO4|}!Q@@^&E1~W*Vj{sBBF@YHl6D9q_^79B1w7C=LI_U0W3+@Q`pE;0OcJ$u|F)x zL#}jX+D^?I>@WK3m^m38z2Tm6WcO)=jC1=;!`sh$Kl0_WrfEx%Z%V^K&vC1W_>Wg? z;IY83u7oMX!@o!Vc-O1@!7qQ8p$u($bN5&aBO4ESEnNN zNbJ_Xwj}wKcnTuVhw>lW3xBfnfXr9|yn`%%sk|5&k_F zoD#@I8N86z5}J(sI*6+uto3~Og5@yjD0AvZO4sW%B8&K0*rjO@SFmcLni9T6F<*_} z>pK&n+!(htOnX<{M+XSKWj~S&FDX4Mw(L;^QV`1E^@%&V*+Wpy)hEC8eS!+VtRr)& zFT}+--H-?h@9~UXox7_RRd47b%55DTj7wa|(acw5>k`YkmsH{l z%9wj~tbVpxyk8g~f^H0!cW;)fyNthTI#K zE8kdPS|cHywY5mVbk7%d4{M*r!^W;Vp|83A^nzGA ztXnVLv%zbSsZ~v#A$uWfeWI;dGomfT_St@>zJ2NC|9B~7Ul+Hbjfc^mo5A^AjV^}Q z@$8>ox_TY>??V20Iy$(XJ^blT)v}@h8axI@2p9X%UbzD@c#~k%Mn1qxahXIkj6?n@ zJCs@%e`09(>XUSP@(Hu=DFSi%Vv@0?p3?b|JRKZMztttyK45$T&4KO(tuBE+0{%Cl zRyO&i>LVvCcBgiV;EhtS#&cS4BNMCdRH~O2M~Ab=2@OjRTzA4FE3>A!oP!=Ks)pQz zjdiKvGnt`SWZ{i;Gj`6P1|=GF?r7p>3fvPs$78Y@)gbhBcbBoAcO+!Nq-Uf|hyWMo>rSH&l*Tw)aOLfEU zWZVK?_eJ!N(fjwA zud{oHCvPVO-n47j^Sbwf9{c0j{iQl@67DGfVE{!4*JtqVqLcC%eLg(uKl3Sj#cySi zCVg!FtKApZ77|VZFaU}vnIH7N5?}slS#T~9!1H|a2`L-H0*_VCHXDkvaQgCINrKz+tL&Zb=Pbe~hKgZp5$ivbJ3!m|j>|3}h!`KRe#^7*N% z$LQJT!usqbV7G6zg68-CBWd~H!}&I}bfOL{NtwoCsuWnsaoOhH5c*=;f3S-A`|3}z zfh#i5|KH~tj$TS%2=RE6h^ED>zI?$r?@YQwcf)EarI}6rO;xSy)YYqZMJlD@Zo9 zPUXp8A9dP%Ze(V-`%$$T>+T~ir|Wbt(ou{Y!t_B!QdZy-=?YP#w&NS+#@Aq({}Cd4 zg}@unJ57nB|FcaJL+<_)e`nec{Fb}>Kk}hc1b!c=LT8G@Pl195kZUrZ$U?3JR)JMM zX&+!Y1W>cRstmMi>{_dB_Mgh5$eIV?_Izk?!~OjLFTi__$cvqbFSp%I++=QE`b@Td z_0r-v9#=Hf4LUt!+9`b06x8}B{Yj0wlFp7=IDLkX>ahFuK0ekWqpcpsc%@x2)~6Fow4 z??H9H5#AL@(n&b*QV|a%pFU60k?8uqR_wIc`BAyy?QjotQF@IohovcF4MtOzLZX>- zXXy6&jVH;xnZVK97@Puq4Nm5jZkVa`T8rshVojP;etP>Kd1R2o=w`Q0062b?ro#-y zwfm{wH;iXWM5H=I6P52;tc=-!MG?5Lu9irrY2spVNmW6I0fUHk&d05dJtZdV?^BzM z=ArQSO~~#>@~p1lxav2enTE?%Zg<#sC#c@NkTs$qIO80vi!c>cs(}yVUIo;{GFB=0 z>0-JqRaCL#{gM3G0nQq1!Nyij)~m!vlP$w<%(xJ7h0IngdA$}XjQKSD9lV(0(FW6X z?JWrK@KZsJ^8Fk|Qw^U*y=D#1T$&O{DB7KXXx+)P@7Fa1-#1P6W{p*?&+(}Xq`!S9 zRx;1M5>beES?R#ZwW^*=y3zH@6Wz7FKi4VU3#KK~xO0krGb)jED{_7KGx)80auDh` zA2lN|J)b$Y3>%7oU{?1{sfHcM=EfE5cKTLWy!+H)TL>Njuw7_jTa|w?ygP(|@#K@^RgstBcxw&x;`1o)NC+;Y~5* zcO$6`A_|JbAK^WqL2n@a*^-Rp!CxMKtWa7J%RVJQd)s-4KHML@G7EWnH+62|X!-U} zwWr!b%C2s*r?Ff8aB^+Q)Wg2)q=Syy)aS(!6zrAbpm(dZ;b>pBxaxi5w<1r=C6W1n z*zzocWo`a)_009UQ$-h7G{{P%#!*D8_1LRU8K#cVO(#b&KO_hrKo;26U~ygK;o^D2 z&AA%x7LqZdUtC|xuicdTYR`-7~E~C?4eDm@fCOhusKSelSm%eF$ zForYEY~h$a6`P$TPuWp1zS}ms)nx&~(=br;HM_0F- z_uC&Xg(%)+S7ev%wF_6kzYt`E(JiwsX-K5n1`T`bZTc6S$ZlwlPZ7+n%Tx@6Rzosu zYqEB3P-QUsg*kd8TTHFe1DqSgLVHgW#3}pP)af&t(R&GUzdPAUwt&!O!{2Ibgxej$ z*G1n9NjMa&z#mlmyn9)u4oY-xp_7U7R^zF-O>u&K84w9mQw zhrNS24yc%3c@SsSfOyIkwvO=;(aZ zhZTFbw>3(OaMYRbT=B02k15aGRh_xYS8-3I>CBLil`KRQy?$12E^ z2f$g&Sj*|XXNuubAt$F#SdmITAmgsCl2`{7hlc2kTh%|ZKXcuWfKmbT^!Fa(gWi9| z)VA@8C2Ki>aG5WgQSv>> zg}~uN6HLTt$w)f+U?cGuph@z%_Ccva#tr6Fbe%mn@d=Q(Y|^fqG0Ti>u?fUGwoUZm zoWub&9>N1`(}&`SZmTGWd$2AS$7hb5pN_ZUuwzLPA#*=`3Cw?y}>>2fGr=EPn# zo9#FSLcH)_=(n`b+JT-46gdb1HE^|0-rPo@5RA7N79oIJ}l)K^CM;9+~#PONKxdp(9n*WTv+ zbd|aJ&yOUd;De}-9Z$1OY`Fa%-aH1Ms60IpJT%yajX$WGJ^d*shcxcP z$Q`-lq|5v0EG6gy47WTCY=OT2989aCkKwAK-z(&w-k+7_+E?AY^3bwP{x)&QIMzCP zPjZ#374bjO8eo?NA#3zb2v+0%(+Fi;@o1}CeDJADvb_#I_WIeOl=VpM5W^2fzB^oR z=P5_O(7XOoyFpxr)Y8Yj#6@<0u`)t0>p7)j2EF#hNBB4jMPY(}Q`yOLUU)4wjtdDP z_OcT@w6D0rMQ1wfBE!YM;}?g`bD7QASU2qT=YQ&^|Mo+(Ft5uzMC`012RWC!2M$>Y zvR%N3nQZa$CLZlJR@nhb4lcs+Qd!qqSB~6{Q(ZRrbF4fjC~YkQvIdSLsQMRK?nLcm z!5H;f8a~=0a^u9*E$asAGd5g($+&Y#@Y!dv_`iTaaIV!ErRrhaR_7_U!b5jxl&*EO zCRetOadzCi(XRgb{MPb>^e=y+6i%%h1EI7Daedx;o4)Vo=QVl8r}A>GeoM76DxreqQw+CH;6<@my6ZnTd%_@Dbo2={l$ zyMYHH!rj<>;j5p0Svp|H%1YryKV6~}C&ycS-m>3)PLZ=iR0N2m;)4?5;QZdO>Y+)N z4Q!fgik-UPn2;Xt`#6&b4`7_&4o~XhgM2vi4Y4toRCj(=k?=T~P5FHiu9^WRqNpnzC>$CTx!>YG`g|n>zLtS3( zS(OM3r5d}fz2SoYxC~^0CU#-9NE!Y7!0R2KAW+(1_V&xW*`lR8L>mJMu3Q<)>92jL z7t%U(`rIf-uzJ#L_wT?I>gO36$SUW$j;OoolxgXjOJ9*f^L&0a4uxOdt<)auD^+lk zY;O2D_iR=VyS37PrdO4mJo=vWJFzCzr7i4rHaqv$$roDKEthGtR9m#P{r=ijz>G{r z;GLy*%1Jat`N@Ok4lUDI3M`^zpT=T^IWU{-Li>V~1Wy5Jqz)F2J`%S^AuL@w!9&J* z9vA3;bUwmA`Hu=(`I1OlU433fy`;;0X)m7j!tt%*_ConBE;aj1POVKtieeJ`HUW?4 zlE*Zg9b-pGDdmS-xu>K)ANhn~ox`$e8#cDi3Zs|LDWF&EMcP*`;e5a_NuxUYKavu5 z;j3C;j`7RUD)4`@VtEeot05lfZd@j$zj-hFWliK?FeSfw4-OH3ak=x{;{Os(OO`r| zw*ccMkXaWlc$YO@Sm4a5CH5Sp`x%-6;!x zsc=*9s5*5RJyHCitgDTT&;K2SR>kSzXzNYuLZiuL{;jD7QO|;PvZQTsnZP=D+Qn=_ z)$gdW$Nc6MT$B&zdzWA9dQj2OWxjIDT?&8ibU7V4F;?7WZZ^f5^3JJnwz6VK-&C-A zE8-iZ$1b>L$sly*f!a^1H8P8lv~kr+jOHuFVcER}x(b!1u}L{ed@icW&dYD+`(m4N z0TX&Pfhd4)TkS1mY7YCb*h-a5pGl%p&lJTRIC__p7zOA#;N3M^*(mX3Yjb#ch=ne0 z%2uDOesxDFz;wWoRG&Tech+B0<#>j}wR?5CYEYmlh{hYCjd*N!BkwjgUKu4Y9_}4= zMTU5?Diq4`rF^O9W8nW)V|YYT zZ3E8Cuae)BxpLKp&<65N+X&H9kWED#>h7hk_1H5`Me=Odx)oAQRRwrh&Kf&3C*C)E zEAr{|(;JAQuim`h(#?Q> zg0z_uR{>YeYXo~lFxT4gX|isA3viaqxe-sA$Z>Zo^|lJ~H??P!RgUjItm*;5S|F1l z&#F+^hZNiqXymmXij0~Ki6n}9{qz7$9w^unLjh?d7=M3j&*JKFNKhF3_O>Sq&hYe` zaM(VlvC|EQ&x4|^*8@9Fl-VIahYu>F80n8A!Kj38#*SM!)-58NT(@%x-hK3#XD5N7 z`b9?LGc^wt?Tx$jG`#bO1Nk+Qfz~&eA-lTOX|^ipiueZPg37 zYFLC7h4D_w zjDiC!aHF1O?cx6ZOT${shvhIUeM^~(aOVg|pO0hJdzck<&f5zSyJ_ujdnRQso5-s@ zjf4j zUX%fLrLD`1lq4W%b>ySDZnO)&9bH&a8j{0%*lV4=D0(+bYU-x<-Pck6kHSZ^NqbHX zgg2oJ6e#GxxHy+PppFceM=y4Q3};zRZ4~e8erw2D2{?W+m`*iBeUm?jfrOgd#{=z- z*w3vklqyf24)$p?SzHe7Os%A2cqx(g9@*YqhKt{)z_nwv2Nye~(VNX-fevCRWTC2a z`A0394EOuUMh2AX_QnNJ@_`(HB6)D-9*(sYwF{-*u`qaBzKx!m(_OCSq)pJ}6Hzy( z&YHaW+G}PV60tR+;z68(DiD{~Q7H{AT~=gNK- zBZ)#@ukA%6zLC>aX1fsK0l5{5&Jgj_4H2f7+e=;{@14lH|M=gBsqZPl}{)HUKwdnQ9K#~{fG7ypQdB8sGHg$Fex>fyo#()>$B*BWV%sJiF0vxuh%G4rzGWK@sON zU)JlLB^6qp>}2t0BW-+6d_lfEwb@#EdsRbZ$STE_>ql0~w&#=z!0j^WM0(l0m>pA@ zCgCYc*3J)B_K}K+HEB%?Vx3fv#?zSpB1TvKW2^eM+f=t;_q4WNLrO})ioxlLS&h%g z*mz;N`aktbk9HG3r67W4C}Ffy?g*?}zFzV`6tEE)g_8mD$a?SOII?%otJ18n#Kw7> zo^}%3fT}HH&DTCdqRS(#s75*KzNH&x^xVj<5X{3<9_mSr7EeV&#a8JYW@W?9h+~W8 zBsN-ql4_)`VBo3m>4L{(nf$(^@#k6FIuq^w&|l?MOGS81pUV%P9~q{3DyCHIyPape z?hsnH3xy}VZu}AgjQCG1^&9eJ>h%6KI{Pu+p|wlJ>9N>DRLrelFBkF=Rk~iVEjr=q zQ8^FVYWvRM^q#1e1#2Kk&`dH*#i6l z>=zT#C4_gjeF;=fE9k!y#Ca708-rEL{YWsx&WtEplpp-|(E-z;~xPEDDkeQ6sFD!hm z_5@*%zj-BUggqaCF7gTp%l17QGSe}QQP`-3ILJ6xMhOlnqg3r9|y#iT+0w& z%7)ngqO&ONM{r1bhsbVQU+N_F`OOV@5Yy`pmrlZxO>iM7V?>A-UH zvjf*gUDNjw*$<;`T@``!o>BSq^SaSDvIr`UE@xl0gq6`tjfAGV{T^Q*<45rhB(JR$ zv7eR<-%C!v0ZiXQT#`Je)63Y(1;R5vz#bi03>y8F*TBaj3j8Jr)*Q7R{4dFShE-BS z%>`nwm_o$$XVzLfX87|pW+b?5uy>IQbb2&jHQ;B^%Tv2g<6Pu@&2Iu^4~CO`e;1ub zym{-v*FS-14*Mj!S5@Wt^$*J6w@tEGC|v}Yb2cTs;{qaves}Pw2%26Ld0Pc$tQj&r zFy!Y~#nlwLGG?5V!eMpKT!K_c(#RH*%SDlt5sInt&O`kkvmM9G#3eoa@g^qe;g=i# z_j>eLu$YVFlL>0-dE>kov$1|$aX>REU`*!_7Rzk>_}2ekI>}EmM**gppoe?4Ae*ey zo?r%}3G9xW{`DQ0LOEfqGcsZewN zy+EcC!(E@6n0S2k=a{$QYp1`Cj_OV;n(*y)vjy`_zPW5n`aHj; zVFs>s)6zS>yWU~jEgZVv2E`?* zRupb%!V_Hk7Se_9#2U3RSqb*%Htj+8rGappOu_!izi91C(Ui3eWWWgYEX5cYXxz#c zky*?KUA~4BTv8q2Ns@R|lNMf=O@r<|d2p33C`R^bTdwz~BVq(vhFF5rgmdHBFdoN_ zv{h3mRBV94?tdiDIxDspL4TQ00`cz6{uh6KNQIxnyfHr{a~0#Ds=VxY$I7w(@sz*a z%WK79Ln%NspvCfe#x2H-rF0geB7Dt@6AY)@k8Iz?$I2%#aROJk3DB^7JXo4wHvHr*NL9 z1nGP_U|sOm+j(E`+Yotmt#&QP_t4!OF{<43HZr1XJ>!nbO3mwuYFn-jp*ozNMDf(D<=Vq%-L-WAQg?4 zlh4eCPrv7q{`unc09jJ(>MqLmcZ__Yb)CWH3<-0kxUAV)N*Xj`w*tl(V(<#Lq_O@W zls2Bz{-u9XlkwnHE6LfQ1+82Ax(gIIL(4n+-gbcu+?k%$TYNrKwg4qQGqJ`i>$Jby zxLvilsTcgD7JdFoK7plYvvu(Ulc3&-XIRh5-KP9eN4DIYf2k$79@$@A1yCpdFb)`R zLx0)uuW$M)4qCo1vY(_&IGT;~X0DFl6WAqm&j()!3w>?Lqi+7ab@80yrZ0Lt$5d*F zeg;@)zqNj(REzfZ_ClwN)$AJP3G}9w$L|qBwEkz2x1PiAzByzi8WG4W6a!IL8a)a0 zJr*5fe=Z_j6v~6=9&2t6v-ez@ZgL!-4o7)b^Ysn1o*Ua{p7;OY|NLA0H|e#8ek7o0jn1Fl-uR zSm#GJo_ytcX+EYm2;ztKiOO)-iUuQ|pQ|f&P2X zs@4LUh=1TYu%H(7?pcc$i~r?ZRaQ3iO%Gvp3x{};tuZ5$csq*$_KN;Uwu`nQUkG-! z1)BQyZzAYl1TbjM4=@~bF?>s zLwfo;_gd>uH>w)i$lF*(%Lr!r>12LXOwTUF3~%GeM${mNzumOa`Zc<3=lzaBtEPp= z3S0n<@D;r6#IdK=n)}-{pU(+UFYp~*ehya+>TF;-1%ExHCz#>vI~{n7!=TFgN{O}y z!da2J7apD+9vHc$d!6vN+|H|B5!V&N1XhZ(TZn64*ncGIEK`cg^k~9h>MZ_`x@<%CgLbm4sC40VviSzEE!;bJ*Wp$e*?r zvOvj4$>r>1A|XM4UOoxHgs4)0E)kdL=J9P?jW3qfVbtfpDFND&46 z`u6N3?FcZVye&=82VCH&u7kScY&mQE)_VutBC@txYC`n=!X7UE0sT3Q?@}Y!;#|_m z>!Fp)owEzniMKPO1Ppb#Q-zDcEL}qPJ(W6FxKafGQ-YN6L+p1rUOfPaYK;GnM6)VX zv|ch&R|UBydqh*1scRC)$!b)Kdhwol!C0FGr+qea{gp^F9k ztrG@zO9~WgVzl7D28x^R>yktkchwb~>wNxjH}!q0aQk(QE+=itb%6HXB zgS5KrBJ<~oGoS|9*-!Fw%O>+#u`y@rcewYqRX(62)pnRR&bBT^Ca?Qxg!F$TwBlEfGbR&HK?LfI|45P$ z*?`AUuLjf|8k;R?_1gYXM~W**+2H<|s=|uCh2i>|>_yR4sPa&o>AhYxSH5j~K{}so z`c1_~6`pW@QSpPKJc_vfiMHhJAD#4GAgl%bB9(=c5%V*-EpV&)boVmiH#7>4eGc5) zhwN{~+af!(Wzt86$sXFPMUg^&a@UQtIafToOFV?*8IgO3dtIb>I}iB9wjlAn$9BkM z{|a;O%X=nqbV3IU!f%4sYC;r#Z>Bsv{0l0hzw#jXDGYUkF9^cpYGRQqs|~Jk;aq{0 z{|fK7=sMV9Ne_v?5xnz1)M7g1*Cs)#0=A;peRc zpqIA{Qre9PquTG_{HbE#{sq?p)w?cXLT6L-i+iy@eB`%6sHi>cV5RnU1hs;udEZ@G z5CXfB1ihJd6w_|9GD+PWo&k-uadf+Nr)*{7YKH*Z?b1HO^zLuq7AXFKHldup9Qs!dUkqsL7OsJU z)2Gj)9?216j`}GFb+kGME;o-LD$rh$jUy;(veU);AY2+>x|(^IAUv-|^IGlRY!@|N zdceG`@^yA0Z%x`O(PRG`fF4f|nQ{V-(1bBtPJ$Agq=4;gb-x_ibfk+GpWj!p;jXhB zcYf>1X+-uecv8r>-=$6^(4))>pXt~z6Rb}?xak+^T^yl-@w|!N0*JKES0j zK{bvk@#=hiWD*RHiN1w3pw}-FmGy zUrq5C-;AkxwLk_N%pH3$c8Kbt--SRU7u8ttb~uW)UoapW{2x+!dDW6nbg;$cdAo0n zv613tml<}b;))7yV`+3_)n=E;Ly7CVKUs_)(=9f#y+im^Yw7e^dTmjxGH(TzOKmAq(s%KPW0O7CCv{nnfw89?DA4JPXi^Q z{yBF1mqWRwP2N}8E_010O+hlpCjWg1T#0@kjEg)pNWVNBw8$GsW!k!Ep;AQ5W)%v1 z$F9iKwk1gEzZucCXOD*DMapAK_7<_cfHnxIZ{y>8R(Np&<>BLb%Sv-r97EGB zKO!ms>P{PSPaVPVmMj~yV)p8Xx)|ln=$OVU3+!f?$A2Uw+h8ngxND~8hA`o~7R8uP zL`9(bl!s0Jln=ydx~VpGdN4G6y6b}d;9)Nw!tL`Vtpixro`)7+IZi4? z1$$R(094@cR(5n_dtUoclD6bqd9J9GEb@psU+%nbVR6a*mBYr6 zqmPkF;ElZR>8oS0!wct+JejKdYyyT`BiIvNb0!QoYuXJ5rH+gnZ zL2N^mP4MH2QR-i~EPeR-qa_?t%KIyLPq80>Z`Z}nRsp2Syv1EES_5lkH-4)$Zeiyr zWgw(1<+e!$SF@vgn$OJHVHBJrkUoX;nwVHQ?t6cjs{WaSP`n^FH`O)8l!`1*e7w_@ z@Vq7)ySc81|I1It=7dYWU7LLW;lW_+Zd*~SV?nW&)&{6JGR`e)6G}~PiG8ej zH*l2Nyy#Xy8*&d;;l@q^eII^>c=t}q+R?;{5NU)17>p%(uv3IyPocCK$NA?sJe z#o^sows^KP_xkH%XZUcvYDt2us<7cl2N%!(NLqPr!*X+slXo6Ut?{q@{DXB~-A}<$ zIxWcNv;er9>3<~i$f;GJ#f1fWFHjGJ{whgAthaMIf9r4)aVEDZRA52#iUHD1#_3`Y zJB{aVV($?&A znDK>KUhejZV!*dT0<2%BtG2?u%$!JlQxztQBNKp25&cFh{LBCs&#_0quAA>$vWADk2B)N1VVTT>F`Zk8fj#AM{~^^{y0{ ztcyPUmebTwu}@;l!@Kz}Kuj_=P}--jTBs-#hJ?HDU|igQ+u?VEySyf-{1XHxesRqJ zY|$mm9UZ6qoMKd|zwzvA7sJu!kLGDguTP4}OGK1QI~SQt!rON@q7+91ew7;dWt-z) z6(u7Z4BW_y$bzapO#T!NnMbMQoD{W44hH6`>-ci5SJR=CK9cJYDnhoEB`m5O-$)v2 z&qaZ)x=|U>1{wHGsD~&ktzIBZ2S)>Uf&Y9XxNrkrUr+zkq_=b4;*vc?-?%YDJLz&F z#MvV{M~v@oQTI8(TaSf)8p=LP*w6gpqI=)re%&?d#TF3p_M3}%JM+o`uYFc@oxK;% zwsl)Y8>KLnNRgA8UB000Pd2FMnUZ~P{?2V0HQ%%m z#cI9IX91n=+zqPuzM7k5S_igJDY^fdJ9xW%VDDejU=%89VefS!L7n^}3F4Ky{;Hx_wAvMo-5E1t+)a@4PNYn9qDYzI ze#lz^@6W{tW4!xT6T0MEBV5-66RZtnbwAHr(L5bgU*yv2z3J>fpSqQtd(}is(Ys35 zKv|t;!tP1#m_VPi_(Szqh*+6tAg1$`0ptZ#?1tPx2{FXS_agc+=p&d(MVhZ&!%d~l zFu$ikCtb(sxstSknmJqb$Wpa-4WgGG7J0`EpB)S>Ru@{48HmPSJf(UK`PprFOH=*^7uPFmdX#qz9VHX8#Cp z_HF)k?)UUxPSZvlZ4QiMx^~S}>pK23$(U~KF2%*=5L47a6~>MiWxX`d?y5fhlk|_h zR2aEEc?e>-y?}9eXhpmoM<3V7C6|8Pao&`KdqrWD%#kY^%X2|`&-D+ zs)(16oWS0Ri0-=IV-X_K98TV$ex>0K_yx3jdOWd2r)=?UWa(6yJ;*3z9~H`8YPAnh z7z~FACVj!~$JJkduG>C0cIMRgA^Rr4unqP|wXY|$&qR^_(+mf^9qquwp_{D&?SahhLr+ZP6vg^K>g;LIB%cqG1h25- zWQ!YTXWxs7uHCt~(|co>zg}2tmvyRD0%H(+^kPkR&T>1HtzUWjM|Xm*+HWTN zW1Kunt`&9VVGxE9o&C)SJ-?q{zq|Y(r&TA<(lvtW430j2yT?vlSj2#{7ncz*vj{I3qcdvx6+wUX1Ygq6D>QeK2c=)C z8lQiRlSz!Z?U*)#B63?y{;&-%Q6ZrV1>E|$7e9qIeoTzuCxs@2ldS~Ck=Qj@`t8_bGx%6+N@umahsoS>fj%cCraB$-=3(B50h} z9FvN*{dw&agz~A@4@L7HJVvnA%bWOkoC1s8VN>93<@IJUG++Qj32?euef*0MPFPJk!oIO zS;`*8X*FH1{v#wVR9B)6}9`6RPm%iyd zHnJB;(0WV07Ar>~xqO)3;$o3nHs4Rt@COFX+B=Xz_=iFcyfAjl9AAK=+ZK_DU|lZm zXk|#h_srGfPIm|$eWxzA1fw0-C5gYOi-SiCi2iUtEAuCd)niG_zOO|=Mh?UmJ6f)? zo`~Nj7~;b!@WMkMxl*WY8qOD1&(!7I|&UkIXK z?V3JdFQ<$c@zMV5M=w5^+xks$3nimo7Dmv9OXIZBhye)5w!mVIEg}4uDCOtvGe>tx z%?HM7_cYdBXPlgH84xdYi1Zq%p(DNbCOx4B zNaB6J-Mu@zJG(PGckUk<%7id)d(LytuYG~uM7&?nUiLxTb`KKg+jxrnqFdTkS*CU7OBvTf)TJ(mRGHtpo^B~w3-ZQgl*X3m zRXae`;wDcC%{*gp?j>LK)tEA~qR2OH8-=L}D(km@dw&#gB&@qP3EsF7dW|0e12GaO z!Azc?b7QRTVGim0<$PdNe50NY6{$vw1F7zwW7a{S)+&!@w7*Kz%}_c}Q|uKYv}?4|~O47wd_QZ2h0**PZE*?l1) z&od77&6z_h-=ADEZHRi*leD2JCsEnE9ouby3?V`ye%(Pl>kMkG9R1lKF`` z1}SmtOEqZ~h`Da1T|Pjjr_2@jq&DgI=X|SOvruh{4ts})9Y3ChnyBZQU*fWT*|DQ7 zs8z_``6}e*^vupb5<1(uT65DEqU`rl>)f7Vxel}w$c7SLWTuH%9@B&6%RN^e^kWPu z@#b^pXG#vTQ${iQwO}ynJ>}sL{iptbWTMe$W7h-T%V3cXDyWxkmFk0I2XJss3E%Ni%hTu#fcJRdfE<#vA~ z1E_d0$rocU1%uF??<{i7GYb!*YikYR>PkP_NUhmg%~E*pXmIS*3~;?_>-P9FdEUCW z0yK{11$5z58JCpp_u$U)e=2vr5CpgK$6RXe3YX=j+Od;Fy$pJY0fY`kF&n=G3E6U_ z9(}ZPi@!SM-NG+g33p1(W^)Dcnnzp{%r(B-^`SoCzSaa>(=v)-&VkY`z)q2$WyqWL zVh8rXiQk^mneRgfXsBhNwT6G>v(9>hHzSKFsZNT+d<^c#pQ^_V@vkq9QoLo#D_~TN z1Le;*V7WDEy-5SkUn&Yu)c!K!hP8%S{Xy9}h-|A*rl~oR`pfBG)6hBW0&>JjU@$ZK zWtT9yi{}rddT)*0iu@A#kK{oRK)BM%L!O&elrgqs)_G{`A^wg1|IgOagj(vaC|B(P zc+xK`Pn(O=6ma@ z*XL^8prXLMtk$QUhGvH*f8eNJfa%WPTTj$$7f-`2oLFg6vb@}qi~9z1jr1q5lg;`o zKIp^9rF#`>*(<&H%L3aoUIRnCKeuk_rH z`}}L=#{^Y_^rfO4&HD7X)727jT-l&-JiT5OPjFnG3o+yDXPL)GJrx z0IE;jgo7K1f)No$%my$2iMx=3#v#s(PQe73>8azjtM}4NI6=t1`9Bite9)y@3V|Ha z_6>C8fC6M&d*wTbOP5OI7W!=1&;=)Gw{OC{MikTlpTx@JOBwMFImlzMcsGKss1!e} zl=##ZT69uu?N$Yn*@84g@FY9&F%wgac$4~f++lGg8=}#kjvrcAf1hm@1pE^2t5Q}j ztcpzE1c}GhC?5uNY_vX6PNB!e4B#sAeYo8yXY&(u8-yT}nNIY4Jz`JR5(edWq{QR5 zKso|ybpl#@I^$B#ly8M~)vr4?+b2k|C^y0C^W0W%g(|)QwIKd?&%lG5RWg|MlS_l( zN8w-I$__0Zij$2a?1IfVoED4zjHgP>(=5zum{8Ar%a|TAWGFuST2MdpR;RF(kj)oZ zW6~IRU0hnZMkz}r&78?FhTp{!B=LcGj52u@DJaET=t+%&M z${J+ya~l=XI0z0SFTCbew&Odm9UGCRsvMK**>Wp+ys#9~*Eo9tDR*uomQ8wG*nDqe zYZ7l;f9*C|y>iq#*$DkY_RG`RJFc9sMB`VYX>i2V!cIX?9my~HjFTmtUh5;`pp)~g zuX8-RY+OhSxEVHd`Xx=Pl{nMa*4S7akEvd;bf7AO9s&37(Ql^E_k-pHjqj8T&bVZ`gX`9VR>L ziZwZE*DB{+9Jj!I6&)On=!P%34xMj29?W;jH0;>_wbiY)a5_*oa|GN41wOT^98Ia% zGv;IW-&m|doU+RVMjlun3q!6?O;!n|T|NHXEK8WsE}KzHZ8EB+e`UI_Skf&%?^RZA zOy5>}lW+G$I{QXz8jRtcSDW|hug&0&yB$$MO@l7tPhG`_^t z1}tUru2lb#^q#;+Kxc-5#z51h{o^0WTcBQZfM!LBki0Ws#`vpr6-AJ@G(JI(XcKji zgx{qXzcKXy>qPHVoewasNtm)+Ub?u$ch!sEP54KWrm6V{1d#P~JT{LZE1 zu@sj39NLCBA^~Qe72^M4bT!IcMPi6vL%yQKCrqf*ZZLt&7@$A859dI6s1r$Oly_<7$H*4=BzypI^imkS485d926O_{$J^rsovaQV zNb>I-0(XIjZPLtE5uaRO|6`xW>@B+BwgmugkJ_KltcQXL`+{NMDRsj(B&&EJ) zPQN#n7F9B#9A`!$)#I!H2i-XPHD5@7%LtAl=H0@SOl0 z(RvyHa8GH1fvfSk3eh7nMw|f-Q5(PpfHRFxynzggNg$mz4QWKZV*%hittrPDjY@7#a+<*_!jjQ>uW*AeNYtdTXz+C z!Af8uG=SH(bpDaJLpGpUz;#7`M${t`kPEUh#OIHLpql~pF3V4dz>>6_y1j{L%efp! zECSr3S8$)!`$%I#j&NDzZ&2hIo1H}0%Ah=n>3=hHbA*Bxx<=(RypS*iqaRqJJJj3wEYU~y-d}{f2fb!R zxO%b!A>R{U^{RJ#N5;q5Y7;m$)EHv5fZGXry5@4o=KlKimh+V)|) zq=^S*v0ST{mo*doN}5equS9Ra(M+SbXB~sSwv&gQ@fH?>M@FEJ``7CW4$)zi-iGOR0s zFdr{a1Sfw4!jE=%)DXRqWEJiQZ%k?LYbF;$b4ZwMHXow}j&SbwY&a|KxUv$9`ZVUT zUtDy~?`XOLdO&CO0Am-K$yf{|DtHG2elt9n!lVM^zUu1sJ0sOrb9-iK>9nPB<7W7n zo{HVon{C$e%zq^Ls&DVAc~r+X?8prU9v1|@n)DKlzDFw>zAR~uW_>A>^GckIw)^%P zqls+WGs_wG5^I2?XZmN)vx$=6(D%wVapwD5@f;I>igh8W%;NIZ*9CL0Sye3srq&10Axib>8q4s2*@W&6oQ(C~GkS^F@$@#E& zP{@iB>oxN>_^rFTb7T}w^6aQZJC`gF(C%*9(@};Sya2`b^~V(gC|{Sf8<5ER_#s1* z!+t2b5*gAehBqEjzK64GlTjANjN+nrt8;sl-~BEca&91|FbmlCHn5Fne@{3XpQZZl z>p!Fq+50gPnf&jyh-wH;y zwjaCPN!eokh61K`<2nK|SMtp){V3m8&E*NP)iGM!@h~^m4QUcff>_s094&H>1lEGF z7p&O73+ihYTU}Q-8*mPi#Z4l5ApcZ1BfK?sm5h;>0V8GR2%18HRy^eDE?UWP|=Lho@O-H?13H!m&AJ96{*g*2-&!Uu? zYoZj-R;3fWCU5!;yodtbe|?RHCu^!BM;KSWe9_ABes(Jg&M~)O@3y3IKUT2tPUd%o zpAhn|`zFhO>+X59mVF;psypNK838yq!t{`^)L6FN9@AmV?>gWV_$QnIVeQZ1J0pqB z=iLEr|41g0!?`mkqcN|;kXJi79KV7jdQV~1Q4`a0hIC22BzEONTPu`Ez7FH^4-}fr zoXZ#l>#UgD=BGg;EzQTihx>Q`I6y09J}=ilVOVrl`l;!dTMjn~BpaLSKve=GVgiS` zql9_d(}CNz$H{9Ph%nnVSmCd0-% zf+VO>l<#AOB1yk04YQ|~(*dX8Vq{sojLQ}D2uh$Rsopiyh;B6>7e5uq9wBNMcv^z<& zvEBIg?)q!d85Q&v)YkOEN50+0OBR`cSpL4q{R@NKH(a^W9^?{!Y91q_CI05)o5p!j zWP#qxsfI-Fn7FRP*$5?WecXf)5K$=f%7IqsJ8cKeV|LKDO;p}6RmUb?XHw)%k_6Y2 zFKe=M!&}gVC0cv{2H8=$G;QU}(1B2zcMu80xDNF9k}skRn@QQvP^^LK4|=1~E^V=oa? z9IU8DRw5%%1CM-;h$8S_Nc6JrZV|z41XitnRGJ5q$&l23_;vV;+^JN0DNNKO^Yc$* zscB#6Q~7)@-SH`vG91-rm@4a5Y&Gd7KqNSs%%%Sc_&bih)u_1nmvqjGw%nJ`Xyoul zrylJPP0A6;| z(g9@h%ifdavx=wgi|`9l$E?@v?*8zag~!qxD!u3Ht|S#kzIuknb^4+ii)N3=D!o@+ z^T>|3f#=~X)&Bi?!N>0V^Pi97y}u4WxviK%3`Z=7EmisKr`_we!)+~_GgmK>G~YxU z)K7dyJHeaIFTAnE$1H0-T<(flRlJ1XQ9xYlGk_IfgNwtWEyr4AiDOKH`8c{iE|D+l zdz#1R?&k;J<21M*ayy|ei=B5A*uuSUWx}8%@Z>A~pqswR?NpL4etvS={~C9V$8yL! z<@&=X97CFNJb!M;R-e?3Q|Adq1bpwxaBb2FO3R{AG0**bmpiDWT`kHam0Wf=dYmcl z&XLk=L;Q_J^g+d>6eE0O|6bt;<(rKtNY?*GkK6FNK80Aa&Xs9L7G2;8ayOKXFQKp5fIS@Co=IPPr;v&~oV#-6HLm_=jb7&1G%Ipcm^`#>eN#d52a(EZOB^Ip5)i z?3-Bf#kt^d_xa-|pxmWe-W(KWXz@`n98jk-P#);5@`GPU!Eeo)Xu|H(OH-0&op&MB zmg+=9MTAlB{F=2%T)33<7H4ApKXIim)xA^2?_P9aQ(No{=SAG}-JXD+;~!(EJ}XiM zQI{_F*Zrywr$`;{>(T53Ry+Zq_LC8ZGN9;ThHco_ossw42B^B4rgU`g>pJS6pJtxS z?`Y0myD7)wRC;XOXGM<{a9}E~jOnO_*BrKjCPmB2Gt6(BE$UGmM8`kjuB+dndG-E! zXQ6zC?*Ru5q&5+je!r|nV@%+ z5ShadJYM>)r75}%JY-%-eq|vnDnb#;INZ@9(!U?|`-u%rhu15Xd=lHAu~R{Zy+L2Y;fto zM_2bgH48GN`e&Cs;4$g7X0MNl|LM}~b0;7QH?}$)bBb#Q?Ekd;(`}<2jOD`?-_P(~ zg^`r7aC_@&Uy(vx?R9&~i ztsK&rDUNF2f4ZZrn-mKR9xHQ}QW*bLL)Onf!@1ZLgLsAbNxt{30MCbE%3eh>cC}va zKaXZ(w~63Dm6M3>0qY@Idt^K3-O#R_hc$G438_AU$u}b80HM!ZX4RiypzYh91|L;i7}&BN^}a=kaW=;bVu-tE^M4d=i=pply~)hhZoBW{chTC?@(}rKZ%d=)Z7}}g$L`k=b1m49A)fFk7N7@)93e~oC!%p~CWug!( z4`X+Bh%|yEiCbgS#+{tJtz##?MTu;ovbJ*9Ye?X*T{Diw$bd80*X!3qV^g#=3aQ$b zr%G@Kx4hU=n?J4}^mMsylO^64or{(IO6_d!$I}LPdvRBzNN(=Xe2Tl5hKBZ3B1p7?W_{_s-Ox8?Wl`Hoou;4=MZ?#7k_gE2+0{QmZ82KMNr)NXerK) z5btH%48&Q}KP}?>4>nEA01~I%!5F^)1}tc=cr6Qf?>`dFlOJe$;-UTs@o504mp85q z`gioDaC}d^#|}(XZ_>8WC}&?oPHF-NRh3VsboCYP^7J1L;aI)f*%S^`HD@fYMr>i*Dv54(9(ll!qKLI(DZ}v@j#dySE8s@!c2TE@TT6rMAM@A0 z&gELTnQ4`=8}s*Deb&wp+I^$Ty6?PL^Qp9tQwZs>)O5^E=4DNQ<>V~nLl<4CUT_Pt zk2JnBuM*gRIBbY$(x=<>lTLe8%q)lY-}rO_*4pG%mGez*ta5yHQ$ahv+ zCMvmBZ8DN)E_SudAaF~;P~91#4{cq-Ja?JtKkH3f^8~RI*-W~MaI9iZQm}H9X6ZUi z>cf>_2EW*yn9gNp!|4*oQbT~^or|X}U4`ynFSbXqqTZVujs#w(xJWP^g3L*YsIhP} zAFcM-Ehjwk28s5kx~Sa?(6dzA#1cnUC%Wlx!pXOPaHwfg4fX~ND=*{++yIgt z#JA15oF3?(714Iw73mE9y&KnEV%|94_*5;BIoOi}J+6 z)5H-+e|%*gl{9UjSSttsiq5)vcwzI;8N4h`|5Jk$;M3B|Kn;?x_vflk)Blm)!+97@ z5EDEDP~VucX42(=VY-F8Wc(X*U9o0Qf8X&qOxlMA=kSb6i8A9d)}WIh$0KQq;NP!w z=I!`Ufb$8ai=}a_+rV2JD^a|lCGr9XJInhOqfFvk$kbjll;sq8^@3gIco2TuY`PyN zvdvs_|N4R8r2wHyk;OB&$`VMoa|*q1-C;UgKjSh;$RB23Nw%IoM{XH+XLJ>&%UAZG zK`DqQ7|$K!{tZ@_eaW>dxkm;Xm)BQNF?h&w=A5N8i;y>7Jczo^yGFr4pL2S#SNbeD32 z=Mpp!XV_ApWVzKg#&6aW>B0+?s^#Sn@a5W{sS(4o>K})8HN(oWyauxn1K){Nhj`yj z;cJt#rbXuAAxxTNi_V)Qj_=1~GJoD)7n8f$GQ4W{A<(=CC#Z@|&E@5pcvE}aMtyB) zTJrnGllhq7apPq0Cp>fo$)p1ASdi{nh?pZyu~@k*zGFkG`I=PmMW0)0|d>J@t<|_wLA{_l%r(D|1Y0+H-vML-?)5#fs#0`erZcY^O`= zHTyh=lUrE>?Qt`hZ)NzGD_?A?$M@5t-MQ$xWv)pZ-9L4j;aqKff$La1q~#E9zENTc z;mTajV)up2&C9i)OT_z+BNp} zH+QLx@T22Zdg0K?zdvqW^IFKJ;-&xm;DPI2-=721r>A@c{>B|~k#Ig-_NpM_4$gUD zE7gv|gqmdNwp9D}S(1Zsg6V99O-jgp4j;}Nh!>!rGJ6Gucp*%9Ty&uR-GI4|sZT*H zH)0R9uvG(#v5*ko^urOKcPEc@YE*C0!3T3OFM0sSlX|@2Dy56OL8ON`BtetBgrHpW zcaa+t_#lR6mza)GXT*j8A*r=!1{u9qgvbq=|DkH$b1?qUaA1PGA~b zonh;rGAEnh@4cjGzAWPnW+9imb~Qh&1=Z&v8`dbfw%3^I?XhoyeY3erf$p`VgNJ9{ zMRu%*WJyu@4IC0<+&;UI1pP}_=3b;AKG}MS`@D+8X)#Tq<7cS{ zq1^h?0u4PRwaTH(EP7eu!w>p5{{IOPw&7W*P`F7nJX4fLs#z6{+X(+~uXAs>%G=fq z@z?*BJ+vhBjGx9eSA>6$l6;XmJ40Dh;$6e{tE<9{SO1tON-m3imcp-bl98W;?)BvA-&N^jmgZ^u>3k`qQZV_Zaoe`Pva z%b%TAw`@f1)>4!5SFBdW?Y`VUgE1*smd|I>)R;tX=ClD5!DghtPyB-cgYX zVNvd*&5w)#uymt=yeRNQ>S8G1H0`6kV<4voYX!2tf01Lt3rxAYy4mehm%-0a@>IqjsC zg+H|8w2+xKZF+gZyn`-Oj-XSGp_%6lllz_ zkBx3b(c?Tnz$W+WHcoFng|{F;?Tp_;In1-3uYjC9(f%3ZvQaFf@OJ^-MB}G#irb3( zVn#n~7A2yN5|fuy>K`W`?Q6EgF_;w@C}=7?mW~p$C;6dys(PegVfLtKpR-y!QR#)> zluGjXuHFZ7Ej69Zs&EZ0tK&+#oRZ|CtMno?v4vO)9EdJ!T(xGL0nyOpll}%Sq-=Gq zgdqRF0pIh^CfrdNqr+Lii$F5;ABn~q@~<_K>NYbW1+GkUS^8hCJ}$-y4Kq_jim5BZ zJwT&6L_^?-MLp_5u>J>|AE-p0r?4LUBasYmXy8>n1C5pxoKXvchSF_sT$1+S1tx~( zvK3$2pdvRcBGa9mJrfk2bF8UTt}mh`{hq%zlFkiMiuuCxCbL}I#Y-4pAHNDD!Aa@t zY=(ARi|LB-ICt+xe$YX%{%N$Q7ZVDzjunut4v0|={9>yNG%iKFmC0pM=IIHoXC?bbu@PAtMb>W3f!*7pVb;xc<}qm?lpohi44>cG+JFGctV-CD*7&;lsmmzJUgMLo67=+j-@ zesnNVQMyMHw7{HVEJ zfT(e(VbP^Y2}-dqVUBUNk1*1CsW$3|62H{f>DU@KPBAW*g7+|ANLgu4ke?KDC13wt zG$7lvow{lGEBPjEi3Jmff7E8R$=iro&2kiCXK>u}^jcBlJDAM-xr6A0-C?aIoY!(L z9jc2KH;A_ z@%=IfKXBJt+giV*-@P<;D)S}pTBI5o(`&7an!QKz>28G%V&QFozj0KI(dMRF(rdSc zVcmfBUp3|~=5yj08H)F;Wp7zsS{h+6-&EhA-GCg z5*$FHgHJpdoHqk_=>!hu-Cl^oJk#sh;3-OjM2KKU$=L{@FHN^=w!OikAd#b3hy3EC zc%7->7BH5{Z7&eK6KkXRuJ|Q;z@^Ql-r3@lbUlp`^Qc&(q&~us+hSQ2*Qu6W=7WDE z24Vt1d3(xlPqW+enZMXfbk#>pJI32decqf0CZq;it=XB3T23eQK96mJ*;Cs9GM}^rsuwcD7)$YEM5)Y^K%EAK(%Q_`_HEh2@Q`Lp}Pf0rZ{boCj;7 zwr#%3*%qEQ@hLEBvP90rbE3OJfER@E<%g*YKu^=g%0-K4^9H|D^ic+Y@NtJr)Yws@ zJ^t2q5#~M;JMte3^Yu&c`?xEC|JU!K(hCt=x6eplx8HyDtnnOIvbq*$Ga(}RAEi4n z`BHGANWJTxQCV3kXQ|WWZwxL~BGqJt(R)_*@WL~;@$e>Kg!2Zx2-&i*(ewNHG2YHj zPmXa0r!MaBclg{r68vcu^=A)`NE8y*P&5#k%sCpzpDw%obQ(%dsT;{{BvJx+?SD6L z7(va0BabV5e*b>?ZRR_t83P#ix1zi}UxN9jj2FHX6Rm2d)ttXExrK(Ty~kbuAHjQ6 zBvFYEkI05+!DrGa8NA&{EW$mGju%nl-%Y26e!cH&;JJexQm?yuin3VVn-cn#B4Aia z`?+;U6Qup2eHHdbzu;w)x0T%-;ujx24gdzG0JL6!@FtU}l(r2`MEqi$Jp7nomVEyU zhu?OV@oxC4A8i>OyR_hnY!iKCNoHSx{HKcTLO;KJzB^B&C$gijP#5GfS2Z|0ESjjU zFnoDXbCv0;I4Hbs_2Dgw5-z1U#VOT%w{zXEbBq10c+&9EDN;Y!ZCX)Uq~L|BNtbeY zzLlX`x&08s_qij*?_)$|F636~w5L+ICK$|}z?Og)!Ca#C_jKtO1!eUjTFU3tC

sxu`FlW>};(9YzPVEA13U!(#hLWM?qd-FJ%VcX8H`sxTng%m%^|SVL0IBV-yGu1M8rhV;s-JtWiqh&@XjBaGdv_J)Y25@-=7)2JV*f#(gWYbCsKgugV_u z>_f*}ft9php#gibMgJqo0M0Hux*ti91ULpEi+58Erpop*_| zHNuXK&rT!koR}Uy4P27Ua+RkJQpO;2R}^(XR5>H1A2Xs2PhEP}`oGD4sUIt>n7LS! z!H4XF_j8G1HCL)v0IJ?AS_53dM8w~BC|0_@fO6$Y+2kw+vfzX^a^wp17xdS9FJJqv zWh7VuJ0IA23^nieYc-DhtzQ(uOgYFg_X`qiQ&!eV2z)#t$m}}21**&J(*Mz<3 z(C7?2YpKc3S5h<<>$k>Z z1B4wmj#p41ER3RF-_m5ezn?IB#j7_FLxe(yU zzW4C1aUNc<0c`+hWmomF>xoNTeQO(YQ@pFaRqV*eT3{EP=1NGbB$$-4LY z!9jxYxc_Elg-|+DS@#%Zwu*4DR6Br9uc28T1?w|4z7%iN3iX&@pCXx}Fv?DM2BHQs zIT^uiiO$uk0-H!LmpRE4doinO7*Sa~f zv-mc5+k!dD-C>Xd!~y_^9Exe+T0&|%SE`BAYV-%UUL}9y8!JI{vxsPAvAXDev7sh$ z`~x*=kF1lkioCTznY^>zpY`>|R9+jj35V!y3zrVl@Fg^eovY_XBE&sUk*e?Bd!pCK z)9k#jg*j!HY0Kycy`|NgHN~NulJ-ZUigrBy##J4Ub8OT!k{&+8j#JflBPcGe&g>_= zl#J1=;bq~WK^dw7zI092 zvUQNKBy3n&=PY?OxmOR=afiN5TrM>9gLOLmey1 z4St@A!}C3I%Rys*VShO!wITa3h@=g7pJ$Z}pdRpX44^qGcJ^m#P*& zJuHejtYJ39q~4n0ZvXm>zlK_UU{_p5xs@CuZ&rUSmUhph3yI~XLASBOIe zaHyB@#6C{4Cf6fX=_0>-O4I8=K208_j#x}S%*e+dqyq1o)XXOi`5TC6)0ZrP`LbAK zH(N(B<x=MQ*KIT&)Z?Pqb}&rd}^Z*A@bgtv@ZO1^?^CeO!0~0`%u%r{x)Xb zALwMRI>qhQ66THuZKdq{I;}8KcJX-c%DN^(6kgrV?W*N6E`2vHz4X{;84+<3hB5B^ zWTdzG668(17BZS6CgzJShbIRj>imE;3ZUeH7lK8|(zlQ9Y;hLNq9ozB%?W8M&`z8t z_q$A&x+%xBJ9!tZ(Ra);H;vSe5??jwpRtSxR|Cwx*_7#edzH~5W+l=GErak9-?v8~ zAvM{n3Ba$1+2nUFZAB`3S>lZRMt#p~9k2jF7IT(xE%OsYXf@_5ei3i{^8F(tiz11V z!G`hoQMOa%-}Q-=ABGD8Jpfl3{?U9Cp$ZT3llZtE2N~^VSPo1GC-_fIHL7RRd=h%W zEteEM)dR-7f<=rY9F`~@!cCiZ&2Qz+B^{GU&=jchWE)Kv34*e7tI-{&h$tB!w}qjR z&pph)&DTNliLkTt_C$aPN*QWNE22N3s-N?N9B@Fe3iKak$9>9KmFDSZ5y}ILza|04 znGskp_6;td%)&bo3p#av`|q=K8JhDi+?L_~JIt8r-hWm3=UlnwJPv<%AoS`1uDBRr zE{3PAS%DA4l>#YCXP$ZMOK=R_<{oV&05>07cO|@MQ7}gC`YJR=ooK{Y{5@B}R`N^- z74CvlEb_q%qh=oQL2(tR6Qj@2g_j5l1jf%M$G9tQMg*d=h9oe4pVEliTw7VF7A~p) z_DkhKj4Kdol@jinJ|I+Y3e8E1m$s1@@!o+eUY$+HU+D5>_NNREctd|7#;plJ%f zRFJ8nQWKbp{7aiGMmcieGoara7m%}i?ACmYSeKYqCRM3{%a)#ZezyhplX7>Tu(wQg z#t8jpi8W_GwsI*CG_4AwMg7O=>$J36S?#fr6ur{;A& zB^1FfiiB``6#mf6q0UNcK!wL${?1Pp<@saiL?oULNxbdh<7Zz0{{!ZDoSdfLWSgrw zTF912cH0NqkA6^wi9c({C;8=*Mku#-qA@(klky0IDXZst^VSHFMjp z>gOG3Uw5^Mo-1_}G4Jy&C@k70w`-sr`G{IQ7VmSyT+~m0DUp zFST%fd>4BREd?7z)WA2i<;(?!-vLpL{IEJ68=Ds6<->L>`G6{Q`L6kO1qcgT774*^ zVV<>FDWQJ;vHev37)fc`Wmhm`Lfm9i6_DHrYcraqb)_azCAni9hErd@*MX$6GFLRx zemn{Iwol{GuE+ULQVNSa{!(o$nJ4~QdD~D( z|D+q1f?>*}F7luv49I@IW*He%;Lpzyj9!OLR;*M-NFNXF|4u+J^l)?UW{}{g2z4%n zSecKGiY$&-!ey)XL}T4ul`VpFJfP{9o9Pb=FsZUwwh)kFQtavZ;r^|2v&b$gwFg<9 zi)PmKFG9eIZvjW@D{vg$4%M0q+w(v6wN7!uxQE@h`f^v+ZT^t272z4xyE4E4bTUKV zPGk!E0lK?TjZ>7ywUMp;B}Z&Qd-%H8n)aXR8P*WbEdp{25Ko{O3(%)abS&z9z)P@( zjpg-@cs6riUAMb_;7PIlrVVKSB8r>HjDO6jFmCKBLE_eP{*^`y2Xm7u_@VA9_T+G} zwHT9|>+?Xu&S5$C1%0gC`Vu4X6H}=yvt4R4YuP+7$Yvq17)&eo<~p}1b6+BwoV?tfb+K}V=C&_f zSmxC)@a&m=D%f9B?amKUKHAU^kr6yu>z>HuX3bT>bUu~(WtrDu*@Fl9uR~*Rz*C9i zoE#YE6ol;$;g*)H)LFw14dVPUUv6>hb%xe_$pSS2(7Womq8vDCe9)f#XZBuG3PX2z z>njTO(B9pII4v9?k;(A+94J@%GH-`2KGsj5)#?zDM3swU3}VAbu36O-z@XEOU6WUS z^#apQgF6V;3EY((bxoaNgg9Ex49Eb{|7EgN5d`d%%LG4EqJyo9g7SqD(zr8@o!~2KSxbMT#B+9*6ay9oR?)%8&Y^Zry={05+21fGe zgq-)+GjR~?u?BA9YfWS)2SntBD;g5Nu4PDa^MVk0o(+(C_L4y8aSKt&5e7=Bck_k$Kwg8 z1w`K}87NVOQOiTlsT>fV1tTG>y7eN4L6SbdY9RSvjwEvi3ngk0O2ZMj-?N{tqI zx$rs98NJXgZ~R%CqJI9-^^oyrvTJcJW-Bfy0hvi3SLDE58K?bC(#aLSWsAB$QG_aw z>&|D8ED++GABtpNnFaEWXKT!@L22NP+4V?(NJ^v;2YQ>^_x4KakaNv%{*iot{DUZm zuw%}H%tBY*EnRX1$^!M+&D??5jaokDrCbHg=*BU(Vk3zkM@t2^8|k&H@WI<9cvPTL zRn$u-jf2s?n?Rj7M+SOD% z-U5?T{_XFmmA(5f#n<%1jM#pdSxcX6eZxB?9oU|$pABqm%l)BVSWWObF&!%am{ar} z_p;M3U3Uel)zm2sz=o*;%J;jM$Zcs*^}TK<5xIkdxq*@D-tk{N?+w_}QzAg_mD69C z|4X?7<{Hak|44qmg-=0iNU+e((tC{z?kP3N`gVuStB_0b6rW#uCQB1;<|$ zj9SiKq9{9s?b?ht>#ly>`m9-_M5#u8_-X4Pjr^V5DdVNKY@**V5+**ddEYU75a>oNmyY=oMaC z+6*GwR(m{=u$=pAYTpklxQg0K`9>UFVtK3)C|8VYH_X%;O-fkrl?&msdEi6!LBl|7 zUO6ykPEDu$N()CZiQ9gQt*BUe!-{YFzEGppx`i=J5c@(#@>S%f;1+}uPm1$c33@sc9-jk)KhtoR$kqhwE;dO* zPT?(@Q|)7JI%k$?&jT9FJ4VBbKAN?ZSDq+^N$yCGEcQI(XmvgRJv1LAd0|}V>pn_J zB@Q3&R>+K>`F&NuPzecKW2u1s&aiCF^PxJy1~ZL4h|Y52kICbV8QZoh@?iW4k?@G` z^Tv+FG_@8%E2r^?gu255EN5wfFW10+$Rxeb1CHSZ3iaI#eE+0p zU3HUbUfc#)FlopQ`V~>_S!WC=B7~>7dvsY7#)A{pkIII_P$cA^MTesmZRu4CXW1E? zWn{hyuac0u?x=$J@2;prmhiAyiy#8B=T?S4y2{uj4CD@H9h`7SG*G8r+>K zw?I@IIg_)p2eRC&EZ+4Yg+sVaTOXRO&;cIk3jtda*{3V6SjI2PI=gX<^=`h2C__v9eX zwbYl9lCGUeP5(n!bPn~ct(y(yFhfjH2wu6-yXf^`srj8WS)T;0G($ba#PU}omoK#| zW6WTF-=xl@K3&GB{dWr=!m@I5eb}SVkYnIkpN>W9(Iky=y+um(+EHPuezhEP`7lGF zPIgH;m2UYdhQjUfaQ+sah4O;(v4Oq<9h>>b%JSo$nt^(`?`xypy8~h>TCE4KN$%ux z%VeORh*w)ka*`2$BMB)ZP)0T_1B!MsA5QT zE!KUGPq{rBN_t-p8pmrJK15h~L zc=?cS4qf1IIj&%{5^+lA7M%d4?82N)&x*{CMC^{AyB}z@2hPe=$t{JUKqpJlvlfk_ zaa$iOX75XMt1WavxREvRw}H-BWLPuk3ex4}z-1}%PN0|bTJ&9ai2pI*zv}>@!au}1 zrsYyg@g6T4QI9B-lHEDEoZ9eiT0Ojriy|Bz9$4AmduWpAf0=Qq7#Yd0L)WF7QZi`I ziO!5ImjT-fn_iV*L2IB6bHq(342z~;(7c!C!lX8zb9ynyI9^`32i-XKZypcj+cpks zRmv8!o1(IXWXn30kc5yW+lXY#mSmqPJ7GcyWfYpMlYKW?hmd{W_njH*FiY>*_rCAv zdEVdq{PFwi{m19yn(I23<2=q|Um7vAooMoH{Kii9NykB&B}(o`+#crOB?frVB?IyT#=GbS>rwSh(7}qP?0wX9WzC|*79Z&b-^E4jWe<^^Q;AH z-=h$cR=`}2!4MVv1gK~8zucgin}vpSLH9;YsVeg*oo9hgn*0oMo1FWY{F&8XpM@o) zR$j_~?~4m)7HSNgjuF}(ezL&b4p$& zn*#Aivth|rD`dY|CHTd225Z;flNebgqrJx&`(*IXfkWcdX`9n2{ba0iRY3C?BsJE&RBD{jLw>13b$>o0f{y9a zr`NzB=XcwNGoFq%8!`ubtB|zeL73Ash<-VH(&fzE<8O~rcJhtqmYSW7=W7R-P+nMK zntKxG4TLE=P=79>x zN^>z_r+$a$>VSwomU{0V91S`LM3PU&t=`4G9;ZU*^eA6Yp_etjce>SGZkiZgq>f>F zAXUaw<#zR2H~hbNLP_D!Y_<+_MEzYj^UtQnEJqzg%}EnzY7i{a+RNbmPwK0XkwZb5 zPZdF|Jr{l#(nEe!A<3+E^-7d5Ei7MZus7NLs{0TEuh*Uaj#rFQ{+$|UyrBDw(bB$c zx4_}~@G5dbJ}bp~VISE`+9C>Vy&FIF6y5L{zAd+#Sm}f$3fVPlnxy*q8S>UWfo3Kg z?zL`ckJDO;%B0w&?*W6D{p?2NUq|Cc7r|v!_|mnDnwnSd$8)+=@Y(tg%mNqKq<7Tq=gf0{bIfcgzhTBVn|=6e{WN#W-3Wzn<(31*8)4Vi~(rUg58Sfc8FJP|$Z?|!4;ULy9^;qD(A=x6Do z!Q7iIxD8&WjzYIp_%{dOIo8`SQgJB>e-zu5z{yEoD9Guf(kXtCBL|m6j8U3(*RI0V zf|iB4N}YMexT=sO1GaI>*FqrfhLA-+ikdqpL`p*Bm~B+1Y6?~x_t%M1UVMTvt2BO9 z7)Y!P@kwpe?Nh+8setbZ$4^`DW)yA|XuEWIy*;iQk?R7}_cLNVs@aOdC<2JN6i% zxeq{~!aiBxyce!ZJ_T-M%G&f08T#_>*rfXW5rlwQq}@1hN94YSSvhoNuQHXL6$$`S zHWy|uuF|b5*Atp8v(4iYqb5L^p-OK=PQ5~Q$&g!@Rc;OKRtL${&i53W!#6^GN&A@F zg_H~xG5h>zLG$VejcnQ@V+-*sI?$T&)fmK}-LC1c?0R>Ujw3JWqdH28FM+6>Pg3NzSU{dI0bX{dEie?#@KWt z>=}co0^#Dx`4LYF-x&T}Di;z}OSW<>{q;K}#R^@lZ2fXlXRc31NwRfF;>U@&&ngK? zcG=5GgAL9qv#06F_tHX3{HvY(!dN;vCyF;wj_V08cxEc|)@B?v)Db!;yuHa&k|^1q zz8-S%-=#)UNuG6})Cg?DIP@Hn^ENOxgT_Kfl7KDUWw!Yn%EZs}mf&ho|A(d`AR2KC zR$kh~1h#Jmbu1KWQ;`gV5YO_$%_7UovR$@zpfW9EX<60Sj%@=^u34We9Gmhh+UyE% zRp2Q<>nW3WK=OBeg7e~=gp+|H_BC40=oMfKDqD+yC$#$D)CKEm7VUotZMq|uo^--{ zECSMc%CYHPAPT6md7yNqRqo_ku5)Fj_g>f?4|{t+Y9xAtUz$W2de?05 zo`YG(`@U9K7d)NkLw(hIUp@wc8}cgh4%J$_>Rgbq zaPkyST9C?KWVWaHCl|DU8xO-?QZ_MS?+%Y#@0nlt`&%Gg*W7_=lw)wZQW@Kt(=8t@ z#$~oPBqp76K`I(8-)vsnAJu#4Zqp8{9Y$q&$YPx6{G+4C2lHzuQyoJV9P^qlAXjCs#q>f~ux@V&Ct5CI!N}f9{c4!9GW=_*Gi#r)gTRY& zxaemDt3!+R;2fsZT%oTcsQshh5|!-(^^!ua*%KnOx|SCwYg~Ga#gKplUqxoGKld!- zMG<-)`uS&dwRsyk2ns^t@!Y z?}bu}W-9t{H!nFf@`^m-gFDqbosLC1F3$Q?t`fPG^pxj~uEE{L+?4}sRq4Us3NPGFy z)xr(x4{qj5PZ%2@Ne{L)5SxN?t0k0DtJIb3 z1o;Kyx5S~WwW?-na)#>HJKXQAGaNt(xV^<1(}j`=$&vgk*D1Ke(SCM6gi=I=UUuN+u1p7mrU}c#bynpbZN8x=;e%FhkR>&xOj(bgiME=wmHl^=|sei<=ea10^*WGti62iBw z<|}UPVv@fOxK8SpmaJd=%LUaLMOrnVI5nZ0O--4WmgB|v+9bvDwO|ur7zt)i+S2PhlIEM zY>%OUj$NxMRr1TSQr9|vkdN5VRxl~okZflF+VkGyVY|n#fB7%hJ=MDG@PYMi#q<(e zlAUsAhoxagx*%{|wl}@LQ9dfkU-(;Ndrj+$gmu;7uVKN{7$xGN)AdzZf;@YelcC+9 z*p*wR_aNyoym}srC|9!EV#lvqycXkJk7@nBZWC+$u{-j}B_kf`r zn=KX7qI!bR*Zj$jdJULJ zms>DVvpVv#Wb+vVwwUjGy0dW<-Bs6&XW5G;*ln-+0T1esK$UxIaPg z2AuAAWouqc{vVp;JP!<0MW0N=W0RTyO(9^|!1N!X=p@*;IU0&bfir8K&L-Li}DlR$M7E8XlJZuYiiBli!7ia zp90BBEgi=Dk@yiDxg6S-d*oHrKAIU;FtuU{JxADLpT6ubuJUzfF`lB^PmS-lpS~5B z221LTx)kRt3c1(@jI%__#|PK#G*AndK=qOV+#eeDCsjByOZC24zksMpV4v{VcAL_= ziut|->~-K>-xMP&f%>_u01E`G_ZBxhkCBsXez7wgy~E2D*Enb>kdIs_-ft(K#i!0_ zG`HZ(gQOJ|&0K#pyM_1UCBOEfRdIv6DO%Uc?O&%vQ_oYo->)9cCA@8)+Ag>Z2Q`_DzM6g=yoTiLm*jKr&6BN;^mS;i;nRDI*6l3VTXE~i?C+UQy2 zqpxA5NT_h$^Nepkz8Fkk&DE6fOMq=D$AiKwfiP;<=nFL~ltHxLbr1D)Ms$)HxbpQf z@M9&m+P@1t#x|G{geuDUt4iZGDIeIBMR&h@7vl65GIux?9SG1JXsF{*!t>QGuk1r( zpu`ZbY5Y7RJ@&4}iBucjB-Y-@pM9dc85UU1cNQOKp><&;5&rP%fXP^W&HJYFh z5*y*Y>I|uNY6n0&7Bhd7z`2R$ty#iRb_eh^2DloVr~))h@-sQ>>Je&WN-fgl;ovQ@ ztZd{5>%i-%Xi_{k)6DwcDB4@r?`*O1IxJx)D&Ili0_$( zf_H*E?w;vuTVn{>!o5xqfYFuORzBD}sXJ3I-6Ou> zkm;lDK^;*E%7?$*d>^CsbnU54pEx(vM|WFh*@mn=XKr-CEjQV)$0660vNS)U{DA1+ z5N#^uup^;@-gd?BOk)~R7s)n#RKBSdqihGC@8{f}hF+Rcou==|+<}#)(2_5Z_WcSY z>N>@9=_Ie}3x7R}wBpD7g1i+8+RwnRKzDh7#HgM^P0xF$ocUa$x)AXmBM?%fIrp$A z>%nd@T>)&?bq|`M5*rzFp};t(UcD#bs<5KjqzX`h!W{ii(cQIJgG3R)(Jz(4h*!6M z(%(B(Q_-Jx`SXf&;mseohd!Q1nh`mi3aFZDfNbSMRKoL%wx|$_qEi^J8zjT5ot`Tq&{8r;uPQUk!`< z9KFkkm~H4ne!`{DlWlsRmfCNvJAztBtO*DH@OwHM!!}(Ma$FryKmx7UV1Yy5LA|Nf zI6x*#Fu#A)I5d|OCmSZ(NDr1Ry{@BlZNNn_=h@$UR2qzyUenH;5~)o)is?m6e}tWL zzTV+f;24Rht`bZ4WgH&>r1oSZ(Vk<@ydNKM9!7qS)r|_;T+CoDC-8~xIaw$IH_(SkR!KJz^Z9bmgYd_Z{opHIy4#K}fS{M1|jb~bl zXCP-avnDR}i3vdMtj~m~a|rLR!G;cSJjmd>%eoc{bAKf-Sesn90JDRa%jcdyG`lP? zcH<^-$&Op?CqB+f4hRT8Mwg((*Rr}cAQ=ft;0~2HV$IdrlLWfhi=Q1BrYDrXKl0^EAZ6}Dl~=v@F$Ago zly2jVn_6Bscn4GwmrbewZFG$sLeO~%5LEA^ZK2P&K<889YAo(Wz zB9hioccxGx#paGkJb!wi0P@{bH`u=#W<{E}Qgk$ukvRyOikUeK# zZM#RMT8Z|uK|dsU-s0F6j_ewy7_|wB+X1e?%oA}>_E+I1ashM!Tuit%@L)ar7yU9a zjEHpmV^(=0zd$wevBczU-LS8eAb%DQ73?%H-UTUlxUzorYXd!LbliUn$9bpj>kxfr z*L1@n^j7@^dykVX#O4#9FxAo0Nw#)n`Q-z>G(_^(3g!JOT7aA3gja4IJ5heR9eR<7 zc+~f*++@0j-pv9eMb)}w8GQ?Nk?w)7?e`MVu3uICa=hKl)Iv zd+=|BI9w)jctkSP=w6x+4wLr?;h{5$QdQ%1!2<>$`7{dVUDv4;M3_;)`+ zX02;_|jAT#PYdt9VXmQ89 zxn!b;P!LVB93yIJXtT^PhAqenkrFb?;yfqE3u$9J1K7V&2Y^+ISA5b*OohY1D$b-c z+en`F8-fLw6>tZ?);RhanWcRyADwu)>_eXA{Yzyku$cnb&wZ}Y{B*4x@0@`Pk59p$ zoeQQc-pX6Z%X3nV(|3>Esmms5lVu3lx24b^Xo+Rgca02KM~q8JbDX?h(iQri(1x8I zcgvHLl9UKCOXiy81w0oqwuIt)Ds*ot@pb$QeV^F%t5OH8%c8qzAVxSJx6o>-LL=8> z4bf_S-Y10G+91(#21LaAm&CN!n0+BE1Jmpc-ZFkQJ10<>Ji^U;rls3&sC$xwQtI!KZKlchd1mFsIoZ~ce3Tfqon;N?WRIZtXF)%3 zo-KZ_iJWcrQt%3tUhz~n^M2Yu%|m_Rsz+c#Z^sm;3cqTYH(kG^5=7M-sb24g%^nm5I+ zB*Qu=KvEDL;o6$#5H8u9tz`k7V79_0FAo&#nXFHo&?J?fv;o1aTx<$OIS)P$AX}ka z{xBl_9QVM0orR11S5f|NE61xvpFMM)Pub0v+OO{3qF&~O)+;FY50$6C=e_d0A@);@ z!n5af9 z(Z_O#`Os2-8eOmLP)e`HHrM^J7vV2`_gXvQNJKsTtNmUOSPNqtuF022f*?<0KTk!^ zh!#K37AGDtW08XMRUZzmzQKPP<3WHFZRW#4Ff`)XVf=T#Tfj!>dllg=L*_=*uik$~ zI9UH0)Q5u{osO_rq}>*q`9s4ro|$v=?g8cp9O4}t9VhHku~>JldnWq!?Uw+X1*V;? zxeZNhH*Q1x%qH{Rf89K9Rv@CwLVVdfrzL(ozFcN!mrwfrgEXyJ3zfpTrOFb}%Ib0% z4ZI?q5%?ACJ4JO%@gL^wckbS}6&>;XwyLCih0vx{*Y3tl7xVCh{rX_hS-WG#F*?1sas8ec!h>F! zd@Z#axs+!uoL1NFx!oUi({NF-dcA{_Ig%hj!9;-fO@DzDr-k~<;5}wt^4ap@8$Ebf z6k!@HcPgAi#1jp*#}1i~y_cVpK1MBjnfR9dVbtc$&ttU|DN~qZ=hN6 zz`U|R$)Jk)J9XDF`)lHHVM>Z; z-fS!T#Y4PpV)DuHG|utOrPVV~Rh>Tg#Sy`<41!z)I!+!BWUw|vTctcJ-|3gM@-nT< z(DP)UT;gE65h1$igjU~ey9f)N!?Tk)?(Y%RMB}QFagA9Cwzi$EA0fwsyH35i6lGJG z&QRSrnD6?vS#0*ui~aWfkvSSl{YLQ5X0BLQ5p|9$0z$MyJaGB^wgS3`Vv7w$G{edj z928MHXN$x^pUdxUf8UV5@(i+an@=|Y?{p7KOrI3Rs=dD#_fW5O)TC%mU`(DYIu9Lf zoMQ}^&c7fLVoBTXq%bkiaNoxK@b#~V8p44aqv_sOG-$btZomW$8Ow70MmzHrdNM~& zw!XJbRE?3H=gmDp_1uvmz=A!8OO+K!rgDs4-yJ!2o+TxYR$hJ_+vM{i%Jb4A+8rSH zpAsOtNlz$ejP^=fwQl-6Pa0Bohn;~p`ZmXVkCC_yE+@A_HO0oO5{0Qf`y|K9*Txo#}n9 z+b_{QDSaXc;H#clo{3rhA-Ri5c!dmvUm~buCEjI$!iK%_U>oY2`mT2nP9s8aL_ZUF-asxTt?B} zoG-+`c^ta+X{a57f851Wiwh^;{?WmS?x*S=oL;A!7!ac}}WWh|7 zv$#}OFVqb|pkZM;mw%lFF0nt`--Uzkq(sQ%R4c1mj)MIf6m_CABZr zCqv&Tx$5`Q7k~ccK9uF=`y0tN2se)zH?CXj9rb8okjHQhxD43ZB12e@O;WoirQiMZ z4OxtL7mhrKo#8p&n-yw!vGXt>9Cs4L0$UU3(2hs65q5oh7k2JrqI)H+6^>F4 z*EY;j{VE^%#RS$h65q{eb-HhQ=DWBm_?&&dR0(}>s7+S%l()}|7m4ob=Avn=sJQT} z5ZB6!li8d+-?MId`4w6aM5a4@@z&mQ^-qm0@iX>u{jxgA=RYR@O!Vfy?DtA} zn6-DFNrdD}kIqL)#xW~(osx$`-w(3=7e+#+ADu9NGd}S4gEk==H~a=6^#m!hd5Dyr zui&I(us<;cecrwpw4Y40ea8HZh1l1KP>iaI%{48jANwXs0?K$$pP=l}R8hzDob%Q@ zpcv}J!*F)%!(&*7t`O9|qBp=^ox}l32q0Oj1fM>5yZdhE);kd7AOFOtDnqs!+NwW- z!Wq4tRSf=UHRIhG;4uwl!VdQ-J+Hgoz47#+x^Cy&$RlWdRn2QZfe*XK>*QF@4tyIQ z7-^HvL{?bU`CN**S^v&W&71%U6GQiM?gu^?dV`62W~3ilrEP|LY5qj4=)Ttr8mi%T zJH0-eI8ruCzQqA&v)DDta=&jwiS1>Gapzbcb^-Q2wuIi>=H_*}%uVZ?cTpeSD1MTA zx;2V@T6e`nJ8wlQ>$mw$kjhNXBTNMqyyEWjk(sLZ zlPED;(C1V1{)|M8Y*Po7OC`ab1rGWTa(#TfPn$lA#`@gkm$>S6a=#1OFBiJE#+}bm znh|l8<`f5&@7B={sNu{$A@`*J)w^$%eb*#4nJ1&9wm&hC_4C#o4J{l0WF(5XZXA&0 zmKkS|LD&nPT4tJAk?yWi+^sX-<>ys-ds|~&7`qZr-^O%Sq&9H*OxhUVXtcS$xY<91 zP{H-h?ELy*-|}JZ3$-wbxy||bsNgl5&y&>T+-0>)2Gub+oB2Pg6o$52H{ zWS+}_0NpMe*mR{{9$u+~YJGeB#8Z*^IX|6bQzG=awQi-%Q7j%wJ=acB^S@6l{X!Na zhJe%z``3I|>X15>{mGkb`CmWgIX1Pw?9Pt%me;SOg`0W8%~FW+pR5Kn)NAF1a#zHT z(n7fv8)hBVgX6WUA>Hgzp19(^f>N`#*V#}+0IK<6= zuc|;^kw}!^{)wA>8l$jSsVq8!M()AbhhfB)*@;)3N)fi9at4*fwM-$u;no*xtGI`2 z)MmSiTNd*8@6z!Fe{YeTN+I{=3r)|hZ+STtuM(IZ1%|MfZQ`_N+9isYd&Vu$2_D|Z zY@(h*7g9(}HP(5s`&-=8$8Gd0pgK^V$dSZZwF;)rU=g-AI9nbgo|HuAC0q9@{nNA_ zpJwXet#lR2jdetZqE2sKDI;9WaJ`uAaW-R({u3G}3#6I@Ld}Ak^wSHy zTNTAHL)2r){Y1V@Tdq9`+po|x38E0X@yk>6$8QsgZ!FcJQqr}*opy%yg$LGCahjQq z4;c=412mV|NMA_qAh3|Ykg7a}tBw#o{DN1n_Q6lho!8&mPE-tqkrrAp%a&ZJokg7b zF)NUBa<{A{#E>g;Eh_9l+L&QUyP0uXDs~0OMy7b9JyA{CsycTK^x6d-Cud>M}mi+APigtIx68_OwBK9`nHO)}2K!ty6i z_3z#HXJac%$88?S>?TiMlzys>dnvw9rG(V)H649;lZVeKY+yIM;QhMkfwPO*UAH-T z^Vu4Y$5oG?#|ZqKt+3Z|eJoS^du|#MC4lF{$fA_;d21(CC2nhSyYFE<`{5jj2JJ=j z<-+khmrvE}|I%?7H zaJIL?P+nd3c~9JOgYhxEj>w(u?AT*s)HWLG^Fnm0$4sqblN_x;Z%JH{^Q%*$%dh!Z zv3?Tl_OTy(-DUH?`S*%1YM1|zqaV9fzmGXMgTb%jSGwN4f{@OwV2_O15Ec2pJ_faC zq0k<#CmQzU{@F4V4M?28euKpxuyQHIXUb~B;Z7KYRW}y_mr>8AjW}}^-Oca7n4|fsyX*ghk zJBS%WkWX!<52A%6!8Z~|{Qr4myk*FGxHRtHw+W|1G)W@x_Za{CM_~A6YC+U9Y3Tmf z5XM^;tR7tz9$J+|(Z9a}mdu1*eg_-{A;yu2L+3kyo7*6!!|&NpS(~PahTiBuG>HSG z0X3c-zaNW99(eG=^e}>Wc|OueH?Zi3@*RS1q%L(Krx1K-iJcCm#nhjM9!L>0{`roe z#?!kg?%)MI#z^K`0~X-xF1kN~DLDih@rUNn8K@deRfu{z>~biIEL@`tS_U{$$X^qN zEl_V@gmWk|Q!X{!m1;f-+!qU_kbj<_<-zCNpgV@#KSRKIHBmP5h1{+Z2qYlHRJ|FVjI-u-{A%Xn*#^%!~E8$qQ9Tt1M7STtxhMMvf< z?Vky>E05CxiFR?enl>%OVO;JHhDuI@)-5wE;an1#DT5kr_a9jJ(yn_F`lx5yNj&gY zNC^ZtH8M%>+y2w?1o7=`>J+zF|4Vc8f?9k0w;X4I*mfnF;O(DQXK2|LCdI))#X+re zeYW;cZ|i7?Xacf+^n$=znj~H#B(uLpIWsXrFjhjsHf3D&4og_7^$)%AG$9vZ4GSL| z!G#VC0zc)TXkq3w{MxzB0&}HieZ$qFAhD~v2h=z;$4-Ypc2%L2z(oS9T|nS4Ez0^;)@G z(bXn(LG_5AR*ih2*y~$}>3POsL^GEq%9A8Ul$(X&a#u>$v<(bEg?Hj}ZO4EM+`}F3 z3%*ldJu>UKTU4SYT6IHY=KduH^Ws;j11{B;`-k>>+h@>1BC#V=mMNxxXi`XR*ngI% zOJSNKSN;q6bcrGD)HC4F?)~?Q>p=0EKm?**8(20lL}AxJ83Y@(Q=z%tQH8V849aBB zRaxq;5nq0l*XaJp>~jsnm#s4a$o=OOj0!z`FwXl360|b`yiD}|7TMl{ z=4REe-{5i`;7=+{w(rMXe~|UeASkV+;89AFsOcyGp3Lrm(_--FnXcab!_|$o3{vtT zxO@KxlK(I0wdx8~&KKa2`HoS(Ib)v%*stCs4jwefP0Ey&m6iBpq(1Chy0~-l)f)8U z&nqVFc0p;Phs$7#`iOdS2`Z?FQLl}4kO+m}EF)&*5dE6!uJ>Fg3)tn@o92~SavBzW z7I)t22`Y%Z`uUisNK2mjTu*q)MT}nWx4i||!M;c3`D37wfJv_0T~tZhkmjMKxG^dJ z;9Ee#|IOmT-LQxvAODL=fX;+K{|7EXLGC2+vId2z>pzD@p?-Z2c?13b+zmh{{*T)N zQib)@hX3#11vKLScG&;lUrm2S{9j1a5};nf%JBb?D1AheI1GOmd2|_d=;00O`vDqG zQKNw$1J40XL>*nm{`+}<29@3uoIV>yVA=r!2=~8UK2%dIoIt$=JmPd6qW=8*1(h=u zN8TCD5OP^=E_jFoY^8eveqM)>68#VBs)g_N=%!dSrdV`EW34en!Gm?+-95QUMCAI5 zQDVr~{4alTN{M$o7{op5mthfGYv!RBPSUHaOz_~jUv1bx`1C9eew+ArA9P?j+SFbs zr;-Ngw*NDtnRxE(*2Rf{a-+I;O_rC7NDoPOU2lv!KKh9gc^e$9Q3`L;(-**hMAVm{ z@M`WqiFdpJi?EBt9=htGh_VRknM^YuqOvCnM$}R=1U$xe%I~`epBa58NLky41 zVyI@_i0M%YB7gQY`BF77VrCaN!^q{Bi5#JG0{AfMz>o{rtYI|yicLt_9JHTVu=u=x7PJyZrB4M9 z1zFJhTch(>?yG-$EG>A6g4*bn#3(2LvKR^VAGpM{Ar#2$k;55r_xIx2GO|D_((sXYI60!Lc@=ChyNqxW$f?=vY9|plaU|*j2X^=-X@KD#ZA8`o#&8Hx){lDT zt1p=k$RrK_!oE>t1RRP7|02Q^Kq!gCMb6U+Gx@S>hBY_P$$}&6GY$*GpIn^7-DXxR~V|$ zaBE|NprJ*u3$9_$S~WT{oaejLy;+j4&spFyTO2X@YxnN##kglGF0Y-hEQ$Q|S0&I= z8SYY|{bgixXLUoc3@X?C4Tu5hoze>ECdSi59kVSuQ*OIwmCyUpY2!+6&eyk_kes^7 zob_z_=K0wOQ^D;X^v=EdY>d~@046OvUr_~T0-YYg5c%z$=cYG)2Owrd|H0{16YM{C zKkvdJ-v3gy1_ba*!XxOB7pB{l25jIi!dBuPtPqYS!TkjZ{KTZ0g4hh$nwN2+q@uY7 zL-M&!uXAJfFFdY{&8~Xs7>IrMiw1Yw1f##i zZb-~%g=@7;-IUY-f}xUuTii=+XQxBUebV~I@>%qm&KFy*ia@yW9H8j7%44U;bcq5o zU1WcMK`i2+#$vYk4^3rc7ZeZV12XgdINbE!pe~G<`>!ia(jiglwDAmUGfOQJJVY&R z0yJE=UV<4KqNIUdu2OEMW>C_<(X{*?r0F$pdgm4=m45h0is|?w_9}LI1SFRvMM531 z!%ON!GeX=FE=`!wnOC)s_L#*mn>fmGSxgkI=KUCJEHI}Hbodfu-)$Blcgg6{jWEt$ z_q@@t?QB?;ADn?2@>}IMO6g#6p**FQx|l~ERY?G3_b>f{>}mk|_HS~+NamIU1WO0H zqv7%&qPKPckId!Qtp^n1G(fKU3th0FBq-64_?KAjVhQKF$jowz*cl!3C2GrG`ZJ34 zw*T77*nlL4qNry|i@`@BYCh$C)C*H=Ho$1PXZX*?_-!a#K}mwtMeJYd4ZcZdtVa<; zwWw!+sCCZ~K^7q!{8e34!Mv?tUS?fbkQ6X;{G+rPZz%)KKmyQj+~1#|%TZlmmj70^ zz{Lm;wjy(&Ap0`^*0y>8r#=rZ`%M`Bo^v%~Mq3xDOMLLJIjq2CvcXP=J2j9wJ|e~k z{_2IsTiRd>5ybTH6p^2u!t8^^=MaE0^;ZDr0GtFuVUGCEquhgUfRnKUkb(_Phog4Y z?Esy~ZHAJ|vH)Hn$;_;KL@6kh?cWON4p5kaoWRC@A?h!%Z2EIoKy=xN=)V$$1K@m6 zB7afA0Jzn(>HlI>uQc|d{)O5c-~m|H ze^de=0MOQ{5j6D-kg-n|P~NL3*h5P&>pS=c?Q<=Y93RLy;6nqa}BTcQtP^e$kk_KR+awwa!h!O}-2w z(D7sBn}|`=wNxmK`RyZm&<>G@{1R_h&&aasi;m)g@o%4u_OEE)4nex+!%xUQgB9@5>Tl##7|8>}ai!kn=b$6f5Kw!deIb6^Z=$OA9;fk^M-nrAp=fo-LBfF5wd zkad!B!3C!ux{y^)UlIWp4rTM#%k)OiT2{_Fi_OcHmltbu$Hs?UdL`IBG=BwK&K||w zfq42B%eWTlNF7VN89R{Km;R6^^yf6Hp|F`kSL4}qg^Gr(Ee0$dC&&f)(<}7-w00c* z>hAYq*KYqZ9z~402Eg=ZiSVxZv^0T=a7vaGp^@4J;ZRM>F#yM)13t? zF^i`mV@@p|^lMKqLc!~6`f?kkv)`Qa9h|F!x;=Rn9~&QW5Lb*)h2FQOj&>A_=%{Dh z7Ckj?H4Np9^By5$NrEIL@1;9LF9Pg7A+csbY~!lk%Zw{=8A{Kw&o>a$nb_iWck#B( zA3m*b!^vyJF4r-G7NfTo(nOk7Mu_eMeoDE&t>CZg`9JwaKm#}3FLp5>O&o$Ec0YMG zQRxYr4wUQ^Ymw!A8xj;j6xLWLx1kia{?Hs7{gO(hGbVxP3v-rkRb5^mQ*WU)ikAw5yz!f!l0p807z(tN z(nHAy;bS&)63tSxQ)i^39bbGcJ;(oolsZyHQ43%pog#Y^o$-NU{=}unX0+8Qr=y?n z*3&_5oylK=by~wm`4qfIzV=yJ`BEmyj~`J-)09+^>#Zz2h_frZrz`9!bp9UEUY6eX zDNC!I*ljLKc!jM`bCrR@Bn86HAIzMx~G{VISQ4wE9F z8z=shWov`H+>s#3l@x%4ALhZjojF~zZ?yoRF)=%@dg(_&|Erc?O2k{a zKBxksLkpap=&ql)J$^4U$F-O0G2i0zm9KTm#bKn~f*nFJ5ozO;vOa zsDoau7AuQ6Qha#_LVkpqgHgF{TBdep7*~uofVBY2Q!%yA?MZvvwbSKdMvi@)wxv(1EZ=HtVSTrW5vsj6=wB*!7t|G^(tK z17PIiPnjymt}m3In-$u=&r=WOyft^=Nmd4ccqW(>xtW0SW&CWYw+vmF-y zTACl{zqxg4qAqD_zyO_&ufQJSkoMDlCjKCmfEx|^-M%pMtSjSxapuz9o zYGSiw$hIf9E=bZO^Ai>Eb!+N`!F=A3-O;E50ih04sJIg30}Jfe9(E&l?p?Y4OrO<~ ze2cQr>}OAsGjX=z4(lLOE;NVG?aO#uG!S~%mB(Su!Z7%qt3}s51$48$v6!^-0}-px%Fzss<3jtX5?c>BiJ z*WKg@37DK`pLpDwPB;zUwKK+1fj3n?Y-7F*MMK9-u50`A=%e*u^IPK-xu9Epjf{-j z{;$soH|b>LlvI^3BOYV%57mVM+&zhJae8>{Y#}I?)Wu{x?X}KHy5p#FoGAF!Vt8^G z=X^!)d#JfBZ2mBO)E!obz(2eWAxc%l#&1GrjLAko)G7y`%^}w><0WP$w$|Iy$#(~& z^=@Eeu8uP69%GG1HdIPpn2$j(#p)rLcbzdCbNNjSsb21xITGWeks8YhD}$&qRFrGY z2ln|rogIv67PToj%CL2#Y?Q6f`BuBx`FZ%Y zYG=lVN!G~uaOrc=_3jm8G>W7??~tq3%AagC9N%IU;RAVG4Dr>C>Vb9>%3;eIejXa2hLfb;!wlwBPFt8tdnsH)k?EN z?0=AHT6|{Hc@Wi#II-{&PW3M7~FYh$bqR%^dB% z!0NVrSz?;W^?OCvHZtPh#;1uk$v}xhm?lNFSg}_dms4&&ZvCESOlDkY+4?z@y-MXk z!g}v~i06s?3EB<>o`-*{l&?GG%|FAYgMtXehis{F>U)}1CKPOO-Qq_ou~+ed^JrB(qlg+CHAGRn_lN zVe}U%EbsTfQ})Z4yC(cA>;}q>Ua@!c)$Vm~=q#@J4-My}a*jQh{|$7uuZ`?4x{Y|v)gbm-@Xc9=Sd;^RHvQO(h@tbuCXQC$a%&0#KO+uP?jUK*f`L}RmDjy zwu-6#HKExJ#RR7#L%Vlx$xzhKyqJAkA@bM-XQhyG+2XN38YTv{@yPChzL*-7Xg>R5 z)HpQH#~NkNjN>|~T*WY-_IXu;3*HA~C!d+Yl<>+fF1p7qTz{eQaOv%uam{7+P#KBy znZEpXV%yH#aC62r(;aW?CnL}M^BdP^p8V)gNpQ)(MaoYLNK$P@%#^{e*1Pj?!6Tk0 zIR&!KJ!0_P&%Q*-t`lh#>+DQR$f}p=i?EIQaNF#p-K`d%70V>(oBRS>77Z(gP0SCL z-pVmu+Lazt$OgT#-I%~kApLaE))?D^Jku(1>8%_EdhUHJLAf@)tgcUb@I&-(w(f1w ziXuwUp74gAi*&A7d*6$2^iC^Apsa^1$1{(3uAQcNjsrS~@^nZqX}iK@9$vU@+-8ny zl=+&Ir;pA@x**0_j3e%8Wv&E6IpSVjp>oRDLY)xdLqp+%rk3$Mx1Ad`IoRf3o8kf| z@T1Oi$68KR;AT3V)fi&Ev+{P6=fn3C#~Bx$?0=PQB8Yw8!#Xo9AqzWaN$auhn=zv50jl>&mqW+2UO_kR zWkB;`r6JJZqz6l1SEouLVOFXV{|{yF71h)hwGE?)fFMYh8l*}W=`|{cE}$SFH7ZDp z5a~TZklqvoq(&(sHPSngt{@;a^xh$oP$Mbl-{<{q{)_kG`!4n#0|tAr_gZt!wdS19 ze4ZJZTS>mh3n*>E5;UfRT;UgF&{mgd@<4C1H^CGT9L^022r&5L2bPaDZ`?CGuCnn% z&@4CxzB!;tuIJ4-AHyVXKtA_+S6mp!w}zz`#HD`22hiY7!B zLh6sy!N+*v{(G{@D+rIFevKF3J~KS=5vxRTu$^BRyxSSv1JwObGc}XRI!~gero4nSk-?h z*AOC`?&=Q{I0mTsb~?b0EnaF$^E+tw_IC#QA$Sv}U$@CE%zZf1x=KV3UFP!*JA#>I8lQ_|q)M!3`_ za%KoPRK?1|MNCBZqzrkl_N!lCSf4{z9nKmJb&p9Kx|JstJ4Jxs{-z!3yh%=g=zbHr zuEp{IU+*JzoOt%0@Eif4Z}l3Z4#wx2dz@Isre(!wG2UAH7aKZ7cJooMb*^&!l_!RW zfpOaj^<|rpir`x}=kEc>ml_m_qoR)s&6KM{s491G++VaOM*!r?#&|!X-QXKjFk?y!JiJI1Tsjxx?lI;OnA|e4{2c5 zZ$PsFy%;(W{alV=r!_Ms>!Q8T#zoCx0lV@h={N16YcGUwTdv#l+8=`h_^e;~okF_2 zKj1~N7YUb6N1#W6XYqiAq=h}hmn;s%p4{`hF1Qh1FcbT(nr`S9+=nUHq1RO)vKH*- z|GS>SP(UzuonP;6FzN?$99$#ScG9JOqK7SyD#W!Et$1ly9n%|BIF0G8r1*U$X6I)8 zTnAUdzXOzlTz<=--NHqPbc6&g2cZRc5F&iSN2s>Ut{U z&u3}y)2nn&!w3yX!)SNzVLX_xepp*jxIT09#rqkoWYy1S;kT(b58ue|g~Zi!^<{HJ zcrHb(|Fu56gSU=QG>f69PrLKeGs*kB=IN3aIS>6(?k$4p1i`p-zUr^>F#?()EZQZQ zc7N2CkiM?+Cd?Rjw#@2~xTv&#o&CM`YW)UP_zpF6MW9^?Jr~t;JpW9WW-`60c7V4L zVMM}`8~x1K!mJ1tD$(t1Fqw6&4Wu8d_KRP^s0M_yjPj9LQtiI0#;Z!#kN;A&K0%%K zg<5w@p)Li%>{9!dBn?)NU0vOsAMbgm-vc=Qt^!TcXs&v!DTpm7*2L}eBfdV#p?Y^@ahE2DJMMI@(GiwmJ|-W1|-Vm@yxwhT+_jK z(gM;#9?>QcVjsO@lKRykl{Pqg=-^VMVMMgw=IGvQXVTiC&Q)RSc`e@LS(z7gXnT>> z%MU-ho+iI=b$PI5zP3F0q>|oitkY7pkIH>i@OrS*jM`0Jt?bM)<*%8 zZZ+Sl^5SQu<%|@glhROo6fEN~hibDLQ1vDmpVg}x)+(Ge3@bRkwwy|WQ7 zM=wZt1SNhP`j?Z8lu47DGh6k(c1b`Pw+ue#XhiMLQ<(Ldh*l*;X`tW>Kklan6Lz8h-$LjllsZx`dbOq??SDM-OjQa&sL9o zA@baMX0t!@8n>*qOx3kGm+wfo+0&AY2FA(B1<-9<9Et?cdx_m3;s zTdvYAtfT%E$=QzUVzX@tfot1u+vgc_UuTQ30({}0)u+m8FF*nr%=YX%I%PbmW+oSC=xbIz7E2Tgl> zgZnfw24tx%&s*IBImk(yV+RR+rJs^+f2S_pg%m8;2li+z)9@ z^RuV2U&841_t`gVOGdw&jifjhc0aY@@HV7&ZQiqr|g>|M9Rkc)ue;V9)NqRCJUy6>9eD zoz^!8M&*Z`_@5{%j6Q#YaC7rxW_GVNykUY@zJK#)A6$#1i|^jgnwXsdSd)Qh^w3dO zzbD&Yt-Rjdp&Dh8t}tBl^h1$E_&_m`gk~M{|41?s=H9egI9NbyB5cXdK+n4L?h<$$ zKEy`CuiOYi^&eg#sX>RuOpGlVEhi!t-Yj*tlRuum$MtWyuWQ@;6wsRHL+3{C_<7&t z9$zwc8t#4}dac|%1oZV^s`{p${cyXUyLCe7kFlj%6@=g9x-ja%6*QU~pm(5gp5rDORW=M-K>LEG2 zYU8kAwl?@%KoP6rnOy&Iu5CvUCs%zXr%87sSBh<1J4Sr1kwpsCfa`tjO} zAZ*T=x9T8w!%NA)gtq0ftu^<_PYcd&VRV?RUQqpLEYG~a6E2?-{lWpZPJ|J_>9qtf zDB{i5AS5A2`bgszo(rq)GC|m=?FHsc`&)a~`t#}B=(=yMfYWZacuqREt|8rS!Rg1g zKj@UjKPZMfAN1R>`&<%nMvk|-uZw295Rl9Z&T}d}=D6k&mSBnjt7+drbg62~+CX~N z5I1(WRNq}45{Qc0b=<`(bbll8nx^XJZob#BK1fXgze2v5vwl;W(tW1pI^SSdyf$n&8GF z?=13UuVwwZ;ktA(La%lG)p``i?CCw{p`U-K^?B}rZiL+rq)%8K z!6^e$WE!F0o`H;dGPeLY>u@OhT24c98q~#YQD==|Q8_fyl#b%^jdZ6`na8j2AXUD( zq6+08nmZ?w#1TU`$}yByC=BxPf%Qkpr!OV!Iho}574f=Gmz+E|l$7VAy(^^>e;8(C1TDG2`WZ@sK+}AKv~aE`x;4@01WJvAi|wx`l_nm1eCtOt!b~% z^ji*lO}|VgMs|nVMRjZcXr!sWR|SX(NCMGR`b@?zjidp>$p95pv)H$Qh>c z?P5!eHOn}WRdbq|W2UZ=mz(ImhE3huVO|W_honPr`jFW+3WFz69LOtyJNcoAZ%qjl zJ^;P%iD&MyDiEvv4Hv8~DP1H$%_mm@*68Ba*YCZgb6ngV9DdiaS~|G|hDl7OHkI-2 zAG{vgD$?jXn*vMq`PbA>Zkm25KCg%iIrE7!KVEe2C|=e>E~@LlZ5PGmQkY6wL5vSW zoWk@7>=)>SSJ=)c?dXPS&bg&OLEqr-AXy6Zf3wskbMD_Pzk zSuKglR|{_7@w&c0)f5VYp8h^T$F)vp`vSd=vSBK}1+)AYOTRmKxjS|JH4hJ9;U2jY zcyl?zM}G9NJ%Yq)l8s)e1Y|uv^}f@5zG_BR8nqui01jnWfC5NlOqeQguNVUMcs+6> zMT`LH4;e_%WDEZ6abXqDv02HZ^eaml>+V!6veWILee;%RNygfT!C$}96cl5p;aA~( z0Ba;-7D~C+fKLY^+3v0te&`B%z|&W6>a?suqw0a&jomT#X%m>V)i+({*#aHm&fy~t zsrt0y47SLGPZ{E8pC5-9S*~lS>=d-Q7X_MZC&H&jia8UWEayHh`Z4F&q0+do2fui% z%MO6;{+A09gJ?=6@qvg}foan~K(VxEcL>L@HH}mj=pA>A3QtOgr;}_}Nne@i@BX>B z7_RAK{msI^M{z6ZEO);xn9h+0t*jsI+`reNZwK-OiRnQff$ z>#{!*EKDFx10#h*bXg!=Q3R3Yt}5E~SS)ujABjT#mK|ZkcI0#Xurt4Muakeg`rx3X@%Qtlg45!Tk2>7{ zv^F=yeRUaPyDjK<1rM+6?w06@TL^i zcX{p|Guy}K>k|5I^~iLO-SD2Qw%h%7^>fFDvlMX$-JtCO#2nWO;-Cxn2a$-V2Pf1o zUnRIqKmC+tG39Cpb9}a=Uw%;!#)ZMGWo5lQb>X>NI2&%?<327AN z(7)64x%H>A_(u43h9`5oMW+h_$>NhUg$cK*3Zn*;01XOSL{|^u8-~O#e%3h!ev$gt z7M$oO$L0RbLqT69PDYUkmFk}meY%}6i)~;i%P}u0v2?SRFG{V8DjGmmOEhXtlpzbYD#rStvJj|1uJ%su3(z#5G zKU*n|bF>k5i_?Db1JJ`L$swTut11WfmU@8M=&&oCS{Jt*UxMT6O^wajL?wi=tPKVI zbL4K@kbCt3KJANv==Y`1G2D-FeV4O+{PxBx)5B_$a_nXmPtcaF4z{w_?j{?V6CdS; z^A(PV1lRpZO<88>P3^uO2*50s$`@5&rdFm zqg~*#l+k6JPayU=&K5GOur``VVI-;lCh5RrGuB|d1Z$$lp>3|&hbvhJ%GUBaSIkFQ zoU^u5HR9t}Zb5hD=1>&6s#Or+iM!<5>50^oA4@{oS1|DF%kGXsI9aq`(SjCweJ54IBSAH8x26r#m(-l8m9&+-c*U*uSG#E)p=7UU^jQfGeZS;dC zD6}UjW9s-Txq)tVtzomWq1HO@MImz7`_+BS$*y3LcI(^}U-U ztEy)r_0}rBZ)Z|ZrZf=W<8)T_dk~SJtL^f@kw^@AHFp(ueK%k(ARFrS>7UGRdSwFg zJzmt(1ETRFX@*K9AW-e{StX-1A%IJw!%ycEVKW449sJZ`T)PTP#F063@BCrP6zP6x zu}to1ihkCWES)1is#BCM4g@q7s_~xL5Ht}lncrwD5boo-dgf%>LtLZ7e1TEKCOW_| zX30jntM+fNOMI+(TnS^8d3toHu{%AvyK^Bf;3>CcyYt*%eG=*B zzvyU=8P;~pnsqP3VZJld1*rhE52FMr)WIswQ)q&8X|-8NOUHP;ii$JSIs_GSSU?uM z-|Ha~FLZ>t7O7-OMJ06s9O@$VlMr3f2v=!o0_dSnccIUf$I20@tAq0ALL* z7kmI+hb=u&z#;n3v|&1{a!h)P2*#je8=hLIEj*=ih$ZV`3TH#+)*Nf$l5$|OQTdN! zS=*FAQ`Vlj!?c9f*;ellFDn}V7*@>fkxgU4P*a5v_)%rUqGXD!y3|Qx2g=ox`4f62 zF=sj#6$T}@obn4nlv(iecCoK%;6c)!LhqhOfTfBUPgH;W=&BB+Tz3Xiz+JrUYz1@Y zKrZs+*x#`Sm`+1r4D3j5z}+!Skc2N;YLgWbgoi|9(XIe1YH>Lq2C<&yQ~ zCQ>RkgNv`o)vfMlnWJUIQ(bn;Y#Md|lJ$RcAyP`Qe4GDLd4c8xm_8CJ)|T`kxlfu$ zDN&FEYsh*LQ5UEVpTNgJXO>~s|7EDk0ij-rVv;5B1Cj%w3IYQK@gvEsa<%@JfCj!x zZB@?g2BNb~!OzF50Z?ACU*p|=r5~O%&Ob`i=Q$`D759w{LD~K_6{Wj5QFibxCG(Jf zsnVdz+dTy$Z1FMyN3VTo&4_#GC-5s_w{fs|O$OJpy#QnBap#&Bh%Zv}qu(L1(J_iM z18a!>&TDA?N8M|#X0wh1BKZ2U;jXIG-efzS$@+P-2BU--J^;{!spP+V;-J&IC0Idv zx{sYkKLxwVMZ=kXYqDr<!oVOgOIjsB_U62ll9w5AaV`vAv>w?bwYjXg6P{ zh^&qXmqreia+sx2n)XI%RfgqNCC5tiradlD$_P2&RNe)mXwkChD@8d6zE3^Ud4%XG zfP-B%0H_r44^W1MOv!ZrWZ(ZdV0Jv7K9WuehL@6{$2{=6-YB8^^>YEUi=NaYV(O-c z89{`0V5dlSv~&ev`v-WZ{f|?zDnx)2gFv&gZ^laaWP2xzo-TQYw4WClfH`|Hp*+zk zpYr!7rGfC@i9Tae`V&E;RH>DNA!yV4&6|4s52ceZskJQ5tp%O8-(O&F58BRC_^?CA zl`i7k*Er1Uj=&!oa@!EKvUP!PMC_S2AIZ%9C^VB%+b(h59RslhIqEspNgIImD!j$B zcm{UlA=7;ClUJuSLO_;sfe%)j9r5Cuk0lw--JJhE39x->{4yguwTjb7rqDvocs_I) z>)g=f)X>U$SK)9tMEuO<)7Q8$T0y4Q0DFCIsa?qyil>Gm{RW6LjmVJ%Uz~N9`f?ON zbiB`=W_U}_s272QcszNG#X8%JgMZpdwb3FQOXUMn=t zZ*P04Bi^7E^vDGi(80E8V(K}%ztfsrs?AO?>lR>4d^GkdjhnH{(Ef-{yJ2;6!98YR zZT0Pw)AX8TO;5?XN6DvPCB=RA2{DDarzJJ+b<=9nMYN_23b-azQv1r4P z-hjr(>hLE^^NakC=|ULw_W>U>g4+KV$&xU)1Q+zgvbp^v--50W!*n=_CF_D6qlUC9@`W*DW5`@ni>PaFjv(meg) zoBS^oBV4i?-qb0`u>z_S%UVZV2U6bGH8obtPO|$N)2S6}VNM_74QbzC1R5x}tP|2F z$>nzTJO1(2pIC;J>I_eQP%^#;q3kBBrCBj1hE|(=((+#y47GeGG_Ad>_rbi2>)F-y z?)s!-mJj4W(57R!YjE`vq1mwFgUwpX*3L)mz2G}->v`LvAs8Bey6$P^o~}{5G@Z{- zqjHRLlk^1Zd~xb0tvkN97Xfi~G%3b5zZSVRMEp^)VI0IKKZ8rzJ$<%zSF+b!XQFi^ z1gjPD7_Hmf(DjVzLB>z<;IleC#lFQ*_9GJbP*6O8FDG!`_BA zm8A>ofFOUT#l<9uAK+ACCS4&EarHQOJYDjyP1!tWZfh@46_`pbfiEpzJ9S%&7ftlb z7H#w!a8#IU`8zqG>#J0*Hwk8T2~8)qXtw)xQCVKad7fCqpI9_=Q<$hOHh6Y`T<_>S zZ5N~-)1Qle>&V`CEK(C`^D8>w&k;cww!UwBHz=ythk&-5sQ-%{XE5&J`SZX|(2v-Y z5;9$$#}~j_Ayp7s8RToP+{C%%?x5NDSLK-sEs6sdJAjPzoexSinjmSHl|Df4vTb=qa831+{BYw_3ri21yztGw0Bug9?soL6XScZq zV>G=BzJoSxr{5c1|0~VDosutM@tNaLPZ0nE1Z zZN6CTmf48}iWbQmudrs_H_C%#4eIFy6z_fr@IGxUcDu9_^5=Z_>BJXQxhzNSZ%VT^ zA7u*tZ6x0L)hm*@bb;PYv)U13mW6j8$M z^9$wAyaj7tKv*VUwVKtR`=h%F8=8+OGAY{>R%WK4$RM7X$|PiHusQvB}JbZ0t(AYaCz>}{<^9=Bl+8-JlCzc;0xY~MUn;RbUa&1lc=coT0rGjDyN4r7OJfJ~)m;A=TBnbxw6rLtUBnHFASecO z?T;p`>c^|X`geyfAI-;UGI=Lqx`7~<#BTgB?PPAo<8I-BsLs8&jF%|CM{TF`l`M~S zGq4M0CF!fxK;zg#eIVzU1n=NKKD-$2UBYzqXf*5MW6tfz-7L*<`Y-}VFschNM+Op< zcE7{eI16P3(P@hBZABkvUdSt*!QvtPkCsNEG#zcaXsIT(IW02O<3omqy%~#y)@WAl zy>_)LbOk@b{j zRn)9Pnf)Guj-;^mV}sSOe7DBF{q6OUKK3-dt14_rkJcG~BkLAs&OKs<&iAckv1Yxe z*;Xpnq65!@*U+};m58*z00hK3e)IdKPEo?IMN2>|xc(;$uYdM1=2XBq+4P-Nf4fKESFlC%+XG{q}7V40LMLi z|2HXk9dH7Ms{>POcYn=a;-=;X_8+Ph3PTXa6epKZJn0f%JNV#qfO{BT6hwV?^o`)~ zIx9=zPkgYdnl^G8&C+hOdi{ZnLA}=uw;+md(y9|Q2@`%=T^b->^ND#sc2%FmUa^{$ zdXk~w_{wjkY#sRvlMe@g!Sz|uVY($lnp}eY*3{RB5sKOZbyMwkRou;MS$%@5X9zug zIhoQ845iMa!T@@uKoaA53gUG1P~Lbq5H;TsE`bA|72{QU1Y4hlJ)r9v_<8|o7~q3m zSa{V&n&R_;?881r{b+!p-6BuZIRbzvTzHm~USlW{5ONy*?2;ECmD9E=7adX`(hb>X z`I8KX4JhH64|dn>WaQR3P-hb_gn9sgdX0K%GKnR0wbVr0(y-?J557mVDWnJZ%>31S zt^=##hSnSMc3@i4%TnmsWsNVFKL70i_jmq7c-y2NQ|PMa&L*x~tYFK-Ln#PIfb*<=d-*vgm9xxBt17W652>PG95YeDW37JFNB`mj1 z$Ypr|kqm^1SSfgU7wAt% zDEs{sayfd3%%#pbU1aW}wf>bYdJpT!z=z`aQJ~F^xE`L0gV@(0Us>zw3q@$g_JWvD zRq4MHgb5g7=t_r!4_4r6C}!{B1#^s&9a!Po)1EP=la^<3XQ zL)X!)@v*n#0bIt9kb9MT72|0~&ZDcYN4IDqm-?Ho74iS9xFI=^{o+!gBXhOxYXNF} zy~GCEL0fwGeLKmukY6w z7Bf6Kgxr{i#(N98Arnr`=m-US)4N=U5)~Uoj?5Xabd9`>E%uVlA=;vkcL5~JA?QH` z8#jTb<}apPyS>)#@1NH}>uS|Hy&(*HW7%H33@J$4V8kA zr0w51xobm8t)}24YUB|#J?qB9-w$8^cuf<2Rs3qHiA5Q2(RUMHV(IR58GhcL@Hwc} zkFD*ewgD}W*0C*MAy`y=Y0OFa_PGcoKg#znRUW1nQHM#AsUMA3POeg(xg;!xe(o>F z8ze^TNz*MItdQrvlII--QA>J@Gf$R$a^k8lw6y&`>>l1Rf7O%j>HIecjGyXBPky_?0$+cSl_iVmMxX!?5uj1 zla!;qjYsz8!mc_PBcA=0d3`J zlHLJErlH9-%8?Ub0VO%CewFoGRNgF#SwSjYA}&l%-gWmm8VktsEoIi$%gY!e(%=(U zVte>OtF?qCV|<}U6X%$h!H{dl*?)e2a2m`>0;+%pB;m;y-M@gtr#nEu%($#ige4zJDaYh7L;mQrv6Ty?J=eF zc48V{YW9>2^SVv}c%kSp3?60)oO`;gY#r*8dF$IFf(JM*UVa9>xp4iS4|5pX_O7tE zJ&+7xH523^6;7f205lAXt$QItsZe}#7n88|y~(k`wp>O8W7>b}BneApsxYRz1i@^1`VA6i~E1%%D`!>fBEY5SQVNzfY&;2wc$+}9<%WL?3 zXj@&*1Ci?@u_fLY9fN(h=VtZ4{zK=i?I$E2f&uLadF%1uxhJ{U?8`QaHje^~RfWyFWrb+S79cB(& zsm70<&!ZkG?j3HfCt=K_YFi5HX2vF#ZpmdLk0z?2)AeRF`OaLll0~0TG-<1AfQatR z`FW*NOjniHES`UYO11i-MFtOi{Pyww$YW30*sP$$RqRxI=z7vI*4`2o>7P6wN9Ed# znxwA>U-y{)URx%@B-O9!unL8$+8v0Rw^wSrs{sH#zJ!i*Tcn^UAiE~iOf6R5`Cb0V z_2S7~uaE80$1l%bha}{~Sg3B2d>x}IG-mlt+QeSk%$tDXPL#cn^E|GU%pM4K0J7#l zGyW5`6T$p9$sKuNcOB7~9L}US-#wIz-brbdY2HKp`}_Y5Me-loWQ8IbrZJ{17j_2^ z>PD~`YO2E$6x)Wy{usMhW(#&iue>jGwSKf}pCMg&ssBEo^>v~=d=ySkPDi^UXyCtq z1MVL=06}uu?JP(1?Ofu3%tGdwcij8!prQoj_mP_kdWi)Iv>box%?))24Lz`k4D7it zxZSfcEnE(kk2;?X@6u(rxbeRhzJX%66<0!-$tQwTk9ulSyQM#WN>=gQaA>fv1Owll zdohO20h%=bnD<^>TSRT4C`=XP250gI#7f58c@KhNi5I~h_M$Dd+vj?S()vWPu^US77(A#F7%Y{=EdgPC#5+V_{nSimJNVsidhny_cM|5@0!SKNC)Wc_ z?5#jGEECMAExFHye1#W_bpoJz199AWn&>%oRZgsQF@pcsW!`k`ZPa(f42nWu2h>y4 z;XrRz%~>K*CX5O1+BGcPB{seVIT*H;sD^P7Z8n-)Qm`W*)(oj1j(wBfqq;`_ND4@U zu3$P~Yv&}kK*}{GJV3+LLo{8O8>lp4R6i?dOy`y^o_zHwehaFXrds^Y(f$0!F9xA^ znG0Xls^@OJ6}ONrDGnA|DNkfTQr2{El@2aPIKW|;dVo;WOvwU~@PriegpF)P*g$ch0|8Ru$TFDkj5nm&^fMU(c z7f217#CqHf#2~aJ_N*202p2*+ie%_{dAX-G|6A+$>NvzGZExvRIQ9`x!7#Y1uc+@g z_+W#b-z!P7IP5FeIGB716M|Cf+TAK`YXS1cg`($R?LWQw4)*C4d*O2`}scp z*1L)^rXmid;56W?%t#z66ecTRO8rT9CIAeY**tUw(qjT!O}g&2bgKb}oy0?Skx;*c z+b($?Dlfzp3~K(?bot-V}(NHq_6=4?s|?yU;PGO(w7FWo?sIOoq4ffx8q0t_|MF=zsS zII%;{+9$&73ZD)a)3Pk9`6uIP!%jqvoIbZr_F#13jVSubHCFKCFjmS}t zAPdEy--8HJU{X0RKp@*^22kof7D4`(eXCZVfna>5*#@?OVbyyTja0*~TZvRlc{ zrx8OViy#TZy|GKnSh;SFv9w!1 z(+G9bp5T_(o;(H}9FY%RzBUQR5|x4VtdDjF%|ub?X}-c|z&I-;&8{{xjIQg;ECFJK ztKapNt@$!sIy3Mk5UEe5q4lHcWf6 z3F0QeJ4G|JA9(TfZ`zt@`lAMDwBJwtd1_OtAfcCji$tJb{)!7=3LRm9vx{t@j9#Ep z6^B_!{Od?s$Lj1g?{@WR*F( z0TJUfZ@k);FVOEGX{;HZU0JZmv(S^GS;yk=5t~5K2G-rIiG?11o5a2h90my$xL!c~ zp(5xf$h56#U{>75-_zx(qfl|t)wn}*bt&rpy}kP9i4{?g&!0F?AlU6~Z9AJf8i}C^*X2OoxgN-3qv&J;>Evb`K~HXMx^RMwt*(vocrcmIulYPS zZZp(#2-#gA#!{~R2i?jfH~RteejD(FUAF;iNCyP9{8ITyCgUeWPm5mL(fHyFzu~(} zYpUC?`uL_l=`*r@KYTrrS05=7z42Z9)(V&)4eT|jGevTH=S|8068Dt(ts`6gZ}{E4 zZ#$hlc>PGRk9x9SGNr;dMO)k0gv`9J`1J34ig@(j-@0DD^cZh<_6M+W0MOC(4|=5n z&53qOC5ZR{NnowiZZXOrUZqzCYTDQ_6%?WxW!+SqQMtmu_FJ>+G2OHSlxixqen z*x{HDCW!uUfF#M1dBzq7a8M+H_}UGtN%toThRk9O6Ac^3K1JD%NB!grIH*C-Et!;% z;^xlo}@N5y(uceeff0o=u zYlw-!p#8W1pHL~;V9u{*Tr#K{6Z$IzRq~2KO9qQ`I{;+M; z&D`zQU5O+$D_H(LS)@eRe@lBB(G?7ASRu=AJLQ3$R{Ih`8}e3Lv?X%zV!O*%W!`T; zyUUk0$6sovbBx{XpvI_BVi0Sb@%Li@s6h#cs{WfbP2UxUpc3plD@id;O0QWJWwgMK*}&4%_XB5E>z(GE3$QepLt)THTJBk@>^wS zk8^qdk?P~NA?vQ2Kl&|#?D;iadlyQI<_3#WWilGV55r%uKdZSp``oqIlRu!&+bjp5 z{B6B3o+M8YeDMrj%bXOD8-zofe|ezXO+a)4+hC%6#P;!zjGU0orwrzEM-?lO?ZN)B z0&qMmUEW3D3{z(ZC(M%zvnU*YB8Ya?v(klr;0MJl2hfv|R&VwxX}TieYYTlLzfuWy|ha$3KgW*|~I2 z+Gb#@_l|YcuLKKPrf)1fdRJK$1F|WPepK{nEi=KrK|r_R@Yr37{4>0})@OSk8rFcQ zxOThnU3bFmPnZ8+F7$x@8DJvmJLE#}K{){h@KI%1Qu?MS>fm|^38{}|0jhu2eTWOc zR@5$}FpHEAA-=IbeslaEXM|8$ND;6AvkdmNMe>3Q23O^40wpe*jDW;qmcia_#D*M< zash}y1KX$EOF2EbOMY?c-12PPUo^wPwF{LUZ-`E&l-LAB13m;kG6pQ92(hEr8J9&4 zT!)O`+6;^Z}W=`gtd$Y7b-%Lq`$R3}66PS$p1wz^G%DuS-1wqz9f%fD0` z`9Sc|oN6W63^fasyao18Q192je%&85+$FP)VNXQ0UX8xv75= z3f2$Bi48Pxxtlr}vKHIsI*vB^M(PozsBttmdZniEOnilslLu(k%_9K%4Hw8CPzfAZ z)i2N+?|0Fsz{YyPU_JNxif3Q5fP>ch>_U#ia+j8pF}!rLN-_aA=gqSR38Gk-`cn>hkpP^yggAkbbp)_YJ3?p`Jlo1A zZx?WPYT4d(%`WDuFevf4p>UX1oczA}zf{7Im*7QI62LLTO4~DI_%Bt#`d=P`Bfl}x zCGuGH4)Tx%ETVK9JwAES0{f0xLe?x{@V*8eE4~Cy2oCl36iguAKTPfQN3|lHAb)wx z$f3aJSns!69y(j3AA|z#>kU}vl!x<$w#VocU!slgggeFZGuKJwupLE9^j|8#a)lw$ zJ%qTwo2_7mPR-Vz>kQM6$ANHUtgwAcKZV!QJ@gjEatF+Z*ziIF0_MP;Tx8Wg|M*|3 zRA7DCj~=0R@~Rn#3e42IPPihXFW_(OfzRnGXr0+b#(+5xCr!N^c-Mo@0*+R4k|s0E zyZk59XQsTnnk(6tZ(*)Mu^@uz)*&Hk$YJI#V)ZG>^85dxE!jRlz?X#a;kFNoaC6&h zdJ#Aeo|s%dAG)dI$2E=9#wn#~L|^KebW^k+hV7f2r8TLYLXyRi>?Y_yX(VzYnP_ zgB5(cw4gKX3b-i4rr#u!q9EU1XjzZ6gvij?i-iY_{)hXH_i?UIF^6HIco!R z6K#{7n`r9VSmUpw}VH6%6poc`3)x?w6|$Mp3CB zS)%rb!;Wzt%+$+a?Bg&^NKn6v!i}+^hTQW}3!-6^LkIZV+JH( zH$ZjWUnFzjI|%of`OT6F0ZDvfCJ?h)T|9y9ZhD{x&QiiJrQ)ItCNxc4R|2Q0@a)g0 zu#=>0hUTQxol;F}47f==QE3OfQpBSh6Rp^Yw{w4|Pi%P#yVjc_tSZj&cYjq10D{H* z2UJykXX-i$qmK14)NAy4di>)G^GG|RXvlHiqHbY;mc1^|owvd2$ghB$Gf+(r(1QXM1{mP9O3ze4J*666$OoKlr0*v3AH}Kes34<}~Td`&xzXP5NjD910ktiV}={ zfat?MWyqOz!$UXF)ywcN)u@lU^)ir+I2n!YyxoRp`dmFX>ifF2;+-)G~nwP?lQZZ^SBA^X+=PJL(0?TMc-<#V5q-11C3hUmsf0)15 zp--=@>Zl|1Y@Na&RqaS9J!>ATtaP1|CaHPV-TfqF5pNBCgBoZn3iK@Rx#AYE;d=R7 zfcaMAfHQC8@20Xo@O;s?#&?%P{-{>iW<`r6j2H?vJ9OQD-WIh#SLu=S%6F-v{*{O$ zRQ+jO%#j3lQZ)UOpQEPTEt}k((9gOO3TGM=dakuxT>`0-Yx0Uae_z(e2vF9Bxhdi> z3Np5w=vjIC)IX6R7UbF($r)F)cK6ffo11@V5E3AqvE^j$dUa~mM{aW!Xuu0_)S!p zMsYOKRxasq)(TXceoL6vr>;~09e|c^HzT^c=VbL7qc4YP9i3{Bjl4a+$w|ktrp{ z*%>p1vJ;Bz2@x@NStmQ$cUi~2Gh-RUEbs5r=kxvk^LzbX{$o6Io^$SVpZnbRbzfI- zzgd8ib!^%l|z$_2M1gsmI^>XBD6Uy&p(iL+(!WMuoNJj5YZGeH>T zazGYqEcRyf;{mt1e8l?81>UCe@(+E3>bUMGvx>xbW2j~wETYd8faH5x8(0%||H|Hc z@LH%>SX#fcc&|iJUz5Zx*dL38l2XRaXK$ikl7q>g5wr^c42!!u#D0F)<8oGqSfxgi zjtcV;WNR@B4qkRWa7-WS0J|L7D9n}oo{#lKwE_pi0lovoQzj07;l0+nmLEx{wV9t) z=mEoj*zU&U%jjCSWFGvqqnQgi|KmVst^`*vWf}i7&MUiTV=qQCZpwj)miNl*t zQ=j?nC3TRd^-Bm>$iXM09;P2CZ*0rkJ5kQm!^Gn;f(AadF2QX2kctu6hOX{{TBX=)+#zW(A zYzzX@cF){pR_L zu09zozhP-rM-r%-Rx$r_mFY=W3maDM2gT*>OmAI@@hp?AAf5mn@l#Pv?8_%Oj|6FW(&~?`YAozvh;e(p8}mCRpq+n6 z6$i~(ANj4PXg2T)TIARtK+ zUG8(5^zk?S6r0ryrl*)Rsjehk50Hl@SYao+|L#w`TcBfT9RkN8;z^2tk$(#4(;iOM z$0^N(Z#a-&vFD+2$y=RgqCZwDuf`ivu6LJ-H8o_VRATUO)z>)IWAH+$ zu*Zw0a2s`hQGZ@xYMB!L-k--w=JoW=Qlhyp&4^|J?$Lv#b-BDn7c1ggyF|Z^z_ot7 z9IX5+X~U=G%a+ZNY+QH5;z*=luTi~t@EHC)p_D4vB|=Sp+Yd*(F1RxFugGpS)d`!o zo9@bsJ}U~Ry1Eom@XEC=GSVEgl6_2daKlaB6+AN$weUnc$o?w;>)sHKHorAt=&{bu z{rn67CULU<{F)^O4tad0Zx z?-(09HL3KZ&}ljAj=(SeU%ws3AswTaKe7%4vA>0zsHHxrtiJd zTd%eK!u-uzrTpHvqq5~{RR(%|vktJmTxul(?V4>K;I^4AxF~bkBe8_^p z<8=3vd}nR#!=u=hFv4Wjk3TDWj78pqS02?O@3KsAiz^m3(swJq!dZDrRk;s(L7F6F z3{W~Ogc;pd*?iI98M=j;9P5DKHv5CN^1)&~S|Bu7L-B6zecwsrY;O@ghW<{K^IS@H z=g^)_>{5bsFLL_)%0*j;^LVbte^w|S&M=qymYkvU);YjKZR%Ag?-SGbuhDzeOp)2L zG3KGlC3PvhzonAjB^cXG#}GPo*00Y|(I2YS^bP2BpGI$(#8jNW!|WNTkISfzy`O^+ zDolO7mwMg#M4z+1+k-L$2$@dF8fuH*yU%MD&q3Y8O5`P~A^IY^tZpyZbdBy)uM4Q8 zpJldv2VG!~EET=Ii7B2;kCg?BtGK&88XW-jCO}SUbPx%4WtyL`9c(HwRg&ff>GNnYK6PeG9Ov28nAqy!Bn^*bpc` zE=68-8~ElnGQ{WavDFxh_#A0Ndz4-CX-qzA{T{IytaL8R=r|%Gue0qL3fCPa-EGbh z;-KODk17Z)jt~kM>S(!vbF>p5y$co$|11>CcP(USDa-gL;(CK;ciQzKuoVHea=p%o zv1X#JXj{W0ZO`Vf8SPKgF^J*El>_NxFy4Ut9WIR%!4mvCI6_y8S{0NlrdLl_`y`l^W_a3%mAb-1)LQZ*Tua>&ubZk%`&dSBJ~+gPWAHWXSbC|B!~*L|zyG!Y z9F;McBJdXDa=W^pV9kE@VW(5Vlg>l^nY;yx0Gtgy;^tD0*X!DrB&%0mnaZ+wvO9W1 z?$32KH^VZT!v<^|dAPd9RlEvo2HQ*}9w$eShi;4ZJSyjHtse*~FI3V$(#E;jZ40|U zfOmgo)xKw0Mzxo|$@M^6x7f?_)u$V+SL%|@W%Q1PhnP9NLq+|yrw*#0^9?74+4`nN z@KJb*dhumQW9;5!_H--gy@QZ`bx4NfX8;-@Fr}i1D=`k0jkoW37asu3_QXVs(8Bic zC*!w4nNx!l)8LEc?Tlnm>&Go0#5&~}ve$nh@^ogr1@DB#oc`2Y4ta=kCfc|sb#n}u zkE&=_*(*l%7Q!HGqtt89H%5O&x@UPyDl@t5<5|vpxpPG~hoGar9L_ko2o{%|y*T;f zrVr@ZNp!n)TZ;?nF4q;CL^7(-3+Ms!f)GDVRejcY7@l-+E?}Ya+2X$u09t|S1rx-D zfDY(ob`moKULoQigWFODh|TR(O<>GNc-NP+;KNnu8M;ZFR^qedTbgF1=p-8Jzp+>1 z6#xjt^I`?{3;7(j8zQxD?I|0j7}20uE>PZ8LvYd(B%UZBt<4qDJ{FKmVIzsiJ!O5k zvkaTOGw**}BvQ}WLxCD)0~tnK297I$QXZxPTY`DA8xYk<%Aac)=Capl0!JmzZ z(fM!o7@Nw-`FIv_KW0}Cq>T>*2f>w482Nzz{YhdR1=-?2zjGo^YZLox2jsF!x7l@_ z9TLPX9_6MXBkw7oa$0T!m&Qpb_UXZUdEuY`_2dd&$3=FyZ(GDw25G=-k^=k|>){Ne=?*9Ywx-V<>RAQ66bPqhdKA@KsZ zqRVvHcoaG22b>;j-EYq<@wpiKOE`qqc&JudM@2k1x}QSaL}9qwa{g5aS!lYH>W6`> z27-b3O4lq(d4_mLhxkV8#?=fn|>so~1boO$29OUCZ^xpsf{U1r$K?~-C1 zqr(sr52DW)faXZ7_W_ATzSTc99UMiu4p*!j-_4g)jhsATuXmxL64aw+pYNg-Hsh0OZglc4`U(C$6roPE804`3;I_-%ac}w3>%aVQub3I(_UK#z^vB zc#)1{qC&Rzg0Ut{k$}v>ZG!C*I`ls(#?{GHy}92r>)+m8`*rt`^P%p-1H@Ck)1}*n*L(8@f7#9GD@ubd3a$iElF!u0;EzS-v*868Xp;xYX*Fv#AsU#NU z(1Yl07J4F9xeSsPt-QPtP=LLUN}2)LRRAt$~Te1Dv;)HE`O+=>Wp+VgT3v z*6H=c9r?lw+Im7BRHw4-gd+-LIk}~UYpc(D1r!EM$L@YwG&ypouJjGXP6FVo2FBhcR;fDAAV46(q~Wa#aJb@>frAE;S`pv~;_ z1TUJLEjJCB01MWOc6S%qDlJ3M1w44)BXzd`ZW7u>}h`bhC1WfyE0m7F|JmM{88d4%IK>LX?R>6{OV;jHzC% zM7Q@+?!X@tn6W+6*5%Jq5Oorj(!R!b()cxQ{8d;2hdGO2Po3DZJeU$}-zjvJa@X*kAIi@Ft zhv$amp`~%vbS-QJ38;hkrtba4PIW#DkTMEiWb_T5w)h$GcuJPx%S41dMgJ=K+N;ki z{k3=WR1*&P02f&e)C~XmNSYs={&!G7N}HOk@;@qz2uSlH;i@;mn1;mruQYz+SJu}E zjC>fkeToCQB={|jrw!5kS*bqbXcD*i9EJE2b+kH$#vClpj+r%6hWHW59Eq(@Y;cnvm#yg@>kIB05Jw@|dD^{ajAxp%F;zQ%{1x zKZmagoP3_4$eNr^i6|o&CLv5p)1T(uhmUs+h#ieYn=!Sop3HsLVXQyjXuCUd^Z&k8 zFL3CB_Xp@$5eH*M%f= zfS&qKH{K8$j;ukFZYWdOH%P3=C4UmD=Mto29ZM70beT7ntL#&{)Z+J=%lXM-MN?q+ zTDd(hC*{A590hIex8T3PF)f#X-SruXDOkL5!daa|PvRhWs|?4k5D~|8w3x_*lt=H4 zXgu6d2}sNulpq3b&vFxI?|@!_)1s8vw1LgzyHcDf{Jed*NH)DxKg%j0-u?N0Q&#$M zkbGXleLdp6vDEfEE?elWVY2i;vRusK&`pvNx!MVM^LS*dB2bYB12^x^J!8L}B1=Gz?trk6yo%3{QAZyp3#a&Q=*kx{Hfa=&1plP$g^>Ax8Mr zu;^r=2(kTFE#2Q;>)6gDAK!K@Fh7LeY-N$u;4)0J(A^MNHVOk_UmuWIMOV5bzhaSZ z)#%}hsb*P!wVGzgq(_&x`@4AGB7axyK@9?qDD*(K`*I#3_?zKR7?Qe$UHXwUqwOx*V** z3t!+-5jDW;Rsd8!Btz5|iNWkdq!9)I|I)OUvo$dg!K zKtog^KroUxpnFWTYANSt=Q5}c>4by@Qp^elP>HML%06er2)h4>QEtU`Q0M3ra4U*o z6#C#5=uM%pYVf-proj@yq~9r{J9Wm52J{D#alfziH+>x%NQ{TQoj_u?(FEbzh@vbI zK#770wyw_FTLruX0U+-Y`Lk0e8mc@V?B-L?{JGwCDtX--K+j|W$ku8Ji{1%}Cq+x= zP!HJ(4nSj2XzU|y0PFCi8N0E9Y6C?91u?o73ApG*fak>AOJ<}=^mc#LZ5^&NmZkHOOMR#ma~6TB&m zjlf)n!DdEA%35d%+=c=I{mm1;v<}WR+-9M27TIsFrbkYET@lvSAE@&f*q?GHmcYs| z`3IajK1oNeuX21EmAAgnfXW*H0Z8waQ$WF1;AD|>vvB2L@A|@RSctV@js}h&yX>Gh za$Hc$HuG#o{McQI|NWo7JHMT7y0_9^MruOoo0tIjb>9;51BIIbRSOt^YQf*FoR@#s z&K4ct@gK=~xHsZmJXT^?gi4Wo-4sSPV9l| z4@{F3S_TJOqjsf~-$6xN0iX7gvUqwrGVKbcR$=!S9I6zIFdY~4SFJ5l@5pZV2q`I? zsXyukM|~&F*!&>Rp3cv2>xg+W?SD^A^4J5+&aY4NeBs}B0`sp12Wp^~)yUC6g8vpF zxkH*@y7R_r{_plAHYTTX{_m5jwo&Vvs^V5>CszY5WiAg+R5KRY6K{E(zo)DfxC(8shpJ5XAMt;0R zUh%kEZfzkKJA`z1kkhp8e9&;SE#nE7a`2aL_7=Og9gqWHivnmW3SAbKokC|ql(eD@ zpf9f0k2mf7kX3cCME}JP7(Gohvva-l;+f2&N6{RgUI-W`?c2^Cm4Y!#*Pf_bfv2nR zpPwrwVm>1A`(Hf?3T|77)7=+Dy#!QfDw^Cp8J(wZwIgbK;`%CMp|6faE%ZdZ+mLm} zmN~e(X=tYK zFhsS8?w^RycWUhUP+Vot^vIM5apJ#us{<_YKdKjt1QB+ixdM}CB@ut6(W%&=bS?nd zR+=YXG`ulc&?n>Hb_i8`UKhAGqE#KJC!Lde?F7}iNDzdO#GwQ+R6CL&iX@2vy>M+U z*rQD_HX7-8hK4O(DPYPX=ixgJE690`E`On9J9+qDXgYYAza%#iARz$e2{%O%E&u=w z4P$_(4SNgM456y8AV;BH)ACe#Rha6HmhbnJ6w2$%o>)PHd2P*nhh2{s4fih*7LGc|<7mV)F68^Z-Cg zxCC2wFCnrcM$>rFOLQPos)?b<)AtH5^8l2nzx7`~$lg}@#y!(d0Ht?J4qHm&{@%p- z!4HBEu$k|Y-;tb%FOaRRpo?e+KtYg2)&R<*g>`xIiKHOO{9#@K*cLU-+I%;P$m~^raGDEfD^IR91RnPt$^ObITf;}+EY@l6_Qb| zTVjhZ9is}2D_v8BvOa#ce7e-h#Ee)(SD}IE#v=y+3byLVqNkzwZ^_H4AAJ0VeTXO6 zpCzwq@23j)Ony7BbD9&BWeo@=P@L*QAU59V0A%6e?7pb2o>3|0sgnbb5CR~ zP#J!cQ4PK2%Lws*Rl{eR$C^uK8-Wgv{LcV$-y-dEW}w+QxJOJBgW@A(Yg;OQpmqg+ zpImVLTs~Bt;_p)y;f&O(h8$()U|&y+N4O!nK-Fn#3-nNmK|u_Kk-aI~sWuERLC#;$ zAr`mLKkMGSykN*P67sO05-W__$fJOEmiqya%?EyRq2zy5_Q2L$Ev6x{PjyBV?rIVZ z&w*AzKxSR!OTwmIG{qZm;9(!iN(<$tKot>tcas>47U-Y0W90*jrhqI*T82HP3tFA1 z7S?KzLl*nC$+S5cO#vd42@jrE4znW=5Negp>VY0lYt}d9`fvd%-1S# zo`~offPsnpP*#;daA2A-$~jL0KAyA%p)hha1l|<<_Xw#`-Xic4y-kJcTcXR|&y%gr zNNpL&(a?WXOn98d<%C@=q9FztXfz8z&17bu0Jz4@Or~kzn}!NW{06g>g{{3`37f$E z-}~PvKB|NNy*}L*fIWEz{D%|Z#Uevb5KJUV$e#F+5#bx)r|yh4@TQTOf#nPXR_?T@ z69lY7!3ACotnNP-;zD{P>!U;g)+>i{1GoVsZOva!BXb%<2OR+7!a91X#fpTzyNcav z^mb?hI|S%xV3=6>kIM3&AMJ||#Hs`Kq&56=Xfqoa6ku11ueo24W09^Z=g2k|G%3vh zC|_Nhi#Ph`-*Nv@J$r@+U_5{B1NNeA3OVWn?%5li(zkn=c6Eq`4dp$e7<&zx;h5sk z9SS4$)b3l@;&cxFOC;ZW5>wsT{IIC>IsZ3wmM#*rB(A+~d=0&8P1NsM^`LK|yOg-| z&VLkei;@d7|s>i=Hz{#!~^5o$vN@YhSh(-Z*73?=F_&Jq4CA8;iH zh6o@|z92@C1TDbG3w)HN&!xVhGlvL~Z!p)Hb{&X%NB;&7OtP&K7+98Vhe$NA%7!i3 z^d`UyecBHNEcqpB0}#Gkx@LFM-UD(za9xcC_QbbMv7ybb zXo~+UBnIQ|Z(2vR%OJ8KMo(`zmJvvdyl)CGIoht=!n%nb5ELXV#yFXuk)zSBFz>s5 zQ7YHj{ghVZ9TX1K6aHt?tpNk8H(OZzX9_IdIfRF)pmR%e0bq-S%PJ;1#{3(KrHzv= zR`*ue9J1hl%z@Py8iTB)A+aU2A#42i6!Q^(fV1>>4sf2)`R)Zj9{06XTj`!*u~ID^ zw}K|)KZj?eCg~VeYh@*VZ2Yh+B~8?OtnvR#G6rnk?fg4_46d}S9!etQXG68~|7=LfdA!LPR1U+L!a{$_aRsz2#?Sa}$l9Z(! zj!>OD=o^MK8Qof{CCB?zaXP8vYqmxvRA{dwH5B=iSwsheO~S#{E|}E#1CQ!9`U^Ep z+F6#Ze=(0fW`ZV-v+JVOBRQvt7Q`ez97GEjh=?1?sL@t_RJr=!B5kyU&`Ay%r7`A0H?xpXd zagTD}O`n`?y&dHF`djopTJkj@l63?^ma$DF9yqVGWRdn$Aiw{MvdlSC3Spwm0#L*6 zs9md-{q|$j>OZU=s*rN|Jcqvnc>o~%+RrQ3x)+R2-RS=xx>6kU9;EUCJqOnRpAM@| zWUs&&atDCX9kZeSP7x!vps`S_1?o&N$dep`ri4!5;THfG&!5yEq^Mh1Hd_dmqKnDK+CW45{)l`1@VL^(k@g>i^5-|3GiN^C z^Oq=J&}<#)=F$w9AiZdvsCGz_A{6V4+Yv%ru3?2@YCKsGJy3=wJ>Od?Th$%+-|6(N zwJAH)gaEGkQawKsGi2+Ypn>fMgx6CDp=e&PGxQ?d1_ugP;{^(hwi!>c)#vy8qy8j_ z_iMhtY>L~1E<5h8IU*+HUuI9NfH=36pkWynHFer1uLRee!H0e1?JDAR!ZyRf^}7YW zQXQ49O2bzb1Tz#BHqx;NGpTJLb|2K0IkkjkOPM}vFEP&>PSf36< zeZM&yEtelOKCMD>Z;rZ41E>GWf?OQnQtR;>yrUk6WY$+8V!a7`Ur#!WgpNg6lTKY1nI_#wKBx<7xc!TpAR&8jG>;0o`%xz zIT&=bf9lYuoX1i6$$gpllD^kZ6ntjs%k({%a?ca64@D)hE}BO^xgq?_Yzjg@QSlL@ z&Dtwg!@Em|(Dp^AXWCn|FXp^@QRxUeTaw`vg65?O&_VQK?Ar&|k&(}upoO|;rW;3P z#Ex@t_YR0rwX3E?OSPfakH%(?J3%9Q>PDknesWNb2oQ*=%QotwG2frs&FI?KMz{M- zpZo6|K)U z!pMc>LJuG?H-v1X;c^SUrGdcq*huKQ-H7=CUS?Zgzr6%nh# z3Uj~HbMzwZg~{B-k?8Xo=uNlUIw{SKg9v5aTRh1G$m-%QbIA?}Rx{?F7vo?n8b_d9 zk7!1GbW5G778ix82)_@y>OG{N6<3CoMq|wlHGuGb)Jq}W;@HArTFF~1tK`UIeZmSa z8a8#iWe4!JX$DtHh+YBFN6tf{x?|r2ag%b(Emsap5fj&icqJ`ck7|A1_$Y;F4G)!v z95z8N6zg~wx*pjW^mhgkAr8UUa%LZeT~Ti`vu@<@*`>V&arru9K6o--Ew7iUiI)dcw33P5zfAi4HJ=PQWESLzXNr$xF`7HpOwamtSoH zS&{x_RbM>9FIL-SI8f7$3R`==qGtJk&R=9EaP@Uh1|4l*kIAX%e#LMe7*EBzzAR!I z=YG|p>|Pbngd2>1fdwvtH<9je>zZE^>8DQ{Q|^3Bx*+w|luF6#d}?Pf$~PAdCTP9D zZv4J+Kh@!8eX!3{smF0~bKZ7Z*p+s9zN-X1*pd;Wjpa<=_gUV=xrXBXu6_CEE|(w~ z1e#?~G~Ac30FRG0XuiMAk=dRgaT;pa6c%<0tITrM6C4R&J#dV35AHzRsUDC0GSAqh zIIZk3)5MKgOknQdqKWl9QJ;Ea?Kb*ND?YDptJ4o5IIbpWxg7)hxeZWbt?B-`E>O;c zMVLh6B>qk^arR53u#xxfqV?d|R zni4$8X7?pAt`DH)80-(qPffpee1-CiVQ-o#Pm(NpGKpgIWKhR#qA3%p9cKw%UVW1fX{SSZEWgCwK?g`x2 z4t5d9`GbDtJce|$EX;PqiCwv6pw7~DG0%r%TGXfB{_97%4ep-vZoChUl8(4{56Q?Y z&{Ng?y8kB=DX4EQo$?Z{x6DvTDDV#vKT4V!J&U(aCQR)MwUq`hQ!;QSMwPgI6zfSr zXK9;)nKoz}Gy*$2#Fb3{B`lhR4k9JUa&Rni12x*TYfGc3kvG!bmz1oNI=k4vcyqT# zs3qlYgyp+W_qve5-ENdYPuZ!7raLe%5l%h>4%-ak-=_eJ4({n`O3dLPuU(2oF3+vu*DgU3;;mK;~SxQdsgn3l{QhJQ=zw6hsiLe6MH z>y4PKw{|5P^NwT(0L%q=h{l;EYOL2F0|RbkR--vTltljl`7WIte?$baA>*qDQl1u9yLrP=4%mAgO z8NF8!g;$U-HLF!~ESm3Mt-n>(Y)h@2hh10i_Rl1MA48^rwh!)sOIlaed$iS2?^SLT zS#70%tgnAvpa?C49j`30ba&t{?DM>N!1QGN0u~&jA{kg=(cuqpn?d6OTk3$E3Vhy_9m-?_+}}GyvJRURhM`zFs71okz58g zKv?{=VZtHYJsDu!%11jNFbphvM)~4FJ|m})cyqV-SZk}}IgTpyFhLMp zFYzWJ&j57&wsjgie`_mhR|o@%SsIt&*!%g{;u1&q*p51%FYz_OTRo?ZU8ERg z1kal3VX3S39kp}r-R&=!n2;(v@cX-7lElGvuoV?C>O{7ZU{@|L@MntvSqFEaxNR06 z$$awsRNiy$4Gj!fdCHc3NtbTxI?#V)Oc*75p8U0a^4gH<&HILmZ8wYOfoh+xuPzt7 zja(a`vbEMWUyCM-1Yo&)k8C4%^@`Lc(ZGFS%0%mdXZl;AU+lEG5H<9M?2a1!WZ_{- zo91sG`onRDy8^6JFWq?{3|AvKI;nyyzC&Q-DsY5BX80t-7|pulLMpP3C>|41lATXfQogKEmm z)9X&Z8tmwuI!J@kzm$P5Aee3-l65)6r*M&v z-U(a*-e7_ZppCXjVTw@pVfqVPoyHbpkjHk3db=HX@H;cX9;OXjiT9=N@s-yPuZTu` zaG(>)rFEdSc>{3XlG4e}wdo2AbuEqc-;+)lr|GL9U_P(7MUJVC{f zI9EdM8*JwPy5$)Et)*cMu5o$(OM2JSKiYm_qb)A1oJDW)y{5uZ0Ro7lficKX!g~zG zH!OJN-m}FuxV%7g=}%bgklXJ}H6=(o_f*m={@;pa9Ao~?+73^$c2^S~V{3C|7YeUF z@t3KjLVS@u>BTzww}1{;B4r{ziY^;n*=9TU`+ooKYx;P)lOEK_LHH>Mo3vFTGjw=N zQ|NY7)$&U9PGn)Rb-K}<8V}C%{ee$oFU$8q*iiV;hG6Mog98U@6cmM^`(QyDH$0=s zTt}-m8Gf_dY^aXB%@3W)yAWAum!3)c?3r39L3L%o$`V}#bX?tAp&6}H6Q0SKSJGQt z7afHCp!l`puDpYC|nAT-%CeFMPz}{~& zBBPPvcG@LU?Js(D)S9|Sp|~z6eHKevDRBHY`ttb9Bjg5ADZtK%nWS4?9Yzp*w(w;g zU5Whb(mJCSgV}j`lchJ#pNFxA^d8a4cW(^2pq=`7t2az*w>-c=Ve@RvQejl*7)9GA9n0O+n1I5Pw}iISITgMR&zp}uft2ZFbOwG z2ik4@S87}3QUlP8Mv9;eZzqw|$MZaL-;#x~Bfpl`_+Ys>G5ZQDf#unftjcPKud>-k z?#~vQ%;x>tbPE%czXz1r-*x`@kUTB11FdSemF8zKoVf$Py;E zkBk!Zbue`TThKRzA!7q5m5yijBMm@|@h5IQ7f*J6$VBU9dv=#k3U#m7xBfxg-)^=$ zl|f@k@*kH=gy#ZF%;OzWOGCUzc&~gif2@>*ej?(eW*T}!G)a}NTb8cr)<@dH&Nm#Z zlZJ8+(a%=<6sQG{cI+xJ^LDS6vyDL)R%YyX&RGd#~`hH)S zb#jhP63wcQs;!-9-Lux{%ukl}H4Bf&sCmz1@6mCpmJHs>F#bTEbKxw@=8k9x>-P=? z(wHLKC58ogJR;r#DD0mUT*_MrCG^~%^0^bbZvtH^U6OLf)kS0w8_Ix!Yr*R&0C!iA zBKkBHb;f9&^WP{r3`k>D*O&wCx0sZfC*{!`Go(k@)!z?#)U0jPX!jLRM}s({_u@4P zH>`HlXvT9JV$7j+2KA3!VKRfQOSdXa;_A-=T2aS$f#>|XZ3#T)bCAz{c^X34(y&eu z*p&l?0UK9aH?qok@AOL zitirxOj9d|*1vA&c{k?Oi2%yvttu3y0bGVgD#pK)d)XPAZ*O3rd8;lSKixu`MOa*W zEhl{T4%LRb1Q!^WT@1^}p>pqsW>_A&T3X#vMGPbhlwQgAiCZ|i> z1e4HV%f0+QzVrg_N}B)G$>^P5FC5nu9R{tv`Jer5o!_&GuDdV#R|sva&oeSdY4$;d z+3}ML;QWD01K#a*eAG3gt0~G1jb9$tuFeVks(bpU5&C@ENMQ%sUAU)%g?1t@xA3Dw z)r7X64U`xZ+ZE6B4~gVn<*Y5T0X?|MvT;bT84ieO#2>c!}!wBnW%9BO`LIHv!UE+N1}gV^$L+A{&4$~i&3^%Tjrc?8mTKFX|Y2>E?vy`bBsX)O;5_CuS-m?!t-fj zy@$58SErv}3#(B~ko25&B2%PK)tZf-@UlhM!yXQQkBP-a#Gq9~IGl6oAc{}0er!E; zIWBABSgs*BaMX3`y3OSW3mwxBl0dJ!V51ajlKf3dIN{veGjj$rES1rEP9)r}{+uelL9|%o5H9!ZsGq`YTByyDa3YV|R z@6TKIKtZh@m5X$;g>?dw-W}H9=pf#j_vGFFVNF*gw`|j&c9&Ec9no8_y?*x$Y6Y>n zjTQ*&U-1=(=~C(`9NTs@07D36Xr*TI>r6_5EGp~r&uhda3%0-fJA%I`eA3&nLlX-9 z4i>G4#(IPipTJdz3r0LpOYxJg9s+EqH?5zu9-3U3NX?UeZHj#(Z8t__f}2c{F5sk& zT9MU{m9(0A(OPAz zoq`X#8YeR~HTJH#EL+Ffc$4Z9$m$415Gjkp_O<7*!MTaLuI9;`eh;Lr7HqbzGpi)W zHa)uiks(!KuTcR7;3?Vd6tL`Z&vDw<|7?!5EBB0uT}3P<^G2LPSjo3FiN=&6|C}mH z8Vm$_2d&-JlXroQxaoRQPKqdM!W21m%b4q+cbeY#US56n7G`8-yMAS^dV3vO& z{4uk2*GEl(zPnk4w(-_Ik?;(YxO^&rF)|Lyg}Brbhx851ZGPW5D89Rze$a0Xd&nZ_ zXFd}CSAdm&zRyMVG90qR6dlw7{P2>$#614x&0GERgQd0Cn%`Yog)S+>Al7^O4bO^e zr9z)JC-{uPRsN%zh4ArDc?xF3&g`7^=#UG#o$(X9S6;V-wnPz-*f6UJ@zu#Fi(}eC zvy|tpf_fHLX)a~n6Ql~_`@D=~hwg z#13Pk6v+YWQSft~BtIe{wmbrV$R?T+Ubnw$-Y->IrwD27?e&0hE;~ILiRKQ&rQe!Fp(zCZ?$Ef z_C&3MxmEFMwy$i=OI8u@Ni9r;wJ>m8ZQvt zi7Y@HCfa2P5D=*xR}-+&T>g)W%XLR6RS?(ps`S2eJ?C@q&Xa&68}Dhxnq$MdXf>Iw zoa@QE6?$K%T`PA}1ZausNzzdQ9PlsBPfX}_Q5#|SQgSmz)(-AfhcjwN-Wd4i`r5MN zRff^Wk_M$v+eSs2;*VNhPPoS-5|FR*nTy-Pn-EJH$KDluAaxv@X>22WQVHjQN0nhdi1 z^^soHECL7e4nQ^71^O;q7-#phL1t7tWokM+4U$T|%GYP$>^5T$62}v3)QO6iN~h`G>0xV~ z@{yzAj4e8|Gk?>st19P@+UUj4-dWPy$0L~ z7l$b9=y(T0>e8&ZPRC5&U@a0GZ_zc<9T>rfCvcga*6h;{@q{i*KLZ6lN_oe1lAv3(Xoe}^$_TYmKnq? zICDV&!eEiDmoAiH+Q}Mbt*g|?Q=-?{s4IPpif!S4sRkx|#s%%PriXN7-v;`3A87D> zN$RiCe{!+A#-Qi#ih|&I^iFP62BPiTZJ$(m#VtIA6MGO#@_sq$maP zZ(56+50gU&OX4Tar&hp(yX+kUG{5cmunFzdtdtVfZqj29r%!=ikGe%>+ekfMv#%Hx zAe>;Js;N#u3JcxYU_g30iVRg}{e;V%ix{E?{9gLnTp4`TR4 zCqsu^E-A6dmDq2od?Cu@k!^^zxn9EjPhQJ2ismp!AjUMm9j~z@Zt}^KBS^v6#WuAY z1SZUXR6KV|Q{zs;D<@@bAAR}h?wGnS68OAG`&N+{OY*xe7!&?Ekjj+}(6PgzB5RDI zTEwcSjyjmf6W{-HN z|LuR)SXn{+mgBxr0bCg%$(3(UmtBnaH4T;f6>VNw>)gLu-d2_8uHvFx0c_^Fy%$6Q zk}mm&8uNCG5E=+euhCy9nz3^eYjHn%b8u5T-(HqOK{QF5#)|R^Asvv@PN$Z4x$F!6 zw8h%`acZqg-{B&6_S}zI&WCbE3}e8J`+c?PWPvexxw=j?K*w!t)-~15iSP&Do3EP0uZgUxh9|KSj-MtO#(A&OY z@GoY!eC|yto|NTiBy@l|O1tvPiYybU^z5H&`13}1JdX%VlG>v*<0QHb)^k@P zFXAkF#M!sPB z3&q!yQKX<5o!^bP{J(@p8EZ`w9u8Gi(T0stLN8KQ5W5#OFJF3dIpjjfvIGZZgpV5s zdZ#9)QHX5QSyFxIWBBCvbA5ZE8!1K~GfM>AhZJOi+1iUCGQth3u`)@@fY8M(KSy(r=_JL z(giqXIbM9G_0Cy#NZ&8j5Z+ek9k9$1gWo080Ca9@f}Ym{?oL7(Y&G8exH=W^`mqOR z{KN_kuaO(M8OKgy3C2GqXkZ$RqFdP0jkw?sr^FuGblD`XBSGmu-s?{M;=bbbE*YAD zWTvpcOb5pq0YwP$`R|{9YA?FiR2eQW?0yjZ{7mkLTBdp3F2K~95UK`5B;hWa3s}BI&;CyB3{7)ohQI%CM0*OsZ6M;4J{4- z@D>|(6EJ$=mZV5NCV})Xp#g}-N_q241x3lFLxJKSQF7|kKDj1j& zg+sOn(L~A2dR}Apzc%rw)9;}}&-==+wSf!V+|42hdz#)q1CZvm^`q|ou2a!TAIzRJ zP-kv{MO{Xlcko^WQH%tL1oVeQ3I*$`$S;d)OgM%@l^_pS^>3>)$W1GG z7t?BTC!`MC1r7xOA4+>|NQ*JIgYu8sBl=*fCP7WT4x!%6;gtxb7M0RTl>Ses1 zQYCA8aFDd6N2X7%fr1EvpwRurNC=aEEpzr^8$a5n^~?te)M7)e^Qr$Ke1rRys3}*3 zQ|^WwPYwl{61f!x^nqf0EcW&AY$j1-WkX~f!L*105HjtOb4mZ`OR;%h2r>D8DYolM zs|z~@A~z2L^PhefU$TysR@mJ)Q;MjYDQZS#3v_se<~i}Dq0Ix!J1ot0ZuD5bLs+!S zywd&#Fj+R-r}22NzIKLt7B%Cm4G?O7$F5b^)jUK)MPFZtU&8ZEH1ymO{H{OB*M9^c z?Se)lzb_vIPf4t4DzvLAV<6bwF1@c%&@{W?x18$>P7k$v zPgVYdodD&ehl>JV_*SB8vtEPr{0BR6{z>=Kr?r0D4)$~stV2XM^~80RU-HfmIJh4a z8chW8V1Dvl#-QuHZ~Z9G{Gw*{_GGRVh{2B-qisOeqLy4mhR3d2>mPj0rFzGFoKzcs zX1wZH`1%e?al{~B=mNkdEMjZ}@ck+q!qf>Zbb+S4d2#RFi1GHPNW40^6&Sl)aZq+| zPW3np+`%ZKHaJt`k{_!?`f5l$YrN^sH__AWr5dppn1)i;oMx>l27+;P@eYRlKwi=8 z=nl%SW!u!B)5#K|smi;rvNQu6SLX0|jO3H_yb?3-e`)dsMw z4f!ZBhN^aeON1EXED+aPz#gh8gs{hgBMzZkt&gEc4m*X%<=LN-nhZs?V%wMZQE{#}11^pI zc%nJK`sL4%ca~cYDWOERG@1XsTTCCZx79j*jnMoc&a9TodgkuS5zSRk5{H+Gq(qs+ z*q8BFF7gYHe&_D)Cq`CJ1Z(uBiR<4CBU$nk?-;TTIxBr^@!ijRcs_S*x5n600)aC6 zoEJrot2UG9UtOO){CriFTKCfl@6T0`!Gw5gPWO7pj77yZH^T6P4>;mMyv|0AtmVAX zV@Drx-V5pMmxc`<3t|30YR@f=5 z;tL1qZhsx$LrUa9DI}4co@Q&|50t~cuhxsoKN-s(lYoVMvs-iB2KGVWl7T-jtBy_I z5;avcz6y@Lu(nJ{eV2Sb0(ldNNeR{j;M`o8*>bX_wMH}JiPxFKukKg=UN#w>N-Y+} zr=Q{T2HsJ&#J$GuL$XPH`!327m zjIcPU5I(;sSl#zs?ryf5$T*|!(J@O}`ogmB5T%lC`8b;bD96cZ)G57BBuk{J{RHciOcss|`;(4?m%HXmxa4Q%^W9GJ8GgdE z0R}7K-Y-;(yG$C({R(GQQ>UFuxE^(0S2a*jIH_=Z^37Lijd`J&8#*|MSa9mc``5hf z_SD8757|O}zlzo+8;7Tc_MXpgy|fQv?0_)E&CBUuwmqL^X@>89@+LN8;1%0>&uSeF zhYt5S|8U4279^C-Z7GEZroElNdELZd^v3xhP%%T6-g9*xvmE<6E@mdJtK>&N2YSr) z>)yosvc2Hc0QxzT1-si+evnTTCC*1g846)O&Vj*KV2us0b)IX>8mr(EHYqjq6_ z>W}Fh^@l@bED^^+8{(j^gY!Bh4G%opIn=%~a`|(8?t?DMgz)UU)J2?ZjQW>rO=Rm5 zl*GkoGn$URr5$!A7XI{EsiJbbcJFhMdvoqdtDQ)gs|Q1N=)o3i<>pJ6W+UI%E9`r}C{pf@5ao_jC>-Ai|$~5;#767rqPU@)#ljhX0r&qiE z3&v%uU5S1!*%v>;Nn^>$zpeEbKB;|i#Uq&dt}hb4P}3qb1yZfL=X{xdaBDvke?6k0 zqPRa~G-YA6qs9x}ULIj4Wf`WAJiUV?jVGI44XLJ}`XeITTGO+@183e!fVw8tJ)le9 zCrwkUBQ!ZLw>eLx_WaaV)8ydyz@W!{*p8_?N0@a=x5W!~81&~qP6ez_z;=GpmPv_X23$|>RGh|X@;m@YZ)gr>z<4# zmmS^Fp(+~!Dw{D~SP4qj=$wG(foD8k?azwkL2UN; zu7X*w$&n4aB3C7zIDe(s-Dc-Z>RSGi3IDGf)V>TlBkML~t&}JIl?U;6hxV@ra6*4JdEZY1ckkv*Q-f?$W3fFz7-bAYFrLB#wKAHNU_FosVq?di4#BvXK z^D__+5YtJY-D`)8RxYj1_LU{^&uA&~`y!d*Y$k8ScU4TOEjJ&mQ!?GwBxd_Or3Cb&l^fKQDOAB!k@xQ-|GLALA(2%O-ea@{F-IR8nc_vk^GQTJaW z*}kloD)g?@47xQRb8q4d@p+_j#y*8|=W%)8YPs3r>toWbP`wStiQ)&}imoIS$uxn8d~>&Dx$nBudlv6e0cq&UW=Q2%kx41TrA({z|;^ z>MfQrkJ>Zu_i}3w!TdtL0zq*=!boGuo`f|@(H2Pf5g2INUwAy})+}|C*tm!FE*>(F z|2fj)o%&3NV@bQy9iUFz9hq+KZ3AIVV}`#Whw%PCE_o%MM;#$kHA;iC9R`ONd&>B8 z_z&3?)*P}Ay&y)JFPt_Mw8B4C2l7hmdc4Un!UsyuI4naY*q?#^^p|i&?F(Uh%xu`k ztGl%+oqj_Se#JFJj{6dav~93`f)dlzs=I6K6zc<~cqCR)E$`uvoi_1Zxji`xfH0jJC}(0%*G9 zqG#tK&ULk56eB^X7)Wkj4uJ}*rvaqWb~qz}+5I+tWG84^7|aRf>J4ARC8Ra}yjeM2 zs6}b(yvMOn8qec11OtE~?cy?k1BL7=2LhcaH3T56{RSMl>8DHBEZc^$V57n-_SZ)p zP^bhGv)3S{JxWEJMkG%7w%0tO&Y0j5q_uCp#4ESD)P0cj?LJoeF{Es;eRsCi3tfGj zOt^4dRiNk2+q|7ozoC;8kZvXys^`_C-H#L}71buOZX+(7v<7wyH(EmNlQ$fmNK@O1 zLm0>-O>2Crby)mI%(F62i-FOB^ADHpuHL`=wOqkq&)aVBbpBpVrTnFL& z;|E+D_fc=6#O7(^9o|?m1gx~ZBlw+55<1(P?2%L!1*smq#G9&Le+#|c`no>XHTz$pP-81OfH;} zi#$ylNz4m_BrROS`o-l{dxTu-cS)$8b!mZnY z@rL&8xx4r>b&9~Wdu7Yd_53Th(ey6IdKzkW-CfSRxpH^bJf2>gj9*{hNK4)XRc^+( zyuwXp=5b7aOWaClP`;+(MKIltim#j1GyfX-;z?}_FoqGKOAIGmDAp+?nxe+P#Ef^5 zogVGhv8Q?&Atx)&IwOOrg-nm7-v~R zLu0A(FKrfXKh{Ltxi?H!BV^YNWY4rAiGiNl1s?%SiP#@t*s5-NS~ zPT#(R%$9Fp8z#@T30L7Z!}v$7RQ8=f>9Gjul3dTl1ek8{^hBt@!<^q^ZlHdeit^E)01CV=ufK^^6m z+T;5XKaOlNdDeV7D8rJ6Mc0!9$_b#Z45;kd!eif06m)O2L8L$oLEm>lEY$Hva~6fX zlz!Jm?VdN_9ECko(faVVJHJknIQ$)edI0r3apzw3hVv&M)V{nas;H(M&zUAdH;_?? zs-!M`5&c7z=PMwF9Z#N!T;;78)xI8T=i`xBKGvVM7@u-!OZ&!_ApTwOv#U40i&Q{Y z5YtKR>}oP&vb+~})(e_yn$ijqP^?_dOnFnDQkD{lvnH zQ`RY&6jbxcHo1rkM7wXgDKQnCx_B{#k{nUz*!b03Ga_?jMl2{1U_*rJyFZe1OI{29 zUO`F6JizdIr8$C>ajf-$@TqHtI!dDLXZI}YWtY?xLtdQ?w3-mXsmx#ZU=n`4U#Lsw zaY<2ypLQX^_zcqrXOUDB*aF(9tQR{P^O{HZ*R>N0PHCeYMBY&G&6%k68+uj9-k|a9 zN7QFU?UiHm`p$i#!fH8%t=gVFZAcyptcWKI#&ra`N1AGdDqA`RH{_Z4nYF8wtg4=2 z)_zCA9Y(mF)1_?S&>?p*tu%+12piGyb%NhY0;{$qjl{u>-iuM?FE3Lp`6(A_@lSs} zS}Rsq*flyvuax&7mxokkKeehErwsH9M!7sw5LTF4k*YldaPa4=z@B@&BY%e4yHUQl zr}l` z=j5l%joO7wI1ssma9RcgAONJojkn!)qLQs>#!+@>{9^icd9Yk#6Y}9u!K3@RS&%#$1l$-RTQJqVRbC%(UD&T{m8Gzjtu)+J)4B z3fZ&)U7a3W7DODuU`7*$;s!d0H;T=b-6!xw-i*){0R~uFvA?f&-r2V3!GzL6ET);G|Ly?_o6o; zKZY?Bm%$O4bPy>@|Q1{+7zn}++qFAdVC?erbA02RBF-P006=86JQ zZ>4nTncVzFJ)9?NNwOuRZ09MBWCiayosaAfeHd+2oMLYvMPaGZz~Zel47)o;szskcs|Az`rxO<7MJV~&txe)XU)9y`*)vJy_l8ConQ?{1jSN(`TxSKkLF(2%HScq0Uz^RgpSIoK8$D_r1zVQ+byMeqG*zadz(zoibA zjLQ3vz=Zl~x^{|gt$8UX;)MJRV%!8~?bks=a+5WJKs(&i2S_`b>#pJA}ll zDBx4Ii<N`+L9orT6l$rN!4wGC&XAcN~=c#fMM^V1*EF$jOE>m|q1&b6_d@9y9W({|n7%`%&@^`pi zw-djS2lhbx98UeLu`;hn1f~q|>HAA2k(r#N=VK~tpO_YPdw_tI$g!N;@K@M~M@na% z4G!EJB4E^NhkD=W*1Eguv?RkLr(`p@q{yQvr&Ujs|9LNm)xf%$nSvrj*;El%fgcEA z(F@X~rbLal1WHC{=u^ak(zw5UeLD*ZJa5sTOEltqik~KH z-7_}};uZ9|^kT5vJIkuTGT)}4p@GxPt>SkF4B)Te45WiAtyYv@??XKtch679=r44> zr#@m!q93moUgH?@CJSUKimMcj(3u|JtbApX2zqZDZ<_HdO~}Ev4J(-b%Q;SH@~&1e z7l{&Ek@k5vOM&@o#`paZU1C!Te&=V*vVz^V%`$dmm3Jc|Fuf^REQ%*FZEb@?x32i; znFE`dc=8E2wvBuCz+Sr}u~oHnU6Pd$ulm)RP4gIi+$aPOhzi48Ov>| z2&9K`)2|%wEX%9~#(DPmV}AISWC0KwTwFo^5kq48u*Cr?UY{>-1H7O>e2gqAB@OM) z4Z`1&;C(aOd+@(wBu`+|ZUSg;mOl7OX>Z87g9yRwHYGHT02MyLV-&r74ZGP%kQ8Hi zK6x|a^-z$Ys{`JM|H>TzT>bc4pq@l ztXOlmX9;8WzdL{=>EN zhXyKkFPE+P7FK(>+-i6UNjfO|AlshkMgsas5VYe^Kw#8Q!k9ms$Z~#a6i%5a6 z-FTkZqmVSmXFetySM?E9e<>stktpWcp_T5epkc6j)l#&lX~F(#pKY-y6@U|{E>qr zZ$Z_2*B5{=D>4V53HM_|M5x@yg_PbObNgypy04 zN}Aw+4Qjf~{?&DnMcGr?rQdO6kwh|P8PW04N3WFLX4#>wGF)`%hRDayxAJ@W7Ay-^ zl&)qjlkx+8el2Vn`4TLOt;V}k4F#=oo4fhY%RRu2^d*1IIJiAGxBtDbS5|d0X_e+( zbXmrq>n6Q>uY_hM58l`&^Sq@op_DzN#l|hyr>=l0^ow@%Z;qtZhbR=w-z`|>IxS2y zwX&s}j7oxCnQ=^qPaEwlP9Jvr2>FZ)nWE{giP>3-`uaQwXAs5`zo-(q8 z3reggQq;=;lMWxQH0_e5(&1t6=eL`nmlDJak_9u?DTAsjm>-Ad=1}vNj-9nhP6>td za`elJG~%OTQaiH1ky(q@xgw$dKT>4cdPEbaHx-ad1c!oPITSXYEP$P64-D2FZLSg- zp#9T^MMj_K_ym#Esk`*Pjk}c#7}3e}rHHra6P4BP7$TpE{vLUUpsR(%0VNE{7TJ|W z7AyZi(JSKn`(>_6hZ^k-wx2>%r0WI>d5ZZNCa&F9lHLfcF>hGt%djEne1(mHs87Ir zM3C?wGi+$)Cdwb*@}`piV<%5dZr4@fDK;Y%b~9LWqP#+dk>}TlTZeseyUV2>ogPKL zv@?C|Uy6rgYM1>xLO>(__YPCGv+}FtCUZH_KKy>e_YXcQQqlP#TT~>^<^2IB$9UT1 z-AB1Y&jsro50gIynBMf9K8;kE>kYGszf;iYtV&a}6)b=&?6yGl{+?dc!wx#du+6vY zalELCa>xjJRn3`?@U>Fy@ifcTyae-w0qi!kL|B_ZBQ7mBv#26DKVAN)M~+>aOq6mc z{;r^~f_`&+j*LXpkfoqpZpo#HYG>aLXq;*M#}piVqSioL!tAw-ZTt!HG2z|I&vTA7 z&I?=_`*Qa5IJN`?kKOp!L@Rl!TZ(MmcRncY+dqqgE~tQ3OuNBRi(EumTV(K!SUl%( zeqG~{InPiCG``LHO-1@hTKihjnQ1SYMa)ITYsE~~T3@%bNP`>^wC)16r~X)I-Ez@1 zEQLZA|0gN&peU<*%tp3D{=W1MOY~_;rb$!w{57%-pCVeO%dSnrdmN#R3 zXv?+8%!^DrC>f{f(C31_KCvc(FBvqA!+_}^E4RQDxrztH_M zA(0<3jDsL-MDks^KZ-~>U=Vk+QyG6E8KQDyP4p!N&l>YK#A|1PvNpkf!uvCR`XiHI zf^Mbi+dkTp3Xz^krN_B^Xe>GA<_vU@OPYVG{dpgQcJJdr*5eBK__Cc|qw71G7BWB3 z4kQWMMfP57!$NyO0WwW5rteT@N6TvU%StOHK4rAdFapgaMrQZ7eOBEfbyJUiy_wy? zkAt~k&Qx(b>#$W6U<8#A7p!Y*fbN@YD!-n)nwPj8zk1A9x3yT4(GF+vKkxnNul%4o z?rECHjY8?(>UpEz_p0d%DAv|CTIDsbI-`vI$HGsNH*@6)w#(qF{;I!&pT17C5G)y#khRxuVg8*Lp7(RSpCa8<9Ei zrO)t7vJjB}UD!|gET6Qtn&t0%^;4z|cU@1jj2dpI@)S{1PPPG6piocPIGGxY=n*1V zVrvYWG2SG{{qefp%wh3aPU};vB|ZkJEK)P!*Xr--IJ`HO0a-@=*>*F@NN?-)kwB}D zjEZLkm$GB(LD8xcz>VKbt;cq0*t17Ee4q6YvIO22!HRa-TmoHfaY9-w1k70Uhv56V z>$lcdT^!#u=N))uW7Zb;?XV(bW|HQg4h+S-mZQc&jtA$dP^e+nO{w>q3MwbaoD)~d zr6{0eNr>EBPR~=h$=%4Uo#^dY@Lt9vr}@L3;`RBcN~9SO^@DhJ7Owq-u@X|0jpKC0 z>FdsK!{u0eI`#}XH)Ypl@A!}sz+DGwY?07%mUEZ&- zhQ9%RFVy!0k=3Y9r-OUV(oixUz766?;NvLPfO6 z?UdSHkGW{bV=DbsR1^NLqlRSxNJb~X%*j9D^&;U$tBY}DLD-1zA2|z1tZPJi;l1RW z1AX66{oG}C$viyL71GKWAKeemMjyU3w(A%t=(Q$|>Lo}n6|^piy1!kZ!qH`L{fWId z;bfwS9#tE;W*58?c2K2qSIiPq2h$@c<9P|lC3tLP=gQ?MAHOBi^?gZSry3PEJWgAX zon_eYPS}Q>h~fa&0J{5|Ah;OY#sdYj%Z^-wwsCiFMu&F3EPEWE{P@?qjahY0kg$S# zM%4y7#3v5K2q6SL!ES_!30iT!n03A7e!HHyv#j?rG7zOUv25^7S1;2oP&z|#(4TTu zK1#*xJwbP|>%D)bHJ&97{yv+yUIJra1`;{;1cO~2aSYO);QQRZDuYo|(_QeZnvTQZ!sT>|a-Afa&P7QN#6ZN}opMwUk@)>iZF z%#31>&1h^BlxkAZ$#0=R489T-1*0R6!fV>{u;>mGDR5-4h8=o;;CrNJrcQFA`5F~t zPV~jrSTD0|-m~nd8(%DEWQgbAeiEft7MW;6XkAR+cQjKxD|k46x>_FSn*e0{BcfAv z>r}rZ=?xAO-{Jd>$s~ zNXt{4L&pM3X0Xg>YmI<6>tQd^z6n!RqMfz{qMN%x7GCSnht*y_0$$lTheWr{N^4fb zT5~s{_-}puk?|EuuA5nS_fT~0pBP{u>5#c>oM@&{Q;NU+p}=##CsFxkFLX42M{=GF z1@B`=x&kBWn}d8-Xz1A4ubNpY^Cl%y*p8(RK?uzr40U-6TFY^!lU@AZF}LV6Op`Jn z90*?29(KNkb}-l8s0nW!JMSWW3iiXI@EHUtr`2Zv#75ypdlS9e<1X)}uNqwSWTH%J zO-%$wic8K~;vY|vS%~n|CBsNdR_6?QH3WUZ@8gIZR4+?*PFd0+AH}Iwc?h65ss>V< zPg3}Tcs+r8wYj~(0$N|{u&G@xy#2F8@EZk{6b}y%UjfnGD|L11WyYVMVe7PUVj{=Q>)>=$@Vw z-F2gF^ccU_dFjfe;8hC{62MKkl)ydo!eMON|8hMSfe6h z6_RMdM2J|jY&>4Pwyo~H8~44(_zp;vE^zD~@jW z7dfTrt6~`cDDWT7Cw+yDL+Tm#-On`%XJkg&*_|xm%pfm1-!qL5< z%8cBr)Nfm!E(0mEv&D$EA^3^{%4XY0_|>_20&xoDKJaXfcUE19Q9apa2vEm4q9^bM z3KLBKtuVF7nIGbG-Pyk3&E^HSLfp)({juSdpkkf|xSbQB$0C)+WRg=ZQ zZtBpN7i7NqEE|rm$!{*7SM!mIoUbEWy=lQ1;vDb>2>dII1LUf{Se6_*(7jB2Z3_KT z+DiyYbpVl}vdw0NNG;4c!l_~OyB3$xUPbEpyM8-3D~sy736!{i?x%NxVRh!})`M^L z?dKYwYsYvlE=-Yux7#HQ$`6PN6bMXc$o>c$eEW=m$$+;@3b4T2b>Qxa9snkSRRU~q#b#_bw>L{fC}>wIIiz6Mbrn_!g2%kig4-( zsnepBlStLO0`{>_p@j*lsw!bbS42OqCEj{+G2w`@r``v;<$Y{!ZJZl-^AHxmpF>ya8ms`4bn!9bb0?*MoV6?(eQ^~W|5Bkh` zq(}|lYC$zz*)WI*w|(2o^F(mZeF18c(OkQ0wy+r=n)eo(%jenmDpO7xfD|W+r!rj6&z~OJRhujO zlzbCyGrv;KNS(fL&~ftlW38!gp;IqJfAQgSW5&9B74phHwwNR2mo@=^mQ@I|bCX3< z-NW~T9hpq{;ro62SslPOf|k%e0kJNB^sL{Rewz5H@4R=r8yKV~Qzc)mGW!U7P_v>X zcXrP#nn$HVTjPwcOzSh!4U6eiWqc&+74oS$dHD45H4xr*-#Q0ho=@=Y9coQ}5ur8E z!a!{YER$EU$ZNrdlP5P_ThzXeQm+oH^mR`8mO9^CFOr+7+OrYBnItSnKXhiXH|ltl z-3-!iz2raHyn<%+PY`5IudUl&FI;#@9)sg#dj-Svs?}~>b>o|rHsDy#p!8WH@FpppxliVmh-Fml6U!U$oS3L#tu-~pd*4i5^aQ0twKUEEhx<$ z8t`B%n}x*}hNeh8#mCQ<6cp6PPxm(Kr^WJ>`V?+9GcxMgmd)NXbuRaE>yT6E-+m7V zSxkJ=h&`J)KIVYs@vO3C>No~eQ)azUNTvR=YY_M6@!*Z~{0dmM@wKr^q%ANIYfL9M zi1VFZfZ314&ml{1`a(Pd*nU~-1gvm8QgU`hB_X5@_ChXsU1z`E55MLYAeB4oc?GE* z8&teB>qg}WZf&QWdNSV|lxr*K$_X{cOow@O2laLgxgx!Le*PBxfrq>~>w#^PU$yvI z2gx=ux-GA5ovUvys@@ToF-z^7$qsC-Fih@>MIVl`b}|<2+{u%$2@Nde9qD$ZFxz4B zPnpn;^}Nv_aNbF>BvXgkK-t!2LcZtnurScLh4Y1DCYmC0Kdrc4DwiujjsKb*4B<>Nx*vV&lVG5&mOnwyK-9FaOb!rKLg2N5nNpB+krhFNwOR_JYlw_47(g#Bl z`fqR6Gk$x89^wvee#ap&g@xU_kTzF9Af=JMy2zGv&bn^a!;hz;1%43_fG@SCI>wdH=A1S7~ zgnAZdB?i1M3#o*IR|8v$@GVx7YQ0aWU};AO()z zq2r2Y_}hX{gWS8`CyTvgv~H;+Y7JV?*L7JOWTk#NT+O8PAc{1Rebl~{KkdAzzLM7z zwQquS`|$+((C3bNAAjIRxgo7()w^MHhTGBK8JsLe8wKmJ)(h4>sJ*cUp4&InD@yQ| z{pAVqOcfLHDSP*yKV3{b8B~Y+ylk@Mj~MYC)*7uBm=Mbwd(rHm=DbPS=5=(jm8PU& zv~g&*GKI>{b>|JG&j?bsIUkBrPMDqWbHkf!reZI<)JhM@2G*5_4gO`z(t++&Z0Yd-w0Z;n$YQ8Io=@_^jZv-8Mz zHrlfI1S3yn$A_$gfc^5$iD9J84Y?Y0xZ6jUC$CX1N4aGmiJoAtaYD{=WJ{$Xvr{sA zV>MMZ?!52QZ`(#uqGGv_!?hLtIqRf;LtZPOc^+%dIGq|G!beL;!|X2akY#aWcr)en0F;p8eq)qHNr=^z~<4l{A)moW)kPHTVi#NIcLM1 z=DyseyG#GC+_)0sO=Z zV2_R52CndY3qj1#A}UamX%T-Z9?1iHb_ep`rAi<;DKZ`W=R6SUWC0BPW$>K^;3zdT zaMjGyPn%lXXQKhX&R}(C4nUse0uTuSpv7PGW56RQ{RKX~lSFs}49fzOquqe>M%V!F zLH*wFu3mx^kgxm~Hvu5n!^*!v!2cgYjsWsO{t1eHj9&f@#sXYoXE&PQWVS#NfQI(z z|HDN-0$3057SNoH)rXT!K>t<7%zrZe+U(ti6u_}dAc6#(#54~E_Uu+xfD0SIwfuKY zq-hZ!!^1$w^1uiP^j`{5#uIlSyhlLd;XjB&M|sC2CzUM{*y4Y$M&RK8uEr+tiY*aP z*_Z!#FlO-5fDz&u(U$D6;gAC=+|~N`@gE`v{H4g^E(97EO~1kqpM(Cp*hPOSVv?}7 zj9jIIYW2j9kuXypc}{-tO}bX!Q#w_bf?a^exc`DJ?sts_JL?1=i- zAPQ82h-{};A=Kyqy67Ju2ji5xMi>c*=$9Yu6tmLQETOv9ey6~Lm)WdIq*>u{^&ijE zF&7PfdO#eR*o~>6+pP=Z@!llfI+6sa_P`J;(uRPRaT7_;;vwp8_8A+v7L2Z|xC{5y5ylOAB_LPXw$??6Z4 zr*du9B%oDs2?55w`LnOQYzB;%9hv^~pgK`b4C%TuB+$^S*+Q;6ZV~9U;{M=qnf-2$ zz4P7hikU+5?d`qae|Q_=7d(WyIj^2LiHZ<^0XjIH*I6AUDvNns?DTW-16z3e(fo=O zNRfdQm_V@ZzlrQhvpPz4Bj5McT>eskh(cNXs$OIJnz?AKJK$yPipIAH+=WZXXlu0#Q(V3`0J<6HPr<0jehKRwtO{y)A0VCxUP0cr0X8?@JOSg5X2{xjL2%0_)cKzlB)n4PfF^kLKEkyJ3+C4e=NC2ixP^);f_Ocv_pK13@Q~f&$C~X3WT3%Ke@~B z1`YtD)EB3q_)DZ>GBvy%bq1XFXhky0ww{3WSTY1{{c`-ZFr$kMs<48xOg)kqwRKjR zXpR!Iqlswqwc>&E0!~ZC0Ql6Rm1=P-DJ!_$m8-{Nk4(dxWVL(rIx%&e#_$oj;D#M9>~mKdK_a%la+EZ2`FH#oI4e}aat3*Fuk6oU5z;9!-SHDCB5!e1guEuuIK*F8?~(ybvxU{gZm zj$C?X1muV1mh((ufZl3i|0EcZX+{9zql_eNYsq$i&fYuAW4@t}tblFFKlcc%``HWJ zdJb^yE#%t+BF|#=aj4~o*XIxXF&(SiX&DEkW<=}m6Pf;U6^-S9T2W=y2iq?8kqc}L zr!)68w%?hsT41w%7wk~c;rfZXU2CA8wnFT0BC8geRRoD>|A?*MdHkXe9#12(wS2%!shFY)gO5|{3E09fesV~mQ^vVUkm zE-(efWhv;Yb570yOUXJnpXFyl8ze06Db_XrjUHRhY`AU1abMpPrQC+00KQCI%6aF4 zLNn%|E-vKWyeJFT<+)w~%1cpfeHy^aI-IJG@f|E0tk(EQ_!p%AH$)VPs|$c`X* z@AQ!05g?8{AWm^E|08#9a%c78AV@221r+gxq=GNev(|}Eu|VAN=U$a9jBUA}E^krG z+N*fg?n-S%&{7po2(%CFh=@)`cHIiTnE`T*nbIxqST0VoNyEa z{OYeF&R!k4k?b}W|1m=>yi3;3E?w`FWwee81)sF)nd#?8n9`MGyjM%cWv#V~99YG2 zVArBb25xz2mQW48whi3!TxG3g6^JOj!2a@xj`1{PAEHj+#xnxH*(A8#Rna-W*;@+! z$b%*dlR2Vp7~KEf>fD=_o&~-Jb~+VmB5apzy`L3BvdoH5i?{w-JXq!6zCRpvZW^&g z=E2$RRcSfpH8@7kl{L^FD{i2R%Z>1+z^NM-3B&H(z|u~!Z5SZN{IChaM{pgsebPKE z(JMlIgw)55w2u%(hu>EM&H=16g>xKzb4I-j*Yy`qIg7$A=8DJLdJlD0LPWZ`LPq<= zljCdOF)2y^7PO0AIwpEq)$OsPOn&HpW@Yj1nUe{M$DDx9)ycqsCNoF^OrUb|7(V4o ze_53CQ78>DVA<&*ovjnt$#8^i*pl21#+qo?a^7oBn$jFy*9myDXw^~Dr`kG?l zn@0(aJ)_UZUuR$Eyx5jsMT$f(Ri-C3z&i0;>X+zjRIwdt9o1{B-T{h39*ft(FMx;M zn-nalBDsv7rrHL#$#4qd79%C3wc9z^foG@Gujy94R?Au}x|K8t=JHRO?NYina=nng zB}HP5Ztw_MApe?~fMGvZw2o_Zmz}#5Iq4HMtgKtZLmGSU(JT8$41(1H5yZI&p4{f> z*U|Zt{PCKo!kz{0>36w6DC}rkOg;$|0rW4FM7)k#Mnt*Y69>jgBpDxllW{ZTBD}gp z2cJF<0wg)`-qKn87&+@#h4t$OCGauu2{m9l=XxY;9MNOSE(liFoghA0zM@k{lE*)TO7UMU2JjN- zh^Zpp8vHNBKug64nWht1j|U7{7YI>Cq)fhji81&0WNB=}^IlcWFC$=GopwDBg+(K3 z;Ahu}Qhq_a#}>6uN`t>wuZ3;Dovt|hvjUIYY}7z>F=xM}Fq>&hBmglX)eKyL8C(92dO1hR z2b-u3M3*G*7R&t9oK|TW+BVZZ`ku?@yMH$70jTo>@dvy5gjLvA9r2r}4~o3BZmX&W za+oPJ8=&YMG}as(t)#m>BeG}9_W{`S#lg#p*p|Y>a|^iA2q6LxZWj=4#(#6U4$-*< zex13eQPNfL8n+oS>z@RFer~qgjH&aiKjZENERY$L z)lm1$p?#6r0kb5N;Hms^DdJl)ogF2G=UqL%g^AH%02&+m5Liu}$$W&8RqF}x>+XsD z3U;SZLoR=7n!gn9;#Pq<9GFohU~kGJUmYvjqR-!2ta{Ysvd^k%AGg9DG3@6z;|6~G zi&IBO&Im8Mq_yVIfS_I)HBk_8*B_TBx1nDk`S+qC>rC};a3Md_8lWq_YkQNXT5hl_(8UX?6 zW^9ziU?T@?^BzCn`}^-c?&ID+#vfWJ`orNNIv8Z<}#9O@-#y4laz}NcjS~P}doc`Ptjyp@0*f-w*ei$|!YaJvPkyDSL zCyX|;CwY!DpZ`*sHMyg+uUNN>o}~BPym@=;sgS(h+->CIE-_-C!UP!6_a**PNh2;I z_GZh0wYPuI$J^)ylFkp42L*WmAFZ4U&MdtaT)#Z|jq{b;ITWl2$Skz~r)!n*`U@Bf{GKSCL1wiBykD!-+J69$z=Tmb{$eU{@{IremrY$HcxgVLC_Nl$V;{A|q-M-QN`UhSfOkZk zX!ft$Nc>84(^`3nH<%g%s#hGwYR)gfZAwys`Fiw=h<0kkQX{v5R0n+MC65o#$)%~2 z0eoUyA<+dio=hTfgSx=7yKlk#8lZ~Jkr_IR7*JZU8h-y#;+@tb zqu$BZb-=P;n%^Z#SLE^}f@Ti>IX9RjipA7(V2?mUK}5TMHKCSeW*0caVc-mh-fCF{ z+X551KB>}(PWx62=%QT9Oylh@zCkDUw0;~#EQN#cHgW33`H#stv#Y9$Mcou0>yT+g zR~NR$7)?135DwiyjV~+Z*MrJ;=a3{3Tka+5MAYnM>JuTXuWRs=$Q3T66TbH?U)QYr zUYPs*)b!~TiM5Hsl>K#qTnu)YO3GOxcK)}q>n-^mD7@Y<@J=EXcfZSQw>m8Ip)d;g zMxapPYexLk%n8K=+NkP~qCO2K2 zJXJ|KJYfdWUW>xp%+W6}w1J1awf<37vG1%di4U+->1M|AVdyH%`!j!JCll}lh1;O_ zw+_Y%alL{yj%{*3-32!x#sC83J&syJ19ag=ZU~1DMd$;k&gc;_1l}t)c0%Jlj!E3= zdOws0&eW3-3tzyI-tgai7MO_ zrgG#j2T;{XoG5rti3k)=>^v}&0+ILtz=dwif(F%g_qJLu>Bj$7O$C?sH^Jc6s$m^b zG|9b|j&T&;`HjgzPob+augnhQFi;|3`%#z@FkjLY&Qz~d{-rYUivZvbPmyo_Wt8)P zWkT0QkSYS2^woD*p@3y_dys#|Qch>-%4(c8SM9<$cJ75Nr_<$%4-S0fpRLW&( zd3|67f;_;M-x#ov_(1=@nX87;2~pOP0Kyx63qI#|?Kz`lz;Ln8DP5D&Zy#YniQ|ii z_DVF~=8>!xAXHXI0MfObYz5o``rrTFo}}<4_&JYWvXK@K=_Ry16kP#W38)JuRefaX zbX_-Uf>^H15M(k1%?QW^LnKkTj>1&=+6%xpI6%jWM1XP9(+nxsJ_3Sr3o$|qOnv-M zegKcR5$et=4h@jw|FU$>wQi)@S$-YIa1rw02ss%I@Zl_kC|&JH(Gx`MIO74jkrF3C z@ooT58w;i48NmPdy#X4$EfA2FYlAIp{5E-%) zI1*2vkAPS}lDHr1poxwhx@17k00)&z1-F6!A_PEdbUO;RmOTI;a$|HBg+vgwC~P38?6ez#bR5r~sXdQi<*!BD15X zSJn{HntDyR`=T!AdOy++P1*c|7LIFvkaHclGwB=P_uy! zxko-IBSov6O%>BZqqRloVNfmZq%t{q^BcoSh`#qH)*`J#8%rHkTi4?;$~6Gl2nFQm z2!KEhWCO3Hwk#cmcLk7}hx4lx+8toq`TuPjXbx<7q3;!(v10vf{>d7HhUl2m*%>#9 z?;3DK1BpU>FdAXNXTrb#-|J!pWWF70sqyLxjIQ_pCA@bGr1s!jYi?TJ>EN_? zd#>9k8rR9Zt7DYTYbUw7usu3>vJ8n2=ukvAG<%OkGlbau-Jn!NBzy{QQ6t zs_pu!9>9D4&)xt}0>bO{mNiBGQg9u24iCHi3pR3@4&NKD2(#DhBjdg6#&+L}m92FINnuQ99WdF#t2zNe z=J}%G<`TiXIE_|FoM;aT19ScorR|(xwtVoPXl$|BtwR5@2;4BJ*Mt2~y|u_@ z$j1rA9-9A$FjzMQEPNzqUa=FpP}F0~^PfiGY}SrpK?6ej+Z*)sA}- zJN1)(O;r-D+Vb%!(>XoL5re^XTQ)*Jb2e27^O3&uZZ?mzyul8Stx+c{4NmsC(P>pQ=dj8})>}w)Mq_P_T!2aa2|41;jAsnDxpmKJp@$T(C7_B6A9|&N# zXNVo(G?cko#9ic}@7}*k>h@qHfg301ewinZ;BrQQ6tIXXE-swcYTDc!C;1`~==*j8 z9Qd-o#W_T$DzN$;cRY|?vZFVF{s)>+gO}=Cg{oX1pQ-Q|`T=`u>HvPD*PpIsOQ5tSt< zOu5xJiA+gnSsHSHoH5w8o}4&`GC4V`4ypCfOftYJGWof_YgPUQVzS)_IsVh@*c))E`vesa%!-RX~ljc>*>(--t{uX>^pytx-x+wi|_ znv}FbNR6=n&IJX?Q$R`3O~$WNE_3}Kr6qBpo^jX-t|OhMU3miXDU%{H=cGUtp0NoC}Cc24u(qAen2nPF~zO6R-pD5cz0`}oW5@6C){-C+4pb6m>Qv+n4N{zCj6C;y|>>R0YQGQ=CLsm~pg zls%&J_!8t_tEgMwT;FshI^(B0RDA%)Rx>HlrzdXvUcdQA5$sFtpAa#`L>e#|fdAqi zGr}8;_vPGo&c{E{Wv0F8L>QO-<;L@m|mpo zw-+z>0B)gD#c`|d?$@G&3Q6l5qJp|#Mm_8fJ&pjn3=M}V;@1-t^P|u_B{nL?i9a_c zc@s7giuKAPF^zBb={|_f>&V`wxS z(jVI78sCkp7U<+8IJR$j!~s2jn(urC#u*|oN>hhm&c2JO{pqdtBj4ni3*0}*)z*k4678ABf12-kC!g5g;#Pk+ z@4gm?wdI@k+WDpAp%Nl-LE~5zHFo$@QXjV2S&YCVrx}dkteP159$|dxb z05zm^BUs_AL_}NTR2V5pIu$eRP^mW`!%kQ01e-avgbT*2{=#4dz|2zmfC z${~uBG?6$l!ZuW zb}VukUOGGW%krOan;{kV1*bIf6uQgzUL;pRKcP5aoIo9OcXX?4&F_w_*ch%1&fE^k zk#LQlOI)e!p1fu}LT}|IdH}=3N#^pO*`8uYd?iCTQp3>sB6rqKgYO`}rxi_uln?{Q zFN;um5sr{%}N`HpT;}B%Q3}X z9Hoi+*Jsc7=RIwlnzCiW!?KjVfmxB}=FSg>Dvq1nUSiu<6j}PCx>eZ2o)?MlR>m%eB@|`OUs|C%ovNpx0SK5SvQ=bL8BuLpg1IRz-7G~N z{-;bV4wo)YrO!IY`tyZo#J|}V)NnMI8us{19NCi}$DKT5O?;$HUv!kle6#Tpmyib! zU1qT+C%x{~15QFzB1N4t4yyA-iDVWOqdU-1as2U0jDSHJ(}JsFEqGxJ9_d69?9(}S z??y00u9h^(tyirlpA-}kqn0ie6C7^?GXt9y=)*9~8ZUYRXa+QX3?}TV-1y}1`UzJb zt?yvadN)g~pc0V5j59(T+7VIuyg zp#F#6Yv^?@jj!}{cN6IY&3w+(oEFuZtLw*MZrIKuBEl$~X&|oeLv=FEsD$T?gQh%# z(t&O289&T~ShlPNzeEDckhOW`(g&W5SBTEJxz>bfFpBkkSYJCQ`|u%ScksO>mg#$# zZ-`4iEh<=tI`Kv4^nAxNNJ_;Er_AP+XZq+I*ry*kAeXgboln9`les`A=utDUoYr-c z)nv2H^2q@r+%mGLtjFHaigC?M#eqd;z=@68)9!%E3{*O2`)4-%t}8=LeI28~U{Q*2 z;#1YG*Z@`-Dbd%7a$YjrrNen(oz>cxG_g^@9LknSq9&gP#@Oj5zPnuj~K0 z|Fsm728x~JMMWdwQ_q7GW^}Lqj6OH;RxYGzYPLbsv7=ESp{2EmN5;#ex{aDiOh|NB zt_}1U`o+?0d!WL<>@nXqq<+J7&FD3%)?u{CfGTqOsWnK$trq&ciJ5 zDlt25S`28*xIx>67rOQJkFukF*`I&7D@)yB$GJw4BPtMvfyDphOQ~NL=eIIEe~#!) zO)+ukJW6x)mei=fBe0*NZ+FHTMWd3z6P(tp^APnLXs-faIf-6V&&VVNwBD^I!wxS=5CvGs|s^P7IIc=bm-R6{NwtuGl( zb<8yDvH;eEpWi2I47R?{2{Rrqg-PP`k{qU3zLo_S zT6k6#uGlAi2%9@Z`ql$gX+H~iJ9^B4&VzH=tAJ_lqjy|!)^5vRJ6SV*2)bAZ&4`Yc z#c=*;psJ^PvOd|+B*Se>j@{FQK9F4$x;5wm5?vWu_|`@4H;7k!fRPL*lxO9RKqELv=+R8hv zr^|^oXRCm72q45|fDaQ5rk%qiqOi`@ZhYO9hORGfc?8AY$O6qpe~_7<2?L?Ns2C0j?sXs~@+^J*|bWZp&1=lAcz+d}=?j8Q7!TQW$F` zBsNgod1E>0+{T_o=VuqTxKd>GS&pI~`_IbK*xM{0RA7VYv=>NmK)?HxvG&=|r5F!h z7xwO=tvY#YSFw+3y+0pBYIN=kOLscp{k)R9IX8M{3rk%K&f3pB0YC_eQ_Pt4Ex|e~ zvM^hkhu4gbjPjJU(q)P?Qz-+gi5yW{Tq>W20m zao_nY!kVumK&$O{P%gtE=<2BMIF`#WkfGM`W(hE%%5|xEpeJl&P6!LO#2-@CwfUEzZrR8p==Ainz^fs z1wV8pzuvFZ=AhxfyxJYB9)uqnV~ zD}J>1xv24_H}*Q#`Aw=pr7*td_H~viT%p5cdwVZj`%>)6HpvmQ%j7KPQP>m8)WEx@ z@lNPj$;BwYtE$4(TQ+8qu$SC12SESTx$Cd&uCZ^bb_y>u#0$o^l!5R4_RjWHlnQt$ zg4M6Ms-PPom-tj)fN$C?v?4q1kBRSb;w@&uEsSHA8wd7AwVch&e4jvch4I0&}&zkBlnTR{78yG6Hx`r)aSjy2^&yzd};X8ZHQat(c1?B!~Mwo zbX1WChrezInh$`EHetLY#u|+ao(q$ueRhCc0bx}- zK(j$T`8DWhU=&!~*DYI_nua|e9lf^+KPA|!_f^vPUpKy+o8Dvgwkxd>bZX+(ajq~; z8n=O3G~7K-Q1oZfvU^|SCGeaOj5ED?>6E;l=E zqAq96DSENfRq)#jx72wZIr)<)Z~vGNjS*+W=fKEh0e?Yo0JFnxediSST++J(0!g}DC>@dT;&UsAu&)IJHfwo14*0*|Yv<@5T z=MRT1xrO9IODG3E}F2Q6L(Z$Ef9yh_vfaIv9l^hcyL zl~BGV(F_|(6v8HTsAhC#bzC-Yoj&&61iIH0+U&NfP=|54n-yGd{Xi(eAqjUOG@ww> z^r>!Svl6d%aUYhS(R-^voSwz`@=e;$dLQIN4WD6t+(8baxQTIH=qiT@P}nzbF^}?Q zUH=T_sZr$2QVM;lYpHJBYx%=RgWUmgWvUhW0>%+X;2J<}C?$VH5U&I2A7k!*GDp2J z_&4!MxTatH!E&|$hDbZ!lGRJOU~?8|$YMfZGT=Y>OZCpxtOn6u{s%z&X`S%rdSt=1 z&5wJ@y)v#HsHGh0B+})wqkRDW(PlCDuha<%e%pUb;i#pCsm$iFlG%$lok+en2TFe) z+c3^szNa;4u&xvRBQa$E2rZeDxI9^IJ{^ZXc!^lFqWZ~q6?dfejqCH5^wkRQfp*2K zQ4xDosy7hPb{jTHr<&tp@}&M{afsUBGjtc%{c$_K<#*JnY|x0zsQhs0Lbh3#hVi|nR08o=#Bn7JHdo8 zD!+fPrZ+6EkgM~3d_hn&H@aQ#kH|}#q9Lj znQAy`iXkKsgJ{Wj*##15+deF}5bgl5Gi%*u8RfVXd4E!=g{8wc)OEv@=lAm`EF(`4 zcMRC7TQCh?PKlAzD(R)yZoH*RozkjVTLda}h9fG3#=MENReDX$y-P9}^oF@5xZ6VJ zkmx2F@~o;JA!d;+%|l-3tPPf^AVy#?6@TP;TCK97i#l&|mcM`=+b}oij9eeogyeaw zOp@++DlzrCX0j|u$};>&46VM32SV%eM;=#ey;7)nPAA-Go&-zZp;xgQ9AaGMLm^i! z8{dsBc~rZ6yWw?glD}%5Hw5v0m8dhcBjJ$sJM|51rmo#??_S9Zk)!|nMoacvFgh7wBFQ0$W^VVws z;eS~2Lx_eiCsg+KrtZh`T+o9g6L}bb7W$tsm=Gsx)`3ofxP`R#hW2Yu@C+?n0@<1% zOh!!pP>sh!zoLbP5VTdx)p_4z?`Xp{l zV#4b{sY((qHfgS}e)1?UmhV|Frtd5FtlLm>kXPZN82v(M82J#WaWYsKQEIWowo8=@ z4RpVEv}|DPPVvj@VY^!v6X-h_SLpS}zH4i1&y%kWac`tr zGo=4kxBA)s>(!HYo|nWJQ}3^-m_GbCrB6N4e6Mjtc&`xB{KzY0*Sc;pO*CulxKiPn zXa6O6hQ}w57^k;Bja0`uC8Sk<*0(CKU0-ZqPQ52&`MtCBBnm+Cwsvh+xLX6GtIcm; z`gjtr{AFQxNbj3~tG1igHAU%B1D=!a#{AB@_1lXjpI}l`qfZe`Ht*=_W!x1e6($fD zQn4A4pHnyq+Mzq?)3o{IFQ{;`892><#m`UKOm_2@e|OhK;d^r-{mYtLo8=($?*yGF z!J=1%=IakGA81}-87p?ZV&L*Cqv-dE<&|_1)2n?J$SluKZWLKTPCz)NGrmB(#iu)O#wu%Ns%m9^Lk>vW7MtVl zvqtPy@C|w`G=NJCmUg9@8*D|EbEf>*+nt)0hcp8#DLW(!yq{eNW&!8BU^s{FfiUZWhc%du=F)7)n_4yM6phoc z{i_F?Ja8q$=jDk>eTMbIwQst@=<6k-g{zXw^P^0Xwz3ZNS>G}@oR~#AEIH0rX=pp7 z%*B0}xu+vLv#Y;(ab;UcJ>kNsz>DFGI`=4Ia_cEsJ@zzQI=^D$geSn6HQGO{=j(J8~O?*;(B=eq|o5{-u4dqeU7ls`gMsk&Cd>xL5^K4Ot~JAq{n05-M9Cz+m)3N zdWlmZw6S~R@@mvSo*Z0FRM^(v6o0j2?64jqR2TVZ(c$D&KGAE_e$`pbTTsI=)<=61Xb@|gRNO&&VJsltbX?U zIm5|ZI;+NJLK+7Zoli3E#OWzd(kspuz4&;N2!SBVRlZh7sf1lK`pM9F(mrtzlTQSYx}_R)mDx4g+27y94spsDd%wu``;5Y?+$@7l*6me#B}u71N&Qiy3#{d4 z9U^sfVc`@s`jV5B2A@OWA>g_Fe~F^N7&;(#j0LZI^pjY;42}g~dc_i>w4l(fGP2-* z&%CaBPP*tKFMIFmbdMcil$Y|L`dG6Hs$$n}5z0L6gZufoPI4c`SQ~XFk?mC(-oD4bGWleJWEQ;nLBv$D2zHSvIweyN>o} zwwi-Nf`RV~YqM7&Rf~h(jZHS&r$wg-q!;EHxyBr0f+Pv3t)IK$C)_=Fwe=KwfN>1E&mAK8kO=X*AmbcirrBUs_#nvwsAS7 z@F#UAUGiH^#x2_|XarF7;?V}-fr$fD;7*bzh9F^v1aSN|%yDV(+|Ka*$;FXvMNUIs zJNnEOD{c9X4sGKqL$NOB&`aBt4bz$;o~Q5aMyf6-_=xFvZf2}peynZp0{o%+|Nemv z`r%3lVMl$y3PKR=50T)d_uwB4T}JnocHdG2{5_|-z#OEPAHVP}_mwWqZ1DQ@f&QfQ z(R?b?c*XN_PFQ>OXWFW<;>Q}lvlO?wm6Tw#w(quz(^#6tt8!w^3Xme52r57-enKh$}WAs*VL0_Sg?)ROg=x!;=g`-=*%Z$aRT#@cuC-7v&<~ODF3v$(! za$%SNOw2aI8yMH4qXzl5#=jObjM4iE>3v7aesF%a>(h;cPV-*3J08REa)%K450o z$~m#ToguWLoUVucsCeB>?=Gi*wBqyT@w%HmNs|sZramZ1>N9T65WUm%aHc~(7h2XH zbo6jR$x`CDH9y;6@Gq6|f!V&<*;7Qj0YwxB2ygK3ESrZJ6Sb zP+w5FgM@(T;DfJzZT1$0d{MtXh?XOC1mzp*f8Zm_0-V;=UR33dOoe`{tfUPJ8`QX) z&dcfe7{>nIazEY<5MsqvD@IpznoE0Fu(2rzsVUG?{rxE1z}d_HxDZYmfQykU;L4UR zev4P|v6d|>yc%+lKwv6!W8{$BWiKPzSFpYe_2Ng|qO}qm!z^2-c{hGb!n8{w&6Sw^ zE9@>&JxlrMbCLQgzu;>l#CcS0Z5iS02q2WO2QaZS8=#7|9P66I>YU}5Sw1V7j(V_HIHXzZB{f4V=%<{E{)L(-LDEd1D5DxHRMAc$8#)F3hh=y)PAG)wdQI7~F zv-&>HmutV@tcv)CE6>>e^Qe*G;!@Mg=r-Q|_oYv}9+kDI-Q3tG;k@|?c_0?stWg)p z&T8F4aL|IU1 z%6@C9voFr69Mp)pH8o+HSoCJfc1Tu6OawI&@XMUFcyn40tK_+ zv|=eh0-z)E3VaTXH$V}^qdJF)qP;i*Ynf+BI)MuDeet{UJGpXp5FwtGU zfbYtX)6h2a&ZKR2P>R;Qi2(9>fuKMV`U)%n5KDpNAFZ_h16^i;N#Pm{EN@@pDH(Dm z^m((NlNG1(bS}$s{EXdU6cQ5R{PgVW4RQC4&tx^I1Y{7LYU(`maV0B3_Xd6s^;9Iq zb&XW(>SK50+p6{(?9LKK5h6D#0Z5GKU_!;0R#p6Ngj@4-uh;l4#kKDZ^;|!be~HLv zhJBa(%v!%9r(xEMz(4vYU$uZ-n)W*gJ4hs&rTLy;v6G-C0TLq#yJtrY6@6S+J7SCF zSvNIF=Km`2`VKvcTMGp5LUGo}5Yfwz-E;o|QUTjSC` z4;!F2=t%yI8(;u;#NPaP?*I3P;)-$u$AfAiq{~c{3qHVs(-x55XN1ePF9X1S^al%GkV;|#1`?AM>L0qJsqiRM3XcAa{!oyzfJq)PReHqqqbkE_)4(?? z{PXtb?R;{}fS+4xN)5$*;8E85m$zP9kH#7mw^kbe*g3KE-T%?_n^Nn9>~=-Ws$+)= z0Qxu@Lpi!hbk)g|RL8Z>fi73XU&z)S2TGQ&arFfjxnr)?xn(kkwrB$?uH6}~4toal z+rK~(BFMBOSQm(%XXeEAr55&6*SjC*oo6F9VmD`R_qP|NsXmW2fe&3S0oUCC>1^Jz zBu$W+-t&6tqti7gWiwy%Q|n5P7(^?<0q%Vyd1v{V<8F0mgS#Al-|qf zJ2U+`>hpQ+AskQyRAPTg8c4ir^@S$uOdRzN7?+l@U9!B(2Q14KVKW)sUPOeoHsIjuaUuL5m#|J~f6pCfgBllES?&f_G>P_9_!iEts0 zK;!pjeNbpqa1Ba_CxTZdd;5zRIOkI~Ng2HmJn@(6tEI$=6ZtD*DGh;tjF>T8+Nn9S zp>%_4xw}2Cz)bK7-x^ofqexy~@0Ai=Z4zf59Q*p7TEwaci6lR59RmB8b=@gqUMne} zOhEC*s2DUKYAFs%4-9WldfQk$9O{D>@Xv043}x1g-m~4Zi0yq^Wg?!7zry7diP;xn z+%h}AUtM^(77k6#u7-Y28rChy)!iP;o=f+H9$}kIcO9B*&|arckf~sI=$r(`jKpz# zWJQ4Bya+$WOj_~7;l>lYS4S|hK~rZo0;YqQ6h=KXJ?VUyK^84vmCwz=SM(b>tZT2?tFG$bf|OsVHKRz z6^h`z<9L4JN&A{wwO(5JtZ01X8bm<}5H>o+=Hv_@Fo>ggP_)q#e3&9e?4RFRDD^t0!;8#*7cb0<}H01${&j8sZLEF3n55NP`t2M7Gz9&9s@ui{gK8gUC$Ubf zCp>Em#jfA`>FhS@UwFSkmw~EhrA!PYW-3WdJEQiD}#1aNS8-FbA+Y8%6qXK%@5SsHX&ib89lzXeB@H^vn@jz-hn`GDa1oFD<4!{ z_WRUlqN7JX~%X)ihcG0)pD^s*~kL5^8WuS=Nnk1IL zRQ8s(N{yCsvLO@6kfHYIg#oXFZ=%^>^h=TmG`wuy85^jT96syZs3BE9uy^E5L5^9I2QpDl6IO)5pP`c6$> z>|Lg74tFy6_n{e3J`FD<5oMXtaf+BNzh0Y*$ypK0W;m;#_nL_kLFs`V5AeO+d}SbZ zmqxb%=aKo|&s&VNBR%haw%4k!hFrkyiBQX=ZrGNe-J^7l`73n2hCLavaUZD=Hcxrf zYTUK#ElYb|8F!ZV+_Niwaz{L)IX2WdEt6RJ2_`_OO>%bpYGKjOg~=Xp%vd*W&a+Zi z*nryqLDjHy4DS6RQ{#OYl`)bWe;_5*ImkN- zCuga9ZT3REy$W56Id4x3(b0#%*O8GSC^Nd8;%wt?X2-G+9mxj!<^Fh@ddvJt&&0O| z_FG>cB}uJ#p{uytZA@%xCVVmGAw zlK0Ti^L-xOCk#Zz4#{QQN6Lh{E-3|@iE`4*&-x|)_l#4p=iP5yl)9cSXxJ-(mHP9V zhkh^^>h;am8X}3b^Q?VWUzc)nx8>X362Hz;PUAVIPzKJ+_>}BM%bdKSB$L(r@K!Jp zf*DR|Wlrk+-dAB25Q(;pdlawB+UP*dTzx<1#As-PJ}8z_roo4I=rw5y>uwclstvkZ zXkS^QW$&pIb$(D*$oIF_pC0u!R3gi47^bBn3G1&Bgc%SMX==Fg=G7bC0g%3VVDe<+ zE**U4FBNds;HX)|b^~|3+3mkNou@5VaUZ0=i>FW?-+{iloPAs{Q*L^VE z|Kw@XG|(shxEno_v@9tL9};AeDf2JvfhrFwK8g8QnfXB?xI))Hnx3Ea(o*2m%2bqw z0D?@U^DtH*FgANc8YeV1i#x&pnsx{|8U@;p%LGaH9581cg{uLKf4>k zcQW88p2IPb8!~s!ogzAr|6oszg$+If;?uh7YB?1xNs{wWsz5q>6nDM2C#;+j68`Sj zAHSw$5j8%B$->55{r!ld^X@QeP?t z=e8Cbxtbz8=yskUSZnMGmM!&Iv?2{846>fBtgkutX^KyE53+O%s`!&$Vws$-MukZF zu5{8?;f2N66TVno`_7_~wa3T8M06wFp)0P5Juz&B-i*lae}Ec(*Kda!WP`IQp}$t6N*$?p=!?6jRWbUoN9!dD$JDgcrpoCitA) zgpw4A&t{)BjN)Rowemr!?upSFpS@|w&)n-7Zs-q5;0-Z;?JTUYXDtL!4HBs3@TNaq8~m{=|M=&9Z&&yZB2nguACKmo17K^=ND)AwNZP)uP|gyZIv@xy^NL)JQ0$Kx00LnJeI_)=}3;^AXGf=rd^jL=tL7tb^J4#UDi zSlh0x$TbZO{;PwD_+8lzk0)lf@;W1! zl|Zq6jlkrD@T1h=5NwLt1GLzqB3cG<|5-0+hV2ca3^qSHuv#8=XMEj;S4wMk$@%Cg zWro3m-p@J%nj5m@u6n?kzl>yCAZZbUS=yxJ^&wF;ndy3N-$txsE|Umd!~I>$YcF!_ zy<&58pog(&%gv#$KGzG!9P>Bx&W~wWIl5t+ENDkAMwyZq``)y@zD#@6u5>B|w5Pw< zWvfPnd?DVNT$v4UuAON4;E5jEG|^1mLRe$RItM4fcr`Z5`^i+}FQ-6cBq{<(9br|CQ-iKC>WY;r-X8ZrOqQQXpQ8_v~W zOyip0EyIcc-=9+^mP4J_?}qV#oAnlT2^an}(=oK?bHfBZXqbX!bnv;KbViAHN4^eR z|3X_amS#64X;C&)FkqSSBM-nF1}8#Dl`t7XEK$Xx;WxWljexYScWtc-v%6iIe@yN> z4z#K&XE$_{cQPr!s{%c&nM$+x#3m673+&{H>DM)hx=1l0*Pw{HAP$F(!)dogM9k*c9`Z z4%Je9HGT~T+-(B)jy#*kJdj%A8ihtac9m7nFA=#cTAv0ef0sRR3*{kWY`H7u=ioi9 za?N;^I6JAb_BU6)qsHvBxgI7~2*=#Ry%9V4@FU+&Kd6+b&}ni9zejm_?$J})unTHG zhv<3M3p6FRW#U0}?g%IJjH5OI75(i+c6TfHi;OC()e7l@YP-vx0YO!b%6uR-Rhk^r zhp)p;MN+OQDUK(NgCfEF6h4?g-d;-<6{KlmIW4uW{9VY1)OB_rC0-dImj2PFn%a)y zM`3hf`jdzBBd|Mg6&u@Btv-g+(3BjE!P{@W#H3<43O=4s+sX(tAX)_D!#cR+pe~CJ zhvTeb_BmqKM#_BG_H_F-HMa=sSd~sFl|L33HNhP!Q)6TDgdmweTVjJaNcqz5+s#hT z_x9EEr}{c8Q=9qQ)UV+xM8U0g_^qj5V0;wY^Vfv3J8wLrRULDCZpCZ0*9%G*uvcW6 z*iYH+RT9Nv7Iq(r>77d@(TdJHJ~uJJYNRidJY!B0w8`IIQD=y2^qr?Y9`rlS=m|1n z!AR}4qu6Gz{whFUa4NxT1!k_jkDr_@_%d@@i=FVayWaxcV{dME_m0mh%{pxvzt^;>d?}A1 zIhVG0yBd6#as|;{xh>Sv4zX3Fi zrhyEn^KV-|i*nn^*;xtylxs|+AL=L44%gs!vmi-g%yX zZvwX*x~$Jeis+zA;XdE+Y@UMCVGi_8?VjbVmQOvhJz!ar(IeUbqX}8MZRn4eFV;(!#MXdvh)!0*h~3zk$9W-5qNMhE92CslguNO9|SGN&F7z2MTVL z0oGq)*Vfp73j2?f*ZPrfO#f23p=Ruk%7`Zf4GK`;w_F!zgr7**jaEd~(#GPv591W9 zx~QFR_}7N(bvUZ7r$T|5om%{aAnUDLpl*HXih~7L!&tR%$S1v?DJL&YpG9QbyVXhM z*e@+-4V5by`2O+kfRA3%Eusv80i%oC-}R{G2R^BX?-SsImk)5|%(_VEx;b8fb?%?z zkK{SYSkVMpJRYy(B+fj+xVVZzU_9#p_>wR|Fyg4*?T}e#Q>3mol4nj{ApRT)h7>$93I^eQs$z++<^^S(;v>(^~06wv^0e zP+h{{@pc)u@=ViToM3!9YoFK8C&u+kSK7CT%BC<&g*==0>5>GE9yu4~+yrJO+Oo{X zYTg~VPe|(_-*oYl9OSU)bS`{hN&C!G#cd%8=vPSu*pBvW43KAtxO5PkQj6mQf?yS& zwe39GRj#_~VaiqGH`hFF6n)TxVJ&_NiL`E3k5km(QwU}alaKz(?dc;#c*llY^;S;< zRNl}(vkpSrf5+oJ=@Z>@{G@S5$Laq?+Is~x)rJ4UpeQ0Lh|;SR>7df2Mn$?15$OUV zO}g|J5(ViU1f)i#NtfOU)d&bkm(W7!J)wj^if6y)>RkNin>pXP$jBg*-PT^~S2Nnee*taX$zmiP8zU7y?bGM=a&|*Z<3t_EAH%v&_WBZOD$U$Zz!#; z`Ci#vXz}&HNFt!DY;7^V7`Y3EB*Jwq;fw~gXa3mTxkI`nq0aD**Lh8nInqM)DA&fN zh35Ir!c))(Op6F0%&c8A`yS0>S*oJr#J|GKyAW_+=VSNcyP+k9pZE ze6Cs*7-6?fz~7hCjY&QaP-ZLMRhsYasik*>*cQ%OhNkn&EOb5`g+0GyKbQT(d+w#z z(Cx&9CoAtm8J@$G&a1n5_-q(Az2=9G^cnV7N7-$ccp^I;TE_i2*&uUYElKdE5K8)f*iqF_v-a{4@o zMdy{ryn&w6AJacP(tnn5cf;`8v+1y)TQ`1Ress>0e#9FkT+=vdv&TYoeEvk-*Mv8a zG34CHWuz~!sB*uc^zLfXug0G$NEP%+SCx!Wq_T3)kK{LA$z7{Z$5vB!Et9sxN;a|Z z3^%Xi+pb$BW?PYi8b=O4?Vj=~-#@E-|v}Q>$Oe}{eZZIK`X*9hwnst=gtEd(&CNbzFL5HF{FyLYg z#zdoABAGL^Q9|j7U4KUwXA28;TE4i%mHe7M)nDtHRX#%paQT+5PwxA%eN^J&jxz3jGeTI?q0nhP4^8k<@E0&lfz__eUQ@KYd#^I_gU`VE^i9XN zfA{}dUWf0$UgaWkj7#2CzFQH>4)`i=^abC~_|4F0&JviYcFGP^bRVvsmC?n0u3}7; z$yW`bXeIS@e#L6VL`Bzkq(Pee`y@7l!)OPWG`ZH>b1=dmSI7Jur`pKDbZ_q8?0X+&MESFIc9gv- z=St_qi}L;ylNp(mVRtazve3ol6dQ7@X2!zhl(jKQs9s~kfYYm|6wkeV@~x{za(Kji z78Z?Fi+iPCgq@HY-vG7coO(Nb;m+9>ZxFxKxKnBgf90e|*(}>M9B>)axDH78sZsx^ z?u|a)6&K0?-?#q|tMZJS4R$f{C0S->x=sJdBGIURv8<*H(#2!d5#bHVy{kC-Y~x5y zYRAw|?K9RX+NkebHsFXclkQ^{sC8$C2U!`|l-RDc$UBqm3d$JyNA;lOb!yT{+_7z# zSW<-C@-moFX#UL7^;?aBvXp^9+8l4c^%>^ihB_wUs+E$-+}(>$R|xiohZMhtvu{q7 zquIyA35U|6`Lk}T+Dog+3-?qtKt`ReM0mZsh!WMpI|eUQsc07c+`=_|dbjkD7}f*c z0>9feX%anx?7v3W%s6CGe^~b?<@^ItOX~vc2QR-1dhd64cOixU&bSv1Ebqy)?MF_3 zzH$Gk5gJu8-TaqY-N{O}>e=VMvwwyGf?ueI$LJ$DjDXou5I1R8ui>EMvpEWf%h z{-{cw(Ce7gZk}YT2<<+wiufEkO6SaI43NUPCd82IT79Zs|6xK+yOnmJ2eX0F7+;6B z2WiX0C5Oz!7@H`>?TRlAz~VVX`R!wg6#|GMwOX$qV^4L-Jyp@Jw;dz_?68~>AO=(Y z4uThb_-S?MNUfs0E?|o7m6POT?yy3#Jd2e zX9WC#65_3KP3B9UD>zthhgU`AY0!+G?ebR1TYl7IX^|(<41+qYVRb9HYFbmP5{t~Z7&ZP2LGCu|qzYW> zqll5?Nvc?e?xuij=?_qOg2(yclKKz-`mtkIdhuTs_O>~0uIY~l46Pmp z>BKd#ra!X9i z;Sv)IgOtA)PlQ&@8P4d5%#}Mm6%u(_AUP>CypGbB)^L)PYjbrqr*K07kO^x6BHT>` zm{~M4Skt{b7+4&XdqQ@Bp=X-Wh2zzE1Ong35s?>5SHD~mMSPa|Atg+M%l_BBtxtE# zae$q&6;Apk0qARACQ#;V*iT&9Wp@y4t}tf57I(q3!Z1DZ9S@$nJ;mnigYc9fZdzT+ zXLk@f6OPrNV~E+p6(i9K?`?6f0t#N}8>*<5#6@&41%2Bxd)$WsFVbm^BGyOtUAH}H zN!$bt?2-1gF9TJesn(xe6^&58((P$fXhKK5!f6vyA;8qIFSZW+4mP95Cn=1(Wq}bs zNvbrkP^$UlKCUtz-?W3BbC=y8=z-OO>4(aS9u5tE|EarZc?Qn}Zoy+9peDny=x2Vx9YkU?H?4+UdS73-Y((&adHIS zJtDGG24J;%t_(o%syue7cO7@}DJlg^$#E~qsTK(O`0Vx5#hRd`8Zdp!kIVX@lExNZ zrN)!7OE&Ez2?_u^A+(+t7AsPb@P9=sK%^fqk^-?#B&H3@4F*CEjuYS3(S)t;l}07? zWOD|>ezNYro{*G-U4N9}?K~53jpkma{$ZBj>oN{T@CYDXc`3Kf%Sxdmagx7~uKQq- zE651hB#uDuy_EIwlOYl5J?<4nt+!G)|J3pr*QBe2UDq$-_)&Qy^Q<@{`(TVZ{Wib#Q8sTRN3`9%l?{gT535Hj}Nu}YGftd;!8lpA6C%bfG zvFcm4RbJ&@XMr5$t0a(ChW+-WFh=n(Zn(am^Tz?`EpI&hD(v+V;URcgItk%y<;Xx6 zDE!mrLX`@AVPKMRx@7(O)UI55M=JaNtBQA&Rjng!;{e@oMO<n>v6dAV*|}4k{Jx zw-IGXV%U=R)hBFy3Z}s^sc-Gf*{N4W-JEhAJ7`x*cGs{M@%h-dga9CY zN?0AY_%Thg$INw_<@_VvgRpWjp`M32RBtX;v0Zqil0DAw_u)teX?T!q6kg(h8gnnH zT*Wt3D7I+6T#U;A-lz-l`{Y+Inx59r7@fTWW7b-yJ>WKgr!bDjH)_QbM1Vo>sOCJ{!4E>v`Twp})C;pn(7|Zy2yX zbgQX&;snfUv6MKcs=x)ONjdT8J@+@x^=;Y(46?s#N`tr!AKPZUrWG{ZJ@}6lw6QCS z&FKMQKS1OO3g`|_4a!8r^l)BP)a&FtgTDRx4)Im={9M{+N017vOCy+d?-Ef0P~A5~ zMM|o$67>Ta9^>%oCG&AZmR7+%^qc7Bt471o1_?FznioT1kNL1(=1+Krd-VL&0>;lZ zAoU5Yi!@t~F zyC2dBZUAls7t`>7yJj+`9^gUwH>|9-Z|8 z+8R-fl%Gr33JA3@No?r?K@W*iE5Kiu{YPc%Y?7(uP*jxui6}sny*Wsme(id~vbOOZ z12q!C378y#gNAvNSP3!CIM-$2u4-z6XCDd@>8h%ykEOufy z$9+RwxBjc?#cL|7XEq?hCo7%eHtWU1P{sTNv%x%_iT=TMlk&{aoab@i@pHN9xq`Ds zaxuusCeEhDhQzUkE$9Zsh_d2yc}~muUzb75gd~HeI0cjEFwf#rzuPfsQ4Qv#7O;lc z?{{BPh_pmIShoiPoo{m$VQUqDk0-!z;NEmPPxv$ypAQqCy$2}EG9f;-5nRj+mxFZ+0j`vDMMWE%L@uFR8$m(UExc- z4l%~IQRsj|fM%N@fV;pOi=d@k4!qT?CfFe5ej=&x=tpC7(}QwN%F~pdYsx8E44F-0 zy2pZsv7c(`ZoH&yd%!1l@&mbx!kK=ri!d6Ta zd~jxf-`}oY`;}Cm>|dMvI^2pGzPmpIrpZ0d_!_#sPGB6nlz)i`9%ltKQh&sxGPdQ}MMX%rf(7 zLUGC+V}?80V|tASQ--2e$JJK|{@q2c?&2DCVLgK^`I^~A+#Ri2OzcAbDTCkV zf19nQx*8jbK{AN90ovJn&0*5{4XH^d{gdw-hmdpF>d-!j1!j*p10(l>0A`_S?-E(K z{Xgd^g8UNYY7J2$P-YpF0I~%oQN+hdv>3z=QlsSJ$ zv=rnxFum@FxQLrx-TB6NCo}2(AC=Gwi0L1QV$m#+et6Gv&Lw-eBlrF`>z~<3ma$h0 zVsypY7w^T`do$juzm`qX^Q${R>Ew$Q=AqHl49D0+7rjyKQC}C^v4C%P2gQiABB|tl$!x zFT({F3S-;!K7Vc9)SYqPGYJnS&X}w>N68L>_WfnRc|Vzo&NXw^#laokay)Ah`S?fE1Ul$5)p)DrH`?U))c!+^v~s_pe-JgNyCp;mv%k(jSZ8n2bpl0F zG_L~IbUXyKVISE2KI92p__ov#uq)ty*(Y{494~hB8zLv09Ms@BI2~(kIODHXpSxoG z62=s3PgruS6|b{l#(3D(FnV0lsM*c63%92wC8|6 z5ZOoJHCvfzu(H!_Xm4-SE|k$s8I^TgW-@WU=@aqBj7mrL2mb3rwecL!@{Qu<)AFsV z0T&IZ3l0wUr<0mbS3H3&ZlB8o+rw=!k#Fw-&D8((2lW3|)-A)jd*F?uT`<%f-f05R z9RO2y%|?tbJZ6cNqP&Ar%XBU#_@DUQ9^c*bbU$IQKB05VHg1YwViwdH{bcQ4EV2-F zyo7_H;oS%nL)Q%G8dN3FNE=rYB{j?AF8!)Dj54+;^T|JKnVbI3nkBo@FTNSTJn%s0Qw!A0*0%FpRalvZSLcb`XZ%p)8qR!U@dwbgCqMCfK?Cj@BLP~N| zE3~1qt?TQCAt$GnHcsDyvq#GDwS7i}Y(1+qLqo)TT2ttp1@A{hJ;P6M1n7q+iAxxp ziCn6$s-ykberrYggDKCYaTTqy!3>m-3!YDUSXki$y zgf+66jRR8D|J#$@AzWX%uKZI?poM^3mh`c5XIiJjr^r!5Pk=Hs@%uwT)Zjqv65`P|<7 zXDgHoVl5>`vmv2DLc=>mq|xeR&PlC>$2aeBmyFy$t1~70WcUb9Z){mPLv>~u{>3wAd4Gq{C|LfEk~|XCuO~%E z6W-kq)uT+nYu79PQ8Boa6A;U0gbQGTapxs$W>S5q)-H!LrDwcS%6CXlPh1qQg?}sX zi9w8wld~te>`AW4O(j3k9;sp7!s@XS-GI20CaFB)-`rPIx(ZEy<9T72#huVk)rShe z4fua64Pk-+`ja#}gPGYi1$MD55D_e_FX1YF!<^vsJrLXv6_}{R3{QRHo!ct2(%`pW z-ZOzo8I1u62O@$no&O@6(4XO01Dh~_Cn2dO2@xbPqXCpB2b?_YRO;NxJF!ZS7 zI;}1*ig1cgbcxWtCgzO*;orxt4XL+uJ?@uczmG__ZRqIj>sW?*R;vSIuAjgoU4V6~ zbTUJGS`Ppe5r~X}N2!$5vTsSF0}6qcqAdgv?^tS3G*u z%}gTxkF{4NC}Iiw3{DU>?dFYUBpDMxSedSTcAQYDk7ucK>!pZ>{+4tLg+swaM%(%L zUyzQL7l5xr2YwXqO@{j(gw;ZaTb(|%gIuxumO5^{y^PL{HE-9a{T(wHeh9u<8cNB_ zN*n4HOnsm)mJZlqwqTh`!}Y%EWoqP9l3A4k2+`>p$ze| zQEoz92?AdN=$+kG`xx1(v2is97fe^SQtB;{MCTV7eg!wVfF z4b=}P%f(W5s?R9GsvI8aBIBXVo#=0|;sVdV{m(+0i~pv{fNey0?Jx?~Ema>Q5tt6; z4|FRI_E=Dxr#!6gii6XS5}!k)2%)&7WeI-@$8`O}jKwwWdzNk*hifmXY{P29F5f_F z>g?G3IUsRMmph|aNw?rVtw1NRxuJ;wUsiOCey@(?I&3SY4P$?q=t@B1X!{NT%`MKc zrgU*T&GPMx#taCv$3<8sj0U zKALMY&S>!#l~4)M<#OeL{B?85y^Va<_-C6puw{?t%kG~BZK#S@l7E04z}%3B*kMGh ziiW3Ck(K_M2w2tPO;QUxR~>f+)eTmc)qrZ%wHlB8C!b!XC;f&;Qxw86tkHatI5RVg z`2M$WsHqrReR#^`>(^wB&^0t@_6TE>q;}05a(j}*?Nbm4H(#guZn2~JdC4`9 zq*@fHel3$<3j@?Ee=}EvceBvf)%!t=e)mIo3Tu!R&hntnROV~!_Bs!pGDNR*Kf1z> zn$O0nI=v!{df_x68a@HAF4<;4;*pM)fDaRc3%S}e5oiaiiIS)q zaG*W<@9JMF+UoPH7YZ+ID-#Bu@W)G`3*Q?j4b8{_4Gwph<3B2H*+KKf1q z-(MVFnaY-(e^+*p&_=w~A9UhD{#BkQTbMQp@6N7@!67g!n@iU#9IXs=&=VE)#PlPE z9RBD5Ep`-lq8a+VI9_@KklXOacWxH_}Hhua~Z23^pD5H1&UN`T9 z!{CeKhzxiFRBZ;rTROYl$vb@~9`=@9a(wvO1IwVNsuej+Ea}+Gdbv?-)qiZFmYP_5 z4iY>0cyEK;Dy^+T`dcN`91i_Eb!^4-pZw|Jx&R&RF<}gI zK;@#8)H@o(I`-C@1;=^iU>Gf^F6h}QTGNn!kIgnVQHwSfk3a?B)5tB5Hz=NRta1-W z$;Wy)qxL|t^=)CpW*UYz4u=&@mF3BI3>|?w1fP{^#=9+O&v^XN))HgovSu1M<@qaX z4+m+HPq$cat__wB`(sppDgDrV*`On{y>#m>g=bo}twU`D!>x&WYIkX>MJkPNbJOb- zyk!#)x~U$R`E!P&Bx;*UkqslKeFx z(R+ImKQ2n7%B$&^-f2p_3cGO~>Ps>pID4U!cowZR-U&9f+}*nQo<<^JX1DL1SeIao_Jr?5d90r$|JC4SW4)v?(0Lx*LYg>hB-f8kv4$ z7@+%(R^?5bsN;jObdgE}9mQwoalIhMlhJ4s*8D5Ah_H|?{x|#`Z%niWUTbH_u|*nF z*`^7r_yTSSJ@CI9Rye`Bz!6uwRo=Xn&kys_H@t4Y=B`YnwVTX7)59A9Z+`$3WmA7S zOBy*WH5f|Yi>DVXFl+OyBUftAzZld0{X0nUqN7)a95Dhnv#Zp!3rCOALU<9*zLnkp zLCVymE#-2lXOJUZOp(Z(uFOSFEw)Xq;MtyB7oVw3qW~9?9`YA8Du@aBGs0du2?bil z7r8pP7D^(rN`~$dOTx6S?h$iE{DAh6335h}`LMd*6NSXrOoQyK#4XdFj?0EJaYk1b zxQBu2nU;3mG*YYoaAQ&Y8MNN+`V6Z&8dYy8O+$Kun;39@qcODz-_RlFamC(CxQnS_ zo%_(u*0sVn(+9f+a<*GONc5jkdRFi=n<2`>c>E`Bwj#E4=t=l~x}u=GqKZjXgQ&IP z-vzDA1*ejJEWIWU9xj0U*(Oz9YP0RNPqadQ*1PwbLmR`#&aBgQF&qW|LI8C$5fUgo z7TfQJg08_G6BRDg`tv~!k)qev@2`0BnQq3R2uXmD?fYNh-7RQ7Lt~A&QyD$>+gtbN z9+$^u#j5jjOj8!yh4H{1B+O$AUKbE13ul4+he7*+A0oe7TmRB?NE+g=e##gA6WmfI z;lYyrR`GF)@KAwpUAP577{|o$p;NdVE8*ClU+MZy|u~R;0P~yh4K9io3R1FNGKCs%a#G zTSrutFm2WEZR$%RJ9$aUmSDE++95x8uR0lzg&#?o*B2gdgO|<50(yvS0@{ajcKeku zJd|8X8?K^Kp~YKjvP7*IIfnY-OYlQjvf=+XDV483`F809WG z@vT&Ck6kJ5J$F81E*;t7Gz#X+fU4_AyCj-79A4+wfJ{&c;cFhtxGdH934Z&y`I$jm7T27GwAjxwD~);as&*d=$n$bfl1H>1E)ed{stF2N3oxN^d# zqTuV75R8{k1ronM>Tra27`$wxW?P&(TI%JcCWIIe?w64iXFlIrUV0Exx{|CfkrtkA z#vXQMf?yDO;}Y~2^f!WOj}?74CA1Ly&6<#8p_kDzv1>Ub?`_#Qaeegj(@L>_RDmMu z$JI#Bxl=SVC2K_-7Tu_jis}yKYYqAI;;R%J)i3jR6^uve%3jlLJL3`0lpEIrgGc0o z9HG7t%`sn3*1!yaB5NWZ7h>G2fGRfE1c0g9vV`}E)Xb-#uDG*y861N)E_u9g(o@QR zRyFJMPlrUuznhQUD_hJysmJF!O?N(?j;xf9m2e-&fY~{mX{=9wx)K@ zx+h#rDyR6LgaDj6`ZTG(G3&KEM1lh(c2hb{@aK`oRPqOShI;Kw_KVya&=FWSz-D_Z zO-nMyj$~o0F&*u}9z|a&PLy5oxv zj%f#N|1MbT1E*^|xgylXwq?1T14K0VJ}BjNrWZKAMY-xsp4peIs;@K{s7xJPaw`>#Z=*^{TlePO{~1mj zZqt9dcZ({=&| zH*UY-JA@b8v+oY>{S%iHiRux(8WuqHXyihKkWy~G>lVNVwZtgwITQWiA6o&>S3zuJ zx$1o8*yGa9)i9x}yEqA(wp0_NWV5I??Yz|Swg8ShgWCAC; zpymO)xy^n(e6D>BpxbKJre?z41`ov5rPr0_EG+7IAM!_7$=BOk7_naF(vPoE^+~%s_(=lO5@#o8 zW6rXq0XlHE7XfabU@PF4U%>v{Nl4M|^^xJ?A$i#h=Etls#6fuo$Q$p4A_cL(hb6Mz zcK>tOaNwJl92(qJ=a2VD>G9w+6^4c&GLIRHNnAsVHOOLZ3J58|E0NDCfJvFF1p1(I0HS+S~$~M@7NF zpv6{o+l_g6LbM*#`%eJ2JUk^Ko(zJ>^iQyNTt+1#M*gzp05w`|U_wO|{e67~pqrxZ zcu2`PwPYHE>u0D|zDtd;kDR_YQip`Mh>Ex6ey{@dfoY(BtOc=F#qcthBs799W;ux{ zU=TfTrRV5>M=vt|@^fm=g6KxNo$l&r;5^durO1U8Wr!(`6$wgY8e&PWc*!23Q{bUlSLfXDFons;bj8^4A)yNE*0Sc+K?9 zn#b>zPq}_tmOx8w5cL?K=g~x9ttwmhp5hqdjJ0YBkz}n+@eMHHZvXK#2oSB$jhKN! z*dNDVwBFpvp1s_e4m45T0w_|LCgI^fs>yzUK0wxPxQYe1D#B61(?IUkKdPqw<20nJ zt2>TC=g0w)LA6zRs%4PhFeK+Yu3XSUZ}52_brHSbDL>Bc4>fD%*l2n zlsTBUv|4TIL_eUvDSpPA^%aX5?G>O7!>An(D?Qv>X+mU?emPndu6&+*$j)mm=0W*o z?k8Ho%6dhPE(RvMT$sE{_SrJDneE7Zuidqg-21gEby02{Fx*)MI-t^YD(_)2VtM3N zjS@EQNW5)OemA|F^M$Xy=1sMmYKB!zS-uQ-d6D>hRgn!o%8yRV z@c~SzU+YZNetV~Nx-(3>0g}Z!f*K7ofA62NeyLVyPQ0CAc8C3O5BgARx~*JaiMi>> z(<z&8enJhq*(nlD++vcT$#W! zq?N4&H}p(@@Z@6rY1JaXF_}W>EpDMe#Ou zj6b(!H;Q+CQg-eU4fQvvOP;1A)@*Uxky;{3rxfAF_;IhNb{tY!=rE*UJy(ei-Gr=6I8= z7zWO0-ehj7inqQyKkGxnq6UnHc+OVTR#0W5<$t%7^3q(!SQ@j{Idw?)>ll)M9N+DD z6ZAFgZ{c^9dWm;ugsb%tm1*y0j2BF$}*7@g&1*NWc zd)5~m{>aHG3;P^NL_iGWSwdl>|Sv8BQQ#CoOFlvUOEPTTWlehHpiZkDXi1QG91pRF^At z;&oiBD*H<0O?=!e9rV2uADN|vKF9WU{AQ71qULh!rf)e>>S^IwEbXWWd6~xPy)sY3 zoAdEd&Aam|^%sG08}t25Nbbw8_VK-Z*Gj@vHLS+`%=Vm;^d~Q)sSno_SN_0si;X{} zL$9F6hi)5LD&0yvJ4VV{xha?PB;$toW0-#jZm8aWWnBPs@Cm_NsXqH)V6DLwf-`15 zkc<0!?5?@{h~tTRfbYfks^s#{aJ{hM3n*%~B*FY$s?EiP&84TRqbhs`N!PZo>ZHF5 zDP=>hjdv_9m&A;eygrxP@o253_J+j@P%4uUG#oh97uzVzSxJr2niKW8sORIo1Ms+C zOuKT~oNG-Qu_ER+Y)E@_k#{=RGES(R8`*!I+PC8|1nhL!`_QcF7f-I{KPq5*YH{Qm zk#a$g#rUgoBq%z7cE`qKUcH2nsbNo}@9M`(o7Adxo#00jU(516JJx@)(R-e6Z7F{- z;Iu%cfWd0E`?yG1^0}yNh5z$j0OeR&CC?YU16eOwU^W`FQT|~LVlQ#|Cvu5jeZD=L zXP2Bkz0GZ>?31!*b*Vqzbeb0>L0lKPa_~NMTiRE3#LD!V>W-^=edP9`x|HSM^Eqfq zPXG6EEUfZjz6=&B1KE2K96v!QusNkP-j$tI2f*VFkA{4!Gx^U>2J0 zDnNPQ79om0X^)-Oqxzp~kywoIwt{K!OQdHMD0lT7ilk1c{zoPHiToL~t4qivk(6zk z(kH-ZO&J2fEG!ok`4&s{fBO+9c>Mt~5|^+x2dEHyFJYOe2;iEXv?K-GT2v3it!<^J zd;Xd7O@_1G->uAN2UIel{I!YZLM*>u^}M&g)$o{^j5Ngo^p(rQ0IAsmf&PNPKLn8C zl0C<7bfZA1z}Aq$k;z-Jq1ol!@tJJ#1NR4~fLoX}1BtbSLU-coiUU)wCJ+TS8<%br zwnQ%Oyu{}9rI3?#x8DzW@f1{A7Sy;sP5b;b=_3$-3Nz=e<=u0@g7Fw~Ub_tOIds$_ zYf42DQ|_s@koN>k6a7lfUC@}2V<*xA2LovtTEi(}7FEo*jK3PXUO6iF7*CBeIb1iO z_#e^gzM6D0u+V*#pzzIIKJOeNsTSu$Eck|qIhgIG&~XDuuOGPq%IJbFMEZk&}*T(vo&p@^jP3$>Vn0bwWUQw=3C#e`KM0<9nx679^ej!`I1}+Lq023TFdrH%hgv&IurXjL_OA>QZucf8(%qt>aMKT>XiqrrmPR; z4tCw0UJ<$)Qw_bpv1YL#E-u_aUMs17^Q}ObeQDm?&>J<=*%&;h)l~JH(*L%4&4+T` zk=)V=0_Y_dIwhckh(_t?6Yx!v2|)%kyXQxD(w0>%O+f~Z#NBSXrCcAmc!=6p+Xi}QUu>37$I5=UD6-E=`(<_Yn??tHxm3xBizN<1?yt^ zJ9>2gEG=G6W@3Bt_srBIHrK&g)=s?i@d#OR5Du_cWzxKglu}LBQWIJi8Z*%?9creO zj`Aah|7yOlLXrp>*jGAB0{}~%)_WDj@=a7pm#UYqq{V@uJVj%7*eAq&-6GmP1@BSo zPevO>TFYb;P4Ni?JIqo7h^pNQ8`q^K(Sg0&gmLFMef9&#lgqZSWy<=z-f*#t$?Vm@ z#d|6KgHZyJM!zVGF!bWVU!RqQB@%NlKE1t>K*U4~5JXo9b~st}k-3#dqIHeux(lJ5 zSDujXxk&f(jBSOFBbFZZ#!6ID(GuYqEJlevuUwdFbe!TZ_>jR5V)|sdm=DLF)Q3t| zZT_QrVj)iO^8{*m>~k>TAz%Or#@V1fyBXq@4!Wvm+t4PZE4>wda7jLiWP;&9bAgd?Inya=+A>cHQ9dxFCwtdgrD?i& z5**|1S!E$pqMF(#Ih;pMe%`Zodccq?bw3=w{gP2rOWmeln#6@ekJ6C1v&n1+4HX!2|Cu#SEu|83Yk&?(yV1?oMpi&J$hsB4luO{;fnf8~5H(-9Snz#!A|_HVqa(!MYGNUw{A~j9>(RRaXr1X{CXtUa z4Ok_X#KX{=qbOzkD;$vC7zZS=EHYy)7Pp{W*=uw9b-BG??q`U@nyYhS5_g?8JdJGN zOEfBA;K=uZOHcbpU_V8Kcaz@?Vn6JVSLM@Gm$yJ(K*&$CaXYmm{ zQ8;T~P?S1FAoi}B-8F$>B{mO$as?UQE0HnH%n253+H{vKP@2dX)CI{`JDe(1=Qy3Z z+I-0NBr!|l!vK56@b?G6jZOy_28Kd;%n2&47?R}z%&lRpK5@kvzGvff*rX;;&Uwfi zqB4VqhOYpYah|)hz=_tAb71H^SpDeUB@9Ch?+rQE6Zo@9`wP^STXjKYTi<`F&kw6S z=xxBXv^0yz*A6sV6^ww;1w1t5dNpxiOiWso0MM{<|0r6TlTgsZ!r@Ed2VNZCg}eHq z78G=5qGm#d5P71%R$c1XwD!uW`|V=wPAy28Z`j?Tfn5in+ffw+o_+jI^%w zm>&8GG?@l2NS$h(Gn=mS?g2c^OF9HY;sugFffdVuVU3at^)w_LVR#8zzBzdh=b|M_ zi2CVGS$-SZNp*gQ3j0%u%xxG%N;N@bqZ<(TW|BC&F`gfJ8xY_1RRAuvD&}g7F5McpU$FiEpx^$V zRNVispQ*XVD;VoX$EfX+9uLF#S(mWEHYBDwaA$Up4K?JY;|J6OQ{Az9x~X*RGt@}# zuIim{K+3xc0M}Q!lM-MTU|1K#9)frgI7 zTiX0U{S-=Yyb~WXH6suoZpgA`@!V5`^L)q7iLFAqp|O2iE#{{uAluhkvcYjQk(h=k z9|4LsK@8{$pM}^=C3V}xE^-nMus%I7P7*g4c8ll!*sfn2+kTkDj^}sFqThOAKM(od zrBZcUWh(aG9ESSL0ps@-2p!LwN$2c}8(J<*9qhiz`l3cCE0OA=N~&ulF!heYx~)}! z5kM19xb$TQWfR5u6UM0G<&QG`s3LRma|XsNEU50cp?QA?B8y`;hJHXW-q=O2|eS(~u)zYW4?x`9^Oe+J=9oB!J& zeD1hTBXzm5ekY(M%U09gB)QO@PwGpq{fFT|&s{pA2SfrmuQ-6`!%nX5q~AhSr7t6x z<+f3%9k0jN4>>spDhiKYph7-J0>a3>^xDE(;mM$6&p8;70Rzx2m>_q_VePJ%1A+*6 zcVSuFGvYsJL9&$Ky}!|WG~`rDfVz9o*4DQm)W5qxUxpOZ4y96Oh~G}_y>k@`^oPPM zVcpu$o3L(i82YbtB)mbm-_l$z>rUH@?*gk4M(|c}k-IfidLbSBU&{gLug3F0#2LR#L$L&=1iG z`G`nM3<~@5%Tf=%kJVx4vM}bVUwt)xXsTzELn5+k=t2^&ZX1lbI_`yns>)l4WDOWQ zoF0L$1z~Lf_upqw0Rj;?U?n-fUDyd5ppzY9#lL~P^|7z}EY|6^>+0|U@m3WWZ41mqc^L3`Zj0&Mk)XOE5w;`UpKUH3&n|47RmFX@9f zHw}vJMhu;W6!4p0B$bJ6EzA}TI~A;1w)tCj4p~+G%KgLvBp~~ht#4Lulv#03gb17# z$5Is3m|)%ZFm&S*_T>Q=VF&P?)rLo?U8pBKMpx>F^3NILDu0g#m03NZiKWd9a1#is zT#Yom^0Cko-_gr-|6CuqBn#j?J0Wk$9S~=n0$v}O_IWh0Gb=y=@h!>fM~#%5lx+%1 zKtf!wu3n!j_M&v2n39UOmVh{8St`C&E5yfqb8m6cvZ2*rkJ=1TbRSL$FG4R5!86gQgQS~C|xGhbv=88uO-F-EJ zkX7Y~VU(T4QoTnLuC3Pws8lh$v*nt#KqFIJk^>LBz7-rFCayPZc*n6mEZ{*Gi=xog zif3c*8J4UYNPNKk?pR`ip}*gUb-x0hN&P`oK5NEYpEc+s$-&20;Vl!n+RVN65z+f> z2%nMV6PH%QI^$=2y9~q4N~&BM!ReASst$@X=UY>rcMsi~(h(0bZ#sfG_|4Q%KGvHa zrV-5mnF`FKIuX&d-vQh`pr#5FhscjXoH5eWgJVE$?4oecjT8q7$+h{uxZC(0j=907 z`Vy(i17ZVQCVTbTe|aweL!lXteJ(vKj9Rg1(7Xq#)q>wdCtAp=Nm&_LlOGDs7gGh$1fL9ZYoO#gyf-%7N-|uz(pX z!gU*F(Qw89d?&yK4I76J*&S5Sw}b@c8%`z!vMxFHbAw%sAP|wcyqypNzeor*k%;O^MslC(t4y>jT_Y$Z=IFf zsh@VnzU8$P7Ql>jT~r#JHYxkC|6u}0EMdW;1ksIMXW-lv2|l5K*iRd$ zJ$*SIr%}F@X{cIUR6Ot?BgVtMa8=@i`o&w* z8jCzh3rRk(+Sk|aq|eP7i8{8OA#%o7YcAi6_+OO$XEdDO8$OClNF>pMAi5|)wCFV^ zh#nCVy-Y$7MDH<7qDBvbAc*KuMjM@p9=-QIT9jc%8N-y%dA|Ske{tTNvwr8zjI|i+ znZ575?{?kS^+H6CmPw>dCS(3b>LC*5bWl4Ju;-Kj_D*Wt!5byCo+^iOml1&mRHp)B zy$nGHS}$qfzAFp*)B^e<^F5T~prrfi^W0DPrx8zbIlPyfpI?ipgoT_uUiQiYyaVh5 zg&wgUx?T*TYIDHMVU2)|u_f?Ks`3C}{SJj}>uJBWyEe7Xma_5QLm$?hBXr;A{~%1% zv@WkJB;M9jUHjKax?KaTS}Cy|evA{gxgap4lJ4}Pr_|BfJyc6n*#JCwKa@*a+ci*Z zL;lfcfu`0(q)1%gZi@1kVw+0(801>3qq!W$S7lN9ZX;W+SE7j{G{boMq&hLy%9m}D{-r_ zC;JPkO?VT0M` zP*?rCM03ROkN{peCrB(_Gi8}+o1EChv_Bc&9f&I&m=XqJb zEd0#yA1@_7-Iush9rub>F+(8;_gqO-A$V<4H;AU=4rw@-4QKDLX}Cm%Jc@a%LSm@# zPt~22*p1heR_gQ;ZKRj|m#!R`vL&1-%paU~i#j&di1myHTW;b{#CkD;qKyd&j$n(x z&bG|-hZQG#oW;0*r?3!^&!88HPqV??=TH4$x4}A{ci^)Q?t?{x>!F=_R1gSGGgKBt z9oYXI7)=`bT11^b=T%X2tZ~ZsY2Mc()0~OtuBK(Ur%z&;GDvXYs?yBYX~bCw?ph9$ zCBDaVRchXQ{SBZ5{y&oCfc`f}bO)Zh^*KP|3wk$xvf01NEppyFDuOc^S5dCU{N=#yv+XG}uF-p{#cPLNsmTRa65){FJZnZ-oJ% z#&#lbX*dB>Gqr+A0LM89y&Hv+rIEHV67_bWkJ+rxX($c4D;*Tc*0w7Gx*rvT ze`)1Bi3{!v6>pw(lh}@3U(&(bKYvu*tNA8|OA$~tvAyB@sJeu5bky;} z-e#Y|wYL#dk|Id{XGKpieg`)etyba!S$nWU!RzFQ8QuBQmnoe(@bE~7h?9pK9sRLx`R zt0`P~kyYV;NHN0pZAnxldFMtb?ap5!~w~RJdQU)Y4z;yY_GY(u`@7F$vB#!xBN{ z1XeV_uI{&N+7g-^v!XxMiU9kQvp6wDCOM2I8!ToEC2;Ed{Ci+mRq3A}PKxAc)D^1E6`IdX4RQ~++ zCF+P>^2GB?JpKbte6hc0b}_AR%_;Z%yAChUH7U;4Z?vjzhy=)KabO*ivO5^pX1H#? z)i_&V9ycl%Wt7x$o8smLQ#;#hq3Kr+i^9rzdz{F2e@>0At~tXRU77RC2SKmig<7Ix zs72}{P5$10sS3w^Mg|hh@baXISLQbPNq+!V*(38_YK>w25S?l&L<-BuX6yww?%`Pf z7(HnLS|^Ymj*;7TI}ee3#@NOxJ+@8uEK`(;_OW+?ASLHP1hER_vbMmD)c!1+w6N6O zQfC_&+qtEKVxpF|T(xpY_a44!UAyHbD7$1~oVBBU&u-In7zYBpH(I+l1y|K8o{*cl zLG^dr&A?QFu;3ngr8U&~HucAr&^fFdV8S^6@i7Y*-MybNB+bH%j}PPEZ1Q^*c2i2^ zs+XA2@rb}eEFxX+301OOw8a%qj3xwllu1Skv{HS)&(mo)KPovUi~ElZ!-%!UVYp)m z&#t1P-8Kwdbz9Uz-0bP)8pfL++_v+7xOJ`CJcZU%+E!e6^sz6pUb)<+Z$e>h9&dq* zLGL2Pvjfn^OL#MzEUm!9rZ7c&a&ZCFeV!1~%y8%=h!ynyIF=irIE2RJ@?;oH@wSM! zJj@mj4g@QIajs@_4?a6%I@^u*%TZp>h&(zY@)_5+%m}>V9L+xq@uE66WWNq_foHqCDLb_*-rOd7V`_DGI4H} z-Gh=zRbgd#(zkwVbR|kWCwMdV_jplscxlhh^oI`sxg}>+`?`(c#!UaBxQ9u{TuHN7 z4TY0bJaKzv-WS$}c#{-k%Y%u^4?(LQ^gP~^`;g>AGqN%|FE%dB!26SLSXAMbBzO=Dd-;Ci*ENqZaOm_`_2WtBi-pQ)k z9)zqhUo;V5oljGKKY{hHL^G;m0Es^FHZ>%SrL$r*v~ME#R2d15xCG?99ZoEu zV!)wfKR}r)5Xmqw(0{c2Amn)5JEZ(9=@l`rg9E~WE?Vi2a${JssEy2WP0%tu<)_XA z{m?aT?JxVIdOl;+RTwfmMeDks+)H>ob7q*3A)iGT2iwN`#Yy*b)M`g9dV2n*r1~d< zqFXTQxq29hFq6cX=bG2_a zJ4Kb)*zCO>TA2sx4_3Ih`R@@8@?iuGbl3jDiw2AhY2<}#u!RSQB1JtFwRMHzq&A7R zT>&=d5yxGZn}>1zqhCbuX@bM2wrTE}dJa}@r49DsOonO{h|_P}k9@!}Kw1V~gfyJVl|#ef`GcTc8ajn{1c5&0bDe}utRyw7?PBRDetpo$K@b;d={*4 zBU=!e@zwSHH(&8dq)~hO>r|VqwxG|S#52ha@2g{WK@9(!O$@h{1=y~|Tuejhv-Ss_ zGS^)LWZx+-O)sAt@Yc|hxbAk~@<33ke+axhTq}#G}Ff7sT zd@b-+0myV98mDj>`liUxP9&391$+l^)Eb*?+%f%ulE6xCWrYFt6)g2SzpK(u>bE9} z*XA?CKkhP(SOsb=b+J@dx{Ur~7I1d_wxM?|YEWYJuL`&2B};Dx3njQ^%J*OmCGwA#uCyf&lOCeds2^AtcCYFc6|o};~GZ_J!0d6|IO{gX!va$4gy$j1fuWcgPe z#))MW{Yi1K$kbXee8%Ixoalp_n?axrM-02b^eW!t1hpppY}CUy7NT{x=GPCs3%DPB zh65buU?5R(7LUYugTAnNr>ZufLeq~wB<%bhex6vWow0pHQTDbI*-=l-NZmLp!7K`? z05S>cy>7qsOFtAu|Fv2g4=|t^j;L_?c~ijruJ%)rg!T8v9^V#!yuBY>GQkZW>qRWY zUSQLK63x%Oi?z4tDS@goFFWSB?|Bb?<&1sTi$5aI*kr;7;AJ7UXedep9nxm8-kb&j z;s2>lJaWsKOBQ+!{dV)g=K!KBnhIM@Ox?yDMM`{8Wvp(S`5^9?8zO$BsV_~w9bZcB zS|)g5tw-gpPvgcc;bM^n)Y_0uNV5IT;q^Y@`N_S1l6Wt~8NOcbp&c zaGdo9ymh+cQ^yoI=vhxk4j4cfgabo&2*b$eqBHd0p+`Fws$*B>e0Cb-Q9uXIW1l5_ z+APwAo0=pZc!$R0Ir>H8lfK5^R=44HgEjElQie9^$J+wxv8CmI4{}|vQi&C+)bF_g zi5dgJ-g{v}D9PZWKNYVFF<~z+|C%%=4;Dh4SjRL7k%61Y=)_Pq$V&`AiM1(30r|yh zO_y3qDM_}vR*(OhhR1q??)qf^M3PjQj_)Ip6FCS#n{_+A1}Ua=s*d~Y;|C297_MDh z)nT)6czddsxRpM1-OKh>8RKSf#CZLDXxBK8Ny75chcn72Bfe%?;Mg}Uqy>zf{=Ki( z@L_LpGKpNBzpTr2dMIB*hJUKklSy&#jK8(X$?3AU9|Alf>)zTfCr(DEiu1pdQpAm( ztYPhOVW?W(F91$XUH2;jvNAF_YLt@Bz8ND#)K3`D{oE^*J0iA; zMwSfm`9?o{%8XsV6OgzJvFyz51Fkky^ z>|0&{OvC!PJ86-z(^eeUxRDnPX0N~HC+sE=XVg3EZ=lpH#m950b=LVjvEB8Yopfhc zzI!dw@&h3G6SCQwAdi&$g~_qfjdC0KZSgeHaM5l21Jwt1-{5MUG0~^6u1Fjp2-C~< z6SErb;{^?55Jq`0Ge4cox5z0FIn}xQn40B@q=~6y;)A{`&U=?d+<~Ni2<5s2O<+#_ z7`O9cOxxsctnS$YZ=ynqh)9*?((O-7KJXXIm?XuyVKWqOPlYXzLJ=D{2|)~|$xtt(7vw9W~JF}3Cfxxb4g^XxNAPRizw z|Jm`92jutK%f>k4sFJemPKt@_Jm~o@#(2Exh0cT-8X#@27Uv-@e<@1)hQtk*#VQ8A%UT0lpfVfL5%gkzb_zfh!0hgfS1 zob5&C-Kh%uuEM+VUZjcpoAag*Bi-JXS&tPi-;6S^-lu%<4dCB(EpM1SEQs$~4;l=$ z)4q>|DPve$#*Z0I;s24@IC`_FsAwMxS2_O3IdUEJmr}>3RHXkbZ0J|be6f2Fo8lU5 zrMy>Z^Qm_F^>9Mcxx3aafKimz1&)Q^m`SK=cRnqEEmNjz{YOTd_F1+kqo&a8+5NAn zYyn2|j=!-2smQHe_p3?{B9?eIjWyq_#-P+cWXjF`{!{{ z*w-WczE>k5*4ittEBxdfrF-39DFK*~ssE5=qi&F#-~HS3_QewyV*769d#t5NQY161t|3^VyZ1k;<5FJ?+L%LjJxt^M`jiuYwKdD0BE=rA z4&K5%=57}(JL9=x!+viIaLHwCn1$J|kt>A#i?@@$(C5PYbYfxmFgL?gBw(N4Y}6kh z-!*!AUvCr*r_5>BhAVb9`tm`$nLnyv?JkqDr5I|%C(Qk?r}mOrYo%J|OWZzKqHK6l zp3~48%xS*7_b;|lA-+EI5oI+e(RI84{1EgA5Z|~3g%%mqH%+ywRHO-tOr|vWxyjkc z8S#TW}U8OeoB#td4{LBy)lk4iH;1=~Nr@!Vnc2KL^XR_s(cK@`t zA^mYJm%V%Vn#>fHb$ZAhc4em&>o!zs(}~r8WEHM_y3@I;Pqb$~ z&S{G+F8$^E!k*chyx6?rPKEInKavbnhVmW6wl2NwNLNj5O6=}sleB%<(5$xf^KIu< z?4^&%)G^^nc{a~NQ_WW?fYwt7AEL(TIzeK^p`sh_v!C&8y z1r9tpNSHjD?Ay>`uh{)CFt_aiz6jB-^gr-MnXW}c{HKSh?%U$t0UsrbUB7&38;`;MxJ%dm)I5qbO7mjW zMs@egmT>}VRPAb~MT}v}5;4hBH_g9t?`fZT$S&UzDJ{93{&o08(^;j6)n)3to9fAo zi8l>Qu4u0~sj_K!>0K#;w?l8LVxDxQ{ap^}P)?|Yq(1oD`46b>jLn7H)GnJ_l6HEZ zrEoQ=go=I)Wg2odmG0*?44JgO4*T#i_iUw6@YNpOZQN%S{rvuqg)Ev2k2&l#*UPZ7 zr)%+Nj_80dTl0DU%=(98T16P6tb@5i(_A}k`BS?Wuj;qrT)TL`1KgS(>t1__=SQ|G z=r&tXG=5RL2NQaA^N7Qzzm7VouQGUI;*h0I)pvzxAb%e;{-b?mz=VxV z71szk`nLZOo#8MLyxrKCV<~@_9aw;R{7%Mgj`i|0AWL&zmDJrRWv;i#KkCIjMn#`8 zkm8@`HTtCHWz}4pqPydPoYs<&TMs?Y3d($Mj%nUCoi|W*feSqFz~Ir+wJnnPK`xWd<0fnukmY(j5t5ng+~T)_%n~jlS)x2g2^j4gIeNLjEILRqZQv z`Dkgb!>iWJ&t7-*D7#wc%pLAAHQW5qdv#%(_d=I%))%gd22J7pnAz+He)GX?u?{i7Sp5tkftj{>#4nF zN^se9E|*dnODjlwXruz|yJoa6xrQz$u_CO3GsfS&trpSu$kk0!2|q)JN`~AD%u4bmh`{(5bdh69Md%fv6(AR*{Y3=@$80QQ4d(mU4C)AH;`AJfd z1EquVw-b?u+4>qU$FS>6`72`=k)D5QHa<~!dg&NgvN$selp@Wpc@HIA3f zo*S~N*jEN&v%Rw*lh!)Lnw~|k{T)>D`it0dYyA8_*@U9#ZpBP=gdeks_6PF;bR;Y< zt)ZO`2uC5LqVPH*CaCjVl?%44M-anc<9<8mq0JEsVW-B?e_2%T;4*4n$Zr@%H@{Kx zLn3_3i}U`(ZtNC?LA)6W0FsOmn4s8G1fWXJi*wyLWE+b= zn(Q*9-*3pWw2@&us&X*5+}G)eBrkhY`1RHZG=vG~fsr85Gy>jOl<)?ZgrtiD(}z++ z-v@^GDy6N$%2w#;0~5JbPp%wuk>E$12D}C*%5w7)CO(m5Z(jFj-TyvoB{TqC2N)K^ z81;N@1Xm@F0#tyU6Sy)dnW3G^(05}C(4Jgj9Q*%h(HT{FRu>FiH%7R-*&^5)Jhs)V zM*_qO+B~iP^yofFp2>Xu`=qKt8lqD3JH7r_#|+Cuf7=Ut zKXc@}qV#WZ4;$dEDJkTjW9xdpOgH$C^EP!F@g4z41;Rt2>xtkx?Syq)9J*xPG+s8& zf-im5&2jhToat>lw}~NY%l4TqBb|gOvuD(|C^$ZYD{UX610qN~IQ>^>mc+9qHz$qR zO2-;Rb$g6pLkqk~gJXPzF)WGWORt6bT{WJ`AE1SUzSN6-O)VnB3!-wX%|Fx$d@Aqw zUrXF_M03{u>YBIN)RJj{MUdp!F zGpF<)S)6LWThVewm1?K7a)Mgbr$-h1O=2QU?_Y{k9RuN3xO&?w{F4#91!+Mk;1E-% zhc+#$*pm*_c+r%r)lBM*J+{P)-H?hjtAh(1SE^u?TuT zoRREUnzwktl(=7|v5lgQxxy>=IZ#_1-}geN_@uONFeWTZ_Zp73pTKCi!Hr7wz<(r& z;GEnx5HZXiqSe-W0cQT`^!iT<=7;z{zLOS1C^<(yFpBaOtwJADm(B&M-3Aee3!z2!4wkQF#&|T+$1VDj5M|$2Yh$^ z4cMZ_#%j6jH|D`|Hh|PE>+(EolaEA0!W97}eBg2z17JtMFf&tNw850$8a+XM zrO5fh%t*rzA_jMJbHdArckZ0TPf(t8F17n4bRp_K5?Y&qC6olZ>+<3tH*>^#{!4;l z;vBNa^2;m;Ug<}pbu0VjEqi$hd(Ody`b64y4>^<_mRUr5eqBncoZ_q_U#Z##9j9&Js++!s zfw9{AmfwF)dqqu=&jr7~IT3$r#K-#UYwh)#I#wWe*d9v+18@p=*y1tP9(Yi5(g<5o zNi4xjFoAbQwytQn5xj8w;a_|GaON#DW|Wtolr&|mP}=;BWL;7`$Rp|hXMlO6J4Q$= zZZ6Vv2f5WT;~qNhJ-l6NKSYkWPRYx<-Qde|3-L$LOmgc`q`6M;kn{hK%klc(qNtbz z0dk0@xX>)8SP2wqK)kWkX2r#9=$hjD{FEbI<`po>GU!h38#2}P^2jJSs65#4(r=(~ z5$nHwwg3)ksoZ3A$uq}7PcE{dbz`9(HY*KlC5F>mHl-}%c8GWcPLYvh4CL_?I{?id z8oGC^20L8rkRlcW1bW=HbSOWJ$HrK{;Uaq%2>lgTz9IG>88$CcqGPSp66&-PguPI8 zN^|z1mL_3mnU_3MB!=SORLiRCr7P3Lq>pE%9y^4zou53^!+osJSWL)RhX9GfjZI)7 zP5wdACKB^Wuh87lZaV%g5))m`shBtkkr-D^e zX7NJ$nAhvlzvfBCF-2s|V8jdanx^Yf^0(DwPf`uR%GTzE2OFCd#H~s2#!h?|9+`C> z0Q$i_KlNN`j=;Hww|>9Tkd26T83NOYd*SA?pq<4axYM8G1(81pRsdI#SHJc} zROJRnxw}KDV_LPdYDLWfTfvj6&QwRMpG0l>r}IG_Mb zoR1Qvi}xTH;$8thjSNCwi&Mj}{F&PsGQ`mSfIKa+X^3dk7hBGHq~Y~AkoWW9c9x=1 z{u{nzEv8u6_HRNP_K4c8v@?Y0Woq1s+xx@C_J-#A_1{{R&VmF@{@I2$OXsT5r8DOM zzyU1jlkU)aPo(-fUM|WQ$P93vEf;PqOO=z&G ztNfiW^YOx)E@jZZMpnc0!v+nbrF%xungV4n#*=+MC9PhQ?``+Yhsxts@f^CiInSu07@d zdIM?zZh#ROfphl1;eaoMCjfhF=zIrIN{{G%Iw31CD_R-41}(WXE4%kqw8Jsa$BoZU zvCyWXH)vGq+I{W@0Dtd<1&(Q09FANQu$DK0k0hA(Iyjo;KUz_hw~A!zvZ^$m9DUe{ zdXvI)U1#W9$ZvCI%?A^u|AG~JZTfzfZB52A!2n@zWfxag?Yz~cg;8!rL67tnQprLt zJ4QZQ#UXzwFt1A~vZ1`#wj|Rd!0C}8McI_Ex0c2IcYYMHOE3;%p6WG-FfqM@D$oZT zjN>fkWbd+NtheG6A1KM%>b{=R`FxI!A2!68;q5xVXPA+B;x^u;vRs}Qn*aX=ck+LV zPx-(9-D|{uWJ#=ugKQ`t_zxX{tsl7i#)#nvH`sy`5&=LZT-Ku4K#8(Bg8ivLVD>R~ za8lDn)Xm`}!@hK>eWAtaA!3{XDWOUkuCQ9<_du3>Awf;3;OB)X>q?f0l&mu?zTfDn( z%ZxrIaPZ-8xq|M;_OJgtdTVa`j~Q<8bU)kv12xJar()qpLczAEC#|vsE-IXK2e43G zVO%EQF&D@FBa@ZA%ENmDCyOqW8F*C#Twb0k84*~9_a3bKYl47n2j(D__$vPe2?UPvk$Wr>8j#p&LO60irZevEC!1>ALK`iJ~FP1 z%Bn4+Q%F_qc{K0GI~?LkafFv4v09Zr=@JWY-+5+w3H)s_wLz^bC#ep?xkhIt;7-+QPhF54B z9bLt{Uddo63G7fjlr;4p8BP7#!Y&pVy@$7HY#K&|ayPu2I&+hMZtj@AqpIYoA-kQr&n2rOGi^re`flF)Lk1Yf zm;zl7sB0zI+J&tMKGNRi4WP1yM&lf>^WGp9tI}H&aO?i}JuutjBZ7pb>pfSp6h!5lk`eZERf_ zX{MbFfwbZ@&xkOpg7&tFlL@<{rOI zzPYy-9X0sJ;ewspQNjH+rz`{pL#z(4zlV_jy?PUbFi8L#uN}^;E05+_2C}ClNZ_?J z*~;>=*tW{nbr+Z_OtHvsW+;q5>Zw-AI$y&H^dDxHLx9vdYz*>__!H`qw;0!nU{MvO zyWt{7Qk|$z5Igh`L*4V9Y*4 z*E2y4s&(kG4X0Rl%dJ4@%c+Dj>`l%2)#u1Jx$d;86V(1E)#lyl?`ICqok+KVMWT3( z`(NPJfaZ?NviW#{bn20a5$DGQ#KH@EGB(BgZvAxn-b=1ht1Eu#kYaJaKIJie#m7OH zBFpdJ_W}n8Er+u7M#c7<{VsBd+w09Z6Xk#aWD=Sd74cQ-{Du}u@0{t4c z2+jFF$_pTxm8-*c)q+LCBTR))XSp>r z7TU=QT`%Wur0nGeP(nRPz>*Q}^>-@WOauDFi;6Q=;Bf|pk!2%x>Dqr!PdXpuvj27G zP3OByb)uqn6*LB*I9Jw|cCp;Jm`&v*9DgIq$p_u|hwE{B@WzH4SjXUn$U{GJ7hUDC zdx<|kSVcC*dI%eF77DkK0K@4N1g*!)LD7cL*j!m+WrqquZ$?#`;Dd{!T<}Y}=c4mA zQREfx;JDSZ69eJZ33bk`Zwb`^(n;@5jaskl@EUKpX*w)xk$>*l(Q!!Y;pzi}m2RZ> zi-TvIAyzhvQ*L-);sR`okwmjfN#X*K**AFkNU{8&E5EseD?DtMe1np3*8>U2WB|Xi z!T__V@_@2UzN`mbAgG`8Ahm}}2rV>~xj8+2qU$AAapC$gxlP|oG>IHu7MMJ2?{ASM zB+FrjD0H~3MT7xbJH(7e0_B7v?C|PaM(@aNfwhdR1NgbsJa9t+W~2vGk@mo7WB;Nr zV&e5NY#{E6tQMuu-fj^W|02?^OO^YId-LHdg8sZ4g03HD0~oYdp@X2?1W{&>FDzz?;jy~cqeFQJ4q2Eh-w9Lo*S%yx!Vz(TLE~3 zplh)chT3R>*k~|a)bz;ldk?1x1PhizvKHhDJ5Y&Fdsx5PIPpBZvUZ@e};@Qq1jYg=64svj((tB?5%=t^+mSotfnl6zm*bK zhZfc%En>$QYNZjAKB-TQ3rU087U)*g5{Bvb%+GAp3!0l2CR zjP!ay&npZI=`I-eN@--Y5(_;{LV-{c^#=CxX$Vw9p3@Rm)P3n;z%IA=o!GdZ@ifh& zvSOlA#tZixrQhNsUCtkyWDx8wkghefGn7DYzRN{9cQZsqqZ9z3B)eh_u@b~^(7QF9 zU}IMlP8!dPQ=02i;-6yAE?^(>@(c2WZdcB%bPsqbfAY+={~CAl(}c`y?u<)IxLH5t zW!&=MK>eBqZXVclHD8n}h&FUasoqno@fAe-TVO1BWS zyT~;Hn@P|{HZ&I0pdH=z+z$L@0!Mr|Gciq-`aux!jK7pV%_`p~nR~^4l>FiU3S^Mg zf2zFMSR}2+9466Y$FZ&VwX6EYH=?T>wG2C$FpC)TYH&tcZ36@FJ$3g5H{k2 z1)`qtP?eAk@KRVm=?-AJHzaTyP`o-s7k%^=s*8&#i#Q`ziJzxPlvPZiwSOjsdL~gBeInkWid52Ko{wkD=U9nWHJ*pY?ZxQ2Vrb zM``M3>+)s^^WL!5(GYfUP@xCnfKCnIe16UnB;4a(kM7DoW`P(@*Mk;WHpG)l=FJI4 zwQ$MheZ~cf6x}M6eGb3P#iNVIGG-zIZB@fne`@RBE){8|=Az4t>KnbvShWsHT7wss z1~<#^&y<^hb*D=1;T3eBKyq5Z+rh9PU{RynjL^qj2(%VBNt&SlUNh$?tid!!>bCs8 zJj=_XPnwFCvs-=p-A7Doealmb^%WvrFW3Ku(ZvbZYB1iqoYPqpjgm3ubs_0H*qvbG z+x#fGV^*VaVKOgp8VT@^;l5B0?j^Hc)w`33^>Q$Lrv#(1u@+G^c}$`Y5z%M!Uaftg zwqwXq^K0<+H+cyUnNBuMZT0Pgt1)zR1VDeyeaAWX2HGZG$ua5IqK3V_lY9Py#)d}C z*!u-WUB7rEUn*U*?3&&)X>H9;%=z~E;uNwX@oUe`rz~hR#Y$6;RJ*-2p&cTRZvk`- ze*XMFEKrmGH%@E@p8XfRQn?#Ivq;=J$g1yJU7SK@L=>l+{)=JisT%$mGGqL4?&L`b z-UPzfPW*K)459Op{{oSOX>WJ356@!#8{K+3HM?&Ff}K0v@}*BwM6P}U|Fr2PFepe- zTCGJEjv?>-xT~L!y;>X^zv$bx8M$H zMIw1~;-A;YsBw6MMzqIg8GppgZlK8<9Y8T$XPe0|gI98~UFXS1AMg{1?Kr^$FAs4} z>g=GbYn+pS2iY~xow;(S0a6waR%WD}`LC8YH|<`kCl8E-@)1BpI3P9@nZ?~UY4o~bl$$_?ZUf`K)Zm{1 z&*%BimtsyIe)FJc(CXcn9tj-pY*X4Usc6YI`JDwaN4SBOVC#q;SlAS40CWc;Azryj zV~3QTe%RdTEG|YUVWIy{YB+EqTNjoK2R$3wAJO&w+ftZn=;^jF0`XC^LfmEDN&?s+>gzK_3xyysY+w_ zO9&V@hE&d@onO)q<^Pe&;bLL$xfG>q9T|W9KK0hzd@c=owK+#qaIZ&uu`o{m9% z_G7(&PY>55pGE z6=KG^FEH6Ivq4pR~bx^JUTn094x}Hrd>Dc~gw;(f`Q z0AQNONt3r)zs`VrzLNjDO7wuBfRUnd=e}vdeqEQKe7QKGd__A1ebFzU zcmFJSjU2atm&@H(Wpb zV1)!>^tDL?5HhDfYPaU|^`4#kXdS9nU$4J|J~b}_yiCtSUj0#hgsv(=R^HT*9b6b_ z8L^TUec!8hNE!7iF{+u#1-^T@Sp9I{*}jID6Dqg|zDCdvMt4oUZmwyXt1L>Wa;tq{ z-aPN~gVNfbQ|B*?9=C##=nAEsL%F&8)*~h%ndmU3ksN7k!Ec{( zzd&vyHMi{!DH*Z;yJfeZMjvZ61qVkoo~q@8m(~4Rm+r^aXZa@6vkrz?SlTr6oGHkj zNPL2>f9GOP?J6W)%lmiQ~rR zTe0=E^!0MJK!s4HlpW=79M+-7pyQ-*O6_|Ox46W(;EXH;Xf^W`-%0$8tclDF_** z@OSz6ubHUie`MG8zyX29pgV$JNd5e^OSYCvZcX@)N<$A`R8Zte)zO;$PPP?r*z}+c zZ0t|RX4KN#JGH)THfCKbCfg*RYr>{-8#N{JPeDPeB%oK%}4woWo zx-9a`;5Rb#(EMkx3(jtJ37bA^--auwFz|CO`T2TsWs>X=aWXTQCY8FJ8*)%R?fc~R z2lrcVo!#!a=s&xcvU2*>wfoG``2x3P};(Fk1FtuYK1@jK^Ur zGATCe$y~3SYme2T%qO!K@D!AL{7c4@;u*)+kJ?{L!g5GVgaYxw%igj&sJV;aWG2 z!(pmC5XCHRhSkctg%{*GMV}VqQ7P99+sBg^n=+wJN#WdgRDcpV)lE+I0~_>wlzgmt zUtfSPe)y?KtKy-;fh{Fo)CT7ziwgCi9^0{8d(rzw@MGE0({nC3{f|ezlDcxuhI1bC zr%!Q7_@}s=2R4{|gU6XVZB4XJ&S}wOY%woTh2HX<@XKSo0cnIw4CjhT1lb~X>)unzQJ*q$kA`PSzS zcHE9+s^in~I!R<%ZB1It>smbSLquttWB92yh^nK^!2+4;&(|?R=r&zJ4y+>s(aAw|>){`ZFQlU_{`~E?8_V}a z(9)w?k0In6{rw^OYSV5ix=zlVGl@Tt+KmmyBVOB{<0nr=7dYltZB>XrRU9@XVr*Ff zRD(<3}{YqZvaS&dTvkrgkGzPyyys$f=l;Hkx=Hma9A5*kMuP<=E7p~2W2;|w>!)%%kM zz7q9fuMB=UKY2eE+4fkZ#M%&lbdW-92+`@b-u@?-q$@cWV77ogbb$cGwB5KCToW z{^UAK;C5!|U5kcdOm9uSj`lfrbmw9ta z_a2|Q@AjR4QLp=j+I$s?#o1a%QGeMs3)iB zdg~(F^$bi3_v*s*UgoSPZBinSds_2ivY6sKcxdd)!L84$o1Et587ks?Hq2>nn4sm7 zxe|hiUu;)*x(?n&Q94kLK6!^)!x?-uLyfHW;e;`^V(i_gYGwZEr3YnVd&ICM1jQZI)do1QhLY@y?p{UM%L!#rP4; zZ^NCd?q?+V4f@^%N1t5(k|doM4c4MI;HSxp zOs26v;=rn)F&!-igm^^!yh{*F$%gJL!thva%_VL#(X##}sgm zc}}FBrgjdDX=II}=^|ke=_+YgXROXs{((qddGc+6n9HC&%TPL;(PpM>Iq2^EUaGZ~ z&Of{FX^zRz1@fOv*mt(K=FW<(MvTYrKi8GgdPO^2nc5z-LMVqZ#wBujMcg;d6HNg% zjNxRHd-Bjg{WH3P7K-#iLWxgS*)U_chr>^Sx{DsjL;1UPzY3UMCM5zoFI!6!>_K4L z6a;!M6wYXhh-*2ny_Do@Htn)VFxud=JVB)#dlnd_gNrVL?!n7v^8Pq;jxD?9m|A7O zSJ7}U%9N_pQevW{!EGiV=pucJY@IQBl`Xnt!ioFZ?B&XxyNQ^6(mza1_0Mp75|{J^rV_NDEjtSHzI0w^c{&v zd0!Ok<%;)Ta8Be{e>}!6GT#6tYOT|M1Z06?iCf0k zJ(mZ;!$sLHczjoz!SRtQdgS}HHczW)48_vb<3q;)xjlp8cQ#-C;0Rrd98=Bg;7_t9 z^`9kiek>7tGOviQO9~X8c!<`+J*=mpNnkraJkWfmxK6Af=Vrkh-Rk0jBv^1sgu}Ba zww)tE3ir+{y4O>q`ihF`!%A4k9K?Q}`Htxo)0NpJZmRjXWN{WEjnXDg{XFvg4C2CG zyG_=+r5y%}mjwZe(uW-kQXND<&se~da=_J$(YFG;{$z4v;3)$?IMSa)bWdQ&HWOtZ zcP`$P%Cxww*Jdxo7Of5qoK0I2y4!HLP7IL5*hDR~1@da1b{d9SMa`mH9ogD>zJ3~C z56+*JM#?!FsTI|E9M@F1ofWf~v7!{%@?3^G&wfoOr+z@Dgy?pwPn8=`--?a4t#&o5 z<|#O=>mOscP>dK@O{}4j68~p*R9WkfMf2DbJ(A6saYEoi=13cfGpFlj8)B;W| zknUoC7({HMUCfwn3if&mURD6H4agf5&PwLrU5#jG)1%yrcC!w1KGJ+cux?A7d`>>o z6isdeiMsR0IfQ{5l`#5*5*=RzZ8@4;Z)W zllZ&ilm}dM`Xvox;de&UX1iYYGPcY@s=UI|Az_TIJ!NQz{X@~##db+9 z6wlX`LNad?W8)roOA$W4?8weO?%DTclTW0>TJb~o^-qtN`u&3s3?9aYGYwo#xyAnC zvLbF%AVu9u4vo`F2#tyh(G3S^^Fl7YW!jAcOOMy=>VzfyD%Slf(ucnXb~0eyR+?TH zHO0M3S!J2R{X~-hI?m*|nPAwjr*HDWe2XBi>|&Ijmz_j~U(dRIOs}-S09W-G*1Iwo z5F8J!a1<(nB)SR)tF#=+p1bB$k~Ky$Z{_RK^1fHQ#hzO*Az2zvzIVRzuwn2u!UtR& z8DDhGoA%+oh_b1KH<8Yw&ju<*g0{@tYae z_zD57c|ytJsU^7o7`;$eRP}mS9Q&+GnPpT;gL3)lbrHIvi+h%J2SLfa~kx#*`>;=I+6BfUgdhj$>OkhYl+{93KMrv;e+2`8J~XE6HX5hM`>Ki8m|0unoqJSYv)gvEV>4p`ka$C zIzlszHZCUbE^JLD6e31m{$%bm zUN-d&qop4_39FwnHctsAdhLI$Sd?dF(k{JN`mF1FHl`#n+X|407~3#5Wfc@#A&NEz z;8s}lgWQUWuA5O%cNWt${BQT`ilGl5CL14m?BNkvEzbDh*NQYeE!bTQ5?VbDExd_eKjY1#a4kGgz4{>Ct|B|hA(Wi=F1V}un!E>U6yQx8TTyn%Hw zU<59)u%>NHzo2aNbo)UFqj%=vbG;7BpD>$b=A8ZgMpPrZL{#@ zhfP)vSNx23gKWm;1ur4c5SQStG2@B$CxIr3Gnbr+ObGZHTU-)ulS{{6i+RJ zm2>4_S&f(ZM^M>j2+*9%3K$sd#BWR=R~}~q>@1-7dhs7Y_EE^n|HpjXhp5}*PU{ohmVQ&PbH%&Rj!yzs{p@N^WgSoreR^{{eK_)&j6j`Y7d z2yk+;(cUZSSN8phatS^qz%cRS#8!?YX00d)Et?g? zjp|jb&l=vm1(tOxs1DEo!<%|{UcbZ{@dK;%>rE$KC+ahP5`=zb<6g~+0%P=`KCaX+ z5IJsUf(UA%@{91<4>zXx^68CLIzWLb{v(L}ZGAm?J#{trG!!sHSr(hKMlo#fU8PiNDc&$4rVJ;BnNlVG^;_u0q4 zfPwF#cB(LBg_YMLbXylcug;l*@@`}uDo-BhMIg}n&HzOV?$bN69FF6ry`KV(0HgJd zw)fA=v5myezF*8>^RE#iZKT&Kq`3Yo4}Hk?6F@l!5HsdD1caS|4>7Fv(Aw1;{tv-K zlPi@fcp6OqLwpMRHT04JR4(~#1LWF93}`40!-|&a@K#qvy@2%R^A9`fH^uEj8XFZr zV=rrP96uBi1wtG6J=CiUo(9oBkIe|fJnYBEl$c6M?v`KV$oJoGNWlLDu2*M&#>un8N)v>r&sx|7=82{cyd@f z-v&?J23FjYYu88+T0cdm`KAOfR06O;kShNOdM5@kK<~HMquU}2waE2&0HFRHS^JM5 z4`@btW2caczY}_GNQ_(kgwH%Rxdc$!t`6Y7MT--HP^K8q%9|K_;I0)~;edY?64B4@ z@}F*Ubb3oTh6Scp*a#DSKPZADA-y*FpCK}UAwob=z_qrG7P&SFG+o`5SHu1z7%yqY zS^PJE$e;+y9OLTa($3|I=dZJnOw)F##E}r6S5RIe2yc{t<%o$!0({R0&;UW;4%+t? zfVzQY#{xviU;hXIB77c3I}+>^A8oFn9Twqv$vrsd9hXpR_T}}c$eU&h0lu`BPs9lf-7a`^%8bL}y|hDX z8|rL;eUTFeM+=~WiLVm>K(;DD{d(BPs{+y}BaDMIdIOS;bNYn601kmC&TtzK%qS`E zK7=AHQ@Zm9azzvf?q6ZhHCQ?tJhcMcPeBo^0|fi{?;CZLA;!{V3L6D%ueCcjxrnub zkOOs>YeSro1F*aTRfS=vvf*7azfIiY@prz|I@A8qMuVrN{u?6#<^T}*He)^^oU)@8 zf&+cO*nC2TKrbfo((E|UZM&RpsK)*o`4;AbrD-saTt zWge%K4(=>*QkU|jy4q}H&u!rEvy@>C4JH}R^QPc_kLuH&9u$n9F5j0+vE_Jv6_<2> z)l4vaOPan%hw5@et_li6W}`MXMoczDfQ-%_GPl~bARTiCq=WO8LuE^Q3#|+8=3_2f zk#DNtA$=G)X}XPskUXuPEut;Vz_4vWBpc81Kbp~PfJ3EExV$=GC#GvRB{bt#=E<0} zzI+zGz@<*T3WO3f?6KS+1GnGHXk}WW;o2`O1kw`m6hN$f+s=-&pThC3yV7=IDAl6+ zq#9=AJ)n8J&9qub>9_CY!Q1w0Ar2K2=iY5H(A^Abq+^#9r4@Ol?#OU`>WR? zI0bYog1()4E>M@=f794M6f15V6kyplkuk{X;+@JI9Omfi=K9{)@5tIDZX5aVeTw&> z*Um!lw?GQ)BpPwvkM)9;uu<&mCg~tjU(CwOAq5-^Urxa9tw-6o`aN(TWA$KxMm&ND z8{aIIcqA$jTzTl(r|3&0zDtw56#MX$>7m}!Q9mw)QtSWlP((azEu;C(>?yg80Vcjv z;6W5AivN-;)d-!Lb~j2cR&kFz!qSo1tC^#*p-HV-!`M6 zj+84E_*hAn@HTlo^n}QmBeY-Q)*pS<2md3%ZW4M@Yd zlGtexLE-3MJd6_V>Vhv4y9J#I)dh7cKEHd-d=bT`#jiD?qSLz~h_|YPVI{cm_cjWB zN96Sb3Va*%t4*y`@-3h>LP-KP)Tv({SDY78ObDyEyZ6VyG_%RtnQ&mNDEe9r$PA0r z;Xon%3r@k2E-t;uRE-lLP=!6qcgsZ+5bo)515C2*s0zEh!5|Vx84vg`;IO~^udNgR z+wU{ib$ig81%hay{nrzNoQkM^g6o;Q-@iUUAE`PH8Xgz(5MM;H0bPXOnvA}rn^S8U zReNy*I&M#N!OWLC8~rF(wEDR_8U+-H_!dG1p*!p(3xLMdj-U*D@UF5 z;YFrx7fA>7osr-m?|d!G=)`9gPw(8;yj%Lzq_G`3B^>$mJq4ZZw@%Iz z+{0&IB#&1Q)&ZXUE-=nBgezbm0BqFoi#Thn2T)D(oLK3t5T0g9e*SVi-_Jl7dFN?WsS%e2|?7Ebh<8py0wA8 z8?y4a3d8pKdryi%S&NwX$>Ym!YZr7lV*DHk=x)G1<~{IPAJOjhr~Qjy3S@Z8o6c`) zt_>|_aT{E9Nl|i}D#LF~AjDwylnc?w*#rFzHSEzfBUD<7rl*h1r2DFdg! z;zK$P8yPl%-&ve(vT1pmFLQyZHg*>GDdLv9e^!wj-u`lWJ>Coluq{J?(tD>}FfH)& zMIc$4&Q=b3wufBE7HFUGqwZ#m7klPwU50pahb&b3FCTP&c zYPk3wbG}LLxVl&fx4LkruGVG^nl<6L`0oT_oEJ|~Jeh3_9H}$b^+lXXScT#vUo%l| zNRalB*r65Wuy{hh8D76t8ZFY9^>{)km}1w=awj}c&&G#mrJ=$}kNeMynrdqEPL{js zX|9M2{t60R-wJt4zE@Fh)~<%fi%M9VVr;nHw{4+%f#Z~yIfNhl-M5=j0!T=&-n>5x zhzZ9t1*`F5v`x5uKvVXYpXx8C%+0pa;05W;0+4Rd_(B1%!u5TW*7kV8=i_M8A7A#r zO4Cf#JY-V3CBsT|UwkBR2h*>HhV+6LXogg7zE?_8GCMGHJ$noN&dho2V#+N{M48%} zL8&s+^mx4>V4zgEaHoqFg8^!iFgZis|K;LfR8G*}&;B`WBwv(UQNG0&^H--DtS&L)O!uagqL zA3?qaGmgt!qJ7RIT!?mhP&UO5X3Y`WV_OUP34>t?oh}8wx1wSa(vZbbiSf0$qu=|4 z6|cZ1K)wqGlJy8Yi?38S(zWZ_&t}3)?pp&wlX#4t+xl(Oowq&CVDB||@?h(tP@LET zceCwPWHaLAj+*_C* zv=TcX0<+&Tt$?a){zz!bgXwbwq2709Uygh@CZT)!qLh{6b}K`VvA=ZWsc4RG>dO<< zj9sFfIlZuvMF#hwI}6jDyS;9~LfDZqi(M0A@AD_zCa&ork=KJ1!7ojlIQ)gIv4kDj z?2@JAddTpQKsi6JqFwa%)%H{KgY!L{K#Pq7(*?3QnQ5}y>iz-cI3fgwej!5PtKE5? z%?5KGqXAL+>SztR7Ik!^X#31B-bVcHtGIXRoqF0Eq>8cczOsv78v$(q&QYNdYqWY8 z&%8^CQ$kq4_syq{9G^ZVIrh_td+l4z12En!TK!YIK)-Y>!fBAUr=1JE9wG$NO$$1g zLigp<({Eh34`mT4BN67nvPbA)&SG~$0$+bM#o8gcNc%bYTYA){xvcb>3#$n^HOB)cH^ z!JZ;BHV;j_AqQk;&rjr&suN8K{iLY|`aS56nu1-+gJT0tu_9%`ql&_9K+ujkWm9v# zi%r~nH6f|ZIJfk5^XnhmH>HIt-eU@-lZw2!hZvI{*Kkp6`)YUUOd92v1Dg;M5zD}T z1pG96X1Y%-d|r(TboLZa7LVA}2pdM}gP*p#uC;kz>m+H`*MD-Ucu$75QvZ0jWj!PY z?d@TjO%~`y*#(Yl_UXxQYfLqqFipAl%sEOQe*4S&?{6D}biD9181mHKWvz>Kp{W+@ zC@N>+Z{Iw*e!ZOph51+1qKTh3!|Tn>Pa7NSQaDU6NvmwP7BmJSUF(51tQO+&=uLuh#GGXDDIJj^7&}+RP?-ky*M8a04PFeS`N)Ii5FA zvL=AsrtA62-wWFZiSBud7NQ?1Q(jS7Hl9~@>CGLTpVp%(`wFp^8%59~O1;49#a@ov zjD_SEAv-BSdAx_)h+lg5aB?&75jz;8?+L`glic#vg5xNa9GUGWj_asScXjSi2tWC@77;pY1+Aw;aaPE;@M% z3J1|hR^IztFa2^)s-cp6ItC$5{&|gyLVPLe27Z&PD1c2`>qp%x^CiZU^m^G8J1Gjp z(X~#XrY#niRXd@ccfJg4wNRV^b+lf}`RaBiU;0HWEWEs%w>L=l*c2Xp>qL`wDR79- zYmKdydZCr|-Q%}yQ=X$1r&G;&-SRvbRXhkwad>2`Eyu#w=}0%fusgiOxmdi0@Mf$a z?p%EkEGCsq9O_y}vNcm-p#VQDybYuqVgpA^x1wR5Nfxl^tqITGuh@_SJ-?#I0U`>a zN=12Ml^E%nw(RvHlp$Jg5I>7;6Iv-K{rg1l!*I2Dry#V)iQxAko76;(!I0ADMPvK8 zKz*#t27+`?6PZ6H;)U{76|?;QlN|a$Ddbm&4fRfJzr6R6)nj?`LY!7h%e17xTNe+X z$0v6{EgCG?AFsSv?IkZjy(2z-FxoUBpAOkilk%c|4m_^4*{Ah3LmhkI=z3ztBP)=| z7oJIZX&NUF?RRb;#2+CG=2^b}u%biAmYnUYDIR{Fw)(r-%o|dHdu+C&KUEMwrD)0& z$;j(^M0NU0iOj}C(Y?{EV-fBUmSOVhoy#kR240{YeaRb!u5|88f6 zv%}%*HsY3kK0f4R^+R8k$%^Xrs!$eA1`Tzt`ce(5t6=~}Eh6~~70ixP$Iv>aktB`9 z-Af%x`#aeAd8CC$&y$d-y?z`|6+DzpDfvSZh_BL)u8t(si;ixwRWwgK@lw2{-j&gi zuJ(tGGnCPuZO@(~;#5CXn7ggLJkYPq z5@f;pG{UrmhywqoW|dS;ub&mv*&p&C4i*b=uh4dxXn|fu(TPB=b;;*bZ@QHg3q0dm za-*b#-Izv+2qe+Os4(>6`q9D2PX|$)NL&461%9bBnNfhBmwRkb#%8vj+%Nu2zPq!(Gz(}X{t7C1UT{N%MAC8&r8>?+f6E~VH8HHW z)}$Mkhj&w^3v{yaP2^V{>Xt~&XzgC}u2G^$H$V~DgkB=VScrbSR`bjn{dq~M7*BqK z_n}NSltAX`i<79UZe)KqD020FJ80hwUfYf2J9fcq|eO>Mto zx!bQC@2q=s{CTOa8HlA_D12 z*Xb&tMZWs({i@5)RgX9ryoW!KyR9x*5s#}?qWAk7>aTDovcC`!q78NK`A;mG#jCBD ze#B9@K_-GT*N;eWudo`P-tcI($&nJmcXiweRjf20!(s?W-5O_4PLLvVCkANt%8j=B zd%y83Cp`|ac|Xj+RbqYGx@+|owUo(9GCKvj0))B(3x=!$&6QuVS&)b{-tblv$8`wB z;==0RdNJ@1dAYo$MeSa8?F}wD^}F#E(7&+zIDarZo=W<&BA0M-&TA)+R#{tPKF+-- z%VrOyNt;bXH6|YukI21FA^cf65dYwZyf~8Oh{U3;KS93pd&7W%Lk(SZ#v$>q3hxbr zX>;vGk6+6Y=c$i0KF4(w^FJBz2+g?vYoc)X@v5O++S1MRO}s>@E7f1-?2mXBZ0?Y1 zm5Njw)bZE%wW*ZDxw03z!5?3|V(XW@AqpgH{u9g*C@@_X=q5e4H7PiK7Ll13uoy2< zQ*zk1T%bQgZgjp@46X-N%X3Cs8EG_L%k4%*JKwjHsdRfb>viH;zEXy@{0D_%WPUtWD3XLE~a zaX}To1zmde-Jf9{PkDL6DrZF&FFNp?H2eOXIj|t@MbBeM+8P8}J4z#k(h}t$vH4 z_&NLNt!5v;`yM}yp^15xBW7&9A|&e}EILaLV>ajDO$`WT+s$SLq$bqMK1+XgEao$? zth8wo4eT`ay76nMXRxqfp=n{_a4!H5NH|NBm$?h0YH|t zSYjlz*0~7-1IRw0fMtPz$i|Dn#!l@Xo5G0&s0T9d-rb2H;h1zTUrY89_`%L(1Phd} z?@m$p7PQv3>-CnAPddlN$pg}02NcPv>TY;n{^^2hFq+%TxOiPtxpK3 z*JMooE`69kgtDwv6i9`>6O8w|Go!~WIL5-~viaGx1I5S-y=I3NVj4c$pz&?=*}45x zbuF>>^&vc4MwiDQcjR>aJ?Z|0b<16wGj#3d=f-zX7ZtTVU~1qI!lO53g}IeTPC#3AN`$ro>5xUdwg= zl}K7zek`iI^>}5>jc@xILuTvMEl3{Z9?S;x1#*v!8J{QM8?GPwJW_JvlPgO?hB^tJ zeGM)d{xkImZnrY(KBImP)B}j%I^<(G>ZJ9Xk@jcW<-VC63QDqDe+iE(0gx%gVX2=O z5F0x`(Tt;OfB4rT{+cN5+!ZVNTQVMhZ+=ZuKOURqTNGc|;xEvTSo`6w1RyL&i<6^~ z1!Fx5ykReW@guHgS0p&X@Sfn`Tbew6cgAJ@nlEhCiOMc5KGev6%EZ`tT4sCPgDI7w z8=VLm(;IDyc8Il3G(JY&&A!fSv#6fPHiG~7Xl@z;miwHmUhE9oTnn(M8%); zti5%gPc_nr$8bB(BQZ!o==sar3G0Tu4*P=#0zT^KidrNGca1Vz_0HH=Yxw{l$-`iJ zEbOP_{RV@o*6d&292Ky6_HR=>Lc^CoHq0nL0vh~8v`cwr3jn!54J1c-Zi0g@ONfv< zv@_Ln>FG>-mDc!2uunO4{@{ojJEVf1dM6AK%QEKP8a!1DX%+8Ll$gS)kxAcKGzVS2 zV|kl?a}Js)#Dvzc9r{Be6nS62W~doYe!m6z)||ck@alrIHO;&f<-cp?BwjZfd?*|A zfP#3YW&?g~%<@r6Md0qJtbGpG<*ae-;_iv2>unO1IBFTWHg`E@m-<6t^Nfl-=W}s* z>wG6u|ICkfL0|Pec!@(T7HZmvzINwgS?9&(+4L!93QQ={ zVLvV`53aY=U-H~+D)wVjuVz&+Cf$eyGbd<02Ye)TSnAASj0{Wx_lWvc>E@ENA?sZl z^p<+^q3VbJ$GW0fmsiHuj(?isHeNT;3{HtGD=84L!S1iuN74!Z?AH^OJ??4|5PH9W zm%Jt;cXRLFQ81PQt=LTN@^c9+GoOy{@P7K)`0cZ8Y&u_~4cFz=Yp!yy3p2~}Jdz+| zhv{$cp4*UKX6d*yaviazv2VLJw)qY+9SY=69^oh7&-f>I>QfFE$@z#homV*Jv_;u{ zOt&NDjQ^IUruXagC#4p=wJ!O&|Eqw!K9W8L;>wxE5px|Esm=WFqI#K4r-uq{rFrO! z2qCx}*=G_7-XY(QyB%Iv%tgZSeq~F34Ptc~O&xu1H;!#}_exvDTd`2&+;&)?i0^y? z@s((>*hlxKGrFODv%ct!)jB6Uon6Ys3zqlDh2P$X55G_vG;#-+WRIr$d*{>;3viQ> zxqHft9V_flm)9{##?v{hQU~$}MpQgca7qxl)weg{|pdC80_uT!@FAbdt7&G4MC5n#5h+5g^2*;^N#gsg!;RPf# z=D>b>*WpEQt5CD1fX8J&^@Ro?KY$j8XY*%tNygsREXY!U1Q+_^huxH4L;HXGo3JEU zeUy-?I3KFewSBdji_XJT_*m7~#)fUhNhQHM4uYJV6_`GgmF%LWW{t^;m^M8@vF|lY zUe{6WN#81X*zTbDR6qOsM$tsoU#Z%}&>TjIPmrA5h8fsm{h$PIy$x3(_-eXqG@2}N zk>=6kCv%%1=UMgjZnCsjGqghyIo2)8T%luDh-87+uXP+2yz+I}`-H}Rli>Vtdw(=g zcsl5$pdr@y@)OiGZT!Mv0C4Xmj@rig*%V-lbRlfJ1htDz4Xw)EcVi=X*?hQyzciL= zM~_H(BC7ir${QZsNkF)wGrWlEC6+B(*Mp`mi3q+0^%tzvXOgi^p8Qvt#tmdX`h9}Q`JUIEPm~C!W;xU- zD4kG(l8&x|A*MZdA_5z%KE3u)Y-tAg#9ro_s3X&D0*O_r>0LRS)53F>x#5D?3|E3I zwWm+>i+ERlaeUL^i|O$r6CKmnqSL<}r*xJt_`vq`SANzV$oEb5*7Nf-96xWcc`|K4 zw;~Ta&Fq&V&;El6O5rt%j++@ArT>-H)tC;3B9$k0-W2uTkeGn#w?Fk%Kqy4kA&X$9 z)sQjmjf*o&>@j7Q@@^>(e8hYu2M8!iv?-Fa&w(B-({t}+rxr=VA1r7l30U?_hU zm}%E4lpdw<@I0?3JfVjncD| z@)Hfl!HBQB{ADpOo$rJxCR?v81Ps3L{%yWmg@e{l1WLL(!*>_K0BmM)B8KXgfxWqy0>rlXU+oY%S3hRw<7N`Ie zUJIJm5p`#ureSu72!HGPNsskRGmaqX`QJ@9&`Zz%l%v+Ztngryu6Y9au#pV0YYp+1 zXzy^?R^9u)haNU$9sV>q7_7;e!u2!QAR(szCi*HHpEzg*RG07UFae=H5JzI&15`j- z(FiugCasI*D>u3i7w49$&>z77rXS*m|IKXwrA%VkwbNe*wM38Um+Wj%6B{TYl;Lsr zVRwfHf!~1UZq#Ty%+$d93t;@C_O8pIz2|*Ti<1MNXKr!8;~!v6uVrwISUwLQKXh&P zIbgxvc?Sih>EFJ0;k;Z&hFY4tnyo`|e8FK>^2>s348wJ60>V}Jlw00#unRm|oc>hW zn6;Y8(&rtA2n#gY$d1246?;}Wpf==P`nEw<(`(f@?-{N(X~aVJhrKXhh0Fgr6t)d6 z`eH2(r~SQViUh4B1Y=5%CA5>l7XZh=3Z9FfLXgAR)GQURG=-$3 z=(b+c)rj}axS9q2AZCv???*30V`Q|?<5if_wKF@ zZ{d6A!P|)ZY^+?&2A<>y-LV70_{vL<-8Aia;pT!DSET`GfeU|wG?faou{fAs=D zY?@90B<}?KE)Iciz{&h0$T!P$WcwqAHN_?E5kN|azEM7Q*@~CnnSeXXADwY0HjRqE zcJoUlTA_;z*fdcs`jPTPW3bZyL3WLzm3#HnVtTy%K;)-6V^oPn*+ASgV~dJMwE|qWk#K#0fqO9pO8g)3{<#pAAcaapKw;#TVnY};BN2zr#fjO zDaK0&)?Xu^FmCLd)o;zH`Od|VnNSktJX!)ny6O+$w_o;cY)h8$y{!y3WGXKI(OT6a zo7L)5TCH^5b!(0S3g3M z#LS*+PBn${6mH+0eG1-zzifuPT*qltL>Y88b(UQhIb+NxJ!PLyuI>(#2xSNpAZrfa z_+rVr=U7d&x!7``vKt=4t6IB7tdi%HfxX8UAA4Bi4bzlKS=Vf0jMh^)+;k0IW_Ea@ zEI*_$$vyrtl(o$l_K7D|@ytLYk66y{tUPz#rKrs?@?i8 zw~GsIxd+nOeUOdWoA9cP0DxaxG)b32yep@UwdL56Y}Dh*VZ91Ko%`ee_PT_gcVMS| zuI2D!D|`U-Huta@bLWY&&Ci9Ua4IY4Lcy@CceJB`+N&}X+1Qa*8m-}C<|cbjrD4VI zLC@wNQHjdMX>7z$6e$oX?4J;J_$ObW0>F zE~JZ>P_#&CVCIXuc(L%8Q&-sR`Mdih1aP#+xgFO0TGDAD9JO(+=9~Hojtwt$pg(UH zo`J_xTd3rzlf9o*eJ_}@CE>tP1-P@9r#*cTay&rdx8(;I12y#MMXbUhsJucf={Y|( ztisny@7|tCFbFdn;VDo`Zlf8h(=fTyOeK_gw0Qc<>(z|e%8bKSgQezMvJXNZ&dz30 znV8hRD@fQQEakPNvP~(@3gh)HI@fHqXX5X<@$T=$Rj1*yLYC*e)(Jmsy>F)6?``p& zB05|{+3(+E2UBBB)`~vLZ{%a;G-}4nwwm50BF%#omxYjyn?}mq1zeV>x_7lotg{`6 zdF?gzgN?U73|%fnq~z*G4*4^ZKRn#ZoQ^wK)uoDxUsxSq*`BZprqas&vi=#yZ8A>z z?oJ|;Xh;W%uG ziD^SU$Pp$g`Wxj1?h*egzQ`6wX-0sq`~+gbiDOo~8_Y6e+eQ=09a150W+hnG8}$Fc z8UI*mYv&vMb}wUR%CrB1WYB!$_b^e~HMX62!3@@^An&;DI&b{?M=+gl&8`EC(js1J z=f$)EY5HZIIUovY%1vvoEHsiiNg@-nF3d|d^J}H}T04*g;~fjQ;DPH!I&KsJpzMLK zCQt3m>G#*lUPv&d4r`Z-!h2iS$2zWpc`xB{s;||G1nOXTqXJnfaHQA-KjDIn_)yuf%Fj6UavF98t3w5`A^mW}nAkG% zo7k!Ji+-aqvuAl(8!Wx(^+?4sc|4%-}C! zkU1!w0$Th5Vsj_JV{}=}j=dM#sAENrgfy20*lbY# zsCPxRo1$6dxc}}woq?E-_!l4nNXAk(G8{te5gHzpJZ(N9dDRj^4D z{QUJ&!-Ca|jbx*^xVO%!g?5W+l;6mph_FDhO)|GeUf|J7S(n<}{5)UfkM|ha*Zm1k zE4O{{q}0HP7)}Puz6LFXpELidyP-uEri6)+ z$H6Flfv)=ENt|ZB;;yUUk15w3*Dn@Udqi!-iVQ~oZ z9d+}@KO%3gYs@XeZZ>s4C*GH4+R{TOL52`GR_HYe1V0)q-vFe^KXK%rHmea(9qIlw z|BuxQjc=J(Xk>UUN}lu&H3aJ|SEhj1zQF3+!>^@+frcOrZYewgHs9c>t_NGeB^kPR zkvgNM^i9SFhe^0ubH_$fcGuXmWD=VX6I;Q@;BgsSo{#-zX*G4_YUEloEJG$Vs{BO8 zR?7Ps#^nJC(;mF-MQPL70=ocZ?B)NNqBC*R0tBy|GhYc1mbdb=WO|q*%`7tevmJkw z<#%;Afv+X4)f^v)A0a3d!GX*-C5jwaRYir7x5V9Scl4a=i+>fTzWVlPI|R8+71&7C zM0%3)&^+x1pst6edYM~No-?5-Dt(or7LltVTh{(}<1kD3kF!15aCKDVnvh7>o+8)Y z{qwXGgM}`M>*ozFk5CEy_lbOj?=daLZP$I~dRjLupxIj(zmtkA!aWc%{6`Qb0RAE` z^mBK?|B?NR^I|`f(TqD=;78T~)N8-fR|00;}0Ra@6bReQ4HbQ)1oz36;+r#9IFRCn_-R>*pSgz&Q zN_^sD6SbbHv7YWRw`yfxn}3t`pYuGR(`IK$YKE@toX5`uDq%F355*sc_+nFDfBQ;W zgF}dN#iSi7N&zZYuF+IDU(EZK2Z`9kQGv6z<^<|P8zmL1*EEen%D&EfH~)vT(Of=g{14XLR5eQp_~&wSOAY zXeX-VChreb37>PU2v9c#)g2M7fLgX78f{?-QMaO58 z0v+IJ;`q94jMwIvMD5Tf6Q|8X`#VXAODFpf*QoeJCjci}urC}X+DvPx_FFvkEZ)Q=_B}k^kA}dKufi3}6 zgzmINbXarza5}VLRsQ{*cZ^A==zG_AQx^OM2kYwtb-U z&$ai2F{kpgIYzDWwAEBzPD9J;Cq5WR$A4{+Zy*bHFw$MSAgwW-M%k38>($@Q@ULIH z)CB3gxgK!u+_7(iX~AklLfTmZb+G1duT`-nUb9Es!_^BK>T?I&eW+heobJAtb8oUf znw&@j50;EKdF`D0?cz;XIiFmM`FY>>+t2I6^@C;&)cIBzhu{>mtiP`FKFzcPuvUnC zph|TU`n(~i2pfAKyrQa{qZ@wU)_YHoN1rQWK7u_^B|=|b||;+};(@i_hpz4VVi56Avl1Koqd zi1Cl1DU%C-pDdY;5sbkGo&d2laMBO181Q!F9j|>WYm=oISWqAgs3&-fDD^d*`>M`um zG@9Otg3i4Jq;>Htx27^qW)KdF9QesqIB{>~TweE;eK=gIruxrwskG3#ZVxF_`Edps zIs&p|V)<=^4Dn})=@ux5RI@05@LoOT3R}BjpTKG8xlb$BF7V#UZA?a$S*OQ`T8UZV zYV(JLP>+kzvjKi$D`+m`U)|gyhGJ2-bSF#7Xgnp33OnhCT-3x9tNemsL#EPGT0{Mt zS%bC(It<5m0LiHfj5^XMbO${Xj)bxAF)(C_+$x7FNQq4@$#reLY6)Qd*y;wE0Uyk- z9fesjU|(ISca;-$cblct3sO!g4dR%lqa+4fPft5oBLh1@*f2#cQ z4KT?v*D*0L&wli{FxlBt<^hBsW?=-+I>SqhWyVkQ0_65}+xU^Kl=?%5Md$|4Oga##y8SmN_Y%}yL06JBw9VQ9eu^gpluAAKd*5&uTbVs5Al(i2 z_l5R0SB8{7L=UIl#*^f}gNJ{3nFPLN*iN$5goFM{T{r20P}TvS4{??6CFK?`Z$-bT zu^cbDR$^aQ=aoDPmc`0lO96VeldS@43c7CVBNVek*OuFNCZ2%B*J%7)o9`6{Dq||z zHb!(oggEj&#QCMxm3R1Z%5rM_Cix7tSg|uGv1G-yca3Q>6feCjd}9< z+3(2#t)!}q5WS*jl#=N->k=)^DLbBVT(@lA1gnH5mM93!AGOkzInXESCTRP)IxnsInoR?T%0t&v8qj6429AS)>%u(si=ZD=uHUPP5&Oo@tqjFxozUF9 ztE6J(?M=<@P4ulz`kjJ+?N52V$PsG+-?^j7ht#cciUu!jSx^7Y)P|Y(6>n!3LV!Y4*bZm5-tT;=aT#s_I?jw>PZz)MRH*2me}4%kbB+nP%#HM-KXi zubTxbV8QkqN6Z79LAv_~RaSxny;kC(9G^w4f5vH6!ojvKkWMh8ymAp%3i>0}wBdD; zeI(;OCLSWWFrnkXMMBP`0p5vr?VEJ49ViyW1Q)?-!+%kiYi4;So~zQ=ck^uBmd~iC zP%jVI>CTQNUX$(zs02Xg0^lxDhK2US2!+Ahu zebP-C+d29E**R&_sM#{W&p7|AG91GC5Z)+Ng-9SzZvR6Nkz(?gz*wBib*1}DpX_X3 zcKuEd2oyZ-FS*lmMCfSZFO}}}>kmX@vpUI_RN&3+|BJ4-j%)gl-+n=MDqg1hJlBBIPvRe z=t{x8#zv3x4`TZu_hMAcIDcQjcqA&7MCNM^Ps!!A?I6j;kf-sze-n33N|Sv4UFNFk zlhYo#G=KDmMODVr~5+Z9bI&_KVh-E|JtUQUYOF3nBPSPl9N}e0=tqB6e#RaiDHRztcpZLnEjh+hIQZYb zaJr{!RKe%u8N*}bx$E9F*jA;i+vf? zQFQigtVs5K93K)_->%J*G$+5|)Xklk_E>E||2}7D=(k!dTkl*Bpvox3!O%;(kPq0{ znNg8cG8bXZsl3~CZS*gzx0^Xs{bl}G%+s>Eu9kXO56Oy!kAbSyBR=Ai(dN(>H$|1? zzrF_Vy_tDTO=lqV+*wD+FELKllZzQ*gWS6#ro>msZEkETohZCcC9b`z19P~%7|0f! zf!JWV^st#_iswuq(7qS)J}xT@3shCSDa=Q&5Pe#oqDF}Yj~~PZIihW-+~p{ zG+XX_^KT*bx_JNB2Ls?ZEU;%8r}g3P;=KkULw+ZU{AQC=3QPVyl0^o33RdU6Q7_y}ug&Da#6;dDFx}E?g~u5=tN^^y3jK|;PYVT$oTR2VT}Ve6UC{nA z{$<{!*C%!+LcEneJ6)$k;gfgtIviet*)}+FYDkwA`pf24@y4|5$e5`L`1-lRKHkt+6SnZe%IziMC6+L}unA zBBZ)-*Mlm@R~a|^DG{5xxcEidP+dEVd(*j7czzqsEGK6@Ba|wewN<=X*pOM0djfdA zUfJN}L)IBvPtCA!n%6`6{-Db&((GF4WSscHt(K;54AeQfa}0t>@E z_T1YVA+`?UG_WBwx=lxdxx&{>m5W4Y>C!xF2O;n6#J3H)Q#zqgbxtDIDNr8LR%So8;$ z;>!H#4u$`;wKq5acv&czYSc~rh>Lp*ro5MsI_K|;nDZtLSB!t5ZG|~BRr@z(-s8<_<>&+Yzx{JD|hqkjiDktuq=g>k#LwVx% z`fBc2mc*&t^QV`Wo^to2ICc_#Ip?|1-w;cjsuH^R-4b_SXIN&xg{x=z@%V7->_79d zoZhYoS!Ym0{Co4!&D?w+=RTQkEg$Qyt~F?vAzm1cSH-@6*YqXidHi66?Zx;o*M+*v zK;{p@#h+>Xj}`m;Z1x=DfekP&Z|57nl_jK*X z@8x;Kgg3O<(6t~VcY=0|k7dNH7Chv2!Bhk0%8^f}NqBw#BLY|B9Ylq$=3jFyU|)=W zeS0e?^E$PRvV7FVSp?bpVCW7H6~4Xcz&Om;kbz9Gd+hM6u+Mwic-6dXp7qCynKer& z4dXW*cQfS~yCg0_jd&dN#BUUFnEvr%wAks^~wk+{nwywvW* z6Z|tvtisf$kA^n_h>Py%=<|e?K}4%earrOeb%UUDKu&cpno1JUVbmO@1ukw#_$qf5 zbr`?}KFZtcS+R}=_n!EP1b&6CnG5}%(J$aHO-8L!%ZAGAh*m<;b4M4|wm8>|i2$W| zhq1|eKy9IsmMD4ofk^(y@&#_Im!~hCt(S;wlWy|`yu@{adeXg5Jd>X>&kQSyPLjI`^vHQ&w<2t*A7an;Y|t8*LQi80W4Rsq%Dk;3j;G z;_YcB-*OrMT`I;sh2XKWqDv3h&pbKw)AJAhw;|Z%Vm6x*t(9T0@RdkTDVylLYz-6; za#o~ou;W#eG^ z>Dd&OsefwL11EcLuWs?qdOSG2CRRGWtT|-+mrcY`Zi$3Pu1`Q-q&toLtnZY2c&e!b zN+u4{$r{6@;$FeWUSgmtAjdz&%f`1br1Jq{T2o>!&FL2urJ*{PFnz8NTdKCAhr<#BT zja4qU|M=^X_4v_~CV`OxCLJ%3$$CCrteUX#gTnUie|_w?dJ}W3r`m;jgiR^%u__O} zV%Uio;sZ`$o~~y~&1gw{>}8@=dukHu8|IJ0E436gi{AX?+2X9|g~{aE3)5_R;{Ry6vY)S4ZL9~?xo}{n8=ZG`iB(UZsgIP-hADn&8k+nZQxFnN<_dosev<#I z)SQ0ubUqp{>V*3C&~$LoCiZ)R9D#*g2Y2Ua&+^G&RRw0LYB=I&L7Bh8InVUvd=o?t zYnC4SXTtMkM#k4$CnJeopimpU4kpM2S1w(r;uhE_pddwyhL_E1x|c_8kMq>daB0k- z+r@@&{zH`#W7fr8DwLt02cVKs_4ahzyrX+95@60#xq_6YE$>#|^q^clOX3;2f zRd;ceCB1GV0-Cz3a^AUKwWv@8h1^yA)*E}~d%VdTmU_>)DlI1Kv|ak9#m|*U(?HU( zDX~y4luA!Kymytd&Rj~rV-7mKMMS$oyIczJu65oYI?R}T-;aMZ36Vk3GFYA3fm{L7 z5&dViZ(bq80WaEffNGao+UXIxtz&d{>X_wH)e(BjV|=c~$))d#HvAFDB}F&wP)+{J zmB7(~g-j(xeeUdo-6`^1z%_OqrKeombE7a__p!NvwLRVt%M~kaNu|DFCYQ9+Wb|QU z5wm_5>X)x4CG*1}eN$`7@OYT3Nfkh~6-rjWbv}#2Sf%@S}>VVsVw3OBukntr#IjHf@-)46`NFSE0HuT7aN>eOr6(VQ%w{OZ+R zjlpikFlCA{YQPl2cE)d=#9VFC$6fo5r>mD1#aX zvkf}R{5b#o{#CcJ^xS3^?It(M2R$02_EmvZ>|WUIzaNb?qSskQ&(+k4KiGNNP&EI($z53XZyd<`5@6-nw#Y`o zJlX0Snu4Ca1I?D){st~`(zzB>ZJxk_;e_O|EE@i zDC#N5KXIy)Tj^1igWu<*FvA4)T=JGgOHVxKl*lQRCKmePd$|_;=uX!Q_W=hp#6V(YmFY!WKS0y~=d?A5o>xv=-*3&d}g}5yKWmaq>Sj z2F5o76auXoa#fX1hhCbLf)SiehalFbnTgsnC%)K$b$J#z`t|1+xrm&fr%acvMFDdS z*#grjpb63Iy&Lnk+BS^C&u}7u6o*~QVK6m?=kDo_jI)S3$#Z`Ebmw8xletQ5Pm*0y z8>F$Ju}j{f+3Phml=lNg6Tvj!plz_ zGrD+g)r?s^w8f=e&U->@B*XX2^iLkyEZ&?EJZZmzM&al4pH?y6mVx6gIO7!x;8Py0 zKuGCaJA9Ob#(&z_PBNlJDq!b%(b_~mPp_ng1s!HzX>H5 zD)IN{Cg1S5pK#6wRpJ_`mGRBiT^Cgh+8wFB%>I#x7k;+&UvTaDDN1n1Y+=n$j43EN zr02|`Q=7N7!bWn;ysCAT=`PQ`D%Ty$Cwxnii|aC;oQ(6Yp2gxyiX)=@(nO>*t`vl4 zNL;st)#i4&-$eDMADe2;x5}$4f-7qyqYhV((@zZ^v!}Dq3K*Sg$V6~I`Zb`e?W|g{ z_~*97!}<6XC5Ir{&$cqjC3_&NXOpee`8d0)QJM0`au#0S9x)fXJSqEzJTN!A&%E>C zi^UCiJ)#W^rFuPSUUPV`(!#-jdR(|6(cJb)kt80IzvppC-}UCIS*((n4Q`Rr>f&m* z_zphLbYc*R!_V@a;e^vzqMmx37wR6PA_6)`c8_}&ahCNP~=MVWoTi~=ZX@oT#d~u5PTQ&>JIT& zYERdfBx3spUWHU_I?lqC>`NVI@d_PD(!9iGrzd4GC8M6+=W}hr;M7)$f#!bw*yh)w zf;LoYPmGhZhTm(+S*4VzHr{gB!K(`VDCp+@ik|zkF7O#uUu0buU-_|9>PzdVIvPEe zpCqGS#@t8EGZdT4o}5=j3BN$o{|JwnW%*1ZkAi7U)l|7ht=uuo*5i|tFV6YtT!xPM z@}sHWi8dmQ$&I8h#lods?+8MBUz#AA(EGu#_4y4Pos|VNE(!)#FwN}X-mjiV`fxp37|4A)H zB*}@3$2}W-W=fz|$g;WVBs?uk^1?kGbpMaY>M1N7ZMct_D2fO3>YmqtI!pxeI;B*8 z3gkr*{qGMTu^5fJsSFtHyd~adz83Mj726n5^&2z)-BDaW{qKK7eSYN+q%%zOVuIyt zngx=8gGVUm*MO8V*BVzB7j?jR4wYdSf^lBf`@XDU`dDen%B7C$xAI;0`jvdBKqOD- z<7||%&BAThp3pz+c7XyoAU-!CSR7EYV&3HhuTq>{*h_kr!xcdkBMLBk20 z)Cvb)4w0V7$a-xx)AH6YeW_}m^9ib?BVfTenM@KYOl?5Qg6Sn~U_}%Sqvtq#l4~}= z>Epct|LwHx3|Zm8kz#VnC$*#MF@@PX#w72-tne_A_afkQRm z1GM`MU?aL^2M9KyPTJgKn#oAph~#TG4*4GrX$Z1L2Ky;{W()f$7M|wWf~hK-C|_js z4bx{46Y1L|TIZG1p5qI)Xv@$}$D{BI%6y;4s4ET-DmJC&cG&sU+Dj{&DhrLSMH6^l zK3nwS^dH0+W0WzK#6am)Qf=27qo+J^7{#_9S0Tjr`Xxkgrqj{#-^l=o%%y)mJvW^~yy5 z2M|YB_5brZRbdG((Jv#%q@pyM7T=(EXZ*$zh}mvQvEjEcxr?bAukb*X99%+}WgrZ9 z*7nudB}LSa-y43M@dfx|1ZzY;Ax^w7PUEkKW^eVuSa%VteS(iMJ)`BL*6z$%xeIDV zYE5%uELM#a(IZJLY$JE&dB1cPf^gz411xQ>*UuL1T>m7isDS z2=2AwiEuHTAdEoQk~*vVxT?4I(~5kA4H|?|v5=~AlyJgJO_}wG^58D#KC5T?Lj#*< zGFSD^?wlF}Z+!vzHve2^d0knYgrpux=6or|v3d%psAfyD+owrYrdOn@0(?HDcE4%w z;BGKakgErRm<$UX8`ecz+pssAr#5xq3h@>@R>%_O^Ec#&Bcwt~o{3@4+Xf+dt4drHKGg(1TU zG<`QI#TePR08YY6Hhsf~#-4G)0J zlX=4_oopP59+DCfMJL82J+UmY#CXQldLmbGkK@DZui1U)K=f_muAF|(QN~&B2Z@$F zVStv0lo;2m+)&{W+AuBd*^au#Ef%dF$?_=$?{U3gfnJeD2 z#WNNI5FQmtpCldfUD>?F_jVb~sRZ+WWbC|KVP8`pWlqjt?J;uF@{^-Ju6w5(?^Q9Y zf%QIljZIS`zaAknw1jGftM;=Nf39cGVsv5xWQ{H1N`%|f$*MC^+(SaOnmoxYWcuFL zCmL=#et$5n206MC4NZ;ruL|6mYg3`P3nL@v#MjA94To=qql`4=K^0P~!UoEUD6#yC zy^eb=Gx!Jm(^mDKvF1G?9>1NuWBsaigMFAnG1sW}#^Ab6+=~t&`%#!(dT7CUhR(3U zFn3n1n!0*qb+?Y0b-TrUT_?2<{pP$LR;)U`iuzM&)1T_^7EBHD((ezreg1J=gK%qC1lYR#T9CKi=YH<3GdaG zn$w})rI+?%ScM_@!WJSGla*|qcMUFEPTb!Qf^o$_X=GgfS)#4s{O6>lCq?c2Bdt?! zkxsl+cQ`$$H-ZN`??A!-5iKnCsF2{ID|{?_EV$!!wfr~kIJW(LTJ(Cb%aP4BtQ#a_ z_DC&uQZQQ-BR){vYoRa;*iJl3e>v9no_}(l;Rc<|dGuW`SW0d3BH}hW3iq;GV)5Tzht1@dBz^%#cH+37XH2K?@FGl3 ze4C*!=6Dxdcb)L3poVInI4xo_kks3a+U;#y>3C{1JCJVIe8qSD91uS~uXo{q2y{#k z7;y=vJ~3(^n^P%_`mBUrWgBNn!KOcF`O})O12v^Z`aXjvX}9 zxlNb~EB;?bEVqANFOl(N!8`1g)WqCBT-}l90|GUG7X=K+9FIbB>eArLpn(;N_qH`kN6K`8YGW{Q5~{3zo7Qw;ptohqTDAavY@Z2%&2D;e+`~g3%wX%c=%NF z61UEZfrWyA|D-rVtFKUrqfo0E&X|M@6U_VxXPi&1YNZHE~#QtNJ zqzffjPr2aEretD1$%UxmS)?(Ulw!Q!^%LXv31_@8s24qKbLh}>t z&p!7Y6MP*Gin5Gi1@!`)y8}_wPv_GkVuwyl>?+QA_LkYR*G!EwVvvzLpO)+Ya6J<~ zbsq2Ml)OG_4I*gN?YK!^6 zxGVnY!z1QSA4n}a=X;_(#`j$>L&3)%pX4kvl4x@eEam@gR{~P~==9I&?aTdfi8kU3 z?k*2(jRwgyZ~eKeBge6K&VwRLMBZ2!gOF_1$CYipw@l@S`!@uZ*e?bz(`HyN>93KL zuxRUfk5XMxrkJ?FMV1#a7z+3&+NtJUXq{&>qkMnX8?QTT@E9 z-siDAmQBo~PTpTf`Nk7|Em=SF5>J&k+mf+72gD)4`8ZoNbC4^Ba!oxvj{yIror7@Z z`7~C5OcEfv{3f;RfA?~@2MYAVU&g=Z&?0YsLu5+#T8<(huWYr<7(IdwK6;lk)IXph zcBcLojtO~plLSlxS1Fe9KDf@}XAo_FLJIx;xMLeP6KW<9lCo#zJ@W90X4GR`wX zjRZTs_`t&mkMPvBH}Q4xLC||#1g6G5Wf{b7&z?@8x?u40k))g-OrC6}?#$zIFqO&G zwTlCCjK3MiJHqA6sBWBgK`E6}aJKkMgoWhhqgEEtn5ymrOSXWyRls01PY{bX#>|Jl ze^XQI#XMQHneE8|=}{ot;s}B@Ky6kR(B0{sJsGAhfG-;Lijx+jJTR))s~MWAHN4{)@qc^IFsCg!2k+5GjL%Vm(zgznV-tp@gILMRQ7WAn;k;)vYU2vn>e)0q1hb%1@q zbSF9ATv7V`xoU_>Mz@sZC8bK?clBuRL)?nS2W72eRljgxY#JIMhoig(IS`n!1D$r+ z>@#$p^q;wzlMZnt#`+qAU;}@<-_qyCaw12oE57xZ(m$lx2iMLCe#`6K&hP zg^o+csuygLYDxn<==R=#V)b6X9gLq_Bnx}XiKWpW&i*MD|_MxBT z;D9;?)fPoSRIn%g`&%Fn6x$|Mkx)+?j<9fU(}g~`(4`d1^DQd*eiu7Lcr+J0)#L?e zp{^vxZnRCz?97Y6P2OoTff*>ZsxYq~Nu5&LeICb6#)}SSEBv%q?&9j|CbL}-<~#A* z&MyT2$p0HSm96|2=Qvil4>$p7KF#S3_eac65j(LrtfjfgvK3m;+%4UKO9Mg+2-i*a zsSdIEu3~@RRSaK-UNg#|?X=*{<#yeQ^x&cZ0k2x}bn*RmGDW-eu8pfJiwg{@eR;s{P z;^wg+qbU`EI_8$b{(V+QFjLCNb&`%?0Fpha0Px9zcm5-y4OoHJ71blng^`BgcpXp9 z92e)g6OPsPpM&1_Ecqf?dNKn^A*R=+KHkWU7PXPH{mZoOWXHIDiG6{AT;xN-9RBTVWXyeHjJYEKs~?c&dC-}1qu$Hk3=C_jd#{&+r)pyc!Z^_+NIdw@-Q z)5l{+7P{1}M}D7*Y322^Tba?MoSy@J_#B<@g>-jPC-+)XK@_dlmKBgGu*3Zc-%8%t zlcA7714v@`LqoWs$?{4w&#p=AV#{!vx0g6?<)dYI30mnCn2$G16ZmnQC}q02L&|?t zcI!^Wi;3C2WE~)!FSZxZ`6+??bHPvZ{v*<>b!wP;tuy$N$pr^&*37GW)h)Ca*x`$b z5UpuPysCYnkHxFFL&b>6@6MEJtwAS6&R-*Zt)fmWBcS!2kR3utkdwtuqre|C3U1+{C1^bRden`~H0TTT zJBU_=eMbS-GnkD~45b_SOET#EF5qNTIlz4oW`*+?g-49zxzkwUQGEP5F5qJWCJY~gm?KwFOv z6|U@B=hs7D3%f7$M&pbQ7Arnn5Sw>f+)_j&O}9DgkC-`0rrN}j*R9I|TQ+%c$t)Wd z)y9VvLvg=_Vrbpd@h3pkWq=QVZ-Rq~OV_Zbr?AuAMM}?a+yf`AL{*bzfg>cJ|Hut; zxBYdi)Gb!q(k_L+M{yz2x&bA=%(k-<_}t5%miqZkRux4;FRS2^-naIAj}J&6J>hlO z0^({UyT%+`5|=p z)o>#Vl{o$n@)2wEKgh#n+ipKSgmJ~#x>RV=0r@KJPU4v2N7kFCwb;YteB38m79W^y z!<1v*znXE^hh&;};6DQ0;0>w)9_q+NbN**_^AKO9r`}K-O8R>f!|gMmbOqW>3B2%z zP6T2lwzRdk$ZXs--&A9-L6h>kFEL;K`&FJ~U3Q@#Q^_@tW7qc2K~swaYWH;EcpQ&y zVA1ytQ&X%a*UPGv#4E#Spo)Luq7;u4%sJR{`RaPR^Ilz^j?OQSP59;$i(dfHrbKKU z#~t4r^dFI~3q5pa^RNkodwf5%o(oXMcWZUJ=u(P2#X??AK^80%o)k3@an|o^`ZuT+ z+q$2xT=bPPRHla0+0!l|r0$$^jC%Nq_iDfY@Y6wsFEN)MG7^0;ctJSu^A5wa<@*>+P^uEXIGWLb0@SsyOM@n1w|lc@N1pSM-G_kUx$ouA;(~MG`d?9p29ziNnMK=F1ed0G!?Uh2if~mt}+B)**QzN1>oVdG+o$;Wb*o zgXUtFE5^=N?#7+AD^H~yvDsFO(g}ywoK03N3TpWuorP5Kar{R_XUs`GTQCXHzMXIj zYZkES)E1Qe@|*hWE8#v9(T2`~(cA+9c8|~0vtdlghGH;Pv zn{)dlzpZODr4|Dz_k@H#P~~53cb}K=HIy>4ELwQvR0DgNI1&FzzAEEY`{Zd|x^P!S zAJx+*ISxaQqyE8eGN5Hoz^wT;iC+`rda5HtPY5Ye)-!iQq9?ak=3y^>m-}Yg(g9bL-;}0!GVJRepygF`K34c7Bzc zfQ+JtnLr=lZ0`YVT!oMu62G(_&r*)v`HzTo$EtcphJ|#jNV~<8?gDQg?=Ife@yL=2 z{AOO=sU1zRNm7@^)JbQ7M2piDM@k!p6Mu;prM!~GN$d)5WqGkN&lEJotTSCko#K`E z5N*V$9BFn}r^OC#E!~DSLm9^wGVUKR@;_g%r#_U#7E&>SfO-nzJZe6VWG-(yv z7B52TM)MYluQdTKdL@yg@JP{nb#6#8qHT%|v-p=2^I7(W@E0A|jzMjuG>>(cI9~=Z z{^VF+;jE3~SLJF8(B$V=*=)P=8Ih_J^L-h07LxH3zx3Upd#h<5N@vF0T=YhK@h@9S z^%K3RsHSO`mpSx_vF$j(H0GsM~X)A zDZu+heo~M%Fu6)gz2fjtrQX9$effP9>hQp1z^hJ4V9h^jTNGlggm|O3zv$igd0{67 z&9gVxJRDtG_4s6y_-CA*bI&K!B@26RaG5=9W1LoK)#CTH;cPlhr434yQy8ayxJmAo z^ZsHY>Qa8ekj(14bM#V<)k=FK(jXSaMyx!0%;s-=Y4rK}x|N-)HE3R@QhwPj%4GNJ z3J>mE#g5;!iQQa{8DeB);s=51SU>)wB7?bicmUmjM?3aSo_1zs8}uue7eVNP?&tC7 zgkdrcje4?e2rJl;@J*8}5jpC4e3-p{t>2_7Tq8DyxPCvO#9t(iSdT+2lg;SvZReN5 z80S?49MWsqbZ7+|qua)$_7(8u6SVH5zV!#oW2HWbFqmX>0yY(C_)lPscCNx?rzI2- zRv+2W_`>HwmHljnS7cedfrL(rVN=S;$c_2&$ZF(feWi4HYyEBhG`6cNLrt4p!~(Jk zbNo~?F7V2rH->~TP8M+j@_Sh$xM2U(52Cd}EA{3Zdak1Uz$(s7!7rq{P)f}yV4~QE zC@Z8C-tJ}+AHgRVt@VI>bH!J9U)Ui0&&viGDg@wLUVT3U8-G16T9yOQSpaL>?|%!9^eZpAns zt|gbQv-7fIVY@e3vlXi7QD$_niUeVL`h@+yorUBg6kkW)`1V=(6-`A;l5+o~1|%q$ znBWVuzy?IxpepH2?__`_sFGk9h2sk4c&NiAnBkR8UHfy65uF+vi_x3sdAc2WI=NWG ze$#UQ9Gpnbe)sy*17Jw`D~U$kl4kzkAb`fFO9Cjg-~l7QV`yoE@z>G4-wrv1D~hf zCX88tNC1?LAB>PVY#F{WxQC;_Q ztf|n;)!$#SfA{bdB1C7?-GWCg9{P3g&c| zQXyOJ$ac2gdrpn9Btly<$6Ik{{&w{Ouu4ANwnI6k4Q;=iC?&1O#iiQC2uV`LV4ZeI z3Tl}_fBKMgdc9=1E^eXRG}(E}+Z(OSX(whIx8-OTb4bhL$pS}#x6JQb#2d|^u3!A@ zb^ZsBTd8lfK@L}fUw;#~qStUUyO2N9=45QUe-F{}T`QnlXR6}umUgj25A~}hWXzkV z#T;yNt<+Ccv2RO0r|{VG*^+WiSjU0eanQ9APq}ymhRK&G>MFXsgS~qCU_F$ALebz$ zW}#(h9xeGQfVr)#S+;mZlF;itYN@4)eSk~QqRD0LRUW3Re@5bhv>^6JnRBWB7*=2x z*dhrQ;t)5{_VPIc(P$m_b;o>Ovz9}j{C+Bo>wP!-sUv+dTBxre7nUquUmjGY(Gv9c z3ecY{V?+8CI${I(r2-#+{Z4YB4#>va$jz$jv7|lP41c`X_c^v%mDPI@GbS$KMOd;d zj~(YY>zJ2WTU;kIw7cMmI0JX2+OHr#tJh_aI5 z6tCBbq*rXvlIBso$rWV}t5*tUQNIyOT{$)!{Ymp>m#6$7{`qgy%+z?4Rt|HVOtiqSk}$qSM%Yq5Jhg`*K0pwFs(tO zUs++%r-OKgn{r#hq%-HQpH4~r2<#KdsS$pM0bO{>oBTGxQoB+olz&m&#%BRanvM|e zj>yS2L))tRP2ZVqWP35KLyWX@8NuBc2E{I0M>Nt7Cy)|}ChMbm;`m^|8 zz+%M!H~DVzC06mK$YzOYCQ#yuP8OrTKI4pt;pY1F`?CLILG(WhqcBY}VJXzt2$QNM zS7va+42;S(L7V7(dq*Vt<5niBnX(k6s@J{@%`%)3uUWT^+Ngq6SGZ5mtK=0Pl3&gR zEEId=IfmDG{v*;?>;_%w+FDKlAx|8@KuX{eX9l zjKBcQsM>{4AaTDZW#Xaz(XzHntNy3v7tN)RQ^yd4qNG1hXEcBjJhq%kpD#Z1eOs>% zf=9lbu8wD9$3!49l+U;9?_$BaL4K`J)rwqc=4GO=`~CjA_j{+SALy&``e7~eS26ZB zOWrw+7Xz18Z0`y8_9V!s^<*wbD+g=rUD$gAHUipJc3_h*oOHt@u7ewFQz&I?_gr`! zkX0sabt8=O86s?wcP8TXK%EMJhDK2(;eTK03Y2Vq(fBo;M9d>k_$7np;#Bg4K@@R< zXdRAi=R}L`bejAUleRJzW`9%LRAqE7Tj1ZMCyPpJBq-RwY&@>>JoctgMe=VifNG)T zFxj~xYXM@$f}O-QF^7p@Pq2-L8_dbRQoR%|qT4W7)!+5-^=H_Vn{vDray-7XK{gQj zX%fveb!wMBZ-FIE@K=*^NaxHg#zm`6PfK2&U!@FI`~PND)0F<_5*RpW-P~}cPPo&K zbmHpmtcLeGsr4ImMtRubtx6cu#tKnioE&Z@(2oKZd?jPaydKZ6+@*$GT+`cUE8-fj zKj6)7s@mQIvDGQwm0*iI(-nu0eXHuoFjZw9Y36cLj?691_1B(j)O5!AkzQICGbCqI zh!-1y-MTRn57#et40c1qm`o%jLz0Nm{L_muH||G<+y5_Tg_wdI=70ruWynsv=y;%t zB+kXf#^sxL`Syj^xvN>3^r!tk?Q%Ra_~#bgAS@@v z{2;~wXVz^;+({8G|J;qM_HC_8sSz$8N&g(!)1b{}syr#%9j@m1qK#*fsb}lirVOyh z#Wqyg)@s`26*hFQbgyi?6zeI%gt)2 z^Ebu*P709S|6u9sSHom%CQeJD@XA=ST)whp^}-zj_pJ0@hJWFAi6kUUhK*90Lyu2I zqf_?ni)RZ&H`d|MAF^nbr4RLtq;HrH6Gl*ne=kK~{lMzN(EQa{GunBf_^OWSljkX900hJR6u5#LuwQ`p$wMxc80UnJf# zUpe>qUNQg*%}|+*<2I|aQ5pE>b29%OGLDixuff4eAjUw{VF+q9c3o`#>c<8BSokOT zch)ufMCi{F1I9C7-~5uf0UF}&TFYAIG|b|;RN8rB>wB?3ShYj&c?ul#CCc|vjNpJ* z3wLMkp5(+~?VlrC_wRz!g>SC!s??py z7wVHFzP`_NSi3n@!yF}0@IL}pQu}J1hlcCo`1_XUP9f(2GAGyq@&RM^v|J^>z`k=4 z;h&fqh1O1VX8B<)Z)c!CxUX?!35yTz^E2c^1DlGSY-NlZY%R-1X;|ChufJg0ocu(7 zd>_4#!^`aCXx8@G_+xwEZ@S>0W1no_H?b*zUqgFkB`pzU7~O=1XCw*FiX&y(xNNmSed)1n zy0mFGtoFawhR`6MD8dR{-|xZ!`*nkq@>_#-weipr0ayF-y&-pVI* z!e5h1KkmCE3op3Wr(I{+Yb}gp_xV)0i}mA`F8xsXci{cJnX1X-cy+58T~&$yolge( zZ|47wbK3tr)47)BrXSZ;agl zyM3)#mi6Qg`zjb{bTpar;RC&4j9weO3GYq8V?28 zS~3TWa^AYhm09dWw06z=t^CQYuAkmFd9yg=&T#N^lr0Boq3;W@|Cfg20Z$*fk`8(h z*o4Tsn)|%BtZDoi!E^lkPb+Va=#``1Zs+b*DT^`~13h=Y2_h&Erdo2b<586MCb!3G zHOqEmj$FUOk7{T;zmD!ct@2C1B0=T!C|jP}XP9H4J)#b~sDVQSOGUcc$qI*o5|_l{ zz*F_jIK{-7^zG6I6WZ?$MAZ>P0;ehq*qkWG4k}!h%ELF4K(r^~Ex>(_KaI9G3Sn$j z`(Wjs{p(gIOQ+*EtF}kiFC5(V8q&l$3s&tz7w>xg%}tzkCSD2kW_NR-6u?7rn4Rir zSy#mhnF@P`JRMJd#V$(n_UzM0ef=xHmYBW=au|=zW(L?dirQXWR1HDMb{dKU>0yJL zjmtPGvK_XZgimcs`p&k0V{>@*(^af6%rN9Q+o~p6T$1R>=iiY7bDWijssRyr5lmGj zrhF~6*$La&`)=5?bXXuVHw7>m%W#Xw&0+IK?V3zc`M2BNW~6y9cPY`#UeNAe z1D6)fRDFC11O6*6AANh~p}+<6JtK{NdO1q6C+J=dINo}{PRtwbZ zv`1?q8KjR#$S9|$F+d16{YHn?#0W1F#i3&{!)=qz_kfH@7A`VP+`z{{oXoP^51B-X z$3f{Jx`hsnoLo(u9GGtTFNn8=+%=hHzXzk9lDJw26Yr$kb^%)=!zVt*Z8Qj{*nwz& zfkygQRiB$8f0WoZkwXf?&>&B^qd`jT-4C;+m6~Ck?sISO`!}^6w0Q3MGhmf38!w~b z;tAGr=gcn#PFC!8JSzjS_t<8Ns5rfT_$9HTa z3@Os+H{Ke3q)28tg-x#pLH}Iz0QZ-Q5-zz451BL6pOC?=2y3zY8N`p=gceGb%EtDgc#)sPYUHlje4c8Sf!b&DFSXN zZC#Lvn?#Sg8{#4{vCaXHEW{C~tu;JCrPOu0ZzztZ_%?EglHiX!B5ra(4yy}CFR>gA zDOf(0)spRW$kTI`M{N;r?kyf3uRZgnAo-X{GkXj;ghDYVCOAH9HgN90gZt*au9S&w z@GAHW=`c21OHj-Pr{AP^S^=;e%k$QGSp89$2^(Vj>F(#$!*`R5yx{IvZbXR~mEHJ( z)*UM|s6RcQ+&Rdp3JC79kdIWNCZa4C$Yv0ZnDg*l?vUYkXB=WVm4l^AAJNC(+fx`z zD>urZ)>3VL>fJCV|8h!Ra@kxS4<1%wgplHTZ7S?qID-OG2?C8RPtU9C(Hi={9T^lG z-n=Wb!BUG$p%k3fM62pF!v5fWa0*Xv>n(=58xoh8xXc8hHLa?pAV!Fwed z_G_z?3{Q=L_5(*Y4Ep833#CN~qBFZ=eY35pliD4l+j!f$L3qP5vhx=7OV)i9;ZFfX zU{*%ZW7vl@JD+rJaIKm`;`0f=;=iNyQ1&@!Uk(Wz-6|~iai*}gwcbj(a$h@yJv2bC z(0AR{GOLpXZ&R|{@o?&>&5*tJ|6=Q{!?vfY{QlqK{Tvp;q%p6l7(_x-+K?^h5hrryR93(Ps@ z$M8)^AJm}_-Yfr{Z0joz&}oN&u*1ze(Z>~H2?UDIg7MS%?=%cpGgWe*I#~#xRZ`Eu z7+B)&6wuYkE^{ypN@17gr+ky4)$1B~VLJ@qg9pK(=0EPF{gqEUqAr$jJ0I@cJp|v0 z^47$=I3K?`dSJzr^YI93f_V$9H*j?5M&(~^3oR3=TE+k_+NR0;6eF`C7qZ1Lr7qKJ zPigVWYCR_<=`#iP)dX7a!R^KUKt_~gB(xjCfCTwWiv6*1u8IvQ%W19l+io{O#rOlJ zgI}Hq(wlkL=%Q$&Sv1Qp?)lCn!FEjkYOmL}D%1En8`F2lcukFDJ%8Ye9wUhgFyhyWCcf zEh@YDR~4kKH0v9m_MnI#g~G;#+@@81+gby+Gf>>2Tae{Do2HS0RAl00myZszJ>RskJx}qmw0!O^v^W zbEwe$ZLW|c0M?*W5xb8kLwq_G4aPqQ?V1%Lo?BKYyT9(f=Gl1k!7>=h)q2vC&Qb@- za760%3sih!V`TKNWqvI^P|<)T(_ykTfR%d37yvgm{#=)5S-(jw{+aYMp&n;>Mf^qN zZ?x~#-MUu58Ed1>v7cgzb_S>EfdW!lmo3u>io=!p=nDQ3?(Vq>-1-8aGKbOlKI^|f{{RjkR9-uz7cS}+-pGwNrkS&mkDH-o_k5`T_fudydN)oR&R3{eJ8X}miN z0FPkkKYHXGq|&xC3x4!*01vOdc{JY{>%qiuxe*l_5>=9Jzf+8{xlcT*)p;frTP5;`aOmawN< z6u~O{L&WXumehWuXC|c$`Kxdkz~UYJjqZzT0c)5c{Zoh783xs6{t_DD``;R8G+JL< z2OGJcEcqdY*XZPkQJ~Qoxo1^A$yn6di-jv6Kg7>1AWlLa{I>%pNV;scZycCk(90Uz zTQ_I8#mYp9&_NYohsO8k)#E05A9hh6>raIcevn!{)nqjDA*!KmVnUD#xYP4<`Ow4TaG2N2d%yetoT z_XYQWuO)pF{i{ryjvPGf@!O@w{yHeZu1dQ1=)xW^S_-spr>13zT~g9VqfbMk&*6Xj z5%|m+6|Dl``E%925&AmIHni3q2!L4poSfDdgqnL7dnD(NgFZ5NsY09O<3+%iq8bw& zYYzTwX{td-DEtU^5g=IDjz290w_^axw7bj)unVz>HH}}kwM(Y-wN3fB*Z(v_h(2Hn zrRn5Cqpv{Zz^RY+u+Gj7CEH^tGG9i4qg?r8JJx?Z1wXSp`qX}~PNrJVupME>@lE>2 zVF%ujx0QAttjwu4?zKn*%ZF`Vc!;WbD~Z(R%y!4RLPR#Hh5OX;TFM$!lnitB$TH<) z2*fg8HX5Ue23pO>k|<~-XPeU(24&mSw8uZVn`8?NEIhxNKO}X8t!I;9kqUI|rz6+l z1?}g@jvR?=Elsld`d>e3gg)p5Y}PjozMXpTl`H4J!{Q!vEG%rm`x40PE7#z}-uY?W z=_##g^;fCGEyJt{Nn5!Votu<(kt06;;T*C7E$8BWNr&UmNv*d4;*R@oV*j%?qz9hx zLJqf7lu>v#cXi0)Kwl7$mrN$65BkLG%$4DFg7_Y&^S$(PkuLVZWESjh^M86`>|)^4 z``>VjCC1+I0h=|j0~hFU#DYq=v;JC0&FjXc_@Vd*$%j6&ZLp;--7xCI?Re=?&v7*6 z)feF1>KNMlln(2RBhadL8ivbULI2#T(kbG^nl*~3JD!y&gc=^}C5{=yD58ruKrw;B z^)VZewIburuYV87La$w{ial^Mn>Md|;f8>r9fs;;_4@Gg6nmgPo-b^)#Qrx;QgeIR z{DTnJ{K7L$awVx$sSiCf=>IM_QaO}#}KNfC7DhO-ObzSU;-_qWR=&S`eUHMd@AEWR^ z_9^Rnk5e36ADml6(lQd_+ATG*F&}JZbdY)LsZXy>v8dJPa%AvVWU$FKun&G+CElTP zvOlxeD}Srqn{M#7`HiPS%L!V%%@f{5kHPsBf>*a5Bn-6HU$>4d0mOwnYaWE=fnum= z)={q#dr`FNo{A!`#rn##(clyk0+Jo-Z_6{i06;?=r9B&@KcTcR4AHf z3`6zUbQKgiFO!`!2@*d(A_rC6j>TV&QFf}v1Vqm@K9EWbx|EOjQ>H__cdLC-&V=yK z{rc-aoQ+}m0B!xL&z~m5O-5K8<$j3dp;F+@>J8;?44LKAd8Y@)&TOmBR!>~oNZ$mw zm`;4lsF5(xxX>Y=Rh-~l$_Tt-6`^gSvNw#P=vr^#=}DkJD|`o%n4!b;+ST=l%;HUk z^q&>6ee*1OE+>hXX=^=Y&ELXNv^S#R_%@-}b0C1?W!4MPg7K5_#P_%1#SSzT4b2wB zs}6}#{cz;~m;mZy;{1~9cimPdkd7rK0@Cr}c}}zP z`%Tj?%n8l`(iO%B`fcq}KkB)!sWvVPWM>a5#babuS8pn_o25Zf6$0DGe${=Re0iI! zQo3)fEp!q+D_s?CFaPZZ(#~AoC{@Q;!O!OvJxQk zFdz6+b!0_5I#B;My~5n=la7cVvq;x(w2rnNC%H*CLy`ur!a5B67b`v4sv5wRLB_Ky znIq3EAJ{&<=_TXYw*CqGZ`uksxymF=cflSBcJT7b-7j{tMK^{h8gf_2RE|ei+FnIY z`J{}!Ll>{9h!#e>Ukt=~npzf{=QIO8VNZCLiJn%P`o_;z+Dx@-mzpoldMCV6amgE^ zRPm#M>@790`iA&iRf?im;vk`=ngthe)u)nWHW(S*w}R^`hWpUTy1BpQsXrW_7M4mb z;ohce8|oz3%zJ2!i8w>_aUO48;Fi0kwtr|;V!Zi?UbGIWq^`gNaolf!0Mw|0Zc3sXdtX;1@+{KFsqy=8M0Vjh&OXF8f$1l^N#*{|oO zG^sa&`?#I6VPp(uQr3c<{0}o30l$y(RaO;RBIM2s zExDHmkGER?iu2O2{<3Z>vUjYwhn`mOGm1pP3HS8^iZ6(YNoKLOfHshUB^OfSOYilf(DP`5b=wo{Y;gS7FQ}XLa<0n z(Vr>xlSe^8gva2F#%QC=-`_re@HObms4(601g4SoZ#spo$3D+|ynCJN`B7C=N09A} zje?F&-|x|bZ*A9nP2>%)oY=Fbi+}I>u0%S@wQ=Er|K&T92VA==g!#h5uynEc*U{e< z)Mz%26BKuVaI1aE^!T{77FNeRE!(s$MIj;IHN^vCKk)JJVv?tjoZ#u5#<;$qK*YQw zDm?L)7szAqEN<1_2mp6?B3J|*T@oo++_3)+Ma}isoubm?i<`TZ4eJ`@=t(Igt8Wc| zu*C~E6z#j}a8KR+<6DgGcZo^e8P9r%IvR_tESwY%BjRD)n45HRzkXKa4?W$yZgvG& zTtLO>)_?Y}HK}ANoidE-4e+sXp~){yrTDv=yAd0Yn7ytn^%t%%Mi;(_(QUx>4~k-! zJFI;_Xh!7V*}vb+D(cZtL+%40F&xDmQVKd0|;B%qAVvc)5LCf zjcLb4N0$}wcat-C{4C})AfZFIUe9wz9@>%i(lsMPbGGm!?eJs**F~m;trzar z??3xOyA!C&FMo^+W_U~&F?zw7%-ipL8MfP>dz;%@L4^OjRmMqsnafe~AI{J#ug(K= zUyf-pegnp#4;0%E8RV|m6sR34)7f%iB6lKzb2>{JEn8)9w+p| z>CII9fc`D~{=1_Edp4f`t4AcW5auqH9x~OyW8~UcZ#JRUnjo4#;&ATKBSv}*HH!1- z-Y}c=1n?5-lP|qys7QASc`KUS(zM=DTL`KtOc=Y@O0UEwY5k8w%pX5(k2@NFmJn7P z=p%1suu523>)J_&4E&U2sw3RGvC}F<0rx!(~N-PyGt{*3A7j{eRHLewk*QVQSC{`;$lv zX(4|wrFv_h^ewVxB+taoFl77Ky*^%@Aa-eXa|6}u+Wvf|woS&n{Kr)7zN;waJv+6s zan06ltHgN82!T<(lr$ozyhV_Bz@;QCAk5|GM!70*79pSQwe)$MK`QasvI{YcuQQrm z==~oKkoiHEl;x^ep@YN)mCIHiO1zCeknTeOxX(SK9NyI+!e4np{p3V1yV;0D z_{6+9)vLh}=G>W7cyUp9AYs6xeNh#pyjIiyivoVXoj^H>Kbd>5?V zC4-k-P~4vK{maHSE0BS7EGVX}U>-j)I`Wp#sGf`OeLU4qk^u0qV+FsM){l#pg}5-8 z1ZZGw*}{0LFJ2BR5cx84Ub%;9?Y%SU#(XQ_^+2>a=2#btwD%u~RYo?$qbves4U%jvZoX5q%SJ41 z?nIZb-K(v`N%v`NTaM+X`81>!Lgams;tm2C8@!+KemHFDa6R+>O@~v7Vv$86A&=1y z)+wE?qB!^}r|Yi{dF)ipsFLdo47&tzfg)*!;(7BE$v!*nJrmO02{vyj-}lW*SSR{2 zCCWi6l=wPOQHoJ?CHT$m3JHYG+sPD)R^I$75a^PSc(25ga>W^Ocvob<%ouOxjOSNK zAxC#Z9>r8Nsx&4KqdjrdJsXQ~-}BHgI3Kc!%lPTV5;5Oi3UJ0w+zEb7*M0-LFh1S zn8SYwmM}iSEFjVFmP*#j&(M_F^O$<7UJ(-g)X5zD z?(sbvn@(GLfxqBcl}Bzo*;tYpv>&${O0o+WlXhmvU^5g}kDYGR3%fyg&smrNW*z_Q zj_)V){d_>fJ`W`&Bgv-p2V&Rq4Lt6pfu|O~|A!Od=PxvNPeTfvO!im`jVIBG{}aCT z%_Q88P8d_7S`)qp@%-SH1&pqZe;f9chrU(pW%PvYG1v?b4lJroQf~`##Ek+q_pGQg z?D?_dccC@Bb)7bt7>pz9qeZB=-n(gs+5?9XE?j3n2Inv4>u=NML_l5he3C!OG7<6K z>$&Zx_Z2i?>jzbR+Lnvx61g&-g+w2Gd2l*PF#eel4Nu_hA8DX8iiZlJ#s#fu@353+ zzKc({on%tW-!DyV%##~;eOXk92jIP)*gC*ciEyuI;P{{Vs5H0unAxk49jO6??^I)h z>q=|DN|>I+!Sg0W9aGifgaq5u>iD0Nil(d4vnJwtLA-w_>nC9LzF@-Pk$Rk=v*?58 z(~SYS(d9NU2G9?m>xzP<@((c|U;83WnTL1S4Q2s4;ICNRtV`rxzy4M9_MyPXPmF4h zy?p)V`}_xFJu6ClHMTO^3!&DO>VTSdhx+kWCl0NBIaeLMS!AmvGYoHkbtv8$U)M~t zWwDFf^>QeJE+OBl?eNFEuRdd@Vr73w4THL6OL}AbcKoero7hp)_jh3T-ayB?ms-g+ zjDSyv8`ob2;|bZt2I`@l>T}vRkCh21takF>zR%!Pe`)Y-LwrGJI7U8d%k8H=FG9LN zw5DG4MVV$FEaxTo!PF3<9*~kgejz-et%?xxkDk%t(AV4)&zn7Ti7fP>i1lP0MZw)m&FdfLC9C5zD(X2S)DV zmw@XQa`=bXkRUM-8?Zb?5i$gOJaSZ~BhB(wQ%qx+MWY)h;A9n0)rhVchFn0yA!H5O z+%HaNGMx(TX111EW3)6- zw=;C%n@(;VS1CE0@#uZ{Y9Rw8ZXJr|RzUEJ_Q>?sM_Ib9%KOS@s;xP4Hq@(6ZW*S( ztBbZ<=IJvkbCLZ@@Qyng0FOfa{GXwNPeWG)a-2{SbDzbbROr&4tmhICdu{%25Y}l& zaUKVoBrb1bZ}v>f?_C^;PWVHKlTQ^P%MC%wg#|{NiP`(wI;vFv%bf;Cj{_$MFI#tT zkI8y*m1H|e;Q>|@wnEzRsS?dsU%bI{!F$PGu5^04t3;FI;y{MPIF*}u3!Lbu3ym@N zjflRU+@Lvbe{%=f?QtF8h`SoYP_uX68dTj;qjUA9Jfsex8dDhQiaAwoet3~>`c*cN zVxSv0_~nNm81a7p7&47uEIF#hee7FnJJj=*dbk2|LN6a*;mc85M}~ars%6Dm@eQ3 zOOnA?vmhj_mOxk~a8j5`*28+-1}OgjCFlI#&%Jpq{p(@$r_221TAY2J-znqdFZ2JX zJ1WRvUH~82>Ro>6pt5Gu#W|2*gd&`(c(U;f%;@v;DR7Pa^n{Sv6KI2Ld+$c^F8F5g zz5%1BW+I!&~s+s5Q^lC9`Cy{PU8ux?Y6J z&5QdEe^4>z6W|I(kKw9`AuSnl`iwI~K|H7Yi}VB!q~njgwcDF_C`c((%Ae(lC$ciy z(EX9Qm-&xaQjW}6jB0gNX%(q}2eZyE6;_bTryIC-3SgI$tZCs7 z)o!|t1};gY#*SCSbqYfWEK%Z`C)y4u=3-RaaU$v5YDeS5@dEvT$a|A;%q$HCcKaH* zYh?b44X4+=OMYFRD7tbFTZVTApN~A)8v;e4V}cka>vENR;EK&L+VVYsOG>`bYVb(y zN9Wi0`tsmQFqTkyJuxqE20}7jF2G?VxU8|I@>Q5mV$3qhumHAx&hs)H7SXHZcnQho z&u$nJrsAI8#cnLH1z(nGjq7XVYX@bm%#=In_6Ed>=T@Eb!;1EKTV}oq$@3ld@Kfpj zzy1!O|EBMOO9?IZU{(j%iy@9^8~q7RA+rU4?bEV9{laJc$*=ksQQbH`l^g2ohzKV+ zvpiA?EnkPrQtrfp#BlAN&zjP^50>3Jd*RmbQxDavM8+k*z%Su@xofIQ`-s3>G6|`}mUu5f# z?Q^>NRjBhOeavZXeMs5_}!sYe4A- zCE5Ikky~b+$T3p`|FV9s)J>=m$>hsYcj^==M~=epvH4U(f*X{m9#n#Ry>XL%{%7({ z=Il~&Y3^OceJYj=G!I=1%kI@y*VC5$n|4}NC-Evy^ecgI5$L%cNU7zla@z*`#H`Re z;>s2swN4u9n_B1L%lX6U!a-g8E1wo+#eI#8vsKKt!KkZ{+GAg!)#CVoneCeEn=aX$&)x zjiad4pXyd{y-vid?sw9TxzCgW%yN< z|43sLZ~)_hxzKg|Fu@M1Op%jb+IA`tm36-`K{wjegN9+B^D1j)qsOmy0EO=WG!7^L zjNS$`);R1q0_FqDSzOkz$Z|i+_kNnM0+=!j2`3`Uo%!75bFU&)9JRjRjBdQrf)RR{ zaqWZsCPtjKi_hk+vq=7G^2oyuoq`!WlUFkXyVt4ff6n-}#a1oKcjNXTNLYlN)lj3b ztMfI(L!~=$Z_6v!aXF<`?I+0hQ%CQ`t<$$f#j5X9M8#_nQmhqQM1MonRNdfppuY)( z{;#ze*H?l!!^d7Xg|W97jq{SR-Y=+9oQ{E(I#+#X&buZGNqm)KzFDQjL$5MWcqtnh z9Yp^6Q~fbY$dB>M>-T;Ch!-+*$8e<=5%yW#_~P3#PQVh23#9jrdMrt(6mu>nU9w}Rh4<8G7 z4O`XD%0G=iFjD|=!W5psXa(JzD(xj-25&EfI!5=%<`^8xKDj0)>cfhl_1FKc>3mu5 z_vU5ynebW4Z-GU1cps1<1|xL_0}i%HW1-~kg7XKxX)^LFU#zF=NFSSaT$#raJf!uB z)aMHdT4)01AKM^3l3Z1I;{PI|JDW1EDXNn4h)b8=dp*LXE9H+Aw}MwXrUG4cXLuk1 z1v$2JV8l?w)AiqU9iC6TLQwQ6zU`Bv7}VtEAMyW)lH90_59BiIE{CN}>>Dbo6Nr%I z_Upy+6(R784xl#J0fp1o9rNI;p6R3GLw@$t>#$9yWted!m^_k6@@uxQfo>lT0y4cf z-rd``%|ADnt&br<>z~@Jb0g$sjqmdWtx%o4O~U;BA^#k+Nq_ukE{@=@WpSD5&;$Tx z9YBp68i*_RAI?*_jR~{Jdf(s2AxjRyCMKE>*iK6x_Lna1lmnqQ8&{5KzdIa%&;OA> zGYE1c#f0tC7^v_27hp1op2QIb*WS9gwjus88b5*jb;pG4yoT+_tvm}I;N zp0q<83(&lK{PqQFF~V{r@HZN96@*S)*9oR==pdEjbzWwuu8QaNfRbrMUMCH<)T>j) zR*D>rGWoghL6!Vz(afg{#;02TLZ>$2tmCZ;PULkh4RGbRS>?vMeQV(6U~Po zS23rXhuwW09CS?lqC|BK$v!ootNtx;$ZLKlEKt%IW={RD&dfmllf;|%=McT^&IEkd z;!Wfwy~CZ8H@7z0xt$ArSEk8PzyG!VJ7xcp1pbgn_!2m|Z}~AC0>uwxgLjLd<3V(< z7Mu=sH{w4SX@n@%{h-$P#6ckpRYy;np_Nc8N|R0=i9T!n9>7t6T_=5;!zT5BUL+AT z9O)K9mo+DLI-3$`*c9`{8kH>-2z0=8TxqDG4SRG$rwsE<@RrGqh&toTcs2h){#Nj%ueqTlyjU}@R!6jBG!!gfMn z!}i4x{R?CoI=$=imCItA5odJaAFbon<7{nQ+ICA(l=wYs|RAne3NIrfGGi z;A^z^M^%0X=~|ajp;CNZo@#B3a??|9^D?3r-M2`?xqsM6#GrC};_y1w-+w%4vz>t6xdEruQ0AE4~gxg>F{)Zem zpmLsGz+Kxwh56{`W&S(sif*EHX)0Dii| zuZX-y#V9!F( z9)EVG)*AeG&w!8a#6}KCpZVLNDhECt6eRS1>fNy36^}5?=DGU5*gdssb<`&%hYU9V zQuux{cYM%UKVaJ@KJzs2sCK~{BT8k+FC?UCyZH>FW@&-QxvWe9yhtL1&~DHvF{yu# zN3tnIG#D*OoI93r^8v92p+;xl$zWJc|G}eZ++fJx%&Eq77R79i3GRqIXzv*Yk*_VT_L97)PV9G+UF}da z?cXDl4ftPe^>v*v2kqsALd6OB#qRzv4X5UeQ@X51>T~&Z)m4q`zUt$;bma9{VQY(O zK1|s!zl#wc$-b2Z(hUH|d`(IUqy007wqt)$KjEH#$6xjufAEo3+%T1^NdW@|hG(Dq}{>b7y(a7}JT-5ARBz4|}%QG%>Y=o44KZ_6O z{XWfH!Uir)7W$UbxC~r(LSsFcgE}i0$IzTe45j31b{`ZE2B+?@%~Y)rsP&;{9ZwAL zVGOcv%nas4aBtx@h~M4-{wH0}I;<+=<-nV*>6VHSiLa7e=d4CmCI*K;Z8>EjC8HWLGVSVTW0? zI~-o^gw&`V1%G=Y(qnb@IDouRAz1F?=`*J}C!LOtnl$Y*uG(}w&0~(*_ln7zpC3jd z1aMYKWDLKRsN4=+xC3&F!^4w4zVhd z2qUJ7V04L3L5&>|ttOD6Yr4~QV#Ld}-cAebs5iDYSQtwY%(uUDE^tL85&Mz$$PTm; zRUG&l230!LX&tfbZA5P`9;*wpM3YK6`;7Qkdfn+_)c#=<8dQ_y>3_AtqCSPlAD+-l zsat61zxAO?rN2{`{(Q-IJOlZDp9b*oQ&-5bQs2;VDBk>2ols3Y>a^?hxE`X>7Xj># z;EceS`2?kKg^wmL3mmxx>N~`oE}Wf;l)wE~SL~SE6N)4)XT)=>z1k0M6WIWfRes-PJ*Gc(sfOB@7M&4;s#M+H$VRz${0okPIsK@jS-^xv)8!46xz;lp8ftO zwj=2F?8>Ax&%nf)M3~CQ-zL$#g84mN%QiW>cn1e}U1JaCA{AcVfw}`9&$N22FT^Co z&09g9PCKp201JBROED5c<-D2}VZ`vT<_=y1C99aM_QO zNMQY0eC5)EZx-7PVLwRb}gSwz#+S)CdM7{lIa`-3MGYy%(* z8>ul)W!}EBU7u>2c=%IHcx4NhKE$?$E~H}-{`hMNQCNwY=L=o){=QD3oU!-Wx<-Ag z2-#OcKPfV(h6?&esNpLi`*!N~#G}Wh z!OqVp=y4D6@AX22I=Yg;-|q80%mlBZ(cl7q$J6*^>bQw!^>UMifi$hE;O7}QqZ}4_ zESty+03Lh{z5fOw+eI3{nH(IfW=`ChrIWVjdEMAm8ZGv%m<_l%fh;2C(wi2;)>;%p zeToNvd2n(vPdJbijV^JQhNP| z6NF62eJIo+#LhmxgMl6J2)F~|G27p&_gig)f%fXa-kc&())!GavQ|uWT*vVOf&R_S z7jO!uzvih~lh=0lOjB-tTu*Ve>Ge8ar%@c4=;q<-D4=14)2~xm?z6P`DqkSyKO8eh zuUxoLVBO5#wR#U3KvW7`^?0$tzX&=lyPnN+OaJMzuu>~5;T0R}UZOvZjlO>4iGF-){q*v zm3MQ7Ez-`|Q`)ePZxoGnyfoBu$us_!aHW~7)+lQrxU6<`KRFvf{B}m%&5hA$K8Wmo z`|?)*$n3CA9s)*3l7e^_=_`3Rnwl8&q_of-Q0Yc7nV)IHcJi!1~o%}VcCyi<8=w-yMau#AcsUtK8O*LvFfmH z3+S42`Mbpn!@YM{{GKMD39tpN#l5}L3p&Df+ZLM7H94}kjGOpiOHZL@DHlG>ht0pk5~hNgljy&pZMM%+oHn1@t+8bgxR4 znia0nfc&<~pTK%GOTqyXVOfn&xflzT(`e_IpwRs8gYr*)Fn1fMRv)@;8mn!x46%~s zBI2;wf^^I@Gcp^`3{I)kz;?bQoJa!u$jfom@s}({q}GDk-xf^V|l04k+v`eqcl#pDdZBLs@x~Nh5n(0B8+FroOJt>)1~u_kyEzx4Q#F zRPHTN1#^NG4>8A_#O~n#5zk*e3h)=N=;hd4(#Q##wHc6_!j7GM9=CiU<22k|iZ zTA^AX(FvknZwWvOBFX!b`Em+e8Rv-5sPcw)AVJ-HV1;^av z=OUq1Kk|6+N;`{prpJijA(A*IDs!NeP*9O=&TKef4fn4mOj`sxng)O!N%##`SD=kv~V}Qu5I&`&HZ9`#8Y4LsV6&i zD>Mu52WM`*DTbvMWu71cV$7{q$o6DGcWI*nI((_|p1yE(}Rv0?Up+Cq~7p%y6{8lomdifk%)Ol+drlqxDe z9Q0B~@YOr>Cn#KRE%Q55#68Uc`DpGh|1~J;#4vq{zd$m*r~M;SkT>)fGc2VIut@O~ zuGJm5_Ik?XzW4U}RRC$Kf^EH~!fLfbb#1hYO&6RBPrd4NE3ngWt)YkC-pmmDy%CJB=;H6)*uR}D#H9`l#t;H0FsvN5= zPrpiwM~{!bwdq@_t2|=#a6rX$0|-@l`LKk6SFzlLL#LDh{?GI4W{YM}48wLE|7iC5 z5(SMPy|qbXwjEGCiCHf9lf3}EK?9L8_l{Y&L@$`6YFljoy-ZxQQ+h)Hau4a;0p$la zV5pkvQ8r<06ArcDk!P9?v0n!`vfL?h0oa$l;@yX=AM0h54yHR;X@CXaPKk0``s4jv zoT4I$g*@g0=VFH%sylsLRvTJ8H*5tfN}{IUzrhFP?Br|TsX);YJs{%RCF<>^=M?G> zO`3%`@Oj%_3n_9Jm3sNI6bfYL+s@GJBWdO>mIg%!|I9+1UKf@>ZW6t~z4C&QlA{AY zd%VXrV|gYj~~ zbw0hU#W(of*A&YOnX$bjYKw3J{H(0$Ed}bMa)DghD|?0yINUk+E>Kf+W!J>szabaL zCg(z1+|$Zrf16bW%2(`7sk{W=>YdA6_Okd^X&~CoN#}18C5w}!8v8fW7sf9t$;M=s zl&zjDq}j?g@8IH!A7rtd$}cs`>?fvhHugVjPeB7omM6wdCSW27RnqH0GSZHh(*w0& z_JaE?EV*61CiVSNqhG4-lq*1~*{cl45a;Hn6IyP>gOkw?r_=tj6hKPdS9$P~1&`&K zqnvr$2)=;9;+H0$+uW@jgOA(rX#(buoa8VBIHi4v;E=E>ISzu<*3tBH{HN^8i661+)N_ zSX#UX_xIJX?P}`!XNR&>1GQR(Z0)KQ)eXL%X3cT$~BJMTDJmnK?w_qQMx zaO00CGG>k6tG%N3(SP-7X1`fkKhsQ|Ka>!ycuzL*J8(60yJFV z%190%(c~Ft!iC{=U;5x^S*^8=2+!xamb=Vd>qJ8^v1C#hnD}vx-`UUO zXHEL=p>Cx~q-!#iC5sEKT9iM-@u@G7UoLqICq5*OI^)6C=?krhUYv9ShzAwna5qcJx-sqG*Ds8@X9k#;fz6Vv?=(KRTIR zbk3Cj9F6kUS1Uu^SX`oau?RcPlK%K#J6|=*r>5(;PAtWhoeh5)9=hZu-3 z&N5_8B}p8Y?~P`DnI0Nl19?j2IjG=2mns<}R2mpnU?>LX3Qz~L*TYIOqLK~8S36`I zczfN+_MdJ#`uiG^5`BK7ZOhqJ(WnW1%cLhyA$ujfD#=oNQvV0!oxb+0BjxpSNFi*% z%*Bjp|B50+N2OfkCPKPs1g#Wmn&+Er@{?&wFi<8meK)SmBm9u$=tT(S<6skH6%mSta#5yS5o`Pp(bzf=$d0)0~+mIy!zOqU-g1f1kxiCnkw$n zB?~dm#Nyw(tLiQ4iCJ$>ST+58Sjtrh|t#}ISAJNMV|7(bgx+(qD@HW(I z&2&-p!-jZk5{+&{cD@s#Id2VN>AurKjYseMBvWUY%(B|MQhNiXWP^g=hi;nSeZrdI z@>TK_m%aA{F&)nuo)HAmvf31QmllK7c2ix=#gzTUz50|?Zo!5N@Kal>-_V7Xjbxr1 z_!@aV0!vH`WI=l(A_VlMZ$SUyD2ZP|F$|Bh(N3Uv=|}KhPA4SxZ#k5@kJ2$y%%jZ#NC4@zY-glaCE6k%qPuK-miv?^-`>M5lvfM?QT{dBk_v z^}uhlLHhD&Z`2mojXht$ZK9nO6@j6${GXh)lb+kO5PvV!%Gz>5`JSZ6Jk;(Q%R9mE zcvQjanxrHrYQ~W`82hAI>ahkpPV^m-%GAXXOuJ#mT`ThV&~aV!=$Q2*$6EwngnAs3 zufKCsB#EF4zZ}Owvt`I3h%z+Do4#@Y6lE@XS_V2b91Ev8hn8dtuAM~H619RU9g5Hq zy8oOmGVGiQNc|jg?2}X%9Lj!3&yyag_O!nu6*y_mJ0p=|J{5%~K&#<>D-j)39jke8 z#>1qaOKp*Wm9#-La+6K3-+LF%__4wbB$zu)V>|E576^ns9m4=Mt{4JvZX zBn`kEGh>~Kg*vUT{TbSU7Q@v}^DpP_BP@a3R=DmsJ%%|s@BFw)wTDk9BQsC(<;BVD z&e~28mI6BnCk~{+u+J#0v7Z922@WFNn$xYjJMmYeGZRwf#|B2iM1<@Qq7 zmhYB03xnABJMpEYcI2KWIBgk-9>WE(bvT-;>e+5L@XMmHCQJvwiR7ea2^ib@4`(J9 zvIFSQ58gaVF-FzTx43nV(Ty>OD;>PuS;Ru`?c>e1MaYr@0XLrfJ5!9&Y4%|`0IM*d z^-)^AZgYEBW^~G$JX{AAHd^*H(eBnMq`ac;K=bIzL1>U`ic7SA`2!!-vmDcgqxY%O zA1L}dOP_|w6L2tKJ>jc0&_{B*cdxON0G;PQ92-(1(*+~@KqiN5zZ<9I zME%SLhK z7VI%_j#ieL<)`H5Imlg8RwJl%dx%>4Prkg0clRXX?(GO6#DWdv-O<02*eff1R$~;7AN}f2g|7}Z+6Cg-7Qsw9 z+6I@YO&?8@;EZ?Y@g?iV*h}YBnWp&BR%k_@7Jg*=v$C{N0lslVHACx+|PtSrzCe}!Ci@!>6IN%z6~I=+&|wDV^{BcarFR*8xUJu*`S zUJuR!eyheh`;6hXdHXwALd$fYfT)iK3s^SOm!r@&O7#+BnUwr1;kEiPL z3KPE-MmyRpvtMF~J61!TtbYNeX42|l~0*4?dBJ`=hn zbEYU&&_46lrSs9w@*hN$n0!m`6lB9UIbpP1sdUz~IUwtW^Ua3yCdn%0eEw8>r1|J? zuSBfP%Bjanc;0CthN^y{$L(uWsW<#}vtE3GWGdT#IKK>cbug6Munr>h-5QVu_|)1a zl{nuIv!=dh4s=ZT3AX7j_eFt>2SO#{y(oa^G<7=kLkVh(yJrVC zkm+o)+Zz~6K6GyKT%c3*drtqDUsj%eV+Gt{>nc&a)^BI`@Zh$I?vB(eGHl9 z43Q$(>^A8X6yoE$dsld;TqK?9dYH!{8wFFHx_RNQiD-PE#rg02@Ts&oXEMbbYgvdZ-lf!k)_C$v#qX46cZ>e4 zLs9*5_K~Ce_r|T-Cz`@0|E!MD;JCjBIf_~uVJ;%?-i1t%_Q6H*nqQkbe)K_^ z*bvqzjSHn<<1b|@#YDWogyy5=s4nR25$~b@7Z^ub^4w6^X879_Ltu10nu0vJ~v6CB})qEh2YkPTsVwpkd~$okWuUN zH&OX++3IZWWfokEs$-<*$0n1B8kUW_pO*AbmHe@zUGk#w+>ep?ZgjJQw}E5%IhRsysXn9yFg>wRgt*&2Vh-gYcf%EhKze{Sg`$qagXoyvXmF?fIMVlH4QKnlCs-@agj z);$E4#SB64!BoXrz-CmR`H&5Df*>2)?e+uSWEgrc``=6S1*Q`{|JSX?KMIb*xq+Z`+fqA{uZ~NNd9}XiE%i1bet9hamK23+%3gL_SJGW5z{IAF1_iRgu6-J zk`AFfbc&LlaI@$g4EPrS!-)KkB#~h0Z2ZQ5Sy&|}ol>LU0OgpF_HA}FP&B5+F!`UUE4VKGK43zZ0FCCE-kPL1A_%@RH*()`t?#=bLDi5*J8`TIVye{^5UF|Ss zeOcZN&jVl>y50L2O;tTlhZ>;$Q%h@g+Mhef*bp?h)t*&q;uuj3NN}bySjBr`;%0^O zmoQQ0{xr|?*1VEcH4*&9hMH4VQx?ZRWv3hs%f0Iq&CjQ=a}}7bOdyPz>$A}3#U45 z!r4L=ly2bDZSoztACGBi-CCofyz>YEzp-}kf4ibQDMvr~Ao~Pq>legf0O|ibzLwL@ zf;U*N$n4RLz5K@hw#ET%seg}WAghDJHuekGHxWaYglvKgQ1^rpC!mxqEI8MGbY|DE zUMKo4vuYwMi?8CVh8@Run15IejFmgQJ~LM7K}CBPsGbk*Ky~N6oz$Lh#gZ=~T&=OV&A`mRwzCuj-LKknTX?z0hvZ#)k_%_^1J z;B?mmow!AGV^B2Xiwf!r^)7SHwp&3VOxv^V^C4`2X-?O?eafY-St~N{#;qLzkNr3u z%Br=DJ*#4@{l>kfJY+eZrPq`9=tmo^?Zu_IW^ivrElhe6X3(l=;*?2>@>ysUThpT!2skqS|AX7K`=*uR9_2>Ki5xs!R z0qC_>08-7o)P6VKY@eT!`wY}48mtE#8o6b;*TYafFmR1^(v4z=ANE5xU~$Gq6{U_w zIl_{=gXtOeunQ+X9af-nzs+JG(3!_ZXyxYP|H&>rLSp6gxXYf5DLo^d$}p+-Yd7o6&l0Egqoxjwgm5Lri_1@;J+t;vy4=1tE6w zL5*{#mLCxA7k^3eZj3tmMXRiaA0nwONvdgWbV)xAz|o){=6ogq56E8+53 zWyltqo>nKa&dV=-9eDIH$hWa@;Xv-ubm6O0io`DnSq1yg)^I3|f&d>1EkDfcl;xa{ zvfP@?G@>AVs;C`Ii$*XJH1Q6&cs*<+W`AFPN`CW~ zS{}l$;=pTVML}mvYa7*rABG(DQC6tR-8{~k@WE4KCx=ziInA8h*P1d%?-ade8g;24 z3V`m(0-{xirR^AIxai5gNZTr0`0=EJ$}KsiUXp8wjyzc9N)jS^ozwON&_FU_`TH9x z%~gUXE<6{L3%+f}EH8c+JBTBWx3NQH@G4ibqqicj6!Auj>f^|py3#?nr|!9v-cSAb z=o@&J4Wld6-B;sd-#CQfs{<5twov^2_J|OWzga(e6=QKu6qtGc-jDn9$Ibb!&m4ay zNEK#Z&T)Dq%wnLCQjIO#l7L8&EGJl|JGrm^f?kCZKr{dJRZtImQA2mb+55oi8_onT za-aw6k>@X=ai#qMSmb>~9Q4h0Z~WCroLMkxrd;Smqf6j5f^n_AmiJi$Atgv4qp5~jfn z*G8r@-9AygfL~8}d+dU5@!By6;DZ+3p~ws5JwVM&51cx^zAbB^oB zbmAVas%Gj>dh<9_PoIs<++E*XY`QT+sp(^hnmhW&)&I1y7d@-YE#^46 ziJi`|B}cQ)22t)F@d2U4AwlkTu^mOF^b4a{g#XNJXCSO+^sd>y20C7ibjP@D*@-Eq zoNmlq^=T(dwzZMwx1g(d}iXhPPS9T6(Yz2(Vuk+I%n2v*wbuc+Zqa_!~@8s9&8)aE| z;iQlyR!il*8otukB7N{8W8_YY2u>`;BwWW+lks!fLMs_i6h;x8N>;ND`NRb6=E<0b zL}WMGNo&i^vf~o+idP%YW=etga1x}kiARZr`^It-D-X^0FPItRI@u*7nL_ns=VZId zMm4XS|5sO)MZAqSD8vUD&hXaGR=N>KgZK&*C@BT02isi5@76!P!#_0(Fkul9Ep}J$ zAk5QkWR59X*FWBSoX5{I^BT3HvQ7#yw6jAzm4biy+Jke6D6k<$-6XAe$9P-VVRJk&KoGmq zt9NufEBoz_&pX#<(fqMWi~z|YdJD^)QnIwKz(Y-1H8@5LY5M$^e3O5pc?#jwxFPk6lzyQ$O}&U2Hyq@`rGXJPj6<&Rao&fTEg zppHDA$*-DMH&HLH3)xh1SXKO#ToqLX&Hjqy#ERv>nt5=6v+H^3E;wtwvAQpzEAcWJ zv%)dOU#SG?LJV5PpDP|*@d7o7D#RU+zy+=IC0@xBlxK?S+Oab+$5cl#nY9@C4|Op6 zL50=`W`)DW-Vgyiig@P=m)1kP*>+uUru}e8H-+bPB-(Z8(G>GIW|24gK4fs7#G7dg z48&9`@%i^}prR2FYBcW{g84|x&MAHhd8z@Eq5LCuQE2hxMAyawFQl#MpQH8RiSpuC zVsDFz-_^5KykD<172!rHh<@MYWAd^ChR-&2+hyok_EwT_!9d?pRQuP}1@O5oHo6NM zb9s$QLR1uC4`q^bMHcS+mETladd|lrB%5_SoEW1;7hTyv{Z?}b!;IG#H07$``6H5mk^j=)O%{L?@*-{Fk`Q>dp zNiIXR1OG*_vwr;{!OpPdYk$Z>VBgvN-$<^Exu*$Ec>;GD-eHK#t$k2REEvzv3gCol z&vB!=c#}ZmgA!y=CV_pFw+7nDN(B8|3}c^-?E@Xt;&WFRXxnt9(10I-2D(-ZMt%K{ z}`uG?;{<{(c$W zO6HB^tP7sSVyt-4AIi^-=AS(MwAkSB`_g!lNI$!Q6G^0=q4;`h{)?|iHyOrM`IN6n zCU`UxbEGs*X@OAXq=gcZ<`c)@8aFN$LFx|vq!$B84Hrz+8??0GNWu&33)*?nJE;tT zf{cSuvrUogkKrn@ZSRzqtVr&g zM>lnN<{~b?`^Ly;aImnnTEIPUI-d&5m4%+`jH%1u^UJ)c>4F-5Q*IR6 zjcZSi^fph=1+ND?=joBt&M2MJ0xISa3wvE6QpbqCOLTpu?1(ZFW^HvQ)t2K|)}BeX zcE&&PUH@Ck8x2Ku=L+6t=tJ@gn?1|xB)Hpqy1PSuHZ!@UdqeMC@5695GsUe<;eAWP z?mBAAdJ@_6#jzzxjEu4BCrj^Z!$ReWOxyY@4&W?GdLh&M^kXoy4C4NVLFS+4b+6>l z`Il2FBc3E|fA2A@zC>VquY1o5Y8$}q^$!71o&z|7Xz93hR9f1hojbts^<7?9L;Qy^ zOOELezw}C{*vBTkuY$U?HzVtlWe?zpiLgSs?MKLlh2fK`!IUNLbmY1lJ+w=zQYGM& zmG2*a|8rVZrL|cNw6HYu#CfGmcVb&npz$|x!SepF*k`gB4FLhmJ4jc916sOI=T^dF zaGi$xze4YMOq>6#k~(n~3@Tk2F5Z7vJY4(5Wl&{8j5RFW=7MI_Ro6Zz$HK>cbmSqL+MF=%K;|SKB zXx>_U*uoBhK1^)fZBV4$vhrOq=&f5H?~?^&Wj-tS+5^_p)Em;g>j_@7Lx*0gOf;H= zlAQ9d3ne*xnd03%ZZzVo-h8!!6F!2sk@CLvFaJQrtIvqYok#AaipsrOV|j1#Lj%~j zpzPU#u?1n6!VmN#>J$l6OuY01UXSa;sFDJoP{I2bO23+al431gJ~lTqjyMA|m8*Ox zxbKDBhJFF0m+vkfHe1sWl$HTFRV?;4#eh!x3#V}(?I0EG^v_4#F?~wvdR|H0q{xVS zKKx!kCo3}gM&v&x5B`oTh8fL?eKVHWShhDBR}l32`3d(ct>=ctDN>_bS}|G*Ef*b+ zTx>N`3|W0Fd`GM|k4^rw^{c(vb8eoAnG>!GHxCfc?EP@DLv5!Jr@1^M$Y;g#!ty^N zNb`(FNMb_&mR?ZUM2Q|F;<@}xX-ta@IO1%3g4H$L0$CeaiW8l7GU#3i&OPMOOZi-h zCQa%M0tKEHXogJJ4?jFKs2(qFO|*A^rTu%Ota5*aRe0TGP48JJ@7t@3swgFr-NIs< z{mbdfoEVq>9C;|kbET4|iVx|(3})+E<@IYaX8t2NdiJ2(TX2yZ-O$RSj}vZ7ZPH#L z?b`bAHF!HFcnrG06teSXN@T8hBee1Nn-RrYy<4*92bg2sEN3ptE-4MuxzzsD{vS$6 zn=7Tux8f@Ff(fbelPx?5{}3SiXG-#Je#olh&6p%5<9N2EyoTLiK`(P0`Bct_303KD z;r@VFkTcPdC4OmW45I9jZ{7Xtg$yr5y>)@-qEAuH@z{0>@pqJNcpb`Rr6K~W{8v$` zE-xY8@M8JKn?YmRTUlPbqCZ@gLg`jv7RCYV7eEZj4?8 zvhNo^#ysS|cZd%7SnCi}w5(+p+$1a9rmx;uKKK zu-b9>v43j$>iziCpIb6YU?0{ajpMk@W1+2@Z))zHd3q8_B>nl7-|$}m+wpuJ$7jDm z)#qIaXG-WYXqVu_R~MNEY{%ypd;RSbVVpyxMP*X1ecLB2(!PgfB3w*tQ7=%QP|A|5 z>BNCK@&Q_SX15k+~3_G za)JgSn!q!6EqIaCPN@K;N&$u%c0l&Gy*~j7B`0V;p)G+ZS~s1wg2Pycyn4Y7y8mSU z=YBnh0_aD3oJhRO70sa9p&=Fmok|1xAOEAfI#R<31HnF9I5J{yDn?sZkbkU12n#Je!(k=l3?(2qZU9aw42(h?7LyY`KvM9Jw8rvep z1q+9~VcJe~sYs(a0E=u(Q{L(0rBn^dUHN9DVL8`Z_ZLhO^3-I`pLWAG8y3YdqmBLG z4;UMqamg~@v8rm8%Ljk0&!Ko2PLRly0pAFwRBH$`EtJMFrQQ7YE??G+Fm#Q0Fwr85 zEA0-PiEY+JNyA$*guiQLFfjbYg)(`i<(Y#cwXy9R$35*4aP|i{X{2i#$5_j2G%qqV zjnlE=`z(!tN# z`RokQK%oBV5ZE7uIWEW?xk2(lZp`^5OZ2KQd;O%cA(@X)>^-OCZ((D3NInY9O1)?0 z@SA(HKvc~ad#-BJQ;7Vy2#Z~h1x>Et^aI0Pf3^y#nxywhg?n$)letA*u*TiGHO8^l zSkSsvcY*(1&51(g_mq$IP+qk+c1$I2 zRQM{+LpPRZIZkwp(pWm<7?iQYb?~`qV#|~*i}+@umF5HpU^uW?DWoSnejcDxS{(b{ zciCEipgIA0Y16ES>?u(GXWSa>P^PNn(SUBaJIwr0>7xiO0z485R&<3J{0c4-{;SFq z5}K#_B=RDuwAPE$BPaSz7Yv6$DyXa_vgkc1LaIV73kiaKQsAiba}>tM$(5x4x#FGg z8`YWE=Kd7{ETKGrQe5b(4P%?9#3Ivq34G)BnV?TYmZn0(GcJ}^$Rl2}ilnm22PfmV zcjk;s5k3AD4@{;Q0`+(fVtmT(Q200nH*pl^PU8-t3=^9^f-oIHfW95$Q{lM9qCM0X zludH^k)w?11%j6fn&)sb%9%wwTWq(-&YizsV*zg+sEpWE=a7e?Kao8!dNd-J_hsNE zW)wTql0ml^Hf$)~$!yq|Posadux}(x{b7LVkLjr(qOmp73k56o%#_Qni(n@~T>aL0 zX*egs_jV=VSFGFpJ|`vZ_dMjv&$$0aO{i({m8_Vmo>i(|p30A22@`%M_SJ_T9b|_u zXPo}=3@o%!l+)8bt|pL&Oldb0X$J7V(ESoTKpWR|KDY!RFF2i!woubNw>$#}sEi*38R37wtJh3bK@eqci3=sN5=9ms}*K!*K&Xh| zy!WSpAIsQcq#pGQF*a?q+AdjE!4!-qhf84a@V3$v31! z@pZO9iHlx$6)jf#pky_7U_~qGT$^0c%-!nL-BT*NboN+LnAf{Tn@vRCBd%cUxfhQZ zNVB&}M$AGi9YvNzD~04Ww|>-i@$8o~#>S3`jlJ;j;RIQf`0q}yGpVCI+VJe(4qAuX0AUKD@Yy{OMPk<1i3zG-~>B1iA2Pksu!|0Kk0KjC4_r?Vl9TQ@2Y z;yX5<4n@0k69khR;-(mcFMTV$FcI#zK|2SplkibbXz|9cZ5|)}Nem`h|5o+TW~_4k zW@uga`J#HX)i5X@w6|xj>dPYN`g=uuOI2>_hX7f2m-%$xGXnJ5TX9?U1}M_8Xt7aK zSVG4%Nu5azV>PW(*)UMX{yuI$VL2XoAr&&E_}COR0CyZVwf@wJ{?(-+4>Ox#aG8sh zy5~J}im`gqne%6(*tWaNXT za!8fbkcbQBL@g)3^QllT{30UpHup^Ii*`eC1*6bpz+;X`rSwrViRJ(|K#FE=l`pQk zdcXV&hJ$So2v?SghYUy##h7f~Ox^(!y=`(Kes40hn)n$&r9cG! zSBXW&8ysVC&eZ9@XpGCqU8mN+>M-(MC~0K+Rnj$cvi_@rugN6-CFg|z^-w2g>U*=d z;U7YGY-}i+8g6!U*q1v0N223|Ml7D9VF^UC5MV0J+9nDSZ6*%m_#=R6hLfD#3=yT`>+j&TY&cdM904Y8akw%F znOV8ng8u~zy?^%Z+Y50#>YX3_*stxb;YxJ= zfElr4loIj)@AT;s8chI~n49jM_c`!A?c~&C081MMaNby+OIreljYP`m_4b$$nQIt9 z16$jXt*}s%g6;rh+SCajU36x<<-%L!dS}v|bMiLcgip_79;layYek;ef(1w}U#>+T z?qL_#M7tLOekfHf&x?tK_|i`Q>Y;Nj{hn@zyOF<9^)DWVu}VC768=Zo21_gj{ypYE zXUG^|YTS%dYQ>s&Ul^k<#D^shMT|!>j6{x}=Y;>!Mbnm5e(r?V!um&Jh)k0$erupb zihlO(=nAu!!S4aqQ65<%vbjFja6N-<13URrNT27HvHnZr$36djdaa$9ZF4lG_jv@T`a9!sOGi;PZ zf<0GT-HkD5r?d-*+~oAKSoa;20uwxM4TJ8XZC8bPSGAYvCq7!bu&|%49g!jTO}ZX)?;&wQ<6*-BuPK)W!;O7+XeSMLEzOH` z7%S6_Ns`FP3u$j#+x`XZ24bDo(m;P-Dk%N~HVfST-yrLGr}H#iIJC>SFa%J!(R&94 z>#{i5dV|STXAYh*2&}13||z-f((+-s}sRr`^Gz?p%8#oKeB8 zos>s)fRK|H3t!+%{IV!v^7S1D1BUzUw6&KzrQ(OP}I76MHj&u&s>sfOrN2TNUXhD@>}FihBaSBQB&{s&x@Cs~(twMG{sQEp{v?EpuDdxVwlh&=K} z!ql;^V@aD?=mjnOT}|WiokhPM&UNyh<z{_sD=n6@pr!PO z>tZX?qsl3t$}kUk74I(C^~mVIY%$YxHF~^rvSR0-K3)xUF~f8GZyl-DPb#rMEc1wl zCumdyJ^<}x!VYa_=lJn=3l(d+NGg zw%>r5UBlhlxct?Ou}KK~U;cSe`rW2)?1~BXsr_ETkJ7&&yu9mwv>BmL20R;%KZM9b zx*#ri#KwPSS-er|Hz;M1PSt#DmRxNC!+g2rX1Z)cS{zF#=jG#-<@EATF>ApIS!=$z5| zD@L6>iSh5q zGM@jUlc#6@POkhLe?h$C;<5pzH+KZnhKT!*b`UwLal*3+&Ml%Po$HvFnxDi>^B=@sR*_oL5^w(ij*}|vOsfmxlQlU6>=OK5($8J9 z-9h+X%2WS&b0rUYp~a|lE+jF z<|=|M&LW0?T{v_b#Ge%2H~QN5GF7k2$odZOcz*4xg|J}ra@>fpfO3dBRwXj`L_mh! zZhAIGC_nlQ%IZTdokYlHqTH%u)WAEj2CkxS zpHo@Lctdporb%go1=BL~XiA#b5y`c7UFK-LMtj>0!hWw&?fkhN{bpF7PQb-ZDlJ0x!06NeMV0>F z>kawYJ`h$9yujFFT{C-_xB*YfW2j5I(#I0Bq=tWqe^a%i^kv?(B@0(obvkV1HK`h2 zLbr1R4_!0&!`d;RT7uFM7oR+C3Fk1RVEdSD3v*K(SwA*4a+NH8G`HKOD$z5UQ11fz zBN_{KgD&QrXJV=0@dP#8Lv3;S-|sS0Q)Dy}FRS^=Ye$qGikr2ZTT5=#(9aUrP zxFSD|}zVLGKYIlS_e0B|1vYNMHoA5 zKPz>HOcjVW&ouOWKG2;CIzuG(Zg}Wt@^XOnO?|C?yj-&OI5|RKU7y|mwbRx@E#Ucmsc$eM!*=u9x|2v)~P)SsalLYtq;W zS?$iMQY%G5hJJ)ha6iP|h2zy)1m8OnKfdnWCgWbyVfl-YV_h0_OJ8d27b-TMf59@g zFBK1i5iIMd5L zj0k-hH9FHy5u!wRkBi_YZ^_=@CgVNd=8Kx5c+C2~4d+QiOCfdHxCZCi?LG(Ul+1UJ zVx1+`V;SkRTu=sm>!He4PX$Zaq7X3!D#K?}r{ehW;;g~9=Nj+~P#wG<&>+&ZJDkt7 z-F3=jXRh`rLgp^_HYEnN)>sO1OalaJ(z*(PR z?@g4LCn0Zua4J-sf>#m#!$$9go<%pid46LG{R>F=$9iu=s+WG8#-&cH%puS4Nl_yTX1z?RH^lywf?f*yWZU<} zXW6lc{h2KCeAueZx*n&+syLf=xs**E=;g>^>uhwsdJ=57mDp72pj$(QvWH zHb0g(6hd&dgoEmq>*5wss#W`01#wi)ms*vaW2rTqt_(v)u=k?%#zciqLiBWQ zD8ZldpHv7;_nI3yaO&Lov`4%}-XC>1Z9F_B5|?ya9EAI|tZuqsepgWNpo#)~K#QNv zUm=cxYL$Mx8!lboO-;Gr^<4s!sCZJKce)f`tY-@|OU5LS)<|#?sm)K(&51J|US2`q zjt%1;E1p`|?}@Yco@5+Mti7)_XC2z-wn*DC+0ss>;8W(1$v~UzHu#NfR%$0(tyedE zLFHV^oImNQSGyDa=TRW3DxP-1c&!z)X=eP{dvRFRbM8sCdOj7mCn@e=*pkz%G{nI% zpkd*yn8;XUW&w@@Gl?@ePr^@@?U`L*s1Zu-Kj#V;dKKEGc|Nj|Yz77z@5&s`<6dgC z;62vBG>)pue#MT=elAbwSnC*tvTi1jrF0^)0UcB#SY?LDSQ__^u2*znP4OJ;ElA1*?jeeywD1Hs^fS#+G7aB|gy07V zfONFr*Q>;hiUP79Y8L{sHIi-e!WiA1gT2hm>@jd0C$z9K-errvF(SnOBmcL^)2bVX zB zRQB-O#K(KU=}qm|>**L6@xl79;tPiSO;2WZJsGP*!Cr{K6@ZK?zBqTSD0NuyNC=%k zzr&Bne*BU!`v=Me%<^1#^sm3SNT4Id9U0AD%$cyorL=$A^&%)Ci#%B8R8M3b*G>kp z3EzK>F04jFQT&8^=Ig*%UYY8r+5@2MxCY9T&e?2*OMte?2m*4(RQFtoy#62VaaZuBG)h9@P@rNz^N=9$8B34{|xQ~>!Mfo3)2=vp_i(l;T*bWhd1U?VO z;@D1kHk;f}zF}@5lw?sc=dn4`hh)`q;ezr_3U=$Va^q4$RxBL9Am7C_xP^mQq0@f zJdH?CWxe-}zP0Tf+$4)oqmC-ocNn%Xd{T#0s=@;%TJpQt*5#zEe27Us;Bx=?bihB- z=w{3}w>jD&*n6vDv~~Q7B%WzwNXt4h+wK?jyB|_5crOPbuh1?Fb;wXgNb6G?l>j%) zF;M>Q;O|`V;AvlAqeCGoeii;}&AIws_f78AxT>hXz{=1RZ5j`(aN^g|tO{(!^AN2o z?X#JLJzJ4Ymo9maT)4D6XPnrZlG35*U7OM2>Pzjb2N2HYYXsCuz3maZFfE6E5hAVmifT^hQ%Jz>Y2}ap9L$_)!CJvMCRD{=B zGLwN?tmt2yI1RMFhtn+X1O8(Es1}Vvd{$jqC5e}d16}U1Uedd}c@??Ce-X>N3r^<| zc&RJdPhpi3U*GFcNgCYm$y^ zgQVgPsprzR>@2)c1zb^rTf#EuO?W1Rzm_&0wO;Y@Y2W>^zBCtZ=keq*%~lfLE ze{8q8;AjdR5V|7GT)*xr2;HPh?jJIeb-gq2`*@;-U{SzV+&HcSsoDyg2P8K;Q6UPD zx6Sy-f)`jb7O-RFm$Fp7fX5VM*b0o`c?fb!isL{~TaNYBibcj=^CQx{08I95ym2Eo zg5556DFb(1M;bNtIPqSnA?4{QV)fI@R?%W7nBj#-!nbdEctnYJdwkO``258RWfe@j zRV?D9h@)EY+cW(+wkJW;>#ePvZ|&Z&uZ-7%&7qFEVHwc6{tg&Mn_DXuc`g2^p{B7z z&*Jfi!g@|`vTw8NI??FA_#8Vl=nl{e&1#&^4>dKlUL0}xBYLB6HX@aEr;6@m~RZiM&nMH#;tf>|trY&_(Wn=F98!A6$8`1bHb*YVABvKmZ6JD{LgXkbP z-WPY5-AqK@eWy@N+u@+R8LI1el5^lj=VYbOJ_fO*G7!!#G_f%6uTr4+o~NtlNgd#* ze^HrOJUE@Q0j92_R_ne!lQMh`V1zn7>c|;X_y@(+*QjPkLIkm^0P1?fRDrR~dibZq zc`731;cv{X8MfyIZ5BxpVb(uFsIdHzec$bIw|1(xxFy#Pc^VZv5d!$;HE49U4}p1= zHsWOO6RV}R1p3`h^|L+-iRw46~~ZET!abl zEwu7?uW%v5KY1^U?{>O95EP_i3*$e&bGrz8!kn|PjwRb#U4hDoo{yNp3 zE50DLt)>sibl&{CI5K_FYZiYc-x26!>A$`1JaWt6)6&nKC(;|A%?IJUJU1QQXiBCg zm54+ZDvKm?73bC&OC&ZVp%s7OIY|ONR@z#y(TDUn37|0gyp7{eI0BAM_C`wEN&Us0 zuQio6j~W(eHF2Ue5Pj*(>x}3%u3OZ0gx<_QnW6V!UzH|k#P+Pm`MVJ;crP?Xx1vOk z8LKH@l9X1w&*t;DB!jfpUy>vinyVxq$%dTGXO-y)=E6tYyW#WDK5p6ZjTxlNL$t7Y zccQrCLgJs!f|K`dU*PDax?A+FsiMwrm0;jmkX7z@{o^^zD+r402%}FpaTBhFG`x$JvXa{jgwp^o9!%;u< z)0c&_;-gb`SL^KoBptx&loci1C|F*?2ToU-$?8wIW$e@Vk`fwtJ=K`7r5&Tut98fy zqwJdPB!A7XJ&y)uMO?WD*uK1qGyRjwnDCBHnV&x&G0{E;Cf+#%4y?ty{Y@pcxc#6q z1)24tIP=+wNo)&9W^bik@2~EHHCnZ~*aY9cK@f8=LZy9~bQYdYY@yM3XDY++ryCFB z#0rilJrs$qaWcs8&@_$*-$Jxd``M%8hsA}J)?Mpnf`SSIa>tv*mhSZ3x%5T2;T-@T zL&*Kw>|p6RttTSW&u_l7FZkfU5NNy)!&I-k#W1&1+P97WefGsa&c7&iJ?l-ycHeaF zSK8)>2^wj0HWX4=U_CP8ojTg+*mYx$cyNlNG5T8OvBJe4KA@5#eN`wN|G9>UJ7mW~BM}mEO@tPDQ2w zT>64oJY3dyu%$%0%65)06YvNxx2?}DL$?Jo0k^)YUD^1x^2I-d=e`f3uv!L=tq&RpF^-)I7q3c7CQ zG*g3r?r${m%+1+l@^JR@OF8RyK!cKo1zpx?YY5x2KSFOp!N1$uxRLqfNPXf(=sj{4 zCsGY(#q#(yN$Xr6*5~4LrRx7-|7fPmCtTQfW;Tph?0&4sy&KdLoC_mh%S!0wmqon4{C#ze}LrgU~IX7k+>?yr@w+Bm&q#RcGkL(Ey$LH-+QnYtz z=dXG)qE)r7V(-W6fBh1BGfevDE!hBdUIA9}P{b}z2LS6rb(`8ZvC#gMT5fq9wQ-TD z25kS&)JIjxs*bIDjk{N)fSb!>Co>=97XydA?-pzfc5Xtwa&)*X#VG->p5SFS-tJ1- zzt$M9T#Og&tQW(7Mw3Z;EH@P--O@7_*A{zbQN~XO);#X`ATUjQFl?5qQUg|juFd=N zpn$gaOT75AsC)j=z1<*PI_t1Y%6~(|JJk*z0l>9J+4jIySB$=unZ!{L^pqmg}}8!LwkW>fNB3$kiCh_{Wj8jIx~X zZ+TgK7LwsJiTjH7eegEVW6uKT`w`{@dhOrbJ&rH$o|r2P6W~}+_B8AOS|#eqqqp#G zbp4WQwm<#50U;jD?7}*FMY!2qqeaFm>j;zF!qxJ-UndyG6z@V2P2^j8i7@>jxaccp zwMcWPvw!#?ZUQOlaJT2p1$Swhzwe}hrFLHgw^{?Mt#V596#e8<_BkyrguksZ2h+xv z_F;!l(z*KlBjVHK-&Rpoq<}rci%_pH7_l{=vK6N~$l?T|RXfl6g0UYxn);8#K;wm2 z(yvUx+OY{?#_mA3l-o%&c_DWrFO(+zkCS^h`9?QMhruvEFOj~G&(yA=(J80ifiI+T#{+DzxMv=y9a&jk z+-zRI_~rNg|4973H&&`&>pP#;r#2oKd0!P4S*w-N#}xg0bpF?IwCpG`SWqpA2(GIQ z*CYH6R(oTa!4s?eoL*P)DY*wquEt>j-!eI-#Ryv|+k?M3`!#f}dinWg~ z<~h}2c&^I2W_-$pW9 zEF@cxD!gHPQ0tX+B^AO{dR{^E@Gjvt}Oz;ipO~ubbKuy z?9%u{o&CPEE515=gqsC05Fs_pOniL@UOhoPelP!GES8{7s8*O>J#^(|Qj6Qmi!aws z2Vi<2N-kbfrV38WnXljqj@a084^D)9$Bo)3EQFMvSS+O0&{}xEKS&v7{H&Y(NY%`< z)>v=a6;Zr!M?Lx##bw+ufBo};V`AXUNXoh;w1?qwT}&^FQN|mj+8DP6;?tNC_nw(q ze0lYGW1o`WZs~mBThBq=H}x6)Up`q;&LHQh!nBc%d%T4=VdpAA+_CG|pzfJSm$z>H zqY`J&E)JiJ#wh3(e)>^kyej?dl`Jo8j1s%-*0YdT(?9IR&i%^iS~n0iz`Cnl=?er{ zw|wg?^b+_jE(73prLwh}_l92gnGPJR0^RJl5ue%qA5CW&*W~+#{V5Q zDpDdKC>>J~knSF%yFow^m~=DgF6nNNkQgPskpsql&;9>A&-3DbwRgMk>pHLNJdfjh z06eszW^M98mhWjg-#I@bF4gvRkIoypOXB=3JuEm1))qf+y7f;rBSF|=Z#P{Nmj2$< z=?~U;qXA!k`er}9IP>Y7*8{o1X7JCD*QbLz!g-d7AEfzL6IcUeIgeWEO}r+qBl_UX z5xue+CV39c5j#PhH`SC8|NQ2MWi7W>q5?Qgt)%lmrThfDdhEIU0nfEZVQo+yhYnA7 z4aVEI$H}xkUvygB+Qnj#>jU3FsxMmo`){4?Y`A7opTGB;+0oRlA2Q_z zowB-WeiB`VEsLqOS|2mqOCDI(WU75)?j1hcj{!t_#w~3E>cO){1uO+0p2-Fo*;L`P#a5;&`L2hUjxpLl3-Y``tM+ zecPk-j~b6S%*RwAsd_CptPJgDO9;`gi7aU=#P`yc=;k6iY|<~Xc_($RRIrr~wpi-D zKSQ)qPc9>C8PQ|S*R)wxwCxNE>u#Nj`%^9B;n~~|%?oZ*d{Tqa!8sk_Z`=UDFir*C zll^!~ao#HE*x?z*8XLiqc&oY(xG`tO=A>h|t7@Vg$~mcP?n7jDaiwWxWrn+HBlDp| zpnAp##XsAP0}>kF4?t0=iE ze_;@!Ta8j?;=I{k2Jf0(WJ$zrLL5V#Z2TJD`U`}eG6L1-x-?U^2|ar?!z8vi8v331 zvD&|l>*?1UT06Y~^g!GTAR!M#T+_631K&I4{NZ2tBi#Ezpi~aRhYz$V)(}zlKiwDm zyYs2fkxP63!jn|qVH57(7Ht_qtPqiIO}~r6J*;^D7!BEB4{kF$>~A@LLu$ak{{vAO z+p58b*Ue~%ncg*6#*%dxeG-MvUmp76p$9)OFSU=b8YYm`&{@10Pm80 z!0Vcq3Uh??67*9~%c>z29S`9%&^z+V>x3yivdQY(Jw`c3#**CclNpEkU0u5Nq0s@g z={*&^z0Jz`c=A~ZIkm2A?dnx+!CzOHi9*8L4%Xp{UDS0n{&MyyI#5l5_s=hhjsN@F>?u9Il9@$`YeF#RiKg~D3 z1vzM$yZDzWZZjoo^4HrX6_m;|!*~i0U+Z9T2n`O}KJA`BL!t3zdSPgJ@02E9{bo3X zX@k`h8H-c)07S%k@eoS0t9nHnxP~=nm3h|ne4#fvYCZ(UhBR(ZcQjv7y|-&=Hq4Qd zM(pWKa#rf}y!jtI3V>%d#4EDl_$TZ9oekTA+}!RM1Vu(G(^#62VezbIhok;-H>5c4 z2F!6!j4~DhTm94?YPgvH>{;uB#}rB7^0=~7)@<4N?TAAWAURBt3oWj1PT8I+-p|i4 z(!#WUU+X2oZni)_P69)tVfF6Qs^tO`$wYE2aTSyN49mMO_hb$~gAhG)4(Tx!l^!iwPZD8yofpV4WH6!*8Va*UAFKViF%lLjsJpAY zOhBxY`M_tV8pVka#ng#ng*+$hSyPuvJ(d0GJy>gO2 z;OJc;kB_XjbZ7J@a|s(P8WAMb{_BZuz3ycj(z&S?$#3owL)Ml1{FxT__`0)gNhQwi zOU?(Wqp*K~uBR%rKoBkz5|Mg=)RGZ5rTY29obsn=v2Yy;Pi(P#k~s@F<`bc+KQj91r)bz5sjE<&koxf+#gXZZG4!%cwz!xk-Sr>d)jyX`TnHF z(-nacn3rAoo{LJehVmg8(}*;N`~$BJTzB>0d8>g3B^oJS=6p}Hyo z$PH*509WeYzqLTE6cpJpR&a+9$1lEJATqQ#C9VTyr4?-*&i6zq3Ia2;kpNPdmq66R zQ{k#<`Wt8)qh__YcQfwa(pp+ma8f zDuZ*i#Jrs~-(5Yn25*>l|LwihmOeK3P*-lFdik`zUx`jcph|xLRkC+U<-n0<(b-u# zcU`J_5|mKze$FYkImyD@WzSxWT;9x}+>+Ep6E zagf^+p0@i!mhb+4?>A0qJMjIz>hQ6y$~dZ+UbEBowrT&)g=s?8M2L^ z=_?#JJX|qj^zG($R-`V2sG=;%DdKyMQTGDIv3hyVRZq^#BmeC9#;3}owfRZq{NBaR zhAcq!zjV9ps5hd!E9`+0zG{ONrcu}h@%n11clCjL);*i#lLO^P#9PE|up(4I+?1io zUo&GU!&g2sv8Acj11p=Cp{yb$v#P?W>O6B16CEsoRK~4)1>9bvKBv)E03uFG^rPB` zmO{{0?RmmQH%>6e=5%c9V_SoN9>5|KgAVRQwwi$>D|g!3(sx`9PqZO%{~OO+$ybfu z*ureQZnxRLm$$m-yEy1^UV{@5n%REg6+ck*nN%=Te2(_u2NT}0ED z)~uk!xP?u0fWsC`9_JG7d=##`@2L-_4OpwpV2?nZOI<)I@$5y>FbFve@o~1!ZvQXG z$;L>Gg_>2>?O?boruZs}9&Zb}eU5Gxhciznb?KWJz90@Jd0|wwZ>&;KVY;|GKPa97 z+qLt!@6g&S8preAxkJ8}eu4uW@U);nuR3eIkq2DB-Zj ztrPM}7)hxq50W51joE3O!1^uE!O{q+y8e<*RdemPKIfEfL5Bzx5WyLXMm58)g0>7U zYL!w#HIVXdB4}fN_gG)(qpbJR;{mJ1yfj`JPF@1mlxw}E&xRAF!jp}N65bT-i~-&y z>J>3XqXn`f2M>D-S_~_# z7W&q~Q1&CN+=pzk`A0WR?GtWAbt6v#d<82r{%+U!aH@Joiz>?)-`+*HN0t0zr=6~K zP|`&hH&)k$lZqf|xEq_lZ0IH1=>O%2)DXLSz!~>eRPOD4GF$~VrWo75wu7T5?}UpX zx_{X$QuU12;~b`<)HJCD!)tkd7n4ujPE7WS=kvVmQ?pnSNTkJ#*>jRov^NO>3$@8=n1?d z&SvsCbAprSN!4Sr*i=FF&5%K+1MmH*%B9}TK3bWQ;-6#YE-$Fa2icw7Imoj^5Wt+o+nfyo?b_Ls*t9n=UQC(YrKR{84<_%jI*M zHC=o2LxbdSa{dvY#qeF1v6XMk|9q|u`T$K)So=L2@Gq)f2mwr&ksXY6vR-S`?bZj* zlW>xajD8gj;&`WDzjZdKDC%KfNgEysi}w0ASaa7JyKA%HcP&iCSY3i*Cy2Ls51bsR zI-v>Xvi~deyU^VgFj_02(0f{S#`8+*fih}T+vwDu2m0O0+p(PYyJPx?&sm>D`65Qr z&#nh*p0kCMgVfHrT!GMOoIm65Re*R}Xs{wW>tU5{fNetKyWdQU&ouZ~b*)vryxzX> z5q|Z>wJ_ z4PkS4V0nS*9ulgBJovK0)xdB--@cHu(j8#W^vhwuD$MIXL4)+8Q}cOc5dHS*12~(v z9I7KkA|O0~TKtcM1C@EOiN*~}Q%8!?tmmN@$3-$f@SA^1i4qEHSVL=UT_6Wt*q2{Rw+%vilo-64_dMt(#Rlr zpHlCX9$)(agu9bY6snJ1JP znto|#6$uV;3ndTK23$r9UAr0A0X^*s7^@Jp+^Z>Jr~8N2mW0oKTIuU@>NzWY*zy@u zOdWy&6toQ|3LsGqa!9u5klzezNS{lK6`G;b(2G)1oFE83dhba1`Qf_!3zQQJE&xA` z3G1z^i<~;#w9#J_ijm(TieFy4`vO3w_=OZ{Wt#Wzh*z~QQS0YRDF|H90cx>g91XUv z_>1D>)@&iMUQD^DsY#VuSf{<}4v#B{a=}siCvu*`K&Q2>*~YVM;GlHn!{Bny-HLHN zc`5TutB!0)1VA5!IdN}Qe!H>Oj~lZ1X7&Qyd_=l`j$CyjFgM)?-u0OXlNtCd&U}pT z=nkGGk=aU1Z?9~qP_FV#L1yE8LKv{kOn^7`)aMt`i zjcg?%K_lOrr)!adY}tfUcr{CDXDP65#Lky07|HQ!MqIIyJXakbZK7!9vioQL4NLtFw{isjm9wu?w@AohsB{3S&8}DgQyc`FaVA2Adw^AP zk=*}FL!C_$S(J~Jys{;V>gCmo1y!4Uz%|Butoto5fq^3gIa zhYapRKaG4mb zh8g6r0mMJZ-DzNHPeZRxz#FXP0{wvHd>wxJ_Dg zH);c~m}fNnh*f%p9BltUv9Nsut=fM~xUWBHtmGw;ius*209pnF=|#U>HS<=7YwmM) z7MMS|Ug`noaVKxT*GmT$2 zr87VFUhmwrj*Y&t!;|J<5WfRJ0c#~d7PBSMaBn{B`GknOQB22EGXe6%Sm!{BD$INZ zoC_z0jrxhzn(;Q#o3Zv|4$7cU44gc z?qa6FgJi<`%5m~U)xY+?{>IP7$x;_Yx>ap$*L{Q%jm;GUks!3Pr3_tE7KCY3@xT^RNKeUF5IHPa3H3ifpGNp2t+@Id~X zxCPv1AvuR4byNWVGUUL0kbxztoe!(b>G`j6o+ixVfRu0^<<+~t8V(_mmy!Ywfnk%o zF&iaT8j-Eq?nxu3f0vWFLR_x$QYQjqy;&mWIzD%-?X$$hK(IU!5l4rts)A6OR^fl6 z6VHZ42{(Sp&##3w9HgLIjL-`G{o`zQ4M?|QL;R_FjKxqo!wGz6*n`)O|8atXXQJ;s zBECer@i*BeKcAytL)S3o#tJ`viD$#SiL*v&a#)5NF%J#W&+x;dNcKRB1PR7imRC*f zXapb?V}LzTWNn>sJUYm$o0FhN{bmN8LWl7GfinK|$ze>j4_0qJs;)z$W#_v^sI~0R z4)wQmr{NRZYB50<=^!!D0n_Y8WNn9Si}xm0$A&vTCm^@mfoIg#Oh{?mh2ZH)_)#RM zbJNFBw~xiIGjA(2M@^SgzoQ+?)=mEMoGULm`Kge^2SoGv7+gwUQRUDl@D!AJLvC|%f3^$)VNLGEvaPa}sR^Mz%Bz4Tpa|HK+S=?6R1+XbS zi>VEvj*yz#vc$A717-`lA75+07k!knly$e_@DV`yqZ_c0zBYgGeO&{12ZKfXLiWM? zuj(RM!kakVDtkNMZf>eATV&v$2Yf-^--EMaqsp*mhuLFe>We0poN>u0We?8ao(~Av zd{#HguVtNfk8;Ibtx8kzMN-ne$rkjnnNFEXrp%{0o^qKf)jh96mm3|d>P0qos~o00 zVc${nDA}R?wc6*a;6sY+u*^G&(xa{cHQL?d;b2-k&o1PCyZBzfhhOu&+SUD>2k*pv z_;#|tjk#oCYc4#n4`7bGJozoT3(lv_jTJ0F!G( zGd2Wp3{`brJbQUTy^x$s{_PhfW7Tp_0~xLXJB%qp9Ul^7?%klY`@j!?Y^|R3Dfo%s zcd@j8bd=FCGk1)kY_)#@$xobLA^4ehvZslaCs(yQ(akZxDtq1dZaY&OI<0V?U9i^A z`oqH~M-R%92L6WJ9_S<5HdBq-C<@B~m!bg%9PTm7zhO308P--e^;%bkyuQEf{+0cVOeqSp#2QM6L1%ChB@QKs{(W>!Tz@`6g`-^G!0hr-Mb8mCZ zdv(duWW|$9@>LA7rJdFLMh_kL8(V+Pbguq0c5AEqSvA$)L)Oam371}%*QS$56mj{`pT)GX+Vlc)o`fHeVAd5N@*8LmbGeRb z6Yc5BBYO7Vs#K4nKomjK$=(VW^Fb7J(RGF5A(X~0U2Jh>QmLl;alVzV|vuDz^fw#L-icb~ND+1mHpx-3?iMcSpO@oWr;3aMg%PlY_ zroVqFdx%@99aNgerM!4Bz`uDoe70{UZO_UlFlhTG^Bn}RcUV$kInxi_Fm7F!V8+p8 ztnttsr$oe3&Bc#;oz^>4db+YS0&5A;ic;8=b$`d3?!~6mx+h%jNoJHE-+GFAFp-Zd zLH}I>BPT^{@A~*3WY@J*&p4&A(DK8fA0NK}!#w#Xo`dl@hOmmhXG8(_AhqLht&p47 zu+MXN5hEXC?TeW}Xtz^v0myVPXeMQb5;vFn@9mF^WZ%%wTRgCh8wvb$wlJ338i_S| z-7fl~@{z7-O=-tVJ@vkWONoCEcYqm8Hfm_2yBQhnq+~ng6ZMFb$dLW1oI$F0 z(S;*o{j$d|j_gGV*~qBsT_or9GqFgCtTc(S1j>nKLHok0qbf!8TY9-=zgbbB-Klk#B3Zo8%E*z4BxQ{(`1^^1%Tk?RQP|ly zIZk#0HF5+Mo(?f&^>o@Fbgufhr7`j(}m$IX;x;n=YcP0t9`1#f+4;ROk8{BzL9B9xkP>=OT zm!VX9Rb#rY0YdbMqH&&}3}Ld*{l6gkbHpJZIVb6w|S zut_*9?h%F+TJ8;)2Eud$BE1B=Dh}~x3?AX#;?k+8v73;Xl@F!#@c2_C@O7Nl^N%(R{OBpi-52O9_F`F6*Baqiff5?e61Rm5+7E}W}T;=0?KX zqI;FTo!h%}&o}erU{0t4?&tRe>~#Ih+aVM*I-SA)asLzFknRFC-wR`E#TQtEHSOqj z2{gQ+(%Y5UXrs3=1a?IQ`*#5SnKr9;ZL6pAGGU`-pE;@Y z;)}JAOkln{0S$(*15E^~eo3G+%eX#R^h1a5UXIHnQr7i$eJif@DCwnm(W%ysiVC>dK zeiXyUsS3Qsy3&n5JCxeZWAdxiou0g{QU+rNijHEfB`%;L9bZ~Tt=B0EkbztdD#v=$ zD|EAL6xH3VKa=s=(5Ee8PYy_sBjXG2Hg$KEZ~0kAuS; z3!gocn-B9=x+t1m-4MDh{7&(=J*C2ylwi4eB>l6gpe=|f3ZJ?V(bG)Yck^9~ z%#5lWXxS$a|7({*|6K{&pwM;D?%8)DX=u$n&f-d7AymS?kQoEuVgQv^QflRCb8{O; zUX(3B%c;h!r&IOuqmR&uEfqIt$HUcbrw98PqhA$CY8&V30&4lbhn!%fhnZP%rKO4= zns(}7QNYH{0JOpaRQ)sA@QA_)2K-{2r1%yv&HND@wg! z0Imajista{)`3!Z2OkQK?B5inJjzpXef8PHZGy`9_WU;U7*1rD;m#*nF0WH;^Xr8T z9V73^cT4@AHxFErhhB`o#+z=oVpA1n3$rIR=_HdGH3|lV+v>q@W$w#n+}hrTwF~So z68HRlXqP1{^VsH7ouNe}apL1EORo(MS1|Jdnn^C8wz zaB7?*0F!`otQrq`6)HQfa<{yMxI-3L1O4?o9@NEw0YgUutE{h#60xS}OR#;*Tp)sor9*DyP>ZPH$i!TLE{PM^ZK_8fFt4qcU>}Zp9W4)2JGNp8c2@+K-*2t;cxO^ zibKy68Xr7owaCDIxQ#u+39V}{#%RvUf26PV^~|GPRCaf{i76p9EU-s=S%A)%kt*0r z40OG}8?xwjfM8(Mo(Epaxn$VJmleA{BN%e!_2EsOo{H!D7lEp6zV56AI$9!1qy-Yk z;8!@K+u{J51nd*VpKux&$1iBae;^7Eq8s^iFVXOs9a8-e4E*kY37ZkI$IF1WBD0sSg?kXJY8%E^~tU3h`Tuu7@yvWbsl0k6Pbq zYT$>JKz4ym2=L}_5!?My>&UV#pOtP?H zH!_EJsR`Z4JNxZC=-KgwRudGI<5JJVUqxDlo->hN*YI*tO$e$1le|TGBm{$L1!3H1 zb13*E&*?w?)N^@#7u-03>d^1CZ=B61Nie|(N$9K{f;g!^fjX=-5+A@@sy1nt{? zbtV=S+NENZFm7hGbA3qyt)ga<=gn`Gdj9Z}5X{g31^|ewHR8b z?t#E^76p0mO%EqKc=hT&yJnn6W+rrd3IG@3wTv}@UNh9;WUe;eBlP3}75Ie0_Cf?J z5d)liB1CWs&uIE@tb3NTi}1W&S$6%9wI9O7I6CCTsq$7rkAeU}2?QhLn7XfR$gJvi zF>KqP^k7ke=#{ezP2AYu2lpG+&F13PgzOACP;M87R5DKO@EG&%T&#f-8fS8td+)`Z z!B)b|MLC_xpGrG+(HyK;FBFj73kB7RN@|@B^Q{H9e?#g|!U%G|z@Ic>^fSpcd^_5o z!}Xm^Jxd<~w@?Kt^`wJC#CTH|S<=a!!?ayf#!#43sgYfn$5MFm96D^6^-9+htYp&X z$UmaJB7{@H5J#7Lj33C!5K2xLZn?@RmQwh@qdZ{>mBp=hO~^4@vGEpPFE8%3r(xzJ z(tC`>xPO6d1D!%I#^+bsEt|lLixzpv^k>P;a%D&-bh+(awOtW;qf%{|Y4QBWiK#YV z=FT(val&T1JSR>k*k`xQsl|o=K=%J8?ds*tUIzGn#~%|~EE~LPe|UPJQfB|h;}%7k z>GkeyZlyx#6mRH~dVy&?qE%OJrx+)2_e*e%@-UCqiwZzCtJ+!{?I0iY?Bp)M?vo8M zvaxgXNC5)Fx#GVr5=h@ItEG(w_43^(rRcAt3j}P-#GZ7NR|R_3&UCbAl|>rp&2)-w zGj!W?w%y2Wj<|ex9o(Bc7x$VgoRorx#^k;w$SnE~RxBI{ZPq#{%D*yn&}WNtqqa+0 zwRvabyZNT!X+zqY`@l`L$b1`-eXL)Zzz=!yRQ?g^@dDL*IVFo~isLe`m#8l8_TRccL>_Di|wL{+hY`ims- zsVWf1iO=~3(j2|>dpnW)IO>P<+7di3^xjFNXVFn>>8A?Y8=BY5OVF!ysp{zV}+Px}U* zrcp){!AYdHM^c$;NvW^VJX2Keo$_kJ;k0;&fKrccYs{aqQedzS8QENz!>L?=T=*dG z+hQQGK|z402EcEcT=@g(3u&a_WJr6+w3E)E5%mkjg674)!D^YOot>Kxw_TGb>Dlyi zwHjRd9JwjN?HS}#5WdAqA*XPrGo(fa-OM3T+ZtIpouw+w11XW@$mTPW zUif-cFA&c^hJan0t+j)a;*jzA){p}I{ZS*cpSV@8lEPZ9Gnu^99xt&0dXoF4ZE6a4 zBnIpjKc}U0Y!K;MT>7(2pX8~`)(IGHR++fDPoCswgPfoRUxZTy2>g)RjnpT_(xSA} zTX=pc{@Yju&UZ}{9#8809%=lh+yb9W%2wkE3jE)qci}vfZ=MASwJirc-A~-OioTN1 zd-cYZPd|Z>O36G6J>1JPc8sT9s);NlTH`HtLMff^2^hOpyKv`?N!SS~{l0FhO+=Zz zd@Xgk!3L2)wLn()oXdi?mfqxQb%@;q#o|5wA*gZui`&`F7103&izSbJj}uCu$O0d# zFl2q_;wwOT4nwEOKhQE#%>9~YZN=y*`^7;hFD~UMhsi#>!+1@CDYvH4!s+xSuJ3Qn zuK5q4;ISW8n;utoa=LXj&GnLQcfcN;RmF`5R{x%$_=Qb4wf6jQkv*YO%}-^B(Z~R_ zNR)~B6lpVHCKwJ#c3I`jgFgx}CoNfAy?bhUXN;1VqX2ywSuo)dS(leW{z)K=Z8o03 zUq5n?&$UXt!Yv1L8PT!MK5z0K&_GFmQ`4(8W8>xSfh$~PmCxJa29vS4KriNN7pRt9 zhH_CsF%<<N=cE3@W!rE*n29C}7nRTCjr++VnXXw`f- z>*yfJabw;j-6$*><33b;?Il66s@u%kk=EXH9dNzZ(pUZJBV4c1{<0w0hF2xY!h1Gh zu=PXIS&>ft@3w^T06HI_!}YPlN6F(EyZ)^PLA+(JiE4A^67{~DL z!dkJN9EbtJDL`9OC#k}ihuwC-OLQ9-%Glz7y|?p_vtU~w;~f&7&2z&TRI4rYOSkV2 z^-^S7$2{-Fp!98GJ3m63cpq`?l-<$)ql?y}v-zXK;iLZB8)H2db;F^;{;7wnF-OAU zr*ybH)8ZZ^_M?`<{+JUI z^+Q9gg6ZIyurzz^`E0ryX!WV(Bey@3R(4>qe=P}g{Vp^XWo~$cD)V~p?U&R%$3!@*L#~~DVy-_apM!mVc=TrNEqh^Nvj5HSek@%?BX({*32T|SLzClgc+$AQ>w-PKv9tT^car>l4Tnm-i4iPj)E@U1beFA?cP`u zOuE56xkJVEv^|BcA6(R9T5j=>hgVZaLu}gJ^UY%sr7;CHAK32^nf3%kvRWK}U_U>G z)F2O#7z8RU=(c6;ho8n=%knUFW?m^@mqp{9*i3^rG@muT+r!JeiSc9vZtESS-F9xa z^R&4eBQlGtTH9^>(|9r&hvFBGHM>XokM8$xG3$)4Ec(WuU#0)VkFU}k3xQRVNA-_2 zXIb7fCh;nfB$@J2UrH;s8tjSm0NEN5-H0$aLmfst2KQyr)cTFdkA%9H+^dfhMCddq zwbm9)>+kuYkf~(C8t%S?9q6|rL~rKOF7`Ty?!Z0-QZ;fJcp>47D@2nx7C)4b;_gF_ zSdu)!XNHODI1qB@ra%3fJ*JotjW54UtmHI9lYDb_CLwC^8g+Tt-lR|w>S;j3_^iqF zt`-&BmrWD;k@0^!&u{Bt+{IrQd<&6othCEUO3r(ux2Qc(pU;&~`Cx!U2chQY>sYtL zD0QOdr1*0jdb|XPah|QH)u84as8S_#LFzJcS)59g6=S>g&<)|oA6jFt>hEbkV_Z9m zwfu^Ie??g2m2ey;QkO!DvXM2=xuZmgmlbg1J0beL3%U+*wg*A%&V}mf(Hje`h$XAmO!)Q`5#cG-jjX{8TFHpI+|$j71l) zaI#)jI^JCLVuwrjlFT)W?N8uGce<`mp^Qp$ZyG74+w}2M9l{?YOO|G4pQyZ&83Z?g zNq{5x&upHAZmW%cV;JM_#9y{@iE(OgYE6Xi8J6-*fy6=)OE}_^bm#5_*3_oCdNypOKmEA@neZGTSH*(vL z3UgM!?~-W&Hbr$X<7ooAUV8ixspahNF>^7#&z-~7MT5WJwbYX7zE z-U>_8=~_xLoWx>@%|@ELv1$C%EKbudfA@4{b)Ymc$5or@ZU?8LG=64LD()C5&sR9) zM$uzQ7Ee|p*K#xOa^r}fr1s`rH~U){2$1)6Daw1!+4isICKY8?O|XUj2D;w_;pRu7 zry0LT+GG)4IKA7Si1n%zy{T`UWdorp!Rxc6guYfCU|0Y~rd7K*yoxNuPs|PR{aZFf zb^*JDQGqhq-oHq>N|M_wB$4T4Mt(m!dbqOhDH(gD_&b=zKnC&0$_?NH5p`e*+#Yi; zp`f9sz~zhF7QY3&VD$eoz1P04+)cUZps%I9vbnAZAcy>V6~l{Tn7;_<0*oPH>FaOs z55wvL+#zW1s(u_TxU+v6RS4X03vcynBb1a&A;C&0zTC*%ONlVW($nF#e)=HpLA>x8 zvx26Vmga$L!GNakzIgVB!+pbT@fTyZBh?$65}KI~GN`8J4E{8hom}+K&FdK{TE`F1 zcj$?Ku=}2sUmZPN$t|(hJ1+5I%Cjm={;*%G|D<^*XjH(g*?&FybFHbh^KDmgVM6t0Oys_LhbpO|5dNo$5UQEO~aj%5Di0wZ^2Ab{oEt=I;2DK-F2qe z`5tQgDDZun>Pq!7LQ~90M4R`ceyy8{U9|s;o=OH-e zF9vuPsg1YLYg(YKdxomR#RJ%K$9wly1g`%A8->6Uq~5C!3B@Y?-=F1^8^pg)MrN7{ zCY;&lMn92$2`J)7g!8>CR@6ELiJ8aG2=S>`SvSPrU|ty7jh#cjBFRy3U&jO9U%%ov zz_zj2ms3l>8wx$l21+C@QsjYT^MvGoQzV-r58;W}5W`yZQHURMHTh9hutpSF8){ zRT|gSgyUl!e@9LapT2t4-pzUI4^#r(iCRrsJn46oMeahEm6HS&$?~!fbvfLA97Vw; zp6o#2miUuFhU?Ba-JRQCK)~T?3 zLZLv?D+LDJ&*SMMPnF-lF$%F0P?gMEyUN9|1*>(z?RK%?-AQ9QL}a zkQ+Y+FjIh~924A2J68S4(&?RtSnZzZ5x<}`f@GiLQ4ml?^?&#y&>F}^+DqGZXg7l9 z$-n1)-yzEzfmEy;1%Ajwi!}rzPVF{PksGFfW-D5%>v-VJYcwssWQT`^0e+)kAM>gGu+^#zbY(miF2-64;;` zf3(rOyuTaN!pP*C{l|uHcPDd0RuhRpaPieIE1YOZKVrd61AUIT=!l0sUbo8v_ZZ(7 zj28dPXwWeIscqKL(L&_m54#G!$MvC^f78GHHZ;*ln5DV{7#3CITMba-5qP#4` zw?82`YmUybTKZk%I7T^vd&+9fc>+k%b(HDuTm@lle+PsETAcSCVE_u*!+>V@KhOgh zU%5AdcKGUchLApJh4V)FcYBXXK-F%|D`vCIp@EjW3?8?Mf&5r=^!^VgTHtH54qlr^>UsHRtU~7n&xA}J?E7H1Jouw~*6+6R z!(T0Nlp%L5^Glw{QKCUtHJK?0ttWT4=yaYF{r^Yw`rV#bW(KGWqf%wFet7TFyzTLa z>V{-5rxy>C1K!MEdEw^+Xy2j652H4mn3hu{3QJH9ueX^^GG7U2Kj}DOwH3If?pVw3 zptr<|-q65aVzz3dSSM`a?puyMn{Mt6I<6Z8zy1&Oln+{dIY1t^b{3y9`)1OZ)VSJ#oWla6A!gXU*(mt4xvEzxt9St{)9x zm*}%4Hp*_@CHdrM#UT1+I<`E*2VDtV*Yl8%>;HbXpXxsNXv8AJTSdRV&GHYPK>FHI zNFhN0qZwY{19#+d=!!qEj`u-kW{mblWSTqo|Y z;k+RO8@tdaxR(7>>ZPlmyp{P>tm4^)%0@9c%Ad^YEQAa@U1h<}G2g5+O@ z2=2j6=Y?!*BsZ{Yev)f3dTlY9c5K{|rv75jOJ#7}^bRx`419EfywmMq@1w4dR0?gi zUazqO)I-Tq`<+OD42~7_nZX01lP+mEF;;lY`Yx2nCfG0<-SVAhEueEBwHm4=FN&ft z=;rxES@qK>{y8W;G*I;1@yTe}Yw@*>2`ns^jGmj%&h4~gO+QOAYNJiX;pOr{__{Dp z)GyW^t!KnV_d3klnOAnx;Ph>1d@3)(Zhh2tn*>^$HgBLS&gJ*%6*3tvgcF{Iky_{C zw0@l`4p&6EfA53LESo&F{N$TBETXh)-hU(dm+QJHzE#e5gk0IK*!Zp@TKy+g5Pm2P z66P}gp!DT4$DQdlo0k%qn+dLpR$Z*+Cd}LAJlW}77DYfG{I2EO;Gbx1<6t&*)Rimo zsIkgx_cMim+RHX#NGOSk#-}L|9jd7WC*Z(r%9?0bY^L!pgO;M0#dEvK?#e^@BEQ&2 zp-h#LWY5Bjw`pYDfg%kTzujy?lE=3lyZF#&WjBm-cCuupL-*_jdcGHO>Z66^!tZ>gP^D& zNH_B?>KhsbL_f4 z?|7Z(xo%S9kb6st>*6XgU++J0jf4fAY|Eu-9J{J+fMK|Z9s!<{>;_w+zw{MueW1S% z+EX_&x}=6nY8UhBj4?fvSI6_e&K5&5*8AJ3rlnj*+viOy!!3D|Uj1g$NInMo z&>Qw+9<@jR!_iBXgX1W8F|F*kBjjM&GA|T&Q6$DFuq)6n+d>VDd*8q={!nl$)_AK`4+Ej4F8|C_QFzh#PDq4~3M zx#c^$3dvZB(nQj}{CE$ejLARLF>=(kPkAUlf3hJE+eyIU_kGm2c8wA1M)|`6tjbGg z9r3B2c6cY_%i`cx&JSj37DW@ae2#aRi-3*qmJGVvKs4Fjx9ox|Xo#%KbTxK}kQ0XI`rFt$g43`olitYD zpK3~qODa*6KiJ-dg@`s6pQ}0=;3fB5OOLTMiPT3`zE|0*0}jT9uQD;9nlb!{^0{QX z+vsU}@kBf0){RB~j(UE#j$UXJlKQ$3RfBxSEyH9ln&iGs=wn18eKH9KKRoZ{=l z4>yb9d#Qj<8K8s9vX)Lvj|F9A-6UGN%u*w) z$1IXuCqAUf&_VpRZ=!3}M+x80@=}&9o$aOqxk@F7t>ofxolPkZGYDpRT2-M^>YMf{ zr_()g6LTE1+jGfB6d>Gb}@?M~}O!Y|wXO|_qBH0}CPJ5vM7c=IQk?@NZY zvkPg8WbT4{CBS`s3jV&G-Cnsz0z8@-q1YQaQTeU=^``lMmVek}&e^yTRMNFiMJLv%=#TG+DrPI_lFs3z}&bN?LKy zYy}CK@@lM`VgE#$V8=-(`pf-CpKKYN0fUWqsqa6@zkjEWFx;R@fNI7|`JHULR&(tS zdpR?!{1N-ObN<+0!hc-CHYY<$)BQu3!QPr@+!|NH1$YtnwwueL1pUdHOmE zDYW)--k)Zrm^E0m};F1m~TxD^1U$Kp;fn#G?L5YYFi4>Vn^7)Oa%dBMilE z*9F6eY9NWT?;Q?w9WA&K>5FlTG|6SBnXa~w-_U6a=lvi{LG1CdaQ1%;wL;ZAlp>b8 zKU|_8FYpo zuejK}i`X;O(AYjP_&yhH6z77E7Dw3Jgjrx5PI(o}c){Sj1+C;bQMLP*afDXwTrg_( zr+!bLzbpl=4KASjfW*DQv(bfL_^bX4yNj9<_}h3a?RXQ`&c6s{o*MhU@poxkyYAat zGtsde9c)GOY2fpdNAq?$E0FswuVT?4sb@K6M-#VSgu2#5)*qd))E|EYeZEpYSdwu3()a7&EWlY!x}7p^g76VC;XmfHEIyfEu1n`7=Uea-Htq9Y)=XJ3T; z^r>gLp{|E*AkFYwQA17wfbN9h8T)ZRwhPU#(|Qi^+X_8l-onj2@J%cRdkg2OFoMCx zU&^I^+yFW7vSC=+^^f(Me>fem1?3)J!yuti?seeL8RHj+(%l*gSx_a)b2^f$T zn_E%dn+-oa#M_CW>K87xQHuVPc_y5+?2VC)JWem&e_JJt)7%->s6|>4+m6^t@_F2- z1D-)SA2Ou?IoR;5li+H5!*;0d@S6^wd>!p`F*e1IhHl%jmNclC{<%4(*Kovo_nxMK zy4aZAdW57Ncu|yWJ1}ZMJ3jicck^7OZYP~c0&>pnNxVDM30xb2rF*(aoB8TB1goy! z*y`;|*|y`Lnzmw=f;!>k9$ExgD%Gf!r&NWdGKBD*wFA#H9v4?FbPc2(d<=@Gj56FQ zERv6T+q8qNn6(3zl(BtPEl=SOk36IkhBHaEA!X{?R)K<)W^CdmlM(dK@E4^Q{%Q`G zm$fsw%MOm*`*zD*E-P8Ytt8r(<(brcK-)IMqyGEh*&66>rjs-&N!zLeZ67Qp)IT5{65p%A{tWzJInrGA4U+WUNde0b6=+@=7mVDJ>>` z`8t1EBwe(NN^x-*SEy0prPLFB25Y*yV(3T2X&AV01^sSHIn1*!IJlJBI*`2OwQe-g zpRFc8tRddBy3(U4moDElOY3mED7)l$V2Kd+5&N27Pmj6AJm8^N3Bo**Qi=<4xb{{1 zb;9RWx-AyDKJ+DyFS$h@vBxLY_iqj@cAR3SG8aX!LlE#@80ldq3DgQ(rZu_Y$z-~d zQ}Q12$BNQCY7cK}MShxQu0jT;N+v4}QV2MINFXlr;ac#3CBJ_74%J3PbdezOx|4Jc znK&j_`AptW??k`3wGrF>d2|Vj5(X}LZ#DdsVbk1RHPGc&z9H*aQLOVVW~}z1sR)~L zFJ|i!)B#%iKfz1`2>mJ0A1YCPNa(X#*vptobM7Bc=h@E&GvqV(4K4$gOtB1H4Z#Vx z9Lj|Xf{m9Rh;l2Yc2FNv{c3sgE!aY}6F0_ez7s&3gk^(jNjgYK(DLDc>O&cZ6jc_| zoYRywg^Symo9ajzOGjk7ZpTu8uR55oC*zTN>50#EQ&i<31Al=i!?~}krh-~%>-W+Y zz+8>}ToTm_*KpXUBHoAGxWU&u0F9TR+vbNhDFD_f+;5Io2u67L%xbe~B#G+jB9otn zzrE{Qsh%s$iGQho_j+yl?9K7EOdaw&YgNNU4kT5(tt)JfIcWD{Y~`cj*qRh#AN%h| zan^KikOW!K(20J#Jc0|ObxVpBT233{8V9+>I!1kUw2PlE59}1?8;kg}LU|DL(K2sx z3WNVkuK0HT&Xv4bm1ciW8fV<`f%qXkz($>q8fwf$jf!=*dmIu(x8i6$MDK<^nW;n9#|*@D|cv}JLc0s>~G>34tvfcfL5@ z5llUz-NgL9O;()I%`$wwhWaG40s=Cg#xVX}qpHM8*+m}8lXj^PLfGoN1+}Jl6h8;I zKdp^<0pT)@=+EH)eRx-2q7NOvwHA3p`ZF6J#*8O6xYeej-$tpj=e8RMOv5Jeya@=B z@7`#G2k&CFZQTtMW@aj5+RhV?CI*?mBI!#)Xn=mN+k+pn0-VoYV3na?pM-7Ks#{WW zbAICIqBnKW#oLW-d;02bz7_jIRL0<)FK^XY5kL#br8 z{!;%hGz%)d&|ytv8m;Ic7NI+BO;X8NAWKYZD6Qbx>(_7+j5Jk3VO{l!QC6E*$1>!T zp0${X8NPa<&+7d{?OVCLElD^;I414P6EcA1Ln?k$fmwaN-IoGFeR=b4>*Tj$&)Wnn zW=qi0jaVn-q=^b^{@#4}vbF-w+a2Y)81we-HVr$umi%J%HDADF%(23~F^aIS9WaR@ zhKM{>4zFF-wktDneqQPZKIg``e>viI1lSMar`(5V;XtJ)gXe;fU(O}(zxr|{u1$S0 zHWTY9rMu{3aGx`8VcXg?Nhcx-eqxmQB{}l&V z;v`g#Cx!= z+C#4JKb#PM=6O?D#HCy6D4kzpSlrf_k_(5`d)YVtaJVo}T1EQS^--+bp!HCHq1N-O zq71p$+^qO~^fphBH$g=PM3P9$$$sp74fb=L0>c;+&V=hRjW*wWl5(WM`F*6&nI-tf z71u(~_q*kYMQ$miWs5q@xt#^lv2tX(?b&3fne8P*nGA1_R(ajpYWrey51T+7WdkyM z=y^yCaKg?)jj9mvC~okXvp#d3!|H;HuEQ#4p_13f#wT!%%T@AT40GHKhAixL%@ms_ zm8(3^|I-IzK;__=o8`#aard?sK7^#_&N~XNZhiN&I#E@{@QrZ?2S97nEHcP)a{YLG z8=F5iHMiuHLEjul$=`}FijNnvmv64^$e=(Tg&z%9SxgZ}j<|jJ;%JY4{Lmsp6VNS; z)@EWs*k+bE`Z~82KjaA52$qR#;MfGmO7s~K;4t~XJRc(KGHKC9^VqcTeiKJWCMqP> zMQqm@;~7!VC)uvw(MRDP8*e#LctV1;e8;XP+Mg(HtUq^%t!OGV(GLL?vj7rb| zwJ?3s?z~IESo;g3_P1_2CC91ItcYGTy9!v?4lFHukv$usxYylBlK6IkxvGMDEJ#PE zYCg22gjat8ee+P^p+$-r_ZOXo^7!o5A}v&|r*Z2=0+rvEDp7wEiH-DNUuws$#gPr# zSeZgMlHMHG69oC(kO2vSUOaLlBYoHk7d%UOV0tLWet*z)(nAK6V^g7^Jfm&nK|;IO z(O6H^06Cyx|3#FH&`Mfs3jP|+DuvfwvoI3dFFpA%r)26L@N^U$nv$=aT$&`Deb;dR z0(%d<13EG)sMkKkwo@I}E1S%kpLmpm^w__KleYGKZ#Ve-gj|~IN`2$(*gFeNjtoWf z0heHgV0Xixsmtl6Mt@ZQi}m3kvOdu>*ujx7yy!=?Y&s`ze*N6vXE4Hhl`i<9zDH$` z`N?+UiZfuf^9lUD6c{OLj5_(!&WZh*gS@|Q+!vBAko^iclj=VUt zFyGExypkgQl!MBA*HqtNyg2grN9|d(++3x zL@!jB)N&fc)D~R{6%P{(;@vY~J9VQWEbmLuy{FsAXxFnZ14l}>mINSF?j^;68+q8I zo!ynm;#is22RM=>&A=L?D{0PsG~FOg1m}I}zs-HpwCrQAvnct)Bzn|QJ-@E5F%fw!>Umw^*Yx(-O2L6;r2aar z#rwwLCXokEB-Kj>u?-kMGWTpAe*sU=RiYq`vn*yr>U+k6c*4~}Z+dp!hXE!E^`T`@ z2_)U&lJVqOs;EI07x`=w$`lO>L?v%dXCHEGfq;pGab%u&QTwNDZYc)EJ~@sE&>XzO zYY4s;c?AeHx%+bcg0Gj3UXG0=@IXu&!W_ss^8& zF9yPgrf5#`xe?0S_lb<8;Ki~s<|l#!{u`OPhSu=PsgvN6w8q2YLH4yY+ZpHAj|b|) zVpj2ZP_v@(8dEDY6N3T=hwcV+SK@y8@go=J@-F*~hmH7`@V30R^y}NpCY=5^%h*vAA#owHG)eS&j)Qxap2TZbo zd}c3?eL38k!_Cbj(M!8_3a+S~IXF5e;2)#=U3ZMq=!*DerR`MX@P=YFE;xmXobK1z~6DpJfH;-t1(`a;eBK zjfM)EQew57>C9boK6OzF#1_ipR;QY7GVG{a%3={FI=L?!=~J1Fg%iFhn^5Jg6RVyv zq>5%;NWd%~(LbCsfR^LVr!d+%F74?^;@|t)76aTjEG^COnF__za*p&Eu10k3U#=pA zQo9sz>v34#>*Wt!V$x(~(FO#1N-Ij`1STLeZ9$3Cdk@sXS z-@Q^FA#C~bIw4>QZ`UQ47&L(P++4VP;c_x}R6qVQM@D~A63n9P5{ zLOL8g6<2X5+&iTHi!vQ=;W|($sI-#@wt`1{B~z!Qxu6 z9NX6Io;%N9_k5AH%uy2maL8aToL1xSJMTyjISYg9bh90~idQdO>T(-3>^M4g2&#@w z%wfT;c%I;*!#k&V`Y1x(RX5wv)80MC9=?KS1LaLtI;p2tti#N4lXa%UrD0jW7zf^} zNXsO&CnEZwgAE)^ttl79;44M~QwaMlTlKGE>`RS@8SB^f!_W!@y}SNfJ|6qrb#*n^ zeK9Xy=>0t{6HA!+=n6M&E{+7O!0&$U(JvqEe#c8U#z?Mfda*{FKGq}f~%-LFTw0P-o z_SjQB)@*mQn->7V6cQyNNzfk7qrUsCw2B8C0d;v(+?F2X0d^!?g~URm-ZIu7Ts$)Z z4|~yER%pj=C1n4`;)W#Jrst4)@Q1HKU6cHM6hqyC(!n-^`G-{YE_I>~8c~6xOQ|&) zZWHJeWOTshc|eUwz+d(M2Oy*5wm)L2Wc6zso4-(MB-bs<7w&!JXrgQQ+LH9bN+ zWla*k@DC?j()=IJH1rB1E`#qk2xTqkU>-0va{GrhDT6PpUk|Ek93S92V@tbWl>&_q?#q*s&_y z1Icuo)&vs@$JsQAF&IGarg-|3U*w!fiBcv%GdBvm)O=6!Qpl@wNU25dF1lxyM^|;m zxF?2QVCUm(XNhUATQiqY`2Ba2@gkmSf_nyOVDlRe1>Lmz=__?@hA;B2PhU6VIrvhK zoM)mjlwM#RV0D(Cmkh3Kor$ZWIB#EGj+Z+gP$%tOuB^Fsoabgy z_LzXmU(}a+cuJ`o$0*5Rd$b6R)ZoL=EvG8 zQT;sQ--W*l_GQpk&;DNK2(;C8wlWhPq7#Wq#VnDV!6L4({3Fji_!H#R1IX^yVzhoj zdi$AMjPpAJ7yqM2;R%6N+Dt2TS#7aTakofb7{w%2jrn47?kCzYdW;De5ar%%86;)Y zFl83SyPI8S!^xsUBHni@{ugv?&c2zjL+76g-aK)fH>-gxSvkg~8sEGcdK0xI;{KQ4 zVH*7v5rduZ9N!;};%V2$>m;hvH|||f$7Pikbv!rBP&S*6GDz<%=l1tTW4A|AK7hz$ z%Wf+8!u%5b8}$f{yv=^4Z5ZuF_!KG@8=}Jq(b7kW){&nbY_j{VmoPXLeXGp!-ydg&fxL{{y;i^LZz#Tdeu(LZ7DPiZ8XT|@Kw-2fynJBsn)8Et%?PO? z-|r%CyWQ^iqfw9Pa#18#S^|fJLv74&W<>u_Rzxl;=;S3=cT^>I^G0IcdfhK&_!zV; zwi&I$8&vlFz5bulI7z$%lwl=QyuA+9yA{RPfuWt@*@Dk(^XJv@M{*C-iw+zcKG;sd z{nEmZ+TWr@5U>vY<_QejVXBlek=rP>_-np}nj<2)Fnrn5eQ$vkrJkL;d z-b^+#hOeG}vWk;qRMI+!ks}Rb+Q}f@8il3;&4gqaNgLwc*Bk54gcPY%RFKJMpCdb<(lk4F-pTg2N6`ZEXI0%|j{(^EP~ zlG!Ye=WpvUU74`$q_h?92F?_aRvV>`m#KRq4 zNrEm|-ynJTy-pZ#Fti45jzLL*FxsIT0r#A~08DC~35F85kqJLf)%pgw)|KM(el$V*$M+`orU7a=fB^ay6dit68-sQ zC5$(kFzTcw-TI?acA<>01@#*H&R;5ZSI)Zn6Y?a?h8u)?^+)5o$VPm4>d6sC`5%r& zCKu&cmPhHYhoQa4$G|npPr^pp@}~@Xs*+TB(P3{{S0oLNMc33{XY7Y>ZqL4U?{+tt zYYx0E&d7>1h`E$n)S9bD5cKDb`bbPD$ZH$R4lrhuMC{N^v)$cT5D#$5~83vc`BvsPFza-G303I zxz^n{vchjGF;FOz`q1n88tg#y#X0=7z&VrQWktB>z?IY#P-0GVifG35P*lqc4{tYq zjH`5_mJm*ErpXwdES1l#1Yz)}49)v{M2U*l-yw&ye_q0;=;@lCdJ2g_>&O<-wF?gSu4GVeiN`4BS+K*F-?+yM8}noz^SzlPqd`wa~| zWdDJCtnGv;YAiu)p_T;4vm=8p71lJ4Hf7VwZ1|>C2F%kH&TRbhCDUNrz6n>HF~|B? ztKvh$e>flOgT_*)WVmvVPCWUe$aXH|3bPxdS=E#F38ZC`D@2WrEzYIo#YIU2-KJl+ zDQxit3j+xi?S+e$7I$li@sMeW!n+#fMQUVBMv-nt+WmSJY0=|WkI?gh58LL+gF7?V zUX_cEAUBsrl`?*XgwDJ0vvy+Gj}*UEuHIc{HfjMuPLd$7vM5>CLgGr3% z;KVWwPVZb%2d7;D#r<~3Ymsp*c=YQBZ@_<+KrPYo$ewfEg**17kDI}JiTlGK_=&UK zK1JNg;`wEH3yP6WUmW&lnYV7E@TVsc2A6evZX z{g>KXM8jgq;c``m-Z;PEf|54NJ1SB!Ru$hy&u};Zp;HRsl~TMHTV5^xrG<=FXz+|b zZPjtOixKuxpI)tpSyJ(BOhYB}mRcJcsCg%QsvcGZi)_t%zW*XI!9g>}nqnB- z?@d^CxKzI)|Hj`S%C`Wd4XmQX&-MwT(?QpzTO^$@Y(%1AMnF(i7hL|W4fDY z{F#FjTj2HMi!(OA;CLjMf?_k#L<8% zo4E71jPhX$OC!ihy=w8=Dv$@Cp8%?kotnk+x0Jn;p#B43~g1;TmQp{1@UW9CoW*yrKwIK&5Qn5!(7GEa>6%q)A8=AE!=t)D#t$i znL1iD6@q;j5kyQ^4Blb86cUq@NGB5nVm-OK8eEDs?Fvz~`JA5q(~td-`);6g zx6ElhZ}t}JrGbBeC=4S5MyxZ`foMHW__pSwcaRoAj|Ub#glcjQOsqBCXjrX$Y${W% zKaBpd5MiO>gy;PJAI$rIfL?}hMz02W&_%$O77JwKHFvsW>Nq@-nG{8+DI15(sqa9N-vncyYH%l?OJHwF==G4EqO zG)K9zHLDxt)~hZEKGpspGK=G1zv4p8(r2`(;DjgkX}yU3)ppT=Wl}&*`Pp|VhkJjt zF|v2JzR7L-h0Lsw$|+yj>)M71k5ZQ!+`O=hHoqv=3eeq}&AOe`)i#`&jNtp#U>!iPP$L zFL{(CXk-Mr>259z<>ft@H8J&=b=s|cn=|;sPD_+y@V1ip31|o_FH8G}!{7;6QoiQK zZvP7nr?;kg>(V*!D`k5pU)08#exq%->iHDym%(*xx=1E?5nGq87u4t80mz)DyiK^r zZ-EM+_U{#-Pv+$?Q(Bb0+eJiXi~TvM6mswKU+#<&DerQ1Mv z0@yicN;{uwssAz)KFZF%GhTKwulX1G@HY!t3yw68Ag-l*3sW2UCK=t=|=2g)wA`y z#E2T-KL@)j>rPsFpNW8No^{v8lI<%ZLgMk{(mn>3bOVn|qCp$#>raFND1?WfF}^b) z_`y?PN35XE&7>1-ach=%GSwc56$I?An?Y{2ZT3TVBh{az7O*_mJAW18@F^x^=jRRi z_j$%@$X90&S4;$e77b>hiBO!1%Cj#Fc3^v6@)e@PvHhl`yf>3PsQ3-5kQ!l-J{yUd2=g*{7Lq97%ugPJ(_c->~+TWtwU#!(^kl-z( zMSTR--xx@JRDE0+F3kfcXk`!H7^W3Ip)23_qCUDg~3X!%wh6cXV-2@ z$32pVc@0Xrp$Ze)@zD-HAxH}{Hz?eADvu9o>}PbhR7O1~Ay&?MV<%aU8?P^A>9;wo z@_{=wd}rQ9k(%O{Tpf>AXx;eJugTU%(=O6SLsyJ!kh}#6!wC%EyiGo<)9jM9})*&Nt*8wGywU8x7SFl8<3

|vM4`L%RlxIrX>I!>~a(yOIsN~0erFll9B*QFT$7RY4VHE#xxaaFlk1Wiie#ABW zVXba(g0+IeFC5rH?|Gv0qrRyoj`26r$lOX9DsGO-+}{(ZX8fg@EaO2rXG8Nl(IwkD z)FOqNV@wA#kN}e(keu0@uk)+DetU&mrm&|_^J(EyyG3xBslqd0cbh8i&+Ao7$z}W4 zMMn-#msh{}Uwyp1`G<3a9ll&>WLl!!iR);&Jo6qML~k%;?rJ3r>pF@Q+?vkZ+x4zd zPJ0eNg;}iv(t>ARu{Kaj`KF0JDME=;YfdkX>wZ>wY^KuU=k`5Xyb$^dX_g_5a&!1< z|F^;Q^v|gjKJAJGpw)-L&u?B!_%wY>INF}yi$P6UjCnrawc)tL?D{XOn4@138fy`= zEd;DdLQ@5F7)X?@+f^fb6WYT&T+7|u2u=GNk&{E2Fk#Fe$L>?CW}P`8CW9SF0Jql) zUS||yKetq!^;oU~t}X7E5xe!9!$aEw%0j#0R743E!{N1K@^ruV=F6s+&YtLiXCs+e*liv9P5`Eu|g zAB&CAw+<%G+{f%*?^fb!wa?Z_QEnT2i=i7NVKM|z;c9zsZja@NVV==swpjgoNlEg= zXwAHBJV`&>b~BU$w)}XEV#l)J&#*N%2(;DTD?y>gPEC|!+ZgKJTJ^n~E4UkXVXJMu zA4rboLy~BIeg3x#zratw@m|k?ZfHW{7TPdM(es6%=o+?#w;dDQYPm5U)v&~y3BIOJ zrB8gT_(Z<1Pat)Gtv53G_b-z}CZc2)DTP8OV?LR2*C--y zj@K8veKdku+hXHtC@kaGK{p@KDxAB#vZh>Y(M|OJysrh?$-W8@m6y5j+A*y59|KU> zVSU7E)R7f%y3yRVUbghIMHO$BIYaf`5eARX$!l46hL!%)Kq60CBe7H3MEil)o+45|?h(i`wnoB_NtRFErqxCv8NC3E$ZvLov_E z^ReFgmRW}x0`oAT)B(c2iKV58WMLyp*I!}uyW#IxY?doWJ$1U9T~ae{1WQFh%=7-( zJlPGGPM5$GY;{-tKDn?Wcq>AcY3Xk3>3&mvOT7-;#drF}^aipK*$;~TTK3pMp8vCS zKSP9Vj7$c1wo9$nj#@Tz_^!Gdo+|@O=r;+x6AQ^KYzd*@{|2grS&n#z&^^c`EUa$| z$MCR`otsEc<1~<|3G9iv5|$vIDEezdE@Y9wAJDH9OfR2#yZ3~%%EDT#-q!Ri5ZHGt zV>iQvHQ0&-@(oj5u2+NGIlN%+DuADrAH8__t-4st>9WC zUnl^fdlq)*9qti;dRMD%uKuAt;dREH)40!G`O{ zfwDV2ayfUYv$}|Zo$8Vdfi!Ths|g@vAK@J)bmG_T!jvvWJj#%*{!7nVoDsJ|t+9^p z%eA6-S9}Yw#F82fen^2bBb?{^Gb9)DB6ig;3N%C70v%==^&`%#RXbc1EPt(2!9jds zSU`)t2%_8-+{%?@$<@DS_aK}*wvtQy;cX<7dog+?(2jotig@wh7^F!xA z)zHMe9JaHB4=I1IqMW-;COt-Q)@sYNyXLsf~;v;bEv@eCJa6 zXlAgKdWCTCv}#i#*|W$uV}t<&&UNQ@y=P%JCVOS=Ow(t7>=PZyXojr?^gF$n&jg(2 zGKPdpB+H-v_Smz_MJuBgHzi>N>N&mECp=R{>G@7MFTddQv$a#tqg{$nA@}zriVa@g zUt{I7V!!{xk(zanoS(MDhgnj^ z5N1Ov3(~2+{E}EqaS zklai(2x`6s#66;eObveD-g~lSh{l4c0W|6@NclVCG1p=`J9-3TB+nv`_k5H@T}144vxysMw3iPF_u9A zs2E>QV^1!g%I>#5^IC*2!o5kOIxaH!LAOyzz8?iBn=(frvF8En_e)z)DMgd{q^eV) zhYr#H@4ww*qXF3J;#n*1HY`Gv7lTumWI88I!N*cfA|NY9Yv)W#U_q?uj{P&apjiIl z{6xFmGilu`Kmv5x``T%A-FQ-zcl)mG-J~2clQZ#NF}?7mj4!2M)_v;U>DPa*SYR*n z7L~a@EMEIn2T!Dp>-UB6ud>v}j*Uldv6k)dYItv{Ii7keN*~$Y2a2IQNMajXGM4df zKX-L|ieb#9?Vp2FZB#Wk*n7T^+34NnY|EeeWa=AT8q@6FIWEr?j$%bJ_elVHA4E-% z@9usWN>F9pAXbH<*#G1Q_|}kT#&)p8S}4*@>!*vSyZ&(G0!*(Z9J7oqYe(~Cjyp@{zTP?^&aqJ85vZBc76MF2Dwn;bwoV3!Qvil2#sT{Zft-H z+s3mM$DU_Q>)lpt71e*Z^A%OiBds}estAHEpt&@#U;ctv_(H1#@RNE8_%nZzr*-{5 z1_IiZn148C_m@W&xf?D^&MuFja#g4XB!%)87}Tw;nCq})QbkQQPTDmpa`8<&{r9)G zviS3}nYAza^6yPBqtB4tW>Yd)?)RC5@#>GRI;`{5D2L*)UK+=~G}mah5>%ebCx`fKmpmfXu zrl^=tTjQjMj!Ejd9gA^83tRkBecL|UZ?K$d1XAX{-}imloPL`i~?@*&cK|r+iPtSJGs+}9fEMf#sRPT<>s0b9ECW!q&0Tw@5?ZM z%h2qPL$ckrVyGMir~{f0+Zh-^4YA%)+xn;zWE4B1AfaGM)6c=dxj_9so5D0UHwI&T+QA~q z)&hF7MV8O%VMV81Xt-uK2&eL=bIc@)1y)t;wh2TnQ>0H<-A^(w5fs+>c^`A#TSEFb z06mh@fIeyt>JS$eQwO1YFM$Z#6j}X5d2azFF&l!kOto`9f^n-72$iXr)IIE_L(S)t zr*W#zWEww`7!q^{HXyK!$H@rgpSh^0Eh9Q?)YvaYif#|bj(ta%{K<@6J|uR(drRD8 z<}@zK&Zg?25nHMEG+!(Y7lt-Wx$uLX%^1U<@7Cjd8G&%Vf9x-by{}XQtj-7y)?XfD zB$mxJZW8B4rb2!dUA#OquAuZ02s%%@7QPHUwn1)hiJk}`#Gul1+^mzYB5AVQn!fO| zPLB_jlfgKTZsZO+gpY6NLc5O22@FuSPJF`VpKS!p`aP3*d9~knt%0oZaj;at?6KZX zkM?fj-;F55RjMhVH>L+br*4OI44`tjsd>+en=;yYp2O_GpYV66@$px=vU?uM4vD=# zqq{%rxWX*l*k5t5zrvAVaOFA!EE!%up2OfD?bez8$N(*Bj{eXQIByLcc}KgE%uGY1 zWp-~k=BpJdCGez>EtQDXHu5y7+L`^g#rBg{Cq)~;YR_3>Rg*@5y`zZ~4~Vv&SE`uh z=P9cd{)_%~;bV9WJgA+bJ)a(83;X-`sIVp{mtJ}JkK1|&%5TOAn zcMjMnfH&l~q8rfMj2ypxx8GyUB3FSM3x1T-0UI$HPb(uH%&^^e1SxRU-2Ybj9EOWM zY0jrXnCA-jzK*{F%4<;(c@20dQ%%nGd|!8q?RUxs{+FsY;JV{&dPCZq9cg=+_r5MHeTIeSrGZ_7ij0URAsIyjg+tbS|qTAh}-{9y{%7miiFEv!}TN@s4x z1dkPdZ2xaM-gEXB%XhRk);8qs&M?T-@*#1L@KRj=V-L3F2`GYwlry-4e62f zdZ(}zy4y1>R3*bWZyiFKD%oWrb!mWM!PMpDq_yQxc<+jy<|S^u1}kl?BwiAqULG*X=!Gb_wN7&=j#g+shb>*# z$(%MdvA?py*%B4+_{)*=Hryq4;qnz$SL4auoPHQ$doQKgUm9x`U0y)QPCB$40wGB8 zX6s$`HV)jSn;W6-92yYAiB1R-UR}${Jvpc47l_Ur%39HV<#AcyGt|T!_!T6s$^LPd z^%Xv;z^!Zt#Wc4Y?EL1=cP=q0>&Sxjw_M(<TXI@Ts=tZUFIR)YGpyM-QBv zP3x~V0N2X091_m3X10^6-8+JBbudy~xBri)w+?Iaf5X2)M3hFPQ$j>ax)}x~ADEPM zNrQlNGwBc*AzcE}F;TikH%wX@M#o?yN6p{;eSXjL{J}pvHpVe_-0%Ck&hvboUfJqq z4-tHQ=QfY3a)|*aHk*tQTO9 z9aTE(P%4wA?Eg#-X$zRCdG}(%D8@{s9Gi{Qr9BbPk9uOFp5qr4J$0+$d%pC`bVVFj z%(wL4?e?1-NDC-j_k){;48OP5mVR79XbTFY_~>RandLfUws_dxhc7kr1Ebyy8n+oV zRMQBaSf7eyfB)#naq=)!l-HtiRUW^_N*80m&^Xn9x(q!l|Gf`%Z5V}@+sLR(;}3T6 z`-k9Yx(`}9vdh{&4!R^gTDrrpVpzG<&ZZNzu>uNni+-Wwr~2)hrCcg1?;K69pJa3} z%`Nu$ANnV9fBzO;%64eS1Z@Hp2eBc^NWd6{DDH^)2huw3QaD=XN@#IlxqKBG%$+-V zyV^_i*%#)BHAlV@1EJ#_$<0)icMbmGJ+WAWcDL}>&GE-=w&aP6Nq%Vb*z;L3F_!2b zUTXm`j>Xr>);yNjYJI z<;h##j6V9ZeG(I4ewCoCzgLhJh0tbGWvL%2C~vJ_ioW;bJanC5)kruUV~?oPAFCYd zse3KQXLq(dk>V!;i(e*#HWGYU%6|VmbPKl*+tWRlWzzUKt|4*f)AxL#M=mZDpLOk2 z--QOXBXKFWpf z`G{7+_8{FCJLnBT@s8-l2Ud&_mNM#&eWnk6p_iu8Y*E!xLw(`N z_7_4iI2NbMr${EHySobHdzm)Q<6wnUq?TFGHwF~qv5>(2|3*3zr?igef2`WsT`jb& z<+GWgB~Cl8biTl?M~#{dF>+z!@~5N?K?Sjw5Qgf$Yg&B@_zgkG6GxKf4e6a~3rC%S z%7U+|aYGj#tz&Y$otr^?f`~&GZ8GcH(3jq2<1(9@%m5%mfH}6;BZ)BhheWSTD(jNM_~jZ4r0&md)xhklDFFjV zdwP6+o33qzV>VKu7c*7)HEJhp#PH=Fag8 zdXv5W@Q{$+5JM*H{>T_3=t(h*4M$!ka=)W7pgrVpWLTd0KraEt&OUwxF z)^DA#u~+-N&POR@P+0?OyD|hizx0i{(*IHh=%ih2>r;?AgdeonK z1WKK%Ve&4-azVNlv9>y16WFlx`rXQbG?*BhEKh4(&8Gw1CfiXQZWg3q3a-@m0yR1k z-MsmbJ=8#S`8f^`TwX;|mYb-~h{H+_;n3$b$?~kob=u2bk9$Q)jOfbP@T(}R)3AXT zIye&E8<7$p{54pNf#sh#Y(R1F(cF4tZ?!T|myRRhzIj<)k(wYx7^wbUwNnlo@Ex|4 zwI9_TSKNGRhsyki_Y8tD#`U6n09V-Q9CpN4M!tn5Jd;xbpabmQgU?r9i~v>*MQnBc zHFf>!og~71Lu;KIj8!_DN@)1`zvmRz3=WqJ9#|x8+2G}V*XFM|sQ0_SHg(um_T$ka zjbXThWLj(cE0kenCgX>TxUG4P9J0&Un{zN~NpcbfX1D zPwptH-6R?*Te&blxiu9B*y6n;(qm+4=1-}URbHL_xOt4QoXkC}$~#eqh~ljeAK~Q@ z9hg<4H-PQJEqRiY(MLrd?Z1A(ws_a%g>8(BM$^uo<<8EVd`$#tJM`?cktsFnq&}(! zzwR-LhUMIBzHjS?&LG0!tmj}#Umb%KJ+Iv3XhX)g+0!9<-#UN9;h=r*j#R-Z~`rq?qqf{5OY>bgEX@of+-m z@NV*G+_okE`~^>nAb~gTjtY~G$}RCdHEl5Eb@?E5N<1WsJ9CTpwA1L~G_3F}&;|pE z7C_z7cB$JfQ|AiwM@O~xuJ*_o=xN7=UHr0S8Ea~a^Bp%UyACy^CA$G(dMZa#^ zO!2?>B7V-7s)O>PIT#(j=Su<}XDzFJ9kdNtOPZN)$z7GhoqdG8vK;PBJUc_1$zZV2 zl?M_w0H<}N!#!i=n6wBIxj_h#l7Dw)uTk68RPsZ_2J`X6c+y+7#yGDqgr-F&etv~8 zxh6hwW$tn%%dL)c&t%V|aeuTESY^z0r=iQ0MJE8Q!BO8Dqf07lcC#qHdiqkDY24Qr z@!R_)rY$L&|9!h-ADc>dcpQXWCf`_h-ivq|vSF~6nl!6||3>s3r#8_noPslXasm0= zS!M}Qul$HRpM8g=8D{6~ZrxH>`@1dEID+JJYwdBf_dmQBHC}%y=1`&+j2I?gvsJU^ zEWl@2?cvFjJf#$I49nwe+7xIGe14opGiEPCahP3J>!4}OK*l4UX0{jmAS>`E(mC<8HyrJIp)?R;}pb}u(GP{&Fw!s zno>Ql9zP<1&?1(<7@QH%ch>Bzr-uo&;UhETgf~oS^lA!K<;Gr5dWAmW-1>~u;oV`j zgr=tBfl3l{ z6pYPJ}SY;FeVRlEmUKPt_H>m)$W+HBC08$^+T9u(nqOgcqN!$@`G zZ0WxCA4#lcZ<-4JdoDdV#H_a(O9y9?qel04Z$oJIFP(g9G&r?5j7Bb4 zEcWm6z>}jBlgj?Ft;pcw2|a!JU?c1ZAiK1YVN$Ew^fBHJg14`HT#|;$G$->{2#FcN ziTUaD;{hKOiZCRdW-qYy04k}+zvykj2PV(v_=)0`)@%-8K?R>rE?xa1d?Wd4bAdvx zEbs(@qlmhK!tBG^tEw2@^)Da83O2I(#g>eJOQt>ZdOD)Txd$h@{ST{!UhFlJXtx)u zoUh9cZ(ep8O+XNhmIf%dgN*=Opd&oNoEYxN#sG~mkR(9m3PtgBTEl1vDLT4`cU%$=F|LSEsL!`Tr`^26ST9KSu_&lNk1x$+ z?n)olbN~BM840Feg!ad3`2_Y0R2m$ft%k9ZU<8wBn~NL;96A=%XjQoSi=~#fJO%(r zj4MzsjuDEeyDDv(t#(n1uzK)_>tmma^!sL5Ao>G9SbFID_&~X-!?;~=a@^R~qMEtp zG)+pE{kDny!5!a}g7m(5?Ex0hUc1xkX4a>lZY0>8;GJ9eFj{(34b z@PhqzXih-f_vwi^$+}xYn48>Oew&T};=l8u^O}vm6M^;{6x3dMBj>V4;OMd1Ni$Ks zi=~d0!h3DorI)Hz4q*>R?aGMGYeJ7!UcFFVmdQd)b2iX1MDcv?x^?u=kX>eWy`{zi zn<~P3>^+LRCy4*oYYoB5`EKAILDo`$=3Vu-KupQI(!Bff5buAQ&?k`Hm27@Y-V;z> z!6&Did_XcA^aaLFGvDX=*Ds8C{^!jG8o}yfa6V-|<R$Ky)97Mqh zCkqpU(Hr9Mf+6`quYm2(7jb_-yUjN532Luy`&`eE+3Ci+7%BCyIeqJBPC$wO*tQ|Dip^3VPi_qT`bX2pBK;lv7%oJN`>v;ay+!6QM z(V|5Me4wSCE#-gr38iS%zkPoGWX)r+3N8XNYQCS1Wf4|1Z?3id9+H%w)$;s{3Lze{ zIa~k5YpBuRrYzNN5g)nPVaX3HlXl9;--NhL)5VU^_-!de6LoSz+|(dc5B_&Ro#GiXdGAL^jf<+$>PXPnf#bHz{?VI z1g6;Yp?Z{Q8jpP{kw=6H@s-z+^(hxYfi$9Y@>lWnR)Q8gzuT2=0No!kd4w89?=DU= z%{}$;ri6&hc@1oIlK&9ds{UunA~~GdF7~QbWA;eyg0z=#=d{u%tA2UG%3FF&pHnd? z#SfEq5=1;X&Kv&mzVI6JXH7`4-ze)#puKcUl1&WSDX$`aYP?Se{#^Te%MCGGFW|+- zu}QzkdTx@pi=6aUSU~S2c(yXJD6be;8`?lATZM*8nJEMGd5a|%y`sh2fdH?=^W_Mx zFPe{-^~cCIOdXN-&a=+L6o4n^pc*CGx3H8`*9-d$WOVc1d)ro5vRUo=uSW6*%f);1 zU9|s9)|0kSBQ7ekTZ-L+JLnJ&^r2LGDdgN2&Ez~@kNOhpJI1lD5u;Ijx^1DyH_Ee; z{3ApC?goI=^kV;331;jYxny!WM~j5tLC{lV|-<7^;GBfEyj!**3gKQJ)fRLIdeoP zswOfA79GsZHZRU$vW*rImJ+AT+4CN8iE7ofR6JvkD?S=S`Q)v7`VpO=Cl*tI%H4b7 zB(l*X-YULm3We>aT)gUr(h5h$Pk)`vTlPPzj3rP^HnSKV=uLZN)U()Ncu~v2c{4hS zzghyams!V#jKA61$-9&L7R&GzanP7s*&zpdFEQ=o`Bq5d6uGp9ZthbN&Awfcpvqyf zRcePU@iTqx;46`e5w_7`CT7g}n1301JGZI@;`F+jpYn%dC4ORMTu#_fjg>Z9J~FG~ z+P{Lvymd~B*?L+#yVRGlsX1V90CWG^$#K;4VwpluzW)%qsR}C$rooo&d3#?!$S1CA z6z%JHuki6}{%9={UM!BW0VrLu4V1JEe4VO`f7Cd+2@I$oMCJQJoloH1v}ew@32)83&yA zR=-@LxMq3Z>2bH9ozDvj0-o=%{PlB51^b%P=4?w`0nMw9s9cRFg&*I(bvf31Hg*1- zM&nHMhdVm%JxbP(M*-Pb(v+GZEH9&9V~^tk)A$DN$t)dwY6;~3c;(TQx_ITUKd)Ie zjk4MTt_%uxSwt;Owqf7w$Au47VFyAu(h3#uB51?Csf(4ej_vBb5l&BF!&CuNRYd%r zD~_UU+ymfmz(8vwKSAqt9TKV(LTfk5Qb6V1>Y{T66Qky7{Bte5O*VzsL(M`edf#@M?r696fLd$=6)bUK~`Vr#h zRKBtOpMw#0Wlon84LEwZ!H-_|CBn(`jP)!^#3#AVeqkBcI}mIX{DpGKcLYaliCIPZ zMB(T6G_W$D^}|bB-_$*8E!L>nr<+xxcM+f|ft3y)J?MV+zDo5oywvmm@%-w?22Ysd z0a`(&`yiBHW1Re$F^mR9*` znA137t_H@@lBhWLMDh}BMf_?@pvoMkd@`>&XHm-Z(^qO7&~rO9?@B<{uHm5iw2;!> z{3lggNoTEPTk2m;lm45yr@j3*jZ~w4i9(>d+l6dP6=%$cN({_qyM2s1=%JIvkp#M9 zGtvL>RBCOUg?bomi!Fts&d%So$a*$pgPk&+N$#)m6{>QL@VcyBbvp^A-p}Hjv?mnxL!|%kif2go zjW~*=FMz}057D<<0c`OaA}*La&PxsnN=v$97{yLaqKBG~o0p}^7iTr;K& zZlyE^t)e8o=@9b`3KY!^2se&nX}~~G1RL=Lomm=Nopqs?y+)}G>8{*8oT}_v9Uq&c0fS6 zm;5WnC-Jb+v?Vp--Y@FUPtZN~4|oRP3jw`s^srkt^zRFn8JBuvD1Dn`W1i#$KY4M{ zUI(*)8`<(ve&q=1fJpo%~x`B3*Kz|h(Vo_N4TdUVOJJx z{&?yJC5EKQ);4}bED&>gwEsYME!Idrt-e z3V3KOkf&m}d3S4%_3`tnxZ24!$11v_IBID}i#1(9>pV@Tx7|ILT8E3LE_bhBV?cH0 z<{zxedn^;?w}GY2cV9N7Qt=VI+#<=Y)ND_tBqN^PWDqj~@w20POX|}i%%uD4OK|M# zuXn}m-Ib~1pIfuJZhvfmo}X36jyHr2r4y6?0osq`DSqyPj3&O{`(H-oe?Py4p8X|} zP$Ys)co?Y^z{IeX$gdE>K+tTPo+rf1($dX+W8wKc0`y9)LwDYD10ha*y969p4IT34 zF{@~uRT}fZqv@1;NRJ6Luf$!Of_0iQ?s=pxe^L8~XLmgl?P48XRUFF|CI=Y-!%7y=jssa5`K30V zvuxza^6$u$FAg*%bcn80Hyk&hZd&#+9zGmO{PqV-!tZ67W523RlO0EH-iV@-48feo zR*f4UZn+^$1s_|vmR2^(s`mfkk)BQNi0`B+1B0I{ua;!1Rh*T)iVkYFZM6%+B z9{7GDSmstLdt~~|Z~2ditKoM~UM^<_h916`oA}A(?iDIU1_)+r^@`V%9Kw8*oR{%= zxG!_xd}qhJ;IfBqL(H-6RNiZLja;@(=*wb32j=+*dZc|5=Pqo)V?#0$WWSgRvWJr` z4d7#FbCM2Zz!{Pbb5yc5Gts{#W?%oH5op>>HmI%H8ITc*t%Jru7y>y7+sd7h4gx!& z+NIXnf?qA^|gKZgTA z84?2H1km!&1cM@5()I^y8zE;kS?Ax{&jMH21h(!FI=ilMM%#_(feZU-ke%tfpkzm* z>gs*2aJ~rpVr{=JW|51Uo;9IRFA8E`7f4)(V9u**^F?~G0N#-Pd^@2P&#$h7qiq&j z9WJRGtP~S+oK{FaD4p-JV4z;P$;0$9xJ3+oxTSYRB&a&zTOLm3s-WJPX?oIo8<>)<|Wur zUQQ01t5#%7hIrY1M;+-4j$gSpuAYi_I)f|JbM9$MI?&bzMyYVFxgq8Ilri6TXdm1LnhO+tJ`CTqYK|h zOKjYH_by{aPRdK-sKz+@Wl27-SW@2Y$V*Ct2K6!;7A^A>7+x)v-rw}vZe@KcmL*yo z;>ocnSLpg+ab?+0SdHe#NJ=DmCXmtCuNw(+>iHm4>?HaAE)B(i|0buB)OzM%q*^Rh z?P<_}&uFh*y`yoikp7H-7+>^1JnzAbPn!vvPBk=(38l=t!KZJ=L3R}JVDwzCh_9<& zsKZ)(9HEu=s6I2zc@LhZXkXBBxgqvV-)T)F&~{~1&Qu(iW-fP*815wvKz3MSRJy@Y zk|*NR&+G-Ma=4OO@N=kgkZpc)1jv#mQ))1VbSlA6TjE7$KuT9x^3F7>B*#B5#@>5NowzC=@&&Wb@-q zsYxT|kwrXJ7nAqV*E6fmWx2|6vn8uXHQbrLDme=G$(^^VMN( z$c4*5Y>IJS?rr~Lu{hEksx&F)Io=}d@P>NqCiZ&YRD1KKhgj*(n#FT@V}iIjz`VZk zHgC~*nv3IAlXE{4*}Q%;!E6(Z!M8&FX1CfiBTGHQfWNlGpY?oax)?>BvZRl*I(sGr z0KofNXzKfN;1>0DaW4c>m2B?P2MF;^qknh<=ES=TasCRBIy$To=gATC={YR63f1w{ zcM>B<{W0ZtYYsb;a^L=uKYr}dEg!n%@@=~<=6*SU!-)rD(#*qt|Gt_$Mnkw|{gMJ%zHJ;bV5K%G;wM2&Ef=ey)V{tpX6w!2Cc zC|v04c)h=)R6F&4k5emA{Y3>!Bdt5IQxf0|Oa;oFgwX(>8x84!MlqJg)K|`L&TI%T zzMGU)&882`w+p*77?(sfrFzST~Td?8Y9fV;uM+3GU0rNpj=+<|K$B2(s1!X-ds~Th*r9 zbP65Iy<0$OJoQ|hZ-*lIqbg~+to0^>C+h#^LTBO8t912bR%+Qu6SS$54{2>3z_*A^ z8hk^@-xHV7H7*+q!$864oj!FiIo5Sxf%Cw~VY)EcI-)`SzFguwv-4mN^xYN7dVcT2 zdMK3xqtepN{W;dRwV`zUl+bK>UE%vc_ClwPaBW$%6GARdJH-`?Ba>k#Jm1(>o&9f< zcXv@0B-w7sqm%vG`ddPnHns>Y)B_@8$C{%hd(iuz5;InqJSpdmiGUpO>dAbUG!jmW zlfNZtob=Mi*p`-8fXkfIc=WCspDTRy|DwjF-yW!SSA8aQ-@)BiXWi3nX-QDANw3!t zY=VCobC89NMc(wWQJ%Y^gy{D*7~#iipU$*$P`lr!XY_<0YnJP-efI^$-x8HzTToBc zHZ8CRJ%Q~MEa2Hz0k$3)P!wuW4?{DMNz9X8j}}oJ2tMCm;ed9qvuS`TYHfuhcJc;S*v)6s3`ETCSdr`tJO@eg8RZ!Ge~%fU4|spBJ%@1^UUBe=pVt zj6EO|@XCFMg@T#C^}WDa|TOmv%FCr;B{u}>YQJA+Ow2&%8Zsss5BSx&F)WU zy!?B%%d)UQS-aRBo>=r#_c-f%V9or{4SCGuXN2h80{&X-zm38nxFmLd;adNKOW4N* zVgM$?`ACDuYGVXUhCLq0<7-F5BMxiCnXbCh7VLlZY;DEG58@?cieFrIf#->VXm%Sm znofUuq7Cu;yMocrO}7(08Nk5q)i?c~+~RoCO3051KuQ>py=xRNFE-qGoXr`eZUi9%1t-&V;eHjlP2z>%Xb0# zJ47h08@=FR&~HTN-!?X$uP(4a(`p&X6q_&XCbvV+aa7QLI1}6n_5@4N4<}ny$7+ z(d#5P$`GFYd5oT@fH@MjW2ZhBsDtt8I~l8SdfYxXAmkwyU-xo@Ag}P}ttf`6cjZ~u z-1=PfkF0CLL@w=qRix z;fA^F10|T(A17$v^y$yZ{K}N*a`_%z#I_s@6fP_UIkmj=9j3Z)TpnfrX1&9CFr>h< zckh2b1?Y294rPctoxIVwOrdCT>$r>!_e%O5vc>#8vxyra zTwfl?#5o;?C+27?biR<_kn)R7Din`;k)_YK6vc<0LpFZt;9T}4>GiixOR}-9SA%%6 zE=RtxIG3vV&y@JvS}~`}2kON)l>3?96Lw%xz@J;fWF8`*?0Q&amM$s0#a~9xkq3*6gPWXlkd(S)^ z_Y`wq23KCLdXhm>g53^|3(xI;YHoY`9-CBbV7Tg(Pg&1fTsK?8YM7=5op){&6lP?t z2$FZY#drxVsPuw<5A>^jx)tX4X~eO0BtHAGUXq3s?&f`yvRz8lJzq$EyUj+P5E zpPB1Fp8wisUZ;O}3RwrSy>c$xA0q)q#8wEg!Wi&|OS2t1 zUvaX?mA2Q6q)&wyPvwP~;@=)#p!QpmE;8Arinx@oE=6JRF1kb9x3QOvR^0ie$|oF^ zldn}QeWwoLWay)KBCTg?wgX0YFtlqAi&NiaC0*=h(6gS%1#<3;msk2eZwKiIjBtT% zATsEo`OOH;iOmC{bo~ci*%Hqo~$cz+Dh#uVZ{{ z*7$SJgPnkCvBf4EV;}Bxveg9Lo4F=jKifSVqwiKdlw!XTOx}`Il@*|>%O1y;9d`MZ znG{$!lb|8pHxTIRFH?9AG&=2C&iru|isWy74NDTo2p91@7hZ-5^|URVTs%m<_gYT> zg91xafPlV+ZRq=|x3O!eWYJ|+A`oCrl6hH9qO|WNRWE1@{mT}%LW>Q!5ySoQ-qB5C zF+!efiua8j4*oG->hM-#92&CG{=5u;z07M@crg?SIBs7zFE;YwtPfd|1R_5jo_#H9 zWP9;UM0Bpy@s<-SeZ%bwx@gg0+pvo{-Zo7fcu-{h>*(?FYu!i8VX6A>={MSgOK)j0 zJ3aX%z8&WC$s2krS@JnLBtfgPy;piFayj>ep_*W$!_Eyyow9QAQ{moj(Mv=w#2%o# zQ>@KTLLA`X7k|KanYgbNKOFDV(WX~IGdqEN+bPVw8P*MpXXTz0WAO^qsT@ugEF|2@ ztz)NRNQ%5K9G8;#mtk}6JQoST9oU%VxV_Mt1B#&_ijhyrTwhO&`78cDkaO=B5lxya zeTTEay}V^Xs~rBuK>PFVW9qb)mKLep3Y@e@)fyY2TlSL*?^BvAgVFs;K2|>`zUg_N zi}Xypn3P?tepzJ-<^@V>BFKwvDnSvRa0;WAud*DKVo;9o@L}WlD!&Ek2OYcE@*8Jg zrZwo7sXqTIEA=ER`{eCSqO9$8O&fLJSF4=D`(qIg;CaWy*w)^xzRQL6`fSa{)G&di zDs44g(6FM^@IO2s@#{X|a)w2N4|g!K$i9U7o40!hNaLHwDC>o|Vx%MkBEyP@T$Q9& zg<I7XrWujFS!9NG!Y5_zYuZ(3+7v{Yub3Bh+q~64|RyEPxjLYL-l4*??~Et?I0pc zN}7j_t*Sdg9h zf~XRgremPc2`&QF@&e(x4N-ctGGw)K5nkSf0+BO{o|K4$zFLrpK_ql-pS2e z5z_TDEfFAmcCp-&IS?&D%`irBZrul$ox!0Ue!!aaa}K2I9o$v!AKt{9N%+~q%-(eH zft{`o$btQL=wCkzmo4b1$J~KF`HTq<+dInxHIuQWhNCADwOyrnquymh@(~V(yDbsO z){4W2qGOLtUORkM#N~Byd+_d@ zqdC@CyF@Kop6HF9Wg&vBLFgkF@h-nx(+&OAI6Gtfsqq}`8-=_UZK5|Ws=t#HBTCS%-0n%Euiaq>q>+s<}KN_X!|A z16KKBv*O4`|3rzG!OYP)R={&5alSdf%W|G z0L2cBP7FiB+lRqQ1D8<$vpb=;e{O|7TK zC|r-`sQu)}fxNQgOo>xWkipr&_gzBTESv2Dg~ed}eGS%$#=<{pvimx^#0G)=D$=&n zTv@yPx6*EI^vx}@oIFxTGn0D@x{N+j%RHCa`IGe&$L{lkW~G007q(KZenl>@v*YXh z(WUdx%}Z{|KF<5%9`xJ5KPq}t&5VSQSU7&Ae&{H%)>fLQTy8t-k46?_Nu^K4P-d{M zS+oqBKZ2PV_9Ta#@Co&_SM|+a);Gpzt*tM51HoV|(~Hs#CMF)e-_fJ=)>Qo>vUB-Q z$RBcY6eVzbQ$aIQLe#(2SiQdakp7{KPLw^aB7*)%-jQAq=IlcK{#VfN*RSHBF!meP z)Yf9G-w*f89!GB)W8F!csYS%sjB#brse{)aW(eA$C1UbMh&~xcbM^<)>7-F}MZB$RoL8^@p)M3i$bDWc4#q>!U$A~Vlr>4|TwzanHOG0% ze3yW|a9Ovo0Lf9G4!_PVWuNZ1@p9`-}7e^FO>c8OCeA_0<^7 z)?$)?$OlJrm+lnD&)N8b#fv4`BHxY~jj@Sk=0Gta7zV^$b(1JmP;&j0XOFF(=#N74Lr7qVu`H*OKb*&M&A=SB9VMx+Q0 zjBA0ZVlN~dcPu?T9Lo2qOLjjy$M_ktZ85Md9|hMBb-TCaY$VjLs1g1=`O%g=x&-lI z{7mA%1~J;HcNTWeMxmd_Gq0z7(QEIMXo)$rv7@maKGIM)K)C^0G~d0_)s>1P0)-`= zqHlbaKoRQZB-fw%Uo&1;GtG;wvN7GTso5GQe>s0$;SA#dwl)pVm;0xyhJ_A;94w*< z`L7JFzrFV(W9i)vs2P^-x;!fxUepm%oZUjNw3649z6|ATGCx*cvfD3x(2+QMW-Ro? zK6&rbPS}Kfp$7}rwFnAw+H&{ib$9>?58L(SX#c&Q9&_0#C+vH(6{7xHZL8?)l5c8H zpCph!)6v)KC|j1{?CazN0^feAyo*qUR6e>U0ipe~WpaJm%c}hg?@v|&Av1Xmf4V+4 za#;>+O&7@s<-K)%Eb{!i+D|#vrg&*z$fdeA_wCQ5!IYaZ04Lp_-2PX9B2IrexgOMI|do1G-lP zh3-9hm-+PT=8232Ri9N4%Sag~SIC~;rmk57|GU8L0fRu93sVDNN;lp>)FghpSD;2{L-d zWda;cl)oiNzpN3QRqqu#QD3M)x7kEemLxf^{s=o4KBgwCp!M1$&k3%d-4)=f3VEOI zy%^_NY4oWffBwK96Y^OkTJazx|3Gt6oG<2CV=F(0>&q?ugfA0L(FfL3;>KSMpDGzF zM?TmH!A`MH=1FT0)7{;*873B4Gv^5ph;@Bh=qnx@FBR?oQpVuiywquh8Ru(Yv`tz6 z5ObDEV{0F|bh{qUBh@nh|n z8C~4BB@*TRsJKAFj5Fn<@_LjdP8O+z;Hc;;i}Q2G@7lmr@gUGy0i~`^5KB+uuHB7E(2!}G!t#4oScs7&Z0D8t;dX6$r60V~3jD9q993oUT5}-Rz1M8z&Jd*yxUNT7eTc7A!F>SQ9LPH9KAh z$81M@RIe6O`W&PWMS2-h%zV8FKC?CvsP>>`eNgCM+Wl>*8kcb zsoisDm&7NPk6Z2LV7jec{cyc*1+Z?9s2U?$eNPh^DbaT~d3nmz_9H zbZ}Y+7rOs9V7^st4hKIGElapdZ&EP-R(<%|`a0{xK+bKQ1VfWhOyEE#;{3Pq4}E6F znkAPPsap|?j^2;Y(Q7-QZ)L1cn~05vF&W17D(Jk*kU zNKD(KYo6C@2~M|9HPDh9_-cK zL9GWe+TyK2#=@IV`7MeS43_<>o%eTAhG2hWr2w80oO$BVCiHkcuSibqUX|!Ld;B*m z_oGufws=2U7%PD(DN&y$q-|ohw zj|OzitN-CW2_^-gH1$G}GU?GcmL;bZW(?8%(!i6(drsQ>U59V|Yd!ZImPV?BFtqib}8T80AqcvBxiJ#W^FobK%!c&{R^EYQ%8;FH4x z5z$xC(RYn&I+X+|U^qzvs8#Y_S%yISe~~o_a>l3!4vP>m@FX~zZPt4y$X?uk0Ky97 zAKn34Q(@}5=s&zv5=Yz?@XbC+2OjDY2xNMSV~b_vy{%g|f=90Y6(YisINvBV?XEr! zT)gKyVW(Tf1A>H~8Pafc@^5o2NWo?Zp zYz%Cege{RojWmMZ`KyS+jw&k#1XQ0HwY29sWX2q6d`R2+yOStip;y~%*-CKwWT5fm z{Wr&#B~pDVmXju;{c)v4In#eMk8c{Tr=Rt2i;;GE9KDc2ZKr{G9~e)DWI1+`Z|}YU zH!K3A9KE-bFtwq$M45zChqGqREmTIZ7@1!h^^VjypXN-1WcnOIwFg?R;$fmi>`Z;? ztEGW@lgB=W@gl^DN0=eXw_sSr<~k(IYx&OH`VE> zBbe!Y_ZrpQp3&#k!4p5{lT;#1jh#CDi?m_bM$N0vorStmCw$U$TBYzX`XQbxjL}JH z3(W#akh1Tw$$wHPodLhkf*HRam%^l~2m)*;iKZVMlE2Pj#?iD}mF-E37#EmHasQtB zo0VB9KqWik?(_(DD5SlnY{n(qBn?Vu8*f>bacU~n!5?n?&;8-`O#Y)qU$BAeZ^ZpE zFFwj@=5V3CPFN+X;}O>N71m;v$}9IZw}GKmW3BT0b?AR(J5c|PRMi2b%;OJofPDCT zn*TU)Q1revtqEzOtjA=#`T*eNZlgo;VPSR7BE}z7A4}tZej}5TwyyGC$?tcnS>MiT9qOu}wzVx#gLvn|cU8Zv z@lbKBGqa76ZE9`tQ)lLt zvnsvUn#%|{ex^C6#C@7_QA>)F%@)O)vnFhcWL7ek&y_x5!LDSIQ+&Ch;A9efXlU@fpD^ITZ$O&~#=j8^DR^Tq(JY%Kp8Au> z4YAJ`--eyou$zH52;Qf9XJwB_C+1kYv7+fgacg;~e5|H-;PP9Z&96Xg@6TT8@g(Xd zsFSFlzk+E&MB>R~?-FUNls_M8Ldv**h&&u3 z+qU{lBwyZQ0?qrcXu7wrp$bTtC37u zzTe9>Qf!EZM5UW!xZC3=guk|iJV_3ks$B%+LwSg}<`ap5)f{>TgcyY->`tTqL zU;eXK33)%5=g2MN!(W~ji3jBM8^5mS*N}T>%zTNGu5tJo$cHwIi!j$uUU3lQW~ZYmUBT)*#GDp*fC5Fuy^By1&!*h!jV=x`flh6YzQCMo?z`#nPt`v% z?66N7PoDgW1I;)Dm~T(d$@J^>eRLH~$oUl*l{GinR{(3YskC z3^OnLzusjnL;tWg{z*5aJczSiXDy-QsHE&H~4; z*Qj`F8+oMu3Mb=VTPg+H1U2G_TY*<{%do(EAaQDv$MAZgV=vIXA$%SuV=@IMHma)q zg14b-%gSnr16%m?J{(xU07n>1_1rvc^-+%1F{HbDHUYwhefyl?Y&Q0G9H0=S15W@Z zY%861R^g#m5+i8e$iLsPUB14DL^`O|lb&@-NnQOyG4TQL2#H`)zRp2GbQeQ+;Iq z?GxFJ<2cVCzIAX!4er5ifFRlOKfE~4YMx#?Z3HWewz`H;uLDbcYtf4?F(1jt>d(Ka z6aM0I*TlarPzrV$K!b6_Nn5b&n^(TP#>^q;BX7Jra7=%2)02OASZxSe7kn)RBK(K9 z-U7^WS+RI`+=Xxn_&VUP?9u}5uHDiB1fqQi&XJdC4G^Vi9voxsg$Q%J*~m-(;cXXw z0jZV2hM>Uj>Qd+c-MYb{y{mO#6wgMbyxEMxh)X`{7KCsw{?m_^x(f=oN`@Mr*2t#Q zspnL3Z6(GFAY1U?Ldbm7Kvq;dH?|891Rla`C0-BoXQ5}R*q<5vI4z8@jQcS#vH%;W z%3-a;zr3Tl;;aGQ?74Zb|JHFd(?u%w_@iqLchik{XSZ{VE3Ru9|X@xdu6rJ?RG zFXBsYA5Zn?ku*E&cd^yY^&1|QMjA{1ACk^8uF3a*`zT5&ASj(mi+~`VB2pqCAR#Hz zOu7aPP`YE3fPi!}iP7DS*&b}yc3$WCIgaCfJT*bHTvpW2 zJ0|2bzwX{zxb_NM-W1iB8mMbL-4PsO6Z}hfP_R(*w$mlsKYM4gU98>ic07*0|0wZR z3MhSd1>vu+psu>Ms62 zJO{ZTNgM17v-|C~Wf{wls~W5^QMqc!JG1e4hj{+Nrot3zywWyf&c!W`*vsXRv+TvP z_0=c{p&KghG7W7O>B0Byw%eZ*WgS&v_jsF}SR)Z6iZ%sJ?MdZ7SvD+(xj9LvS{iw4 zy`iS~{lkA$KO9_xy!z3?i?-$1&b` zB>gUfixXwD7R`1q&JwqkH>tjMl(|1|pxvnhojF~`Hac+ONCa+Wz_DG#BB0cN5C`DG z+Za0B8g_b%g<+T9W`u^4SAY5S+4!52oKXK}_v^FAUs($E3Zh9E=!{EPci0(i&@e!# zcRaxdn<2Rl<2FvnFkP!hqRzVr$=_<*(grP)skiS&yOoAkn;Yw6)f*Q&KQvgevy@lN zXtRdDE>*$*hd)_jueZJV>g~PXfgeH{z#J+A(iXMF_Kb;<1$F)Yt&^eXV{wv4MQf6cC+pu|MY8dq{9ZCB;c6Ksev?lJ+9dcux1;eq^qaR(LQKIk= z8t>gR)fX+tHfkO|o7P5W+Ty2q=7Kt^^-9%8kbS5ce5~my0nkxM1qJc|K~;SqoXn-U z>S)y4CJ;usAs_4YxWs*AF-~_8*v2=wyCj}kFG2%wu^5q!h=de2ntHCnWQr;+*+{TCl^=jS4o;f^|*WvKV-@^0gH(h>)64OBd` zmPJVB2%`JAKwET|*GUP@Ile+8Cj%x;jXZJB*)+C8HIpNI-St>#*rv?y`*CvhYdrjr zEK(zEFt2*{@rFhNZPazDWEOp+7l&nk)0b*iFD5mBg=h?S4bd$;jYgVJAKDjCty ziNs609=$BLt2tO{02!Il*b5yg9-Q=_Ro0DnWU)3Su(xXK8d#R>?2T7|=zm$qvXtwk zS1YQk^)^NP7E&sbIpFY+(VCM>%9FuR9miu?tD3@1m);Nc`fHu8p=WC@$io)=DpFSY zBBVVFeE3Zd1b-iJftbyi;Q@~WTD4bWWP!cqFVczE8?nBgmE9UB&a7N{&&oGbITgG> z4MCgp)9VoBj~fL};}0FR8B1%AV;`yCI_7z2)C-w00J0Ajvlt*=-4%Aofz%ZR@2tsq1(@e+*bUyqCN@hkehLN+VB{AH$rgVLn>`lIBV zu$^h`Xum{h$XI59bwG_ra~d0Iw2!~82)O8Q9j&I0Sw_(S=1^MU=qRVBcGT%mp3RcR z5KAkrMm=_YIKt3NUz)H1=#l97Z~D#;5L)YB=>t=pz|RJA6b++*`IPJrU7s35$N>g% zJ-eHAuNkmHna?;bXkT(_a<}P*Ezc2O;IpA%=gz=;%Uk$-Hv%x6sbMY8i$2z!*=JL> z2-rgFmz5fz;N)5JwgyX@NW{zaDH6%IT1 zWl=kJ-(`6VA;B0~zqW)j7@9e>CEdWMA=S2-c2whNX~be}cXTT`SNUOQ)WGL(%lh;n zkfp2JY8G$5$KCydk8SjpG4;<4-^Bije(cM9adQA{@F?!$XfD5F!t(3_?z!{+%m)YF zci>ENTJ~@(YxWi6jrZT(mw=5i;jf>BxA<;=mc@E&_%l6x>G))S5=)mjN&uA${w>M=2*)R(H@w2 zg7doTZgzs5q~+{~QckCocaCnSH(%emdY``e$0kdpWNjCXi>wV^Jnt8+4+BsjP*zfDti`t>z&oa!Pw)ZIaDT{%K- z{rR-Dmh;pbnOYS*sNVILe2dJ9%$(%6uu}JvAW>PisaIGXiIayA#Kk&(FWx{P;wE;_}0eE^4-FrnC1>^LUX?5b4 zw7*h8W%q}dn1kKRPe>OHRi5fKM|(SdTpN&VyceqMKTq|oYY!%J8yreIz4C_oy-7~m zq9+Am&gQ+z+6f^#pW}c>U^gSlt&sLKujjE&0>zOq<`!7Dr5TqeV3(M`i<$Fo78B|+q;hwK1M?@_26Z>2>g3`!=u{i_ zh+Z|Wx%>5bdGIA+KbG0A7@(nE(y(83$o!;vba@6LmmC4YvIY1nm-;!Xg#|~8s?7~bDIWBET z_vL4VGxx6FZj`{51cFzqt;2HqL|AByI19=ZSrgbk{%YDuSb_l#PxA>mhqz$5hyD+D z(^Er)>ziBJYNH<+SuI#4>!)$}cgy&0x0$1qu~dW`EWs^i6_C$pzKeX%m$9l9-6(*GQYFtFy42v5TF;Nj7t8^3~}Zy z&aAo8Qc_Zt#*=_;FJ1y{(!eTGo%d+2(6(n_hgVoOm*v@7@(TF`jm$pZW>LH? z2&y5<4nd8uC~22l1%rjcoFa@+j~e^?DDMHbO(q7WQz?BWx}ma5NMW_7{xi&I3xkuJ zi$G{yzZD(lCK{(Veptq-+=C3@;=rv`U5pCUgb+(|?smyyxcbO7E+jl0xt9b9^4?r(_f;oQ6_Z6tIOs*ZXFcl;5@*-+^Jf%9l^>LTD5w zPvQd4F^0!hc=oBF_!h{b+te=a(P{|59Ar-X)9X+Hc~9{^{wVQKw1?f^mzb!7m8`3+ z7j@Npf{*c(f)Qiv4URdcR^)0GzCZP7dcENqt8#T@;=w`U?3NID3AeJUI#UkEK1JPL z@}XK!dPm*)^F)3tt!F{LTc0r6gXv_%NBwDWv#WKcKW{-0g{g}ZjM9`!1CVxvgMa;x zCqd3=Q6zGsgYNG4=KxT)p=Lw}6em+0e1$QhTER4=X>5&pPRT*A0)J=l>U#7lfygX; z+TqB-=|#eCqvKC1T&z&pT_$yJ+TWJwXD0MoO=1Qr7306)eqP_b(q^{54ZP53z z;Jn*4hqc&cz#u$@RC9`2eWYWGVvm!XI}TE3S$3vJ5yJ?QS0 z&Sx*R_};s)0D{h+k#ocdz)=s(bGya%zv3bYm5B&Fy zvDI!@`c*I5j4*D5!A>v%Sb05gP-4(cs((e!(nX$gV46df6}2W~@d2#|x8UgeDg4cj zdESfe#ZIAIgdZ2pSuvW1TgR3DMQ|3CcIz^Mwl}FCL_}4%Hxc0n}uycp1vM) z^(Db}-4(YnLEd5Rq2G}&>a35ZP-7n%^~FDXV%+vXUyYW{-Pg6qi;gw@26p)rQ-xaW zV|lcmIwCf?n8(1?rd>wMSUMDTLWOMWLdY`N10M_`=e^DnS#p`-pglaCVjX8^o6Q;= zm;3tbYt26}R}l-tK-=Cvcl*UgtN}2nL0~e`3`pHG@F+*?%toVcLt$pxCRwG?x8G+B zHd2cIKw(2btzT-l0F5Cyu|J^&$qM+h>wBV-G|G~%t=wUsC#PP5B+LP zIqcNPBXnX%j+R;GVIki=8nT;cTY}@$Zlh;1;?IT)0Tw zs4VS2VHF%ZhFmq#q^S;W>r_5XkZxf7+kqAGqw4xCR_b#AO5T@ic+x`I_@C?KE>LMFY86?t^@|UOK7tefzf`i3#aSj#2*gM{Z z&Da+q`;34SK_BLJU3~W|t`}ex*z2)8!E(@|_~X_GQ%=D>3 ziMMW8X^e|6qZ~Z0t1&O*JzAAzLDTNch-02sD3nR8&dUZKy`x}_yn?u<%r7Kd*(VPeGcDwGv{a=IQ*5i62q-A!L7Rbt@9zz95o@Z8< zagW{W?At##qqQ^K3C2mmxRXO6u=i#bT){ zFj6`#D7`;NP8@%2ljj(Z4u_|*w(Ht$Dg;|>d|iOOSWkIV@@Udy_u|S8yKj+uW0vv! zE=iw=#(kP~qLU4BU&dcf6T;b!wo$KcLo?k_Sh;z!-Rda);1S%}Qhw!%N4NPHvEu(4Ef#43Z;jGw z_apC0)z0;Us@`u><|4C7#ZbRf9+Hzhw?kS)fI`#w$9yn+31+Hqe3&u zNt??a?4@6sEhKi~C{fD2up?NAwvo~9&AbY%5c&f3WyRs8^-rItFCXf$6&Yet=(sS3 zF0l%MV4~?`dgZ3HLOMBj0=#pEzIPUXVAT0{$%=!yG9)q6s_$_fvLyZpxrYIu0AkxF z*-RvFlvG1u%C?kAACnT&=wmAR-9U!thl`i;zyu5gxW<|83UJTV)=nN6J(&K^XuN38 zEo)>WUF8i3vunhxZXK{~HyrWp1_R4Op#P{%7-HU9H`OAEAbS|>n&4i22-dSPA0T`{ zwcFt~*Xc9_gug;Ir$JjV3oeB4J#zbc_oN$DsWlGnvXDdq^fbE@nz$it|0pmahN z3D{q?;VD(Qi$*JoMJPAMV?D7~lBMD=SAydV?;3z*AO|HNhXN3;KqzkICovr+B7X-s^i`N7 zV(2KA?kZ0I!yCUAj&7hU5&Zd6X$n_PI(lT>OLOl1K;Jx6?A&De&4~$k+9Kg&y~Eak zc*hA4r8Ar#FR(k^r!4mVY{><8TVT3qNl%_BY$)dEWd2S`7V>u2Pf)K8zr497Wkm_$ zfd5A;OsCW1vcJIIXkW>es`eBw*^5v%E7)gNDWO!YEzECj!!I$NV$YVdVg8g)-NMVB$zK)bf zA*?0X$ZQ`}*?6cdYgo_IFLr``O}&I;lB zNeZiIkv$`wpgH=LAvGPT+H-LhGKkE-7Rh1H+e$}GY;7V`Zke`&iYB6s-FAh6&m5Ey zmD8URY_55${!c#*ywQha%g}53cjRTz{m9`}egvb>G45otWhTt;PvZ1VHcSUI>y}I5Ae7*yq!bfMGj6Kl9CjQ>_QPm{4K#2NP90(N)L zy56G~Lkz?Hv3q~NG1Oh!pObTP|MF(TbMG&(*=r)LOVK;tHXf26JR~eI-@iE@=2a++ z$6Kpn8LD7UjyFEw1aE{C#;^Hg$=!MM+NbZ2wOjukDp}9Cof)r!BIQMT;@CW{7g_I`ikmYvwNIcwzWXj&fmqu8ZU7s$q&I|s_1gV)jgm?395Fom=zx%k}Ybr z0f#EAWjgYF26?5dJtm!a6Vv`{skntBmt3uU%CFW-X?wDs{|IGpivYG*y}PJ;#$q z?WKZi{!H93LZ)xx_J^ZK1b0Pn+bs{(uN@MsR=#2~;El+C8Hb1onWnEN`%7!teJxXC zu?z1TlkQh#|GMG#-e~oasjWARXR){&ahTMn9oQF*oiB;4;$GhhRLK{VTVaNi{ad2n zy_jQFj8zQC)F4Sr5&1FnN2^NeyTk602b)O6pT(eduHQD5t1!bQ=p$ZhP8%U9GHmux zgL^~P%I9=y37y4%7nOH5)zQzZqL);V_Akw%QxMMX<*=`WvIMSCoHGhcXh zH?@w1lqgqx*<5o-P*wu?*BZICC$9>UDR)eM)6UmymUOV8HWA_*hm*Ar>0bDa6okrt zoEDyLTz%_v?5F8VmWp&>@8n)}aAQ8a?4)}vGmRLM42hXdEH$=W_<46!<99rgnSrK- z8Doqplaer|M?V+`otl3~V-L=m%Jh+`p`^>HSay1!pEBu*to;H{J+S(4kO=+XorvtN z!#I|y3$-#ClwlV~a#iiqzD;S5wJp{cED2{d;t2bN$K9LqTS`q*oX5R$0)kUZyb*$lTE6zwve~F@ zxC7FGnosFo&ywVScrIb9dd#71_UP=eV~7A!q-N?#@yBHYiYb5tYD9cvxu&lU1T#o; zK!tr<9d*-W6WQxYepBZnho%xJ1du_ZtB=}j{2BaLb&qvlHpa+AeAi|sJHDOrQnoy4PrO{`lyA4!{pzr&R7V(guVMDF0Rlm@!`I`ToW^WW2})^JYfD^a$qewFcW_A~|DZWxfby!WfoxR)Cx?XtY)dReev z-HI)LVBX)cH?!%UBGEegiVx7=RMt1eJ1W70XS7Rqvs6V?DHc$*+85lPENr;aw+EgS z^2HwQuzIl=>Zzv<)*iZ}Oo`^Zb`m0gt0mrVXB+wCyTRG0vegXNtkr1oEOTC=$r3gd zi=SSiiu`yPK(KF@d!Xh@yow+{@eInkcW@3%cfU<&w!PhM z%ezZ%(G&=k6|#*j=5L$vVsxOE?0vp-L6yqO`|GY9W3_fC@Ch}|f`S@c>jaZQdbo#L z@!bgtt6&<*ShYVCb_J65hK>?-4RJ?LlGz@9)DAVx?jhXh^@kp`--A2F20VI&V+C8N zq-xB(GB-fJc>N-Uwx3&N#}f$KFORk!WtE5|F9_3o8qfwCf6Xfz(mx-#L42f|AYIf( zbioL)Qq?of1)rVq3=Ig&_jGy!NClatclI@Bum8QXfU z=6Z8+urnrGDMa9i@%O_NEl~TQ-r6R2pWhoZ>17N^bGE!NeF87Tk&ZwtPCF`A6=sIv zxqS~lShH%$qMNNCjKK1GwtcRnA#FtJ^liTSKq(dNJ}SYP^&@j)<0{~L zk_3}s0pG?b}tZ%7v8WN_Fm= z5N(U`(fWA7-}(n!F~BsAu-yv=tNTtx;mPC<6C|u@1)2HhGQiNDf4t3 zbbY>fjf}N*dZi_wOs8NqQCHMwwo!ipTrltkX?IN}-Y)-~6NJU{L&W?Fj8%*5FC#2mM;jJbo(F!6 zmHgYy?5lg<$>KPBq3lxfF6jamv{2MbKJSM7EE&X`neH(iS(EdUY!%?+=f6JshZq5> zLBGl^Y^V4E%k=jn?4WlD$b zra=#cOkU(h5m?6;%$P+E?wJF(8v1XdnU1H!RHHo!#GeB_+fH-Zy?*v7-cRzbmy>(t zFNifo`7+RYsKqOj+kro3|I}N)nNGwSqhOJGYEBWR&#Gp`V5>hZV&(TcNb_-2H#`4x z%DiuTgjMbbEKByV&~%S|qc`uHLc_m(i!gPjw5)h|nVQz#3(q_YxP~kKK%; z0y-rHTE4}30hks;r7CKC#U^(f3#_<2RN~@(TOT_6kY|IG&H>*3c>LLHqH&AhT>-T` zEm2rNn&W97+c)Pt=kG!B;^X5h5Ztk|6W~WCb~gf0`6MEjDVq+ z5H6rPObj^oO<7l%^~oJB7w<2?uryO^>c=(Gsc*!3vWc*#159x@9x!dd>$-{~7yAz{ z=`&apH)IWH2!*4DB{Dja$wwtPE5WAYecpGEiu3lnvwb=>;Cx;J0d5kVGGwu0cKDJ5 zcrrD*lM0L(HRH3@UmLrBiBl^>t2&;Fe5OW|n!{0H7nK_C+npYd z6Q&pUDr?{C-_bSy4^LY*uvXY;!*SAZ>2A>fWc_n0Zxf~7oA7W9 zMg#T$>g+bVR(L7WqFT`H>!z**&T09jYW@8s?}w{^r3VUYKl5I@kbbTjeS!2Ezr z*oP6pd4UlI7pf1w$Y25~|Kyp`64BWm4gTO#{lmSf6PI-8%EV?&IxT|TSx6GWMg3>z zIT@&6GRvDyXwBs$G6Lq6Mu~f~h@--I8BdM)zY3(hq|TR~qa%?q`scRNWJYs=Dl6rB8VhDk`{4UU*upmLD|MK;Jj}E0&iM|X2TS6VSi>vN`2phFT9*{ zngk9%9O-wwx7_CjaK&}os+*%ehE4}wqJrb05?@CG5~#L$wv`sc6imo|F{;xxunlve zNBLC>TrR2(P3bVnNX?Lia#=p0U}w&RX_qtVL|`~5+HK6`iynREY&KF{#4E$icqCCJ zr++2kr?vF$Cc=CDPOQtvE3{ICoPLb7O8NG6G{M)o>w23at;o|>+11V~_S#gT@=&3{ zU&GD>%J}K0I|5Flip^#U6Gg+yDTSAE?*i=qHz$6TtzL_f@MFA*$^4aaP9Fcp!KBw< zO_WTvQv_|+y=>FfWES@wE*JhOBZhMx?f&Cwk&uR`V?cI}|7@5sj#P zB02lnPxTX-`KSYB#vnktD$lMleEW~w`ArtVYtUAP#H6T=UI%-;4DY9dprO}&wDk&K zhRL~4Uf9j5S^7ugy0Xb+Ng>L2f6n7V0qnjabquI@?Axt-29#Y&^+6*Z+1nkFE4kjd z`4latY0-M^vA!~gKW z0nI-^S67!$(5ZnfTwZ>V(19^aSc?K+>6^s(2k=Fl{D+6AXpi%8 z3}Wf!GXT3>?jg6Gcr*x})#?B2KsKrqpe^L_tfK`yv{#2(xj#J3qfy;;*3c;ncdR-< zVKp%s-gHwJM)OwhJmbs%Y@C(Vd#;d96W5_Vwt9#XwiyM#56@-hqYY@+SfI_TxQ zKg=F6KJu2q&1^CZOHXR?Fzo0WJ;5h5Ar|~<-rx$DSccQx@m?GMrNJ@JK0L2JiCOn6 zWvDv#JGk)&hH;{Bic;K?9D~!_z7xWQ$2Kw|&rOph&b}CI_exFK+`Q0Iq^jC}=pO*w zxU@XtYH;1A;;7d#^SI}Vc5Ad-X3Ze3XvcNbjj4*@S-&*`xxO)U9Yv=;+$?g1wtD>R zLWcLu21gR%+EjFSweCb>XQ^4Tze?%P0#7deJ?#1l@}*#P=~_j|Y_PU29jV^9_}Ep& z|1;+g*>Q}(nkU8%Ro}Hreq5whaxTL>u5Pz+PtUBXEB=IpxZ_*%kHN*?9)qwi<-TI^ z!&}3g+eSL0Mw|3~n@4q76)F1pOa+?n4B`;V+X z0g$0bG8f^}q<{A5H)pjzRxyO1W2}<%R6j`OCD3V|LW_z;F7EAux@BdsGW8fZFp_V7 zbj&=X87}O5Kn2Bhitt*#d51p9ntaFB@Rn%#>0h#Ygmiz%t*dz5tVp}@9*38MFX&E2 z4NnvQ`72;~H{vi{h@J~f%`FL*8I%3eBo7nRxxoKt&=0&2GntXWoqylA5fAE3=5J?w ze`i~qvu!|?TE5Ze(|vE%UAgDDXaE0+isRWmy!yAj)pntie7LUzU-1US_oigqV+?bD z&{DkZ+*v~ALT7nsB^cvQ!FvN6GWNaC?tM98P55F=$@1XT*HsDuIL|+=2Ft#|9NZFO zEii9TlQRMkWn?=c$j~(HF_fK`Z)-WJ>RknUh?asBH%GX!2eNIXw0^ehatI_UPMOCU zutNKXoEk%g*6%Q5z>#3oHpIFbR}Q*YcqR_vCPK;)IcKjbb5zYad8j@Hu<@`K^ZrBh zx7QJ5AW!b&CRc$tgx&ZfTYVgR?F7Gw6VZN(A%t>Z)-#LSPgZ$myFoEt0aO&jeLXZp z)w0Er%6N-7lt;1jv((5PcCHJ|5BE(Om;jO_z72Iy;i|zPZ^n_7W{krT|FK01H*VZR z*p?a0W~VL6q4$Mw#6KA!ynEpwyQ7&f@=yA%KlA`L5?Xd z(yl7#-iI{=P+suNx2Mw3kTc7Kj7tapD=NYmOefoe>?@yh*hm0|r#|$&mAtc^94E)o z^yPq=480Rlj|pT{^vd5&ZJNn9Jn(BKnXS_{@Q(5sIiLvgN`GgG*mG!3bygix4Sjr% zC52GNn~P=ahbVV$B;NlXk*3MmDPWNq_ZP`fx(hmLVR7P#f&1w(6QYTNRDm=nME|^c z!(~B+7Xv_3g38+jUWv*QV+5VJ(%6VSh}m?8e!ytYcXq}n8(q9E4VmV@OQ4=rz zs9aC7g&l%V*%AR6Ym6Vn2VN)x~sZu*tggXv(rw|8M+FL=a3 z+0++Qj~n!;BOx04Gbp|{AgxbEiYxtKs>bj;W&N%6)eSauv_>F~3oOj;{yWs1^U3AI*NbO6 z&qRA$CyjjcNQ*-p%Ox4Opz=rhk>$Yqgg@glJQEn%QRSO=mazmfyt#GL#?c=edrfZj zHifG2Z0_e}<$E;TWlF8|X-ohF6d0pekqEqG zxf1bdpO7I!+Tno>HgX&L9C<>pFIiC^829^Xm^VVt(_)j3-Awa z#-nMo$>O!SG4tnk>+k38zhU`J=G?Y4>oJ?f;V==MmApDy*iHSrrYD!v)$8Hr8jG`( z-UI$BwJdmGVoJZd`1FT?xc8IW^&bo6jdxi6lNa~mS9q-BQ}lPq?Yq_GU%2oPZk_L8 zW`7&jjB_Uw_=TO9+kD*rESZ^|SxozYkImt&i)lcaXps<65HmoqxUeRUzP#8o;45~L z{jxdn;Xp~GkFcf%`__UKuYsbouW~dkyH0ubcjdS7i3FPE32@asEUHFZ;N$6?HVu9zT1U_Kh?P9BSKdnt5=Q z@FnW+cZ>Q9*v2E=V=Q{5(4P+ChLPRskyL6mFYT#x2`XMl5~q_pI~onJN#N{|zu-EP zsIbV_LJlJ>Yqb=$xc-~D`vWW{Wg=3`3^?MF^&?FUH>MsI$`(F$jr{wS(2;$4>H9>C z2-I*H_)X`HW{e1_MNiYA_ApbovGB@Q%M^vPT1(htwcpH=h)dwBCA8g>3aL9^Fcr@d&*5+1y$3E_rvk|b!~Zx zo$cAVEQuCBF58 z&=KBE`rY7NyqraLSbMcdYh0*}Xli}aN}7kvNOMguE?`zcoLu2hzpd|pT1>_~ulZ}t*F zo$6}*(s0q9S5&KQ0;|p_ub@=4y$b?>FR;5b2nfZnLDmY`NEi+;82pUXLCdPN-qy!k zUWHQ&FA9Eap7r{N_z$mAe3v%gfMMQCQ>VSN*3d%5jL=R)Lt<@OZ9EXP4)#k6bC1eQR!l(;5kS{+BoD^x! zEA$WW-Bm?t6>1I<~4w?aO!K5Z5A z&ExA-X`gZ`lehR5aCDX-2m|xiY-XEEbll>2iEGC#(1_R;J2dBt<})zVI!HbI+SKBH z9qQz^Y_B2qVi0VElxa&u7GjL7tb}2%VdE|MqmleB&lYcp2G`5IX*Af2hn&gP6kzhz=$5%-Evb25ymgFw?KRjy_hW@LVjpCv#?wTEV^@BQFmFtnP z%H=teD8pMWri6@BnRfzs%b2iU=q^1S#X_k!I!$vZGVdxVt`#0DXjA+pa`F*=5-I0Rp}vU}Cpb8hh0{%EncQrlIUDS6r!GEr~QS3g8pNbTFm z(dCx~{1YQ~l!2wn=o-eDt-sx;uuj10^aAtK1O4*qGupF4rgUz(KGAi@uP0XsQbXy^ zi0A6edjMM$c!zH9XsCb*Q}DqScb*Pfyo{54@Y3*21IsT7Lbg3Kc5wR!bxpaQs3~u) zxvzhQ18FmA?5R|S^S;tL0uDOFRc5M4)oIVnXWRLYn-NJfpi_G;PqBJa3)kh=o^_8` zjA_2lxi#wJ3?B^Q=Sb`CwFecVxWXV7EFm5-;&wo#GE|wWH)EijdFC|#&zd9t1F{yx z8ej+t>y>?i`bfTBmN6=Nbi4tzS)h7x8hUQKdRIuxRMqQEmWlR4rnI9aunwiBCI^NE z-DzJeU)^SDJPR=;c#~iPmQ0oj@}P(@;Nlx!T#aad(86R_ipd&Q#zb%?=6xX+IOipP zLBigUnSnpH`@-0@uw4x6f+WT7OTVvxY#iSI4{txZ>dEArKIa_KyDjrjLO2Mcxz^sR zA`Cmsj!B=g{cEgboiemmW1{ls2OeRtwB^}9ggrz7^{9*950{*~px^+ae4*+^Ph2Us z;|vd+dA3m?|Ahi{lGL8YhGvpdYf{l%u>Mmx1<As1;PRdO^+uY6da#eC*`fGc;n@w zsHF7A~1)}6?ZK5c5x~gjR$Tp45mID7OE{Binaj|~;Tks>P=xZvl<&{s}VCh|i zPgR)Hd@d+Kv>6`eQ~7u~wCq%WLeC{}14+$GvOsV5ovE zI?d_ei0{@Vz?@OKiOtuY0Yum;v$a3ZX-Kt;b^scHSkKk2xHCp)jFh3WKO52 zxxs1!qiBWema9F%zGMk^wwL9r&ssZhDP8`cn)Pi=bj=b~F1g)CJd1m}@1uCvmsx0s z*AW{qc}$DjlPtS0F2Q(DA4|S|M0P{$LD1Y(CpxD(zi4Y|s;VtzQ{X&S`;vD?Ss{tF z;^{@vWhziy+9sh10u`;YklQUd%tNW+el zoDX~gvF|X~{sMeEy1u@TTylbg>*>b{;f6aHkXsdKuzPF=7*C;g^)563>4 z-#pEqrdV-M^72I=Gey=Tvb<-bZtItsmBy`DAJ^g<-B`X2o6)Q_fA}39#P=@A9PQLi zFxetuLzZ;&A?=VPB-&A{U&G)0^lUUh#&G#63b@3w2~8k#kn2AN7wGQOFfYe^n*#Ij zlA-H@Tw+B5?>Bf5U9?Rw_T380)Q`x8*|&X@97`-!csCYs|8zhCr_2lL@*#_Rm@l-a zPZ{@WBp=>Veg2IQ1<>Q{u^0dR>5Xj>8(-{@S)Q6AbZy@Zn5o)Y4~|*xt(w4VDG%!G zX!RC8xzYOniTgg;Mqe(WGaWv?ow9>yuUQTA7X*`Uw8bGc=}o0wm7iA6b<;hOX`+O5 z5gx~T8J~h~XyBm-NRQA=q@VSrnw0MsdUGeM=LBnq&!I}Y&vuS)x7%s+?s8-qFxl(s zTfM`oZk1q9qK$@{+Jlb1L-%X&pbRhUF4CVL;sj*9?lik(IcuA1QOhlXenRVBY|`w{ zPV;EyT$ z&&G6Ov$nSbo980f8xZ|r{epUbbjYFnNP-`fDF0qi_06%-niecF6{)Y55)ic zpBQC_otX>=Y|t%eRn$e72#FxjgFAi`+x2>MY;Xd_k%XpJxq z$GC(EK=xFvfC6VVU%XSkVWT2q??eh4Th=5@wr4r0ZNvpSwy31i6XaPGk`wjRA!_DI z88S6MpR@_|rG>voMU!1z$^C4%Bwy&hJV*kkZnSP@leW>fYYc8P)>1A=6rt8eA`2a9vUDx$?_WQ1Mm|xO&C_~&79&NMca<0 z_r1E7f*V`!-C}kMAQNaVBh*SVx~x~0Xd>r{(HtPh<5QM5as_%bUhbKSFoUO(Ib#P` z^b&5Bk=b)L-78Wx)3UO5%-klrma$UVOy5(V#hSaJl{=o; zdr9USW+hq(*0h8^;3O8{oAWLh-0EbdViFRECCJ$XEZD1q)(NB9ty_|F1$e`*1?(|wze zD~q)ZHCYna)(_R|NRHk35mP>2Z|A4@9Ao-NPpb1jyFSQm4BSnAZOIeYg zajtwx9;R%K=nYWIMgda!LR5b{Gmc>y!+Cn-e)XfDBi;Dx=))#%z@F^f(SS$3eqc7< zf26-AKnvDXo)EbcI+dtxl{fhjhsW;f02Eisy=G(g5;LTs-l?R+RT zy7ahdhbhK?C5Y*+ZFo6#HN5^6S2oDQFdLXeZ*yUU%oJNkL>_vyhnyORZfQPe_*a%oR@bu5J(Y)&?{o`}vy|Th6fnd1p+TZC;X7y=1fw{vkBq?xDLeSbT zBc^b+f`E^5D`@Zh$I?vxZ9Jy>^;T#s7io|*Lo>uS1a=sksunYz7 z8wd14s(BYMl1O#pp2lpw@kWmCmP}c9`0_gMglvCa^b00E*^ z+tS9JW$ASkjP9vq0I%cn4d;8mglqSS`Ub|-;3?pmCiAGuDB+7-^ zJ~=blm&U3E=nYv2&AzEP89d&Qs>%4XM#%-NR3uP$xNnit?Dd(F6wPP&D<5+R==@hLVQh*@mX>v!2I+6aTaIWI{=R!0 z3f`%&>6dpZ%Uf88M{GjChd+zGsy4InfDdlz#&;EO9(ij=r_4uY zsnbqJ0~t<~K2rPgt6|H^y3ex)_- zPU9b_qWZ8P{RqgBl&KbfV_I-`B!RK7Jh}REp>8V3w|P*RJq=mpZ071t{+XA zg2N9{<`!UDb7WZld~2l~Dm>ZFI;6ujXO!@Ra}cxGM!`Pq5vxO7J@*Lyk{TPR?v}9z zCZ-dw^m zO`jE!6$Y%`zW8gu>x|2~x zqRx!>UehU78@i$R4@A^g`^(^~hd0V#ap}$9vJ{NdnsA_ki?>(&N0&=ClEdrNoW|Wg zKf=-Z2<%gxH!@F^Mk15t>c0P8gxD+)e^bOWKAXu^ZM&pGSVS|h37sXZ)^+5WF3bC6 zc<6ul>awy%KgRojqtTg#RQUrfB^iT!7fUrk2`$`Rc+qg=aedsl$1>>-F*>KavD|=B zvZ!(9iC!+6BMMZEN3xj?Hch>g)@W)?8A{grRTX?Vk@0tGU$sH6YQoX*$n~@a+T7~? zRTjUpoWfev-rW;#a#g>5IBH&qbsc_^YcbXS^W><(e#3-}UqSEAoR^1nL=Fv}YS+>) z47(PpU}no?^I)?;#2m}9p%ZNw7Z;YZ3|A9>Ybc}!&Vi3TFwf$WEr)m(nSt<78Ie`S zIo5umHNa9SM2Zin;r8bl+0Jy~NI8Yl(o*=*ipS9dkwDgypFk zmIMhhp*B(tYoD9X-Fu`%6}0kuZ9t?~t_ZKSWG#OSZUpo8H#m_I16<-p(@N#m*a!X zX964TZo41g{sR*S?evJn4F%b7`~ywghtygh=Kcdc^+j1=dsn>wfz;0s=nfmY7rFSh z1MleN>Blj6A3ppYu`7?~mtAf~x}+@|*?CQmGh~r-gTq|hjroLXIVAfx=bFi@mO63! z7gi8Ut2K`W^4A78KEx^WJ?5qWvAXLwzdeg8RC9S7UajWGxbv|w0WX>4DE>q(r+@+J zb!?&+iEQcc_V?;lEzAlgHusw_nM|!}n_Y<5%8qeQGCZWNT2!cf_}RQrk^>hJ6FKDW zm9!A?9^N2xvo)7fCRfa-?p5U!gEP34W5bYCvYcuB?h`QKPe^lr+cx*PDf)4$V)aum zn3F$3+~3>N^Pb@k`r)k23c-tto*n?S6VFmtW7&)ud&%h@GeH(IyB+n*D67&zuv1d5 zHl8HvNm5)K&dQer;80#ZyeZq}e*3TL3l_~}}ud|o$^MCROR2o`CnY~n;( z=!{}xT|K>~(i2t$YeCf3C)9403(HGrM} zstTy3PQ90QfS#eNA`_X=M)P%1)F?C5F0tb88}oZxWa5^LsAF0mxIW@yROv%o+Q?PK z_Uo*B^f{ovvJ%v8)iaZ!PcZ3oS4=N9Y!Faa0LIwTn_$@(B3mBE>W7S3nEIKHWuPif z7lU?JKAzrA-v8VqbTmc|>`28KJ#~{)J`tC)@`qD0JlCokADf#4<<>PKpH8(8#q&WK z3wE|y4YXXZHIc9fgPYQ@%5G|PCZ4k#B?-|67+Sm+`>@d#_yvwlcLWYM$7%Tc9C^2NWkEeq4uwC?Q9$W4%bl$@7MYZFin) zr$1Xvv@D}t_|u|d3S92D`FCFfV075QX0ndEtY*)?!(@h!DR`yE_go|faYfO9qVWC$ z^rtoAb}3l2$KQtCoM*~~lma-r?CrYyxwQFs$NK;#nl zt8K4xouhn5DTeQF&TlR@cxEaFHWa}ZoZv&PC-7xG!JmOij}^7(>`J@#BlgJruJ%pZ zlQ^Z)q5g#R)njamkL0Qijh?YJOFOc(IYns30}s zn@Mw_jtB2o6f<$Yv7k^Gxx5|OnnP2I4QK?A+b*K6HEtSmBdhbVY2YcCcQBOm-~$8R zA=0XYqXU`QQCDBKalgJDQ75KJVw18o)b;6fmOvL|vCSg{$dc%$E=<6^e#TN2nU9x^ zj1?JPc)Kl!XxNR~9M}Ze?}JHz*evaSK+P^2^S5eYWYER(AILO`Jd>S_$@eAT3Oma^ z)II^P*B6u++OkSa9A2>8BbdF9HhaFoO^>XhW?;V$=V}Y;LrcqxQH;C(;!`}`(BrSP z@UTz*73d0=wU0*UpR9FZr6Z1ezMgVwh=7J4evl4}d*BO%#z^VlU{bKl9VhP~_iWbg z8*PBQN4>nNTiOx`9GotP8HB|;wREmiDT^cUX|7jL0$9Qn)Dm(-^s?ro|7ZKq*fz0` zPjwI+ykF+eVY>xbBHUZ?u9HZlQ*<8MUN>u3ubqARlh0O9NzxAIeG)Rz%7os;BDM;k zG^x&w-CV-^Xd9T?5muMi3KSLMihY@c;XA19FKm4|DM;yY5+fEV-ntfx8Iv;3j!1`D z;w8e`U6O8wkEsw!<~YQ~ElLe&ZJ)4h97inm(XBGY3w+kntlbe*j_Z-ck=R_;+p_N0 zKtIJ#kl|%p3}UheqPjo#CH$u1E2vDw>$(Y*AAdGzH$LP{gz-n0BXucurE0f1|9ndF z&Xe0)W=%UEkAyhImbJYa)qE?0z$R75_5_KF0Arw29haa+l=J$yp>^QE*46aHTz9z)9peg>3Tn2ZJz$^e`R z;eazrM&so8Ep}ka3Co36S+8Ab85+H-(34;xg_z`?_*RZ%D2uzzz0sL~^K`dH7q*Fi zX%n3fEEzW#5-6SkhOdLrLKd=#UF@hiM$60qc*&3tX!S_v=w>iBQ`D}|lgrZ!@}1Fe zi2QNdx@Eur)LjKc9t&YaC{G@=ZZkLoF`d^zoN67~Ss&{Lj!4ZK{((O5$|*i+VBOBC z9tgF|;g&2nVE#Sf6Bp*MGZS^6MwOu(-uzCbOvNi~vv{sl-Ec(mN!1IDGpxFbiD_Da zkzKl@k0ntFp#)3tPMh`KiA`l{topaXM|-VoyV^Vxv47}l9AKYEtmW!HgE+YAtd>Rw zyl`}}b0uEYo2zv?7AXA+#di-Z`FvrDCw0F|9k=`QjyGBtS2Z~|NKQK`&S5{XG&Z`1 z@x8iwQ+RO+?rSk)(nYmY0SRZZB$CzGERbA`5NW$gP7JTH6;3~-;GsuJu?x<%Y zy$=;!SLG7arF-dAsFx<$>`tVtX;ixpv7>cS5?huJu;w#U$>mJFr9BI68oDTOv~^RQ zLSd2(RcUNGjIq5j`P725VoDq=d?B~}%f!r-Z(HL<{GDq*gipt;mSpE?eKD*0$iV>R zn&XU_t@mm4juUTv)0E6J4ujvUuYiJ%?Ix(M#~5IB$GHR9fm#Z#vOQsg%kU82J~KE! zp>%Y)$EP<@uIwy4{kbk?FDPm~@M$_tmzj7k#QC!x?VO%hw5YcFnp07;8vJ#E^hfh5 zB}TOE=Nuz_JqBPuGT*OLZvkqEn9B?2iHL!U*BTwM0|aRWgv%~|dUPD>*+e!C{H?AF zzsj7rvLF|GOM5&V!35oD$lJMq($ayJc zi~C84{S&>lgm%`ab|Tbjv{;f|+@^=t#f9$q(+(#Q=%VoEPG8iM26WYiL7f2kyuR{} znMMlA4?Nj1pv_&gRI^(3ob0@XYepYiaBcCKIagv#+si{!Iqmq~*}hvo`Mph-Z+;#E zZ?6SepFGj`kSGH?Mc_mswrSEw_72F6&y>dwnjF|V^`_tP7_r`K7SBgL_%X$f^Af*Q z7Js@eF!xpzJGsh*HY>4viM_=L zFOm`#!6fyzub!A}!6TeI+bR>@s$la^bsyT|Magnrr5U_49+|8`Scf;LFy?CMXC&|R zrO*f_g>hwhvG$il@fn58X8Kz@6-%noyLo?8tz*?CR))bzM>$1Kt%L!NY5$q-@l zI*=ohGUH2nn?@A1x%i7&kY#1PQzJ(i-3EU8XN0<4GOT{*H+mNU*Wkg&`r{>yO_0V%Y04H2|7PsHUog+x?KgL9wd@pH#KLY~@QIL@6j+6J! zUm!&M(+3*JmO%fF_W)8r|9L@8wH%|EoZb)zC;E$%%t+QX)4llH>GQ3-b+gQ%r+_n} z)rS~6036&p&hOTLf$pe6XoWeap3*yYVgEX|k{fTz%@!+Ag8(Ak|98#xPv`g?nkAVr z*J{M9F@v2}+>vYD<1`w`LnAhoNHyev&AJUN4jq??y z$5C_ihu_pV*D5Zq>(Y(1yRG#dlqL(6{Rg_4z1F;y(l-l`26l^_pea*&RB~X#=ElpDwU}0!UjaS7MZ1i$ z5l~;bt)Vv-ZFdt1uc{l?6u8gy_S&*sL#Fa@T|k>lvNuVipddd;m-*9lAY4uJR!M`f zr?>|~C6tWAz-WmcV2`FJm_AYx#AS=)1W;ZaRAsiJ=kFF2#z z4@u_B!>;X)2|k+DQH%ur%@*Q%5ZH!&4m|ZckR_&kj;|kc|EZdX7t_Abr4RSBE=n6u zp)CZ6TnW5tS|Zc_#kFsL zpnadHNZ6j{Vs|0FEz?rWR*|~M!qq8|1!OY*+Ndd|TkPR?U9oib-UB#Tpv~KqCJ}D2 zO=}I&oN67{|Hv9$1XV^{m-~rFW^8P#k5*%K{(Rajog_+e`%`J>E|Fc7MVhV51w^df zXvzeAsu%7ga_@84<9=M`8=r1b!&c;5UnhG}m?_B`(qw^m#Z!1#I{DY-!WQ9At6;}NrQWwcpq3fx zNs=W)1G_~Ct{kxF2Vu$=Oh4uEbIozU;eq@o`|F6v$7o-Bl+o=2-W7wozk0WZMn9wA zE?+G)oF@hfGfC0ZNyi6c4F|U$C=E6i5HqeZ4GW*BB|a>zjsoEr%{lcter+ z+f9OD-_%h=YYFG6oSEVA#h>Q1t>gvotiaW}oyCyCIQ}6KEixDTksp6>_o=nQte4B& z{k)vDzbyOBKJ(vsh2dV0cWWJRcwFtVZ>0S*IM%H5!!>^8f5xVo7ENRcvppZYT$g#VCzHTCf^4 zgL_kOCv#otrel*|@9aj-e)-4OZ1BoT-*RnUR#|b*KA$pKmg$@kKI;h0HTt z(afi*a6H8M?`@&EY}vIM z@H8zfft@MET^hz0RjgMpR@{eur0nSJ+Pw5GTvPeN^{+qiC0bX5u^s@?B4vlQZ>&HGNvqj}FdwA~s{)r5c1!8*D+c_a!?_>l~kW1B+ z^~*9VPE=o_k@Rr7H0Kg-*lNC{v!HJmJ6W5n*<2)sCCvdq-m9%JPRXZz-4KXKyjssd zGGcKsdMEGv!HhqfevDYqhFfGQw#k1S2E2{4D3O!J!9DJ0qQ{xd8vVKPQW5#IuwQmh zFE=e+bF{*JY!vli zHbVR*H8;bD>q?a|LfBZjbY})hj&8|mRn~KQ@!@12Q)x0OKzKyk{uB-E(Sme8`C)fV zQ#(L;v?w%Gq#61k3A)+?Qp$%3Ni;Wp=dtqOyk3Fsj$antm0|Z&wKC6l(DeG72dAg2YYm`3VQ$sc%}Z#HSo1~ol8J3bp1+r-P|aXYyA!=o z>2(tx}YL+RC?Z3^7f*%krk84`ff@bFXN3gk`6;zwxM@ui()+9 zbP@ZueGFf9Nj;*?}^HLl=2_7mGu% z%)5ITw8>M%g9rL`F$#n|{?j_X}cW7Mn{P;B9d$f*osqUIbZ(QM@5d|NgUk?9{klZ16JT zC2<2P9Ux9k=AyYGF%&&L;)XjB&%rj=YkDaDTiG29$2MKW&=kQJ66epJ+8nsGG};NS zH7WqPsT>aLr1= z^l}`3!F5*$D}lF)0W1R6e)ZgrzjxECsl15|C47Er$DK_iAx>a{z&#cWbc0jyku*P( zZgnuy8p6u06!UwNMxC_MYKcXT3$!op^|AL_<{+)hA(D`)NccDv1{eL4y}?qAxHo<5 zh$+=7#%7DTjOSEk6VIc9=)8bIQhAPWko6DHzyUz$MdhBy1OZ+d&n^b>%oY%obX4Te zKviO$Zpba>81$LONkZ;AcP}~F{hh3v zn%kI>dB9?GDQlfWZ`y%oU4aQf`=rN690im8;rm9WFGwo0iLuaIFt%r{vZH6Z)DCPh zo!=5HFPC4^l(Dx}d0RTn((6GW0qX$}1EgPjS;=Q%$ncC?gC#>q8oww0Fyq9rFP$_ zSC$<4z6*EQnQMcqo^$|zE9<8I+~TLV-wSL;*8Kj=kTv1PQJvm+!{D%`+fDpK-}P*f zJuuPt^IT%4$;;CGPgmk(QF&^v&;HOV;N3UI4KEAl5tLF^p@}wJdg$b%UGn&uc~AzhH1NMj}J}wnELQd@Q=8wlYQ=XAVc}(pqDx zU()x}lX+XR=4!{lPdZ|^(U46-Q7FZ$uY{hh!}h$@)_3)|=u{8Zx{KM0x}xy{6Q6$V zr`bgs3`wRA>-ii^O0whf`Z}2fN7F_Leu|rNf&s55YR!li41LT#BrIZSbuvJBgPf{D z`I#h5EMxA*h@MfSt`3R-epgoye*R;c@l1Lbj%7*mLHv_lGZFi*8OObCTJSC~xrbuT z-22n-xO@pT3F0aZQShJsdJ7P|j?Yx0o1C~e3e#z2 z`ZXi#7Fd-%*ka8dt`tnxF8Q4EGqheb6Imp?Q(034KX8o;o$AnP#}8WkItQlqkk!@- z7d64xu2LhO|70??DDv9wU1tuPH)%rMrE@oUL96fZ(+tLqga03h?_m9rCJ0OSu^+rZ zbKQ4q5j18hc=uh#UOYyQ5+HJt`~2K}J;*+6i@;BoXLgW{w9^kz&GO|gn?Fbssk1(i z#iq9NCJ*}6&DU`#0oX|x%ujz*D(O9@Y!gYud3>(}Mx4T)|a1K6ai(w_1#ZYW; z_J1!GNPb1qQG&c-wVz2Yj_Em-*h^52OW1XSS3J-&L1b>vWaQO1 zCQED(@+e|%*BqtMRXUCF|>_}PBd-9wBp&_Fs~ zL?E-3o@S&u|c)dOH82xOl=0uMMzA9Kjd)gk%Qu(CzG z!PPUPtZKg4oHxGA37au@9%!KTijTn_jXF%!=7ZZ)}+;s^uJJ=sfNE7yQUj{ zo75U-&9bkjIwzxYOA(-7O=@rNDdYP6;{(waI$|$^IA^wPUC?K;`>Vptme8V#P zB#&+EXf>p3)fdGf2>BqK@si9x8sEQ41hGg|$S6EpxAc6aS@L@vCzk)ZtqqT#h8;awn~b;*5d&9wHRh7baqZ?l3~<3;IDnBr7FZtZd|sTcp#%`^JKpPN zbJ*OCePEub#m4CKfGd#5Ce?SB^~7S)ZIX0(lg%f~eFEXcSZl48RFnMcL$UjH9=hsB zfC`!rC3?;lwJOw5oiVljp<&G_-rdu_>g{LZlG8=?LOC)*yo>$-e0VO2j1Ee>bCvxr zPxMcd^TD@IF@ztZb;X=T>zxuUd_Zwk4G<&%AX8tWKd-|QgbwGJ-dgz< zoXISGjgfCvy>}M1v<*6OHDmVyUlyEzfdjeqs1lMqLFUCJ;q&jFPB*FC%(U(Y>U$Qp z^tjKv<8*vU`+R4oi*zTI@_~>IX|W(aG>~_7S^CQ+m$sEguyVE)>_&nTm(=M;>gDU< zLHpZ?diuU%$l#J*a?q>N9 z7hijqtfKL|n?=;~R*Z6`KV+XdoGKqw%m1lbd$g4B9e=LlYsW(5Wi2`zX|~9wj_D2%v`7TW?@p*Xy$)(jR>K zPE26mP754lBvL`-5^xEa^?j!IE-5oxy=IGN1t-Is0$tDuGqQG}eaOA`N4w*{4GPaX zB8rn(SY|`MALbKz2^RzmDfcgXZw?$)%)mqlQY@I9%i} zU_0LLX5^j*c%aochhcF+PnvvN`Eu6 zdk&JCsrU#%B3E&y^QJMbBv*_p6X`C`SBiauCJyx9gl@fcURM+hHS5&~k>d(bIa$W- zUn7P+jn$fLZA?Er+o9aL|BPJvfs{udx z)|x-!5)_JCn4uT=ni=Ew7`GhsmgTbM9{c zwtte1eUeJLJLucFSe2}JKt@P&ZNC8yUOS1~tFpNaG>ddTh4BFwv{NR8}6!*zvB$B5PAV}`H_;dXJ{?SZAZE7-OR8qv9^7xxsc zzEQ^eE#S4eMIB=fXIAm9(052%Y|qTBIfsF(4eF=p8c@kIq{)s-?~7g){2x}JOB8I zQ2JW8?Apw&9-nrT;|lYG@I3pVCn;7?x}%ziM(0NG%F*mm4h!1*$KPA0imsMM=401H z@>`C)3aHMk2bk1=@cF{Wcpn|ytQMFr<{U zEotAB9TgG1?n7_fzFQR@P4FB-f-q8Iw>A3(x!6o5WVRVXJ~Ie|fk7B~IOPf3(hrH?iqv@-zQH+85=qU{Yg~L`3`_ z_MK&fqw^0VgP=VS+3Ihd56ueAb@p^f$?;9~7IJNYb$Il6WL?p;b;=#>b^R9%uRzCKTM9gfUXF8O z-teQ7x%9dP!evh`qTRf?&eGSxTH44`dz@D z*rsDeo-#+Z8t^^Wbh<_vdw+U$v76sQRijlD7P}4i9DyosZ-iss;?3@uw{@EZyY<&$ z&165Kxw=UwCmqg!{xJ8PR)m>#;le91vVv@QN%6-ca|5*NRxiRb4%#S<(6l8odc!~Y zU~MKyl=SefJ(tWnWqW*?%?H8aTd}&ztvsF_4CIw5waH$xE@cCmLj-)#uLP7svgEk? z#*TM?whI@U6LXMcpkJ=nuJF^dak*mARU6ZLGZ*pIW})^D^E>FJ-M>7q6XnP{{qBX zvp_ajX0f*>3~yiLrVgz6Vslr@nLpKWo;&*YOL>L#6D|ezuRf+9yyB{a(agyx{kBix zRYkwWR6SxRhn1VZroPgM`r^ff*T5yW-4ZXX9J55Fai$jMkE87&P55*71n$I{9pol? zK0ejBMqxWlx;lSK9pAZAK&C>oOG-r<+M^Pled`OQ?v28ZCR8B+SFYz zO5A?yYdc7?bXxW)2SS>rd@PKiI!@-`mS)WvZW%BVqPp5X^|-Olt1gZ+3YXctLP~j2 zV5J!~_VRfDdZwHnS`wg{Z;O2~Q8@jR!y!+`P2hxLsNVk1M8n*)dXXJ>{oeAoWr}$Z z@GF8of4%PGhcb!a2w34Ya{GbvM%?91`3H2tdcQVX?C+PXTB%L+w*!9S7(4)qFr^s_ zm0FHn$ik0s)?zRmQdoXx8J5$?q9m6#^KN4n@9JGr=T_BDyL8U%c6H&{z6@R@38U~b z#Tu&OXFt7+%EQ+7zyT)PFb|S8pWg+dztw5svTk$zr`p9<`of9GfV`xM59Xm$ZO`|{ zcw-f7!UMil1xs(~WvSpUNruSReGPf`F5ov1=8Un=O!>3ztI|`6#63LJv5J3PSBps|%7Wyq zlugkdEiTI6Zw?Fj;WTU62rmIclnKM`d^Q6ca3S4b@o%%>cqIWsvC`NU7MAg zmKJ^)vD~r*Osv_Z|K_~6LNGvj74Jq_dOz`x##`?PZ4ZX_996rV{}3}fNP?jn<*pgE za|rKa{-y!W2jD|~!a`Z-*fE_Q-5I3o6WB^!Y!@?dh+#qr7Fg_ZVK|!1I?IDl2;^E^ zFx!cN#zJ-^j^~wMDTTPC)X#u$p{hGFf>xe^`bMK1g!FXgD4ZJ{j=|4PwJ`%w>44uCQs7wgR3^8qORJsm!3| z7x)cMyy25HN6P+^Vl+G695gHX^6rk*U#At%YC99}l;JR0o+gtDrwr%U`S$jAtcpp+ z*I(XqYyziMM4N};p3uB4r7c2pOL;VYf!B&XN>wu==QB?0iQDGYsbCKa3DY+FY4*8uvAMCY`5R*b{CWr+ls#XJ{g)i<)bXoGrOKz=v}Qst+m!q7gI`TPXxjkuY#m1aoB?-%AX6X z^;&Hk{HU}YUF;iDZoH6T)-jP#DV9v$O3S!E5)@Xogo)Q`olce&eNvk!w$gR86Col&I&%9|%O%AuCLF{PZX^5~0>?DZhnm}q=Ccsxdtn#CUa#`kSq)_r|jpX4I2zhMFYb0h;6RW&|MS9qB4D&+8oPaP}lqk&gSyv zZyrUjNyakP6rinc5-LB#X}d1x0e2e^dV%i*cg(KKueT#C`|*-rw5A(82|Kb7Hw4t86a}EMr!& zXuhO~XqwCZ@_vnzEk>-6!%v&zFfULzd!krMmLK9=5U3$_?{Wj2Z{Gw>_?fh){Zx7I zJ#QKA>Fd+i+Sm*61mQA$yI>Jqt^MW&U0RH?MSL{s^J;@f*D_p4%dR#4~uf9cB~ z*5Yo+L)!1zGm@^rQ@jHr=AJdU-F_jNXZ=nO%Wvo3M+Lk%iDOh)E#Ms)c=dP(Ebvm! zSrw}Xp^dkv-Go{8++-ha$}G z4$C!HM}2E@neA@xX*EeM_@?Z%y83Q?h%6X!01o{Jaz3W_@!EHe5>Y7*LC1P#h?vK` z#LBL_fLJdg7scDgm*cgKphmOjvgAr_r_U`ZjfLQGQ3darynm`C)cxJhH|XP8dmHQO zMQ8i{=5S2WkLdd9(!B%1x?qe^Xq{f{H!7K1@vfL|NWOK$cd0w)Gju9<_9s^2Q2~)| z56SfFX0z-cYrA;|Yvy|9%&em4yAeYl*%tgF- zXAUz;cIAi9W%nLJt0h?Y<>@dZ@i#*9KkVjW^&@Fp%sISA>fT7Dopsu7FWnPV`hlJr;vJW;l;@P6_y=kw z0MNpd;0FO30#WBGh7R8!!H4{B<1S&=Mm7d>Uh%}xjn07^W~~P)V1A6wiNHE}47)%7 z>$fJNh(F!jr)U2_#`Dy`hKadE|JT^6KQT*4w?AZiTknXh*07|N^kH@;dX?*(-ci8f z-95)Rg}o8s%*rZ(k)gP{TbAr6!I9ZNRtdUynEf_FC0|`uVNG=*M4!=500s^>h8=Co zG0HyO{?tbXS56#*sQ)d$2s++1n}cFlZJ}sSy|4xkz+skIumc^9GyeF0>I~+YdFqD?*L0m*EXE(L^YQ%_onoJ=``)#Ut@-1^*6(@p2gOD zS_{6;NkAe}R^Wf$JVZG!|9b`URK1MVk?fJ^RK9Q}t3Jtx9ja=P(fG_Vq4i8pf;SN=pnhM+ckcDY}~gp;y!#^)j4`^O}pHgVvn|- z+?nBhxH9{*9np7Fr_#Jp#~Uv#_d_HqAY%eN*7dyaY`1)A5UjoAz%Z8+s$d(16e#zn+GDKOuM z@7d1=$Zn_&FypaPOzhB)`pUR-7Pvv3AcN&)lJh{cup#pY1TW3vEIG>JE$3;M(B~^! zS&cuswQCaHtrkgBH3G*L>(}26lE$#J>95C3=X~J^N)hN#$hpts!!}F%djmivoal zEDLPj;36Bll*c1e0*a&NeJ&-1FC;}B^cu^h2L7n@SQk0k{t;^@FTSV+f%4q0 zAk>n)_h@UUNWzx4nsvKpIJ0~VhetZ@#t)%K7hO@|xKYWI)SnelaO}^BT#03sT>K1H$^7NcKC*E-_svYb!ece)h8E;)%*8(tNq~VfIoi(T-o~ht%z`GSCobH0%iYvU zO7wa56L&u{@qmL9OhY}tQ7PL`XuQrV%*6d;rS25I__CE zUb1@~W~^A1Nd8hTqOr3}lhc-%fshMq)}LL(W1m$jI(n2!sj?9`{hWgf6l{}W!}*j@ zk?96u`ut;4i0qk5Aw`k__K^{9B4-#fp_s+~dtbTwhqPLm)oUs%O!#Mu5RfE2Y~LSC z(&L?SIgB1V1reS&=E_5_qhhdXu!06Pt*(}w4pnRo7&*NACbwR%KTgaQxex5;X%r?B zw*HtOrB8Q-?`Q!~;E_Z`ZY%GZbMM;eS11l-feq!2&21GmE1W+z%UrA1XM50L!xqv} zR~L0lQb%QoYL8A2$Z#>mWDoN>HY6Y8|eBcEdArM%J))o8Ha zzosSjna$qv(s`r9z&FVW^m}Dv;jsTRt{Q@CEmb{dtnyVUQ!R3<`E^eZ>GC`06ec z2LPJRR_surI-0;O`QH%5{{vI}?-6r67sTYV?TqFz%|yA$in*_s$kCeFYCvk~!L@9L zHH`@*NBF+c48d@xw$hH1x4E%q6j)&_z+1&~VvJ_ZbWyZ03y!t57s`tUbK9S{9`o=z z=-hwx9CQV%kO@TjcglfK#bNEN=!%o2y;bS9rfCuVfKpC6aoT$AJ*s?5UFFNgrMI_* zJjG7STfqULn-#Ei@InvLx)&N{N)r3-q%PKEgz@9oeB$z8)RbFG*1 zfssELbILdkj9PdZCZmzx4jm`3KRPBrcXuoMXkefbni@oCCZ5pBfy&`^yhK#7h;A{^ zCqBOzyitnT?i+lSwlEv&1*1Y^P!ylrh#wPFWzX+O0KRg>xZh-q2Ib-)^>@;p6WLV6 zbkK`1*`)T*L=P^&#(D!U7_3m#1d?yWanH2%KW3y#-sW2EHNJZ&>#Th%Y_Q<$;D~!p zv(HL5!*D^EHFs8t+_oKe|;5BRSsAJ052!R;K-}zz&y&h!A(R zSvo4;=+mDUFMnq~)8D~&p33&79_^9j-JL3JX?a-KmXzZpE(d?dtrD431FTs4Iz~|g ze>IA98;45gHMZ^AQc@&!R1^&pnmnV9WCYB4skC$OBVE8;Zy|N>S88ZTdXoe98F!9? zXc{WLB+E7gs$@7zPM7%-dTCyFniFuzur)t8%I;vidxB;w#=M#Ze;&2E>S2sXVvBSX zwUo-r2oqxJ;*O4UF;K0(_DRB}EGLu>e$=_qAzb?>hJm=c#scIxXs#bl4<8N95(9^2 zp)&56(E8tL_K7^QxMyy% z`Jru44b}Z)WQMxLXmM7qnVEw(Ty;IJq5iB^FZQ+u`VFV+yz?Ue9sdDM+m46&T^mm> zdtZ)(WLb|UvE#Ogj~g$Efw~OVJ)}g6T=VX@XR4^VHeLHNEV250Wu>kD_I%f9I)2P{ zs6Qv|f6(=oK~X+#+%E`H{% z-@FaB#?G|<9mJN9yOi_g87xXuCgr8KCZ^Uzm@Y}t#Tgv3l#+j1_vK&So0wCv^~$*K z^^GJn{QP>KRAN0RM0eQCc-T=W-P{A3ZY6t$9cvJj$T?`r``EWFTv)xvF?r}3BgLXm z#lBN|`cg$Ok><8MJe)7FPJ2X>3v)17v42vlHQ5hJ5s5w1>%JLb9E-2OS9?T+AfpXg z%|Iu79t|nF{pRW{Pt65p8*u^Y!fg;`_t%igrt?_Y0)##Kdb@`@z_*79&!}UTPnNUz zFBLX^T*;NPOiK6LF%Im_+N<5R(!MECXub95EDkaDCMQp+o)g|4vIFU&23cce19q^b z;f>YUz*0g{6mj}&^%4&7txbtZ4S}R^%s_|xYCFBhhh!dkM{3dBgJrdQHr@<3|?8|L|b1L|YbeEe5OqBRW+77_S~D!AIOiGGrX z;>Jx@S+wXTOC5H{ag_l7n|lbtzF8V!W0}~Ry=Ll~d>{ou)>G>_zKqg?UT~N*hJWw8Cw2beDoy2f#yzQ- zEnu_KFT97IGx53=!o0%6|GUP{h4vA=T_!G-RH0wSt1=4~b`=<`K+pYljNKL&^l!^| zbtq4mH{(xhc8~OA^vCqilden0ht%=IjM46VKM|KU&6YeL%RRarz&+=MBAOHRf$bE- zZ*tk|7Z@lxGaFTw2RkfJbX?C%=YZY3)(adi_HGCh)iU`z@m1vF88&%O>|P9E ziy^G>MKPhDPld>%84=X8ty_Ym<{af7ljRqj%B;x?7CSM?vSC^~1aWJGTE9x^W_&nv zkCR*A&Swkq0~=a!Ym`zD-*nir{lyP4+O1706WUqDekNkPu#aH`a+P~1K_vHT{O2vd zdU*8jRmV&{da>Fu!RLx=jtL=1Dm?)d7(Xp7VXnvzdUJ+ML)>=Bzc7!u4^C(_%8kwL zCG^?iW^=Bo3Ux}gI*bc5zPBHBw6WNk}FH!gp1E^6o0+x-@C26}9t z()Hk(HQ1L_CmfV3c?@D=L0B5?Tst_h3xZW-Z<)tSFOKFrP9;j{3D+C*-C8OBOV}0pPPV-T+dWdgJZZ&P`%j(^Er9eyfzcFmSizfJ{{Qs{K5irLq%=| zTb86Fybp{)a+Q8-{U9nfM1)b~Zf-%_gkhI6QR>|LP{UKUHzE{gGQNBES7+uV*h(#@`_%CAsT9__VKMhYwI0_ zs1N9;U|M^LD$=G6WIT_U$uv?pFGlBoRkajq;r#oZ zf=Cq%-WFo9-1eltqZgaAIPweoUtTufiEV%NvvG|9*w#0say1z18@Rk1-6`Z;HY7aiIx@G!^g+p! zkHagG;TuXf#mql5pBOriq@6bE=`_DdoD^2;Ix?-PRL|14(UM&R6q?t%cDp_aVwfwP z#_)|~dY%gNYFsQWrSJRX{k(6YzJ#5~Vdn!lNQV5NH#2RV=TO5`5*O~idWWx@(_?A8 zdrvsoDe=Dag{WZG)*1l`@*qv|^mR#?sKGA==PTUg?>qjN!lXfM=TduBL1O3Gy?M_O z)FUARi0w&+2l0jUCMn_;!o`a{w!IFi>R1cMk3|O?H;0;hV!W4N&)Y-SXp9tMpo@3> zxkj)!Y?C0p!S5PZeobi0Et6&}Mm2U5xcx?o*5MpZht@~(BH&%O@dXa_TMil8Zv=qN zp^FQm`ySeFMP!5@Ua3lMcDPQ0oc+CB@l`gSqHQhd7H(ossw~CN6;ncS1QRdB$vBZ& zZ7)ob7Z^%-!wg!6!pv@}*EZF-*gDHF#I^M~&;jePVPd3KzN@7FTXdX++Jq*^lli$S zH6cH5{_Pm`52UDf!K)Lg_(oA@MP=s4#Cw@-7`N7w$CEnO>0VMO*Zko&q2!HWU?tw) zYR;ROho9c&G0gnYh6sFnT*5}2IGR_vUz^xcOeMMmqd{~bVul=v8?=!bP+$n=Zl>T^ zP8a-m@QS*%OE=*KpZBYB83%trT#%AG%t2x?vM+h*`i`-`qRiMUH{H_AGY&<$?uw=y z-xBPVqw;IoBFz_1E>x$U1HXAU&3&w*iV3xWf57rS@OjIgyvK9-GqOUZOtyNNJJ1hp zI5FcMMcZ6}T!?}h{zEo~5iLGxJdh{X5qEI1Wp9<Yl zMw2FCNzStIi&7*UL!@~Q+XN>;Hnh=w(e`+I3;S7>P+1=+E;pWS$qgE4sKB;leOGBEoM95y`P3tbV7i*neBbmj0wb;S$77 zW!RoC^!tj%`eVz9q+H%hP#2U@*1uv6VzWHrlIyG93m5q^X$>sH%Re$N1Q5V&K~zCH zNDUa;5SduHiqv?oDKj+bRZ|L3 z$z%f|*C2~*06!o92`JOQm$QCRl5c0EsO)pUDDlkEAwBXMt=~fpT^EX;@k=~!JKQIm%(W-IpkI#}V zV(;sZ_s*L>#)0Ej*)@Kdh|km)_TyA~$!&N(S%cC&u%$y0=l9aq#Ff zegtuO2AemJ`nn}Uv@&D(#H_oATDNiLNKWudGV}DQ?R1+TMrOj(?PacjXr&!xAaQr+ z&y`C7g2zdOIPP(n61XK~k*pt1+riKW>Wde#{$-FJ<(HegVXOPs?pr8WA$0w63Z5lM zicIU0){omh?`ROE(NPu8C#CW)R{KyPgjGG3qh5t9fauZG2)(5bh=EvOwBq^9)L@42 z`lzVYMG8xgNR2K_&A!~IW0-Ea{;oOUxDl!L1ZL<2O|l7Q-oLMEY^9>NiIlf&)Zg6w zG@MiWDJItSkFq9&574LtjhAIbsUo4>falkONL6p%0?x*nemrb*@bWS1iuh>;AJ3nZ zJUPdE52QUpF=P@-boCz&Bhux_CZ(*miCoyaNI(kr5>w@&UYn$%nNQMKk)afnPF4gwn9 z20}o<=eux+tlae8&8Zv5NH;x>fe~?!!N4u%>jx#wkU4D|?iR~`ICX1S!JocnP11+d z&M4YAwF~xQSdOo%PgozyGY(Dl@DpyuuXE$oI=wL`mV9yo(rt*kCvo9Ih@CBF-kQC` zv0!N{BpKMH-s&KQZfccQ+rM8yb_0l4{EWO?ZDLKCQi#&O{=O4_9{QTIL&@(uA$33n7{R|#C{;iWsE|x(7bjcX zEpLCWQ4nHz<3lbzI+tv(M-c&vM%(6_V8(sjj28^%CEKI58u~};xMH8BWq8|L36x6G zk{t351?jAVDE4271W6#Qzb(q`ls%$*^jnbDgfFI->`%aEqpV1&qd5ge>=5)!R&2wr zjX#h9gY=KyeeSkhjvAp2t7wmI2!4UB6@Xal1h^}Y9vQd+rC4Iiyw^-xYgCP4YfTb< z?#e?T*{`2U;`cG9(6C?i+NG#EIjxO-<3tC$Z|@7H8R*x4b8#p{1FanKNI>vx7$UcS z^@VR)I=#jJDsM1P;>#hboC8ID}68qQd zA*^C60}$}bGNa}Bl-usEudd5&>3`QgE&cUFIOw;1!&)R1_r$qP>ioWY(OK_$JHzfJ zojui;KWe*lca14IIa^ck?+_%f?Qz|@YsA`%st_r&A1~tvh}kaZm$)LGPkUJ84Xj!E zyS{LiIpuA_Kg*K^1&8;8@SRRNo;hgyW%ugUF(}Tk$5OKk;Rpz@F{WQqxhCVJO?Zjz zK^4n$tfUmz42plc##vVf?#idWy`ojnKi}hf&Gxpm0lSM@2hHca>@6P^P#MakLkpZp)gJn5S0o2#KX@T|eIQZR z4N6xZ(SZoA*ETtjkYH8In6lzfQnTUtdgA?3jZ|yd!>@Y$<|nph`Q=x-NivA!J^xxB zsati^x#7ej#Sr3)vqC!D>fnnrS8}Lbu6|)7{B1*U#R;MaICq$|#0~(Akp6Hf%sfKC za}M)XKiCobNQddoJKQ&+so*!LX_oEldsrYiRVO!!Uoah$h&OZ zNZl~*Q-R0r&BJ*LCugQ5nLoQIUv+2$K@f1UH5G=N+L@0T5VpB8FHdL7Y~{QX{BZ`u zQ)dcRC*2#);3T06uV~&6`IhKSlSa9;YP;j4l+;ittWaU!Vfp)`_aNK4m5@>@JD}2ei>jAK>cUJ7-I*S#0vkg zR_+HY!4AYjgeTaheJx}no~4rh%+t;2ut=g~K`E#I;?{`w+#Z6Y;4SOdpg9plfARcm z4#rTfSrh@^$6b+x6#%L>5jGFb_~V(gSlP-*rmb;oYm18|$3%;&6K1m**P_l&u-`GW zq21S-)lYUY?6R;;X#>+1}n0s&uenOF%c#6ws`p{0WuAC=W{9;EBVBb7c(hkDL*Bx_yFHh%eH_tsFy2OF z`cI828wGcsoQMNj(CO_!mCt=+c@Z*XhT)FlF~G|bAH@?_l(lT+B_&9TmYWuhGOqj& z=c;@rco)DWKYVg#9IzLA)sFkjGxrkkCmcREp`YmpCBN3#v#ZxdiK-+XL;O_Aj(H;x1*#cl?q0?8Su?u71L~y+!Rt8_H8mq0L-$`#1ty5y_3JkbZJVH zU8G>wwIV!#Ox8A~EU2L2WDTI~dpoCRq{M3~KQ$}Fh$DDeo~2=I^4G10NaPyLo70Y< ze{ICTCvwFXK(u9(wYh64H=W@+^`*%&@FRkE%!rt^28<2ai}YM74zaQ5Pb`$`ljbUF zb>(@?7hJ~a{$u$K+2+}SsdpsWH-`S`ks_++OXmqRpr>VOcZ!Bz9hnjFTVG)wn_~ZQ ziq$|l-)5=6@~fPZO#Lr8?P7tB-!)N#{t*c124Ks8gS(h-S!9p1L6@?2kWEWy-mCHn zB0oit6Z8`Lo$PHFx?Jwft(D$w=A!eq?`*hpU*W0Att1MnOnoho2(jGEC9%bkeIc}- zf7Q-nS zYfUHSpI1EWnPVn1ASX2ibF%`6zbO4@|3~?!Xw~~=wPcPUf-C)F2>IMw4 zT=#miY2@Vg$DcW-Vw3930RCOh<2n8&_y2G*Ttd!v{i?6O6;eB;l1W`x1k$)kIR?(f z4lH8>xj!LoHx1eOH--yaHXi@92tnH-!GEsA_5wz~lQT5;Yxy%bjH$SL+j^2#l`>`0 zjJFG|f&3tyk!({|i*s_moA9Xj%6a@vnyYV)TeSbf;b(Ob4xU&~cDQUOy~7VzZR4<{ zKTZB^JwPCjMX#s48OSK@Vndq!Tnc4ot`4Gf%=wVns@dHE2h$du;wO7Xjq+$GfAfMQ zA)~RSLQ$_;Rm<;Pmb5-{ICqvhhyO_a)%ugjH%M59K6$Z(2j2kKwL4qLEjq~?G1t~? zxgQgF>OF2x&lcN3)z?`@e|=c9Hv0#Clk}XzzsuZmCg8(tQoc~f_tlrLnCOxb0Hbl1 zqy{|8Xs8>_?8{!49fkF|f&*#xhN>S?NA{PGqBzm_b5J8Nd-0TsvY$>W@6Qf|>2mbn zI@9Pn@-*ao`RF~t-awjZ$a+1XPB%rCGhCkCavzMPB(>lKvRIk~Tij(nWZ9&TBw}ry=N?<7n;PH4omqrO?p=A@0L&1ZZb)r)9~E z{=;!fUV8oHAqm6B>m^Sz_df{e?g;%ELx<$mZac@svkxWSTEz!HJhLo;5M`CO8f^Dg z7F&#Wqlo1+j8fM=>RrqdtWq-cST;G?)Sg|fD9>VL4~(?0fC|f>E^}^o3#T^!d6`pW zXUnA6@6zbudeEY5OB{Hs^mRHKo1=EV2o0*>(H-3X<4=;K@)kUBmwhiva{>J>$T^qy zIKU;j3hesHnbYa9Ub5u%k(uSj@6=A12-Oc0e0=Yt98CI>YQdt&?yl1E81f{pxH@LP zqE zC_Z;5+2-KRN?)nSSgRIKn4|wrZBMdv&|E}@?V=!bMTzGj-w&7vO%HVKF(q9xdRw8j zpXS7qatoAwkh+FtWj)Sa(2iGqx+RIP-|ENvF;GG+G->8_p5dWk>>hNiav|HKwEW;c zGPmlwz4s;8x{Zxfc-K9pVYx5Ol4uf$M>L`+vgI!@RA@QtNDS~?zOcX)X?Su892{qZ z_YQ~p-N2-Tg%8BP@E0=&R=Rqo_q(gqkuUrCXo|}y(S%m3B`);8UYRbf@>ylApWuI) zWI&!cq*U+H&%oIz$J?J_+|FTNkBYuX`C;OIaB!y^-|ldDBauTXnE7Qk*#^(}H5B~T zmoLA-%3kESD9nAXOsri#+TXiyaY+NOIXmY|=h@$V5dF>Cmp?DU(DvnBCCDrqa&yH` z;B1`dTHsBijy~kS^VW4pcpJZSInvdnMOj>LPQpi{&LSh0?zKxBBCBi~Kg7%~kK`X( zL3CnXxu)O3qk5&YYzOIGZT$3XxG)L$my?e3OHu>2g^g%)-!KLCB$BLDXn6WMiZrEP zM3}vjuZJ@fol_@A)oZ|Thc4PCV+DX7r2X4TdCmFL6TXe5kwNlEl`SX$S&AWt5G++) zPYkP8biJv_VLatsZ3qIdgD4^0dU?2E_^GM_kL!kLpJu!d`DA{&9uTG!*wn3zP>E)* z`-fp1n>Fe$V61Om#*xwB#`lt`oUaE()1N}!D;6JOPwSWNo*FD)uxCC|)I)Xlwc3G> zcS{%IbMySq$!=s2f{7h3m;H>4MQ!8m__NmEMdC4QP5$dA(8brke-7yq#*X)}Btf4! zE{t_zz5&z3=1Vy$9XZwu;OYl|&Y)naG)xxFOxc#j88%t<(mIN3o5l9$W?6IH#u}36#fiu-zmLXt zdJ;T>)*c8^m6BBAeeO3yzbFi6OR(%2hl|rW4 zHG0T6zHGE6T3oA2@HY^A(60`zjGvH|TxDr{{9csPW+XH-W?Tr4;;N(R;soQFQq4kC2OOaN;4wf;VVg6zL=Wy779>GN4Q!nCHdDTjBT-*)p*JBq{EgM1sco?Qf!dgD&I>2o$;6OQ2Pi=h-UfdF*>ijG z3pI$?h@n7N|9h9Qr-wo&aJzkDfC3WlwK<8O2gysx%|r`bq8eM;fuP&!#g=iBc_!&a z4WCpsRSyYu4=p*l%6to9F3aM_U&9DCiJA+wa7TBb}a|1^OY zMNJF)h|EW%Y5$(tIZuxGM4=w;l-k6qhLx@Tz%J=BnzqcDXqO2^S3o;ZU{r>Cq|}Wb z_EPF|Nx{lIil8TpspLy>4hqhTmUT0fuLPs}P9!o>U!}+E|_{PH9|_611DC0X|9Y){Kr6rIOvDD?YY)n@EU~ zEFZ`(?~?K5DZT%Ii~rAnQ+UscfHziYl_W7kLdU$!QH67VE6L3Nbes7cuYhRve$&@fuX5H47zq8HC zVp7Opd46e-`nPT7>(|OOW0zxKh;`PE2B{-|L5i}0MLqwnJlMpxO7?LY@sYmcvGvGo zltjkQA51k_#sw%k;wGO3RFq>Wn4tC8d2j;dDP_|Js*QK;>I)QX7U{!;Q;m;@AY`MHz zH2bDzK;=_@@zYG#`T%Pm{KT8Q#IVKcdQZs*zuM#} zo7T>q*pcZUxaXNvqMo&&zPLRpJU2JOPA9F`=!3Y={Tt(Z=kA@R{akiWez4Xd9%nsN zD!1Dz`Mk9)>vQ#>1v(3bH*_4_N7Xg3BvSOAGnQLCo)r7+W4UO;Lf3jw>8$7|s zA#3|TdAk4aXWmQmZY8W;d2Zm0b_E(CPmY%Z8S(9fY-3%b51cMha1jiS@Db=-+dL^C zFFEG;>OrPw(R8!r#f98?qhrC=dvlRvwVS~2AMM8ZoXK?{H{LHc?K}CfE9Y0aR!BpH zfT9!$0s`3o^#2Y1n}2{6 zfzB7;wFUj**xJ6hI_+HR4lNANJdudT;|F4-z@AyD^6gWC8lX%=31O z6Y-BuiJ7FwZcPoH=Tpm+PP6S9T7j@kAP1hb@B=GiZQU9>7fMdVo+rr*s+9FO+MmOX zXRcdgIOs$M{PPd#-+%nveH_@uYO_V86tu{yS53sl+ z;c31z|L+J};v0pHA8jYgO;F~wKX!Omh3}rMSk~#U)q4na;{9a2x;lDrbg4bz%UgZN z==?$bYCka0@@Kzf=ZVp`|KDcW{X^(rmWS>{ZnlterRWf>7K{}Qm^qo<5Ltk}_ibK6 zW=aF0$831;_(eDZ5=VjRJ{($M++%w94~PElQpKI4fobz$_7dy0aa@%3{s}I!H_FI# z2V}|>_b5&#SW)pkz3pVG+{-0J{H)c8C8V_vNa}@rfpHQ@9Jd4lbd3tU^V!D1*<+6= z$VkQyOywg3oWuH6os05hEvn@-f9aw}IcPwY%=zAoQa`^4;$G=y|G#<$tl( zF-lEejQdP;(#n^&1*&rAfN^^QJD(kZ`X7M zUE7D`W)kRHZ;<$#^{=HqxN?O31SUSPspLm~dmAN*C}DVnfb82!d!zQz<23n9SNeve z;@e&dAs(VTLn{jtw`J}l^IV@>$Y-#)PWt+DVnKrNOV(#X^I=l388z9D*wcXp4EPCB z>-KHN061z^qes@geKWZ3gn(uWR0|MsF_!TN(C4ru9OF%YOhB!7E3eUp!aCeP-GyHM zM#EvCq2_^>#>83UFf3oeNmO`tdV3N#-I_<&wtoEdlTR(<-o-DDKPgYsM)Y0sK6jb~ zJVRt{-9TDfu4Wt!4qdNtSYMIdC2xOsY(X7ub{0 zftK?}l5X-j^ytU{=DiDox@}1w`i)Pxn;^op_Dm{F&2~qZ`v=d$F-AcPvX|J29L=Hc zNUuvK;1%8uUdNMwIeBmBj{=sKlZ&(g7`3d~OAUjNk+O|s1~hhzOSB({71pFl2a-5& zx#&IpVzJ@|ffoDJI#3MC4h|h_H_>s@!i1*1Wr%HDYkL(S9ZPB}SL>UNFAR)7@4Y46 zInGu?Bde?n^o0`@vu9?$kIGgTf1_sj&bTgU(Q&N{gxVmZPnS1La)f}@$}(1#S>2hs z(rHgJgp0vLuiht@Ns7U3eSy`03>>R1JnALzx=2D=1+2z9ZXaiFzXNf_*+IVoyf^cXpAUQAVla;KlPFNusto{ zbmbC#tZ>ZL?$$s32boA>u;TinA2oQ<{8 zc8R@la6CL%;u|2P`sn8p>&}_o;Q1GC|84)Knd{)rZQw2@j>@2u5A@+|#{G^vW1DqV zwm%-%9~1y>eqXN35-PP1GM_Ce%m4cU%$Rpq?pU@(#8nUq`fuXF8#^^`VGT@1vdcrC zS$cwc$;fb|x1sfMm`B*ihFkrAK?2<*6T$JRRFC}!={Wh6sROY7=zAPU*J3L64XmNb zV@UcB8;8os_9YcZf(OGO>FqRXLBf8r!} zbHk86C|=NG)N6FW#1&*o_}-C;;^tT}#jrWj$Rs0<+xSd5G5NN=lV%#Ns-zuK>Q8YZRAAbHbWeM3srfrOWf!J!~N@yaP z3YP3KjH#l&s;_=`>ZYm7A&GuZ4_p4{z1@tkbOQj9h8AU@zh7M4J8k0k8h^=)g55KBX>*Aj_lVM@YwwZME_h^XynLS{vKu3`qk~MR{EISZg4Q_g0oJg6Da> z>R1k2L*CvfL07+XW+c9OzqHa1%|{G7x?%*9{e8btAOaKZ2h>Y8H$ZK?fmkw{-H+uWF-Ck;byq z>fB&Zk0!f7)wV()X9in~g=qmk(=elLs@oH(K8VGCIOoo`y^h#gh*<_9 z@PoPBZt-&srO81i(0QVnudKErFK&oX9w~-aMRE?%Lu0&ujK^C;Y_+Pse$|i{jVQ*B5W643yw)NB_14f6{`0B6DhvSqra5bu5cuYIpWB-3 z;7M}20BBa3jL9+bA=DXzA7q@j*1bk~)!D%{z3%tR+J1O2Be_-H==9i_ClD{`--8IY zY%}~H|0&Z4$7#TRnB<&}(fYxG&TNz#R7cbqX*>^ql{x{UHUE&eE7qdQ$&dxg3>hF`yn(es z9Iz;h`n;J~uXJ*(XjxF@-_MVf{Jy!`eZh}p*$KObjX(H|$tlZ(CGRQt;p($(%(=WE zm`F-bClbzT#`sKQMflvx=h1T6^%>*II5ll*CDLbG*#f zM+#QjVP161x;BtMDsmRgY+{)4(mTkRLSpTl=JE9_7MA(>QS+)FUYeKde1*uTpGfP6 zqBVnmAwxj%iEg4Av6jXSjbHuq)VBgfUM(i5;EBxzxI0j-{K(06*c*fs2XP}P2c&Ba z&|H(J4T;Lntv|a&X;!>4b^~$gGG2Dw!YXAcxA>)H46gvpZH^TV6Mt)p+=sTKlC;qR zGB4vWjUD(wR7isJ_>IUoH2Jhe-6YI8UuKip(gbJ~YdW7{nRZDLsK1$fvWMahdWluw z0G=avRVmeK5J7ptc_l9eoEmWamE@>og68kz4tqCt=zZP|efy`@EJqfBEhE4SI$g}{ zh-G?E@9X=%MH#iyMFFB#+tWYZoQ#|BpMYpUjrVCzhCVZ2l$^}FCijb>=@HL7l=v8D}P5hzfy^yARvC4liyCuH*!JLA03XLA15t$95c4?FPQZ zMFte1lEUf(L?3-+>dbM2)E=6}PCmN^iEN|?YmuPLJX2hs?*}#DyNqi&?v68~1E;RB z>4nnp_`Rrw_2pR+BdhwaHLOA@t-iOR9B^@Yf*=j%rwEtg{KL9ov8r>CC(zy0H+LW& zX3y{gliL2dUhOQ^bmgr2>R^pc!Em2Bj8H>#x6VLmuAVzD(-O5UYP}36Vn9386O2qo z$@!(-WFjrM=+MDixj?NM+2=o(dV)Thtab>ONC*@Gy%urV|7^A;_XB8LI{*h!nl?km z!(P2N!Ae7QjUSzWr?4`P=3y|-A)sElunKKZ(_S|zP~ZAdu;gxZr~Zq?lbo+=0{-0h z|JGlPx!v3(&@$M&f_?XjcV!Nl0o1I*&s%%{ zD60MP6Siw$F#i39&#l$@GaU{E*0!*<*tXYcUVGcSw&>Y)FXQk+$e#1fw|Px>j|kQC zq>t;7!|tIT%DmIJ{w+VdbEoU%E09tsNp#RdMv!Y6`Yj?V`T=%6V0`J^!2RhPRdZ7= z_-u*~-G%#%@W7mpv*&0$JcM=jn!&cI<9xPu+?A>Ik&%YKRBWa!f%bv<#K5ss@K!c7 zY7u%IxjEeGtbU{!rqs~Z!Z%Ek&k&-R@k-zocv)|2wu1>dj1o#-xb3gpfKjfg>>de= z*c(MoScRQFhfDXDdUU_vc0OCo4RHV1QrP-3XZuL9ZXNK*uEtKDb-JOQ+g!btDBOx9 zJDl{jEB_Zsd=JN~)^|u(1f>eXxhXz`^nlpEVyUvt?mhkwHXO{wYmeTCy zH0kNHh^F!e6%}0gG_!Hb@%B_yYX2(5EAOytuDci*0FcXzpq-F^0o{bMl0llk6xb|3 zG?K?S)sK+3dY$^Dh378Z6E&d>47y5@i_@Jc<{ZTwDb^&dX51v))&TcyK=AvZ^8KGg zBM&tgc?V|J^T@eK0WsHOeqw`;sC^Eo(=c~v4w?Mkj*mxh&4IZDnr~Jhgw3G|t8#R; z_58)e7qhBo;ucZ8dD{6E%-nDw`48q$r+2Dokxxx~9At@7K+=oP@(0<|rN1QGHmL`C zmSboDT2U=O&?FlNvH;G+$RkrnaV6W%Pu1CAhS0I&q^GdP4z>mRRSr$CQqs!tDgUsM zsp9)`LtT&gG2DT-ad%|z&TS*xm<61!qnA61E-FLC^Dh>S-A6<2j%I)RWh!F2rubgA zOrCZ%v?fVLXZ|3>!R_}T^-K<$L%c=F+5O2vmVllhmG3u)!ASevDE{wPXGy-?lE=K0!!5l+MB3Sb9*N%mMVYO-`=Y zs5s)yu1qZOaxdj%rdAEu=%+`=mV?s2wB3>;*a8fg<0Hd$kqw*1#<4-H_~N{-jzm#* zU!Em#Xc1R@4Zw<$d&CMIQYvTW$oQ*+rBI~EfnIaM4pu{?NaxK9Uhyhom9l}LoexVy zv=(Aru7WiKTjte9x<&G|2=5Aq=PTG>K5Lc2zZHec`sF5S`3X3a!SnAx%V@|GOs_mM z5{8K0WL$lL41|%99=>0aPE_8bRFf-A{H5q3?}Le7uk*Qo4{ zT&7H(Ki-*=JnTv40wyrKJ(1jn;l(CuOdF@iXnX9cY{SvimN)7M!R{5K>8+d0TpCji zJLvH*cNdhZA-z%;+}rX5?4N6SFBP` zJwXyD&%c_;*Udd;+QpPDm;lA#ceJH{j6%?Athds6lZf9Nd~Q!9u7BUZ)aAuUu|JYZ zxrXm0hWdht?py@)LL!@{k&VPqItR*%JD-#ks#M9~ikF1nw-m?D{Rrs9E(N>c^K*vC z^lCf6^A1L2SG}f$2Cla;gYF9d$w?(QktG36{f~s}Ws=}{6bO5LLWaS`jQxj0B}=*K zNQ{phI6qxH)rcuw+A)#J)qAFlR{tO`TR#qzJ1QkA6>l%Bm2y<()!6_ec>u@3g?_;G zCy@yJ0n(J}*RwYn;zVKAfqv1fJN+x2pKh3cz$SU&iGaG~e)DAPJAz@iKl3K4AU=gY}eRrK6U<8~y@`DOg?XNRgtt_Wnz@}y)svVAP~d6IPm)5VER58QGym>RQ< zdGvZ-!z9C2jmtBh2Gr~wm}R;;Wuy@M-4Uziw~toz9AJZg~iq~^mj-zBUSd_j&L7~SzFQ*0#F}P|MU9r-po}w%XeH~C(Os(n9qYCWu~LdmV_=} zw$G|MgPiU9UtCVE$(k01cTN)qSTN^uAfCV~#Q-M^%kM^fwTu*%k-{?h^nQnc>(vq; zz)HU#jyKv-`d!Z8a$WFdK-$@RQt6LQG6|~xsLIAj&|pbul*GRRsb4i$eX2p4)@yAInp_Wo@WN9TW8FHsYPT`sXtmLBR@1;u@_p*nFY#tM@hCFPajm+V7{vrIFk?~ca5M&mIxNkEDN1~nNJelud-0bb*Sq;dqX z2K~C=-lfK<;xDbv!h%iCmp-^GjOCKs!MwX5dZZcX>0y4=Yh&VBerC{4+J86{wpbmA z(pq1;{Mv`ORa(Q7w<)5fiIo$=$qK8jg5-9ydAyTs(AAsZ>O%gu4Tl2bf{(Sq?74>UfWjzCHgP%kBGFVuP^bp`hO5C z~*$1 zCoYHf&;zX(OaYrX{zGh(>_nUw^TQT3?>_hClIuS1ZbCGngo@3D$Cqq_%cBaZKP``k zQ1^qXYPuh=sildhOP`l}v1BH%kNGh^LspoVcMT)C(wBA$h`xVaHn6f&rCTPB;}edc`F4HX&Tu>$noYPBzjF{)NFoFQ=WL@MRna#K5QKw z^K6iug2iq?qVgd78);iK4e!mzy6H`WlptyZD3X>bNa}9x*fa#|PX2eT>53tiL5Zw6 z)ZV2^gkjh}t2`}~XWmc>+0$3_Qj{Cd!cIq*Aw7T~{XuLXU4)G37G?t*KHYC00-Cvk zk{#R!I2$;N&YOPp#_yMUaD2#tJDuH$tYQ6zHylUs{}S(oTSC|;tae0Kcg3YSU=#oj(Z6|ZPh@z`!thps@ zx`9dk{!U=8>5@HVE`)&m8vD{I_Je3;o7Hwq9lLJUhAmQ@GDc9Y*8qL=<#Xt_okbrk z4D^OIo_En)oUnk}EklJ4Jxx0i)YrenSLvG?Q8MHAFKc8xjyJ>}bR+~TW+EgJh~`JR0Ze)0csb=F}`{o&sSQIRg`QbI&Pq?@5g zNrQArNlZYx86hDl-3+Cqr9onJ=jbj0=}}|AHlOqT{jTS_p6mHz|D7|ov%}}y_x*Xj z-|s|~IHvw;s;Uwu(UJ3K#7Z~wB@4zY<|eQuGc`IL6rSrR+@V{86br_wS6^))DRFIi zJhSx~9~0ywmNrt1itmnASW~=8{@CkG1-$V9k1Pw(ySq|YtWnD8CWe@Z`5iaxrn;1L zR)juUKH0OE(v(fX81#s06SXV)|I}t1Jh$0WAr)#dXqFh*G;B5zXTf72VSf;nRfv@(odK{OoU66y)ttUh4SV77kZoilv*R z>O76cNTcGmNbrp@u}*L?%eE!se!`sk#8#;Y(8)B$<fhy7@_fjTH1Hg57xRzVOi+g=v znZB)pkAYD%mf+$}6w(E1<9uvRrV3sskHTr4t#;jQ^*-lF=A~jkslwfk=lNr?%#Ped zi1lO>-GNIhPpZ9z-kd&3cHi5Y9HD8|jZOt$F{CjKIN4Ur%9 z3Qg}T%0=!>IARStB!i|q#4$x^Bd#d45~ZQB0OyA3nnzbuNh!$olOtmJE z5&9WR18*R4+c0!E3^myMhKOn(I?h72O4P$h79bz(Pk+maj)))Z!Nz8yGxcNVdBvCv zUhLWh@K?4;6*IGqmii1#JUKY>%Q^>kYTSovhr61j_rPS8?#2^e1HzE1mg&y4EU<9Z zBBRE1rVh@z{s}&Bw!Guz=(5i#*1i-Hs|zQd*@FR$o9}Djvk$Ji7(*^ajzM+lN7p}n z+C9mlvNGMBiWNKL6?fd-dfZ?21Wvwc7wGfVJi0>|^n>c{68^yAjOyD#*6MD8RC`X} zaj#BzZZ#3Koh{P*h+TEE9^@BceI2=wh%H^*ChtGVIa4~Ob1!l}O&DNeJisv%_x>99 z^|eHESFqc7y5va^CM`%q+btYX<-II~2(qspgKY|dB(+lN!ZAWS=QR>9X{GH-w>p9_ zk+Sp$=JY6n&Bht@kS%$nf28#;_5B?|-_AeQfKu+~e^bvn*{4eZ3bPEVG0S!>bcu`U zL(S33u|8akask^j`gU&?t}u+o@HU0w;_4r!eZEeDCq_>{4E8j>Qm&>%O`W;*bTz8} za1c_$dEN||HA?ABxHrpxr3O^b_nFf#C76DfwgWLd;>G5g@04WI^7XSD$j%bhb{f6hU zg;KZ{4vs7Qhl>dzBSo9z(4Sv7n$!>4a~tx4#s%^kyz%G?3Cph)Ul2aP36h@l(}A<3 z;9>#9sL2~$d9wj9dwKZ(aHf!Y7(j{IwTA~nymKKWyDiQ7pP*=L5XkxT#^jeX)wd8)$UvKq>K-+&Xj*Ym7W;UkP z8k+5|@rAFV73sAgFD6P2Cg<(ncG@+tnN%o!9@B52W%1GHVvTcJksHR{&vX2Aq#mX8 zT2+m3@leO|XPx!zSA~}hIa(oElppGC2$m1^s{!jn2-Go}Vo0{<-Ei3s2udqr zl#o87jFYipLqA9I&1%Ioa^}^rxC~y`d_*?7=B_aM!}n{-ZEYuq+O369?+a#d3^dsl za5Lh1R<&q~)2AtKq>oVHCIlIKZs!X6Y#+i(x1%#>_u?Yr{(Kwx+~xQ3MP7kSQ`%s# zaAYtj*X%b`6Fw^^HCjf%o+bR#Bl9F_SIt(#x5CBg9edN{Q@F>O{|oYQMIN{?vjWW| zb91E&jcBG=xK-Bbd)XZ(VsC0Y1;l95!dHBKbDS#2ROSI|=nS1{<0ib;u7%<)MZAF7 z8Di%;&HVBG=XGccrT#bmJ}(C$J8uon`n-mCnA~{o7=W9QKUEjN1cx7gfOOLWxK;_pyT>FZ#?ElfHopNvf5r>1@H`90@QRX2Q(dQ?T@~MxTU%O)t=xDQ62bGmVUm#wLfUf zg)_ffjed;RBP)!E$lXj>rrkiMdzYbLo4ifBL$-EABkpDP42dD0X3yvblf=h*mW?%> z@AIDVwLE&Sd~*lu3gSVmCrGoFpys=3_rk4gby)iB+I47(CRZY^RV!!s#hDxWA$>`3#eERSPCQ-k z;QGEty}8bG31Rgq*|?5r6G24wT6cHwbxfT))d$*E!jJZ^$M7D#>==2bV^9-{!!Z}_Lkd!H!L?NrtZ!!;Y0maG!;Y$cGmck-zUfl&CBIg^| zs1dE5iKeDY7LG~0l#Zo#Y%0j+OB1hjz29F-bzPjEo&O}NZVdv4k`JXR?xfIki0dv; zBu$L%50uxGQ{|RH>U^m$o$v&EE?h|LrE3l;PCl9A|NFaCR4Q5bBWfdulS3tM$;KPV zTD$X(Gk6+|xgP@>jehq~ zo^#Q|QB|K~UEHxQV$g%?W586AG!^re*kFwW(~KswdfV7{=>#5LQB@LUdHA9-?~!Y6 z34Qfua{nu^v1Uw1H(enuEt_G+%dN8ELTBmJrA1RFk806anQXf{LhRIAq?w%#g|U2% z;=;Vke)R5<=VO(&f&KT4T4^U;PkgDD#2XvsMwot1?2Xy=IKA3Z)6L=a^w*u-nq^B8 zoN`ZID>q%w2emP6H@G)qZ8#o^zzED>%OQqG&2s<^X+VAZ|Rk9wNd?dRY z-a7fd{MD-8fBHv;^xNE)f`yV&3lm3C$*EE~KM8ax&{Qd@8Gu~qzkOCvbxe+=7zxSx z32z(_J~JKfYcVB%M;TZK%}u_DPyNnWAMz_#3Lf}{W|Tb-KvJvB)wQ!zirXirT`DTC z9+@Q;O3m*a`C@sI)qaSzkPYU#1IglVP3eBATSc+0p)nt7emc+_5lC5ZJdnOH=g9Jw z`bPB>pv(`N^4Mw+C%O5n2ZCi(9<J z-#~;}V?mLCu;nWutIRoEv$#jFjFg*Hex35Cp|B2qB z`J@u6U)iu9W550Iw=CTPyHs6S(&3m@nM4(i_Z$cn;vKP4z*z5%9I1wbBZO#w=`rxEMa4-3R0#I<6} z6Ye3$mFC9qV4NU!>ye@`f(`+e{8XDI^&Fm--d6L4?3LjXIo z_6+k=#9u#ey61a^@P4eVfj}28PDwgFY7ji0l3+)!g>;}J`h4c!fI6k z-qTz(Q9{gp-?Bl`fB)1tRX_4fbQvd(hKlhCuJY2F3F)KpBcS>LAAnF2!^;|Nm=H9D zUHL0jhYlW;1gDkPCc}Z;fXuI!T^Mhh=AA|W56bBAfXCm23`pJbw z76d5PoS{tEX$#7$^#=iR;K9rCL;vYQMyCrj3$PC`9t#e!H$GNg z_1YF0Ie<`N8PNPwr@9)t)d%yR=9&zM;n@RVm5D9N&KNkMN!e7N*iKT2!XUkXv-6KVVYE;n-`hm<`_U9V9wgp=o z2Tj6dgyL)JOa3F7J0dg~(*!s_khT1payoe{cAMLsetzx!9-nu`Q`)K{3zP6)E-i~V zs^sVP_NU_l6?K58)Nkn8G~IdNG{~fI>BXiB;aix$J3WZ@`Z&tvPVE9 ze5ZoT#(|D7DZVTIwa;kgr>*u!)3H{iqr0V1I|d<$)pa!G^~QB57XJ|P$ioDWH41vI zq?39-oy47fzuB+-^&839R z+>%}kLNj#0j4_|_wm~f4*b(8>lL-D+wl}b6)RAi-0sIDc>x0do&4pushuf7Kr!a{q z7vusa3i1JP3F$V+MLcfwTbVLakcm(IapMSQPY{|&Z81z=lh5P10T%Jl2%u{4=nzKR z%vGTQH2_a5Kbf*^u)}RYEQ`lVfnb~6m+hbIBIm3CAj%(Lj=H)79Ws2(_VI|jHz)Av z<$tt?2tUg-H!;rk?rJF@-BF8kuNf{4@8__> z8DjPDtSE{q*XA#CwBWiB8U#6>Mg}Q$Rg(pLn3pzeGA=H9@}^(d6VN9i46Jd&f5vrXJ0%^)##$8x4G zzSFbH;|6-#MCu%cNkz5Xy+(7O+zVDw7CpwEXiY91ZCtE;xZ&`Vm{q||#fa80RJ6zg0_Qe+}-YOtsD1_2a-m~8sPI4^;(G5A(!#gQhwC>Z+>=Q9)6$6G23l>p%>53(p(3I_c|J4^5CMRcRe zPn;(J2RS?X#}n^6{`bCsU)U#;c4r?83VmVr9q?tR)n>W}j0OB4!MyyutGePtu{GNH z580}zliLEn{{CGh-=0AP@(}16=ov2rto&xJu=oY+1TemCn}^u?-YS7@$TId_q@LO4$aj6g!%T80%7=rm4Nyo2NfDv*?{z z#^2WLJq^zi3$y$EyKXA3P+RqL#oKf@90I#+J?oL z;{j@*&h==&>X3Tc`sQC#AFY`$DI)}z-YxWO1e-tYvHV&pt@>z&MG8dh=u~N9vY6qK zNzt=h=(T!TnGkf*!3)TYFC+nFgtWYlK#$%W>(@K!;(1_Mlw<5=-L$0CIY4rGuyPwbUs|~@HMH4cz5!Yoi>|eYb@5wVdSHU5 zT<%Qg%70qLV4H@Mq2CQMk4ATB)mJd|(5-nu7`T`eh&KShoPaEbW4kg`H0D-W(w^Ni5%YTPfrC*87m-i}Qod zE+*4cA)==zh?`P2*V~&Sarb=MA^IVH+~Nw}9@jUXGS968No|v~()yN(2}n4LcoWL^ z%vV<6?{&Iy_kkpId0xYCD}j7a0O?@GILQ{0kl{an1VF=I*teixE@4a~1*ZH_Cp!r` zk&4sbM6wm)*5qq9Geg~)pM304#(alZ4Z>{sDObRKe*n2x-K(_W+l`OPd+gVVQfK`d z@AD)E9D&*=1?{=bxE^+jIPH@BB4keFWkOWcmH0SRO<{0<)o{B~?c@GL(vL}wlo?y~ zg8*CWGyX09_|uB|(@^7}f+DcK*gfS2vv(_n`mWy>rM0{N;w8s5TTd8cNHE1Oxlrqf z5@p17?D3D>%R~LwzRpjZ&NGVDlIU?g|4=nb{wV5-K0Dl ze_pNVyTWXI!pZ>+Fn}oY9~+!O`h#p(soUOWpFaDjYWS|}v7>tG^jTJ&X|r{(ds(p6{_cM0&h-nq8sGt9S`hn_S#B&~djmvc7NCV{cR_R@{WXb= zSH^!S`1`%9I$zii`{q8tF56IDjOzUhrT1K4gy`6NwC27siIbGkKYlN6iLEppUbc=` z+~Wxq->nPhRwUHHOTbjuCvWlH8`-+5sD)kV>Tp#m^yM`@c0neA>4S_5!>R42dTY+W{E2!B~8n`Xn2}woO{< zD+!znLj%o~iIJtQjGqkT6H~a#xu47*MTTGreJqeKP%+;f*BG*v`;18&OYMGwe@E#) zDC!Y7U!tE?*4iL{ZM76|!X(ET=xG9PG< z_t}A;OWYI4u`;n^_2YxCGH>{*3E<%8VZz9&o$DVF-^1fAVEsH{84Pm@L zGFuG~Ke+&d@0AS@)4rf%_t28#G)l2yx~}Bz0>Usjz3e#sd$C0UdO&fChZ0kte%V2@ zxO^a%^y6ld=IIw9=27@NJll}|$A1zn#(@b=(?(jurj!(932!s7q1M>MOgbwso1AU_ z`UK=t!}HKBu7|V@@gR`rP82(T%N2J?7es{$P%1^GbwA(AY3V!Mkn;FT|->=jXsDcbv4d)Ue*t z@^`8}cfhhq$r~i#Koj%5XLF&uB$=|{LqbaUpbOt^uXPKD;!%AX+`K@HkL+^E$ z^#RYNjBu{kt&GO$7BTV`^5sPCoUc1$m*z-9^{XoN03?O1(w}A3YX6h#JCH%y5d=yW zf2x1oO99qTgO3D-E9_^)bLif6rA@5LfTunn&PY|c_U|*Is}*ryI+@+T zNFFR9$(VLC>04 zN8{x2ml(dz)+fqVT6DhJId1QF+p;DWrF3WO>XsyU>h}2;#rl5#!--_*HkqKDuyzR0 z=eaX7mZ$CtoRW&fyLNl};r;cYx$B*BP+tcpVy`!j3y68I$ZE)|uk^BMNEhf_v(#zA zh0WIJ>Ac>4*2bfWY6700>agSw{dXZ7W<88C4F!6RvbVJuCg&d zetX()LGKfNKva6dGNH=u+tip&sU|dMz{D*h@vxn207BR%QjV6H4X`DPv7T#ae|cPK zRU6~Jq9GKjFM^{)D!WaQc3IsDvZ_Y0ll50Gk&gFlc^^OhyiOYM*bFCB>j7rPxy-<^ zX@s&hH+r04V)b5Qw=hA(_Gx4KAWF(9L(N0Z7CLLywQNucD3_bk)f+MQ>N z`nZLJ{!eZhVc3ivS0m4v?p8w2#FEgK!SU0dJ{pfaNv!*_W@kzT(lyqkV!QRn5h$qn-ppEn{6D* zPvFUH zG@)iWFFgIFQf*$!Tr1_WxJQyv(fKevhZ_#vO7AU>1T|3Q_o$YSHJLvd)n;O?3mbuS z^ptFxr{|-j6cAfCb5UX;7gFTofg>!b6MzGudFuDln(4@;DoINXJ&t)TsT_?4vM@pWepR3u!^dCya zCCeh*#215ZWO!oc-qn4 zrx1}iu|G%R=`{!cmi=%Sze?(ZepMb@eU=%`;a+G!MuK@k%71C%6p8t?NeP#$60y40 zp=T^52&U+kG9m+~pUVWe+n&eqdXf9kO7T7}53#DAii#5&dJm&0UtX9m!IgPA)C$IZ zT~WT+F~-DjiBqGwIx3aoEO8xsE)#B?hEgGx{LP%MKWde!J%vz?%Ra*OD0qscfrnt9dK1e_KJ}b+Lsl9j6F+v%_A;9 zmUrH77DKMU*b_et&k9-qaiKP4V{)v3U34SW&iUMeJ-9~uX%A=ZQmtI@llk!XvatWd zQTctrSNVDz$tneDE-9IrZ~D8&G=-M1*B^dWcs@SxQqye=Bl%wT>6zEp&7$Sc{i+*5V(G56=c>KF^zUGaWYS|p9t^YiE`kPf;& z^VOFJgvk{v*=au=WQK)|HSM0L_I2lNFn#l9Kw5+cv4gX9^Ua!0`BE~54iI~IEZg6! z3~U%y%L<(`ip&Ok;LWa_*zmHLR`-}}gW>J(x;4<| z3dYy+p=9+u0S_`fzaI_%>CyiNDZ6(#*YWFD$23~|J0CoRmsTrxSkarBuYHkVI3?T2;nc=gemeZLX6W9T>1sgi>Cd>V7L6 z-~eB9@GZ9Mx67-dTx8ofRH68&^6Sq+E{(RJ_Ae)-MZlSZpj>~>+-js}>}RP=wdb_{ zp5n|JJXP8ydS(SIB{?YT&4~2xuVy@{kmYLxAL-t5-Ic?CgUEfFE@NU4&$xeTJ$f>)`yJE`om>6+hd!r}M3IRa#28 zRT-v(PaIHT0}OL*$M+ME;18gg{-Eo-u^BA&z_Wc$L$*%*`~l-5_Q_8Qtr4TKBV964 zGUZ=Z-EiLy57DnQV-eWY)a4Z~Wt7l>Rs#%8V}P^^wQN*C*!5NUWx?0fw!JjWdz{ zpu{CT~>MP)y;c4=?gaokMZ`{rM!@;|Ja(>5ZXFVT`3lJnakf-=aAJ{ z`S_O+jZqcf`|<244N+_Ql?~T@!vPhj78Fa-B6brOHB9_;h3t*;AY;3NU&)saY9FAy z`w#3V`#Wy{H!ihH>VKH~CVw-YK!QE&3Sc;F=?xuJU7arvVT=K#I=869Dt#UqI z+2T@oR5q3L=46C5z0xNQDlF=EkJnP3;Fmn5k=$V$&YQg^E|IHKVBl?Iu~f44Uf-M% zp&2IPn|1CW|0HBvi|%E=)#hh{`{%2z^QRL>0IuE+@dWb%0hHtBdXR&FSGRZz_K}Ht{epvDn5vrty$5U{-)Q!|J@zRINy9 zOq{U2Fyz5sT84(LvikJ-QRd89YHufAys?jj?xe9pd3*^2uzDcv?~Ku`M*Yl0;eKfM>=3@cZ_lU5 z_z>__^_J2x*9NdUVrlY56zk##R3me1Qkz1g0%GEYLM8#PdpPC?XrmyA3}xXCLUV}e zjJX~4OA(pHd!N5=4Te3Hsj&!#u|hua$H3}emh#?StuK1)TCq2T?P%ryp}7(%G|T%w zL06eD#kw?tC5$UYC1EdKqg*)VEtS%dnGb0M1x52^AZyg9=`GM>pXC0mWXHVczmpEO zKA4TvSdVK+RHQT{ZQu&I6~wPVjOUsf$zQyvKBe29!M<Uu0 zJ%8VPdBcLhk>yF^NtL0I;WB#K^xZ4`yC%E$C4}9m!x5f39eobWret(>x$K(#U(bonIu`nSff~ke0C?%@d-X}R|xumI>Y0Mla z<|I$hm8V+NE((PCLw^83V|N@okYYUILg=IO+=g>%$Cs2j1Mxa4wy9=<`Zg1B*fX`V z(#Jt5P5W%M$X0?UtX}}$@e1XDnAm~<(a-o%Bwya#3)k54ej-CE8I*dfyTKoMZB8-0 zGvi4Rd#z3&hx3_#XgYNZF3^6 zAz(WPsuAHxl(n3S>;iS-2G~DFlhDL?xYdwe%r5Lg;8O@{es=;*&A*LJ*qHc|jAoy9 ziIr@MqO$4GzJX6(aNnlxD=BIt_>Y0@mUy^F2yE^P;yeGrc)tb!;K^$4|8f zah#YtB@U0x6A)6!R(J;=YH4KCt|#u{A4lV2qD=aC3WVQ`7182o1&C}qA5w^oxZi28TN_0!=9Q+)h&FK~HvEW~;Ou$ussmJKEe(X{4P zj$#pDDfiKD#U`%SIpljeUe$GF)t~h77Og0hgop|GF50&@8Ti;^clYBA@kAR~Uj3 zb)1>ofMf`0nRvUu<1W_c#5$Dc8ZhL%K5shNP4Eff8Rmsoms+33rpthY-y>A^jBRsZfF36`ef{^x{VQ$6p<%laGO!We$9t zuei;_=IUS74|w&DBDl?DLwJ_uU(j*JtL5l_{j!2kdS^K(Bcw|N=?W8Hgq+VOuMWv#^HSFC#g;{^78d_4sjs#4(Pk$T#X&+^Ve{ZwUHyWF18{ zx3i84(xyORptz3*G*j=?zU9gAKrC6dcR%&LF$|q8c_be^z${?Y#UPM&@WQRvnmV1I z$G#&{KH|JH3L7v>Whb4`KCbB7$0qft$9efwx42-Z3ND5>pVhb=k#C0WZ2cXHVF3Oa zNF;f9TJ=}mpou>XbbYDFv8OCIKwDShUaIQ$>NP8ZAKTzM{L+L(NYQ^MPB|gWNVW8y za(0p*lU;Ox3VkdM@X<$=r^~A8?-jl7I}r9T)>$5NjR`w%*%q0xFeDL~-TW{z&wTie zgluv9t1fY7kKH_?@~6>CnTBeDdCI#NV~_n94xska6eXG|6v1Rge!GcVJYavHw;y7; zL@q|uaT>`VSk~`J)lDx`H`rB<#wE$BH{-)wFlkNprhl(iz5AwCly>BSzZVuePY*6K zG%XOBvCKIqaCQp>f9>d~&pQ4%^gs?Dzw~O~M3nZ;n_{7FKnfSjNM-n_M;0>aHYkOY zo1rctJ#nec>wqoEIj}Y1KZ|{ZGaA_5ViXnGFY7#4a}{^5-R-fZR}W=)-c}Z{Sx|W8 zGM%$iTf7UgS!K=CCJ1s`t2gs}hI~1|u@?~pRu$lEajsBs_okFgNG&tuypgre>{4x0*5A3n8P@ah7O~8mHVUs^Rz^v+T5bX?FB(T`z;B#QM zR&JFC>}b{TT0L}LZIVmSK24FauLtxFFZ-5ah({i(#ENC2tSM_IF+Vu>i zg&nS+;Y;OefeWMNgT7Y=roFWkX(;{+_!i!47-l|@o0x?Wb-ORFjc!2Tm#>YYw!}%(+>IIa?8d7oYxIj z1u~1(hHz;@ z;_}2M+ZeJ+a-3MrW{!o=+$gD zm7$`A`$vH6aUYjnS+;3TY3rex%UsEWVJn!|Yo;Sgxxrq+U(Eaf=CYBo{tFqhmut~^ zxV0^=Rnl*8jpe3WScZVL|c>0Y;QwQW`IUVcj^k(^rnCN$*Y#Mnyn(Q3ReSk}e@_2Tp>e3y7)Tjw>` zE|4tAd7s!iq<~V1D<{yk{{t%X4ub9ZheO^$dT?uY+Dr0o^iaRnaL77;*%5&n(WHuu zIp!&N4aT%s?PD8x!t7hM3iFR_tS{FGpo@4L&|@CiRQIz_;5wB8j{Q$dno$jvWHDj% z$zu!(#~B&eeXpC4#)~G#Y*|%)G!+$+J-vr$vk&3%Z6%WQ_76jG30c%`4<#jpywBrz z?^$^F{j{_65k0j}dRn-f>p-XL1VwSJAB`a<-k{upO%KV&I(s&7cJ)y^tQ9;*{TBR@l!XE`_Wq}v9ZHO7RA_`YP^zI*W)K!MHT;HhJJ{@u>uy zKz9_wkq8vUd3vN?zPM;?j4}s8M!?TwHC^)$m)5>|`e_KgEb=V2FrFwir4)4LFU&Gc zlR7`nWsQU&)Ylimn-=l)u&6a6P3nQtzZaE#P0P}DTQPTm2akFio3aY$E?$zYriq$f zMB^+1cKtsrel;MW4^{{I`SJJR<006A(nA_QPc&o8`AJ2!O~me!Et3lI*#O(C7Y7xO zs(-doZ(9%ryhf~+#7PsC86Ex>EzI-G#X>(fiOy3{1)q&j*e|+08Wy15_`QC_c}L{~ zwP-&xh?XVy;nAJB;@Oq+Uv!z9^>iNmdPsgr{<^hlnNKfopn2Sc#72Ax3j3}c@MIHJ@M zs_&Z4fao4-do1}hU?9gUX1t1~As_lY41c73VlKXjWdEhryQzW`J3jzH9FQ$cV|{&= zfp&{5_8-oTw;5MBY$F3y!y3_m51T==yKnW{ylCtYnDc~CFZM6uk3~q1s$O1L}1k*BgO>(!};6n1ISMZ&4m8pB)!l? zc~>8itZzgHYhp%>E&k!K1En456($7sH_8WCum~#o|KTM5y$3@1*c}00rj2eK(r^bhA;h81yYvA~Fp0)!QaEa2X{ zVF_jj7PyF@PROOHG;ntK%glc`L)1e)P%NRr9jTAwkS7V(mPYE7Km*-gMY> zjmVArb{t302o#~E(jlsPZ{HjTHBfA9zqGUIG`Zq4s1COL(Y{jaELzT&W7WNGX}Hsz z#PJ;dyCEoV-}#91g5q1+ikRK^+splFv^}1F^z;0C|Myj98va5)Si#Wig?JgQ(DU#m z%}pJ&A8CDdEnY8H`T%zZBGb_YX&? znh_1$386vg$JtxzC0_y_l%bu^O5z$uR^`ByoxH+#Qbx~s6PNLgY;W8-Vj5qG){;s= zK0y$MWDJLS+z79@I}snptIEi)J4x!QBV4ZaU$_@EK8p$91E_)sLJUn+vKgOth%^DE zczWS^J(QFFKpYYlORP^>!vB?VI@uUH1d8l<6yR{STl1{6FhF+hM?CpPI0elr+cK*s&IfEJy4;aJRF?K`Ui9$k zex#l=h#ZppGAQlE{uO8<$>lz3oH5L~gYJxxW*c84Qx0u{gQYfxM6Ag)-pu!~Jl$)l zNoI{FsJ;}5+?WVX>=`OF8dMbMc$9rp=}8{IgCK}?nG~K*Fi}qUYe4Pjyi7l??*(XV zO?-p~(uQ`;ecVms0u^FmaHtEoRMkBjSiY4m?}!1uOC9nf2S$ix8UG;>04jdP+|lRq z52t^>9HF^MH4?U&`vhw7%LJ$h6lVJ`H2!{0cSoc6>Mf|&g41Lf=A#p~83Kp!S1ftl z$OwHRW~`X0%pEMs0JAw$1Z3kK4~B$SmNGzmdRx~a-=TEiwcSGyUk3Hm{yJ$JK5SH$ z1+E&_B}&tat(g-lUhBKlP}j!#AUhtPv82B+HAg`#R{W@nH6ZNq4RKqL`{oC(u;093L~T@Vo$L0J@1sc-k7eh>4g{D@W@V|+((MGq z9W3y7m!LEL1_>7E0W8&BBc`Q7fY}K987$gTu2D1g0~Pw#BK_LW=0ISYDL!@haEbLR zlkXgs=?o{J9)ErOI^lIRV%0 zATU|vwwLU}H6FRO_*U26c!~Aa!B!I5>jZ2CH|ED7WfRLK{^3-sM1Vx9FZE!UJS@=~ z@cW>Y6ca=KWIq>#a8wyzAU|NBB`ITEVIH5?=3IfoEPu9}VL`UJ5j4TDt-Jg@jhWUk zF@f$*7%)`X5YhODqdm*_X2|u&K@3nR*`-U!fFfX%lUSe#!bwu!?pjj0?5nUqtLwI4 zvS4<1nR?Cv)P;kBl1l@COZME@yO&dnZoS;HHjupcS+kSsa0khXpe+JOcUf_ryTFo1 zrJ3BGyYV}SslhGP0jQ4a=-|KrOD@BnaO188hJGxjeF*8TGh zV?03<*!5lp-ie(y$>PmJhgaBC*EV_k=&2>6gQO;xOCv}(taW)}krwIU(}qG574;u! zD$@daRRHdSdir3|P@1~<`8M<^q`ReTSj8e`zsUGx4BGwj`<9s-eKLdWPd7z86J=VN z7^c9fnLC3?i<*HRMo@wUt8fe`dQNOEk0mjS=Gl_`W1XB2qlCc}=hOtJ7E6`$M-2!o z&+{ULdB*z!?q{o#R^v5Ri0SXBs`h+OOJ z*{{wowJVGIOs{wXQaJL*+6p+3e{f7BAbhCftKx@jq-Ti~m0I$`C;~*I461g)!2+jQ zScU-gB8OYj8kdd1O_Re)?IN*oAZKBY*knS=dyK}jxz1M9Ut%5(UH=!~c5 zew8b9O|u`2f}_4~frw2|lE>04T<@o={z#@4CKimnnD~Vwwas%~*XJwo1w7m?4)=4k z6P-y`>NV#<)onR3Jj*RfIM)B`RM~C$G**KNcAbNjYA!5e z31A3$q-UT~CrutJcKYmLsXb)N$(QA@cHy2vtozO}tDw^*)BHYH??f~N4`$0urq(oT zETu`hYGS(Vq|K!BG|@=wHG`ecas@d|*D2Vs%RzrYeXj^$pBad*m$IEft8P+o zHWoSOhvzN2VjHzYOELtWSY({w-Gec8Z~?Wo!qwpfl^NRd>|rj;cW39MB^l=VPoHZ` zJzXj8P9*7Bxh4s34YpkdU=Pus&Y)4Ucn8L2^O46#PL;+}OBOFwsw!P~M?`n;y=IF) z3bO7Ca`UO)EKV*#P3XEjw^#`5&>}3gI{Oh!ujXAFdGKzwd7ZxQ@JeUh>1QZ8m=MzMa>UophyOg6V z4R#U4#R=*3G-BnON$%&_;=kvxc5kwS%K<1Uueef}-+f>bMY!7LR z(2VTBbM!tlR07NV{y&txcT`i+(=Lo6BGS9mAfR-R-V+;5MHB?2NED<=lO_luL8>4S zihzO=r3grq-V-{a0@6Dnq4xwK1W4j{{N4L~_r34?*Y^i&vCe|C&z?Pd_UxHwo{_Ko z#Wer)-c?1c^jhc#t1CrcZyn?Xcow=%i41OSpFEg^xnag@L^SV>POsq5LnLiuQ}Fnd z$qbkH6H6yy|M31V`dB zV*>5UG%fg&v88f;b>^(Y7quVwebfZCFu=$o&(K=Uv8Kb@`5%s4VZISFS65#?Nj@!l zcSmld@I3b|tw1Nn&<*%!ARa(bT>uHp1Y0bwb~3*{u%XyIOL=p3=1WT2vW2i*TJM~* z2*Cq~WTo|kWtxcPC?{gBT&oV#EV3GC5OGT23I!|AW_X1ioQp1`Mp2%8g`Fq2f4YtD z%N_e%oxc1n$eBSylu;me`j%}uNw{+{q~#kaQ0_3wlSC~u0&=qPS3)JclNro za;I?Yifdd`#)Vn`&3N;&>*x1gk3Je5WA>RPJfvMiH~6$Ku) z`(h+u@z#>j?cK0?LcJ~V0S#P>9?ox$G@Nxz4ZQli{MJsdccef4a5Jk@yY>8~=2qy1 zIr~BV&#HaTRXFqX&j|x1tk9lTdJ`gh>^>s8BrGJ6DgN@!*NUBD=Khx#MuwDv}_Tl+_?l~lF+ zV9pCA2!@R;_HJgmY$})YFQRSugz}HVIB`i~O;cLlx`WUHN{Fo9A{*et{|x(-Fyip3 zsxjRt+q1OXO0)OE;B%dEv))a1zKwZSoy@3}z1@IbZhP@1wV_1;t*vWE8E9cb_x42B zkq=t9sn=yf0%iaSV)3TuOdzls(a*PDc(RaQyrZB48V&%9{RF!FjT=>(shQ;dUb4KYm=BqY9J4L;t2cmjK9_G!X@Jk{?Zv=j||mD9QZZ| zYWKDR`>kE7fch?v0Ayvb(;~Yy{nqVtvjw}7Wuydd#60&8^gFqs>+{?Mq9&&6}u@K-mt?Y8P2XKpXTtg7xi9Us zFV73_u!Os^uxsxQqn!!6ofX_LF~Zp94Ol94<6N)V?sraLHgmDhjipp@a}>u=J%6;^xVGe0aiXlK(!4x{pj3GMn>^jNdAV`7r$!a8`K4kM8<(HTlGW_0|Q0 zx-j(LkCQ6>UnsZ^KS}(Rv3udi_kydI;UuY@tYiEpjucIV^dtv&E?V3|D-Lfv*5|Ze zwa#&qz&~E^T%uz$UWa;9Y{{IsiYct|5L^M?_d@l?C);Ux+w}eTor(Lm$bYy5lvi{T zQvK+P)Rm&K?pf>r_LQA_yYA0bhuzet&4vQs`=-m4I}+H&V#G_`?+%CXn#go!7jFQm zEQ$(>AI)#N;KTnz@R58}T~+M!Ca1)iEYtqR2gw>mBH9&YpCda%V%s0tEwFE&%2#X3 zd0*%?qTnTA?@)4)_V zT4Hs*kA&VtH;Mxcftivs7Xc6e4#t1%P6$rlskJ-0llnEr>Zw9<0sZr@Oj>FWN(*_n z4pa}Fcn--H6izSpDowwXb5#jLba4l{v@bePx4{W*#WxrFsFu12Y*zxaDa;2HTr zL1E9Ad3wo^ghgQ&bTP5M!|V-$6U@6YuRy+m8y7sA^6V)(RnpzcSVAuuyEklk^0Qt` zWK&SN*hXDHOblO5)P28y18r51ci&*emV{nOIcXwj*}pyvqn99W)WLS;5bO z+4el2aZbm3e@vq-mBgPaBi$vP60)eciBcB=GVVZ0i1MKMWmzpxF(@Qinh(W*>Sd0D3%GM=RO5~9`*Pb>+!bze<|41Op>0+7w&GVoT_GdC zimvC9O8jNjg`I!Es6fq9H!@aT8DGJHRqOb1)jP+}P~u5s4cC<`L67}YpiVFo;515` zeiR%c!j6j@ZMo+0w8S&3b?dsWu8+KWmkhfVf30w3JUHLE=Kt)LA7 zVNb7cYr3PO6z6(!DRC(~2TWf__c*MPw-VQEYUe-{&eD9PR?^&k?~e)Z*P{W6xS&1> z&SaifInUm@|F9pD%98U(0S#Qe?pnr+y;;?^1gS368HVXhtk-XK63;$jzB#OSJM4>5 z5jq7{=1*U#Dr9qxt-YyE!Uf+T!n_ca2o~SGfltaS=+D0qCY$fzTtBs#=~%vEDfYw| zA|ZTMdj(w(i>oUmga`ZWt@JC(tCR1LtTQmrTXZc`ZzQlprl3L=Gh{8w*UF-n!5#)~ zVZMu)$<2k>t%D-=X>PNLRBQ*=&$GpaUeNuir%#m_nvm~Nsv?>5!~iwJ z-xj2EVKlM)b*^SpRfa05R{m9n)?{i4i>FFygXFOw~3#3(8b zZyGh&>(!;DHRd7pBb*s43(5SXufuQ=m|tu=Scrh4h@%B6o6~MLj;k~MfE=+!RS2X?NU3^*MFoP;{)dUWp1CD z{&s;!4A<7TPl=xZUN22HBMdtHrfEF0*1;yU=ofcW-+KhxY=0Tvk%THf#0%M^zvWGq zIT8-)hW9zZf{8)h`m!RbB>!)2WuIQTq&;Y~;LQaOcU<5IA3=|UG)}XzOIoj3Zv#cu z!P$0%o=oDK4j-ksgR=9}cvI61C;7dZVg)rf&KLPIeHZA39y(=VMPdUTzjoRQ+(*ei z`%JxpXfLb&S1oIZplcj})V17C*n1xMb7XMUK>#>+aEVyjd5e>mRrI}G`f@3M=^l^c zTT5uHPaJ`NG1!f*;$yLUNK^*+5WmeWKZg?TG(;lWuOSvb`A5be@t2d0Xw0_tnQdOY zFW?w00X_c>=?eq8i(307b$mk`s_*oMgrr#qeJRlN7aC0p1s^<~e^M28&i)WCcQ#S` zt|8Ve%OsZ{)SP5dqf9#p5_EWf79}q{>8UQvNuYP&}eqh`ihQcjBTCj6Myp|IS(sSJ8gS zX7?d&yl&r1>E8HGbVjx)A=p*oT;3?kHeJy>d|&0q6_(+M;@wS3|BD<^f?;bpoOrdi zzD?ZbtPN%kx?~!%8q>n~Wv$CJ@J%*q_uCKT<5mXu&3UDv7OlcT9}R~H$>qLd#JR7_ zO`|c>H{qg$yRn}NvtCQ0$X}AZ(;y>j(i1R`&u%I2L?~0e;#z1Ih{be^lRa^#wStB- zoBRZ6id~dmj$PV+{F)%a_Hp)P_idB z8erkn9o~;g-=QgyA83$8J3_D{Lu5b&+UmlYebMwZTt4c0=tsHxUSA{o4W-IMUft?% zeW73=qMjaI@UA;Q^y=m&s?3F)X8Db;r`=bwmr;ToIsy4gj#=4G;F~gTJBz-l!zOeVZqt8Rx08hyJC*X(`k_ zYu`GUi@r#9dE|5Jk(t>w($6bTU$d3x?e>^qo)NqV4i5#ccHD`&qQ_x$CX`owKj;<3 zjQ_P-l>3FSTw%#g+C11ww5KJlcV0+TbYh^ut-!PP?0~Lh8;}|-mP{WK#9AZ`f63fV zac}xnzFG59g>x@iS3~z?qEJWjlTpuat=?KsAWV;c z=wV?#hHG|>nPt3Bc@(3Q`m8s$~Hd0|kOs%6svEd1<6p~;LRYsIj@%Z6gw?u9^KIj>V&fo>1m!-xTn^;`(sIf zP2cRveknT-?AAzt)yd^|49kNzYVcZACjFzb2QMvGzI&gD)Gn{Q!Tsb`SikM@u#H|! zdhrv`5sQt;-!*4uei_@@`8_H@trQa6cC190VEwwG6H^@!$m(E~b8RNK9MM#3Bk#RD z1s)MT74x*`MI=?$zPyYx-^%jgWJ}qfddYgplbFq0-XghP@8$De%^puYowmfp?p{PY zp=BU}5-O3kgL4uiQjrf1s9JXR3d;@R8d~6f8e_pN8u3O_qI|TJS?%k_N)@+6?b;+PXH!2fl^lv5>C0u+w4z7Eg1u%=CHWa%Pg|2y7dJ>L7gCUq z^;g~rbB`WY+b^>{yj7FYb8h0N%P*GRot=&R&=+4XyBB2tl2Ys~-g5s{irr+iHO>A@ z7c?R)c)bxz(IH+Lsz;p?0QqN?sT`=XTMo}dg;JfPY$_kcWquTH*7FRjcQu9 zswplWuACH{y?b+!jM3TnJnGttsE)gN`vWXbadmW6t3Lq41Cv*q`HbJz(d*i-I^fS? zHv!NWuB|VB-LL9g>M^sIQ<`tzCl#kIzmQeAvz6aeIozA3>h)xxTPSZXQR8SFIbFPRE|O=&ZhXY=p9VX~!J`Jiz? z_6=>r$v49=*>ko~Ks0jH`pG9U)QZTz`#7QVtmF= z=oPBmct|Su=mKjG!PKg*hR@oke~)9Qr>^L+SKu6!i-X^Ei7Gen1*N?%d-s>F#I&99 zqz%?f#G{((`3iv|XMA9K7Bht1IQ6dG*{e*~_9co*<@Ft487QyYX0Q{JY-N&L`@pye zgnrWjedUP z5A@7`=>jX$C5U*mWrBSP{;^X-_`4<0T)+Y?cyRHS?_qp=wz zPzG9A64CAiB+MSZIx+&diaB&oo5fZiP3-c*IfC(0^?%UjeAI#UY~wCA$`a)PK@|!JUwF=5_oJCXTRLFkun`D)l-q@k>XbWqNUBi1 zcEN|?WyO_=a*mr$?rAG$_#ECekCFsRY}fqfk2&3rgAynvWopNzpQd{vVXrKWq>||_ zY&#qQ7+YM_E+`ue;^FyG^vuq$IEiN61ZsSt$HOSV}jZmHBRlmp+fF@8zE0 zOkXki*fVTruc{xoMnGID;vmA5&?kgdoMvArkCmh-aWcKSR@uERgvu0o<{(6%Jsbg_(gaa2!9&bUPU!c^of=I_k7 zs+qIr|LhT=6UeO-z@w5MsyQiBvM2sJ=P(RX+Cnyxq|M_R_ii`9Og^MRKMO)BoY@Nu z$f%W(fK6YgmjQxinvc`GdKPYby@y6LhcC98zFBr9&JnnA<>@Ep!SDA^;S4Ir=gnmI z_Il_AufJ}dTJ-d~8V1iJmmF(QUjv!GB!|<4&cQ`0qj?U^C8`QXL%2M4OFkX)r{Bhn;cu=C^PMJu9cGi!Qt*PZA2UnM0(GRqKG zAT>r5p0sW(XP|BwGY+P_KJBlIsslgGv66q-mvK@s$S88EqM!XWl#}94l(WxtAV%*u zee8;5xFqF>BpKZallwSax`bSrzD}R87%pw1aAw0s#DMm>Y;(FaE2%Qb*Z(BQ z$dlB!rZ4wwxKAR{(#WAV?P%P&KHW#ip1UE)yUn@<$Up*A7O#N|Xnk!QqFSvXT;-9; z9w&(*(zxCbnzb z;DgMp{oOD7SL3}Ea{0#3$N-FZK{p8H#l`alD_=TCWfmbo69JhXHQY}gzX89T)knGO zL13Bp6-tuglKM?nV`D3Yp~dYBKJ?eU70WM3T$liw)utsyG!Mqo=!r^QSng?nvr1k@ ze{T329q8a0Cd6uWC+WSO^$1On0DeXAutt-;2sse4aZ8Yx#_^Xz&~9$+z=M2GjMVp_ zrxDNnbRCOL%T6=pm=IPM^pUaUK7n(FKHJwmOE*Us4)R#pyAa``WX&qb3jS$$=;O4rHYHh#?Htas{xM06G86inoIjV}3xerx^(0sWiT{0u`^s(sBfRdpUCeF%dw@_PD=nQqwv z;jA(Hr1G|l^xD1kwiUuAbW|*zWk%|i=r=4*+JjD({x=5E62aK3WY>lM8@)N=?+n}v zu1NyyYiz%b?coua*JjfYQYuli7ZsmXk348D%&=MU_xXUA^W7_b66zc>u?eB@o{*{= z$Mifjw@z@OrRzF(ZcVpESEH>jc5vyI(@9LkQy7~@y~>x9Ycc7m3f@mnE%MYz&&Je*$8@z&entD3e)E8M&A$P@Ir)hp{@GLXC1rt3-Wuq z40KA8OT??773j%}B_L9VbpVR#Al!QF?VB|856mY7S#M#H#$<}S0Z@jk8UamsT*{yW z*zH7oB6AOx@M5=fmnZnyvX6Wr`Tat8>SvZhukLpXNxIhiw}E&>b^`E9Sv_gU#uvB0 zbjO}!#bs@O>6G7SPxUSGPCm5jRKepy_IsZ#m5wpBUG!)gUTkb=k37uTP^FZt6Z-B( z_~{)F%+97MifSu4iur!^ z-(~iZKi7M=QM92{&P)OO!-1|$x3b7gqx;p5BsLxZZ+Gv6_ZK%Mx!HG8aG}_+Q2Td& z+2;~9w;v**{$xuZ6{SCa={5?leB{WJu_uXteW`K``thx(z%+m8zLy-=(Hk0q`k;q) zpepx3@si&ywumb8AcfFrKKKZ)fqdN_o$y~eo&HP3je{ZOjzB9}2;d}Xe@z5HhZphL zk>l~&?~XW&(b&SB}0dfIE`*?rcJsrAjq*Nx%IK0{+Q6+>=LGtV?hB|FZTnwSWa=m` z)@W?FH}@x8 z?&^#jGAcNI`hw@`(HLyC&iKQ;)Y-v4P$CL`8z1D?0J&lF2iyyhd_!lrd_B#25tGri z74^p^MJMi*)aNq8S5j|&-SwZfKxfLme^;*=8ua)B#%Z`plmAivpATc3-2wue{gw~< zjtt@Hikd;r1^p#Tx!ZM1q_556?=GiGy!!p3kXqZy2<(Q5;(*0bZO3~VMk3cPqc}5N z{1e7Z4wz<1ixg7HbM)G1<OU>D{{>IQ8DvhYixmxLj=*p(8l-8rELZ#??h$VxVZeTsi^1$kluV;@Fevay?8pH2dIm#jBMo& zqA{{p_0lZ%+}f>hgD`GimM{0dtCY4~Ik0!C@C@7?sfByN&c-W6APDz?JPG40!jX)? zpN-2S4|bB2er)Kpa68zNzZ~;>4cMw>-ZU9aeuGwsXVw-2eHpdjx(VCT?j^gRt}^i4 z|IZJ{_n_x;icdIRWH@!O7K*$Q&?c2>ETnq8C#rYMxY#a(~ZsSr?>9$KG!(2K4l_tG%=PIY%8Pa^3i%Z zjeW3q;Mqex2~Qr5Hty;A_*<7Q5ADsO*}duR&_L9X9yB381prPEfZu@v6y8(I$o2d7 z!J?;C#d>izo0HneI8Z0o<0}coZ8K4!h9}9fL|&2;nQv6;=OE59vyG5MN0klB3Ol{p z+lLEHOZ!H&t)mGyJo)A6v3ZUn;PajSa)ljPW#+SR&Sc5Gcq=z;)QzPB!pBaQ*T`jC z4K#1F5z7xOkVtnxS3?=?q>n0(EMK=s`K&<%<&%$=VEydTUl7?py~9fGVmqoz*prb( z6$MU&uhQS?d6g&<&nsuo;nTk4R5ECe5>CQS@j1!21U(PhKe&njDJMk~w`5QEFNC%ZkPx1l$dV+h`h??$rP zTL`cp#*?ODky6o5qFf;b&h|iW$Wy%zvzF2}o>KQwT#tfP*3Qmxu2kj|68j#Z@1F_t z*zP4fL%shFigx|E(7*&V)q>@&x^_;8vZLq^jUs2%?SuJ9c+;V7%I5YeL7t`g+qq%| zn20y>HF5X$RCnwBXEo!!J-)$;>&cyx?7d&YJnqBjyf02Z5evDZPAV&mEIZ_C19@5= z5W>DJG|(M87GG!ntnzlb@eg(@{p&pCBKcPnTmGg8Y(~x&Mr83-Sl%nbV`n zugB*pO%r+o9v(q_by)d~J81?vkKZPwgYRsRS|7QFvhKs`f7lbEZt<8xZ9CSO&zJ*${*P{SWk0SVBey9FEAUr*H!Z^ghDvb}VBd*_3$F z%Qvp#J^<8h=WJ*TYAbx;;P6b03-A=y(5moj_y?}|m)L7j_b+~SpS&|-m-FKCz}OjL zM`dLYLU~$V?(}oz4@-}&k40|~>=u@*ed-Ari9${ScFfOx$(QcH*3N#mT4zo~*t(>o}m?n4j%xewr8>@$2t{$&h)np}k%)IE*)M&f8G4ul!>VCn| zAG($dJ_qBsNGHU+KKGZdC=3Wx2$h%-LUF>8o;iHO7hJV~9y%y!qeGY{uk3bXofrR) zQsf^AYCgsdLzcqC0R~kL5r<&|OSuPGncFI$zf`sR>5V(ki(N_lWq3;KLXSsR%l#88 zTF;@XS>c+fS}g!cOn^JyO(}xyxFmNX+x(#$$zV2^`2A=?c@iV_U!4Pymy5zn)=GW( z6Q^(iau^+rM(DrI3-4^V5i|Gjr#R2xD>^IKDCRzb>uCA<#)hgEld=_tsjG>dEY5z0 zT4iPl(E7pzwE8vQFXZg5a(R|)eC?w?wg-e?U%^iEn5p};^AzFa31qzF#A$#D6$f8RxJjW$*b$!-Mr`5NRvm=AAq9J>f}u4T*@7yy$*Yf^E>e8=fgZQ zToLv?`CL15JdYP9_EA8k6#yWJ(4w3N3MOzoWDoo{mxAuYN{`#c`AK-Y?#J&gyWbHm z{g8&l_dWxV*l!R~ASN%Kf{N(<*RM9XelUP?Ee1Ov(P!vj%J~ZcKps94xD}R{bnA9= zjLi-1i4Yl)7}ro#e5#wRQWq;*r(wjhE!O(}^Y2bSwH)IF-d3%;9~sq`!DGnWq%rE7 zKx0KU>@*1PjQ*A-Z*-zAW;4x1|5WSyn@~sq+w)WZzTwU)S)CAJg_Vj{djbB^Gy9ir z>+L$2jUxWmE3>0Xm+iyk42qiCpsXbrTa!{<;ox$iV3iaS|iQR&Q==r11kBua@3Untwm5iio|*h7E~bdg}a zupnd702Rc`om+k&wgVKtRitFfLV89Pdb^auQEWb2 z-bQg=;#s^xUrs-2)0`JL=id!~vxcg}Y#{;(SWB|*Vg;WOA{W}*#3H|3R>0c8FbAR& zy(S_@y<^s{6v_3twOA(%OS$F724?_2u5j63pyyz&am3UJ*(9+<` z6LZ=x5~;F05nlq$P!-^kFYWfNX1N8M5}sH!EG(fY4^wQyq+(j!Pj`n(7^jt*)!ti( z7AwCYvu1#(O(rW4oz5qOfZxIl3Au79yFw8HGtZg`NB1w;xUeZF=$c$$J&-*0C^H`M%xB8y zAyK`)7r=t4)lKX=?G2A~%!{aWfn1G76(5~`jCdix`o)84$G?E>;6*6IYec#`T@z754c@9T3cbhsym(ND-}#1c|aY`4X2 z900Fc&vZ*TEfkP^btdG>oG1XIO1Z7hx%O$Q8wM1mva z{Mv?osaG$p&(tRp$~dK0NBELtUCx?_hA5;b-qF|jIwH%SG6!1fB|u2C)btkZ#oNd@ zgm9^6t(*75QbDg`rKPiLHc!o4Lj4_vaJyug!>zKiVBMY^wuu@KX19tP?fGi$aVKhd z=_%>A`7Qp)Xo;Nlpx!|(VA`i7_VNii2|w376~0qin#{=NSVj%t0K;())g?u4@sa=1 z{g#t{TzqX_Azk}Vi5lWvVVh49hydKdBa`hmL!e!DUJi#35@xV{MbjoMb-fqnxa9Bf zfo~-I%nkvv`A) zgb##QFq7dhKC(_pB}^*s)H;b7hFIf4bYzeL%W^#@@h@FCA5aQp;7ITd6uIjHcJ2QK zl-_2aSWtAyfr}nCE%Zg2By)k(b>~Z+rQzk16Cl||VN!)X+5g0vqC_?z_F(Y<6+6tt z!~5Hv(mLYH*XLCd+xJjcz8|%k0jGt-1Yj~!ag@VO4+ z(?7$;GtMQqt@819$-}>NYKS-#!3rA%<*1qIcQqtB7se)Eh2hY4iMI|4EV-_x0&5m{ zLAygzAEC#W;lMW(W#HV(t_q#wJL#}XY$kmml)Qp&zL9E2Mec=H z1zQ+B)^YjIiIone@dUNouhKZE+z=A`e~$03c|wI!p#u5o`;hLt2!4vv7|ck$yW;he zs*y1ur`Y_9rD0X3mYMCtI#75mxzvX#$TEa%G~eP3nK zsvz9~odGkSdWB=<2K}!A0*VQ@7dpZQ&#jg0fBVmfs-0g^Jnwx!~D#w}8La%}jH zSrGMf3!cLFf#Iw4pd^ ztgBo9WUWaCIWMPP|J7sdrgEd2%eRMVu@>R`4k}@1tV?HyyFZa;1%&E`#u|bmhtl#smbOKURNwo#$WBY1%d-p1f5$ypq z&X2~A)-lzGy&qH1_cUJ>n%_IHc!T@{Ky-nr(>Bf za>rkDGpkoICd0fC(SiG6l6Hhb9yob(?($;fg^T zUK;^3pw1kl_Tv}5F$>LD=G}6^on2BGnJ|FZFhtQ$BJ!;dObmoy!?tJ^|D?JOQ-B)* zqb?w36Cr=;Kt-_>eh3bMm;!Dgy+D09P%~|Suo``EB0Z1WmPE)n(U?CI8i1&3Cj=G@ za6bqlXb>w1?ij=D|CjDEmAD8ZNtpdBpr%^gf3V)2_#kzXX4eAv9}EPtD{k(Y!gZyo z!^QTvsNNzpL`;u`ekJU0d=57;2Sl>G5&}159hx zNye)8RpHOk$WB&*bW%+y zKe6FZQDL@}idTgXdNI34>eTx~Mv?|E5Q=a>;1L@zrX;hP;1Uvod?anfl47u6(m@;n zNSz0l9Y!Gwcw~5r(Q+rSWC%JoI)ZTCg>_&Oa>wGi#RgIV5=SXSDT?qV!eN))HUfu2 z>&@7tAQkl3eOobDpBg{?Xy5w?Kx4T&nkA?xux@y;1dYSy7_nevODkF{N|)}NOVkDZ zbO9>)81Q6>W6~kEdaySp9jg3|ptica?>TFA45)kNM7g@-bIzld?g zA|*8$Y0~cG<9}*rU;uIDSaIE(0nQtSb+X0ToB$Fv2d(?fVox_%&~H*7d2HZ}q42xn zY##qS0n}>|b;MZ+P>TRtrKn&lSNIprS`o3(1dOv}-+cmx1)n(p5hDMiZT>faWjTat z|5kq!W;;lNlXqa4)SJMCM-Zmxx=T+>8GTW);SkR&T^PV-S^^sA@1+PEoj~So^*>H* z{UILZrQE6lw3$)!#taSY(E*GKEV59|$HigzDOjk7)v}e@>AM19uTHMvF~v2mjCGlb|zr5r#f%V_!q+mQJ`H#{^Y?0 z?YdPew$>5z<%i7P#YPQ;jueeeoXpB&;7HAZLqwI4&ISemp6+qJFd@!@s z>uCc5{bGNqz*-JtgJS0#dZ-r%9SP*oGKgQ@>t&?yd*IIBEt3Kieyz9JpPhWIP!d%! zE%z1q&wkuxm}1;IAa1draJv3SnjZjZ;v=?bjz|js%)-=jEMX7>f)Jwr*&Nv%U`&Qh zvU>5&R|wZZq}|(v$ORjM1t9g_Zp1yc`&)Rh3qk|U3YfeYIETBftb52IFfPd`QaV-Y zmFuN6ZGryp?ZW5rEl}V^t7NIK!BLwbQd=j)ZL4*|1ZII&L>&vN4+kypW4e1NcfWYa1WZQ(EH73^jP+@0R}AQ0;m`TX2qYv^GIk}MUw_4!M1fwx(&8RL4B!xCGSM^7p^0AMw=1Yj&wY5XviDsli=KA3(>`I8Z7CgkBu$qk!o$X%`eFtY{J41~rshO^V! zra*`{aMaYLyj6!`%WTjUZ>a(Bv*R~30bP=fJ}`oH5@Lzf37DHZmhb~oHTjn=3*cFy za6bf0brw2ILnBe0yA23za-J}`mkuEl<{96ABs37uX4j+!pP}Zx+Aw|M0VSCKrJMZO znWY!<7RyUve<476=LNLq{Z2k++FXx3k%Iq}s^~O3{{b;7*!!0*VHh-}NqYFChN4FJ z3?iMa1k^`euiGzgSqMp%DcpL5$SYVQmn^(qdI?@aUmUSAxUj)Lc)5kY3retnOqNCW zzeVxuX(VVey45ywJc^U_dgA*XsE;+VBi*8=3rApCS}yx;<^oe8X2qLLF_TQ+u0R2d zzfXDGV+1MD_?E)f;Oa>)gka4+<XzmIE=BN^r0`(#z;`EKtvrmyE_AHu_uv4)3iUKkcF*z zz|t_4VAwlAa9?vwJQ_m&(qRK>pYuq3)Hp`7$bTJwJ3;}MZz&|`-vFi~G@jiE2q9+# zaU}XCwde@7jM40Z#Kej9zOEVU*a6WLYxl9Qq3nu^PIa+ef=px zQTf-JqKSzu*><5bFVBBFY5qnoW#@#Cz*&g>HCHykvLksB%F$7ey1t$b)5K$jznV>k zlH}6se-aSw@?mDN`@@KR12uRjqVnnjOq6i-FI^+zKNDLlj6`ax2mSJq3UpgTWF?`9 zPB`9ZbV|!UHbuZRmME2N>s0MB@ns*J$_-(C$|AS2r$WV3Y) z#W5RzzGXW9-qYM{LES!)E1TQ=^HRgti+5iF;^l`L z!{o`C1Y}RnmDrn=MDJIwJU?vl_(O}@h-vBGM+1AOFejhCtW!byH8nVg4_b62G<;X(C-Ey&&kDZf>t3>{M+9akrw!N>Ata$$ zGJYQ6Mvl0>`EbH-hb86v(}7uDk>|e98Ysc65%L&_JQB!%@StwU>FN19{qpPncvg8+ zwWCXOk@l`s;48t5{Cp}iQE$3*Y%T=K@|^PBU4K-EItiwA@MREZ z42UIdPs9xXcCnOor=0}EV0XxE_zy(Yri>NY3+KpwFCbKjrh4};U5pj=9b_$=4BRl! zkf0Qoh;64q2o4Pt`-8E9Er3v?FK7O9FZbBDKLe+NJ2er`1QTo-)8i#tbcC!lz9?g@ zMWf0lXRo+0u7Dr(hqspOGtva?NRI(xARn9$g?kD?%o@N@k(j3+A25v4_{fG!N@BNj zAA-TzpVe6Y(t#12v|$7@b=%eZG(VO2Ha&%TF;p!ia5cV zc1~@VrflsAkd66FG2TUO+afwD7~7@K_#khLjC~8)6YDn;Z|xczOmDeH+@&$K=i3Gh=$gArR{JEhkF1x6e!Yz#fxhrCDWfom(w-SXB||KoqeVdv^Y#OhG6ClSZ4tK@!us~gU%4>Ky-!yJ(u@w|Bs}3{^uj! zfAf)p{{rosQWSvm_TSPOQB>-;+W*qs#CBlGQh+bDs1}au(|%y8{;-x2upM2XBCc+$6Blv&u@`d* z)QY&8@#@$Q(QmU~374LwS1D#3omgi9Rq=0Sd#T#nQIrU8{UGzsL-MB}<`?@)fD;T` zMP8)w{vWZ?Q>GEmumS)ae3v4UNSNuuoIeQDee`>UoW2lU*D~yVv8mem_8avXo@7nV`{T6!P27%^tCVhOh}Oo~?ryXHV?BeZK-wFr}G$X4XZ<=~(m4J@Y~gwWif0T!!D zcc~xU-oJgW;$jMLnBp#S$+7*q!0CV@asw^UAaCYHz#Qai+?;B+ph=30hHY!UW?j$C zf!@7BBh#O0kqHUE8Ob-NUUD+&ts*M~p3u~1-R5PGCiV0%?Z0#{J*eL>xNu-IfsVy< zP6KP=^KVT;Ah>YMe|xmQzM{yne;rG_J((D{Lx$jks)RjU#}(6x^EpYQbhl}~ytuf|D};tn3(I4i3t-oE}V z@(5q$tp`j{P%p@Rx3L;v@voNk{8otZ0V-0YXjSvb(1*MY+Pb1p>6xtPM&w zT}M!mHn&PpUFxQah2&6#d*R{4A0Cuv9L;g_XyPOq_>K?k2ZD|i*7iMf8110BU8E&4Y3s6zjP$Fb$}Y}|NC4MfD4UAjYO=) z1p~J5e~Ef+RRl>mJ~74o`}(ji*ptm8K#b3Q$dB14A^%N`|LsY|^edXkUOy8o7CP{e zGv=zlctXerL?WUAa0&jKpa4Z-IdyW54Rz+fNF&r-m^-MECW>i5qSVq1M?g;&7EMS5| z+ys6acL;Ek_{RbVjQ@W>8}(;T2jRAPyBnV0u2_)^R8pV=`aq)&e^-!z&_E0wH4-SH ziTl5m67hunSRDR;bYHl!DV1q4KpCM`;lCZP15 z2bCrQ(mPQBX#yg>B?=-Pq$>zfdJCZhkQ(U%0@5XvKoC?QkWfN2#krsNn{U>v`Q9Jz zJ2OA#$NWgL7VEyropbg%d!Ost``V92uDdE;1+ReCA^5`o7*N>%G9+gxOzFRh|EIOA ze$)nUvhA86N=71dEc1%MlpRdzx>V5vrIt73E=L+ zJLLv70_b71WcS2BnbiM2(XknX|6%n8U^l@^0BY!XQ|#qpxNJyz0Ks@rFByR06c?(yP7zy^ z5a2>yCmbVpzd=7j>Yx22SpMe%cc~ztNkIUR!sOz-1v=Boytc>W1SuX0luInbcq5UjqyMRK*BaoUOvCUq#LMers;O4R=B3UKF#CuIIeH^}}%ETt*M~?^}9Y z4Cepl%l12LVB&08pE=-Q3#pfgoA8pQr5_OmH6+H%zk9=eCpU#;seamEbDhh~w1-|p8IEg`uc|ewnp*QS@w>+7H z<~_i5!s6B?p@T!^VRE7H`Ym*Gtav`-$DUzaM}*|5Rf@B!osSBn$t33^xWjLORGMWr zXU;{-wLDBk_jVJDQI@TL>0EA|QhpwvIp+ua>Q6xMemVN9+ja4dLHQuEsj>tUe(p25 zlpJZ@zNzMRs_vXBsLZgNch+go&W$19n4N5ku`4%BTb;3$XJ!9$t{b%{;8bS}c<3B`^pvr7}O9h_TckX^(opwh@ z`y8B5K3sw=!E+ex?E`{qb2In8{bmD+I{nChmY`(b9k{?ww$?4h#`Wo4jSc}W_?m6C z;ye^a(lKfI;t$%>U#Bx**X{y)Gt45@l)MDAcy$E6!$A_z>?Q6*J;n%Ex?O89Nm(jB{N!0l(@AeGi=ZsH~X;)a>{pGMwo2QN=uRy@{GI)$6 zsYurqXAC>%*_>PcDaG@S%-C=&+o=RzDLTo z*P+zZEbFQng$=kumP;M`Zg!IB1Sk^6p4b3DJVvUF{`bC!6wb4rrRqXC>4(VrA61(& zugOW@d-CI!*e}G`d=ky}Cm>7d{9eZx+ZVDZN|~GIB)6^*!|(Yra|C_^T$4F|J!Z>ds8} zg)j@_NTX(U-k*v}yb%v|BmJe@4WHF>YFsmA*l|2`@$kFQ)xwjXwV<6g0+fcw$v_-xSeHkc0+pPs^Mq%?3ecz1fSbm zye)GH3k%NS2Drx&b1LUFQLZ}0v$wWgA2G zamL{Dswu&qC|SN0Md{@&MbTlQ_Uot5N(r>s#how`v)uq1&|pdCv?47%;QaHDJV00? zgAJP|qt2{$;2ryNb8`c9d2#|v7L^A|?8WZHU_Ek0`y+Kz8ZVf?FN^w6KSSrO@gK>q$e_S zkwtGKAsCgc?U8vIy6^m(RHN#M?uNIB#SDp!$OHL}g=6r8J>aN;Ly|=X3yH3DuCbw^ zWwvI2pxU=wCiOSdcvR6Suzw>EVO$w5czZe#>sksa`kI}4gOi25&@zR}LFd?!= z>NMyUBpcoeqjG~uo@6P?nJ7EjJNhN6>Euo`j2+giyC%zj_*`RX-B)J>XBae?WVm25 zGIl}7DY@a<@I=*iHNvP|)};+HI9yiMTP7BavKo3B26vtJA%+1{yK@?tk+sCau{?u#AgVx>`$` zQ^;Ems_THv{9OSSqX_)BZXuvBAM6S~>r;U{Td?k*_**qzDLg8aEq{oW6j8Qw4KmUC zQmr^)Sj^&?=wELvc%MTMN538bhGj5?>X0Xk4eb!a-F>+fox)DtQt0%o9@ndW+i>dI zQ={*5Xv=M|sT<0*$M9NA}xOCnFGA2RgP3|40m_g?t4e8X2$RS%! zi9Tdfk;<$xj0ufzpys?0b!edUK$u#`6x^Bdr&Vx_k~W`+U19|q?z0twVZw|tmpgM zS^xJGi^!$!_3%YVb*4IU2AK>&vG>59Gp|)auZN{g^!;2H@|*6Z|h1TSe-`IEwAE- z5GZ+P&m8?@-;{u}}IBpCxHT#3ZwHJK8w#0s`%WXTiCoM-nhH;@V8g`~HJ~$6%*39Z1E4gG+rpwK_)e?2 zox_$!Sr-a->*7E_cm-z3p-;^3+(_mfRyUzFy(lz*7~BjCG&LiOsP-cm4PFZH?FNHc z%SF?@&t^F{SPY0d!J|%^bwTUsWAJ)|9Rx**J{)1T6R-+9>vfSVvS@6gLm$~4XI`H* zzRih?Jj^(^H2O4D32|97QMCMw&&Y;paAu>$h6{AZ@vte+qr~X(LN?^ud((&m8Ek9k z)Y0^`)k>Zr3GfDrtETS>!v2_8L*k=1Fv32Yv~NJCt_L7u4q6})QB6*@U-notif{O~ ziJo>9P}Oi&%Rg{W+ob{tRl7@(9Z|RyN~vO;LY&ax(VR48je2QKpuo%^F_d zK)hrqKZ z*3W8I;&mEt5B%L~Oxk_`W+FXY4? zS=u%R&_cdNi|xJ~=D42Mk1$?ij1y}`72G32vlMkh%f)zG_G?NLSWbu*_phF}{x(Lf`3(~qrcg~S@~*RVX!Ezcm5DEKUg#90 z3AwYrhCcZN%ctf4;QavZU4BSnX!Y1Paq1U`Hxqkqy)t~RUd$QKw#R)|A@OL!6QE9d z2$wgQ(9J-WUoTGuC+x~~4=}=gD;>U?sR!_vY7`FChH&~nI;oKL3c$S_&|vUtE2OCc zI0*X~`+vPf3L%#QT_vgJM371A?3J5V6JEj@V$-^9cN!Bj6)(A8$yPDAY`cUeIKmcy zu8%}sDo64u;|}ZYaJvg_ACE-PH=sbE(9;Wm z4f^SESYFU-dNN(}$7tPvT1!qXzL^EDBW27bbG6LNM>)y&{;k}%r|BZizYG9-P9ubr zQSJaYpGH3d#nWYH#U0V0Z5XT4_L#oeilNx7FV7`E0m^6AvWY6>Pl1o{`qrI9pm5uz znU)fzOrYpNUWWV*CAoT9Iv6OU2sw+QOUx$}O{7LgwO)MM=iC_>_70XB$%!(N(xhml zu~6nx978E!UN6W9=7Uw-9i^)|Z9slDQc7Nis^c746QP;}RAW7(vyoW>DCR!h*QO2n zI(%;g=Mh;i%8ossUcQBxGC6ycdDVthNP$UR(6+{te>W9Zcy6?RMW`+9*lgy0+SVLS zv|atdn_EL7!doM{j9=yn+XQ*N869?54=d2h0oyQFP&rx|X0VD*>GWMgvefP~mo`uJ z4k&zdJH6YVwyz4ifmIu4BpFkrVZ+EM)jtdkj=)$=NqQz%n46Z#znuAo?5dXP04tB= z=KE6cF_yo{`u>7#=Dip2B&Ph7!*%r zrJOHEm9SXWsBgXXGzwRrep}dyLqaWk{CbjIQ!%P6XDb|fZlsk%e& z>f*|F#oKRx3u*cK4@Ut?{Kj|%_H92Hr>6yby%dnE%#flSHAPWsNnqm zl{J4>UCQ62uoif=3gGErr=6BeR@qC$ag_Aej`0mTmj1h1lYyplol`tlXqP^A>!dlqS}Lu;~AW_W55~ z9z9qA^lAyVB-)3i%_!X*beH`4#zRu2@zqm} z7{x=69RLWt+C{+92Ydlo-S9oKhn*~Dk`{-90~GD&mYMghGqrv?icywV#I5o#am1{y z#mY!A{?M)dETv(5>CRhpJoE5B&Mdi^5r-iWJ08z#@Gd;1^Fxvqi*_T9!LzdR)#$2S zG~qUwECcU@ELxIIO?LVa*KyD+WRxwTJT4j$M&iSzO+~WU$;(*-dTTL!CAS^J*2Vf? ze-o}%JY*k&kmW&CPB6)TGD^EH%9gxP(gR9*?0clGBBaBDx7pa)EjhSf zNO_rBaeIkrFc1PLj1vr(sy=Sa>Wu2(?fo# z>}4#p-^is;4}38aH(it!$gY+VuaHIstt{HFYzxZ07SuLUS^Cw!m2IW$U(*TKi&kku z?|^sOC=lppbPKvql70g^Qlt#D$y%Gs`V@)Kuoyc{;kk9@vmB34c#K9vlAFPa=Q1%e zO=NlE_tifPc#bt6q(Ia~;u&PZVU3Xff#HV_D6v}GInLL9h^6bNwJc87G93$E@cFew z<{()1fE&!Hf_=Dj08D5qM4(?%1&B4Pzlbl9x2zbIbq6XREVoL?X?C!-YeUD zo#wdl8%}2f;=L?wax9=Q3>!lK4$Ezbt#FvCDE^j>=z8m|Utqgcw`e+Q>@vQ2=_S|i)KmN`m3=X3 z{q^mHkvmzjGfx%C099}rK-gn8qXcN>=+*aVVVDO}km~m32zGvnoUY$MHt?(;co!g_I_a=6|bIX?4A(k6RyQwe}1>=3#Eo#rR zyZ-PQ2d`#8`3Pf3Dt9FP93yvKfe$ApY@(0zFHXK0{e7?2^E zV%ra9{@HznDE_U5*!jC~4*9s%BDq5PZo}Z!{fGMEHp=H1ov>nWx!Uy$0Yc~bwBJgi zL9|Q$az{CS7%y8}ZR7GbGp*bAz_<9orio@t)+JI_k@ypY+`e^mkNm}-E7F9J3f4TH z_U<3eLZMs)I-21_5k-mKNZH_2j`%RMfp#POh-8~ zVh*z#k`637KC~Q&zi<+e5eVNcc{a?N&^XFjqVS3@pBzbNiY8$D04I)`SPWb>cvfNz zVgbTk)kKlW!ymk(Ee$Pjv*sM%)dWsXwH~W`ANb6lY1jh!IX&grhV+l<7hr<1KMQo) zK_}TOU>%;MxD^`Fg1mO6F0QMLHjvtt{Zu2~kVE!38H}Lzhw0|0ipF*lu(^B z+24Vu*6!=poF;VI>-uHxT-oi6>C+cXV45pp; zMT2#1;ep#Ks;c?YET5Xsw4{5B_t#a5J-Oa*_!WDt7JC!c!wCMSNO=SVKEvesKMa30 zAf$S%Vk%LloO$EQt|m34<(+nJ$;!c!u3sKZc%Q22Y*NRpy)4#}6nc+LA^6`RFM3c^ zw{)(c;)gU|rpqVDq8>ezbDzHaT32?2^?vc4n{Nfbx2Pk($C3bcG-f}Fg**zxOOMFY zgi`|$0VM%!+_7t~Lul_JOq!49zzW^UT-kSKoWyDF~>pEuzolH4tN#7%#HGASR_l5*C&3`)Z=iaEII1FuDkwt~fTM9egdjfE!Y@xR2f^%s>uE%*W*`x$ z5%w1GU7)TNT-q*K+=LPI+Xs>8}5P%W(W=CNIM}4z?gqXZafmuBCl|iryl`lOB_M%D06j+r@o@ zI<_5YBAfV_JQ?r&!se>BC)J-VgmxIjo}KkM$Xn;_1v5bx0r&T`JeAN#N#&iT z3Dxr4rT)$wp{EfC?>;ED)p zTFZVN0Eu9|n&qYg9y6wII48m`^Y!sPyuZWDD3~(4mkQyhb3@1BEJv_Zh``Y(jE!vj zSK^}?Wtqlafw1K{aSv%`hK}mPJ;*q6Fg+17KR7{_^q_K1tV<+vUoMU8EC_-wn2f)BC5&d_qex=#`vQu~lPuar+?FMzGqg9!Hir|1K4l*i5i z0saxjt(1N~)n~BXsT+*SUy;d$Fu4qV_H!-3kqXcqx?k#auEKgW zgEf-{!sXn^ZEK66IXL}{;z;G?OAi&yTk34p)P!T2(5tIv3*a>*J{BlT?ZY-s^c%j= zxkv=1D+kRW-YqlbkIxOt4C8Z(r6+0cuXwh;XYDvX$u#C{_0v4)cRMwaWVRsRm;Vz2 z^&r)@Ne)}*BV>8&zx#|u8dT6vc`QFgsQb}>Ou<%hFtW&8^WVI}K;F<8TQE#(G5HPR zh)Jn)f{ zTwOJk;bO|T!YIHUaU>?BJ~ruC0eb5$XM>+CpUd;Y4i^SV-a&X9Q5EuJb_-09R#Ukx zjsR*poMg9|=n)qy`fQ}{mF_nVNCKQ-X-1ZTeFVpV2zSw!pfixB)&XsiY3JF;N6xA} z{IB%dj1e$XdBNPtTUurUqg)vuq@;bDEc+1Z2PbiLiAOVnyO1 zp4}jQVDlr>%C!B5hBTkoo6p1^URC(@+WOwR7{=wx&=lK#G{FQRfA{ZI0;OK~P~Vco z*hXM{S!9#Q&C)Q1r$54+HPbeUZg%N@z%)HHS8>LzbUrt|!hIpg!Kdx}eRrwVpQe8J zQYvZdclVxg*W(so@BA?S?w^2Kr~b_T8+0WQ55;_@Pk{Mg-au?~Rbl|}Tl*b?*@~D{qIKZGf9_8@Euo~rGdGx=lEoOqc7nzWo~GlL zsV()Jv@&@&5^A2#Y6R|)fvW0U2A(UAdYPO|`3u-ewRKd04i|bAFduToz{A$6)Fpf&+44dYy_U02!5EMM(~X)FX6kx1TJvV9B(`?ixPOvX_Nc)E@)?7>VwjQ*(4wVr3lvGO_m`o(&BxARCqK`6em%3 zKCz&0ln{vHDO{iAbYLl|Y$-g`Z|w15jQ5pL1*`kw)syQUnlESaEmOqsyc(t^e%WHn z^CK3~AvOmiwNCG)3~Wlw#V6au(c>~LyL3oaw>S-OimPih+f^$36bcMvK~8r|FG)=m z49Vb@ubQ#+-$@v6=FS3RT6Sfn?K>1JPiZb*pYNiw0fVA!M2M#|)!@+Nt1{$r88~0q z!Ogkz9k_>SM5nNLdp5DWYkbUZF;ZF|Vy|;*-H5r__K~(!+*HLk6KB_4J6o{7(=N7B zH)@l2J9AF9H)s?7aW@YhI*UTtMyf8uN3lI-7+3mv7V-nijUSLkK=~ss^?N^(eL;6E z*(|}<<=RyI%ey?2ES}1v1-Bn{L|4~bYiW44fBzLn`YRw8vPTiT`WoGm4rHH*!ts|V z9MCV<7Xc-j3(8=@p>pg*G}~BrWpJVTHGD8{K5x!?+OE3-hnju1;4puY%T+dCR#a^(Fr;RXN9>fLS6`~5uHmhrWNajkUjyZtLQ+;^H37r3iV==CZv=U)Nu@wEBN^+yW>t0D)}uNQAlW#iN_pkRS2J z1NlN5@I);W96OI!>s&cV_CsQLnN6#KTV9e!14|jyj z4Ne~?$<46*xM9_%{Q`%2n$^C4FUFK6G((CGA^R4VRu6Ppxt1I}&GH#@%&X8t>_X2# zKcWdn@<|{z^aFHS_eom4mYIK5lq;xd?fH*Dsks` z60@x(HslvX*8w6KPLikPD9L}lb4)U8AkHUgopEP>sinT24B_$0T@h@rZ#la%PTF75 zcbqj2<53_!%lynmt#2EES!G*wIT{-_^DX##I_oc6XL)I^Ohhi^SBRhC*`3a=JML`G ziWb6{)HrOL$fbXur!(MF#5~>rQ1)m2A$-1L{)ok2c&N_n zIG4XRFXDC4ia;cvQM;Ln`o@#JXEhgAxW9dcPabitd72f<25R1VlO#(o{}WIAZ&Oal&;I0V6F@y)JP8SG7Z0N#v?3jbpP)th z4WelVcU@iut$1aABFAqv8(A1Ec3t9AN}yPh+F)Q3O})4gsjrrF@x69wK4r{vHs{w1+!a@M;dJd9;}$RT3fe)n z?{hc5z|=O;Z4g-s*2|uNMzK>bPOp1>#J+F{C83j|oL3P(hEtC_fB4cT!$Uo;-5c0k z(t0w~^_6W(qjJkoaDMU7CI<~OEmOy@Dt!?(?230B*Q7H2hnCwey0N_Y)@`7PVVEaYsgNw%^kFf!9VSBF}C=U_bcgj zqbLXgZav;H=EY9~=-fy8se=BBK9*Ii5E(XD?%qUs&_?fVqZllxym`M*{ln0)xzQ5* zby;S2E9%I5wto)she2Li-LbqrrhTi~!a-@d8FNkjim8&+^dE-2pc%`9&4T%o>71>6 zQ__kd9k7Z=>12_;)NTNq>$w87KI+GEQ6B)S%aMG*(}4)<>nE0I*My}zrSDba4I;xX ziP~PdFdQFjI2tDm2w#w11LyJ>Iv@0N1nU(>U(=WTp3OS!Yl; zF>FsaCok1uy{kuMYwv5l7CY_wjeUzVsmf@?qI=5RM3(z~Fc+e_(bto7(8N^6EsRjt z>eSYW$V9CNxPlMCJe^4-**ik| z7=f^0d4)@2!HyOBd2T%t40IxQnv5--?Kfcv-$PNS5A!qbC{i4$>|Nww-aZ+Y*S=I^ zx#sdM6-@uUM#{0k<<_Q5qlYYl3v!>W)?+_$QvmHH+vYq)e-A#rx}tAR4-dDpBJCk% zD2as%u7c3bY~(yPYRWm^S9bPra%Bfdy8B%Jzq7cIFVL%H*!u5ru+Stvs-}p3cu#B=AKNk=HBiQCg^Dpb9R2uc( zF{FFY1)%_%LwJ(+5%#=_z=8wsWOxuQao~7_>(ow^e_0sX2=yg6i~ltakdCNx5U4Eh zuDJ_uKY#?B{Hjn1Bx66CAd9jOAQ60} zGQR#Nb8LK!Z3cIwv)Xze+&n?!nY6Z<&9OE2QNm%fyij?)byI$$Wi4OsL5KSmeiZNK zVCEnL5#-I&4dECLgWE+7EG;(=eN>$ERpXMGK527mF% zQ%M*Lp;+74`?{X^)^k}DbU8Af%E3ZsKBCw|hu{P=P!hUH0&goAK%Va}x=u7%(nxmE zi{vRgU*gNwsgd`FHB$pIU1HpLKkFGRENO_FcFx?|#czl5P%Gokcfg?sk)Kmo>2m<$xCa%|BaE)iCp~B- zUTX(P%0-`xPPFcIHy+YcqiedZ1>y@yZ=Zyp?6w5&-md>Lf_EyTXqmZR!2uXDo?4N84N_6GPF z9wMygAd;4^Wn1jc561LELo-O*Ub0lI{8Rr0bjb4PTUSv;IDE&RqB=worVoS9!`xpt z$Ktrjur-Ph3+3)2Eqj@k#GNqqEj;s=IV=Ei+rybd`kjXJ_^Ge*$N`xq{Kxi^t8xBdrtdJZ!T86XL zXH7#xua-f_3^E)m`Xj8N!}~-G{`W z&*(^hg}IaAy)KMjf`G#Pu_Rd2%7Wdk)5P$4tqh~a+wRK(jc?tJ_>@T|+}M^3d}t=8T=T;O@&N?8?WhzMH$Tk zZEzQ$)4lB3A3PA%fg>beRUX z9BM8Lz;Z|*#Nwf4z$e^i0Vn#D1clSWPEOgQ=Ww(g1lEdNzv1A9HbaXb{P> z3}jiGv`+=&HH~J2q9K+k(JgbE0{bzB7{keX#dy0}NTjBcG3~EOlgQ5M+(Ze1aH9jw zm194kFWN6p>&29rqfKv!TAj6zqbH>W53HDGdOxHwp2}SVh*moQfYKR7TBnv!3E8$! z_%b;l`kmKrm8_aYZ^piJ^7kX1ul{^)@ZrO&Yx4?AjsQ9P}!;;US&a29KbYLhc&8KmRNdC6meb7R*0UXx}x zY)Y2P(!5OLX%bluv3%#)4C%ZF)7(;(x}$6b9~yfPO1D_(W z(9aoDF48ejPFkxL3-FA<$t}jq-mB;;Ic}|x(~LQ+qldq1>T4ekcD{3P?Mh4Ms|3XE zT28X4p|uf5!!?oXWBaZ6&@~_;=B4s@^kO`A^w!g#r&4ZEh3Dn2?NXz0&bIv#eoa*? z4h~~NeO~$Q-9^Ty#FE$xL>@o+5Xirq2HDC_GBU_i+LH6E2r61UaO`jzC;8UpHhES^ z1*-QfH2WZpA+xe_&A&<~dd$euSfKjcy1N;OY38s5Q(4ZweyAet&5;bMi4gKWEcf0P zhNr@v2OjRrHnU+a$H`>v>g8sAZXByvT|)N&Vm+IG=)3^DK@1xDsU5pBPnaM*ja@~@ zKQz`hvumBFT9&PNyNG>geIsTfW2UlkKSr|bhB8 z0d)N3D6zMN)cRe}w^1nk-bih50ZY2Zz(jgSEA5PwT@pz)ipOI>%O=3L08j zjw@@oW&$=~`y_7dYincv*%!B~rvo+2jBw-`BXv1MaZkIFN(XBp;HeN9kVDjPfp zk0!QKIZXRZfVp7b0uc;hFY>A8+oyERBpg22ykzN$(EK*L;`QvJmd!EmFzT65N!&Am zq!jwENo!fJaTWs^XM}KGGorb`*Ae+CXhYh%YA%+n;#hOMyOP`Sb8BMLrH@nwgy}E3 z#i0{6@Wy52PKW!dS(54;_^U0NQ<Sc<Z@-bq0J?W+hweCA{r6eE6DkpUtM=Sr&7#_7+(e*?mEQZfJl literal 0 HcmV?d00001 diff --git a/losses.py b/losses.py deleted file mode 100644 index 511af03..0000000 --- a/losses.py +++ /dev/null @@ -1,126 +0,0 @@ -import mindspore -import numpy as np -import mindspore.nn as nn -import mindspore.ops as ops -from mindspore.ops import functional as F - -# 测试引入 -import config -from discriminator_model import Discriminator -from generator_model import Generator - - -# Discriminator_With_Loss -class WithLossCellDis(nn.Cell): - def __init__(self,netD,netG,loss_fn1): - super(WithLossCellDis, self).__init__(auto_prefix=True) - self.netD=netD - self.netG=netG - self.loss_fn1=loss_fn1 - self.ones=ops.OnesLike() - self.zeros=ops.ZerosLike() - - def construct(self, x, y): - y_fake=self.netG(x) - # print("y_fake:\n",y_fake) - y_fake=F.stop_gradient(y_fake) - D_real=self.netD(x,y) - # print(" D_real:\n", D_real) - D_real_loss=self.loss_fn1(D_real,self.ones(D_real)) - D_fake = self.netD(x, y_fake) - D_fake_loss=self.loss_fn1(D_fake,self.zeros(D_fake)) - D_loss=(D_real_loss+D_fake_loss)*0.5 - # print(" D_loss:\n", D_loss) - return D_loss - - @property - def backbone_network(self): - return self.netD - - - - -# Generator_With_Loss -class WithLossCellGen(nn.Cell): - def __init__(self,netD,netG,loss_fn1,loss_fn2): #fn1为BCE_Loss,fn2为L1_Loss - super(WithLossCellGen, self).__init__(auto_prefix=True) - self.netD=netD - self.netG=netG - self.loss_fn1=loss_fn1 - self.loss_fn2=loss_fn2 - self.ones = ops.OnesLike() - - def construct(self, x, y): - y_fake = self.netG(x) - # print("y_fake:\n",y_fake) - D_fake=self.netD(x,y_fake) - # print(" D_real:\n", D_fake) - G_fake_loss=self.loss_fn1(D_fake,self.ones(D_fake)) - L1_loss=self.loss_fn2(y_fake,y)*config.L1_LAMBDA - G_loss=G_fake_loss+L1_loss - # print(G_loss) - return G_loss - - @property - def backbone_network(self): - return self.netG - - -# def testlossG(): -# x=mindspore.Tensor(np.random.rand(1,3,256,256), mindspore.float32) -# y=mindspore.Tensor(np.random.randn(1,3,256,256), mindspore.float32) -# loss_model=WithLossCellGen(netD=Discriminator(),netG=Generator(),loss_fn1=nn.BCEWithLogitsLoss(),loss_fn2=nn.L1Loss()) -# # print(loss_model) -# loss=loss_model(x,y) -# print(loss) -# -# -# if __name__ == "__main__": -# testlossG() - - - - - - - - - - - - - -# class DiscriminatorLoss(nn.Cell): -# def __init__(self,disc,gen): -# super(DiscriminatorLoss, self).__init__() -# self.disc=disc -# self.gen=gen -# self.BWL_Loss=nn.BCEWithLogitsLoss() -# -# def construct(self, x, y): -# y_fake=self.gen(x) -# D_real=self.disc(x,y) -# D_real_loss=self.BWL_Loss(D_real,ops.OnesLike(D_real)) -# D_fake=self.disc(x,y_fake) #.detach()处理 -# D_fake_loss=self.BWL_Loss(D_fake,ops.ZerosLike(D_fake)) -# D_loss=(D_real_loss+D_fake_loss)*0.5 -# return D_loss -# -# -# class GeneratorLoss(nn.Cell): -# def __init__(self,disc,gen): -# super(GeneratorLoss, self).__init__() -# self.disc=disc -# self.gen=gen -# self.BWL_Loss=nn.BCEWithLogitsLoss() -# self.L1_loss=nn.L1Loss() -# -# def construct(self, x, y): -# y_fake = self.gen(x) -# D_fake = self.disc(x, y_fake) -# G_fake_loss=self.BWL_Loss(D_fake,ops.OnesLike(D_fake)) -# L1_loss=self.L1_loss(y_fake,y)*config.L1_LAMBDA -# G_loss=G_fake_loss+L1_loss -# return y_fake,G_loss -# -# diff --git a/pix2pix.py b/pix2pix.py deleted file mode 100644 index bf0bf2e..0000000 --- a/pix2pix.py +++ /dev/null @@ -1,146 +0,0 @@ -import mindspore as ms -import mindspore.nn as nn -from mindspore import context -from mindspore.context import ParallelMode -from mindspore.parallel._auto_parallel_context import auto_parallel_context -from mindspore.communication.management import get_group_size -import mindspore.ops as ops -from discriminator_model import Discriminator -from generator_model import Generator - -class Pix2Pix(nn.Cell): - def __init__(self,TrainOneStepCellDis,TrainOneStepCellGen): - super(Pix2Pix, self).__init__(auto_prefix=True) - self.TrainOneStepCellDis=TrainOneStepCellDis - self.TrainOneStepCellGen=TrainOneStepCellGen - - def construct(self, x, y): - output_D=self.TrainOneStepCellDis(x,y).view(-1) - netD_loss=output_D.mean() - output_G=self.TrainOneStepCellGen(x,y).view(-1) - netG_loss=output_G.mean() - return netD_loss,netG_loss - - - - - - - - - - - -# class DisWithLossCell(nn.Cell): -# def __int__(self, dis_loss_fn): -# super(DisWithLossCell, self).__int__(auto_prefix=False) -# self.dis_loss_fn = dis_loss_fn -# -# def construct(self, x, y): -# dis_loss = self.dis_loss_fn(x, y) -# -# return dis_loss - -# -# class WithLossCell(nn.Cell): -# def __int__(self, network): #network即为GeneratorLoss -# super(WithLossCell, self).__int__(auto_prefix=False) -# self.network = network -# -# def construct(self, x, y): -# fake_image,gen_loss = self.network(x, y) -# -# return gen_loss -# -# -# class TrainOneStepDis(nn.Cell): -# """ -# Encapsulation class of Cycle GAN discriminator network training. -# -# Append an optimizer to the training network after that the construct -# function can be called to create the backward graph. -# -# Args: -# D (Cell): Discriminator with loss Cell. Note that loss function should have been added. -# optimizer (Optimizer): Optimizer for updating the weights. -# sens (Number): The adjust parameter. Default: 1.0. -# """ -# def __init__(self,D,optimizer,sens=1.0): #D为DiscriminatorLoss -# super(TrainOneStepDis, self).__init__(auto_prefix=False) -# self.optimizer=optimizer -# self.D=D -# self.D.set_grad() -# self.D.set_train() -# self.grad=ops.GradOperation(get_by_list=True,sens_param=True) -# self.sens=sens -# self.weights=ms.ParameterTuple(D.trainaable_params()) -# self.reducer_flag=False -# self.grad_reducer=None -# self.parallel_mode = context.get_auto_parallel_context("parallel_mode") -# if self.parallel_mode in [ParallelMode.DATA_PARALLEL, ParallelMode.HYBRID_PARALLEL]: -# self.reducer_flag = True -# if self.reducer_flag: -# mean = context.get_auto_parallel_context("gradients_mean") -# if auto_parallel_context().get_device_num_is_set(): -# degree = context.get_auto_parallel_context("device_num") -# else: -# degree = get_group_size() -# self.grad_reducer = nn.DistributedGradReducer(optimizer.parameters, mean, degree) -# -# def construct(self, x, y): -# weights = self.weights -# ld = self.D(x,y) #discriminator_loss -# sens_d = ops.Fill()(ops.DType()(ld), ops.Shape()(ld), self.sens) -# grads_d = self.grad(self.D, weights)(x,y,sens_d) -# if self.reducer_flag: -# # apply grad reducer on grads -# grads_d = self.grad_reducer(grads_d) -# return ops.depend(ld, self.optimizer(grads_d)) -# -# -# class TrainOneStepGen(nn.Cell): -# """ -# Encapsulation class of Cycle GAN generator network training. -# -# Append an optimizer to the training network after that the construct -# function can be called to create the backward graph. -# -# Args: -# G (Cell): Generator with loss Cell. Note that loss function should have been added. -# generator (Cell): Generator of CycleGAN. -# optimizer (Optimizer): Optimizer for updating the weights. -# sens (Number): The adjust parameter. Default: 1.0. -# """ -# def __init__(self,G,gen,optimizer,sens=1.0): #G为GeneratorLoss,gen为generator -# super(TrainOneStepGen, self).__init__(auto_prefix=False) -# self.optimizer = optimizer -# self.G = G -# self.G.set_grad() -# self.G.set_train() -# self.grad=ops.GradOperation(get_by_list=True,sens_param=True) -# self.sens=sens -# self.weights = ms.ParameterTuple(gen.trainable_params()) -# self.net = WithLossCell(G) # -# self.reducer_flag = False -# self.grad_reducer = None -# self.parallel_mode = context.get_auto_parallel_context("parallel_mode") -# if self.parallel_mode in [ParallelMode.DATA_PARALLEL, ParallelMode.HYBRID_PARALLEL]: -# self.reducer_flag = True -# if self.reducer_flag: -# mean = context.get_auto_parallel_context("gradients_mean") -# if auto_parallel_context().get_device_num_is_set(): -# degree = context.get_auto_parallel_context("device_num") -# else: -# degree = get_group_size() -# self.grad_reducer = nn.DistributedGradReducer(optimizer.parameters, mean, degree) -# -# def construct(self, x, y): -# weights = self.weights -# fake_image,lg= self.G(x, y) #G为Generatorloss -# sens = ops.Fill()(ops.DType()(lg), ops.Shape()(lg), self.sens) -# grads_g = self.grad(self.net, weights)(x, y, sens) -# if self.reducer_flag: -# # apply grad reducer on grads -# grads_g = self.grad_reducer(grads_g) -# -# return fake_image,ops.depend(lg, self.optimizer(grads_g)) diff --git a/postprocess.py b/postprocess.py new file mode 100644 index 0000000..f754d55 --- /dev/null +++ b/postprocess.py @@ -0,0 +1,60 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +""" + postprocess +""" +import os +import numpy as np +from PIL import Image +from src.utils.config import get_args +from mindspore import Tensor + +def save_image(img, img_path): + """Save a numpy image to the disk + + Parameters: + img (numpy array / Tensor): image to save. + image_path (str): the path of the image. + """ + if isinstance(img, Tensor): + img = img.asnumpy() + elif not isinstance(img, np.ndarray): + raise ValueError("img should be Tensor or numpy array, but get {}".format(type(img))) + img = decode_image(img) + + img_pil = Image.fromarray(img) + img_pil.save(img_path + ".jpg") + +def decode_image(img): + """Decode a [1, C, H, W] Tensor to image numpy array.""" + mean = 0.5 * 255 + std = 0.5 * 255 + + return (img * std + mean).astype(np.uint8).transpose((1, 2, 0)) + +if __name__ == '__main__': + args = get_args() + + result_dir = "./result_Files" + object_imageSize = 256 + rst_path = result_dir + + for i in range(len(os.listdir(rst_path))): + file_name = os.path.join(rst_path, "Pix2Pix_data_bs" + str(args.batch_size) + '_' + str(i) + '_0.bin') + output = np.fromfile(file_name, np.float32).reshape(3, object_imageSize, object_imageSize) + print(output.shape) + save_image(output, './310_infer_img' + str(i + 1)) + print("=======image", i + 1, "saved success=======") + print("Generate images success!") diff --git a/preprocess.py b/preprocess.py new file mode 100644 index 0000000..3b224fa --- /dev/null +++ b/preprocess.py @@ -0,0 +1,38 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +""" + preprocess +""" +import os +import numpy as np +from src.dataset.pix2pix_dataset import pix2pixDataset_val, create_val_dataset +from src.utils.config import get_args + +if __name__ == '__main__': + args = get_args() + result_path = "./preprocess_Result/" + dataset_val = pix2pixDataset_val(root_dir=args.val_data_dir) + ds_val = create_val_dataset(dataset_val) + img_path = os.path.join(result_path, "00_data") + os.makedirs(img_path) + target_images_list = [] + for i, data in enumerate(ds_val.create_dict_iterator(output_numpy=True)): + file_name = "Pix2Pix_data_bs" + str(args.batch_size) + "_" + str(i) + ".bin" + file_path = img_path + "/" + file_name + data['input_images'].tofile(file_path) + target_images_list.append(data['target_images']) + + np.save(result_path + "target_images_ids.npy", target_images_list) + print("=" * 20, "export bin files finished", "=" * 20) diff --git a/scripts/run_distribute_train_ascend.sh b/scripts/run_distribute_train_ascend.sh new file mode 100644 index 0000000..7c4dd9b --- /dev/null +++ b/scripts/run_distribute_train_ascend.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if [ $# != 5 ] +then + echo "Usage: sh run_distribute_train.sh [DEVICE_NUM] [DISTRIBUTE] [RANK_TABLE_FILE] [DATASET_PATH] [DATASET_NAME]" + exit 1 +fi + +echo "After running the script, the network runs in the background. The log will be generated in LOGx/log.txt" + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} + +export RANK_SIZE=$1 +export DISTRIBUTE=$2 +export RANK_TABLE_FILE=$(get_real_path $3) +export DATASET_PATH=$(get_real_path $4) + +for((i=0;i env.log + if [ $5 == 'facades' ]; + then + python train.py --run_distribute=$DISTRIBUTE --device_target Ascend --device_num=$RANK_SIZE \ + --device_id=$DEVICE_ID --dataset_size 400 --train_data_dir $DATASET_PATH &> log & + + elif [ $5 == 'maps' ]; + then + python train.py --run_distribute=$DISTRIBUTE --device_target Ascend --device_num=$RANK_SIZE \ + --device_id=$DEVICE_ID --dataset_size 1096 --train_data_dir $DATASET_PATH &> log & + fi + cd .. +done diff --git a/scripts/run_distribute_train_gpu.sh b/scripts/run_distribute_train_gpu.sh new file mode 100644 index 0000000..e016c7d --- /dev/null +++ b/scripts/run_distribute_train_gpu.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# Copyright 2020-2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ + +if [ $# != 3 ] +then + echo "Usage: bash run_distribute_train_gpu.sh [DATASET_PATH] [DATASET_NAME] [DEVICE_NUM]" + exit 1 +fi + + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} + +PATH1=$(get_real_path $1) + +if [ ! -d $PATH1 ] +then + echo "error: DATASET_PATH=$PATH1 is not a directory" + exit 1 +fi + +export DEVICE_NUM=$3 +export RANK_SIZE=$3 + +rm -rf ./train_parallel +mkdir ./train_parallel +cp ../*.py ./train_parallel +cp *.sh ./train_parallel +cp -r ../src ./train_parallel +mkdir ./train_parallel/results +mkdir ./train_parallel/results/ckpt +mkdir ./train_parallel/results/predict +mkdir ./train_parallel/results/loss_show +mkdir ./train_parallel/results/fake_img +cd ./train_parallel || exit + +if [ $2 == 'facades' ]; +then + mpirun -n $3 --output-filename log_output --merge-stderr-to-stdout --allow-run-as-root python train.py --device_target GPU \ + --run_distribute 1 --device_num $3 --dataset_size 400 --train_data_dir $PATH1 --pad_mode REFLECT &> log & +elif [ $2 == 'maps' ]; +then + mpirun --allow-run-as-root -n $3 --output-filename log_output --merge-stderr-to-stdout \ + python train.py --device_target GPU --device_num $3 --dataset_size 1096 \ + --run_distribute 1 --train_data_dir $PATH1 --pad_mode REFLECT &> log & +fi diff --git a/scripts/run_eval_ascend.sh b/scripts/run_eval_ascend.sh new file mode 100644 index 0000000..fe43f4d --- /dev/null +++ b/scripts/run_eval_ascend.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "=======================================================================================================================================" +echo "Please run the eval as: " +echo "python eval.py device_target device_id val_data_dir ckpt" +echo "for example: python eval.py --device_target Ascend --device_id 0 --val_data_dir ./facades/test --ckpt ./results/ckpt/Generator_200.ckpt" +echo "=======================================================================================================================================" + +if [ $# != 4 ] +then + echo "Usage: bash run_eval_gpu.sh [DATASET_PATH] [DATASET_NAME] [CKPT_PATH] [RESULT_DIR]" + exit 1 +fi + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} + +PATH1=$(get_real_path $1) +CKPT_PATH=$(get_real_path $3) +RESULT_PATH=$4 +if [ ! -d $PATH1 ] +then + echo "error: DATASET_PATH=$PATH1 is not a directory" + exit 1 +fi + +if [ $2 == 'facades' ]; then + python eval.py --device_target Ascend --device_id 0 --val_data_dir $PATH1 --ckpt $CKPT_PATH --predict_dir $RESULT_PATH --dataset_size 400 +elif [ $2 == 'maps' ]; then + python eval.py --device_target Ascend --device_id 0 --val_data_dir $PATH1 --ckpt $CKPT_PATH --predict_dir $RESULT_PATH --dataset_size 1096 +fi + diff --git a/scripts/run_eval_gpu.sh b/scripts/run_eval_gpu.sh new file mode 100644 index 0000000..034e813 --- /dev/null +++ b/scripts/run_eval_gpu.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "=======================================================================================================================================" +echo "Please run the eval as: " +echo "python eval.py device_target device_id val_data_dir ckpt" +echo "for example: python eval.py --device_target GPU --device_id 0 --val_data_dir ./facades/test --ckpt ./results/ckpt/Generator_200.ckpt" +echo "=======================================================================================================================================" + +if [ $# != 4 ] +then + echo "Usage: bash run_eval_gpu.sh [DATASET_PATH] [DATASET_NAME] [CKPT_PATH] [RESULT_DIR]" + exit 1 +fi + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} + +PATH1=$(get_real_path $1) +CKPT_PATH=$(get_real_path $3) +RESULT_PATH=$4 + +if [ ! -d $PATH1 ] +then + echo "error: DATASET_PATH=$PATH1 is not a directory" + exit 1 +fi + +if [ $2 == 'facades' ]; then + python eval.py --device_target GPU --device_id 0 --val_data_dir $PATH1 --ckpt $CKPT_PATH --predict_dir $RESULT_PATH --pad_mod REFLECT \ + --dataset_size 400 +elif [ $2 == 'maps' ]; then + python eval.py --device_target GPU --device_id 0 --val_data_dir $PATH1 --ckpt $CKPT_PATH --predict_dir $RESULT_PATH --dataset_size 1096 \ + --pad_mode REFLECT +fi diff --git a/scripts/run_infer_310.sh b/scripts/run_infer_310.sh new file mode 100644 index 0000000..98633ce --- /dev/null +++ b/scripts/run_infer_310.sh @@ -0,0 +1,130 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ + +if [[ $# -lt 4 || $# -gt 5 ]]; then + echo "Usage: bash run_infer_310.sh [MINDIR_PATH] [DATASET_PATH] [NEED_PREPROCESS] [DEVICE_TARGET] [DEVICE_ID] + DEVICE_TARGET must choose from ['GPU', 'CPU', 'Ascend'] + NEED_PREPROCESS means weather need preprocess or not, it's value is 'y' or 'n'. + DEVICE_ID is optional, it can be set by environment variable device_id, otherwise the value is zero" +exit 1 +fi + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} +model=$(get_real_path $1) +dataset_path=$(get_real_path $2) + +if [ "$3" == "y" ] || [ "$3" == "n" ];then + need_preprocess=$3 +else + echo "weather need preprocess or not, it's value must be in [y, n]" + exit 1 +fi +if [ "$4" == "GPU" ] || [ "$4" == "CPU" ] || [ "$4" == "Ascend" ];then + device_target=$4 +else + echo "device_target must be in ['GPU', 'CPU', 'Ascend']" + exit 1 +fi + +device_id=0 +if [ $# == 5 ]; then + device_id=$5 +fi + +echo "mindir name: "$model +echo "dataset path: "$dataset_path +echo "need preprocess: "$need_preprocess +echo "device_target: "$device_target +echo "device id: "$device_id + +export ASCEND_HOME=/usr/local/Ascend/ +if [ -d ${ASCEND_HOME}/ascend-toolkit ]; then + export PATH=$ASCEND_HOME/fwkacllib/bin:$ASCEND_HOME/fwkacllib/ccec_compiler/bin:$ASCEND_HOME/ascend-toolkit/latest/fwkacllib/ccec_compiler/bin:$ASCEND_HOME/ascend-toolkit/latest/atc/bin:$PATH + export LD_LIBRARY_PATH=$ASCEND_HOME/fwkacllib/lib64:/usr/local/lib:$ASCEND_HOME/ascend-toolkit/latest/atc/lib64:$ASCEND_HOME/ascend-toolkit/latest/fwkacllib/lib64:$ASCEND_HOME/driver/lib64:$ASCEND_HOME/add-ons:$LD_LIBRARY_PATH + export TBE_IMPL_PATH=$ASCEND_HOME/ascend-toolkit/latest/opp/op_impl/built-in/ai_core/tbe + export PYTHONPATH=$ASCEND_HOME/fwkacllib/python/site-packages:${TBE_IMPL_PATH}:$ASCEND_HOME/ascend-toolkit/latest/fwkacllib/python/site-packages:$PYTHONPATH + export ASCEND_OPP_PATH=$ASCEND_HOME/ascend-toolkit/latest/opp +else + export PATH=$ASCEND_HOME/fwkacllib/bin:$ASCEND_HOME/fwkacllib/ccec_compiler/bin:$ASCEND_HOME/atc/ccec_compiler/bin:$ASCEND_HOME/atc/bin:$PATH + export LD_LIBRARY_PATH=$ASCEND_HOME/fwkacllib/lib64:/usr/local/lib:$ASCEND_HOME/atc/lib64:$ASCEND_HOME/acllib/lib64:$ASCEND_HOME/driver/lib64:$ASCEND_HOME/add-ons:$LD_LIBRARY_PATH + export PYTHONPATH=$ASCEND_HOME/fwkacllib/python/site-packages:$ASCEND_HOME/atc/python/site-packages:$PYTHONPATH + export ASCEND_OPP_PATH=$ASCEND_HOME/opp +fi + +function preprocess_data() +{ + if [ -d preprocess_Result ]; then + rm -rf ./preprocess_Result + fi + mkdir preprocess_Result + python ../preprocess.py --val_data_dir=$dataset_path --predict_dir=./preprocess_Result/ >& preprocess.log +} + +function compile_app() +{ + cd ../ascend310_infer || exit + bash build.sh &> build.log +} + +function infer() +{ + cd - || exit + if [ -d result_Files ]; then + rm -rf ./result_Files + fi + if [ -d time_Result ]; then + rm -rf ./time_Result + fi + mkdir result_Files + mkdir time_Result + + ../ascend310_infer/out/main --mindir_path=$model --input0_path=./preprocess_Result/00_data --device_id=$device_id --fusion_switch_path=../ascend310_infer/fusion_switch.cfg &> infer.log + +} + +function generate_img() +{ + python ../postprocess.py --predict_dir=./preprocess_Result/ --val_data_dir=./preprocess_Result/target_images_ids.npy --device_target=$device_target &> acc.log +} + +if [ $need_preprocess == "y" ]; then + preprocess_data + if [ $? -ne 0 ]; then + echo "preprocess dataset failed" + exit 1 + fi +fi +compile_app +if [ $? -ne 0 ]; then + echo "compile app code failed" + exit 1 +fi +infer +if [ $? -ne 0 ]; then + echo " execute inference failed" + exit 1 +fi +generate_img +if [ $? -ne 0 ]; then + echo "generate images failed" + exit 1 +fi diff --git a/scripts/run_train_ascend.sh b/scripts/run_train_ascend.sh new file mode 100644 index 0000000..00162fd --- /dev/null +++ b/scripts/run_train_ascend.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "=====================================================================================================================" +echo "Please run the train as: " +echo "python train.py device_target device_id dataset_size train_data_dir" +echo "for example: python train.py --device_target Ascend --device_id 0 --dataset_size 400 --train_data_dir ./facades/train" +echo "=====================================================================================================================" + +if [ $# != 2 ] +then + echo "Usage: bash run_train_ascend.sh [DATASET_PATH] [DATASET_NAME]" + exit 1 +fi + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} + +PATH1=$(get_real_path $1) + +if [ ! -d $PATH1 ] +then + echo "error: DATASET_PATH=$PATH1 is not a directory" + exit 1 +fi + +if [ $2 == 'facades' ]; then + python train.py --device_target Ascend --device_id 0 --dataset_size 400 --train_data_dir $PATH1 +elif [ $2 == 'maps' ]; then + python train.py --device_target Ascend --device_id 0 --dataset_size 1096 --train_data_dir $PATH1 +fi diff --git a/scripts/run_train_gpu.sh b/scripts/run_train_gpu.sh new file mode 100644 index 0000000..3e141cf --- /dev/null +++ b/scripts/run_train_gpu.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo "=====================================================================================================================" +echo "Please run the train as: " +echo "python train.py device_target device_id dataset_size train_data_dir" +echo "for example: python train.py --device_target GPU --device_id 0 --dataset_size 400 --train_data_dir ./facades/train" +echo "=====================================================================================================================" + +if [ $# != 2 ] +then + echo "Usage: bash run_train_gpu.sh [DATASET_PATH] [DATASET_NAME]" + exit 1 +fi + +get_real_path(){ + if [ "${1:0:1}" == "/" ]; then + echo "$1" + else + echo "$(realpath -m $PWD/$1)" + fi +} + +PATH1=$(get_real_path $1) + +if [ ! -d $PATH1 ] +then + echo "error: DATASET_PATH=$PATH1 is not a directory" + exit 1 +fi + + +rm -rf ./train +mkdir ./train +mkdir ./train/results +mkdir ./train/results/fake_img +mkdir ./train/results/loss_show +mkdir ./train/results/ckpt +mkdir ./train/results/predict +cp ./*.py ./train +cp ./scripts/*.sh ./train +cp -r ./src ./train +cd ./train || exit + +if [ $2 == 'facades' ]; then + mpirun --allow-run-as-root -n 1 --output-filename log_output --merge-stderr-to-stdout \ + python train.py --device_target GPU --device_id 0 --dataset_size 400 --train_data_dir $PATH1 --pad_mode REFLECT &> log & +elif [ $2 == 'maps' ]; then + mpirun --allow-run-as-root -n 1 --output-filename log_output --merge-stderr-to-stdout \ + python train.py --device_target GPU --device_id 0 --dataset_size 1096 --train_data_dir $PATH1 --pad_mode REFLECT &> log & +fi diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/dataset/__init__.py b/src/dataset/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/dataset/pix2pix_dataset.py b/src/dataset/pix2pix_dataset.py new file mode 100644 index 0000000..382fc11 --- /dev/null +++ b/src/dataset/pix2pix_dataset.py @@ -0,0 +1,173 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +''' + Preprocess Pix2Pix dataset. +''' + +import os +import numpy as np +from PIL import Image +import mindspore +from mindspore import dataset as de +import mindspore.dataset.vision.c_transforms as C +from ..utils.config import get_args + +args = get_args() + +class pix2pixDataset(): + ''' + Define train dataset. + ''' + def __init__(self, root_dir): + self.root_dir = root_dir + self.list_files = os.listdir(self.root_dir) + self.list_files.sort(key=lambda x: int(x[:-4])) + print(self.list_files) + + def __len__(self): + return len(self.list_files) + + def __getitem__(self, index): + img_file = self.list_files[index] + img_path = os.path.join(self.root_dir, img_file) + AB = Image.open(img_path).convert('RGB') + w, h = AB.size + w2 = int(w / 2) + + A = AB.crop((w2, 0, w, h)) + B = AB.crop((0, 0, w2, h)) + + A = A.resize((args.load_size, args.load_size)) + B = B.resize((args.load_size, args.load_size)) + + transform_params = get_params(A.size) + A_crop = crop(A, transform_params, size=256) + B_crop = crop(B, transform_params, size=256) + + return A_crop, B_crop + +def get_params(size=(256, 256)): + ''' + Get parameters from images. + ''' + w, h = size + new_h = h + new_w = w + new_h = new_w = args.load_size # args.load_size + + x = np.random.randint(0, np.maximum(0, new_w - 256)) + y = np.random.randint(0, np.maximum(0, new_h - 256)) + + return (x, y) + +def crop(img, pos, size=256): + ''' + Crop the images. + ''' + ow = oh = args.load_size + x1, y1 = pos + tw = th = size + if (ow > tw or oh > th): + img = img.crop((x1, y1, x1 + tw, y1 + th)) + return img + return img + +def sync_random_Horizontal_Flip(input_images, target_images): + ''' + Randomly flip the input images and the target images. + ''' + seed = np.random.randint(0, 2000000000) + mindspore.set_seed(seed) + op = C.RandomHorizontalFlip(prob=0.5) + out_input = op(input_images) + mindspore.set_seed(seed) + op = C.RandomHorizontalFlip(prob=0.5) + out_target = op(target_images) + return out_input, out_target + +def create_train_dataset(dataset): + ''' + Create train dataset. + ''' + + mean = [0.5 * 255] * 3 + std = [0.5 * 255] * 3 + + trans = [ + C.Normalize(mean=mean, std=std), + C.HWC2CHW() + ] + + train_ds = de.GeneratorDataset(dataset, column_names=["input_images", "target_images"], shuffle=False) + + train_ds = train_ds.map(operations=[sync_random_Horizontal_Flip], input_columns=["input_images", "target_images"]) + + train_ds = train_ds.map(operations=trans, input_columns=["input_images"]) + train_ds = train_ds.map(operations=trans, input_columns=["target_images"]) + + train_ds = train_ds.batch(1, drop_remainder=True) + train_ds = train_ds.repeat(1) + + return train_ds + +class pix2pixDataset_val(): + ''' + Define val dataset. + ''' + def __init__(self, root_dir): + self.root_dir = root_dir + self.list_files = os.listdir(self.root_dir) + self.list_files.sort(key=lambda x: int(x[:-4])) + print(self.list_files) + + def __len__(self): + return len(self.list_files) + + def __getitem__(self, index): + img_file = self.list_files[index] + img_path = os.path.join(self.root_dir, img_file) + + AB = Image.open(img_path).convert('RGB') + w, h = AB.size + + w2 = int(w / 2) + A = AB.crop((w2, 0, w, h)) + B = AB.crop((0, 0, w2, h)) + + return A, B + +def create_val_dataset(dataset): + ''' + Create val dataset. + ''' + + mean = [0.5 * 255] * 3 + std = [0.5 * 255] * 3 + + trans = [ + C.Resize((256, 256)), + C.Normalize(mean=mean, std=std), + C.HWC2CHW() + ] + + val_ds = de.GeneratorDataset(dataset, column_names=["input_images", "target_images"], shuffle=False) + + val_ds = val_ds.map(operations=trans, input_columns=["input_images"]) + val_ds = val_ds.map(operations=trans, input_columns=["target_images"]) + val_ds = val_ds.batch(1, drop_remainder=True) + val_ds = val_ds.repeat(1) + + return val_ds diff --git a/src/models/__init__.py b/src/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/models/discriminator_model.py b/src/models/discriminator_model.py new file mode 100644 index 0000000..0df3582 --- /dev/null +++ b/src/models/discriminator_model.py @@ -0,0 +1,125 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +''' + Define discriminator model——Patch GAN. +''' + +import mindspore.nn as nn +from mindspore.ops import Concat +from ..utils.config import get_args + +args = get_args() + +class ConvNormReLU(nn.Cell): + """ + Convolution fused with BatchNorm/InstanceNorm and ReLU/LackyReLU block definition. + + Args: + in_planes (int): Input channel. + out_planes (int): Output channel. + kernel_size (int): Input kernel size. Default: 4. + stride (int): Stride size for the first convolutional layer. Default: 2. + alpha (float): Slope of LackyReLU. Default: 0.2. + norm_mode (str): Specifies norm method. The optional values are "batch", "instance". + pad_mode (str): Specifies padding mode. The optional values are "CONSTANT", "REFLECT", "SYMMETRIC". + Default: "CONSTANT". + use_relu (bool): Use relu or not. Default: True. + padding (int): Pad size, if it is None, it will calculate by kernel_size. Default: None. + + Returns: + Tensor, output tensor. + """ + def __init__(self, + in_planes, + out_planes, + kernel_size=4, + stride=2, + alpha=0.2, + norm_mode='batch', + pad_mode='CONSTANT', + use_relu=True, + padding=None): + super(ConvNormReLU, self).__init__() + norm = nn.BatchNorm2d(out_planes) + if norm_mode == 'instance': + # Use BatchNorm2d with batchsize=1, affine=False, training=True instead of InstanceNorm2d + norm = nn.BatchNorm2d(out_planes, affine=False) + has_bias = (norm_mode == 'instance') + if padding is None: + padding = (kernel_size - 1) // 2 + if args.pad_mode == 'REFLECT': + pad_mode = "REFLECT" + elif args.pad_mode == "SYMMETRIC": + pad_mode = "SYMMETRIC" + if pad_mode == 'CONSTANT': + conv = nn.Conv2d(in_planes, out_planes, kernel_size, stride, pad_mode='pad', + has_bias=has_bias, padding=padding) + layers = [conv, norm] + else: + paddings = ((0, 0), (0, 0), (padding, padding), (padding, padding)) + pad = nn.Pad(paddings=paddings, mode=pad_mode) + conv = nn.Conv2d(in_planes, out_planes, kernel_size, stride, pad_mode='pad', has_bias=has_bias) + layers = [pad, conv, norm] + if use_relu: + relu = nn.ReLU() + if alpha > 0: + relu = nn.LeakyReLU(alpha) + layers.append(relu) + self.features = nn.SequentialCell(layers) + + def construct(self, x): + output = self.features(x) + return output + + +class Discriminator(nn.Cell): + """ + Discriminator of Model. + + Args: + in_planes (int): Input channel. + ndf (int): the number of filters in the last conv layer + n_layers (int): The number of ConvNormReLU blocks. + alpha (float): LeakyRelu slope. Default: 0.2. + norm_mode (str): Specifies norm method. The optional values are "batch", "instance". + + Returns: + Tensor, output tensor. + """ + def __init__(self, in_planes=3, ndf=64, n_layers=3, alpha=0.2, norm_mode='batch'): + super(Discriminator, self).__init__() + kernel_size = 4 + layers = [ + nn.Conv2d(in_planes, ndf, kernel_size, 2, pad_mode='pad', padding=1), + nn.LeakyReLU(alpha) + ] + nf_mult = ndf + for i in range(1, n_layers): + nf_mult_prev = nf_mult + nf_mult = min(2 ** i, 8) * ndf + layers.append(ConvNormReLU(nf_mult_prev, nf_mult, kernel_size, 2, alpha, norm_mode, padding=1)) + nf_mult_prev = nf_mult + nf_mult = min(2 ** n_layers, 8) * ndf + layers.append(ConvNormReLU(nf_mult_prev, nf_mult, kernel_size, 1, alpha, norm_mode, padding=1)) + layers.append(nn.Conv2d(nf_mult, 1, kernel_size, 1, pad_mode='pad', padding=1)) + + self.features = nn.SequentialCell(layers) + self.concat = Concat(axis=1) + + def construct(self, x, y): + x_y = self.concat((x, y)) + output = self.features(x_y) + return output diff --git a/src/models/generator_model.py b/src/models/generator_model.py new file mode 100644 index 0000000..728fa49 --- /dev/null +++ b/src/models/generator_model.py @@ -0,0 +1,127 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +''' + Define generator model——Unet-based Generator. +''' + +import mindspore.nn as nn +import mindspore.ops as ops + +class UnetGenerator(nn.Cell): + """ + Unet-based generator. + + Args: + in_planes (int): the number of channels in input images. + out_planes (int): the number of channels in output images. + ngf (int): the number of filters in the last conv layer. + n_layers (int): the number of downsamplings in UNet. + alpha (float): LeakyRelu slope. Default: 0.2. + norm_mode (str): Specifies norm method. The optional values are "batch", "instance". + dropout (bool): Use dropout or not. Default: False. + + Returns: + Tensor, output tensor. + """ + def __init__(self, in_planes, out_planes, ngf=64, n_layers=8, alpha=0.2, norm_mode='bn', dropout=False): + super(UnetGenerator, self).__init__() + # construct unet structure + unet_block = UnetSkipConnectionBlock(ngf * 8, ngf * 8, in_planes=None, submodule=None, + norm_mode=norm_mode, innermost=True) + for _ in range(n_layers - 5): + unet_block = UnetSkipConnectionBlock(ngf * 8, ngf * 8, in_planes=None, submodule=unet_block, + norm_mode=norm_mode, dropout=dropout) + # gradually reduce the number of filters from ngf * 8 to ngf + unet_block = UnetSkipConnectionBlock(ngf * 4, ngf * 8, in_planes=None, submodule=unet_block, + norm_mode=norm_mode) + unet_block = UnetSkipConnectionBlock(ngf * 2, ngf * 4, in_planes=None, submodule=unet_block, + norm_mode=norm_mode) + unet_block = UnetSkipConnectionBlock(ngf, ngf * 2, in_planes=None, submodule=unet_block, norm_mode=norm_mode) + self.model = UnetSkipConnectionBlock(out_planes, ngf, in_planes=in_planes, submodule=unet_block, + outermost=True, norm_mode=norm_mode) + + def construct(self, x): + return self.model(x) + + +class UnetSkipConnectionBlock(nn.Cell): + """Unet submodule with skip connection. + + Args: + outer_nc (int): The number of filters in the outer conv layer + inner_nc (int): The number of filters in the inner conv layer + in_planes (int): The number of channels in input images/features + dropout (bool): Use dropout or not. Default: False. + submodule (Cell): Previously defined submodules + outermost (bool): If this module is the outermost module + innermost (bool): If this module is the innermost module + alpha (float): LeakyRelu slope. Default: 0.2. + norm_mode (str): Specifies norm method. The optional values are "batch", "instance". + + Returns: + Tensor, output tensor. + """ + def __init__(self, outer_nc, inner_nc, in_planes=None, dropout=False, + submodule=None, outermost=False, innermost=False, alpha=0.2, norm_mode='batch'): + super(UnetSkipConnectionBlock, self).__init__() + downnorm = nn.BatchNorm2d(inner_nc) + upnorm = nn.BatchNorm2d(outer_nc) + use_bias = False + if norm_mode == 'instance': + downnorm = nn.BatchNorm2d(inner_nc, affine=False) + upnorm = nn.BatchNorm2d(outer_nc, affine=False) + use_bias = True + if in_planes is None: + in_planes = outer_nc + downconv = nn.Conv2d(in_planes, inner_nc, kernel_size=4, + stride=2, padding=1, has_bias=use_bias, pad_mode='pad') + downrelu = nn.LeakyReLU(alpha) + uprelu = nn.ReLU() + + if outermost: + upconv = nn.Conv2dTranspose(inner_nc * 2, outer_nc, + kernel_size=4, stride=2, + padding=1, pad_mode='pad') + down = [downconv] + up = [uprelu, upconv, nn.Tanh()] + model = down + [submodule] + up + elif innermost: + upconv = nn.Conv2dTranspose(inner_nc, outer_nc, + kernel_size=4, stride=2, + padding=1, has_bias=use_bias, pad_mode='pad') + down = [downrelu, downconv] + up = [uprelu, upconv, upnorm] + model = down + up + else: + upconv = nn.Conv2dTranspose(inner_nc * 2, outer_nc, + kernel_size=4, stride=2, + padding=1, has_bias=use_bias, pad_mode='pad') + down = [downrelu, downconv, downnorm] + up = [uprelu, upconv, upnorm] + + model = down + [submodule] + up + if dropout: + model.append(nn.Dropout(0.5)) + + self.model = nn.SequentialCell(model) + self.skip_connections = not outermost + self.concat = ops.Concat(axis=1) + + def construct(self, x): + out = self.model(x) + if self.skip_connections: + out = self.concat((out, x)) + return out diff --git a/src/models/init_w.py b/src/models/init_w.py new file mode 100644 index 0000000..f05e4ba --- /dev/null +++ b/src/models/init_w.py @@ -0,0 +1,43 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +""" + Initialize network weights. +""" + +import mindspore.nn as nn +from mindspore.common import initializer as init + +def init_weights(net, init_type='normal', init_gain=0.02): + """ + Initialize network weights. + Parameters: + net (Cell): Network to be initialized + init_type (str): The name of an initialization method: normal | xavier. + init_gain (float): Gain factor for normal and xavier. + """ + for _, cell in net.cells_and_names(): + if isinstance(cell, (nn.Conv2d, nn.Conv2dTranspose)): + if init_type == 'normal': + cell.weight.set_data(init.initializer(init.Normal(init_gain), cell.weight.shape)) + elif init_type == 'xavier': + cell.weight.set_data(init.initializer(init.XavierUniform(init_gain), cell.weight.shape)) + elif init_type == 'constant': + cell.weight.set_data(init.initializer(0.001, cell.weight.shape)) + else: + raise NotImplementedError('initialization method [%s] is not implemented' % init_type) + elif isinstance(cell, nn.BatchNorm2d): + cell.gamma.set_data(init.initializer('ones', cell.gamma.shape)) + cell.beta.set_data(init.initializer('zeros', cell.beta.shape)) diff --git a/src/models/loss.py b/src/models/loss.py new file mode 100644 index 0000000..eff9c47 --- /dev/null +++ b/src/models/loss.py @@ -0,0 +1,158 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +""" + Define losses. +""" + +import mindspore.nn as nn +import mindspore.ops as ops +from mindspore.ops import functional as F +import mindspore.ops.operations as P +from mindspore.parallel._utils import (_get_device_num, _get_gradients_mean, _get_parallel_mode) +from mindspore.context import ParallelMode +from mindspore.nn.wrap.grad_reducer import DistributedGradReducer +from mindspore.nn.loss.loss import _Loss +from src.utils.config import get_args + +args = get_args() + +class SigmoidCrossEntropyWithLogits(_Loss): + def __init__(self): + super(SigmoidCrossEntropyWithLogits, self).__init__() + self.cross_entropy = P.SigmoidCrossEntropyWithLogits() + + def construct(self, data, label): + x = self.cross_entropy(data, label) + return self.get_loss(x) + +class D_Loss(_Loss): + """ + Define Dloss. + """ + def __init__(self, reduction="mean"): + super(D_Loss, self).__init__(reduction) + self.sig = SigmoidCrossEntropyWithLogits() + self.ones = ops.OnesLike() + self.zeros = ops.ZerosLike() + self.LAMBDA_Dis = args.LAMBDA_Dis + + def construct(self, pred1, pred0): + loss = self.sig(pred1, self.ones(pred1)) + self.sig(pred0, self.zeros(pred0)) + dis_loss = loss * self.LAMBDA_Dis + return dis_loss + +class D_WithLossCell(nn.Cell): + """ + Define D_WithLossCell. + """ + def __init__(self, backbone, loss_fn): + super(D_WithLossCell, self).__init__(auto_prefix=True) + self.netD = backbone.netD + self.netG = backbone.netG + self._loss_fn = loss_fn + + def construct(self, realA, realB): + fakeB = self.netG(realA) + pred1 = self.netD(realA, realB) + pred0 = self.netD(realA, fakeB) + return self._loss_fn(pred1, pred0) + +class G_Loss(_Loss): + """ + Define Gloss. + """ + def __init__(self, reduction="mean"): + super(G_Loss, self).__init__(reduction) + self.sig = SigmoidCrossEntropyWithLogits() + self.l1_loss = nn.L1Loss() + self.ones = ops.OnesLike() + self.LAMBDA_GAN = args.LAMBDA_GAN + self.LAMBDA_L1 = args.LAMBDA_L1 + + def construct(self, fakeB, realB, pred0): + loss_1 = self.sig(pred0, self.ones(pred0)) + loss_2 = self.l1_loss(fakeB, realB) + loss = loss_1 * self.LAMBDA_GAN + loss_2 * self.LAMBDA_L1 + return loss + +class G_WithLossCell(nn.Cell): + """ + Define G_WithLossCell. + """ + def __init__(self, backbone, loss_fn): + super(G_WithLossCell, self).__init__(auto_prefix=True) + self.netD = backbone.netD + self.netG = backbone.netG + self._loss_fn = loss_fn + + def construct(self, realA, realB): + fakeB = self.netG(realA) + pred0 = self.netD(realA, fakeB) + return self._loss_fn(fakeB, realB, pred0) + +class TrainOneStepCell(nn.Cell): + """ + Define TrainOneStepCell. + """ + def __init__(self, loss_netD, loss_netG, optimizerD, optimizerG, sens=1, auto_prefix=True): + super(TrainOneStepCell, self).__init__(auto_prefix=auto_prefix) + self.loss_netD = loss_netD # loss network + self.loss_netD.set_grad() + self.loss_netD.add_flags(defer_inline=True) + + self.loss_netG = loss_netG + self.loss_netG.set_grad() + self.loss_netG.add_flags(defer_inline=True) + + self.weights_G = optimizerG.parameters + self.optimizerG = optimizerG + self.weights_D = optimizerD.parameters + self.optimizerD = optimizerD + + self.grad = ops.GradOperation(get_by_list=True, sens_param=True) + self.sens = sens + + # Parallel processing + self.reducer_flag = False + self.grad_reducer_G = F.identity + self.grad_reducer_D = F.identity + self.parallel_mode = _get_parallel_mode() + if self.parallel_mode in (ParallelMode.DATA_PARALLEL, ParallelMode.HYBRID_PARALLEL): + self.reducer_flag = True + if self.reducer_flag: + mean = _get_gradients_mean() + degree = _get_device_num() + self.grad_reducer_G = DistributedGradReducer(self.weights_G, mean, degree) + self.grad_reducer_D = DistributedGradReducer(self.weights_D, mean, degree) + + def set_sens(self, value): + self.sens = value + + def construct(self, realA, realB): + """ + Define TrainOneStepCell. + """ + d_loss = self.loss_netD(realA, realB) + g_loss = self.loss_netG(realA, realB) + + d_sens = ops.Fill()(ops.DType()(d_loss), ops.Shape()(d_loss), self.sens) + d_grads = self.grad(self.loss_netD, self.weights_D)(realA, realB, d_sens) + d_res = ops.depend(d_loss, self.optimizerD(d_grads)) + + g_sens = ops.Fill()(ops.DType()(g_loss), ops.Shape()(g_loss), self.sens) + g_grads = self.grad(self.loss_netG, self.weights_G)(realA, realB, g_sens) + g_res = ops.depend(g_loss, self.optimizerG(g_grads)) + return d_res, g_res diff --git a/src/models/pix2pix.py b/src/models/pix2pix.py new file mode 100644 index 0000000..b501e2a --- /dev/null +++ b/src/models/pix2pix.py @@ -0,0 +1,53 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +""" + Define Pix2Pix model. +""" + +import mindspore.nn as nn +from .generator_model import UnetGenerator +from .discriminator_model import Discriminator +from .init_w import init_weights +from ..utils.config import get_args + +args = get_args() + +class Pix2Pix(nn.Cell): + def __init__(self, discriminator, generator): + super(Pix2Pix, self).__init__(auto_prefix=True) + self.netD = discriminator + self.netG = generator + + def construct(self, realA, realB): + fakeB = self.netG(realA) + return fakeB + +def get_generator(): + """ + Return a generator by args. + """ + netG = UnetGenerator(in_planes=3, out_planes=3) + init_weights(netG, init_type=args.init_type, init_gain=args.init_gain) + return netG + + +def get_discriminator(): + """ + Return a discriminator by args. + """ + netD = Discriminator(in_planes=6, ndf=64, n_layers=3) + init_weights(netD, init_type=args.init_type, init_gain=args.init_gain) + return netD diff --git a/src/utils/__init__.py b/src/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/utils/config.py b/src/utils/config.py new file mode 100644 index 0000000..d407e07 --- /dev/null +++ b/src/utils/config.py @@ -0,0 +1,73 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +""" + Define the common options that are used in both training and test. +""" + +import argparse +import ast + + +def get_args(): + ''' + get args. + ''' + parser = argparse.ArgumentParser(description='Pix2Pix Model') + + # parameters + parser.add_argument('--device_target', type=str, default='Ascend', choices=('Ascend', 'GPU'), + help='device where the code will be implemented (default: Ascend)') + parser.add_argument('--run_distribute', type=int, default=0, help='distributed training, default is 0.') + parser.add_argument('--device_num', type=int, default=1, help='device num, default is 1.') + parser.add_argument('--device_id', type=int, default=6, help='device id, default is 0.') + parser.add_argument('--save_graphs', type=ast.literal_eval, default=False, + help='whether save graphs, default is False.') + parser.add_argument('--init_type', type=str, default='normal', help='network initialization, default is normal.') + parser.add_argument('--init_gain', type=float, default=0.02, + help='scaling factor for normal, xavier and orthogonal, default is 0.02.') + parser.add_argument('--pad_mode', type=str, default='CONSTANT', choices=('CONSTANT', 'REFLECT', 'SYMMETRIC'), + help='scale images to this size, default is CONSTANT.') + parser.add_argument('--load_size', type=int, default=286, help='scale images to this size, default is 286.') + parser.add_argument('--batch_size', type=int, default=1, help='batch_size, default is 1.') + parser.add_argument('--LAMBDA_Dis', type=float, default=0.5, help='weight for Discriminator Loss, default is 0.5.') + parser.add_argument('--LAMBDA_GAN', type=int, default=1, help='weight for GAN Loss, default is 1.') + parser.add_argument('--LAMBDA_L1', type=int, default=100, help='weight for L1 Loss, default is 100.') + parser.add_argument('--beta1', type=float, default=0.5, help='adam beta1, default is 0.5.') + parser.add_argument('--beta2', type=float, default=0.999, help='adam beta2, default is 0.999.') + parser.add_argument('--lr', type=float, default=0.0002, help='the initial learning rate, default is 0.0002.') + parser.add_argument('--lr_policy', type=str, default='linear', help='learning rate policy, default is linear.') + parser.add_argument('--epoch_num', type=int, default=200, help='epoch number for training, default is 200.') + parser.add_argument('--n_epochs', type=int, default=100, + help='number of epochs with the initial learning rate, default is 100.') + parser.add_argument('--n_epochs_decay', type=int, default=100, + help='number of epochs with the dynamic learning rate, default is 100.') + parser.add_argument('--dataset_size', type=int, default=400, choices=(400, 1096), + help='for Facade_dataset,the number is 400; for Maps_dataset,the number is 1096.') + + # The location of input and output data + parser.add_argument('--train_data_dir', type=str, default=None, help='the file path of input data during training.') + parser.add_argument('--val_data_dir', type=str, default=None, help='the file path of input data during validating.') + parser.add_argument('--train_fakeimg_dir', type=str, default='./results/fake_img/', + help='during training, the file path of stored fake img.') + parser.add_argument('--loss_show_dir', type=str, default='./results/loss_show', + help='during training, the file path of stored loss img.') + parser.add_argument('--ckpt_dir', type=str, default='./results/ckpt/', + help='during training, the file path of stored CKPT.') + parser.add_argument('--ckpt', type=str, default=None, help='during validating, the file path of the CKPT used.') + parser.add_argument('--predict_dir', type=str, default='./results/predict/', + help='during validating, the file path of Generated image.') + args = parser.parse_args() + return args diff --git a/src/utils/tools.py b/src/utils/tools.py new file mode 100644 index 0000000..1ff8f3f --- /dev/null +++ b/src/utils/tools.py @@ -0,0 +1,75 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +""" + Tools for Pix2Pix model. +""" + +import matplotlib.pyplot as plt +import numpy as np +from PIL import Image +from mindspore import Tensor +from src.utils.config import get_args + +plt.switch_backend('Agg') +args = get_args() + +def save_losses(G_losses, D_losses, idx): + plt.figure(figsize=(10, 5)) + plt.title("Generator and Discriminator Loss During Training") + plt.plot(G_losses, label="G") + plt.plot(D_losses, label="D") + plt.xlabel("iterations") + plt.ylabel("Losses") + plt.legend() + plt.savefig(args.loss_show_dir+"/{}.png".format(idx)) + + +def save_image(img, img_path): + """Save a numpy image to the disk + + Parameters: + img (numpy array / Tensor): image to save. + image_path (str): the path of the image. + """ + if isinstance(img, Tensor): + img = decode_image(img) + elif not isinstance(img, np.ndarray): + raise ValueError("img should be Tensor or numpy array, but get {}".format(type(img))) + + img_pil = Image.fromarray(img) + img_pil.save(img_path+".jpg") + +def decode_image(img): + """Decode a [1, C, H, W] Tensor to image numpy array.""" + mean = 0.5 * 255 + std = 0.5 * 255 + + return (img.asnumpy()[0] * std + mean).astype(np.uint8).transpose((1, 2, 0)) # ——>(256,256,3) + + +def get_lr(): + """ + Linear learning-rate generator. + Keep the same learning rate for the first epochs + and linearly decay the rate to zero over the next epochs. + """ + lrs = [args.lr] * args.dataset_size * args.n_epochs + lr_epoch = 0 + for epoch in range(args.n_epochs_decay): + lr_epoch = args.lr * (args.n_epochs_decay - epoch) / args.n_epochs_decay + lrs += [lr_epoch] * args.dataset_size + lrs += [lr_epoch] * args.dataset_size * (args.epoch_num - args.n_epochs_decay - args.n_epochs) + return Tensor(np.array(lrs).astype(np.float32)) diff --git a/train.py b/train.py index 61ed1df..69676ea 100644 --- a/train.py +++ b/train.py @@ -1,113 +1,153 @@ -import argparse -import matplotlib.pyplot as plt +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========================================================================== + +''' + Train Pix2Pix model including distributed training +''' + import os import datetime -from mindspore import context import mindspore.nn as nn from mindspore import Tensor -import config -from generator_model import Generator -from discriminator_model import Discriminator -from mindspore.train.callback import CheckpointConfig,ModelCheckpoint,_InternalCallbackParam -from losses import WithLossCellGen,WithLossCellDis -from pix2pix import Pix2Pix -from dataset.pix2pix_dataset import MapDataset,create_dataset - -def save_losses(G_losses, D_losses, idx): - plt.figure(figsize=(10, 5)) - plt.title("Generator and Discriminator Loss During Training") - plt.plot(G_losses, label="G") - plt.plot(D_losses, label="D") - plt.xlabel("iterations") - plt.ylabel("Loss") - plt.legend() - plt.savefig("./loss_show/{}.png".format(idx)) - +from mindspore.train.serialization import save_checkpoint +from mindspore.communication.management import init, get_rank, get_group_size +from mindspore import context +from mindspore.context import ParallelMode +from src.models.loss import D_Loss, D_WithLossCell, G_Loss, G_WithLossCell, TrainOneStepCell +from src.models.pix2pix import Pix2Pix, get_generator, get_discriminator +from src.dataset.pix2pix_dataset import pix2pixDataset, create_train_dataset +from src.utils.config import get_args +from src.utils.tools import save_losses, save_image, get_lr if __name__ == '__main__': - parser = argparse.ArgumentParser(description='MindSpore dcgan training') - parser.add_argument('--device_target', type=str, default='Ascend', choices=('Ascend', 'GPU'), - help='device where the code will be implemented (default: Ascend)') - # parser.add_argument('--device_id', type=int, default=4, help='device id of GPU or Ascend. (Default: 0)') - args = parser.parse_args() - - context.set_context(mode=context.PYNATIVE_MODE, device_target=args.device_target) - # context.set_context(device_id=args.device_id) - - # 数据 - dataset = MapDataset(root_dir="./maps/train/") - ds=create_dataset(dataset) + + args = get_args() + + # Preprocess the data for training + dataset = pix2pixDataset(root_dir=args.train_data_dir) + ds = create_train_dataset(dataset) print("ds:", ds.get_dataset_size()) print("ds:", ds.get_col_names()) print("ds.shape:", ds.output_shapes()) - # print("ds.dtype:", ds) - steps_per_epoch = ds.get_dataset_size() - - # 定义网络结构 - netD=Discriminator() - netG=Generator() - - loss_fn1=nn.BCEWithLogitsLoss() - loss_fn2=nn.L1Loss() - - netD_With_Loss=WithLossCellDis(netD,netG,loss_fn1) - netG_With_Loss=WithLossCellGen(netD,netG,loss_fn1,loss_fn2) - - optimizerD = nn.Adam(netD.trainable_params(), learning_rate=0.0002, beta1=0.5, beta2=0.999) - optimizerG = nn.Adam(netG.trainable_params(), learning_rate=0.0002, beta1=0.5, beta2=0.999) - - TrainOneStepDis=nn.TrainOneStepCell(netD_With_Loss,optimizerD,sens=1.0) - TrainOneStepGen=nn.TrainOneStepCell(netG_With_Loss,optimizerG,sens=1.0) - pix2pix_model=Pix2Pix(TrainOneStepDis,TrainOneStepGen) - pix2pix_model.set_train() - - # save checkpoints - ckpt_config=CheckpointConfig(save_checkpoint_steps=steps_per_epoch,keep_checkpoint_max=10) - ckpt_cb=ModelCheckpoint(config=ckpt_config,directory='./ckpt',prefix='pix2pix_model') - - cb_params = _InternalCallbackParam() - cb_params.train_network = pix2pix_model - cb_params.batch_num = steps_per_epoch - cb_params.epoch_num = config.NUM_EPOCHS #100 - # For each epoch - cb_params.cur_epoch_num = 0 - cb_params.cur_step_num = 0 - - # Training Loop + steps_per_epoch = ds.get_dataset_size() + context.set_context(mode=context.GRAPH_MODE, device_target=args.device_target) + if args.device_target == 'Ascend': + if args.run_distribute: + print("Ascend distribute") + context.set_context(device_id=int(os.getenv("DEVICE_ID"))) + device_num = args.device_num + context.reset_auto_parallel_context() + context.set_auto_parallel_context(parallel_mode=ParallelMode.DATA_PARALLEL, gradients_mean=True, + device_num=device_num) + init() + + rank = get_rank() + else: + context.set_context(device_id=args.device_id) + elif args.device_target == 'GPU': + if args.run_distribute: + print("GPU distribute") + init() + device_num = args.device_num + context.set_auto_parallel_context(device_num=get_group_size(), + parallel_mode=ParallelMode.DATA_PARALLEL, + gradients_mean=True) + else: + context.set_context(device_id=args.device_id) + netG = get_generator() + netD = get_discriminator() + + pix2pix = Pix2Pix(generator=netG, discriminator=netD) + + d_loss_fn = D_Loss() + g_loss_fn = G_Loss() + d_loss_net = D_WithLossCell(backbone=pix2pix, loss_fn=d_loss_fn) + g_loss_net = G_WithLossCell(backbone=pix2pix, loss_fn=g_loss_fn) + + d_opt = nn.Adam(pix2pix.netD.trainable_params(), learning_rate=get_lr(), + beta1=args.beta1, beta2=args.beta2, loss_scale=1) + g_opt = nn.Adam(pix2pix.netG.trainable_params(), learning_rate=get_lr(), + beta1=args.beta1, beta2=args.beta2, loss_scale=1) + + train_net = TrainOneStepCell(loss_netD=d_loss_net, loss_netG=g_loss_net, optimizerD=d_opt, optimizerG=g_opt, sens=1) + train_net.set_train() + + if not os.path.isdir(args.train_fakeimg_dir): + os.makedirs(args.train_fakeimg_dir) + if not os.path.isdir(args.loss_show_dir): + os.makedirs(args.loss_show_dir) + if not os.path.isdir(args.ckpt_dir): + os.makedirs(args.ckpt_dir) + + # Training loop G_losses = [] D_losses = [] - data_loader = ds.create_dict_iterator(output_numpy=True, num_epochs=config.NUM_EPOCHS) + data_loader = ds.create_dict_iterator(output_numpy=True, num_epochs=args.epoch_num) print("Starting Training Loop...") - for epoch in range(config.NUM_EPOCHS): - # for each batch in the data_loader - for i,data in enumerate(data_loader): - input_image=Tensor(data["input_images"]) - target_image=Tensor(data["target_images"]) - netD_loss, netG_loss = pix2pix_model(input_image, target_image) - if i % 20 == 0: + if args.run_distribute: + rank = get_rank() + for epoch in range(args.epoch_num): + for i, data in enumerate(data_loader): + start_time = datetime.datetime.now() + input_image = Tensor(data["input_images"]) + target_image = Tensor(data["target_images"]) + dis_loss, gen_loss = train_net(input_image, target_image) + end_time = datetime.datetime.now() + delta = (end_time - start_time).microseconds + if i % 100 == 0: print("================start===================") - print("Date time: ", datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) - print("epoch: ", epoch, "/", config.NUM_EPOCHS) + print("Date time: ", start_time) + if args.run_distribute: + print("Device ID :", str(rank)) + print("ms per step :", delta/1000) + print("epoch: ", epoch + 1, "/", args.epoch_num) print("step: ", i, "/", steps_per_epoch) - print("Dloss: ", netD_loss) - print("Gloss: ", netG_loss) + print("Dloss: ", dis_loss) + print("Gloss: ", gen_loss) print("=================end====================") - D_losses.append(netD_loss.asnumpy()) - G_losses.append(netG_loss.asnumpy()) - cb_params.cur_step_num = cb_params.cur_step_num + 1 - - cb_params.cur_epoch_num = cb_params.cur_epoch_num + 1 - ckpt_cb._save_ckpt(cb_params, True) - print("epoch-",epoch+1," saved") - save_losses(G_losses,D_losses,epoch+1) - print("epoch-",epoch+1," D&G_Losses saved") - - - - - - - + # Save fake_imgs + if i == steps_per_epoch - 1: + fake_image = netG(input_image) + if args.run_distribute: + fakeimg_path = args.train_fakeimg_dir + str(rank) + '/' + if not os.path.isdir(fakeimg_path): + os.makedirs(fakeimg_path) + save_image(fake_image, fakeimg_path + str(epoch + 1)) + else: + save_image(fake_image, args.train_fakeimg_dir + str(epoch + 1)) + print("image generated from epoch", epoch + 1, "saved") + print("The learning rate at this point is:", get_lr()[epoch*i]) + + D_losses.append(dis_loss.asnumpy()) + G_losses.append(gen_loss.asnumpy()) + + print("epoch", epoch + 1, "saved") + # Save losses + save_losses(G_losses, D_losses, epoch + 1) + print("epoch", epoch + 1, "D&G_Losses saved") + print("epoch", epoch + 1, "finished") + # Save checkpoint + if (epoch+1) % 50 == 0: + if args.run_distribute: + save_checkpoint_path = args.ckpt_dir + str(rank) + '/' + if not os.path.isdir(save_checkpoint_path): + os.makedirs(save_checkpoint_path) + save_checkpoint(netG, os.path.join(save_checkpoint_path, f"Generator_{epoch+1}.ckpt")) + else: + save_checkpoint(netG, os.path.join(args.ckpt_dir, f"Generator_{epoch+1}.ckpt")) + print("ckpt generated from epoch", epoch + 1, "saved") diff --git a/utils.py b/utils.py deleted file mode 100644 index c80a914..0000000 --- a/utils.py +++ /dev/null @@ -1,52 +0,0 @@ -# import torch -# import config -# from torchvision.utils import save_image - -import mindspore -import config -from mindspore.ops import functional as F -import matplotlib.image as mpimg -import matplotlib.pyplot as plt - - -def save_some_examples(gen, val_loader, epoch, folder): - x, y = next(iter(val_loader)) - # x, y = x.to(config.DEVICE), y.to(config.DEVICE) - gen.eval() - # with torch.no_grad(): - y_fake = gen(x) - y_fake = F.stop_gradient(y_fake) #取消了torch.no_grad后加入stop_gradient() - y_fake = y_fake * 0.5 + 0.5 # remove normalization# - - # save_image(y_fake, folder + f"/y_gen_{epoch}.png") - # save_image(x * 0.5 + 0.5, folder + f"/input_{epoch}.png") - # if epoch == 1: - # save_image(y * 0.5 + 0.5, folder + f"/label_{epoch}.png") - mpimg.imsave(folder + f"/y_gen_{epoch}.png",y_fake) - mpimg.imsave(folder + f"/input_{epoch}.png",x * 0.5 + 0.5) - if epoch==1: - mpimg.imsave(folder + f"/label_{epoch}.png", y * 0.5 + 0.5) - gen.train() - - -def save_checkpoint(model, optimizer, filename="my_checkpoint.pth.tar"): - print("=> Saving checkpoint") - checkpoint = [ - {"state_dict": model.state_dict(), - "optimizer": optimizer.state_dict(), } - ] - mindspore.save_checkpoint(checkpoint, filename) - - -def load_checkpoint(checkpoint_file, model, optimizer, lr): - print("=> Loading checkpoint") - checkpoint = mindspore.load_checkpoint(checkpoint_file) - model.load_param_into_net(checkpoint["state_dict"]) - optimizer.load_param_into_net(checkpoint["optimizer"]) - - # If we don't do this then it will just have learning rate of old checkpoint - # and it will lead to many hours of debugging \: - for param_group in optimizer.param_groups: - param_group["lr"] = lr - - diff --git a/utils/cityscapes_utils.py b/utils/cityscapes_utils.py deleted file mode 100644 index b2947dc..0000000 --- a/utils/cityscapes_utils.py +++ /dev/null @@ -1,82 +0,0 @@ - -"""cityscape utils.""" - -import numpy as np -from PIL import Image - -# label name and RGB color map. -label2color = { - 'unlabeled': (0, 0, 0), - 'ego vehicle': (0, 0, 0), - 'rectification border': (0, 0, 0), - 'out of roi': (0, 0, 0), - 'static': (0, 0, 0), - 'dynamic': (111, 74, 0), - 'ground': (81, 0, 81), - 'road': (128, 64, 128), - 'sidewalk': (244, 35, 232), - 'parking': (250, 170, 160), - 'rail track': (230, 150, 140), - 'building': (70, 70, 70), - 'wall': (102, 102, 156), - 'fence': (190, 153, 153), - 'guard rail': (180, 165, 180), - 'bridge': (150, 100, 100), - 'tunnel': (150, 120, 90), - 'pole': (153, 153, 153), - 'polegroup': (153, 153, 153), - 'traffic light': (250, 170, 30), - 'traffic sign': (220, 220, 0), - 'vegetation': (107, 142, 35), - 'terrain': (152, 251, 152), - 'sky': (70, 130, 180), - 'person': (220, 20, 60), - 'rider': (255, 0, 0), - 'car': (0, 0, 142), - 'truck': (0, 0, 70), - 'bus': (0, 60, 100), - 'caravan': (0, 0, 90), - 'trailer': (0, 0, 110), - 'train': (0, 80, 100), - 'motorcycle': (0, 0, 230), - 'bicycle': (119, 11, 32), - 'license plate': (0, 0, 142) -} - -def fast_hist(a, b, n): - k = np.where((a >= 0) & (a < n))[0] - bc = np.bincount(n * a[k].astype(int) + b[k], minlength=n**2) - if len(bc) != n**2: - # ignore this example if dimension mismatch - return 0 - return bc.reshape(n, n) - -def get_scores(hist): - # Mean pixel accuracy - acc = np.diag(hist).sum() / (hist.sum() + 1e-12) - # Per class accuracy - cl_acc = np.diag(hist) / (hist.sum(1) + 1e-12) - # Per class IoU - iu = np.diag(hist) / (hist.sum(1) + hist.sum(0) - np.diag(hist) + 1e-12) - return acc, np.nanmean(cl_acc), np.nanmean(iu), cl_acc, iu - -class CityScapes: - """CityScapes util class.""" - def __init__(self): - self.classes = ['road', 'sidewalk', 'building', 'wall', 'fence', - 'pole', 'traffic light', 'traffic sign', 'vegetation', 'terrain', - 'sky', 'person', 'rider', 'car', 'truck', - 'bus', 'train', 'motorcycle', 'bicycle', 'unlabeled'] - self.color_list = [] - for name in self.classes: - self.color_list.append(label2color[name]) - self.class_num = len(self.classes) - - def get_id(self, img_path): - """Get train id by img""" - img = np.array(Image.open(img_path).convert("RGB")) - w, h, _ = img.shape - img_tile = np.tile(img, (1, 1, self.class_num)).reshape(w, h, self.class_num, 3) - diff = np.abs(img_tile - self.color_list).sum(axis=-1) - ids = diff.argmin(axis=-1) - return ids diff --git a/utils/prepare_cityscapes_dataset.py b/utils/prepare_cityscapes_dataset.py deleted file mode 100644 index 368126e..0000000 --- a/utils/prepare_cityscapes_dataset.py +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 2020 Huawei Technologies Co., Ltd -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================ -"""prepare cityscapes dataset to cyclegan format""" -import os -import argparse -import glob -from PIL import Image - -parser = argparse.ArgumentParser() -parser.add_argument('--gtFine_dir', type=str, required=True, - help='Path to the Cityscapes gtFine directory.') -parser.add_argument('--leftImg8bit_dir', type=str, required=True, - help='Path to the Cityscapes leftImg8bit_trainvaltest directory.') -parser.add_argument('--output_dir', type=str, required=True, - default='./cityscapes', - help='Directory the output images will be written to.') -opt = parser.parse_args() - -def load_resized_img(path): - """Load image with RGB and resize to (256, 256)""" - return Image.open(path).convert('RGB').resize((256, 256)) - -def check_matching_pair(segmap_path, photo_path): - """Check the segment images and photo images are matched or not.""" - segmap_identifier = os.path.basename(segmap_path).replace('_gtFine_color', '') - photo_identifier = os.path.basename(photo_path).replace('_leftImg8bit', '') - - assert segmap_identifier == photo_identifier, \ - f"[{segmap_path}] and [{photo_path}] don't seem to be matching. Aborting." - - -def process_cityscapes(gtFine_dir, leftImg8bit_dir, output_dir, phase): - """Process citycapes dataset to cyclegan dataset format.""" - save_phase = 'test' if phase == 'val' else 'train' - savedir = os.path.join(output_dir, save_phase) - os.makedirs(savedir + 'A', exist_ok=True) - os.makedirs(savedir + 'B', exist_ok=True) - print(f"Directory structure prepared at {output_dir}") - - segmap_expr = os.path.join(gtFine_dir, phase) + "/*/*_color.png" - segmap_paths = glob.glob(segmap_expr) - segmap_paths = sorted(segmap_paths) - - photo_expr = os.path.join(leftImg8bit_dir, phase) + "/*/*_leftImg8bit.png" - photo_paths = glob.glob(photo_expr) - photo_paths = sorted(photo_paths) - - assert len(segmap_paths) == len(photo_paths), \ - "{} images that match [{}], and {} images that match [{}]. Aborting.".format( - len(segmap_paths), segmap_expr, len(photo_paths), photo_expr) - - for i, (segmap_path, photo_path) in enumerate(zip(segmap_paths, photo_paths)): - check_matching_pair(segmap_path, photo_path) - segmap = load_resized_img(segmap_path) - photo = load_resized_img(photo_path) - - # data for cyclegan where the two images are stored at two distinct directories - savepath = os.path.join(savedir + 'A', f"{i + 1}.jpg") - photo.save(savepath) - savepath = os.path.join(savedir + 'B', f"{i + 1}.jpg") - segmap.save(savepath) - - if i % (len(segmap_paths) // 10) == 0: - print("%d / %d: last image saved at %s, " % (i, len(segmap_paths), savepath)) - - -if __name__ == '__main__': - print('Preparing Cityscapes Dataset for val phase') - process_cityscapes(opt.gtFine_dir, opt.leftImg8bit_dir, opt.output_dir, "val") - print('Preparing Cityscapes Dataset for train phase') - process_cityscapes(opt.gtFine_dir, opt.leftImg8bit_dir, opt.output_dir, "train") - print('Done') diff --git a/utils/reporter.py b/utils/reporter.py deleted file mode 100644 index eefb99f..0000000 --- a/utils/reporter.py +++ /dev/null @@ -1,60 +0,0 @@ -import logging -import os -import time -from datetime import datetime -from mindspore.train.serialization import save_checkpoint -# from .tools import save_image - -class Reporter(logging.Logger): - """ - This class includes several functions that can save images/checkpoints and print/save logging information. - - Args: - args (class): Option class. - """ - def __init__(self, args): - super(Reporter, self).__init__("cyclegan") - self.log_dir = os.path.join(args.outputs_dir, 'log') - self.imgs_dir = os.path.join(args.outputs_dir, "imgs") - self.ckpts_dir = os.path.join(args.outputs_dir, "ckpt") - if not os.path.exists(self.log_dir): - os.makedirs(self.log_dir, exist_ok=True) - if not os.path.exists(self.imgs_dir): - os.makedirs(self.imgs_dir, exist_ok=True) - if not os.path.exists(self.ckpts_dir): - os.makedirs(self.ckpts_dir, exist_ok=True) - self.rank = args.rank - self.save_checkpoint_epochs = args.save_checkpoint_epochs - self.save_imgs = args.save_imgs - # console handler - console = logging.StreamHandler() - console.setLevel(logging.INFO) - formatter = logging.Formatter('%(message)s') - console.setFormatter(formatter) - self.addHandler(console) - # file handler - log_name = datetime.now().strftime('%Y-%m-%d_time_%H_%M_%S') + '_rank_{}.log'.format(self.rank) - self.log_fn = os.path.join(self.log_dir, log_name) - fh = logging.FileHandler(self.log_fn) - fh.setLevel(logging.INFO) - fh.setFormatter(formatter) - self.addHandler(fh) - self.save_args(args) - self.step = 0 - self.epoch = 0 - self.dataset_size = args.dataset_size - self.print_iter = args.print_iter - self.G_loss = [] - self.D_loss = [] - - def info(self, msg, *args, **kwargs): - if self.isEnabledFor(logging.INFO): - self._log(logging.INFO, msg, args, **kwargs) - - def epoch_start(self): - self.step_start_time = time.time() - self.epoch_start_time = time.time() - self.step = 0 - self.epoch += 1 - self.G_loss = [] - self.D_loss = [] \ No newline at end of file