From 5a161d1d4245afbc4b6e244c1d2239daa437f47f Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Wed, 18 Sep 2024 16:52:40 -0400 Subject: [PATCH 01/18] Begin CLI packaging --- pyproject.toml | 55 ++++++++++++++++++++++++++++++++++ src/wing_segmenter/__init__.py | 1 + src/wing_segmenter/__main__.py | 5 ++++ src/wing_segmenter/cli.py | 10 +++++++ 4 files changed, 71 insertions(+) create mode 100644 pyproject.toml create mode 100644 src/wing_segmenter/__init__.py create mode 100644 src/wing_segmenter/__main__.py create mode 100644 src/wing_segmenter/cli.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..236dd03 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,55 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/wing_segmenter"] + +[project] +name = "wing-segmenter" +version = "0.1.0" +description = "A CLI tool for Lepidopteran wing preprocessing and segmentation." +authors = [ + { name = "Michelle Ramirez", email = "michelleramirez7171@gmail.com" }, + { name = "Matthew J. Thompson", email = "thompson.m.j@outlook.com"} +] +license = { text = "MIT" } +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "torch==2.1.1", + "torchvision", + "numpy", + "pandas", + "opencv-python", + "Pillow", + "matplotlib", + "scikit-image", + "scikit-learn", + "ultralytics", + "tqdm", + "huggingface-hub", + "pycocotools", + "wget", + "segment-anything", +] + +[project.optional-dependencies] +dev = [ + "pytest", + "ruff", +] + +[project.urls] +Documentation = "https://github.com/Imageomics/wing-segmentation#readme" +Issues = "https://github.com/Imageomics/wing-segmentation/issues" +Source = "https://github.com/Imageomics/wing-segmentation/" + +[project.scripts] +ws = "wing_segmenter.__main__:main" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.version] +path = "src/wing_segmenter/__init__.py" diff --git a/src/wing_segmenter/__init__.py b/src/wing_segmenter/__init__.py new file mode 100644 index 0000000..3dc1f76 --- /dev/null +++ b/src/wing_segmenter/__init__.py @@ -0,0 +1 @@ +__version__ = "0.1.0" diff --git a/src/wing_segmenter/__main__.py b/src/wing_segmenter/__main__.py new file mode 100644 index 0000000..c2965aa --- /dev/null +++ b/src/wing_segmenter/__main__.py @@ -0,0 +1,5 @@ +import sys +from wing_segmenter.cli import main + +if __name__ == "__main__": + sys.exit(main()) diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py new file mode 100644 index 0000000..d6fd0d6 --- /dev/null +++ b/src/wing_segmenter/cli.py @@ -0,0 +1,10 @@ +import argparse +import logging + +def main(): + parser = argparse.ArgumentParser( + prog='ws', + description="Wing Segmenter CLI Tool", + ) + + parser.print_help() \ No newline at end of file From a0f6d2554f78d9f1be09787459c7da8e55f4172a Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Wed, 18 Sep 2024 17:02:17 -0400 Subject: [PATCH 02/18] Begin documenting CLI development section --- README.md | 17 +++++++++++++++++ src/wing_segmenter/cli.py | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 983602c..a13ba2c 100644 --- a/README.md +++ b/README.md @@ -161,3 +161,20 @@ python3 wing-segmentation/landmark_scripts/create_wing_folders.py --input_dir /p ``` python3 wing-segmentation/landmark_scripts/flip_images_horizontally.py --input_dir /path/to/wing/category/folder ``` + +# CLI Development +To use and continue building the CLI features: + +1. Set up an environment and install the package. +```bash +conda create -n ws -c conda-forge --solver=libmamba python=3.10 uv -y +``` +```bash +conda activate ws +``` +```bash +uv pip install -e .[dev] +``` +> Note: [`uv`](https://github.com/astral-sh/uv) is a fast, Rust-based package manager. + + diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index d6fd0d6..e42db30 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -7,4 +7,5 @@ def main(): description="Wing Segmenter CLI Tool", ) - parser.print_help() \ No newline at end of file + parser.print_help() + \ No newline at end of file From a2d570a8ab22227a8049ed77717524605730177e Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 19 Sep 2024 15:08:27 -0400 Subject: [PATCH 03/18] Implement resizing --- src/wing_segmenter/cli.py | 49 +++++++++++++++++++-- src/wing_segmenter/resize.py | 83 ++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 src/wing_segmenter/resize.py diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index e42db30..37cc003 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -1,11 +1,54 @@ import argparse import logging +import os + +logging.basicConfig(level=logging.INFO) def main(): parser = argparse.ArgumentParser( prog='ws', - description="Wing Segmenter CLI Tool", + description="Wing Segmenter CLI", ) - parser.print_help() - \ No newline at end of file + subparsers = parser.add_subparsers(title='Commands', dest='command', required=True) + + resize_parser = subparsers.add_parser('resize', help='Resize images and store them in a structured output directory.', formatter_class=argparse.RawTextHelpFormatter) + + resize_parser.add_argument('--source', required=True, help='Path to source images') + resize_parser.add_argument('--output', + help='Base path to output resized images.\n' + 'Final path will include x/.\n' + 'Default: _resize/x/, neighboring SOURCE.\n' + 'If SOURCE has nested directories, the output will mirror the structure.') + resize_parser.add_argument('--resize-dim', nargs=2, type=int, required=True, metavar=('WIDTH', 'HEIGHT'), + help='Resize dimensions (WIDTH HEIGHT)') + resize_parser.add_argument('--num-workers', type=int, default=1, + help='Number of parallel workers (default: 1)') + resize_parser.add_argument('--interpolation', choices=['nearest', 'linear', 'cubic', 'area', 'lanczos4', 'linear_exact', 'nearest_exact'], + default='area', + help='OpenCV interpolation method to use (default: area)') + + # TODO: add segmentation command + + args = parser.parse_args() + + if args.command == 'resize': + from wing_segmenter.resize import resize_images + + # Determine output directory based on source directory + if not args.output: + source_dir_name = os.path.basename(os.path.normpath(args.source)) + parent_dir = os.path.dirname(os.path.abspath(args.source)) + base_output_dir = os.path.join(parent_dir, f"{source_dir_name}_resize") + else: + # Custom output path specified by user + base_output_dir = args.output + + # Append x/ to the output path + args.output = os.path.join(base_output_dir, f'{args.resize_dim[0]}x{args.resize_dim[1]}', args.interpolation) + + resize_images(args.source, args.output, args.resize_dim, args.num_workers, args.interpolation) + + +if __name__ == '__main__': + main() diff --git a/src/wing_segmenter/resize.py b/src/wing_segmenter/resize.py new file mode 100644 index 0000000..d426655 --- /dev/null +++ b/src/wing_segmenter/resize.py @@ -0,0 +1,83 @@ +import os +from PIL import Image +import numpy as np +import cv2 +from tqdm import tqdm +import logging +from concurrent.futures import ThreadPoolExecutor +import json +from datetime import datetime + +# Mapp user input to corresponding OpenCV interpolation method +INTERPOLATION_METHODS = { + 'nearest': cv2.INTER_NEAREST, + 'linear': cv2.INTER_LINEAR, + 'cubic': cv2.INTER_CUBIC, + 'area': cv2.INTER_AREA, + 'lanczos4': cv2.INTER_LANCZOS4, + 'linear_exact': cv2.INTER_LINEAR_EXACT, + 'nearest_exact': cv2.INTER_NEAREST_EXACT, +} + +def resize_image_task(task): + """Helper function to resize a single image.""" + input_path, output_path, resize_dim, interpolation = task + try: + image = Image.open(input_path) + image = np.array(image) + image = cv2.resize(image, tuple(resize_dim), interpolation=interpolation) + os.makedirs(os.path.dirname(output_path), exist_ok=True) + image = Image.fromarray(image) + image.save(output_path) + except Exception as e: + logging.error(f"Error processing {input_path}: {e}") + +def save_metadata(output_dir, source_dir, resize_dim, interpolation, num_workers): + """Save metadata about the resize process to a JSON file into the output directory.""" + metadata = { + 'source_directory': source_dir, + 'output_directory': output_dir, + 'resize_dimensions': resize_dim, + 'interpolation_method': interpolation, + 'num_workers': num_workers, + 'timestamp': datetime.now().strftime('%Y-%m-%d %H:%M:%S') + } + + metadata_path = os.path.join(output_dir, 'metadata.json') + with open(metadata_path, 'w') as f: + json.dump(metadata, f, indent=4) + logging.info(f"Metadata saved to {metadata_path}") + +def resize_images(source, output, resize_dim, num_workers=1, interpolation='area'): + """ + Resize images from the source directory, and save them to the output directory, preserving any subdirectory structure. + + Parameters: + - source (str): Path to the source images. + - output (str): Path to save the resized images. + - resize_dim (list of int): [WIDTH, HEIGHT] dimensions to resize images. + - num_workers (int): Number of parallel workers to use for resizing. Default is 1 (no parallelism). + - interpolation (str): Interpolation method to use for resizing. Default is 'area'. + """ + logging.info(f"Resizing images from {source} to {output} with dimensions {resize_dim} using {num_workers} workers and interpolation '{interpolation}'") + + # Get the OpenCV interpolation constant + interpolation_method = INTERPOLATION_METHODS.get(interpolation) + + # Collect tasks for parallel execution + tasks = [] + for root, dirs, files in os.walk(source): + for file in files: + if file.lower().endswith(('.jpg', '.jpeg', '.png', '.JPG', '.JPEG', '.PNG')): + # Construct the relative path and output path + relative_path = os.path.relpath(root, source) + output_dir = os.path.join(output, relative_path) + input_path = os.path.join(root, file) + output_path = os.path.join(output_dir, os.path.splitext(file)[0] + '.png') + tasks.append((input_path, output_path, resize_dim, interpolation_method)) + + # Perform resizing in parallel + with ThreadPoolExecutor(max_workers=num_workers) as executor: + list(tqdm(executor.map(resize_image_task, tasks), total=len(tasks), desc='Resizing images')) + + save_metadata(output, source, resize_dim, interpolation, num_workers) From 9bfd5c591cf6f68ee04bbe1acf66007439d3e846 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 19 Sep 2024 15:18:30 -0400 Subject: [PATCH 04/18] Document resizing --- README.md | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a13ba2c..7cbb4e2 100644 --- a/README.md +++ b/README.md @@ -163,9 +163,42 @@ python3 wing-segmentation/landmark_scripts/flip_images_horizontally.py --input_d ``` # CLI Development + +```bash +usage: ws [-h] {resize} ... + +Wing Segmenter CLI + +options: + -h, --help show this help message and exit + +Commands: + {resize} + resize Resize images and store them in a structured output directory. +``` +## Optional preprocessing +```bash +usage: ws resize [-h] --source SOURCE [--output OUTPUT] --resize-dim WIDTH HEIGHT [--num-workers NUM_WORKERS] + [--interpolation {nearest,linear,cubic,area,lanczos4,linear_exact,nearest_exact}] + +options: + -h, --help show this help message and exit + --source SOURCE Path to source images + --output OUTPUT Base path to output resized images. + Final path will include x/. + Default: _resize/x/, neighboring SOURCE. + If SOURCE has nested directories, the output will mirror the structure. + --resize-dim WIDTH HEIGHT + Resize dimensions (WIDTH HEIGHT) + --num-workers NUM_WORKERS + Number of parallel workers (default: 1) + --interpolation {nearest,linear,cubic,area,lanczos4,linear_exact,nearest_exact} + OpenCV interpolation method to use (default: area) +``` + To use and continue building the CLI features: -1. Set up an environment and install the package. +## Set up an environment and install the package. ```bash conda create -n ws -c conda-forge --solver=libmamba python=3.10 uv -y ``` @@ -177,4 +210,3 @@ uv pip install -e .[dev] ``` > Note: [`uv`](https://github.com/astral-sh/uv) is a fast, Rust-based package manager. - From 53a147d6ab3fa9b85f9270a98b80a04ee3c7c598 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Wed, 2 Oct 2024 15:40:10 -0400 Subject: [PATCH 05/18] Functionality checkpoint This large commit implements most desired functionality. Additional testing and fine-tuning is needed for user input validation. --- pyproject.toml | 6 +- src/wing_segmenter/__init__.py | 2 + src/wing_segmenter/__main__.py | 3 +- src/wing_segmenter/cli.py | 127 +++++++--- src/wing_segmenter/constants.py | 12 + src/wing_segmenter/exceptions.py | 11 + src/wing_segmenter/image_processor.py | 326 +++++++++++++++++++++++++ src/wing_segmenter/metadata_manager.py | 87 +++++++ src/wing_segmenter/model_manager.py | 123 ++++++++++ src/wing_segmenter/path_manager.py | 51 ++++ src/wing_segmenter/resize.py | 83 ------- src/wing_segmenter/resizer.py | 68 ++++++ src/wing_segmenter/run_scanner.py | 99 ++++++++ src/wing_segmenter/segmenter.py | 181 ++++++++++++++ 14 files changed, 1055 insertions(+), 124 deletions(-) create mode 100644 src/wing_segmenter/constants.py create mode 100644 src/wing_segmenter/exceptions.py create mode 100644 src/wing_segmenter/image_processor.py create mode 100644 src/wing_segmenter/metadata_manager.py create mode 100644 src/wing_segmenter/model_manager.py create mode 100644 src/wing_segmenter/path_manager.py delete mode 100644 src/wing_segmenter/resize.py create mode 100644 src/wing_segmenter/resizer.py create mode 100644 src/wing_segmenter/run_scanner.py create mode 100644 src/wing_segmenter/segmenter.py diff --git a/pyproject.toml b/pyproject.toml index 236dd03..e87e9fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ license = { text = "MIT" } readme = "README.md" requires-python = ">=3.10" dependencies = [ - "torch==2.1.1", + "torch", "torchvision", "numpy", "pandas", @@ -27,11 +27,13 @@ dependencies = [ "scikit-image", "scikit-learn", "ultralytics", + "rich", "tqdm", "huggingface-hub", "pycocotools", "wget", "segment-anything", + "transformers", ] [project.optional-dependencies] @@ -46,7 +48,7 @@ Issues = "https://github.com/Imageomics/wing-segmentation/issues" Source = "https://github.com/Imageomics/wing-segmentation/" [project.scripts] -ws = "wing_segmenter.__main__:main" +wingseg = "wing_segmenter.__main__:main" [tool.hatch.metadata] allow-direct-references = true diff --git a/src/wing_segmenter/__init__.py b/src/wing_segmenter/__init__.py index 3dc1f76..703337b 100644 --- a/src/wing_segmenter/__init__.py +++ b/src/wing_segmenter/__init__.py @@ -1 +1,3 @@ __version__ = "0.1.0" + +from wing_segmenter.segmenter import Segmenter diff --git a/src/wing_segmenter/__main__.py b/src/wing_segmenter/__main__.py index c2965aa..3409015 100644 --- a/src/wing_segmenter/__main__.py +++ b/src/wing_segmenter/__main__.py @@ -1,5 +1,4 @@ -import sys from wing_segmenter.cli import main if __name__ == "__main__": - sys.exit(main()) + main() diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index 37cc003..65bd325 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -1,54 +1,107 @@ import argparse -import logging -import os - -logging.basicConfig(level=logging.INFO) def main(): parser = argparse.ArgumentParser( - prog='ws', + prog='wingseg', description="Wing Segmenter CLI", + formatter_class=argparse.ArgumentDefaultsHelpFormatter ) - + subparsers = parser.add_subparsers(title='Commands', dest='command', required=True) - resize_parser = subparsers.add_parser('resize', help='Resize images and store them in a structured output directory.', formatter_class=argparse.RawTextHelpFormatter) + # Subcommand: segment + segment_parser = subparsers.add_parser( + 'segment', + help='Segment images and store segmentation masks.', + formatter_class=argparse.ArgumentDefaultsHelpFormatter + ) - resize_parser.add_argument('--source', required=True, help='Path to source images') - resize_parser.add_argument('--output', - help='Base path to output resized images.\n' - 'Final path will include x/.\n' - 'Default: _resize/x/, neighboring SOURCE.\n' - 'If SOURCE has nested directories, the output will mirror the structure.') - resize_parser.add_argument('--resize-dim', nargs=2, type=int, required=True, metavar=('WIDTH', 'HEIGHT'), - help='Resize dimensions (WIDTH HEIGHT)') - resize_parser.add_argument('--num-workers', type=int, default=1, - help='Number of parallel workers (default: 1)') - resize_parser.add_argument('--interpolation', choices=['nearest', 'linear', 'cubic', 'area', 'lanczos4', 'linear_exact', 'nearest_exact'], - default='area', - help='OpenCV interpolation method to use (default: area)') + # Required argument + segment_parser.add_argument('--dataset', required=True, help='Path to dataset images') - # TODO: add segmentation command + # Resizing options + resize_group = segment_parser.add_argument_group('Resizing Options') - args = parser.parse_args() + # Dimension specifications + resize_group.add_argument('--size', nargs='+', type=int, + help='Target size. Provide one value for square dimensions or two for width and height.') + + # Resizing mode + resize_group.add_argument('--resize-mode', choices=['distort', 'pad'], default=None, + help='Resizing mode. "distort" resizes without preserving aspect ratio, "pad" preserves aspect ratio and adds padding if necessary.') + + # Padding options + resize_group.add_argument('--padding-color', choices=['black', 'white'], default='black', + help='Padding color to use when --resize-mode is "pad".') + + # Interpolation options + resize_group.add_argument('--interpolation', choices=['nearest', 'linear', 'cubic', 'area', 'lanczos4', 'linear_exact', 'nearest_exact'], + default='area', + help='Interpolation method to use when resizing. For upscaling, "lanczos4" is recommended.') - if args.command == 'resize': - from wing_segmenter.resize import resize_images + # General processing options + segment_parser.add_argument('--output-dir', default=None, help='Base path to store outputs.') + segment_parser.add_argument('--sam-model', default='facebook/sam-vit-base', + help='SAM model to use (e.g., facebook/sam-vit-base)') + segment_parser.add_argument('--yolo-model', default='imageomics/butterfly_segmentation_yolo_v8:yolov8m_shear_10.0_scale_0.5_translate_0.1_fliplr_0.0_best.pt', + help='YOLO model to use (local path or Hugging Face repo).') + segment_parser.add_argument('--num-workers', type=int, default=1, + help='Number of worker threads to use for processing.') + segment_parser.add_argument('--device', choices=['cpu', 'cuda'], default='cpu', + help='Device to use for processing.') + segment_parser.add_argument('--save-intermediates', action='store_true', + help='Save intermediate files (resized images and segmentation masks).') + segment_parser.add_argument('--visualize-segmentation', action='store_true', + help='Generate and save segmentation visualizations.') + segment_parser.add_argument('--force', action='store_true', + help='Force reprocessing even if outputs already exist.') + segment_parser.add_argument('--crop-by-class', action='store_true', + help='Enable cropping of segmented classes into crops/ directory.') - # Determine output directory based on source directory - if not args.output: - source_dir_name = os.path.basename(os.path.normpath(args.source)) - parent_dir = os.path.dirname(os.path.abspath(args.source)) - base_output_dir = os.path.join(parent_dir, f"{source_dir_name}_resize") + # CLI Flags for background removal + bg_group = segment_parser.add_argument_group('Background Removal Options') + bg_group.add_argument('--remove-background', action='store_true', default=False, + help='Remove background from cropped images.') + bg_group.add_argument('--background-color', choices=['white', 'black'], default='black', + help='Background color to use when removing background. Applicable only if --remove-background is set.') + bg_group.add_argument('--remove-bg-full', action='store_true', + help='Remove background from the entire (resized or original) image.') + + # Subcommand: scan-runs + scan_parser = subparsers.add_parser('scan-runs', help='List existing processing runs for a dataset.') + scan_parser.add_argument('--dataset', required=True, help='Path to the dataset directory.') + scan_parser.add_argument('--output-dir', default=None, help='Base path where outputs were stored.') + + # Parse arguments + args = parser.parse_args() + + # Validation for resizing options + if args.command == 'segment': + # If size is provided, enforce resizing options + if args.size: + if len(args.size) not in [1, 2]: + parser.error('--size must accept either one value (square resize) or two values (width and height).') + if not args.resize_mode: + parser.error('--resize-mode must be specified when --size is provided.') + if args.resize_mode == 'pad' and args.padding_color is None: + args.padding_color = 'black' + # If no size is provided, ensure that resizing options were not explicitly set else: - # Custom output path specified by user - base_output_dir = args.output - - # Append x/ to the output path - args.output = os.path.join(base_output_dir, f'{args.resize_dim[0]}x{args.resize_dim[1]}', args.interpolation) + if args.resize_mode is not None or args.padding_color != 'black': + parser.error('Resizing options (resize-mode, padding-color) require --size to be specified.') + + # Additional validation for background removal flags + if (args.remove_background or args.remove_bg_full) and not args.crop_by_class: + parser.error('--remove-background and --remove-bg-full require --crop-by-class to be set.') + + # Execute the subcommand + if args.command == 'segment': + from wing_segmenter.segmenter import Segmenter - resize_images(args.source, args.output, args.resize_dim, args.num_workers, args.interpolation) + segmenter = Segmenter(args) + segmenter.process_dataset() + elif args.command == 'scan-runs': + from wing_segmenter.run_scanner import scan_runs -if __name__ == '__main__': - main() + scan_runs(dataset_path=args.dataset, output_base_dir=args.output_dir) diff --git a/src/wing_segmenter/constants.py b/src/wing_segmenter/constants.py new file mode 100644 index 0000000..01fe2ed --- /dev/null +++ b/src/wing_segmenter/constants.py @@ -0,0 +1,12 @@ +CLASSES = { + 0: 'background', + 1: 'right_forewing', + 2: 'left_forewing', + 3: 'right_hindwing', + 4: 'left_hindwing', + 5: 'ruler', + 6: 'white_balance', + 7: 'label', + 8: 'color_card', + 9: 'body' +} diff --git a/src/wing_segmenter/exceptions.py b/src/wing_segmenter/exceptions.py new file mode 100644 index 0000000..db9630a --- /dev/null +++ b/src/wing_segmenter/exceptions.py @@ -0,0 +1,11 @@ +class ModelLoadError(Exception): + """Exception raised when a model fails to load.""" + pass + +class ImageProcessingError(Exception): + """Exception raised when an error occurs during image processing.""" + pass + +class MetadataError(Exception): + """Exception raised when there is an error with metadata handling.""" + pass diff --git a/src/wing_segmenter/image_processor.py b/src/wing_segmenter/image_processor.py new file mode 100644 index 0000000..80a40a7 --- /dev/null +++ b/src/wing_segmenter/image_processor.py @@ -0,0 +1,326 @@ +import os +import cv2 +import numpy as np +import logging +import torch +from wing_segmenter.constants import CLASSES +from wing_segmenter.exceptions import ImageProcessingError +from wing_segmenter.resizer import resize_image + +def process_image(segmenter, image_path): + """ + Processes a single image: loads, resizes, predicts, masks, saves results, and crops by class. + + Parameters: + - segmenter (Segmenter): The Segmenter instance. + - image_path (str): Path to the image file. + """ + try: + relative_path = os.path.relpath(image_path, segmenter.dataset_path) + relative_dir = os.path.dirname(relative_path) + + image = cv2.imread(image_path) + if image is None: + logging.warning(f"Failed to read image: {image_path}") + return + + resized_image = resize_image( + image, + segmenter.size, + segmenter.resize_mode, + segmenter.padding_color, + segmenter.interpolation + ) + + # Save resized image if asked for + if segmenter.save_intermediates: + save_path = os.path.join(segmenter.resized_dir, relative_path) + os.makedirs(os.path.dirname(save_path), exist_ok=True) + cv2.imwrite(save_path, resized_image) + + resized_image_rgb = cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB) + + yolo_results = segmenter.yolo_model(resized_image_rgb) + + # Initialize full image foreground mask + foreground_mask = np.zeros((resized_image.shape[0], resized_image.shape[1]), dtype=np.uint8) + + # Process each detection + for result in yolo_results: + if len(result.boxes) == 0: + logging.warning(f"No detections for image: {image_path}") + continue + + mask = get_mask_SAM( + result, + resized_image_rgb, + segmenter.sam_processor, + segmenter.sam_model, + segmenter.device + ) + + if mask is not None: + # Save mask + mask_save_path = os.path.join(segmenter.masks_dir, relative_path) + mask_save_path = os.path.splitext(mask_save_path)[0] + '_mask.png' + os.makedirs(os.path.dirname(mask_save_path), exist_ok=True) + cv2.imwrite(mask_save_path, mask) + + # Save visualization + if segmenter.visualize_segmentation: + viz = overlay_mask_on_image(resized_image_rgb, mask) + viz_save_path = os.path.join(segmenter.viz_dir, relative_path) + viz_save_path = os.path.splitext(viz_save_path)[0] + '_viz.png' + os.makedirs(os.path.dirname(viz_save_path), exist_ok=True) + cv2.imwrite(viz_save_path, cv2.cvtColor(viz, cv2.COLOR_RGB2BGR)) + + # Update segmentation info + from wing_segmenter.metadata_manager import update_segmentation_info + update_segmentation_info(segmenter.segmentation_info, image_path, mask) + + # Crop by class with optional background removal + if segmenter.crop_by_class: + crop_and_save_by_class(segmenter, resized_image, mask, relative_path) + + # Aggregate foreground masks (excluding background class 0) + detected_classes = result.boxes.cls.cpu().numpy().astype(int) + unique_classes = np.unique(detected_classes) + unique_classes = unique_classes[unique_classes != 0] # exclude background class + + for class_id in unique_classes: + class_mask = (mask == class_id).astype(np.uint8) * 255 + foreground_mask = cv2.bitwise_or(foreground_mask, class_mask) + else: + logging.warning(f"No mask generated for image: {image_path}") + + # Remove background from full image + if segmenter.remove_bg_full and segmenter.save_intermediates: + if np.any(foreground_mask): + # Pass the foreground_mask directly to remove_background + full_image_bg_removed = remove_background(resized_image, foreground_mask, segmenter.background_color) + + # Prepare save path for full background removal + full_image_bg_removed_save_path = os.path.splitext(os.path.join(segmenter.full_bkgd_removed_dir, relative_path))[0] + '_bg_removed.png' + os.makedirs(os.path.dirname(full_image_bg_removed_save_path), exist_ok=True) + cv2.imwrite(full_image_bg_removed_save_path, full_image_bg_removed) + logging.info(f"Full image with background removed saved to '{full_image_bg_removed_save_path}'.") + else: + logging.warning(f"No foreground detected for image: {image_path}. Full background removal skipped.") + + except Exception as e: + logging.error(f"Error processing image {image_path}: {e}") + raise ImageProcessingError(f"Error processing image {image_path}: {e}") + +def crop_and_save_by_class(segmenter, image, mask, relative_path): + """ + Crops the image based on class-specific masks and saves them to the crops directory. + Optionally removes the background from the cropped images. + + Parameters: + - segmenter (Segmenter): The Segmenter instance. + - image (np.array): The original image. + - mask (np.array): The segmentation mask. + - relative_path (str): The relative path of the image for maintaining directory structure. + """ + for class_id, class_name in CLASSES.items(): + if class_id == 0: + continue # Skip background class for cropping + + # Create binary mask for current class + class_mask = (mask == class_id).astype(np.uint8) * 255 + + # Find contours for class mask + contours, _ = cv2.findContours(class_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + if not contours: + logging.info(f"No instances found for class '{class_name}' in image '{relative_path}'.") + continue # No mask for this class + + for cnt in contours: + x, y, w, h = cv2.boundingRect(cnt) + + # Apply padding? + padding = 0 # could make this configurable + x = max(x - padding, 0) + y = max(y - padding, 0) + w = min(w + 2 * padding, image.shape[1] - x) + h = min(h + 2 * padding, image.shape[0] - y) + + # Crop the image + cropped_image = image[y:y+h, x:x+w] + cropped_mask = class_mask[y:y+h, x:x+w] + + # Ensure class directory exists + ensure_class_directory(segmenter, class_name) + + # Prepare save path for cropped classes + crop_relative_path = os.path.join(class_name, relative_path) + crop_save_path = os.path.splitext(os.path.join(segmenter.crops_dir, crop_relative_path))[0] + f'_{class_name}.png' + os.makedirs(os.path.dirname(crop_save_path), exist_ok=True) + + # Save cropped image + cv2.imwrite(crop_save_path, cropped_image) + + logging.info(f"Cropped '{class_name}' saved to '{crop_save_path}'.") + + # Background removal + if segmenter.remove_background and segmenter.save_intermediates: + cropped_image_bg_removed = remove_background(cropped_image, cropped_mask, segmenter.background_color) + + # Prepare save path for background-removed cropped class images + crop_bg_removed_save_path = os.path.splitext(os.path.join(segmenter.crops_bkgd_removed_dir, crop_relative_path))[0] + f'_{class_name}.png' + os.makedirs(os.path.dirname(crop_bg_removed_save_path), exist_ok=True) + + # Save the background-removed cropped image + cv2.imwrite(crop_bg_removed_save_path, cropped_image_bg_removed) + logging.info(f"Cropped '{class_name}' with background removed saved to '{crop_bg_removed_save_path}'.") + +def remove_background(image, mask, bg_color='black'): + """ + Removes the background from an image based on the provided mask. + + Parameters: + - image (np.array): The cropped or full image. + - mask (np.array): The binary mask corresponding to the background. + - bg_color (str): The background color to replace ('white' or 'black'). + + Returns: + - final_image (np.array): The image with background removed/replaced. + """ + if bg_color.lower() == 'white': + background = np.full(image.shape, 255, dtype=np.uint8) + elif bg_color.lower() == 'black': + background = np.zeros(image.shape, dtype=np.uint8) + else: + raise ValueError("Unsupported background color. Choose 'white' or 'black'.") + + if mask is not None: + # Ensure mask is single-channel + if len(mask.shape) == 3: + mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY) + mask_binary = (mask > 0).astype(np.uint8) * 255 + + # Extract foreground using mask + masked_foreground = cv2.bitwise_and(image, image, mask=mask_binary) + + # Extract background area + background_mask = cv2.bitwise_not(mask_binary) + masked_background = cv2.bitwise_and(background, background, mask=background_mask) + + # Combine foreground and new background + final_image = cv2.add(masked_foreground, masked_background) + else: + # If no mask provided, assume entire image is foreground + final_image = image.copy() + + return final_image + +def get_mask_SAM(result, image, processor, model, device): + """ + Generate mask using SAM model. + + Parameters: + - result: YOLO prediction result. + - image (np.array): The input image in RGB format. + - processor (SamProcessor): SAM processor. + - model (SamModel): SAM model. + - device (str): 'cpu' or 'cuda'. + + Returns: + - img_mask (np.array): The generated mask. + """ + # Get bounding boxes and class labels from YOLO + bboxes_labels = result.boxes.cls + bboxes_xyxy = result.boxes.xyxy + input_boxes = [[bbox.cpu().numpy().tolist()[:4] for bbox in bboxes_xyxy]] + + if len(bboxes_xyxy) == 0: + logging.warning("No bounding boxes detected by YOLO.") + return None + + # Prepare inputs for SAM using the processor + inputs = processor(images=image, input_boxes=input_boxes, return_tensors="pt").to(device) + + try: + with torch.no_grad(): + outputs = model(**inputs) + + # Resize masks to original image size + masks = processor.post_process_masks( + outputs.pred_masks.cpu(), + inputs["original_sizes"].cpu(), + inputs["reshaped_input_sizes"].cpu() + )[0] + + # Ensure masks are 2D, not 3D + if masks.ndim == 3: + masks = masks[0] # Extract the first mask if it's 3D + + # Initialize 2D mask for image + img_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) + + # Process masks + for mask_idx, bbox_label in enumerate(bboxes_labels): + pred_label = int(bbox_label.item()) + + mask = masks[mask_idx] # this should be 2D + + # Ensure mask is a 2D array + if mask.ndim == 3: # if mask is 3D, convert to 2D + mask = mask[0] + + # Convert tensor to numpy array and apply binary threshold + mask = mask.cpu().numpy() + mask_binary = (mask > 0.5).astype(np.uint8) + mask_labeled = mask_binary * pred_label + + img_mask[mask_labeled > 0] = mask_labeled[mask_labeled > 0] + + except Exception as e: + logging.error(f"Error during SAM mask creation: {e}") + return None + + return img_mask + +def overlay_mask_on_image(image, mask): + """ + Overlay the segmentation mask on the image for visualization. + + Parameters: + - image (np.array): Original image in RGB format. + - mask (np.array): Segmentation mask. + + Returns: + - overlay (np.array): Image with mask overlay. + """ + # Apply color map to mask + color_mask = cv2.applyColorMap((mask * 25).astype(np.uint8), cv2.COLORMAP_JET) + color_mask = cv2.cvtColor(color_mask, cv2.COLOR_BGR2RGB) # Convert to RGB + # Overlay + overlay = cv2.addWeighted(image, 0.7, color_mask, 0.3, 0) + return overlay + +def ensure_class_directory(segmenter, class_name): + """ + Ensures that the class-specific directory exists before saving a cropped image. + + Parameters: + - segmenter (Segmenter): The Segmenter instance. + - class_name (str): Name of the class. + """ + class_crop_dir = os.path.join(segmenter.crops_dir, class_name) + if not os.path.exists(class_crop_dir): + os.makedirs(class_crop_dir, exist_ok=True) + +# def cv2_to_pil(cv2_image): +# """ +# Convert an OpenCV image (BGR format) to a PIL image (RGB format). +# """ +# from PIL import Image +# return Image.fromarray(cv2.cvtColor(cv2_image, cv2.COLOR_BGR2RGB)) + +# def pil_to_cv2(pil_image): +# """ +# Convert a PIL image (RGB format) to an OpenCV image (BGR format). +# """ +# return cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR) diff --git a/src/wing_segmenter/metadata_manager.py b/src/wing_segmenter/metadata_manager.py new file mode 100644 index 0000000..86678a9 --- /dev/null +++ b/src/wing_segmenter/metadata_manager.py @@ -0,0 +1,87 @@ +import uuid +import hashlib +import json +import os + +def generate_uuid(parameters, namespace_uuid): + """ + Generates a UUID based on the hash of the parameters. + + Parameters: + - parameters (dict): The parameters to hash. + - namespace_uuid (uuid.UUID): The namespace UUID. + + Returns: + - uuid.UUID: The generated UUID. + """ + # Convert parameters to a sorted JSON string to ensure consistency + param_str = json.dumps(parameters, sort_keys=True).encode('utf-8') + return uuid.uuid5(namespace_uuid, hashlib.sha256(param_str).hexdigest()) + +def get_dataset_hash(dataset_path): + """ + Generates a hash for the dataset by hashing all file paths and their sizes. + + Parameters: + - dataset_path (str): Path to the dataset. + + Returns: + - str: The dataset hash. + """ + hash_md5 = hashlib.md5() + for root, dirs, files in os.walk(dataset_path): + for file in sorted(files): + file_path = os.path.join(root, file) + try: + hash_md5.update(file_path.encode('utf-8')) + hash_md5.update(str(os.path.getsize(file_path)).encode('utf-8')) + except FileNotFoundError: + continue + return hash_md5.hexdigest() + +def get_run_hardware_info(device, num_workers): + """ + Retrieves information about the hardware used for the run. + + Parameters: + - device (str): 'cpu' or 'cuda'. + - num_workers (int): Number of worker threads. + + Returns: + - dict: Hardware information. + """ + hardware_info = { + 'device': device, + 'num_workers': num_workers + } + if device == 'cuda': + import torch + hardware_info['cuda_device'] = torch.cuda.get_device_name(0) + hardware_info['cuda_memory_total'] = torch.cuda.get_device_properties(0).total_memory + return hardware_info + +def update_segmentation_info(segmentation_info, image_path, mask): + """ + Updates the segmentation information list with details about the processed image. + + Parameters: + - segmentation_info (list): The list to update. + - image_path (str): Path to the processed image. + - mask (np.array): The segmentation mask. + """ + segmentation_info.append({ + 'image_path': image_path, + 'mask': mask.tolist() + }) + +def save_segmentation_info(segmentation_info, mask_csv): + """ + Saves the segmentation information to a CSV file. + + Parameters: + - segmentation_info (list): The segmentation information. + - mask_csv (str): Path to the CSV file. + """ + import pandas as pd + df = pd.DataFrame(segmentation_info) + df.to_csv(mask_csv, index=False) diff --git a/src/wing_segmenter/model_manager.py b/src/wing_segmenter/model_manager.py new file mode 100644 index 0000000..2c20816 --- /dev/null +++ b/src/wing_segmenter/model_manager.py @@ -0,0 +1,123 @@ +import logging +import torch +import subprocess +import re +from ultralytics import YOLO +from transformers import SamModel, SamProcessor +from huggingface_hub import hf_hub_download +from wing_segmenter.exceptions import ModelLoadError + +logging.getLogger("ultralytics").setLevel(logging.WARNING) + +def get_gpu_with_lowest_memory(min_required_memory_mb=1024): + """Returns the GPU ID with the lowest memory usage that has at least `min_required_memory_mb` free memory.""" + try: + # Run nvidia-smi to get the memory usage of each GPU + result = subprocess.run( + ['nvidia-smi', '--query-gpu=memory.free,memory.total', '--format=csv,noheader,nounits'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True + ) + + if result.returncode != 0: + logging.error("nvidia-smi failed to run") + return None + + # Parse the output + memory_info = result.stdout.strip().split('\n') + gpu_memory = [] + for idx, info in enumerate(memory_info): + free, total = map(int, re.findall(r'\d+', info)) + if free >= min_required_memory_mb: # check if the GPU has enough free memory + utilization = free / total + gpu_memory.append((idx, free, utilization)) # (GPU index, free memory, utilization percentage) + + # If no GPUs with enough memory are found + if not gpu_memory: + logging.error(f"No GPUs with at least {min_required_memory_mb} MB of free memory found.") + return None + + # Sort GPUs by memory usage (most free memory first) + gpu_memory.sort(key=lambda x: (-x[1], x[2])) # sort by free memory, then use percentage + selected_gpu = gpu_memory[0][0] # select GPU with most free memory + + return selected_gpu + + except Exception as e: + logging.error(f"Error selecting GPU with sufficient memory: {e}") + return None + +def get_yolo_model(model_name, device): + logging.info(f"Loading YOLO model: {model_name}") + try: + if device == 'cuda': + gpu_id = get_gpu_with_lowest_memory(min_required_memory_mb=10000) + if gpu_id is not None: + logging.info(f"Using GPU {gpu_id} with the most free memory.") + torch.cuda.set_device(gpu_id) + map_location = f"cuda:{gpu_id}" + else: + logging.warning("Could not find a suitable GPU. Using the default GPU.") + map_location = "cuda" + else: + map_location = device + + # Load the YOLO model from Hugging Face or a local path + if ':' in model_name: + repo_id, filename = model_name.split(':') + model_path = hf_hub_download(repo_id=repo_id, filename=filename) + else: + model_path = model_name + + # Use the YOLO class to load the model from the path + model = YOLO(model_path) + + logging.info(f"YOLO model loaded onto {map_location}") + + except Exception as e: + logging.error(f"Failed to load YOLO model '{model_name}': {e}") + raise ModelLoadError(f"Failed to load YOLO model '{model_name}': {e}") + + return model + +def get_sam_model_and_processor(sam_model_name, device): + """ + Load SAM model and processor from Hugging Face. + + Parameters: + - sam_model_name (str): Hugging Face model identifier for SAM. + - device (str): 'cpu' or 'cuda'. + + Returns: + - sam_model (SamModel): Loaded SAM model. + - sam_processor (SamProcessor): Loaded SAM processor. + """ + logging.info(f"Loading SAM model: {sam_model_name}") + try: + sam_model = SamModel.from_pretrained(sam_model_name).to(device) + sam_processor = SamProcessor.from_pretrained(sam_model_name) + logging.info("Loaded SAM model and processor successfully.") + except Exception as e: + logging.error(f"Failed to load SAM model '{sam_model_name}': {e}") + raise ModelLoadError(f"Failed to load SAM model '{sam_model_name}': {e}") + return sam_model, sam_processor + +def load_models(config, device): + """ + Loads both YOLO and SAM models based on the configuration. + + Parameters: + - config: The configuration object containing model names. + - device (str): The device to load models onto ('cpu' or 'cuda'). + + Returns: + - yolo_model: The loaded YOLO model. + - sam_model: The loaded SAM model. + - sam_processor: The loaded SAM processor. + """ + try: + yolo_model = get_yolo_model(config.yolo_model, device) + sam_model, sam_processor = get_sam_model_and_processor(config.sam_model, device) + except ModelLoadError as e: + logging.error(f"Failed to load models: {e}") + raise + return yolo_model, sam_model, sam_processor diff --git a/src/wing_segmenter/path_manager.py b/src/wing_segmenter/path_manager.py new file mode 100644 index 0000000..2549305 --- /dev/null +++ b/src/wing_segmenter/path_manager.py @@ -0,0 +1,51 @@ +import os +import uuid +from wing_segmenter.constants import CLASSES + +def setup_paths(segmenter): + """ + Sets up output directories and paths based on the Segmenter's configuration. + + Parameters: + - segmenter: The Segmenter instance. + """ + # Create output directory + dataset_name = os.path.basename(segmenter.dataset_path.rstrip('/\\')) + output_dir_name = f"{dataset_name}_{segmenter.run_uuid}" + if segmenter.output_base_dir: + segmenter.output_dir = os.path.join(segmenter.output_base_dir, output_dir_name) + else: + segmenter.output_dir = os.path.join(os.path.dirname(segmenter.dataset_path), output_dir_name) + os.makedirs(segmenter.output_dir, exist_ok=True) + + # Metadata file path + segmenter.metadata_path = os.path.join(segmenter.output_dir, 'metadata.json') + + # Prepare output subdirectories + segmenter.resized_dir = os.path.join(segmenter.output_dir, 'resized') + segmenter.masks_dir = os.path.join(segmenter.output_dir, 'masks') + segmenter.viz_dir = os.path.join(segmenter.output_dir, 'seg_viz') + segmenter.crops_dir = os.path.join(segmenter.output_dir, 'crops') + segmenter.logs_dir = os.path.join(segmenter.output_dir, 'logs') + os.makedirs(segmenter.masks_dir, exist_ok=True) + os.makedirs(segmenter.viz_dir, exist_ok=True) + os.makedirs(segmenter.crops_dir, exist_ok=True) + os.makedirs(segmenter.logs_dir, exist_ok=True) + + + # Create directory for images with background removed if required + if segmenter.remove_background and segmenter.save_intermediates: + # Create directory for background-removed cropped images + segmenter.crops_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'crops_bkgd_removed') + os.makedirs(segmenter.crops_bkgd_removed_dir, exist_ok=True) + + # Create directory for background-removed full images + segmenter.full_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'full_bkgd_removed') + os.makedirs(segmenter.full_bkgd_removed_dir, exist_ok=True) + + # If resizing is enabled, create resized directories + if segmenter.save_intermediates and segmenter.size: + os.makedirs(segmenter.resized_dir, exist_ok=True) + + # Mask CSV path + segmenter.mask_csv = os.path.join(segmenter.output_dir, 'segmentation.csv') diff --git a/src/wing_segmenter/resize.py b/src/wing_segmenter/resize.py deleted file mode 100644 index d426655..0000000 --- a/src/wing_segmenter/resize.py +++ /dev/null @@ -1,83 +0,0 @@ -import os -from PIL import Image -import numpy as np -import cv2 -from tqdm import tqdm -import logging -from concurrent.futures import ThreadPoolExecutor -import json -from datetime import datetime - -# Mapp user input to corresponding OpenCV interpolation method -INTERPOLATION_METHODS = { - 'nearest': cv2.INTER_NEAREST, - 'linear': cv2.INTER_LINEAR, - 'cubic': cv2.INTER_CUBIC, - 'area': cv2.INTER_AREA, - 'lanczos4': cv2.INTER_LANCZOS4, - 'linear_exact': cv2.INTER_LINEAR_EXACT, - 'nearest_exact': cv2.INTER_NEAREST_EXACT, -} - -def resize_image_task(task): - """Helper function to resize a single image.""" - input_path, output_path, resize_dim, interpolation = task - try: - image = Image.open(input_path) - image = np.array(image) - image = cv2.resize(image, tuple(resize_dim), interpolation=interpolation) - os.makedirs(os.path.dirname(output_path), exist_ok=True) - image = Image.fromarray(image) - image.save(output_path) - except Exception as e: - logging.error(f"Error processing {input_path}: {e}") - -def save_metadata(output_dir, source_dir, resize_dim, interpolation, num_workers): - """Save metadata about the resize process to a JSON file into the output directory.""" - metadata = { - 'source_directory': source_dir, - 'output_directory': output_dir, - 'resize_dimensions': resize_dim, - 'interpolation_method': interpolation, - 'num_workers': num_workers, - 'timestamp': datetime.now().strftime('%Y-%m-%d %H:%M:%S') - } - - metadata_path = os.path.join(output_dir, 'metadata.json') - with open(metadata_path, 'w') as f: - json.dump(metadata, f, indent=4) - logging.info(f"Metadata saved to {metadata_path}") - -def resize_images(source, output, resize_dim, num_workers=1, interpolation='area'): - """ - Resize images from the source directory, and save them to the output directory, preserving any subdirectory structure. - - Parameters: - - source (str): Path to the source images. - - output (str): Path to save the resized images. - - resize_dim (list of int): [WIDTH, HEIGHT] dimensions to resize images. - - num_workers (int): Number of parallel workers to use for resizing. Default is 1 (no parallelism). - - interpolation (str): Interpolation method to use for resizing. Default is 'area'. - """ - logging.info(f"Resizing images from {source} to {output} with dimensions {resize_dim} using {num_workers} workers and interpolation '{interpolation}'") - - # Get the OpenCV interpolation constant - interpolation_method = INTERPOLATION_METHODS.get(interpolation) - - # Collect tasks for parallel execution - tasks = [] - for root, dirs, files in os.walk(source): - for file in files: - if file.lower().endswith(('.jpg', '.jpeg', '.png', '.JPG', '.JPEG', '.PNG')): - # Construct the relative path and output path - relative_path = os.path.relpath(root, source) - output_dir = os.path.join(output, relative_path) - input_path = os.path.join(root, file) - output_path = os.path.join(output_dir, os.path.splitext(file)[0] + '.png') - tasks.append((input_path, output_path, resize_dim, interpolation_method)) - - # Perform resizing in parallel - with ThreadPoolExecutor(max_workers=num_workers) as executor: - list(tqdm(executor.map(resize_image_task, tasks), total=len(tasks), desc='Resizing images')) - - save_metadata(output, source, resize_dim, interpolation, num_workers) diff --git a/src/wing_segmenter/resizer.py b/src/wing_segmenter/resizer.py new file mode 100644 index 0000000..ef69bcb --- /dev/null +++ b/src/wing_segmenter/resizer.py @@ -0,0 +1,68 @@ +import cv2 + +def get_interpolation_method(interpolation): + interpolation_map = { + 'nearest': cv2.INTER_NEAREST, + 'linear': cv2.INTER_LINEAR, + 'cubic': cv2.INTER_CUBIC, + 'area': cv2.INTER_AREA, + 'lanczos4': cv2.INTER_LANCZOS4, + 'linear_exact': cv2.INTER_LINEAR_EXACT, + 'nearest_exact': cv2.INTER_NEAREST_EXACT, + } + return interpolation_map.get(interpolation, cv2.INTER_AREA) + +def resize_image(image, size, resize_mode, padding_color, interpolation): + """ + Resizes the image based on the resize mode, dimensions, and padding settings. + The image will always be resized to the target dimensions. + """ + original_height, original_width = image.shape[:2] + + # If no resize dimensions are specified, return the original image + if not size: + return image + + # Determine target dimensions + if len(size) == 1: + target_width = target_height = size[0] + else: + target_width, target_height = size + + if resize_mode == 'distort': + # Resize without preserving AR + resized_image = cv2.resize(image, (target_width, target_height), interpolation=get_interpolation_method(interpolation)) + return resized_image + + elif resize_mode == 'pad': + # Compute scaling factor while preserving AR + scale = min(target_width / original_width, target_height / original_height) + + # Compute new dimensions after scaling + new_width = int(original_width * scale) + new_height = int(original_height * scale) + + # Resize image to fit within target dimensions while preserving AR + resized_image = cv2.resize(image, (new_width, new_height), interpolation=get_interpolation_method(interpolation)) + + # Calculate padding to fit the target dimensions + delta_w = target_width - new_width + delta_h = target_height - new_height + top = delta_h // 2 + bottom = delta_h - top + left = delta_w // 2 + right = delta_w - left + + # Define padding color + if padding_color == 'black': + pad_color = [0, 0, 0] + else: + pad_color = [255, 255, 255] + + # Add padding to match the target size + padded_image = cv2.copyMakeBorder(resized_image, top, bottom, left, right, cv2.BORDER_CONSTANT, value=pad_color) + return padded_image + + else: + # Fallback to returning the original image if no valid resize mode is specified + return image diff --git a/src/wing_segmenter/run_scanner.py b/src/wing_segmenter/run_scanner.py new file mode 100644 index 0000000..10f8b54 --- /dev/null +++ b/src/wing_segmenter/run_scanner.py @@ -0,0 +1,99 @@ +import os +import json +import glob +from rich.table import Table +from rich.console import Console + +def scan_runs(dataset_path, output_base_dir=None): + dataset_path = os.path.abspath(dataset_path) + + if not os.path.exists(dataset_path): + console = Console() + console.print(f"[red]Error: The dataset path '{dataset_path}' does not exist.[/red]") + return + + # Determine the base directory to search for runs + dataset_name = os.path.basename(dataset_path.rstrip('/\\')) + if output_base_dir: + output_dir = os.path.abspath(output_base_dir) + else: + output_dir = os.path.dirname(dataset_path) + + # Search for run directories in the specified output directory + pattern = f"{output_dir}/{dataset_name}_*" + run_dirs = glob.glob(pattern) + + console = Console() + + if not run_dirs: + if output_base_dir: + console.print(f"[red]No processing runs found in '{output_dir}' for dataset '{dataset_name}'.[/red]") + else: + console.print(f"[red]No processing runs found for dataset '{dataset_name}' in default location ('{output_dir}'). If you saved results in a custom location, please use the `--output-dir` flag for the `scan-runs` command.[/red]") + return + + console.print(f"[bold green]Found {len(run_dirs)} processing runs for dataset '{dataset_name}':[/bold green]\n") + + table = Table(title="Processing Runs", header_style="", show_lines=True) + + table.add_column("Run #", justify="right", no_wrap=True, width=5) + table.add_column("Run UUID Prefix", justify="left", no_wrap=False, width=8) + table.add_column("Completed", justify="center", no_wrap=True, width=9) + table.add_column("Num Images", justify="right", no_wrap=False, width=10) + table.add_column("Resize Dims", justify="center", no_wrap=False, width=11) + table.add_column("Interp", justify="center", no_wrap=True, min_width=13) + table.add_column("Save Intermed", justify="center", no_wrap=False, width=8) + table.add_column("Visualize Seg", justify="center", no_wrap=False, width=9) + table.add_column("Errors", justify="center", no_wrap=True, min_width=6) + + for idx, run_dir in enumerate(run_dirs, 1): + metadata_path = os.path.join(run_dir, 'metadata.json') + if not os.path.exists(metadata_path): + table.add_row(str(idx), f"Missing metadata.json", "", "", "", "", "", "", "") + continue + + with open(metadata_path, 'r') as f: + metadata = json.load(f) + + # Extract relevant information + completed = 'Yes' if metadata['run_status'].get('completed') else 'No' + + num_images = str(metadata['dataset'].get('num_images', 'Unknown')) + resize_dims = metadata['run_parameters'].get('size', 'None (original)') + + # Handle 'size' being a list with 1 or 2 elements or other types + if isinstance(resize_dims, list): + if len(resize_dims) == 1: + resize_dims_str = f"{resize_dims[0]}x{resize_dims[0]}" + elif len(resize_dims) == 2: + resize_dims_str = f"{resize_dims[0]}x{resize_dims[1]}" + else: + resize_dims_str = str(resize_dims) + else: + resize_dims_str = str(resize_dims) + + interpolation = str(metadata['run_parameters'].get('interpolation', 'None')) + + save_intermediates = 'Yes' if metadata['run_parameters'].get('save_intermediates', False) else 'No' + visualize_segmentation = 'Yes' if metadata['run_parameters'].get('visualize_segmentation', False) else 'No' + + # Extract any errors + errors = str(metadata['run_status'].get('errors', 'None')) + + # Truncate run UUID to save table space + run_uuid_prefix = os.path.basename(run_dir).split('_')[-1][:8] + + # Add row to the table + table.add_row( + str(idx), + run_uuid_prefix, + completed, + num_images, + resize_dims_str, + interpolation, + save_intermediates, + visualize_segmentation, + errors + ) + + console.print(table) diff --git a/src/wing_segmenter/segmenter.py b/src/wing_segmenter/segmenter.py new file mode 100644 index 0000000..fd3d5df --- /dev/null +++ b/src/wing_segmenter/segmenter.py @@ -0,0 +1,181 @@ +import os +import json +import logging +import time +import uuid +from concurrent.futures import ThreadPoolExecutor, as_completed +from tqdm import tqdm + +from wing_segmenter.model_manager import load_models +from wing_segmenter.resizer import resize_image +from wing_segmenter.path_manager import setup_paths +from wing_segmenter.image_processor import process_image +from wing_segmenter.metadata_manager import ( + generate_uuid, + get_dataset_hash, + get_run_hardware_info, +) +from wing_segmenter.exceptions import ModelLoadError, ImageProcessingError +from wing_segmenter import __version__ as package_version + +class Segmenter: + def __init__(self, config): + self.config = config + self.device = config.device + self.dataset_path = os.path.abspath(config.dataset) + self.size = config.size + self.resize_mode = config.resize_mode + self.padding_color = config.padding_color + self.interpolation = config.interpolation + self.num_workers = config.num_workers + self.save_intermediates = config.save_intermediates + self.visualize_segmentation = config.visualize_segmentation + self.force = config.force + self.crop_by_class = config.crop_by_class + self.remove_background = config.remove_background + self.remove_bg_full = config.remove_bg_full + self.background_color = config.background_color if (self.remove_background or self.remove_bg_full) else None + self.segmentation_info = [] + self.output_base_dir = os.path.abspath(config.output_dir) if config.output_dir else None + + # Define your namespace UUID based on a string + self.NAMESPACE_UUID = uuid.uuid5(uuid.NAMESPACE_DNS, 'Imageomics Wing Segmentation') + + # Handle resizing dimensions + if self.size: + if len(self.size) == 1: + self.width = self.height = self.size[0] + elif len(self.size) == 2: + self.width, self.height = self.size + else: + raise ValueError("Invalid size argument. Size must have either one or two values.") + else: + self.width = self.height = None # if no resizing use None + + # Prepare parameters for hashing + self.parameters_for_hash = { + 'dataset_hash': get_dataset_hash(self.dataset_path), + 'sam_model_name': self.config.sam_model, + 'yolo_model_name': self.config.yolo_model, + 'resize_mode': self.resize_mode, + 'size': self.size if self.size else None, + 'width': self.width, + 'height': self.height, + 'padding_color': self.padding_color if self.resize_mode == 'pad' else None, + 'interpolation': self.interpolation if self.size else None, + 'save_intermediates': self.save_intermediates, + 'visualize_segmentation': self.visualize_segmentation, + 'crop_by_class': self.crop_by_class, + 'remove_background': self.remove_background, + 'remove_bg_full': self.remove_bg_full, + 'background_color': self.background_color + } + + # Generate UUID based on parameters + self.run_uuid = generate_uuid(self.parameters_for_hash, self.NAMESPACE_UUID) + + setup_paths(self) + + self.yolo_model, self.sam_model, self.sam_processor = load_models(self.config, self.device) + + def process_dataset(self): + start_time = time.time() + errors_occurred = False + + # Prepare image paths + image_paths = [] + valid_extensions = ('.jpg', '.jpeg', '.png', '.tif', '.tiff', '.bmp') + for root, _, files in os.walk(self.dataset_path): + for file in files: + if file.lower().endswith(valid_extensions): + image_paths.append(os.path.join(root, file)) + + if not image_paths: + logging.error("No images found in the dataset.") + errors_occurred = True + return errors_occurred + + # Check for existing run unless force is specified + if os.path.exists(self.metadata_path) and not self.force: + with open(self.metadata_path, 'r') as f: + existing_metadata = json.load(f) + if existing_metadata.get('run_status', {}).get('completed'): + logging.info(f"Processing already completed for dataset '{self.dataset_path}' with the specified parameters.") + logging.info(f"Outputs are available at '{self.output_dir}'.") + return errors_occurred + + # Initialize metadata + self.metadata = { + 'dataset': { + 'dataset_hash': self.parameters_for_hash['dataset_hash'], + 'num_images': len(image_paths) + }, + 'run_parameters': { + 'sam_model_name': self.config.sam_model, + 'yolo_model_name': self.config.yolo_model, + 'resize_mode': self.resize_mode, + 'size': self.size if self.size else None, + 'padding_color': self.padding_color if self.resize_mode == 'pad' else None, + 'interpolation': self.interpolation if self.size else None, + 'save_intermediates': self.save_intermediates, + 'visualize_segmentation': self.visualize_segmentation, + 'crop_by_class': self.crop_by_class, + 'remove_background': self.remove_background, + 'remove_bg_full': self.remove_bg_full, + 'background_color': self.background_color + }, + 'run_hardware': get_run_hardware_info(self.device, self.num_workers), + 'run_status': { + 'completed': False, + 'processing_time_seconds': None, + 'package_version': package_version, + 'errors': None + } + } + with open(self.metadata_path, 'w') as f: + json.dump(self.metadata, f, indent=4) + + try: + with ThreadPoolExecutor(max_workers=self.num_workers) as executor: + futures = {executor.submit(process_image, self, image_path): image_path for image_path in image_paths} + + with tqdm(total=len(futures), desc='Processing Images', unit='image') as pbar: + for future in as_completed(futures): + image_path = futures[future] + try: + future.result() + except ImageProcessingError: + errors_occurred = True + self.metadata['run_status']['errors'] = "One or more images failed during processing." + finally: + pbar.update(1) # update progress for each completed task + + except Exception as e: + logging.error(f"Processing failed: {e}") + self.metadata['run_status']['completed'] = False + self.metadata['run_status']['errors'] = str(e) + with open(self.metadata_path, 'w') as f: + json.dump(self.metadata, f, indent=4) + raise e + + # Save segmentation info + if self.segmentation_info: + from wing_segmenter.metadata_manager import save_segmentation_info + save_segmentation_info(self.segmentation_info, self.mask_csv) + + # Update metadata on completion + processing_time = time.time() - start_time + + self.metadata['run_status']['completed'] = not errors_occurred + self.metadata['run_status']['processing_time_seconds'] = processing_time + + # Save updated metadata + with open(self.metadata_path, 'w') as f: + json.dump(self.metadata, f, indent=4) + + if errors_occurred: + logging.warning(f"Processing completed with errors. Outputs are available at: \n\t{self.output_dir}") + else: + logging.info(f"Processing completed successfully. Outputs are available at: \n\t{self.output_dir}") + + return errors_occurred From 0f4ef69602ff2dd279d642f4339573c9d40fcb16 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 3 Oct 2024 12:06:22 -0400 Subject: [PATCH 06/18] Defer import of Segmenter to speed up help message printing Still allows Segmenter to be imported by a user, but bypasses its heavy imports until called directly --- src/wing_segmenter/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/wing_segmenter/__init__.py b/src/wing_segmenter/__init__.py index 703337b..fc472bb 100644 --- a/src/wing_segmenter/__init__.py +++ b/src/wing_segmenter/__init__.py @@ -1,3 +1,7 @@ __version__ = "0.1.0" -from wing_segmenter.segmenter import Segmenter +def __getattr__(name): + if name == 'Segmenter': + from wing_segmenter.segmenter import Segmenter + return Segmenter + raise AttributeError(f"module {__name__} has no attribute {name}") From fad9b67a6fae79348b5e5507d892adce96c23f4b Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 4 Oct 2024 10:32:32 -0400 Subject: [PATCH 07/18] Add completely custom output directory option --- src/wing_segmenter/cli.py | 14 ++++++++++- src/wing_segmenter/metadata_manager.py | 13 +++++----- src/wing_segmenter/path_manager.py | 35 +++++++++++++++----------- src/wing_segmenter/run_scanner.py | 27 ++++++++++++-------- src/wing_segmenter/segmenter.py | 32 +++++++++-------------- 5 files changed, 70 insertions(+), 51 deletions(-) diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index 65bd325..a87b5c6 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -39,8 +39,16 @@ def main(): default='area', help='Interpolation method to use when resizing. For upscaling, "lanczos4" is recommended.') + # **Remove the following two lines to avoid duplication** + # segment_parser.add_argument('--outputs-base-dir', default=None, help='Base path to store outputs for multiple runs.') + # segment_parser.add_argument('--custom-output-dir', default=None, help='Fully custom directory to store all output files for a run.') + + # Output options within mutually exclusive group + output_group = segment_parser.add_mutually_exclusive_group() + output_group.add_argument('--outputs-base-dir', default=None, help='Base path to store outputs.') + output_group.add_argument('--custom-output-dir', default=None, help='Fully custom directory to store all output files.') + # General processing options - segment_parser.add_argument('--output-dir', default=None, help='Base path to store outputs.') segment_parser.add_argument('--sam-model', default='facebook/sam-vit-base', help='SAM model to use (e.g., facebook/sam-vit-base)') segment_parser.add_argument('--yolo-model', default='imageomics/butterfly_segmentation_yolo_v8:yolov8m_shear_10.0_scale_0.5_translate_0.1_fliplr_0.0_best.pt', @@ -94,6 +102,10 @@ def main(): if (args.remove_background or args.remove_bg_full) and not args.crop_by_class: parser.error('--remove-background and --remove-bg-full require --crop-by-class to be set.') + # Ensure that if --custom-output-dir is set, --outputs-base-dir is not used + if args.custom_output_dir and args.outputs_base_dir: + parser.error('Cannot specify both --outputs-base-dir and --custom-output-dir. Choose one.') + # Execute the subcommand if args.command == 'segment': from wing_segmenter.segmenter import Segmenter diff --git a/src/wing_segmenter/metadata_manager.py b/src/wing_segmenter/metadata_manager.py index 86678a9..5728d45 100644 --- a/src/wing_segmenter/metadata_manager.py +++ b/src/wing_segmenter/metadata_manager.py @@ -3,20 +3,21 @@ import json import os -def generate_uuid(parameters, namespace_uuid): +NAMESPACE_UUID = uuid.UUID('00000000-0000-0000-0000-000000000000') + +def generate_uuid(parameters): """ - Generates a UUID based on the hash of the parameters. + Generates a UUID based on the provided parameters and a fixed namespace UUID. Parameters: - parameters (dict): The parameters to hash. - - namespace_uuid (uuid.UUID): The namespace UUID. Returns: - uuid.UUID: The generated UUID. """ - # Convert parameters to a sorted JSON string to ensure consistency - param_str = json.dumps(parameters, sort_keys=True).encode('utf-8') - return uuid.uuid5(namespace_uuid, hashlib.sha256(param_str).hexdigest()) + # Serialize parameters to a sorted JSON string to ensure consistency + param_str = json.dumps(parameters, sort_keys=True) + return uuid.uuid5(NAMESPACE_UUID, param_str) def get_dataset_hash(dataset_path): """ diff --git a/src/wing_segmenter/path_manager.py b/src/wing_segmenter/path_manager.py index 2549305..d4d1575 100644 --- a/src/wing_segmenter/path_manager.py +++ b/src/wing_segmenter/path_manager.py @@ -1,5 +1,4 @@ import os -import uuid from wing_segmenter.constants import CLASSES def setup_paths(segmenter): @@ -9,43 +8,51 @@ def setup_paths(segmenter): Parameters: - segmenter: The Segmenter instance. """ - # Create output directory - dataset_name = os.path.basename(segmenter.dataset_path.rstrip('/\\')) - output_dir_name = f"{dataset_name}_{segmenter.run_uuid}" - if segmenter.output_base_dir: + # Determine output directory + if segmenter.custom_output_dir: + # User has specified a fully custom output directory + segmenter.output_dir = os.path.abspath(segmenter.custom_output_dir) + elif segmenter.output_base_dir: + # Create output directory based on base directory and run UUID + dataset_name = os.path.basename(segmenter.dataset_path.rstrip('/\\')) + output_dir_name = f"{dataset_name}_{segmenter.run_uuid}" segmenter.output_dir = os.path.join(segmenter.output_base_dir, output_dir_name) else: + # Default: Create output directory in the parent of the dataset path + dataset_name = os.path.basename(segmenter.dataset_path.rstrip('/\\')) + output_dir_name = f"{dataset_name}_{segmenter.run_uuid}" segmenter.output_dir = os.path.join(os.path.dirname(segmenter.dataset_path), output_dir_name) + + # Create the root output directory os.makedirs(segmenter.output_dir, exist_ok=True) # Metadata file path segmenter.metadata_path = os.path.join(segmenter.output_dir, 'metadata.json') - # Prepare output subdirectories + # Define subdirectories segmenter.resized_dir = os.path.join(segmenter.output_dir, 'resized') segmenter.masks_dir = os.path.join(segmenter.output_dir, 'masks') segmenter.viz_dir = os.path.join(segmenter.output_dir, 'seg_viz') segmenter.crops_dir = os.path.join(segmenter.output_dir, 'crops') segmenter.logs_dir = os.path.join(segmenter.output_dir, 'logs') + + # Create subdirectories + os.makedirs(segmenter.resized_dir, exist_ok=True) os.makedirs(segmenter.masks_dir, exist_ok=True) os.makedirs(segmenter.viz_dir, exist_ok=True) os.makedirs(segmenter.crops_dir, exist_ok=True) os.makedirs(segmenter.logs_dir, exist_ok=True) - - # Create directory for images with background removed if required + # Create directories for background removal if needed if segmenter.remove_background and segmenter.save_intermediates: - # Create directory for background-removed cropped images segmenter.crops_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'crops_bkgd_removed') - os.makedirs(segmenter.crops_bkgd_removed_dir, exist_ok=True) - - # Create directory for background-removed full images segmenter.full_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'full_bkgd_removed') + os.makedirs(segmenter.crops_bkgd_removed_dir, exist_ok=True) os.makedirs(segmenter.full_bkgd_removed_dir, exist_ok=True) - # If resizing is enabled, create resized directories + # Additional directories based on resizing options if segmenter.save_intermediates and segmenter.size: os.makedirs(segmenter.resized_dir, exist_ok=True) - # Mask CSV path + # CSV file for segmentation info segmenter.mask_csv = os.path.join(segmenter.output_dir, 'segmentation.csv') diff --git a/src/wing_segmenter/run_scanner.py b/src/wing_segmenter/run_scanner.py index 10f8b54..8026b98 100644 --- a/src/wing_segmenter/run_scanner.py +++ b/src/wing_segmenter/run_scanner.py @@ -4,7 +4,7 @@ from rich.table import Table from rich.console import Console -def scan_runs(dataset_path, output_base_dir=None): +def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): dataset_path = os.path.abspath(dataset_path) if not os.path.exists(dataset_path): @@ -14,22 +14,29 @@ def scan_runs(dataset_path, output_base_dir=None): # Determine the base directory to search for runs dataset_name = os.path.basename(dataset_path.rstrip('/\\')) - if output_base_dir: - output_dir = os.path.abspath(output_base_dir) + + if custom_output_dir: + # If a custom output directory is provided, scan only that directory without expecting specific naming + run_dirs = [custom_output_dir] if os.path.exists(custom_output_dir) else [] else: - output_dir = os.path.dirname(dataset_path) + if output_base_dir: + output_dir = os.path.abspath(output_base_dir) + else: + output_dir = os.path.dirname(dataset_path) - # Search for run directories in the specified output directory - pattern = f"{output_dir}/{dataset_name}_*" - run_dirs = glob.glob(pattern) + # Search for run directories in the specified output directory + pattern = f"{output_dir}/{dataset_name}_*" + run_dirs = glob.glob(pattern) console = Console() if not run_dirs: - if output_base_dir: + if custom_output_dir: + console.print(f"[red]No processing runs found in the custom output directory '{custom_output_dir}' for dataset '{dataset_name}'.[/red]") + elif output_base_dir: console.print(f"[red]No processing runs found in '{output_dir}' for dataset '{dataset_name}'.[/red]") else: - console.print(f"[red]No processing runs found for dataset '{dataset_name}' in default location ('{output_dir}'). If you saved results in a custom location, please use the `--output-dir` flag for the `scan-runs` command.[/red]") + console.print(f"[red]No processing runs found for dataset '{dataset_name}' in default location ('{output_dir}'). If you saved results in a custom location, please use the `--custom-output-dir` flag for the `scan-runs` command.[/red]") return console.print(f"[bold green]Found {len(run_dirs)} processing runs for dataset '{dataset_name}':[/bold green]\n") @@ -81,7 +88,7 @@ def scan_runs(dataset_path, output_base_dir=None): errors = str(metadata['run_status'].get('errors', 'None')) # Truncate run UUID to save table space - run_uuid_prefix = os.path.basename(run_dir).split('_')[-1][:8] + run_uuid_prefix = os.path.basename(run_dir).split('_')[-1][:8] if not custom_output_dir else "CustomDir" # Add row to the table table.add_row( diff --git a/src/wing_segmenter/segmenter.py b/src/wing_segmenter/segmenter.py index fd3d5df..0a2d5b5 100644 --- a/src/wing_segmenter/segmenter.py +++ b/src/wing_segmenter/segmenter.py @@ -2,7 +2,6 @@ import json import logging import time -import uuid from concurrent.futures import ThreadPoolExecutor, as_completed from tqdm import tqdm @@ -36,21 +35,12 @@ def __init__(self, config): self.remove_bg_full = config.remove_bg_full self.background_color = config.background_color if (self.remove_background or self.remove_bg_full) else None self.segmentation_info = [] - self.output_base_dir = os.path.abspath(config.output_dir) if config.output_dir else None - - # Define your namespace UUID based on a string - self.NAMESPACE_UUID = uuid.uuid5(uuid.NAMESPACE_DNS, 'Imageomics Wing Segmentation') - - # Handle resizing dimensions - if self.size: - if len(self.size) == 1: - self.width = self.height = self.size[0] - elif len(self.size) == 2: - self.width, self.height = self.size - else: - raise ValueError("Invalid size argument. Size must have either one or two values.") - else: - self.width = self.height = None # if no resizing use None + self.output_base_dir = os.path.abspath(config.outputs_base_dir) if config.outputs_base_dir else None + self.custom_output_dir = os.path.abspath(config.custom_output_dir) if config.custom_output_dir else None + + # Ensure that only one of outputs_base_dir or custom_output_dir is used + if self.output_base_dir and self.custom_output_dir: + raise ValueError("Cannot specify both --outputs-base-dir and --custom-output-dir.") # Prepare parameters for hashing self.parameters_for_hash = { @@ -59,8 +49,8 @@ def __init__(self, config): 'yolo_model_name': self.config.yolo_model, 'resize_mode': self.resize_mode, 'size': self.size if self.size else None, - 'width': self.width, - 'height': self.height, + 'width': self.size[0] if self.size and len(self.size) == 1 else (self.size[0] if self.size else None), + 'height': self.size[1] if self.size and len(self.size) == 2 else (self.size[0] if self.size and len(self.size) == 1 else None), 'padding_color': self.padding_color if self.resize_mode == 'pad' else None, 'interpolation': self.interpolation if self.size else None, 'save_intermediates': self.save_intermediates, @@ -72,14 +62,16 @@ def __init__(self, config): } # Generate UUID based on parameters - self.run_uuid = generate_uuid(self.parameters_for_hash, self.NAMESPACE_UUID) + self.run_uuid = generate_uuid(self.parameters_for_hash) + # Setup output paths setup_paths(self) + # Load models self.yolo_model, self.sam_model, self.sam_processor = load_models(self.config, self.device) def process_dataset(self): - start_time = time.time() + start_time = time.time() errors_occurred = False # Prepare image paths From dc6f9a26e7aa2d9ef706f06bc134765ba07f76b6 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 4 Oct 2024 10:38:10 -0400 Subject: [PATCH 08/18] Delete stray comment --- src/wing_segmenter/cli.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index a87b5c6..2cc79a8 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -39,10 +39,6 @@ def main(): default='area', help='Interpolation method to use when resizing. For upscaling, "lanczos4" is recommended.') - # **Remove the following two lines to avoid duplication** - # segment_parser.add_argument('--outputs-base-dir', default=None, help='Base path to store outputs for multiple runs.') - # segment_parser.add_argument('--custom-output-dir', default=None, help='Fully custom directory to store all output files for a run.') - # Output options within mutually exclusive group output_group = segment_parser.add_mutually_exclusive_group() output_group.add_argument('--outputs-base-dir', default=None, help='Base path to store outputs.') From edc1acb51eb9c9c02298319b0a790eaf965d0e65 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 4 Oct 2024 13:18:00 -0400 Subject: [PATCH 09/18] Move resize interpolations to constants file --- src/wing_segmenter/constants.py | 12 ++++++++++++ src/wing_segmenter/resizer.py | 12 ++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/wing_segmenter/constants.py b/src/wing_segmenter/constants.py index 01fe2ed..14b5c7f 100644 --- a/src/wing_segmenter/constants.py +++ b/src/wing_segmenter/constants.py @@ -1,3 +1,5 @@ +import cv2 + CLASSES = { 0: 'background', 1: 'right_forewing', @@ -10,3 +12,13 @@ 8: 'color_card', 9: 'body' } + +INTERPOLATION_METHODS = { + 'nearest': cv2.INTER_NEAREST, + 'linear': cv2.INTER_LINEAR, + 'cubic': cv2.INTER_CUBIC, + 'area': cv2.INTER_AREA, + 'lanczos4': cv2.INTER_LANCZOS4, + 'linear_exact': cv2.INTER_LINEAR_EXACT, + 'nearest_exact': cv2.INTER_NEAREST_EXACT, +} diff --git a/src/wing_segmenter/resizer.py b/src/wing_segmenter/resizer.py index ef69bcb..8ff5c7b 100644 --- a/src/wing_segmenter/resizer.py +++ b/src/wing_segmenter/resizer.py @@ -1,16 +1,8 @@ import cv2 +from wing_segmenter.constants import INTERPOLATION_METHODS def get_interpolation_method(interpolation): - interpolation_map = { - 'nearest': cv2.INTER_NEAREST, - 'linear': cv2.INTER_LINEAR, - 'cubic': cv2.INTER_CUBIC, - 'area': cv2.INTER_AREA, - 'lanczos4': cv2.INTER_LANCZOS4, - 'linear_exact': cv2.INTER_LINEAR_EXACT, - 'nearest_exact': cv2.INTER_NEAREST_EXACT, - } - return interpolation_map.get(interpolation, cv2.INTER_AREA) + return INTERPOLATION_METHODS.get(interpolation, cv2.INTER_AREA) def resize_image(image, size, resize_mode, padding_color, interpolation): """ From afec2f8e2d02ecd08ee1024f8dd2c11046e5cc5a Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 4 Oct 2024 17:37:22 -0400 Subject: [PATCH 10/18] Housekeeping and argument validation fixes --- src/wing_segmenter/cli.py | 27 ++- src/wing_segmenter/image_processor.py | 287 +++++++++++++------------ src/wing_segmenter/metadata_manager.py | 18 +- src/wing_segmenter/path_manager.py | 41 ++-- src/wing_segmenter/segmenter.py | 78 +++---- 5 files changed, 211 insertions(+), 240 deletions(-) diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index 2cc79a8..b6035c3 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -31,7 +31,7 @@ def main(): help='Resizing mode. "distort" resizes without preserving aspect ratio, "pad" preserves aspect ratio and adds padding if necessary.') # Padding options - resize_group.add_argument('--padding-color', choices=['black', 'white'], default='black', + resize_group.add_argument('--padding-color', choices=['black', 'white'], default=None, help='Padding color to use when --resize-mode is "pad".') # Interpolation options @@ -39,6 +39,7 @@ def main(): default='area', help='Interpolation method to use when resizing. For upscaling, "lanczos4" is recommended.') + # Output options within mutually exclusive group output_group = segment_parser.add_mutually_exclusive_group() output_group.add_argument('--outputs-base-dir', default=None, help='Base path to store outputs.') @@ -53,8 +54,6 @@ def main(): help='Number of worker threads to use for processing.') segment_parser.add_argument('--device', choices=['cpu', 'cuda'], default='cpu', help='Device to use for processing.') - segment_parser.add_argument('--save-intermediates', action='store_true', - help='Save intermediate files (resized images and segmentation masks).') segment_parser.add_argument('--visualize-segmentation', action='store_true', help='Generate and save segmentation visualizations.') segment_parser.add_argument('--force', action='store_true', @@ -62,11 +61,11 @@ def main(): segment_parser.add_argument('--crop-by-class', action='store_true', help='Enable cropping of segmented classes into crops/ directory.') - # CLI Flags for background removal + # Background removal options bg_group = segment_parser.add_argument_group('Background Removal Options') - bg_group.add_argument('--remove-background', action='store_true', default=False, + bg_group.add_argument('--remove-background', action='store_true', help='Remove background from cropped images.') - bg_group.add_argument('--background-color', choices=['white', 'black'], default='black', + bg_group.add_argument('--background-color', choices=['white', 'black'], default=None, help='Background color to use when removing background. Applicable only if --remove-background is set.') bg_group.add_argument('--remove-bg-full', action='store_true', help='Remove background from the entire (resized or original) image.') @@ -87,16 +86,16 @@ def main(): parser.error('--size must accept either one value (square resize) or two values (width and height).') if not args.resize_mode: parser.error('--resize-mode must be specified when --size is provided.') - if args.resize_mode == 'pad' and args.padding_color is None: - args.padding_color = 'black' # If no size is provided, ensure that resizing options were not explicitly set else: - if args.resize_mode is not None or args.padding_color != 'black': - parser.error('Resizing options (resize-mode, padding-color) require --size to be specified.') - - # Additional validation for background removal flags - if (args.remove_background or args.remove_bg_full) and not args.crop_by_class: - parser.error('--remove-background and --remove-bg-full require --crop-by-class to be set.') + if args.resize_mode is not None: + parser.error('Resizing options (--resize-mode) require --size to be specified.') + if args.padding_color is not None: + parser.error('Resizing options (--padding-color) require --size to be specified.') + + # Only --remove-background requires --crop-by-class + if args.remove_background and not args.crop_by_class: + parser.error('--remove-background requires --crop-by-class to be set.') # Ensure that if --custom-output-dir is set, --outputs-base-dir is not used if args.custom_output_dir and args.outputs_base_dir: diff --git a/src/wing_segmenter/image_processor.py b/src/wing_segmenter/image_processor.py index 80a40a7..1ae19e8 100644 --- a/src/wing_segmenter/image_processor.py +++ b/src/wing_segmenter/image_processor.py @@ -7,6 +7,8 @@ from wing_segmenter.exceptions import ImageProcessingError from wing_segmenter.resizer import resize_image +from wing_segmenter.metadata_manager import update_segmentation_info + def process_image(segmenter, image_path): """ Processes a single image: loads, resizes, predicts, masks, saves results, and crops by class. @@ -24,26 +26,37 @@ def process_image(segmenter, image_path): logging.warning(f"Failed to read image: {image_path}") return - resized_image = resize_image( - image, - segmenter.size, - segmenter.resize_mode, - segmenter.padding_color, - segmenter.interpolation - ) - - # Save resized image if asked for - if segmenter.save_intermediates: + # Determine padding color + if segmenter.resize_mode == 'pad': + padding_color_to_use = segmenter.padding_color if segmenter.padding_color is not None else 'black' + else: + padding_color_to_use = None # Not used + + # Resize the image if requested + if segmenter.size: + working_image = resize_image( + image, + segmenter.size, + segmenter.resize_mode, + padding_color_to_use, + segmenter.interpolation + ) + # Save resized image save_path = os.path.join(segmenter.resized_dir, relative_path) os.makedirs(os.path.dirname(save_path), exist_ok=True) - cv2.imwrite(save_path, resized_image) + cv2.imwrite(save_path, working_image) + else: + working_image = image # no resizing - resized_image_rgb = cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB) + working_image_rgb = cv2.cvtColor(working_image, cv2.COLOR_BGR2RGB) - yolo_results = segmenter.yolo_model(resized_image_rgb) + yolo_results = segmenter.yolo_model(working_image_rgb) # Initialize full image foreground mask - foreground_mask = np.zeros((resized_image.shape[0], resized_image.shape[1]), dtype=np.uint8) + foreground_mask = np.zeros((working_image.shape[0], working_image.shape[1]), dtype=np.uint8) + + # To collect classes detected in this image + classes_detected = set() # Process each detection for result in yolo_results: @@ -53,7 +66,7 @@ def process_image(segmenter, image_path): mask = get_mask_SAM( result, - resized_image_rgb, + working_image_rgb, segmenter.sam_processor, segmenter.sam_model, segmenter.device @@ -66,21 +79,25 @@ def process_image(segmenter, image_path): os.makedirs(os.path.dirname(mask_save_path), exist_ok=True) cv2.imwrite(mask_save_path, mask) - # Save visualization + # Save visualization if enabled if segmenter.visualize_segmentation: - viz = overlay_mask_on_image(resized_image_rgb, mask) + viz = overlay_mask_on_image(working_image_rgb, mask) viz_save_path = os.path.join(segmenter.viz_dir, relative_path) viz_save_path = os.path.splitext(viz_save_path)[0] + '_viz.png' os.makedirs(os.path.dirname(viz_save_path), exist_ok=True) cv2.imwrite(viz_save_path, cv2.cvtColor(viz, cv2.COLOR_RGB2BGR)) - # Update segmentation info - from wing_segmenter.metadata_manager import update_segmentation_info - update_segmentation_info(segmenter.segmentation_info, image_path, mask) + # Extract classes present in the mask + classes_in_mask = np.unique(mask) + for class_id in classes_in_mask: + if class_id in CLASSES and class_id != 0: # Exclude background + classes_detected.add(CLASSES[class_id]) + if 0 in classes_in_mask: + classes_detected.add('background') # Crop by class with optional background removal if segmenter.crop_by_class: - crop_and_save_by_class(segmenter, resized_image, mask, relative_path) + crop_and_save_by_class(segmenter, working_image, mask, relative_path) # Aggregate foreground masks (excluding background class 0) detected_classes = result.boxes.cls.cpu().numpy().astype(int) @@ -93,11 +110,17 @@ def process_image(segmenter, image_path): else: logging.warning(f"No mask generated for image: {image_path}") - # Remove background from full image - if segmenter.remove_bg_full and segmenter.save_intermediates: + # Update segmentation info with binary flags + if classes_detected: + update_segmentation_info(segmenter.segmentation_info, image_path, list(classes_detected)) + else: + # If no classes detected, still log the image with all classes as 0 + update_segmentation_info(segmenter.segmentation_info, image_path, []) + + # Remove background from full image if specified + if segmenter.remove_bg_full: if np.any(foreground_mask): - # Pass the foreground_mask directly to remove_background - full_image_bg_removed = remove_background(resized_image, foreground_mask, segmenter.background_color) + full_image_bg_removed = remove_background(working_image, foreground_mask, segmenter.background_color) # Prepare save path for full background removal full_image_bg_removed_save_path = os.path.splitext(os.path.join(segmenter.full_bkgd_removed_dir, relative_path))[0] + '_bg_removed.png' @@ -111,6 +134,94 @@ def process_image(segmenter, image_path): logging.error(f"Error processing image {image_path}: {e}") raise ImageProcessingError(f"Error processing image {image_path}: {e}") +def get_mask_SAM(result, image, processor, model, device): + """ + Generate mask using SAM model. + + Parameters: + - result: YOLO prediction result. + - image (np.array): The input image in RGB format. + - processor (SamProcessor): SAM processor. + - model (SamModel): SAM model. + - device (str): 'cpu' or 'cuda'. + + Returns: + - img_mask (np.array): The generated mask. + """ + # Get bounding boxes and class labels from YOLO + bboxes_labels = result.boxes.cls + bboxes_xyxy = result.boxes.xyxy + input_boxes = [bbox.cpu().numpy().tolist()[:4] for bbox in bboxes_xyxy] + + if len(bboxes_xyxy) == 0: + logging.warning("No bounding boxes detected by YOLO.") + return None + + # Prepare inputs for SAM using the processor + inputs = processor(images=image, input_boxes=[input_boxes], return_tensors="pt").to(device) + + try: + with torch.no_grad(): + outputs = model(**inputs) + + # Resize masks to original image size + masks = processor.post_process_masks( + outputs.pred_masks.cpu(), + inputs["original_sizes"].cpu(), + inputs["reshaped_input_sizes"].cpu() + )[0] + + # Initialize 2D mask for image + img_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) + + # Process masks + for mask_idx, bbox_label in enumerate(bboxes_labels): + pred_label = int(bbox_label.item()) + + if mask_idx >= masks.shape[0]: + logging.warning("Mismatch between number of masks and detections.") + continue + + mask = masks[mask_idx] # this should be 2D + + # Ensure mask is a 2D array + if mask.ndim == 3: + mask = mask[0] + + # Convert tensor to numpy array and apply binary threshold + mask = mask.cpu().numpy() + mask_binary = (mask > 0.5).astype(np.uint8) + + # Assign class ID to mask + mask_labeled = mask_binary * pred_label + + # Update the image mask, resolving overlaps by overwriting + img_mask[mask_labeled > 0] = mask_labeled[mask_labeled > 0] + + except Exception as e: + logging.error(f"Error during SAM mask creation: {e}") + return None + + return img_mask + +def overlay_mask_on_image(image, mask): + """ + Overlay the segmentation mask on the image for visualization. + + Parameters: + - image (np.array): Original image in RGB format. + - mask (np.array): Segmentation mask. + + Returns: + - overlay (np.array): Image with mask overlay. + """ + # Apply color map to mask + color_mask = cv2.applyColorMap((mask * 25).astype(np.uint8), cv2.COLORMAP_JET) + color_mask = cv2.cvtColor(color_mask, cv2.COLOR_BGR2RGB) # Convert to RGB + # Overlay + overlay = cv2.addWeighted(image, 0.7, color_mask, 0.3, 0) + return overlay + def crop_and_save_by_class(segmenter, image, mask, relative_path): """ Crops the image based on class-specific masks and saves them to the crops directory. @@ -136,8 +247,8 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): logging.info(f"No instances found for class '{class_name}' in image '{relative_path}'.") continue # No mask for this class - for cnt in contours: - x, y, w, h = cv2.boundingRect(cnt) + for c in contours: + x, y, w, h = cv2.boundingRect(c) # Apply padding? padding = 0 # could make this configurable @@ -150,9 +261,6 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): cropped_image = image[y:y+h, x:x+w] cropped_mask = class_mask[y:y+h, x:x+w] - # Ensure class directory exists - ensure_class_directory(segmenter, class_name) - # Prepare save path for cropped classes crop_relative_path = os.path.join(class_name, relative_path) crop_save_path = os.path.splitext(os.path.join(segmenter.crops_dir, crop_relative_path))[0] + f'_{class_name}.png' @@ -160,11 +268,10 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): # Save cropped image cv2.imwrite(crop_save_path, cropped_image) - logging.info(f"Cropped '{class_name}' saved to '{crop_save_path}'.") - # Background removal - if segmenter.remove_background and segmenter.save_intermediates: + # Background removal from cropped image if specified + if segmenter.remove_background: cropped_image_bg_removed = remove_background(cropped_image, cropped_mask, segmenter.background_color) # Prepare save path for background-removed cropped class images @@ -187,6 +294,10 @@ def remove_background(image, mask, bg_color='black'): Returns: - final_image (np.array): The image with background removed/replaced. """ + if bg_color is None: + logging.warning("bg_color is None. Defaulting to 'black'.") + bg_color = 'black' + if bg_color.lower() == 'white': background = np.full(image.shape, 255, dtype=np.uint8) elif bg_color.lower() == 'black': @@ -214,113 +325,3 @@ def remove_background(image, mask, bg_color='black'): final_image = image.copy() return final_image - -def get_mask_SAM(result, image, processor, model, device): - """ - Generate mask using SAM model. - - Parameters: - - result: YOLO prediction result. - - image (np.array): The input image in RGB format. - - processor (SamProcessor): SAM processor. - - model (SamModel): SAM model. - - device (str): 'cpu' or 'cuda'. - - Returns: - - img_mask (np.array): The generated mask. - """ - # Get bounding boxes and class labels from YOLO - bboxes_labels = result.boxes.cls - bboxes_xyxy = result.boxes.xyxy - input_boxes = [[bbox.cpu().numpy().tolist()[:4] for bbox in bboxes_xyxy]] - - if len(bboxes_xyxy) == 0: - logging.warning("No bounding boxes detected by YOLO.") - return None - - # Prepare inputs for SAM using the processor - inputs = processor(images=image, input_boxes=input_boxes, return_tensors="pt").to(device) - - try: - with torch.no_grad(): - outputs = model(**inputs) - - # Resize masks to original image size - masks = processor.post_process_masks( - outputs.pred_masks.cpu(), - inputs["original_sizes"].cpu(), - inputs["reshaped_input_sizes"].cpu() - )[0] - - # Ensure masks are 2D, not 3D - if masks.ndim == 3: - masks = masks[0] # Extract the first mask if it's 3D - - # Initialize 2D mask for image - img_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) - - # Process masks - for mask_idx, bbox_label in enumerate(bboxes_labels): - pred_label = int(bbox_label.item()) - - mask = masks[mask_idx] # this should be 2D - - # Ensure mask is a 2D array - if mask.ndim == 3: # if mask is 3D, convert to 2D - mask = mask[0] - - # Convert tensor to numpy array and apply binary threshold - mask = mask.cpu().numpy() - mask_binary = (mask > 0.5).astype(np.uint8) - mask_labeled = mask_binary * pred_label - - img_mask[mask_labeled > 0] = mask_labeled[mask_labeled > 0] - - except Exception as e: - logging.error(f"Error during SAM mask creation: {e}") - return None - - return img_mask - -def overlay_mask_on_image(image, mask): - """ - Overlay the segmentation mask on the image for visualization. - - Parameters: - - image (np.array): Original image in RGB format. - - mask (np.array): Segmentation mask. - - Returns: - - overlay (np.array): Image with mask overlay. - """ - # Apply color map to mask - color_mask = cv2.applyColorMap((mask * 25).astype(np.uint8), cv2.COLORMAP_JET) - color_mask = cv2.cvtColor(color_mask, cv2.COLOR_BGR2RGB) # Convert to RGB - # Overlay - overlay = cv2.addWeighted(image, 0.7, color_mask, 0.3, 0) - return overlay - -def ensure_class_directory(segmenter, class_name): - """ - Ensures that the class-specific directory exists before saving a cropped image. - - Parameters: - - segmenter (Segmenter): The Segmenter instance. - - class_name (str): Name of the class. - """ - class_crop_dir = os.path.join(segmenter.crops_dir, class_name) - if not os.path.exists(class_crop_dir): - os.makedirs(class_crop_dir, exist_ok=True) - -# def cv2_to_pil(cv2_image): -# """ -# Convert an OpenCV image (BGR format) to a PIL image (RGB format). -# """ -# from PIL import Image -# return Image.fromarray(cv2.cvtColor(cv2_image, cv2.COLOR_BGR2RGB)) - -# def pil_to_cv2(pil_image): -# """ -# Convert a PIL image (RGB format) to an OpenCV image (BGR format). -# """ -# return cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR) diff --git a/src/wing_segmenter/metadata_manager.py b/src/wing_segmenter/metadata_manager.py index 5728d45..beb70fe 100644 --- a/src/wing_segmenter/metadata_manager.py +++ b/src/wing_segmenter/metadata_manager.py @@ -2,6 +2,7 @@ import hashlib import json import os +from wing_segmenter.constants import CLASSES NAMESPACE_UUID = uuid.UUID('00000000-0000-0000-0000-000000000000') @@ -61,19 +62,22 @@ def get_run_hardware_info(device, num_workers): hardware_info['cuda_memory_total'] = torch.cuda.get_device_properties(0).total_memory return hardware_info -def update_segmentation_info(segmentation_info, image_path, mask): +def update_segmentation_info(segmentation_info, image_path, classes_present): """ - Updates the segmentation information list with details about the processed image. + Updates the segmentation information list with binary flags for each class. Parameters: - segmentation_info (list): The list to update. - image_path (str): Path to the processed image. - - mask (np.array): The segmentation mask. + - classes_present (list): List of class names detected in the image. """ - segmentation_info.append({ - 'image_path': image_path, - 'mask': mask.tolist() - }) + entry = {'image': image_path} + + for class_id, class_name in CLASSES.items(): + # Assign 1 if the class is present, else 0 + entry[class_name] = 1 if class_name in classes_present else 0 + + segmentation_info.append(entry) def save_segmentation_info(segmentation_info, mask_csv): """ diff --git a/src/wing_segmenter/path_manager.py b/src/wing_segmenter/path_manager.py index d4d1575..fd6ea19 100644 --- a/src/wing_segmenter/path_manager.py +++ b/src/wing_segmenter/path_manager.py @@ -1,5 +1,5 @@ import os -from wing_segmenter.constants import CLASSES +from wing_segmenter.constants import CLASSES def setup_paths(segmenter): """ @@ -10,49 +10,46 @@ def setup_paths(segmenter): """ # Determine output directory if segmenter.custom_output_dir: - # User has specified a fully custom output directory segmenter.output_dir = os.path.abspath(segmenter.custom_output_dir) elif segmenter.output_base_dir: - # Create output directory based on base directory and run UUID dataset_name = os.path.basename(segmenter.dataset_path.rstrip('/\\')) output_dir_name = f"{dataset_name}_{segmenter.run_uuid}" segmenter.output_dir = os.path.join(segmenter.output_base_dir, output_dir_name) else: - # Default: Create output directory in the parent of the dataset path dataset_name = os.path.basename(segmenter.dataset_path.rstrip('/\\')) output_dir_name = f"{dataset_name}_{segmenter.run_uuid}" segmenter.output_dir = os.path.join(os.path.dirname(segmenter.dataset_path), output_dir_name) - # Create the root output directory os.makedirs(segmenter.output_dir, exist_ok=True) # Metadata file path segmenter.metadata_path = os.path.join(segmenter.output_dir, 'metadata.json') - # Define subdirectories - segmenter.resized_dir = os.path.join(segmenter.output_dir, 'resized') + # Define subdirectories that are always present segmenter.masks_dir = os.path.join(segmenter.output_dir, 'masks') - segmenter.viz_dir = os.path.join(segmenter.output_dir, 'seg_viz') - segmenter.crops_dir = os.path.join(segmenter.output_dir, 'crops') segmenter.logs_dir = os.path.join(segmenter.output_dir, 'logs') - - # Create subdirectories - os.makedirs(segmenter.resized_dir, exist_ok=True) os.makedirs(segmenter.masks_dir, exist_ok=True) - os.makedirs(segmenter.viz_dir, exist_ok=True) - os.makedirs(segmenter.crops_dir, exist_ok=True) os.makedirs(segmenter.logs_dir, exist_ok=True) - # Create directories for background removal if needed - if segmenter.remove_background and segmenter.save_intermediates: + # Conditionally create directories based on flags/options + if segmenter.size: + segmenter.resized_dir = os.path.join(segmenter.output_dir, 'resized') + os.makedirs(segmenter.resized_dir, exist_ok=True) + + if segmenter.visualize_segmentation: + segmenter.viz_dir = os.path.join(segmenter.output_dir, 'seg_viz') + os.makedirs(segmenter.viz_dir, exist_ok=True) + + if segmenter.crop_by_class: + segmenter.crops_dir = os.path.join(segmenter.output_dir, 'crops') + os.makedirs(segmenter.crops_dir, exist_ok=True) + + if segmenter.remove_background: segmenter.crops_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'crops_bkgd_removed') - segmenter.full_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'full_bkgd_removed') os.makedirs(segmenter.crops_bkgd_removed_dir, exist_ok=True) - os.makedirs(segmenter.full_bkgd_removed_dir, exist_ok=True) - # Additional directories based on resizing options - if segmenter.save_intermediates and segmenter.size: - os.makedirs(segmenter.resized_dir, exist_ok=True) + if segmenter.remove_bg_full: + segmenter.full_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'full_bkgd_removed') + os.makedirs(segmenter.full_bkgd_removed_dir, exist_ok=True) - # CSV file for segmentation info segmenter.mask_csv = os.path.join(segmenter.output_dir, 'segmentation.csv') diff --git a/src/wing_segmenter/segmenter.py b/src/wing_segmenter/segmenter.py index 0a2d5b5..e3faa9b 100644 --- a/src/wing_segmenter/segmenter.py +++ b/src/wing_segmenter/segmenter.py @@ -6,16 +6,11 @@ from tqdm import tqdm from wing_segmenter.model_manager import load_models -from wing_segmenter.resizer import resize_image -from wing_segmenter.path_manager import setup_paths from wing_segmenter.image_processor import process_image -from wing_segmenter.metadata_manager import ( - generate_uuid, - get_dataset_hash, - get_run_hardware_info, -) -from wing_segmenter.exceptions import ModelLoadError, ImageProcessingError +from wing_segmenter.path_manager import setup_paths +from wing_segmenter.metadata_manager import generate_uuid, get_dataset_hash, get_run_hardware_info from wing_segmenter import __version__ as package_version +from wing_segmenter.exceptions import ImageProcessingError class Segmenter: def __init__(self, config): @@ -27,54 +22,35 @@ def __init__(self, config): self.padding_color = config.padding_color self.interpolation = config.interpolation self.num_workers = config.num_workers - self.save_intermediates = config.save_intermediates self.visualize_segmentation = config.visualize_segmentation self.force = config.force self.crop_by_class = config.crop_by_class self.remove_background = config.remove_background self.remove_bg_full = config.remove_bg_full - self.background_color = config.background_color if (self.remove_background or self.remove_bg_full) else None + if self.remove_background or self.remove_bg_full: + self.background_color = config.background_color if config.background_color else 'black' + else: + self.background_color = None self.segmentation_info = [] self.output_base_dir = os.path.abspath(config.outputs_base_dir) if config.outputs_base_dir else None self.custom_output_dir = os.path.abspath(config.custom_output_dir) if config.custom_output_dir else None - # Ensure that only one of outputs_base_dir or custom_output_dir is used - if self.output_base_dir and self.custom_output_dir: - raise ValueError("Cannot specify both --outputs-base-dir and --custom-output-dir.") - - # Prepare parameters for hashing - self.parameters_for_hash = { + # Generate UUID based on parameters + self.run_uuid = generate_uuid({ 'dataset_hash': get_dataset_hash(self.dataset_path), 'sam_model_name': self.config.sam_model, 'yolo_model_name': self.config.yolo_model, 'resize_mode': self.resize_mode, - 'size': self.size if self.size else None, - 'width': self.size[0] if self.size and len(self.size) == 1 else (self.size[0] if self.size else None), - 'height': self.size[1] if self.size and len(self.size) == 2 else (self.size[0] if self.size and len(self.size) == 1 else None), - 'padding_color': self.padding_color if self.resize_mode == 'pad' else None, - 'interpolation': self.interpolation if self.size else None, - 'save_intermediates': self.save_intermediates, - 'visualize_segmentation': self.visualize_segmentation, - 'crop_by_class': self.crop_by_class, - 'remove_background': self.remove_background, - 'remove_bg_full': self.remove_bg_full, - 'background_color': self.background_color - } - - # Generate UUID based on parameters - self.run_uuid = generate_uuid(self.parameters_for_hash) + 'size': self.size, + }) - # Setup output paths setup_paths(self) - - # Load models self.yolo_model, self.sam_model, self.sam_processor = load_models(self.config, self.device) def process_dataset(self): start_time = time.time() errors_occurred = False - # Prepare image paths image_paths = [] valid_extensions = ('.jpg', '.jpeg', '.png', '.tif', '.tiff', '.bmp') for root, _, files in os.walk(self.dataset_path): @@ -84,8 +60,7 @@ def process_dataset(self): if not image_paths: logging.error("No images found in the dataset.") - errors_occurred = True - return errors_occurred + return True # Check for existing run unless force is specified if os.path.exists(self.metadata_path) and not self.force: @@ -93,27 +68,25 @@ def process_dataset(self): existing_metadata = json.load(f) if existing_metadata.get('run_status', {}).get('completed'): logging.info(f"Processing already completed for dataset '{self.dataset_path}' with the specified parameters.") - logging.info(f"Outputs are available at '{self.output_dir}'.") - return errors_occurred + return False # Initialize metadata self.metadata = { 'dataset': { - 'dataset_hash': self.parameters_for_hash['dataset_hash'], + 'dataset_hash': get_dataset_hash(self.dataset_path), 'num_images': len(image_paths) }, 'run_parameters': { 'sam_model_name': self.config.sam_model, 'yolo_model_name': self.config.yolo_model, 'resize_mode': self.resize_mode, - 'size': self.size if self.size else None, + 'size': self.size, 'padding_color': self.padding_color if self.resize_mode == 'pad' else None, 'interpolation': self.interpolation if self.size else None, - 'save_intermediates': self.save_intermediates, 'visualize_segmentation': self.visualize_segmentation, 'crop_by_class': self.crop_by_class, 'remove_background': self.remove_background, - 'remove_bg_full': self.remove_bg_full, + 'remove_bg_full': self.remove_bg_full, 'background_color': self.background_color }, 'run_hardware': get_run_hardware_info(self.device, self.num_workers), @@ -140,7 +113,7 @@ def process_dataset(self): errors_occurred = True self.metadata['run_status']['errors'] = "One or more images failed during processing." finally: - pbar.update(1) # update progress for each completed task + pbar.update(1) except Exception as e: logging.error(f"Processing failed: {e}") @@ -150,24 +123,21 @@ def process_dataset(self): json.dump(self.metadata, f, indent=4) raise e - # Save segmentation info - if self.segmentation_info: - from wing_segmenter.metadata_manager import save_segmentation_info - save_segmentation_info(self.segmentation_info, self.mask_csv) - - # Update metadata on completion processing_time = time.time() - start_time - self.metadata['run_status']['completed'] = not errors_occurred self.metadata['run_status']['processing_time_seconds'] = processing_time - # Save updated metadata + # Save segmentation info and CSV + if self.segmentation_info: + from wing_segmenter.metadata_manager import save_segmentation_info + save_segmentation_info(self.segmentation_info, self.mask_csv) + with open(self.metadata_path, 'w') as f: json.dump(self.metadata, f, indent=4) if errors_occurred: - logging.warning(f"Processing completed with errors. Outputs are available at: \n\t{self.output_dir}") + logging.warning(f"Processing completed with errors. Outputs are available at: {self.output_dir}") else: - logging.info(f"Processing completed successfully. Outputs are available at: \n\t{self.output_dir}") + logging.info(f"Processing completed successfully. Outputs are available at: {self.output_dir}") return errors_occurred From 676477aeffd1b5fa4b9ffa83f9944cffe6399bda Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 7 Oct 2024 11:19:39 -0400 Subject: [PATCH 11/18] Provide output logging and clean up run scanner --- src/wing_segmenter/image_processor.py | 8 ++++---- src/wing_segmenter/run_scanner.py | 12 ++++-------- src/wing_segmenter/segmenter.py | 6 ++++-- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/wing_segmenter/image_processor.py b/src/wing_segmenter/image_processor.py index 1ae19e8..d931b80 100644 --- a/src/wing_segmenter/image_processor.py +++ b/src/wing_segmenter/image_processor.py @@ -126,7 +126,7 @@ def process_image(segmenter, image_path): full_image_bg_removed_save_path = os.path.splitext(os.path.join(segmenter.full_bkgd_removed_dir, relative_path))[0] + '_bg_removed.png' os.makedirs(os.path.dirname(full_image_bg_removed_save_path), exist_ok=True) cv2.imwrite(full_image_bg_removed_save_path, full_image_bg_removed) - logging.info(f"Full image with background removed saved to '{full_image_bg_removed_save_path}'.") + # logging.info(f"Full image with background removed saved to '{full_image_bg_removed_save_path}'.") # uncomment for debugging else: logging.warning(f"No foreground detected for image: {image_path}. Full background removal skipped.") @@ -244,7 +244,7 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): contours, _ = cv2.findContours(class_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if not contours: - logging.info(f"No instances found for class '{class_name}' in image '{relative_path}'.") + # logging.info(f"No instances found for class '{class_name}' in image '{relative_path}'.") # uncomment for debugging continue # No mask for this class for c in contours: @@ -268,7 +268,7 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): # Save cropped image cv2.imwrite(crop_save_path, cropped_image) - logging.info(f"Cropped '{class_name}' saved to '{crop_save_path}'.") + # logging.info(f"Cropped '{class_name}' saved to '{crop_save_path}'.") # uncomment for debugging # Background removal from cropped image if specified if segmenter.remove_background: @@ -280,7 +280,7 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): # Save the background-removed cropped image cv2.imwrite(crop_bg_removed_save_path, cropped_image_bg_removed) - logging.info(f"Cropped '{class_name}' with background removed saved to '{crop_bg_removed_save_path}'.") + # logging.info(f"Cropped '{class_name}' with background removed saved to '{crop_bg_removed_save_path}'.") # uncomment for debugging def remove_background(image, mask, bg_color='black'): """ diff --git a/src/wing_segmenter/run_scanner.py b/src/wing_segmenter/run_scanner.py index 8026b98..1c63311 100644 --- a/src/wing_segmenter/run_scanner.py +++ b/src/wing_segmenter/run_scanner.py @@ -48,15 +48,14 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): table.add_column("Completed", justify="center", no_wrap=True, width=9) table.add_column("Num Images", justify="right", no_wrap=False, width=10) table.add_column("Resize Dims", justify="center", no_wrap=False, width=11) + table.add_column("Resize Mode", justify="center", no_wrap=False, width=7) table.add_column("Interp", justify="center", no_wrap=True, min_width=13) - table.add_column("Save Intermed", justify="center", no_wrap=False, width=8) - table.add_column("Visualize Seg", justify="center", no_wrap=False, width=9) table.add_column("Errors", justify="center", no_wrap=True, min_width=6) for idx, run_dir in enumerate(run_dirs, 1): metadata_path = os.path.join(run_dir, 'metadata.json') if not os.path.exists(metadata_path): - table.add_row(str(idx), f"Missing metadata.json", "", "", "", "", "", "", "") + table.add_row(str(idx), f"Missing metadata.json", "", "", "", "", "", "") continue with open(metadata_path, 'r') as f: @@ -67,6 +66,7 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): num_images = str(metadata['dataset'].get('num_images', 'Unknown')) resize_dims = metadata['run_parameters'].get('size', 'None (original)') + resize_mode = str(metadata['run_parameters'].get('resize_mode', 'None')) # Handle 'size' being a list with 1 or 2 elements or other types if isinstance(resize_dims, list): @@ -81,9 +81,6 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): interpolation = str(metadata['run_parameters'].get('interpolation', 'None')) - save_intermediates = 'Yes' if metadata['run_parameters'].get('save_intermediates', False) else 'No' - visualize_segmentation = 'Yes' if metadata['run_parameters'].get('visualize_segmentation', False) else 'No' - # Extract any errors errors = str(metadata['run_status'].get('errors', 'None')) @@ -97,9 +94,8 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): completed, num_images, resize_dims_str, + resize_mode, interpolation, - save_intermediates, - visualize_segmentation, errors ) diff --git a/src/wing_segmenter/segmenter.py b/src/wing_segmenter/segmenter.py index e3faa9b..411c388 100644 --- a/src/wing_segmenter/segmenter.py +++ b/src/wing_segmenter/segmenter.py @@ -12,6 +12,8 @@ from wing_segmenter import __version__ as package_version from wing_segmenter.exceptions import ImageProcessingError +logging.basicConfig(level=logging.INFO) + class Segmenter: def __init__(self, config): self.config = config @@ -136,8 +138,8 @@ def process_dataset(self): json.dump(self.metadata, f, indent=4) if errors_occurred: - logging.warning(f"Processing completed with errors. Outputs are available at: {self.output_dir}") + logging.warning(f"Processing completed with errors. Outputs are available at: \n\t {self.output_dir}") else: - logging.info(f"Processing completed successfully. Outputs are available at: {self.output_dir}") + logging.info(f"Processing completed successfully. Outputs are available at: \n\t {self.output_dir}") return errors_occurred From 344c270ff51832a477334a9c9190822ec8c3a20e Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 7 Oct 2024 11:29:36 -0400 Subject: [PATCH 12/18] Only use serial processing For now, no num-workers option --- src/wing_segmenter/cli.py | 2 -- src/wing_segmenter/metadata_manager.py | 4 +--- src/wing_segmenter/segmenter.py | 23 +++++++---------------- 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index b6035c3..5992a6f 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -50,8 +50,6 @@ def main(): help='SAM model to use (e.g., facebook/sam-vit-base)') segment_parser.add_argument('--yolo-model', default='imageomics/butterfly_segmentation_yolo_v8:yolov8m_shear_10.0_scale_0.5_translate_0.1_fliplr_0.0_best.pt', help='YOLO model to use (local path or Hugging Face repo).') - segment_parser.add_argument('--num-workers', type=int, default=1, - help='Number of worker threads to use for processing.') segment_parser.add_argument('--device', choices=['cpu', 'cuda'], default='cpu', help='Device to use for processing.') segment_parser.add_argument('--visualize-segmentation', action='store_true', diff --git a/src/wing_segmenter/metadata_manager.py b/src/wing_segmenter/metadata_manager.py index beb70fe..20d1e7c 100644 --- a/src/wing_segmenter/metadata_manager.py +++ b/src/wing_segmenter/metadata_manager.py @@ -41,20 +41,18 @@ def get_dataset_hash(dataset_path): continue return hash_md5.hexdigest() -def get_run_hardware_info(device, num_workers): +def get_run_hardware_info(device): """ Retrieves information about the hardware used for the run. Parameters: - device (str): 'cpu' or 'cuda'. - - num_workers (int): Number of worker threads. Returns: - dict: Hardware information. """ hardware_info = { 'device': device, - 'num_workers': num_workers } if device == 'cuda': import torch diff --git a/src/wing_segmenter/segmenter.py b/src/wing_segmenter/segmenter.py index 411c388..d54a698 100644 --- a/src/wing_segmenter/segmenter.py +++ b/src/wing_segmenter/segmenter.py @@ -2,7 +2,6 @@ import json import logging import time -from concurrent.futures import ThreadPoolExecutor, as_completed from tqdm import tqdm from wing_segmenter.model_manager import load_models @@ -23,7 +22,6 @@ def __init__(self, config): self.resize_mode = config.resize_mode self.padding_color = config.padding_color self.interpolation = config.interpolation - self.num_workers = config.num_workers self.visualize_segmentation = config.visualize_segmentation self.force = config.force self.crop_by_class = config.crop_by_class @@ -91,7 +89,7 @@ def process_dataset(self): 'remove_bg_full': self.remove_bg_full, 'background_color': self.background_color }, - 'run_hardware': get_run_hardware_info(self.device, self.num_workers), + 'run_hardware': get_run_hardware_info(self.device), 'run_status': { 'completed': False, 'processing_time_seconds': None, @@ -103,19 +101,12 @@ def process_dataset(self): json.dump(self.metadata, f, indent=4) try: - with ThreadPoolExecutor(max_workers=self.num_workers) as executor: - futures = {executor.submit(process_image, self, image_path): image_path for image_path in image_paths} - - with tqdm(total=len(futures), desc='Processing Images', unit='image') as pbar: - for future in as_completed(futures): - image_path = futures[future] - try: - future.result() - except ImageProcessingError: - errors_occurred = True - self.metadata['run_status']['errors'] = "One or more images failed during processing." - finally: - pbar.update(1) + for image_path in tqdm(image_paths, desc='Processing Images', unit='image'): + try: + process_image(self, image_path) + except ImageProcessingError: + errors_occurred = True + self.metadata['run_status']['errors'] = "One or more images failed during processing." except Exception as e: logging.error(f"Processing failed: {e}") From d5d67732586f8caac93de3b19ccca6a7eb98d8b6 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 7 Oct 2024 12:02:44 -0400 Subject: [PATCH 13/18] Rename background removal options to be more intuitive --- src/wing_segmenter/cli.py | 35 ++- src/wing_segmenter/image_processor.py | 417 +++++++++++++++++-------- src/wing_segmenter/metadata_manager.py | 118 ++++++- src/wing_segmenter/path_manager.py | 16 +- src/wing_segmenter/run_scanner.py | 14 +- src/wing_segmenter/segmenter.py | 37 ++- 6 files changed, 473 insertions(+), 164 deletions(-) diff --git a/src/wing_segmenter/cli.py b/src/wing_segmenter/cli.py index 5992a6f..5ea5eec 100644 --- a/src/wing_segmenter/cli.py +++ b/src/wing_segmenter/cli.py @@ -30,7 +30,7 @@ def main(): resize_group.add_argument('--resize-mode', choices=['distort', 'pad'], default=None, help='Resizing mode. "distort" resizes without preserving aspect ratio, "pad" preserves aspect ratio and adds padding if necessary.') - # Padding options + # Padding options (to preserve aspect ratio) resize_group.add_argument('--padding-color', choices=['black', 'white'], default=None, help='Padding color to use when --resize-mode is "pad".') @@ -39,6 +39,11 @@ def main(): default='area', help='Interpolation method to use when resizing. For upscaling, "lanczos4" is recommended.') + # Bounding box padding option + bbox_group = segment_parser.add_argument_group('Bounding Box Options') + bbox_group.add_argument('--bbox-padding', type=int, default=None, + help='Padding to add to bounding boxes in pixels. Defaults to no padding.') + # Output options within mutually exclusive group output_group = segment_parser.add_mutually_exclusive_group() @@ -54,19 +59,19 @@ def main(): help='Device to use for processing.') segment_parser.add_argument('--visualize-segmentation', action='store_true', help='Generate and save segmentation visualizations.') - segment_parser.add_argument('--force', action='store_true', - help='Force reprocessing even if outputs already exist.') segment_parser.add_argument('--crop-by-class', action='store_true', help='Enable cropping of segmented classes into crops/ directory.') + segment_parser.add_argument('--force', action='store_true', + help='Force reprocessing even if outputs already exist.') # Background removal options bg_group = segment_parser.add_argument_group('Background Removal Options') - bg_group.add_argument('--remove-background', action='store_true', + bg_group.add_argument('--remove-crops-background', action='store_true', help='Remove background from cropped images.') - bg_group.add_argument('--background-color', choices=['white', 'black'], default=None, - help='Background color to use when removing background. Applicable only if --remove-background is set.') - bg_group.add_argument('--remove-bg-full', action='store_true', + bg_group.add_argument('--remove-full-background', action='store_true', help='Remove background from the entire (resized or original) image.') + bg_group.add_argument('--background-color', choices=['white', 'black'], default=None, + help='Background color to use when removing background.') # Subcommand: scan-runs scan_parser = subparsers.add_parser('scan-runs', help='List existing processing runs for a dataset.') @@ -76,7 +81,7 @@ def main(): # Parse arguments args = parser.parse_args() - # Validation for resizing options + # Command input validations if args.command == 'segment': # If size is provided, enforce resizing options if args.size: @@ -91,14 +96,22 @@ def main(): if args.padding_color is not None: parser.error('Resizing options (--padding-color) require --size to be specified.') - # Only --remove-background requires --crop-by-class - if args.remove_background and not args.crop_by_class: - parser.error('--remove-background requires --crop-by-class to be set.') + # --remove-crops-background requires --crop-by-class + if args.remove_crops_background and not args.crop_by_class: + parser.error('--remove-crops-background requires --crop-by-class to be set.') + + # Need to set croped or full background removal to set background color + if args.background_color and not (args.remove_crops_background or args.remove_full_background): + parser.error('--background-color can only be set when background removal is enabled.') # Ensure that if --custom-output-dir is set, --outputs-base-dir is not used if args.custom_output_dir and args.outputs_base_dir: parser.error('Cannot specify both --outputs-base-dir and --custom-output-dir. Choose one.') + # Validate bbox-padding + if args.bbox_padding is not None and args.bbox_padding < 0: + parser.error('--bbox-padding must be a non-negative integer.') + # Execute the subcommand if args.command == 'segment': from wing_segmenter.segmenter import Segmenter diff --git a/src/wing_segmenter/image_processor.py b/src/wing_segmenter/image_processor.py index d931b80..8c0ea6c 100644 --- a/src/wing_segmenter/image_processor.py +++ b/src/wing_segmenter/image_processor.py @@ -6,18 +6,44 @@ from wing_segmenter.constants import CLASSES from wing_segmenter.exceptions import ImageProcessingError from wing_segmenter.resizer import resize_image +from wing_segmenter.metadata_manager import ( + update_segmentation_info, + add_coco_annotation, + add_coco_image_info +) -from wing_segmenter.metadata_manager import update_segmentation_info +import matplotlib.pyplot as plt +from matplotlib import cm + +def get_class_color_map(): + """ + Generates a mapping from class names to unique colors using the Viridis colormap. + + Returns: + - class_color_map (dict): Mapping from class names to BGR color tuples. + """ + num_classes = len(CLASSES) + viridis = cm.get_cmap('viridis', num_classes) + class_color_map = {} + for class_id, class_name in CLASSES.items(): + if class_id == 0: + # Assign black color for background (optional) + class_color_map[class_name] = (0, 0, 0) + else: + # Get RGBA color from Viridis and convert to BGR for OpenCV + rgba_color = viridis(class_id / num_classes) + rgb_color = tuple(int(255 * c) for c in rgba_color[:3]) + bgr_color = (rgb_color[2], rgb_color[1], rgb_color[0]) + class_color_map[class_name] = bgr_color + return class_color_map def process_image(segmenter, image_path): """ Processes a single image: loads, resizes, predicts, masks, saves results, and crops by class. - - Parameters: - - segmenter (Segmenter): The Segmenter instance. - - image_path (str): Path to the image file. """ try: + logging.debug(f"Processing image: {image_path}") + relative_path = os.path.relpath(image_path, segmenter.dataset_path) relative_dir = os.path.dirname(relative_path) @@ -26,6 +52,8 @@ def process_image(segmenter, image_path): logging.warning(f"Failed to read image: {image_path}") return + logging.debug(f"Image dimensions: {image.shape}") + # Determine padding color if segmenter.resize_mode == 'pad': padding_color_to_use = segmenter.padding_color if segmenter.padding_color is not None else 'black' @@ -34,6 +62,7 @@ def process_image(segmenter, image_path): # Resize the image if requested if segmenter.size: + logging.debug(f"Resizing image to size: {segmenter.size} with mode: {segmenter.resize_mode}") working_image = resize_image( image, segmenter.size, @@ -41,16 +70,20 @@ def process_image(segmenter, image_path): padding_color_to_use, segmenter.interpolation ) + logging.debug(f"Resized image dimensions: {working_image.shape}") # Save resized image save_path = os.path.join(segmenter.resized_dir, relative_path) os.makedirs(os.path.dirname(save_path), exist_ok=True) cv2.imwrite(save_path, working_image) + logging.debug(f"Resized image saved to '{save_path}'.") else: working_image = image # no resizing working_image_rgb = cv2.cvtColor(working_image, cv2.COLOR_BGR2RGB) + logging.debug("Converted image to RGB for YOLO and SAM processing.") yolo_results = segmenter.yolo_model(working_image_rgb) + logging.debug(f"YOLO detections: {len(yolo_results)}") # Initialize full image foreground mask foreground_mask = np.zeros((working_image.shape[0], working_image.shape[1]), dtype=np.uint8) @@ -58,75 +91,170 @@ def process_image(segmenter, image_path): # To collect classes detected in this image classes_detected = set() - # Process each detection + # Initialize COCO annotations for this image + image_id = add_coco_image_info(segmenter.coco_annotations_path, relative_path, working_image.shape) + + # Initialize visualization image if enabled + if segmenter.visualize_segmentation: + # Start with the original image + viz_image = working_image.copy() + + # Step 1: Aggregate detections by class and select the highest confidence detection per class + best_detections = {} for result in yolo_results: - if len(result.boxes) == 0: - logging.warning(f"No detections for image: {image_path}") - continue + for box, cls, conf in zip(result.boxes.xyxy, result.boxes.cls, result.boxes.conf): + class_id = int(cls.item()) + class_name = CLASSES.get(class_id, 'unknown') + + if class_id == 0: + logging.debug("Detected class is background. Skipping.") + continue + + confidence = conf.item() + + # If this class hasn't been seen or this detection has higher confidence, update best_detections + if class_id not in best_detections or confidence > best_detections[class_id]['confidence']: + best_detections[class_id] = { + 'box': box, + 'cls': cls, + 'confidence': confidence + } + logging.debug(f"Best detections per class: {best_detections}") + + # Step 2: Process only the best detections + for class_id, detection in best_detections.items(): + box = detection['box'] + cls = detection['cls'] + confidence = detection['confidence'] + class_name = CLASSES.get(class_id, 'unknown') + + bbox = box.cpu().numpy().tolist() # [x1, y1, x2, y2] + completed = 'Yes' if confidence > 0.5 else 'No' # Seems to be a good threshold in testing + + logging.debug(f"Processing class '{class_name}' with confidence {confidence} and bounding box {bbox}") + + # Generate mask using SAM for this detection mask = get_mask_SAM( result, working_image_rgb, segmenter.sam_processor, segmenter.sam_model, - segmenter.device + segmenter.device, + box ) if mask is not None: - # Save mask - mask_save_path = os.path.join(segmenter.masks_dir, relative_path) - mask_save_path = os.path.splitext(mask_save_path)[0] + '_mask.png' + logging.debug(f"Mask generated for class {class_name} (ID: {class_id})") + logging.debug(f"Mask dimensions: {mask.shape}") + + # Save mask (preserving directory structure) + mask_filename = f"{os.path.splitext(os.path.basename(relative_path))[0]}_cls{class_id}.png" + mask_save_path = os.path.join(segmenter.masks_dir, relative_dir, mask_filename) os.makedirs(os.path.dirname(mask_save_path), exist_ok=True) cv2.imwrite(mask_save_path, mask) + logging.debug(f"Mask saved to '{mask_save_path}'.") - # Save visualization if enabled + # Overlay mask outline and bounding box on visualization image if enabled if segmenter.visualize_segmentation: - viz = overlay_mask_on_image(working_image_rgb, mask) - viz_save_path = os.path.join(segmenter.viz_dir, relative_path) - viz_save_path = os.path.splitext(viz_save_path)[0] + '_viz.png' - os.makedirs(os.path.dirname(viz_save_path), exist_ok=True) - cv2.imwrite(viz_save_path, cv2.cvtColor(viz, cv2.COLOR_RGB2BGR)) - - # Extract classes present in the mask - classes_in_mask = np.unique(mask) - for class_id in classes_in_mask: - if class_id in CLASSES and class_id != 0: # Exclude background - classes_detected.add(CLASSES[class_id]) - if 0 in classes_in_mask: - classes_detected.add('background') - - # Crop by class with optional background removal - if segmenter.crop_by_class: - crop_and_save_by_class(segmenter, working_image, mask, relative_path) + # Get the color for this class + color = segmenter.class_color_map.get(class_name, (0, 255, 0)) # Default to green + + # Find contours of the mask + mask_binary = (mask > 0).astype(np.uint8) + contours, _ = cv2.findContours(mask_binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + # Draw contours on the visualization image + cv2.drawContours(viz_image, contours, -1, color, 2) # -1 means draw all contours, 2 is line thickness + + # Retrieve image dimensions + image_height, image_width = working_image.shape[:2] + + # Apply padding requested + padding = segmenter.bbox_padding + x1, y1, x2, y2 = map(int, bbox) + padded_x1 = max(x1 - padding, 0) + padded_y1 = max(y1 - padding, 0) + padded_x2 = min(x2 + padding, image_width) + padded_y2 = min(y2 + padding, image_height) + + # Draw padded bounding box + cv2.rectangle(viz_image, (padded_x1, padded_y1), (padded_x2, padded_y2), color=color, thickness=2) + + # Put class label with confidence + label = f"{class_name} {confidence:.2f}" + (text_width, text_height), baseline = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1) + # Ensure the label box doesn't go above the image + y_label = max(padded_y1 - text_height - baseline, 0) + cv2.rectangle(viz_image, (padded_x1, y_label), (padded_x1 + text_width, y_label + text_height + baseline), color, -1) + cv2.putText(viz_image, label, (padded_x1, y_label + text_height), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1) + + + # Update classes detected + if class_name != 'background': + classes_detected.add(class_name) + + if segmenter.crop_by_class: + logging.debug(f"Initiating crop_and_save_by_class for class '{class_name}'.") + crop_and_save_by_class(segmenter, working_image, mask, relative_path, class_name, class_id) # Aggregate foreground masks (excluding background class 0) - detected_classes = result.boxes.cls.cpu().numpy().astype(int) - unique_classes = np.unique(detected_classes) - unique_classes = unique_classes[unique_classes != 0] # exclude background class - - for class_id in unique_classes: - class_mask = (mask == class_id).astype(np.uint8) * 255 - foreground_mask = cv2.bitwise_or(foreground_mask, class_mask) + class_mask = (mask > 0).astype(np.uint8) * 255 + + # Log shapes before bitwise_or + logging.debug(f"Foreground mask shape: {foreground_mask.shape}") + logging.debug(f"Class mask shape: {class_mask.shape}") + + # Ensure that class_mask is 2D + if class_mask.ndim > 2: + # Reduce to 2D by taking the maximum across channels + class_mask = np.max(class_mask, axis=0) + logging.debug("Reduced class_mask to 2D.") + + logging.debug(f"Class mask reduced shape: {class_mask.shape}") + + # Perform bitwise_or + foreground_mask = cv2.bitwise_or(foreground_mask, class_mask) + logging.debug("Updated foreground_mask with the new class mask.") + + # Add COCO annotation + add_coco_annotation( + segmenter.coco_annotations_path, + image_id, + class_id, + bbox, + mask + ) else: - logging.warning(f"No mask generated for image: {image_path}") + logging.warning(f"No mask generated for class '{class_name}' in image: {image_path}") # Update segmentation info with binary flags if classes_detected: update_segmentation_info(segmenter.segmentation_info, image_path, list(classes_detected)) + logging.debug(f"Classes detected in image '{image_path}': {list(classes_detected)}") else: - # If no classes detected, still log the image with all classes as 0 update_segmentation_info(segmenter.segmentation_info, image_path, []) + logging.debug(f"No classes detected in image '{image_path}'.") + + # Save the visualization image (preserving directory structure) + if segmenter.visualize_segmentation: + viz_filename = f"{os.path.splitext(os.path.basename(relative_path))[0]}_viz.png" + viz_save_path = os.path.join(segmenter.viz_dir, relative_dir, viz_filename) + os.makedirs(os.path.dirname(viz_save_path), exist_ok=True) + cv2.imwrite(viz_save_path, viz_image) + logging.debug(f"Segmentation visualization saved to '{viz_save_path}'.") # Remove background from full image if specified - if segmenter.remove_bg_full: + if segmenter.remove_full_background: if np.any(foreground_mask): + logging.debug(f"Removing background from full image using foreground mask for image '{image_path}'.") full_image_bg_removed = remove_background(working_image, foreground_mask, segmenter.background_color) # Prepare save path for full background removal - full_image_bg_removed_save_path = os.path.splitext(os.path.join(segmenter.full_bkgd_removed_dir, relative_path))[0] + '_bg_removed.png' + full_image_bg_removed_save_path = os.path.join(segmenter.full_bkgd_removed_dir, relative_path) os.makedirs(os.path.dirname(full_image_bg_removed_save_path), exist_ok=True) cv2.imwrite(full_image_bg_removed_save_path, full_image_bg_removed) - # logging.info(f"Full image with background removed saved to '{full_image_bg_removed_save_path}'.") # uncomment for debugging + logging.debug(f"Full background removed image saved to '{full_image_bg_removed_save_path}'.") else: logging.warning(f"No foreground detected for image: {image_path}. Full background removal skipped.") @@ -134,9 +262,9 @@ def process_image(segmenter, image_path): logging.error(f"Error processing image {image_path}: {e}") raise ImageProcessingError(f"Error processing image {image_path}: {e}") -def get_mask_SAM(result, image, processor, model, device): +def get_mask_SAM(result, image, processor, model, device, box): """ - Generate mask using SAM model. + Generate a combined mask using the SAM model for a specific bounding box. Parameters: - result: YOLO prediction result. @@ -144,21 +272,23 @@ def get_mask_SAM(result, image, processor, model, device): - processor (SamProcessor): SAM processor. - model (SamModel): SAM model. - device (str): 'cpu' or 'cuda'. + - box (list): Bounding box [x1, y1, x2, y2]. Returns: - - img_mask (np.array): The generated mask. + - mask_binary (np.array): The combined binary mask. """ - # Get bounding boxes and class labels from YOLO - bboxes_labels = result.boxes.cls - bboxes_xyxy = result.boxes.xyxy - input_boxes = [bbox.cpu().numpy().tolist()[:4] for bbox in bboxes_xyxy] - - if len(bboxes_xyxy) == 0: - logging.warning("No bounding boxes detected by YOLO.") - return None + # Extract the bounding box + logging.debug(f"Extracting bounding box for SAM processing: {box}") + x1, y1, x2, y2 = box + bbox = [x1, y1, x2, y2] # Prepare inputs for SAM using the processor - inputs = processor(images=image, input_boxes=[input_boxes], return_tensors="pt").to(device) + logging.debug("Preparing inputs for SAM.") + inputs = processor( + images=[image], + input_boxes=[[bbox]], + return_tensors="pt" + ).to(device) try: with torch.no_grad(): @@ -169,40 +299,30 @@ def get_mask_SAM(result, image, processor, model, device): outputs.pred_masks.cpu(), inputs["original_sizes"].cpu(), inputs["reshaped_input_sizes"].cpu() - )[0] - - # Initialize 2D mask for image - img_mask = np.zeros((image.shape[0], image.shape[1]), dtype=np.uint8) - - # Process masks - for mask_idx, bbox_label in enumerate(bboxes_labels): - pred_label = int(bbox_label.item()) + )[0].cpu().numpy() # Ensure masks are NumPy arrays - if mask_idx >= masks.shape[0]: - logging.warning("Mismatch between number of masks and detections.") - continue + logging.debug(f"Shape of masks after post_process_masks: {masks.shape}") - mask = masks[mask_idx] # this should be 2D + if masks.shape[0] == 0: + logging.warning("No masks generated by SAM.") + return None - # Ensure mask is a 2D array - if mask.ndim == 3: - mask = mask[0] + # Convert all masks to binary and combine them into a single 2D mask + mask_binary = (masks > 0.5).astype(np.uint8) - # Convert tensor to numpy array and apply binary threshold - mask = mask.cpu().numpy() - mask_binary = (mask > 0.5).astype(np.uint8) - - # Assign class ID to mask - mask_labeled = mask_binary * pred_label + if mask_binary.ndim > 2: + # Combine all masks across masks and channels + mask_binary = np.any(mask_binary, axis=(0, 1)).astype(np.uint8) * 255 + else: + mask_binary = mask_binary * 255 - # Update the image mask, resolving overlaps by overwriting - img_mask[mask_labeled > 0] = mask_labeled[mask_labeled > 0] + logging.debug(f"Combined mask shape: {mask_binary.shape}") except Exception as e: logging.error(f"Error during SAM mask creation: {e}") return None - return img_mask + return mask_binary def overlay_mask_on_image(image, mask): """ @@ -210,19 +330,34 @@ def overlay_mask_on_image(image, mask): Parameters: - image (np.array): Original image in RGB format. - - mask (np.array): Segmentation mask. + - mask (np.array): Segmentation mask (binary or with class values). Returns: - overlay (np.array): Image with mask overlay. """ - # Apply color map to mask - color_mask = cv2.applyColorMap((mask * 25).astype(np.uint8), cv2.COLORMAP_JET) - color_mask = cv2.cvtColor(color_mask, cv2.COLOR_BGR2RGB) # Convert to RGB - # Overlay - overlay = cv2.addWeighted(image, 0.7, color_mask, 0.3, 0) + # Ensure the mask is binary (0 or 255) for proper blending + binary_mask = (mask > 0).astype(np.uint8) * 255 + + # Create a color mask using a colormap (e.g., COLORMAP_VIRIDIS) + color_mask = cv2.applyColorMap(binary_mask, cv2.COLORMAP_VIRIDIS) + color_mask = cv2.cvtColor(color_mask, cv2.COLOR_BGR2RGB) + + # Normalize the mask to the range 0-1 for blending + alpha_mask = (binary_mask / 255.0) * 0.9 + + # Ensure alpha_mask has the same dimensions as the image + alpha_mask = np.stack([alpha_mask] * 3, axis=-1) # Convert to 3 channels + + # Blend only the masked region with the original image + overlay = image.copy() + overlay = (1 - alpha_mask) * overlay + alpha_mask * color_mask # Blend image and colored mask + + # Convert the blended result back to uint8 format + overlay = overlay.astype(np.uint8) + return overlay -def crop_and_save_by_class(segmenter, image, mask, relative_path): +def crop_and_save_by_class(segmenter, image, mask, relative_path, class_name, class_id): """ Crops the image based on class-specific masks and saves them to the crops directory. Optionally removes the background from the cropped images. @@ -230,57 +365,72 @@ def crop_and_save_by_class(segmenter, image, mask, relative_path): Parameters: - segmenter (Segmenter): The Segmenter instance. - image (np.array): The original image. - - mask (np.array): The segmentation mask. + - mask (np.array): The binary segmentation mask for the specific class. - relative_path (str): The relative path of the image for maintaining directory structure. + - class_name (str): The name of the class. + - class_id (int): The ID of the class. """ - for class_id, class_name in CLASSES.items(): - if class_id == 0: - continue # Skip background class for cropping + logging.debug(f"Starting crop_and_save_by_class for class '{class_name}' (ID: {class_id}) in image '{relative_path}'.") + + # Extract directory structure from relative path + relative_dir = os.path.dirname(relative_path) - # Create binary mask for current class - class_mask = (mask == class_id).astype(np.uint8) * 255 + # Use the bbox_padding from the Segmenter instance + padding = segmenter.bbox_padding + logging.debug(f"Using bbox_padding: {padding} pixels.") - # Find contours for class mask - contours, _ = cv2.findContours(class_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + # Since each mask corresponds to a specific class, use the binary mask directly + class_mask = (mask > 0).astype(np.uint8) * 255 + non_zero_pixels = np.sum(class_mask > 0) + logging.debug(f"Number of non-zero pixels in class_mask for '{class_name}': {non_zero_pixels}") - if not contours: - # logging.info(f"No instances found for class '{class_name}' in image '{relative_path}'.") # uncomment for debugging - continue # No mask for this class + if non_zero_pixels == 0: + logging.debug(f"No pixels found for class '{class_name}' in image '{relative_path}'.") + return - for c in contours: - x, y, w, h = cv2.boundingRect(c) + # Find contours for the class mask + contours, _ = cv2.findContours(class_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + logging.debug(f"Found {len(contours)} contours for class '{class_name}' in image '{relative_path}'.") - # Apply padding? - padding = 0 # could make this configurable - x = max(x - padding, 0) - y = max(y - padding, 0) - w = min(w + 2 * padding, image.shape[1] - x) - h = min(h + 2 * padding, image.shape[0] - y) + if not contours: + logging.debug(f"No contours found for class '{class_name}' in image '{relative_path}'.") + return - # Crop the image - cropped_image = image[y:y+h, x:x+w] - cropped_mask = class_mask[y:y+h, x:x+w] + for c_idx, contour in enumerate(contours, 1): + x, y, w, h = cv2.boundingRect(contour) - # Prepare save path for cropped classes - crop_relative_path = os.path.join(class_name, relative_path) - crop_save_path = os.path.splitext(os.path.join(segmenter.crops_dir, crop_relative_path))[0] + f'_{class_name}.png' - os.makedirs(os.path.dirname(crop_save_path), exist_ok=True) + # Apply dynamic padding + x = max(x - padding, 0) + y = max(y - padding, 0) + w = min(w + 2 * padding, image.shape[1] - x) + h = min(h + 2 * padding, image.shape[0] - y) - # Save cropped image - cv2.imwrite(crop_save_path, cropped_image) - # logging.info(f"Cropped '{class_name}' saved to '{crop_save_path}'.") # uncomment for debugging + logging.debug(f"Cropped area for class '{class_name}': x={x}, y={y}, w={w}, h={h} with padding={padding}") - # Background removal from cropped image if specified - if segmenter.remove_background: - cropped_image_bg_removed = remove_background(cropped_image, cropped_mask, segmenter.background_color) + # Crop image and mask + cropped_image = image[y:y+h, x:x+w] + cropped_mask = class_mask[y:y+h, x:x+w] - # Prepare save path for background-removed cropped class images - crop_bg_removed_save_path = os.path.splitext(os.path.join(segmenter.crops_bkgd_removed_dir, crop_relative_path))[0] + f'_{class_name}.png' - os.makedirs(os.path.dirname(crop_bg_removed_save_path), exist_ok=True) + # Prepare filenames and paths (preserving directory structure) + crop_filename = f"{os.path.splitext(os.path.basename(relative_path))[0]}_cls{class_id}.png" + crop_save_path = os.path.join(segmenter.crops_dir, relative_dir, crop_filename) + os.makedirs(os.path.dirname(crop_save_path), exist_ok=True) - # Save the background-removed cropped image - cv2.imwrite(crop_bg_removed_save_path, cropped_image_bg_removed) - # logging.info(f"Cropped '{class_name}' with background removed saved to '{crop_bg_removed_save_path}'.") # uncomment for debugging + # Save cropped image + cv2.imwrite(crop_save_path, cropped_image) + logging.debug(f"Cropped '{class_name}' saved to '{crop_save_path}'.") + + # Background removal from cropped image if specified + if segmenter.remove_crops_background: + logging.debug(f"Starting background removal for cropped image '{crop_save_path}'.") + cropped_image_bg_removed = remove_background(cropped_image, cropped_mask, segmenter.background_color) + crop_bg_removed_filename = f"{os.path.splitext(os.path.basename(relative_path))[0]}_cls{class_id}_bg_removed.png" + crop_bg_removed_save_path = os.path.join(segmenter.crops_bkgd_removed_dir, relative_dir, crop_bg_removed_filename) + os.makedirs(os.path.dirname(crop_bg_removed_save_path), exist_ok=True) + + # Save the background-removed cropped image + cv2.imwrite(crop_bg_removed_save_path, cropped_image_bg_removed) + logging.debug(f"Cropped '{class_name}' with background removed saved to '{crop_bg_removed_save_path}'.") def remove_background(image, mask, bg_color='black'): """ @@ -294,6 +444,8 @@ def remove_background(image, mask, bg_color='black'): Returns: - final_image (np.array): The image with background removed/replaced. """ + logging.debug(f"Starting background removal with color '{bg_color}'.") + if bg_color is None: logging.warning("bg_color is None. Defaulting to 'black'.") bg_color = 'black' @@ -303,25 +455,40 @@ def remove_background(image, mask, bg_color='black'): elif bg_color.lower() == 'black': background = np.zeros(image.shape, dtype=np.uint8) else: + logging.error(f"Unsupported background color '{bg_color}'.") raise ValueError("Unsupported background color. Choose 'white' or 'black'.") if mask is not None: + logging.debug("Mask is provided. Proceeding with background removal.") # Ensure mask is single-channel if len(mask.shape) == 3: mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY) + logging.debug("Converted mask to single-channel grayscale.") + + # Corrected line: use 'mask' instead of 'masks' mask_binary = (mask > 0).astype(np.uint8) * 255 + non_zero_mask = np.sum(mask_binary > 0) + logging.debug(f"Number of non-zero pixels in mask_binary: {non_zero_mask}") + + if non_zero_mask == 0: + logging.warning("Mask has no non-zero pixels. Skipping background removal.") + return image.copy() # Extract foreground using mask masked_foreground = cv2.bitwise_and(image, image, mask=mask_binary) + logging.debug("Applied mask to extract foreground.") # Extract background area background_mask = cv2.bitwise_not(mask_binary) masked_background = cv2.bitwise_and(background, background, mask=background_mask) + logging.debug("Prepared background based on mask.") # Combine foreground and new background final_image = cv2.add(masked_foreground, masked_background) + logging.debug("Combined foreground and new background successfully.") else: - # If no mask provided, assume entire image is foreground + logging.warning("No mask provided. Assuming entire image is foreground.") final_image = image.copy() + logging.debug("Background removal completed.") return final_image diff --git a/src/wing_segmenter/metadata_manager.py b/src/wing_segmenter/metadata_manager.py index 20d1e7c..377d4f2 100644 --- a/src/wing_segmenter/metadata_manager.py +++ b/src/wing_segmenter/metadata_manager.py @@ -3,6 +3,9 @@ import json import os from wing_segmenter.constants import CLASSES +import pycocotools.mask as mask_util +import numpy as np +import logging NAMESPACE_UUID = uuid.UUID('00000000-0000-0000-0000-000000000000') @@ -77,14 +80,121 @@ def update_segmentation_info(segmentation_info, image_path, classes_present): segmentation_info.append(entry) -def save_segmentation_info(segmentation_info, mask_csv): +def save_segmentation_info(segmentation_info, detection_csv_path): """ Saves the segmentation information to a CSV file. - + Parameters: - segmentation_info (list): The segmentation information. - - mask_csv (str): Path to the CSV file. + - detection_csv_path (str): Path to the CSV file. """ import pandas as pd + if not segmentation_info: + logging.warning(f"No segmentation information to save at '{detection_csv_path}'.") + return df = pd.DataFrame(segmentation_info) - df.to_csv(mask_csv, index=False) + df.to_csv(detection_csv_path, index=False) + logging.info(f"Saved detection information to '{detection_csv_path}'.") + +def add_coco_image_info(coco_annotations_path, relative_path, image_shape): + """ + Adds image information to the COCO annotations file. + + Parameters: + - coco_annotations_path (str): Path to the coco_annotations.json file. + - relative_path (str): Relative path to the image. + - image_shape (tuple): Shape of the image (height, width, channels). + + Returns: + - int: The image_id assigned to this image. + """ + height, width = image_shape[:2] + images = [] + image_id = None + + # Load existing annotations or initialize + if os.path.exists(coco_annotations_path): + with open(coco_annotations_path, 'r') as f: + coco = json.load(f) + else: + coco = { + "images": [], + "annotations": [], + "categories": [] + } + # Initialize categories + for class_id, class_name in CLASSES.items(): + if class_id == 0: + continue # Skip background + coco['categories'].append({ + "id": class_id, + "name": class_name, + "supercategory": "none" + }) + + # Check if image already exists + for img in coco['images']: + if img['file_name'] == relative_path: + image_id = img['id'] + break + + if image_id is None: + image_id = len(coco['images']) + 1 + coco['images'].append({ + "id": image_id, + "file_name": relative_path, + "height": height, + "width": width + }) + + # Save back + with open(coco_annotations_path, 'w') as f: + json.dump(coco, f, indent=4) + + return image_id + +def add_coco_annotation(coco_annotations_path, image_id, category_id, bbox, mask): + """ + Adds an annotation to the COCO annotations file. + + Parameters: + - coco_annotations_path (str): Path to the coco_annotations.json file. + - image_id (int): ID of the image. + - category_id (int): ID of the category. + - bbox (list): Bounding box [x1, y1, x2, y2]. + - mask (np.array): Binary mask for the annotation. + """ + if not os.path.exists(coco_annotations_path): + raise FileNotFoundError(f"COCO annotations file '{coco_annotations_path}' does not exist.") + + with open(coco_annotations_path, 'r') as f: + coco = json.load(f) + + annotation_id = len(coco['annotations']) + 1 + + # Convert bbox from [x1, y1, x2, y2] to [x, y, width, height] + x, y, x2, y2 = bbox + width = x2 - x + height = y2 - y + bbox_coco = [x, y, width, height] + + # Encode mask to RLE; TODO: make polygon optional + rle = mask_util.encode(np.asfortranarray(mask)) + rle['counts'] = rle['counts'].decode('utf-8') # Convert bytes to string + + annotation = { + "id": annotation_id, + "image_id": image_id, + "category_id": category_id, + "bbox": bbox_coco, + "area": width * height, + "segmentation": rle, + "iscrowd": 0 + } + + coco['annotations'].append(annotation) + + with open(coco_annotations_path, 'w') as f: + json.dump(coco, f, indent=4) + + logging.debug(f"Added COCO annotation ID {annotation_id} for image ID {image_id}.") diff --git a/src/wing_segmenter/path_manager.py b/src/wing_segmenter/path_manager.py index fd6ea19..928eaa2 100644 --- a/src/wing_segmenter/path_manager.py +++ b/src/wing_segmenter/path_manager.py @@ -22,8 +22,14 @@ def setup_paths(segmenter): os.makedirs(segmenter.output_dir, exist_ok=True) - # Metadata file path - segmenter.metadata_path = os.path.join(segmenter.output_dir, 'metadata.json') + # Metadata directory + segmenter.metadata_dir = os.path.join(segmenter.output_dir, 'metadata') + os.makedirs(segmenter.metadata_dir, exist_ok=True) + + # Metadata file paths + segmenter.metadata_json_path = os.path.join(segmenter.metadata_dir, 'run_metadata.json') + segmenter.detection_csv_path = os.path.join(segmenter.metadata_dir, 'detection.csv') + segmenter.coco_annotations_path = os.path.join(segmenter.metadata_dir, 'coco_annotations.json') # Define subdirectories that are always present segmenter.masks_dir = os.path.join(segmenter.output_dir, 'masks') @@ -44,12 +50,12 @@ def setup_paths(segmenter): segmenter.crops_dir = os.path.join(segmenter.output_dir, 'crops') os.makedirs(segmenter.crops_dir, exist_ok=True) - if segmenter.remove_background: + if segmenter.remove_crops_background: segmenter.crops_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'crops_bkgd_removed') os.makedirs(segmenter.crops_bkgd_removed_dir, exist_ok=True) - if segmenter.remove_bg_full: + if segmenter.remove_full_background: segmenter.full_bkgd_removed_dir = os.path.join(segmenter.output_dir, 'full_bkgd_removed') os.makedirs(segmenter.full_bkgd_removed_dir, exist_ok=True) - segmenter.mask_csv = os.path.join(segmenter.output_dir, 'segmentation.csv') + segmenter.detection_csv = segmenter.detection_csv_path diff --git a/src/wing_segmenter/run_scanner.py b/src/wing_segmenter/run_scanner.py index 1c63311..379dfec 100644 --- a/src/wing_segmenter/run_scanner.py +++ b/src/wing_segmenter/run_scanner.py @@ -50,18 +50,21 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): table.add_column("Resize Dims", justify="center", no_wrap=False, width=11) table.add_column("Resize Mode", justify="center", no_wrap=False, width=7) table.add_column("Interp", justify="center", no_wrap=True, min_width=13) + table.add_column("BBox Pad", justify="right", no_wrap=True, min_width=8) table.add_column("Errors", justify="center", no_wrap=True, min_width=6) for idx, run_dir in enumerate(run_dirs, 1): - metadata_path = os.path.join(run_dir, 'metadata.json') + metadata_path = os.path.join(run_dir, 'metadata', 'run_metadata.json') + detection_csv_path = os.path.join(run_dir, 'metadata', 'detection.csv') + coco_annotations_path = os.path.join(run_dir, 'metadata', 'coco_annotations.json') + if not os.path.exists(metadata_path): - table.add_row(str(idx), f"Missing metadata.json", "", "", "", "", "", "") + table.add_row(str(idx), f"Missing run_metadata.json", "", "", "", "", "", "", "") continue with open(metadata_path, 'r') as f: metadata = json.load(f) - # Extract relevant information completed = 'Yes' if metadata['run_status'].get('completed') else 'No' num_images = str(metadata['dataset'].get('num_images', 'Unknown')) @@ -80,14 +83,14 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): resize_dims_str = str(resize_dims) interpolation = str(metadata['run_parameters'].get('interpolation', 'None')) + + bbox_padding = str(metadata['run_parameters'].get('bbox_pad_px', 'None')) - # Extract any errors errors = str(metadata['run_status'].get('errors', 'None')) # Truncate run UUID to save table space run_uuid_prefix = os.path.basename(run_dir).split('_')[-1][:8] if not custom_output_dir else "CustomDir" - # Add row to the table table.add_row( str(idx), run_uuid_prefix, @@ -96,6 +99,7 @@ def scan_runs(dataset_path, output_base_dir=None, custom_output_dir=None): resize_dims_str, resize_mode, interpolation, + bbox_padding, errors ) diff --git a/src/wing_segmenter/segmenter.py b/src/wing_segmenter/segmenter.py index d54a698..62d2855 100644 --- a/src/wing_segmenter/segmenter.py +++ b/src/wing_segmenter/segmenter.py @@ -5,7 +5,7 @@ from tqdm import tqdm from wing_segmenter.model_manager import load_models -from wing_segmenter.image_processor import process_image +from wing_segmenter.image_processor import process_image, get_class_color_map from wing_segmenter.path_manager import setup_paths from wing_segmenter.metadata_manager import generate_uuid, get_dataset_hash, get_run_hardware_info from wing_segmenter import __version__ as package_version @@ -25,15 +25,17 @@ def __init__(self, config): self.visualize_segmentation = config.visualize_segmentation self.force = config.force self.crop_by_class = config.crop_by_class - self.remove_background = config.remove_background - self.remove_bg_full = config.remove_bg_full - if self.remove_background or self.remove_bg_full: + self.remove_crops_background = config.remove_crops_background + self.remove_full_background = config.remove_full_background + if self.remove_crops_background or self.remove_full_background: self.background_color = config.background_color if config.background_color else 'black' else: self.background_color = None self.segmentation_info = [] self.output_base_dir = os.path.abspath(config.outputs_base_dir) if config.outputs_base_dir else None self.custom_output_dir = os.path.abspath(config.custom_output_dir) if config.custom_output_dir else None + self.bbox_padding = config.bbox_padding if config.bbox_padding is not None else 0 + self.class_color_map = get_class_color_map() # Generate UUID based on parameters self.run_uuid = generate_uuid({ @@ -42,6 +44,8 @@ def __init__(self, config): 'yolo_model_name': self.config.yolo_model, 'resize_mode': self.resize_mode, 'size': self.size, + 'interpolation': self.interpolation if self.size else None, + 'bbox_padding': self.bbox_padding, }) setup_paths(self) @@ -63,8 +67,8 @@ def process_dataset(self): return True # Check for existing run unless force is specified - if os.path.exists(self.metadata_path) and not self.force: - with open(self.metadata_path, 'r') as f: + if os.path.exists(self.metadata_json_path) and not self.force: + with open(self.metadata_json_path, 'r') as f: existing_metadata = json.load(f) if existing_metadata.get('run_status', {}).get('completed'): logging.info(f"Processing already completed for dataset '{self.dataset_path}' with the specified parameters.") @@ -81,12 +85,13 @@ def process_dataset(self): 'yolo_model_name': self.config.yolo_model, 'resize_mode': self.resize_mode, 'size': self.size, - 'padding_color': self.padding_color if self.resize_mode == 'pad' else None, + 'bbox_pad_px': self.bbox_padding, + 'resize_padding_color': self.padding_color if self.resize_mode == 'pad' else None, 'interpolation': self.interpolation if self.size else None, 'visualize_segmentation': self.visualize_segmentation, 'crop_by_class': self.crop_by_class, - 'remove_background': self.remove_background, - 'remove_bg_full': self.remove_bg_full, + 'remove_crops_background': self.remove_crops_background, + 'remove_full_background': self.remove_full_background, 'background_color': self.background_color }, 'run_hardware': get_run_hardware_info(self.device), @@ -97,9 +102,13 @@ def process_dataset(self): 'errors': None } } - with open(self.metadata_path, 'w') as f: + with open(self.metadata_json_path, 'w') as f: json.dump(self.metadata, f, indent=4) + # Log output directory information + logging.info(f"Processing {len(image_paths)} images") + logging.info(f"Output directory: {self.output_dir}") + try: for image_path in tqdm(image_paths, desc='Processing Images', unit='image'): try: @@ -112,7 +121,7 @@ def process_dataset(self): logging.error(f"Processing failed: {e}") self.metadata['run_status']['completed'] = False self.metadata['run_status']['errors'] = str(e) - with open(self.metadata_path, 'w') as f: + with open(self.metadata_json_path, 'w') as f: json.dump(self.metadata, f, indent=4) raise e @@ -120,12 +129,12 @@ def process_dataset(self): self.metadata['run_status']['completed'] = not errors_occurred self.metadata['run_status']['processing_time_seconds'] = processing_time - # Save segmentation info and CSV + # Save detection info and CSV if self.segmentation_info: from wing_segmenter.metadata_manager import save_segmentation_info - save_segmentation_info(self.segmentation_info, self.mask_csv) + save_segmentation_info(self.segmentation_info, self.detection_csv_path) - with open(self.metadata_path, 'w') as f: + with open(self.metadata_json_path, 'w') as f: json.dump(self.metadata, f, indent=4) if errors_occurred: From 7869894dd941764c5e6dfcb9e90c7617e1d92ba2 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 25 Nov 2024 17:23:19 -0500 Subject: [PATCH 14/18] Add usage and examples --- README.md | 157 ++++++++++++++++++--- readme_images/STRI_WOM_0011_V_viz.png | Bin 0 -> 278283 bytes readme_images/STRI_WOM_0011_V_viz_1024.png | Bin 0 -> 1105565 bytes readme_images/STRI_WOM_0011_V_viz_256.png | Bin 0 -> 66005 bytes readme_images/STRI_WOM_0011_V_viz_512.png | Bin 0 -> 278283 bytes 5 files changed, 140 insertions(+), 17 deletions(-) create mode 100644 readme_images/STRI_WOM_0011_V_viz.png create mode 100644 readme_images/STRI_WOM_0011_V_viz_1024.png create mode 100644 readme_images/STRI_WOM_0011_V_viz_256.png create mode 100644 readme_images/STRI_WOM_0011_V_viz_512.png diff --git a/README.md b/README.md index 7cbb4e2..dfd2763 100644 --- a/README.md +++ b/README.md @@ -165,37 +165,160 @@ python3 wing-segmentation/landmark_scripts/flip_images_horizontally.py --input_d # CLI Development ```bash -usage: ws [-h] {resize} ... +usage: wingseg [-h] {segment,scan-runs} ... Wing Segmenter CLI options: - -h, --help show this help message and exit + -h, --help show this help message and exit Commands: - {resize} - resize Resize images and store them in a structured output directory. + {segment,scan-runs} + segment Segment images and store segmentation masks. + scan-runs List existing processing runs for a dataset. ``` -## Optional preprocessing +## Segmentation Options ```bash -usage: ws resize [-h] --source SOURCE [--output OUTPUT] --resize-dim WIDTH HEIGHT [--num-workers NUM_WORKERS] - [--interpolation {nearest,linear,cubic,area,lanczos4,linear_exact,nearest_exact}] +usage: wingseg segment [-h] --dataset DATASET [--size SIZE [SIZE ...]] [--resize-mode {distort,pad}] [--padding-color {black,white}] + [--interpolation {nearest,linear,cubic,area,lanczos4,linear_exact,nearest_exact}] [--bbox-padding BBOX_PADDING] + [--outputs-base-dir OUTPUTS_BASE_DIR | --custom-output-dir CUSTOM_OUTPUT_DIR] [--sam-model SAM_MODEL] [--yolo-model YOLO_MODEL] + [--device {cpu,cuda}] [--visualize-segmentation] [--crop-by-class] [--force] [--remove-crops-background] [--remove-full-background] + [--background-color {white,black}] options: -h, --help show this help message and exit - --source SOURCE Path to source images - --output OUTPUT Base path to output resized images. - Final path will include x/. - Default: _resize/x/, neighboring SOURCE. - If SOURCE has nested directories, the output will mirror the structure. - --resize-dim WIDTH HEIGHT - Resize dimensions (WIDTH HEIGHT) - --num-workers NUM_WORKERS - Number of parallel workers (default: 1) + --dataset DATASET Path to dataset images (default: None) + --outputs-base-dir OUTPUTS_BASE_DIR + Base path to store outputs. (default: None) + --custom-output-dir CUSTOM_OUTPUT_DIR + Fully custom directory to store all output files. (default: None) + --sam-model SAM_MODEL + SAM model to use (e.g., facebook/sam-vit-base) (default: facebook/sam-vit-base) + --yolo-model YOLO_MODEL + YOLO model to use (local path or Hugging Face repo). (default: + imageomics/butterfly_segmentation_yolo_v8:yolov8m_shear_10.0_scale_0.5_translate_0.1_fliplr_0.0_best.pt) + --device {cpu,cuda} Device to use for processing. (default: cpu) + --visualize-segmentation + Generate and save segmentation visualizations. (default: False) + --crop-by-class Enable cropping of segmented classes into crops/ directory. (default: False) + --force Force reprocessing even if outputs already exist. (default: False) + +Resizing Options: + --size SIZE [SIZE ...] + Target size. Provide one value for square dimensions or two for width and height. (default: None) + --resize-mode {distort,pad} + Resizing mode. "distort" resizes without preserving aspect ratio, "pad" preserves aspect ratio and adds padding if necessary. + (default: None) + --padding-color {black,white} + Padding color to use when --resize-mode is "pad". (default: None) --interpolation {nearest,linear,cubic,area,lanczos4,linear_exact,nearest_exact} - OpenCV interpolation method to use (default: area) + Interpolation method to use when resizing. For upscaling, "lanczos4" is recommended. (default: area) + +Bounding Box Options: + --bbox-padding BBOX_PADDING + Padding to add to bounding boxes in pixels. Defaults to no padding. (default: None) + +Background Removal Options: + --remove-crops-background + Remove background from cropped images. (default: False) + --remove-full-background + Remove background from the entire (resized or original) image. (default: False) + --background-color {white,black} + Background color to use when removing background. (default: None) +``` + +Tabular overview of segmentation runs for comparing effects of segmentation option settings: +```bash +usage: wingseg scan-runs [-h] --dataset DATASET [--output-dir OUTPUT_DIR] + +options: + -h, --help show this help message and exit + --dataset DATASET Path to the dataset directory. + --output-dir OUTPUT_DIR + Base path where outputs were stored. ``` +Example usage: +```bash +wingseg segment --dataset ../data/input/ \ +--outputs-base-dir ../data/output/ \ +--visualize-segmentation \ +--crop-by-class \ +--size 512 \ +--resize-mode pad \ +--padding-color white \ +--interpolation cubic \ +--remove-crops-background \ +--remove-full-background \ +--background-color white +``` +Depending on the contents of `../data/input/`, the command above will produce the following status indicator: +```bash +INFO:root:Loading YOLO model: imageomics/butterfly_segmentation_yolo_v8:yolov8m_shear_10.0_scale_0.5_translate_0.1_fliplr_0.0_best.pt +INFO:root:YOLO model loaded onto cpu +INFO:root:Loading SAM model: facebook/sam-vit-base +INFO:root:Loaded SAM model and processor successfully. +INFO:root:Processing 18 images +INFO:root:Output directory: /abs/path/to/data/output/input_3354acb9-b295-5d07-9397-8ec5c74cee37 +Processing Images: 6%|█████▌ | 1/18 [00:14<04:09, 14.67s/image] +``` +Note that the unique identifier appended to the output directory is a UUID that depends on certain options specified in the command as well as the input dataset. This is to ensure that the output directory is unique and does not overwrite existing results. + +For example, it may be useful to compare the effects of resize dimensions with squares of size [256, 512, 1024]. + +Once these are processed, you can use the `scan-runs` command for a tabular overview of the segmentation runs: +```bash +wingseg scan-runs --dataset ../data/input/ --output-dir ../data/output/ +Found 3 processing runs for dataset 'input': + + Processing Runs +┏━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓ +┃ ┃ Run UUID ┃ ┃ ┃ ┃ Resize ┃ ┃ ┃ ┃ +┃ Run # ┃ Prefix ┃ Completed ┃ Num Images ┃ Resize Dims ┃ Mode ┃ Interp ┃ BBox Pad ┃ Errors ┃ +┡━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━┩ +│ 1 │ 3354acb9 │ Yes │ 18 │ 512x512 │ pad │ cubic │ 0 │ None │ +├───────┼──────────┼───────────┼────────────┼─────────────┼─────────┼───────────────┼──────────┼────────┤ +│ 2 │ 0f27d745 │ Yes │ 18 │ 256x256 │ pad │ cubic │ 0 │ None │ +├───────┼──────────┼───────────┼────────────┼─────────────┼─────────┼───────────────┼──────────┼────────┤ +│ 3 │ 8e9ae0a2 │ Yes │ 18 │ 1024x1024 │ pad │ cubic │ 0 │ None │ +└───────┴──────────┴───────────┴────────────┴─────────────┴─────────┴───────────────┴──────────┴────────┘ +``` + +This can be helpful navigating the outputs of multiple segmentation runs: +```bash +$ ls -1 ../data/output/* +../data/output/input_0f27d745-12ce-50b9-a28c-5641dbfaea49: +crops +crops_bkgd_removed +full_bkgd_removed +logs +masks +metadata +resized +seg_viz + +../data/output/input_3354acb9-b295-5d07-9397-8ec5c74cee37: + + +../data/output/input_8e9ae0a2-992c-579d-bb51-b8715442bcf4: + +``` + +Inspecting data in the `seg_viz/`, we can see that the 1024x1024 products have segmentation masks that differ from the 512x512 and 256x256 products. + +1024x1024 (Run 8e9ae0a2): + +![1024 resize segmentation result visualization](readme_images/STRI_WOM_0011_V_viz_1024.png) + +512x512 (Run 3354acb9): + +![512 resize segmentation result visualization](readme_images/STRI_WOM_0011_V_viz_512.png) + +256x256 (Run 0f27d745): + +![256 resize segmentation result visualization](readme_images/STRI_WOM_0011_V_viz_256.png) + + To use and continue building the CLI features: ## Set up an environment and install the package. diff --git a/readme_images/STRI_WOM_0011_V_viz.png b/readme_images/STRI_WOM_0011_V_viz.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b681ba20b22ea03926fd552043a5c863c3a294 GIT binary patch literal 278283 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 !iD4;Qu?)MMQY`%>#uHp9TEv! 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¨O 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¬m%<)MlYn7G?KkuVE~PXeVC0OCMd2*S zNLo$XFL~s#m!#{eh6TJBpTe1aNwS17*Ot0(3_R4`XaFSqd*7dmm3To6UzuUA`lI!d zJ&ovUk|Ri^>vTKy7%>7=@9xwofTSk{=WFU$);ateaWgvFAv(h3l;Y!ZNWF5cVkpuC z%KD^@#B&klGTEMItY{OAoty-x8?pp`lun_#8{&33WH=i|CbWc-hVW{~J}J3Ou^_oF zT`>i;fbz67kXUg4)+z)u6&Y$*431~rCB)ThQG02 zf4qV(M_}BI>DbzL=9i~&Unb<68nN2l8nMsT*~iBn2buS;=KFl^TB?7BzASreAj=W3 zJ>46EN>2MEk`^MJDkFF)d-!p`=0FnfW4KbQ128MgWbG;`OcliUb&}Ej3J&^?%qluiPt5Tf zS_|^DS@g9rW3BmlF47fF7g89?`$SBW&!b;b4l27(PpMHjFd>cdzyFu;)2gZxJh4UA z+)N-Gybjc|0OkKoEOCdPHw!Y+NXy*sO6NWZ?3Z>wFW8eD#uCnbC{L@ja=siw@z2{-9;Iqw} z3A!4?Es!L7kR2VRvBtb~fZeg8EEK zOs~d9-Ax^La}A98%AF&=Tw5|2$xjB_U!u7-*L%ruF(ZQN<5q8t*&3j(pvVEq>;Ws^4OjK;k_4qDm)oxaX{U;-dqxX^^p0IvutjzO&_9! zPVC4tE50G!kV#n3njF|3)A`$ba7>9Vph${_X498*9w z@4WhxxF6G|TQ}geSt;kmLpt?}`fo0BbK1dO@CUxfY!U}w&GxxeTo32-_O-Z(I-F>+xQ!Z)2r21Fy)ZU@60qy~ zXhHBknaY!5Zobzv%u1l!Z;e7ic*ATRZT4<`lROCcoHGoIqkZ*OsDHBdf{iDpc6G~O zQ;_%pM{Ms6m@*cu5^*d^DHkNE5z@et-gyrUy(zDf9G7!Qy}zKC1&yy0d7eJG}| zlRH$vA%76sgPJbSNn8U|lwsbTsGu!TarbWj#?M(7TS0G7#vUY8W8&G;mq?o}!sNl% zm~~Qy>UF_1$6Y-P{)GOr}9Vj|F8g`Xsejw_K z%}ae9Iw2HFi;*6P;$waLUa3m+PFM~`GBq2xWxW4F{frdyTYE+;-mfm+8Kzw~3tpH7c8_eZ zH$E)g`N+0fdW}Vn8X?xvug!L$K6|Nztgx&3UU4&xohvKvV&|fva~gk9dYigLaDQsl zV^!)UBrs?lobrndSV#tpXpA}Si>!(&1VfCjh|y^8O&{$|?{;M~OB7Y!$S?$9zKU0% zWjxeLJDFf_Tau7K!axl^%+yBFA>Q>@p0jV)Ryc9p>iE+W4Cj1(T9-S=v(0z@bX7O9 znGtIY;P>}$BD`-n=E5A*S4tpug(2x%eI=lXnFuuc9eBC?j{`zsU%&Up&NDl1|YPHERw$u+VnmyXb0 zR$BV4g1BldQyRSVB{8VYD!Bc_<-TT(Mt>_d_s?JEsPi_QmAlrzdqT>|k;vGb9)bB$ z8X3WeJf1EGkRHqMZQ8ef;IH*pAOpNdciu;%fhQxDoCL6R6@Di1x*+Ewkq;<&KSww} zge*Jlm%re})ykAHewOTbz0M>g2xxXowEPWLr+SrEf22eH0!n4fopbmP)?vbr=h9U3k zv=pS6dQ6N$$do_Zd)}5bA@fH|{dfiE@vr$n=Uc$Y>^y~_h!!y6+ro`7QJ8VLe)Gex z-S<{LBkTzqDghX$)NE#Sz>a+1No;Cjj{5i%y31!jZ>`K9W3P;#XN=Y%oaXYvWiz|2f47rz|?jR-IT+wjuF5l~vmDN_QS zQh4XuGmkkq*Q|o(32il5dd2pf@;e5Ep+qGPgAH()>%-#0&wB-WrtyVz>VOi&LC#%> z)Ue%U74RC%OqE_2&B&k}RHcg3uT(Pb~njs~L3qcml(#SYfaO zBP!qs_PUiVpH#ROwvTE$L8Vp&b}v5h2lXrRfrm`_Qc>t65=q{tV!xPIs=$w}`#cdK zH8s}(G+xeSe)}2LClLiJH-w}XzE1tF*QKrbP4efIKlI=Zg$GFkF8ZOFnHhSS8&WZx z&8BpBQe44p>{8QqNAQM9Wl70~^wpna?Zc*YS4W$^)K*zc@Y}(S^&8wbf3G$eA)~E_ z&>8)=X+^?u8;d{^Ptk8T9ANo%6%9&elb4@0*3}W-Bb1`!CbsijJj?aZzhTCq3jsZ! zcjbHv!!5&4=$xNCyndP`_YI*S_j$7$Wd4mdJ@4s|4saw)9iD`4Hmg?PT*Dss_hHzN zGMj)|za3Xl7>R9c3rY_#YO3>_T@E9|-Q5*Nd* z4zK$BL|}1lQYvmffj09r&jTF>X<(C+arZ?Uvm_{^B`c=hWEFkwG4!lJ=e^=>Ncz-y z{zu>wYUr@3KejEoJla!sLka=|(yywlJ))6MdVE4DA>G=bFyKi7h8}^S5uuj4mCkJy zT0&8V{Esv5s_i!tn~x4(h;cjSf{wSeZUFw0wl7`-TIuY}&2I-4&alP?8b)L8j%LaYLt+RZKrCRIlBKyI=zx2KE*pu@*EV$IN zwJnnGj#(c|wa2K`eR1*d=%(EumX{r5^k`x7S0@O%`EE-DgGpdMCQDpSjfxN9=kSBI zXXDg~T*}H)Dt^18Wmk{JYdWh{ya1sRrR#nLJZq3lQ{>+T#I;kV{v#U-XX>-=JBCnn zlJ|{e#7T?9!B{GO|LSB;{>!?edK~QnDSw?#?lb3{tHpy5GldJYDVH|do3>V0er0!6 z#wFP<#Y#d_QoC&J?W5W|!M7Pau?<6}$&xnIVMz|~Um8!17i^^+o_QjYV}B!y8qCdNfrTlWLklNohc8A4VFZ1SUy^GG0y&^8_JJ!kczN%j>d{XRVy%u~OX8 z?_T-xL(V}!`T&LYTAvItjMZ)x2lA>Z&*fa7Ow*nGNK7-ec6t!YR=pgTzH;yTqFfyi zO*)i}m@e(egFe_<+coCUwc7T#8-A~(DUl74Wbbg3#Ik86ntLydl@XhLLg8s;`_@8bAYBG z9u{>Zx;Q=CcN0xL3U6|yy?nUY7jP+ZY&DkmX$h=W9)yunhi1!1=H1QF$u>~~*uEiX zf4Jwl(zM5;U+qhgAfS(=>t*kY1Bm6OnM>Zq*1)&Dw!7ALD7W?Q4yzy-9OERxA|}nE zU}Nqv)F^@f9xQ20SVc{F4jGjmPv>tvtLfC;m`D!%Ao78t@0sF+FMYcO(j=CF94gZ9 z2mkt828J|we+vlnN;0BDwu?P<6<7V~(5j@`PcBEI#jkW()AB{fdm^Y&ylRZ`W37`K zSz~eusW+)KiUWjbG~(MRlHQ3fsX-ZmJ@*}ro@F5EK{V6K&~xdS=m>EA$}Y?P@qD;Z zb}Aa(DPxE>6^teS(Q$)DU7L;XH(X#PxB8jQ=_7eg^;VKEi7gz-n=DLriHbYqscRWS zGLY=BuR-1AQ750w8HPyj0O{%3&yCvz1ed~1)Li*nWp`q3l!Veg!9c|aGlkFcTfHRi zJF|PZyE5iMcg-GRwA)rd)}f#0JJZ=hW>@ZaXqP#8D2TAyi@0Q_uq+XLJcuQH?V#fd zntLZfplU8DDOr4teEitl%0x+y?S`3xyQ`OD3)R7o6$%yKRuQ*k;^8kO8xa3+Oub1r z)P@Uy7yxk@4vlqIIf=Qr?t3^mBK&+HL@!sN`tV0o@Zl6nMJ2ZgCjwM2XMe6CZQvcFe-W=NURC5)d5D`fdF0TvlczD zE2wZk6i3K=&Mc9X6k-J9U4*BkaHG4TT@jF!8~e`iHc{T+&Z?y6`!A$3YKO>`2cJYu zZ@%ev^VD)NdH%HMwFWoX>#rI}vOvOP^%qkOw0EumoDLY^UJ>nP-yb!{Fx%?7@_9bd zpOAQ*X=UA~;T>smRmbdx1lc2pcQbcBWGKW<)u%l+d}A+~sZ7KD%i5&mFM83cEL7DO z8Qezh##$+1A)JedD9R|w&D|SH4<q|e zeBjjv43qY2RSG*<7g3<(N8~|+PeCEt$>w-h&F5p8-?V|mvYBq%%8SL(%n`-e_X=2l zS7NirxW~vrkHkr@)gfI|jd?KMY5es)pKU_EoKi>rRw7+VQU+ULN+nHE zj8Gf+i`&Om&?{UXQa>CJDNl8p!dj9}PE3)o#aD4gsA^=!yMna57`?J0oFx$aq`=Q> z2p4(Toi}p1Dcg|;WD@eI3vFdgZ8Ly>Ehfd(v27x%pjwmhhg^b+|8lgFL{rek5LETl ztt6QWH1vC{t`2E3Ob@t3Jf<*|bb{w5xKM4yGU?DLUoJ7OerBrrg$>us54o1EO^)-~ zYk5_M`c*4K!Mg?1)5^g|-|P}q0*`hFU1|uSc#LM;VXyuZ-}TNS3%9xNZzs0;=}I`v z1E(tT@bCN$a#aGcMNxG5lj4aJ!CEFNa!ik>?{^f(E*|D4RL})%eT&)iV3%SK_}n>U zI`b0iKk(tSXzS@aWuS#0*o#ZAip_Nf2}P6xX>sAjXZaJ&d70Cn)IKyIQl7=P1svA) z9na1!TpfDJ-EKTiP7;WvXT+BJ*$<5fJ7T|7O1p*9 z^|W$x@%Nc%Ph1lEV--+Ph(J)xwDH|4 z7BTt*aU~K7FIEE1lAw%Wl2}3$7AP*8-bd=)}|yUh4J&) za;x*FXB*@mt~WGcE!Kh&&w8p>m;3OFvL`*abCGO`^mmP3xH7a*y?#%A56lbQH2CXU zQsG>LVQ!=vxqEr^ohslF`?PUy$ZI4x1XIM+?I6c7>=ngXl37sD-moh;%pY46^=S%%JFkTjP&o5T$uvva%{5JmB z?f!5^z)$TjUkd)hty)r%n=vq_4@7j_5iJ0!@T^Q4v6CJZMx3R^O3RG1?j#AiXgYQV-{6DWuq5J+s}UF)K!K1qN5=D7USj$9)m{_}Rr#TJ;QYlju5 z&vEilRsXuvTa=ysAnkAlo%7@ufA0~KoeHx)#pQKzSJ!DiR*tdY&Ca>GEiV6-xTXf; z!7`zvtstsPO>#xBA1~iisAt7=utL8{{^gmk&0bXSZ{h*kp12w>*3hGAU!8}WX{he=Rxm5xTGyCcl~>xmFY|Ko z^7=fTFU+42HTCG^I~O4m8JTOXX-HBb)JdKD0Mu$L+pcmA7$jN!0f^I$6hGvCCAW0$~Hs4R@FMqT) zJO)VQ*!Q;#t%Zx89T`DxLm2zNIIQYh{F<9}4+H*==)yE|$@}&{U=g4UL*YnXop;IJ zD#Yg!L0>Ys`LDCTtR4J6G<|hc)BpedK#+mKMyQAqlNt!pDH4tvg2bjGrGOwv*9d8l zks>8EI!6gem$WD$og)PVWQ4%z{a)|S?|jeUpB>J2IPCR!KJVk+`?wFmIUQ%i@Rw!x zxvy|u?&vQnN{;HUMru`7=Uod=x&4YKH|6_qx7V8#{mVXHCqHRgFKUvH?Qq)RH9kG2 zB}*t%a@=PW`nr0IN-$&ye*d;(H#nnlyPW;~LbRBWG`ZM&yKw_waIqkkQPumq0fz1dU z@y@zGNOTn{lZRF3x7)R#Rdk~NfTt8yy{xY5{kx^vuiEj^gXl@CJhTHMaXO7<5br=02NV>tx5!N6}iZ^gX? zL3dl0S(7|Q-kUxlH2*-;I%tZF<*u550$x2qbN_jTD4bR!8g+CQ3vGqm{E0@^+ua5Y zs3(Sp^1rf)0Y4ww(HR4&Q2FEAb9S@wQ^PddFWQQH|18p9dcUx%Ldt^6HBTLvHoFYe zV@K9}&m;WMkGTTiYH}q@M}H50(m#4{Rhzo0EjXkxeP62Ooo~;{TUT4p3hR4s)HhJ) z7a?m8*R#}!xB-nx%HCj=P&cd3Qtwz<1&UZq>ef<@S?W(0&x3|m9qkTkBIYB*GG@2X zWq2bRos}mH{(PFR5icsS!e9#e=R+T7n*+k08_kyL0Z*np3XPi4YwG;*V{fB_{{FnT zzM87b%%GgdLO}i0F@EH(ZOIFXs)~v^udB_?e^>^S=FjhAc_d;j;q6^a2&(lEFG>Oh z6?j!Uf59y2virvpueu(+lzg+n>qfTMJ-^YYONtKXK?=f6Lm31HwumetDJzr9?7g-*022Ck8Ov8z^KSyC}gV3Wj-ouXci-sLVczNr!ANbCB9Ck$}po42zS7)5w!Tx8TGci9&+Z1RVi)c0w8zf^8xR^Izgqp0eL!*gviDtif zB&tRetC6XxsY1i$oB1qbIQ#gTuN_x}eE+nh`pRIc^~aPiRttb*-;jL7`#M(thm4x= z8kHgs2!YUJ)F=HqR5Te;;$H6puh_sc3#bFuODPDi);-RQjJtt+Q&o(so=r&-1~js7LK z9(8ta42@OqO$zujKK1xlQ>G&s%Gx|PdNS=*`$H%j&jt(3T_u{`hMwCyOhy7P@Tv&C zAmnmI{rkTkr#cwt(DMclj68pTYHq~|brqSk=CM-JMu&0pF+kb=ON|r^qX7qUOl`Y; z2vS9BNWMYk$-+8I;w9JaQ{5}f#uJ5L;QaVm93_-u!LA}rT@`^V#(E4c$@0uK3Ezbh zwTJsqW3-4uIt>u=8w!Dh%dEMNzTZ!$;4!H$c*=maWv0#x_O9TE-^-hB7B^{-3AnwG zgmt9!4^s(F_T7nQPTTMdRj8OMDR(gQbkcy#tXkcipy}wZp4~Q(n{--LNoCC`dO0xX zGqkZ$aoT#iGrjr)g|?d!ZT|AFZ&|I?+k^J5S+$*N2SwiU5dL^&-lf`ATY#0O-s@;F zD73uk?1uxv-HP<@8?Q(B_xn4$b|YdL$v(he>!lREW0c1~ z0sYjMQlkZ@$OOHLhd>Llh1mB;(acYpR>N6Tb$dG&zmy4BfdXH_1z)iicc^VQ9ACZD zvi*rBe{;6x6Waa$U+Kz93w&`-jr4=M!(=%jkHp4H${&)@@K1p8-H{YunWPHWaYJyA zd)3wA>9CZEdWJ7U6wy>eH|W5+Xvo#tG>TuBULh365dYQa=gql)q5hFFkFi)CG$?22 zdml(VPX#d|{=D^U&?&a|tdJZ^EJ;+XAu)6FKBKY@4#l5O4 zSNvl;X({;974>)kAT0u$e7{(g@${Sp&E3%l z>u!y};ylh2W*D6!N^R@Q=YMY}S0e}dCZ4yP%gNOU6=vCmrsfPekh}P`o&Tws7>(uQ z(dajtBD!d1YD!@a9z44ah0Z;b56F@1u! zL*qeU)!@mVohhrWPiukHaY|g_CbVYmbh5=j%`9u zNrM|$I6_*HYSs@{?)8{MutK&oz)3*i=EX0lGY*jm=EWbD(ym>0$&@g_-Z$JME zaL;}=MTMzTZEB15b9Wn|wH7(Kw3t9F_!|pR-p@sLH+~j~@C5Qv=5W9unTptayTrt2 z^jqieWt=mTTv6f}sZfEc5i6kw?AGmc=e-jbjmIwK*OU^R{kgiCuwW3E1h+r*iB0KE zPL*IvDtMs_Azrc_T7nNp=%?_biP{u_Fn<7A7D6cagCpZ5_@JEsLEl*auS0>cdf{M% zFki~FI}@?%?gCojA8p$2y9(7^hz~ihwby@T-D}-{xBYPZ)a1dF@I-M6c|=tea{-?- zI$`N*gSWq^Dt_a;F;rYLFPJZgGT>E-zu3x-K)Sbf!TcpI7z&7lj0O4}E)bOS5-(UA z4CSOI2XZ06d?2Xx%+TjYq~jvNnUtCsPMDRY~f+BEHYca$!Re-61z`g=Oex>obVYSY#@$<)B$qFO;dJZ|>v)6Fs5bYE-= zJ{+q}C7sU?Q^ev`sT5((WAMC~uNE4%!ngC|=US&@9a7y5p6~T0&G}9^ zy8PRH98u-g(-%5=Y*NtrFD+_pjE1dlFw^FE@<;cZ&qguA({6{%8RS{N)>Z3?zrK5D zQ}PdB^H#ARTY=ZPQNa)NreK(e64nOJi9l*FbE`LK&}Hd$&))q32HMGWr}G~WUYYH| zxn#!6k27$@j0(4lUwgw_500461RUlh?_P~nR-{&Bny`Qd&_XF*W#=)0VA*gLCv?D% zFV;3cq1V6lsfUB9&AFNdi+*rXd`BRX_%wLSO{Y6MSy#Q`c{|EtH)uFuiiP=lNMw=S zOgw|U9&!NkJ(L8LXM*>MsH*g1o+n@9VH%Cq;!$)E4ivRTSfKDw1)seody_deujh{~ za`mULA}_p#=pSOb_U6fi`Pzz;CM%!$iv-=UsN-V-Y2K%2Z};BV{QlU*4ORwfBw7jdB1oFRsQmBnW;}3`Xif+)!V?J*plAa0*1!YG|P~62a(CK&tNn41{{}{o9L7 zJ3}bN3mBK;7weRQrhP`~-kFPK*O{v>KwfiX)AiPF+QivZkHWBW=F94iYo(h@Odt7EgQZo1gN9vQC=-zSpI&Xg z@p88mzU9UEC0m_p6l8hy%D2b1?K9hXs1&ZnMajAJeonsUnrX=*SMB@1UFaWp%CWRK z_vaqSbv%xemE;fpb>LG^TyKG>tymrTm5keAP^B{N!b*kay8oxr*gGMu5$_GqmaRS zQ9@HLTYGx}4}7;DETGC$HPGmQ{~8!LxAL3&kgKtvzLMYwFbJ)pg8-Ni@&cUs9H4hyA)}`2&VcB?H|+E-DR>1H$lmO7 z?WxDW#Ydvw&L@61tD7lzZ$8{ED<>bwSm8Fu#%J%GkOohaKfd2H?^vdx8TLMmt7V`1 z)xT1G-g7;zf}`rGuM***^VIR@S+BvMVokM)=sWXwN`{xh<)8jcm?s}q46No@ZTr3~ zvubrZT^o2Iy}7fS<5G2Q(j!#&d%8m{noYskg1k&G)v=n5yONsI?Pc-l|GWTMU5aup z9r;@mm3F7r?{eDa?fqnUd{-Zi;@Ci1mf4V`6tQ5AhcK{&E{Mn(_<3TFB= zd_zNZ_{qIO2vk)Vjh?Bo0B$MJo#M@D`6fY_uo#-Vjj>&xFOw#OPDDb}`o&AHPn&Zt zm;CjVBYAG{etXi5v|gra@V1^VXgZ6N9`o~j%^Qx{Bvvd(kdN)Qr7h;=_IUE1C`aYR zJL2tX>^e8EG+YSEo(G?)5D!+szVfkm2M@(c6!`Y|Cwx6mn>7kfG8qhYX zbr>ZdDAt*>2gGgMseV%=7Ni0KYWlLI>Dk}@;o|cK)CxeCO?kY;9>l{FOY>NY$tpSp^LPS|cgRFBsBw zkXQ7%`}B5iC~1ZvoTQ4t8S4kW3)LAXzpnMnKw;rU9u&;}sXWS|K~Z=-f-CPwOn5Ck z$4)J135VhqE4cI|1#YWKJ&Y=1y_HLp|5@AWxtTasZ}(3#LKCg+K<;GF-mCuDJn1Z2 zW$|p~2a85jpa}ZcCq244xj5Qh$G4(hxg}bgmOL;ZfvEZhWBEo-<;HpOwRFd=`DQDx z{ML7ik=u_>-WEJxnU(SV{mQ}K*UeKmJG(ZuW31rec`}AjU0Xtb`|j4HXPfzHtM}oV zk!wNAQQyP@%3(GZH(rGA&zI1H#ESZ3AH)Cs($12b9TM|B&N&wa$bP+Tegn;bYgmiN(tuT;?n&2II}}n z=hKX0nH&X)+9?maeJqDd86+6VQeC92dj}FKwlmZyCHx;Eo~glRBI^&#vY8aWaRkB` zh_R6anf_e>j})RitqUD#7_ihpXWIPAq~QbbOQt_nKw6)?GcwXK@aiHhERYwAZH&N* zF~z#5oD>QsXpDFbOc7Lq&G|Jbxc*m?kBukTu4mgB%1{tFVbHl6K@R1}=~aBjv9$KV z%macKFwkya+t}1_m`L8+1lrZem!;I4uJllN-tRPdBb4+FVUOH9c}_eh-($L7%u)yQ z0o;Plke7vdx$(u+TKd%1!A?0~=Hvi@HAF!Fow!(#k{-bM(sDgUP+HDrwS*qOSSJO^p(?#CIMbH~?H$Xeq{M-Av(hGJtEnIGpEygBnARTbKgbeIeN$!Mx<(X*0{;-Ku&#vN^mt#Bol6-d z3QUa;&ny(TJ8e4%49nQIF;r!@6XWsyy~(cNZs9ce23Q-vxhiOQ^9SFLRitM9S@^q_ z^Zs(<^S=VEXZ=0(zDKkF2H#k@pZ4`tT%y6GwM1;HwVZzsy7JG;=VW+onbu+I(TI2y zKK9P_%WefZ5KL_vl?YEZ9^Q^-^2f&SSm@2()5$wa?{Yg6cyO{2B~)D1C^Y3Yr*D5e zPj+$JRV=Sv*%{6TjN_Pex9O0ZCI|g;_K9EQ(n&xAd(H4fQAA9q>s5A+?mL;G<`_yW zm;=TE&xWS=-E#d9b{QL%d&5FlJzR0@7AKx-fs;R_k1*d@7Z6r!n*q-gH`$0+;;PF3 zibsmVP}Ru#;48uY$x$goJ;b@r&Ua-=VVNUww`u)3)ki_S5Iw}DU`5JouF*c&S$FfM zbnnP^i_n4+QTktdBe7vw&2M3kX5vItHrkA}c=u@e;|qKDG}8X{#2+vrOx>Jm>bL>15BE!2*N@i!pw}3J>L5qa^%uc_`CC zu^?0e_(RO6N^qYBNS6-P4H5roHv`hqS1r8#4Fa5K)*5`d!B(0affS19APT6ezdBk- zOOpXa&4rI|`f3vv63Z0`S~(&4#4vI6#Ul&@Q3)K)!6O~O7G3B?{AXW=f|IeEu95)k z7P2*b*mU%>^>hs`LI8d01cMRlp(+?zQb@0ipW|Xl7nvD&=(d=^9MaIfiD7uSkcw^f^uz zh8)q0(U-WNV?uBuNg8$W{ar=6OixZiKK;<6EudLP4?MA!zLk<^^5cQ$sh=NdyX>lF z1ehw&EFT&i=B2BNf0Cn6-N5G4{kn^%N-wM|pOp#xX z?FypF`0BFyZEtV)u>c8h!cE??Zv9tD-id2nZ`=u<7|4~ys9%=mp<4V8TZ|bXxL{N| zVj&beZyyg|(@Z^*YTDV%c)wH8(cIEMFg1L_A#vOufth!izjq#gsb>4vVtaJ9&lG)z z->Saf#`uHt71euwzHR@U@KOU9SvLpiJIdVQsRsVCx=0ERSP}#(+rqp(Q?=hgp zjkB$w_a{Eyt4Tw0z_0&R|F)AgH*-OA%g6^UX%mjC%`Y*Ln3LEl6vBH|5OTwS>t(^ywep#3x zrO{}Fx~%z6l%Kh@GpwCC6AR%ef_$p6>%X6ks-Ka(CxQm^W-{?}K!x(bmnXLlC8a*> z&5?ZkuMhWv5a@e>k>HxSl(%W$YV0yjDxWT)T6bfoEQL2n-ZUTYTvTIx9LalATKvNn zx|D1-ss;uRA2qs}pi^q72*7a&Lg=9W%!$VH;{*8sPH9w>PzAr-V{#h!PZk%>1<8$E zWD4-h&twq#Uvd72cGvO9%hr~+dBsiZ*CYOF74fr}bM-$#A3x3Hhd|MS&?yuG7Dz=9 zW==DIoU5d7L7eRCV z(DHjXK`9)&(y7BSS%a3UwX?lG?b}*qkTO!^^N!r#D&A@*PLWMQ#v(YAOUe>+tf~Y7mt6RtKrf9&;Io2mCGA^ zx{d1G7waF6Z@SjC68K;<1t$?X)dyLn^y5zzmitB}vri(oeY#hF43%1K9UoZIr0?Vl z;xYkY?RT0=F9buQla1Dby;bE-PBEZ;{{2AU@!5>;J~5Tpyv6?1aB_Te10p(-aa&^d z$ejKy#&YfK@GVWxvuDo6<@D0`E3M>Ac2CG(Npds}C&Pl8r|eCng1P9pCZ~6wnL@B| zc|L%a1ZKCnLiiRf!>)3wul`Wg5&=A0z>jWWeEv1zA`x&vQmkSyAFa>!(q%xVaSLap zpet0wMpID6uz~n=(3LU#F!p*E!0<3Tg4P1JqnaSMq3D8TyW$Uy@s3r94-96Gq@}ZE z?++gB%(WMZc{YTJL!-S&hrj19%ZaAWQ|UCMt$8DPOFhBzlKsuuRD%0q;$+Fd@^p)r zVaw{NY3O@SQACKfhRlhjh#=8IVjd#i#0;l|duZDzHTrI+Qz zIxdurmEg0!>4?v0tb3QJ3~K`#PDB#7zm_#c;q?Ew-z(4iYIIRdN>+SSz#M*`Orso& znT9%gB?-)8ZrQC2&ZN{qfIJK{VZnGk3M)=Df)j`=BJ?x)7lzva763#2Y75J+S`(%B5oqm_cj61AO$C*K3hZld&?&%3I$ z#HL%!H!lHm9OLue^PKbN1n=u4DgeEG`nj}_yu z;0cE?NhkY@Pm&`ZcDnLyvM6Oe$#|v{0|v@kwg^LWsbbj_?jO#IH^z|WrQLvK%6cR zL5SZ#)5&8Z)SvOCz4PPz#ajQ#%Yu2rEpdRe__TAeA7A&>ts$t!^X$7<0)C~x+GTLc zvwL0c`rrA`*ig3WdaUW**KHs2Ux_3Sf-Ciy?J5yiR5Ku~iv_V=*SY}(R1v0NlUDI> zt&0X3t&873nK#~8Eyl-*yFWY#dFZ|^{QH|Z(80Orr?d_8e5UsyyQF(<=g>r#Y2TeD z;chsO4+#FKE-*O_GIUS7NHE+!J^k52U*I+JK7%XXF-wDiT5-68Kw^v|SkT@7)`02c&5B=>*T&1=+tj5UvU?PcdwJPk z{P`4WHYqK+T9ffeOhPIga;JGOJY&cC@4NYvXVjaczH`JYtuCi`U8<@GMRue|&QBX< z{tjy6Y8+3@Y1lqKOS4T$yg!q_;j4f~OSx&wxgJFelpl-OkbgDT`d*}E0CZckRZ1YX z&_yVZDoLMG7paSe9{-v{KWTD)I)9&*wp|GkBQ6#@pa{fJ;WtXx(vF^TQ0ipjiEL1K zGByT)^uP{v5rEC5f>NX;fdTuMjb%;^R5z9mn&5a-ziPB53d;dzc8I{D02Z&q(jwcO z>k?DDb0WYI1tllw0k{JJQioH#P5Hp(k9|9H2!C)+rF|fv@C+>zS5f)(um&eMu-yd>k#uV4^fX5Kvf_ZQ_crydQ})lgncy9xS+-k-204rW~svGwE5KDb1T^@qo(Prh#0}@ zXy(Ee%3Hr;{(y)|NLq<+Q-{kD`u=3$;d!qp+)9FPK0u4o=f($P!Qr6qmfObDovnK% zt>-~vgEC|}()>iZ>+1=Fh>zQvxRafV>Vwxa;RS{1u2a;hJ)h;4I{Mw43Hy9@6(ObP zc`H$Jrbopd?X0T}TwP2`S~tvdK^)YSz+S2+XgGEW>eTTvD9-348RIs*s$YJ75k$l0 zz5i{m?fg_$|1MmTFjOBR``+Hp+}hLg%e!~=`|I-}auw(CcDO*ZXH(9ejI;{n9OVGu9oJTWLRizjV~C=eN#F`+k|PHNkkTCF16N zcB0oFo=&eEte+Ce(|cdiT*lV{&is*w?QX9X@#sgbL!$LmuUs5!rdT`&8S_J{{lRcrI*?5*b8TO{)@H4P0$c_+o*bCGdP zOTBlsG}NJji&L@K7?H~h_b?8xmfW5KZYrZ3#Q=sZe!4{jEe%(ZGB+%kGD{64EEX-( zh2Zr6PkkJZe})Fuv&>%d2ZJc2pM^h%e?p-FV&g4xkx3XriE=BjW2L(E#3nBuk59=5 zZdtBfvgl>@g_QI+&40+G^M`|{zVo#wDb@MhalN^pH7J9F%lKaClyD%KnMZw`zzc`6 zlCD?me@}8`>V7g?{Icbxn=1v^_+za&%@x;Yak63RJ-=4JO*W|FIPEjqs2|v-35J9l z4##L}znYki-v#+bh?3&(w%KvzvKz(Y4(@<$Iv^F0cas{HfsiDzJEB z;m`0Aj4q^G$J_eq^&vf^4lQ0=vVN=qsU7~Cr{`AROAZLEohf!@7CUwo6(A2))zZpj4F`P9&Z)i02K4^_k#b)EgM4 zXiFIMnZ@hQ9O9*KSBu!BY9eWMeu2@i^Pk^#wwK_$LztTRNH__lne26ir_XSM3fH5QZ+#qU4K`AQiJxk`Te|L$gDh8mUb^c>IS)u-j8T3 zm~tTdTdqud-YD z?Yx;IAk_Hhn~$l2!|AbBNiu$#R6BahZq#57Apq@h`uf@GK z??e|_wg!fi*=xO$`)kxHK@@T6bQU3~s%}%Z)@q z??|yAwY9XOx;INZ*?qeY-mM3YtpurU1DIdi^UkxAcN?BwUc}L&yyN;J!}60iXPCwy3Enlc8untV#8=Om{#fg3vSMo+1N~cZ1_l}0g8J)6W_qNe+vkq zh4|-63%-q!n)hH_SJtKA1ZZEwa6@Y`4Gi!3^vz}(tJ4*$2=%0-bQAfCGrXxE;gf4r z9bJ&;y6fg*oh~J$!i)}Gy~Jr_&3cVlomSbrCO;fEer=Ufx#;!+rSQ#Eu)qWFahc{h zaSeb`rZQBd!{(aP<$4gj1MFiL+w-QiyVzF7^Z@83)8#J+(~RR8UCx77>LNu%S0 z>h;OUWrC>ToqxB$rKArdJP~_&+zZ7{xg5h>xe5}0KvjBfS zq~s-+0g0T;m$kUDE8|VzuQSC9!@nlu87k~n1L91*rj`cos_GBv`t6)<+c|wmoj;z9 z*F%rNmh5pR6A?;p;*`yX^^m`Qr+#C~#;*#B1fzOx;dyFdd%VTwXw%Qm$IqWlsBUFWHGgUT^|8EcI|-)_m$19oClUO`&Xk|(qbYR2 zW=!^bnO~HlS&C@En;?FVpBuNVW=ZIJt}5bG>oPCP9+ zpon{QD%5hDf!K6j+~2)1;IcZi(PX)@gY@(Nn`5N+_iE22lKZxiU~|_&8!c(d{_XR` z&yB_kYfYL#pU0vSa1jydo<}!HFd$W}{I7`6&2?PIE zsli+eFbW_82@%iLqNPFwD78))G_?`XD{!a;lP|J9{`}3=5~2g8QQ=Be$y3LQNY;N( zETjVhD1tcx1#_RHaV`Scz{gnNmG#bZSm#s3nMi*_h;-Zr6A~(*-)C=Bv$je@~yF3W)9vtrru# zjvofkSN_SODRl~v2<31hn?%eLc)hpNb44@-K%mFo&%?)1wnA@M9@%E_b z=ZQ5Bl(`fWZa!T96GYlhGA*=Rb2uIi9UgVHPDw~`Uuz%Dn<y?m3`#;+k`Ij_*@l7=6J3qK-ia1WjLhKtjMAMQqx6t+G))|kFbVtCWbR%}tv zBqc3z8Kf)G{bIJiq*o;Xk6&OjkI%H5!Q+#|us6jT@c9sU-7bpV(4^W{^JiK55>LV9#T%TmIPDrUBAf@~f}z}Q%K4}!k2#kQ zWs|9J$a3)zZhXI_6Yeo{_Lj&oV~bICIYRD{2uX;?D&b>`>r{_mQw+|a~{AC7#SWe1uJ~e->BV|#Yh6o2g#11WN)|VM!6<_ zv*B@-av1-=xW#)nTNub0zGmg;%a17xO=|oAqc_84ewAS1msi_p(RniKFlA-XO{`*8 zmmuCb0$rE133W6T!A-IBdW`p^ldZw zU0;2f(A0pTxDkH@^@G$)f57<}J!AK;=VX{lL!$ zvaH|rNW%+7=fo$)}u;Q58q+jCOf9!pvubMEp_mK zTZWbs+{Tm?@kxX_NnrF3Cm$`E+b6CNhHa=z#SW`*KYgz<2*se`A* zqp%IBD|#3?imqJe;S#EA=y0uGjmP?xAKun?-Xh3@>0UIp?33n6r>$-_!u)Q=ZnAEE zzff-3jRLc?eY5i2x5s1O5_FJb8gA%h7is&3BJC`je=+D1sM@lwdV+8d(T5e&wAA#^ zy`-EZhtnSUT7KFnk+vAI?faRp~r7LP&0JAxNYerX_96Y23kOa>(87_jY5Y`FiWxL}KTc7N>CPr>(@; z!8u=xK_ZSc>(Y~1z0P*S-L%eiDQmm#koJ<=6DPM|dt>+yX5*?Rc@04u&UVOH{P}CQUt1#ybl^p=RIz>C1hVdS)q0U=%2pTjdFLIvg!p9^wnwye1@zakBTiSj-7c zb@Kb&zFVk2L7YoXZde+A_fg^fsh5J3r%}OV@y3>1?Z@t#3g@fV8{c=;Zt!@Q>T|`Y zqj^6&IkK+>#^2yAHYAZnFZ?{#-$?Aw%wEeyI_jY7d+!GWY?i%i2(XJOFp%TrY-bFyL`u7^O6jGs_ioS&<8*P4_C}WU@!+X^{t)61T1VuAv*HI5?sRD1Gkqmy7 zDDg~N)k???|L$iO^=PT{*8~ISJ|3_F@J?`gb$M#ut!TY6q>{^7mOojC1 zt=KHPRKiT{T~lIXlvh!s&l=I2*xEYtnweL;RAJ3?@OXmc=jL{tYY>)|LhPEN?VL06 zdvUmRXWm76s{3TRd*ko^?DVTrqBicu*5JTE)a7>)XKfiimj>KB-t)e7RZN5UI|^d~ zdm_S!W1uk0It7ofWM+0d$%h~$5+w`bfqrzZQnWMi`GA`W)kg-XEflH<+`9Me6C=7o z9N3nvLpNK`V+nn(pto=pbDhFuG~DtXz)J{$uU~Z8ZF-Exu{Xf4_1rW*EgAG%J+~3a zVe$h4ve$jc9wT2WAaYOr+8JBV5)79|d#&DYZ$8?clQJRW2IcmDZ4tbBo;#fC?KTOE zRDZFv5hp6_PH#FilRU_uXz(v5J`mqHuB&{WBkk-aR43fJ=U>ww@eikM)pD0!@}yX7 zgdp&s{`bFH!l0;0Qj&esT`OzVoaB1xKee1)mJjD7#UyOHUG&8gDy<{vLhS+)lGno; zQbfgci};^BJ5Uu%PfKGxJk18~U-z~-O|mtyXUFttNrJB3Ox!IzN>oHC#@^Um2_Jq<>8~M~52}Bgo_=6-zmx zV*uw@hGKYG5PUmkOocY1iXo{%bWWZ>qojsZnCA76P$=E~n}Ec8$+6b#@aTWdtb!lk zxSPC?XH&(+jKlkXJ_3x*F|WGJqC_{`E1DW~3uNM;hNKuXq=_mVnX1NbT z6Q$%m&B%Vw%_xfcOFnL6S1sM$+R7$2__9}4p>pv3TrgECf{Fu935-d@mb9Uq;*?Y> zxpiU6nOrEo1vQ1E#eu#ptD#voo#GgS>yLK6)zlyND7gEz*6KVRz}?>8d|4}K-?;Uz7Q<_`-FTYb z^U$4K6S5vveNYruw7wp8di`M`&UI(*G~JaTQ43f;&=W>A<}<&2XxP)!4IjR5=Pejs zqAK9s)HRVRjqRLib)1+#Ytwpe`foCnUVgSncDZfA?_vaGRku>^E1LJ#lAv8%_D&!q zmkMeVnN`F>!pl@-)q*tYshX z-MU*{BPitg=8d=ZNVtD?*_J`e*HKoc3w7;Yk z#l_bQrw=#hPlsl<&)Qwm$xRRD+&sv0K2m;vn>9Otxgoar$?GT0{MrMDqstqa^VhVJ zq$j$6zKfF3V!8f7KOr-v>D6EvP4u0!PgdmbJ&#TnjT;9}y9qRw`Mfme)x7fgq`sRi z$MYA*gHInizRhWU))kg_!BDw1;N1|)-n1$#U$E=g7Y($_0RCh(41iEKgo^1C%w%-E;=+Qfm+>3HSo@L_nL(}5z?Uzy%N$(wlT(t?aVhh+4%NEX-=0?# zyPxLd8OuGmb@2J2b?uCNMWs{E#q(ub1s6{>Kp_Nh=D-A1u&V_C^LZi(RpJV-SO8o|g!VJ5o=65uHE3p2j_0CA4NW5M!pUFaBech?sgJVJ_7W_Fh1>os>~|~4 z=Hu>xoX!zFHpJG4*5Ph5`AM~$AsoQCye7O7{?=MEvW=jkQDCEU4Yg{?q<_tyNtf@Q zwb#prl{og-SgQD2scKrvvOo8F^?`}A2|``PBiq#B)Dn4C<+qw*Lz|p@x62#v2Gmz< zP-R(I=?Gf9D%%K4b*O)1?PD%%(+CgKLm`D?fFT4I7A3ubJY;X_+nDi~z}5UB{B#?H ztG4t50v5dBN{5Ww*K9H48m zkmjOR4s?6P+%P>YgxdFu0utuo!?jm6nu|j6R+c5|gbC++AIY}|cEXc$Zv#eIe0#E9 zc84`r7NrLd0~L%jc-Jvr&si#*FN^alcMpey0h{^HcQ*>u>69pNt_6w`F+$lQ!B6y+ zIf>d#V>>r%>A$S3Ozbm#;sS>$QOTq#QmZOKd}g*br90xbkDDjuLOtsw@8De8W>ua) zI<4A14ONT2D=0!tNqwjK&SgZOGa=#P&(hEQGIBI)i|b}74YA47&TT6YH$x+-E?U*n zFpDb@niUHv3XzZ_Ey_Kr61C0!o&QB~gDJ&QoB#zjgC*vE_+mbT7>U$1hte2dvp0VZ0MNf&(BeGi*TG`qr4ni)o-2!Exu=NZoC|G)iEDzqvwsy4CJsM>opTBEj5yG2p8YQ^3vs8O@_j1j9SwUruQYSgL` zqxKGJ*T{YKcl_@s9_Db6>-v1&=leWg=Ld_5pD&(UeNbAuE3B-eu7OEM=N07lOO^IM zP)TstMTM~u0XKmlvS8ECJ%jLi6yISawhE-WjwWG zQzX~g>7JeM8Hm%Ly82PwZg)29?wj3z<64U8I5p}6RBZeoAB-NbAYem-XlWw8bxI>_ zxs;Y3(W8LCLkw?9Rs@*$gL{?eiy8$6>MIiMt8Xl&kv#yp*NMBDIS1RmvN?*@dKQ=U zB4>L@fdAOb@(ega{IDWHtLSoyxfAX!J=yK|7tG9@Fi)DknOka~XfO_@wSIwE(BhxA zTpv^C${{^}NfD{h$FUNrQ<1+amwki2KcV3m*Ux+wGv0Rc%7U(fdoo6_`Cxk|_n>Da zz{_WP0&cD?i)${IKP%I=aJ#v9xZ<(;+uUztrmeYlA$gaQtX%yl&LRWr*K_!cxz!QB zh73Boq2i81iQMMp^Ar<)5H~!7Jgf;rmZ!B?{%MiKman()DZ%HNlnA>A^C+zyGu|sn zo6rd1;xx6$L$rRD6<{oOE6dp(eb&s2OZfKw0;N24i}*uRp=qgr z9>hrN%G+Gu&HNQ^iHwt_;C21BW+&5cJJMxZgJCE0oY;2%>0Yght+y_0*!{FMv_B0UU(JuCsJyFX zUW1Rej*Qz+&y@e-T)0$Ls^*`}Ha?zh?pLkwZuLcr@0aoN@-3(GhtCQPa$7dnB)@B0 zT9iKmzHcBNnM#2 zx7Z4F8fCJk;gVYitYkEa01QZx{-GLN*;N9`4TaayC{-jj`hC!K_CL~OBSMZym1Dv{ z1?t1b9Laif>TCko6NT#z*Y}HmqtpmgmS0W?6^>S4Eepx-FVoq(vVFjWcqA&@gNX!a zW0k-p1Y@tM<_Xbos;5U*J%|+N0zPF3Lyd)hue&CVD^T&-{f12OANmF*@NZcKCsg}J zK*N>?xT;&ymZZH;GoPKH2NoHf5;o;1~7 z0ZRw2aHT`!g^rjVrEnBSL|$WNjPi@x;0=7&J#H7I6 z3Zi8kq!iT@bEJJqXKG>p{VbfhLH1H)f3DqngFTXkQM^H3_M&Jf_a+6~UW>f6>QLEQ z@0mB+n?^3JPRw~MoFCiC|LyFPWr=To)qq{sy~~TvAmk2p=(iT~+Fk8;ADLh2x$$=T z@N6$|!-cmETV}1U0udD-dN2_?dY~5XH#fC^@mI{q%-6e2%42bFoxZz42q*8hd~Wk~ z+iSer!^L`9ey@3lpM#74w0J6WX|!{YDfgmfCaS3{J$-a`*0t3l&)VyL2_{BR8b49< zTKuAWfV6T)DTuw7Nc}FOtxF95uJr!-=rdbshO^e+6z~4&^1@Hq3?{RCVw9DmF&XZL zh>V!T+bBg9wtE;piS&-wuTcWk3%`g{2o;reL`YE2M$Pn(%|xH(tRtQWoz^29FPh4^ z^ubRflL(=@U}7Az!J-#dn)&29J7~UbwCN-cn|b(DOy=Zz@np`_<@zl09+Pv%VM>}s z;}=mJy3;-Is$}sLxxdiFG^KD8+3vct(fcqgiQ(Z9_RONb+Js?b&gXY|nzI7_cbUE% zi>Gg0Jip7Tt>gfu0iTjYbS=|=-L9?DQo>&!Nl6W^{N^#7I~vZ$#xp8RWEwM8k_VVQ zW%Sg~z_eVRn)@I8Zj%|2L(0m^);1k_XJNepVNRB2{+mneobg^cE$)GRaS2w*#&N04 z(q4_qNZDCe-LD1EA7M(`GP*zDa#Bs7Ki4*R{ZQ#ZiL`DezUWy6_OX*XtrKMq8uto% zShrzTw!&O>l%h5d+nPn3vC?QOXA8izV6V~nhB}llx>OzYZBP-}?Dyg0I(=9IPLMFN zu_fzvBH0X4iXMNsPS4N#cM5tmRY_Emi(2lGA{wXWt6I0>Z(hI|?-p>(nVhuok`kp^n?O^q-QX z&;p8zv+qnj-+t0(EqK^FV|Qg=;c(RfhpT;m6Fm+FJRv~pke5RRHBJOXh5?U=9$eD- zDYrJGLj45o$I|@92*?~0Wb6spwipAtYd~fY21;PH@<^;zL8vt=k^+0T*B7gO3W3KH zWc?2cp%9`xfnQ~O$avxPISd9x$Xdqdgw^{JO#lhT%!)dJ>6PtccpoT#+UtL<@HhPI z1n&~|##Kk@HW7mQ{^%wS44B&s@}SXq+Zb4n2oqm3>GC?Hu{1-N)R!U~-?`|!xI1{Y zJLmyn`nvaau`OK0f2lf99WI@HPc7DjSfE#{gu&WggA14zwcQhy46H#wE2BGtoXwjz zXm(`!kJX!nA$rrC;~NHR^Nmr~!ofjjQ&ahN>%hyNG)o`+6B4;)Oo{yKg1ViMmYX)W zg`mDYft?ZjxAM@6)D>vVL3`356lJ z*xq#N+rIC1l7in($B3t$-EfDSwa;}<*xB)K3j8jUsX@-wga{}E z4T*vyBUy_;u%glb6UnVtC>Ad2UAhx?ifDIRPOGYe-c6*QSjD&aAO5G;dBEd;IhnRA zJ8kK6H8~~U+V$u`z+P4L?u>BD+x>RyJ}ull78|g2=6|if&)hHgWru=M*37L+rmgcO zh{Zf$&H8WHO;{vL1CPS_1oxu<$ox@FU2}Uw?c>b}HGP@3y{=(moyB_UqiEG>b&+3t;cHU1#L!Al7%%NQ?95%k+w+fw13 zHb$r&{}DYgr@$lq^|Rk=>n~rvz`i7RJ$G4mPrD%;J_x;2guy&uXQiBQdq2Ph;#eYr zD6=Xxqky0ZS!j4F`qw87c5sg-Tt#P7ooB+H7hxL_4u((67h-OSj)NYpW{KTKQYaAs zhxA9Agx`6zF~avHkar5Gfteh6>!mHmq(uGS;jQ!T7Embwc$i9i^-O?AMtr5_wpd+X z`|o*4tc&bd8Tt=9&T?kPe|u=Jc7@EoM!J%AYK%UJc$5Lr>3pNbx5Yt2_-%;%gD{F` z=v;tr+qIb|yH+rJA*rKULQaY7_qjL?bPSXLBZP92m+)%2e^jJz*ChCNKL@c&IX^AY z5)=@qj^Wwj$R`Nqd0B;1C2o*H3K$r)hZH1=ly{M?#(Tn~_|J_@%O5Y|y@!grl@mtF)Iehcqdxa4R zCJ)v4-;+5DhD$Rh=%7GkS^1$fP*Pn{_V4rI_7Ar*?!)+AI5MixrU_kN8eNYA^o;iQ z=3jeWfos)qD~?}pPP8NPJTV4gy$~_#xA_@XeCSd>dkoE{4%-$^*ufcV;5lEGmsH?3 zZW1P-Fx4s3cfOc&ej^bZSx6A+ci+p?T8=rs_^S)cJwwBc)2=&0#`3<7KG)~Vr+3n{ za!@7#H+~jz0@Ybt_7e|o<)M>H^ZNyYr4i_4uCGB0Lf#XcLDwd+DSSdLe=y%k?llx9 z)wLj5yzQH?bh~Z8g~LuppFdbYTDdMXZOFT=t{x`EdnEQcGz`U-S|Vq9K4o1mrvZEk zk@?K@o%>I==YxI^M_g=aWzRNBn#oo8$co6-2=gdYinlpk_I@f{>b*Md9@u^i*T6pa z#9Uvp91XSX5A(2n^~^T(^!*~718y>GJ0h;`p>zI}$y%zO-&-VQN7_F`@E*cXo5-dj za;E?UpRkAhNktPhwEDhEEK-inRK7dB4CsuXd?2F_LV45*GmSqS?tOK6`Qt}*Iv~9l zkQR38g8}yBe&gHVX8|JzxhzflHyR_Rvh82mYXsjia9d@V?R|~em^jLw-w+%QI2@K~ z&@MLc%su{MC--?Q=r@A|#jj`M^U^1`jQ~HRM9_h`r^_Fi+~f1Jz}4@bNUui@u>9;T z>XYuM72a77q(hlP#^PuW5~m-}(x~5jhdW*l$SyU@ea=wxDTW89{(mn(6X3IJZI{Ny ze-*&J!78D$W9#e7(r2Xmy+xfj(KT})m}acGVaOIL>m4APvH!D1Kl^2qXcD4LcyMMg z%l6lv=cdjp7l$ql1~d*K{CyZ(e-P3`yL?xuiDT2(Ju3M}ya7UKuFZbx{hPM8Q5Z*9zT}WngjLKaq9>+|FM@-b5Fpy*f6K6Ytzbey*!1!}1TbVPzRS2prWg(=?jW@~x8uzkeT}yOv?m<(G6t;r zl)Q&LSXn$B1^=1H0g8mvAZeihd#SW@Fi-gh%f&(8ufGh0U!;r>=8U{3Ns&_ebOuuO zP!9}7S5fn$4R~2F;;HPv%ogsEtQ?+`<3+#CINxOE zR&bO$ASPAmS#fuj=F^oAGqoKf7kD zP)SbwF}yW{en%>wg%z(0aE`Z@6%#xBd5faDD*j&esSMlPQRtM_kB94+|3Dv;^}GuG z!1(}mMHhj@Crt`7doC@udcE_){+%5trL!CFceV?VZ1i1>ds4oV?xgQG(y{tmVt+TS zVUb0EKkM>f>4~#X0oDEcUc2qfykGrK**l@ux@C3oZ=W_Z+?CSSL=rGbq`LcEv>)LV z{EMi}|J%c!F`Ak>_gbisJ}TLt_H^#(ke>YRo3nOa6x&LcfvF8xwB82@`Cr@|10M&j za0gM@dG~mrX5YQ@{79sim9;xr`061B@?n-sQM?TBSt$QCO^clVvmKEmLrs}T#_=^G zue72-Q@T>3Ng-zf59{7S4QdmqEWO zR(2oOU0;7j;yX!Ld|F+PuH-JIsbr)nX<4MtLLXL}Wi7VuJR|Cbkz*r z5Y{a%()_45yu>fn%aZi~ixns#oaZ|!xOPj?g^F|E1=h{)nM&)Tl~s$@#}z|I7D{i>{?roU6Aaawu=T}tHl z3HkUk3aH5%5`YyViOrAq)4O$+{B8HN^g(mBwm4%1K>{$t6Wt^MI7|)zOdDIsT& zU=rZx7vise2>8W;)HeY40;19|Ww3B8u#STBgcJIr%1|J^&E^PH9wrz-WiKbiynRBJ zFHTSHmmL?jWI!b}TG<@#qD!OL@G~1Qjfy-M-LSGvcedi<=^3I{e0_27BgaSo5(<0! z$UsSV@)eyYKk*aJs02kKYD#_tg2srfP&B*wJqqds2`4EZm~;QOp=EX@~+aJ?b1 zmzTM1dGV8S_;ih;b!?FOGoMrWe~(5{KpNCZ182Zg>OBlo&Mz{U%>pnCZ`6M^T(mLJ zVHY0dsAF%84ITZK>=v>6XSddt-38^F9_@b{7`P(dVA=MR{-ME5`^!C3*#7;oQp)iS z%awrR<<<RQsPg)H>LNl#01>mKiN*}Sf+Uv7jPZ2g1}FhYy12WQMkSs8H&}0 z*%U7Be=0KYdGm1Xc&>_m%-+P(ml?sMMhvarEiHf}zIz8fIBl^J-&X(>J1c3Fp4 zJsY*Z?xmeO-x>*8o*B8sRr}+pjLgmks~3X&KOcD0USw8ZXlCsRka*p@4A52nkUTI! z2Li%MfT15{kUGc27xcL?%E@IxN=a`ryy&M~qKTj}D*z`H0zhF}2)JU8#^uJD==ABz z)bMInVIwE|OIw&;G=9cBQ*uQrCTLVa+-26B(MfhCqXgeq`BluRKiS3aRK&S$}n3-9{9*i zALJxweHMS=J^ygQ75^Qn;5+g$X-A{Ubz{}L@Qt-o+xY9Tn#sw@W^2y0S?O#+qUjcQ zFK64{?o?V9IXhfdq!I1e^ZkVf_ulfd8#XCa_%%0=W_6V0$nU>DVMofjUQLIXC%rBI z{v^%J2g`(nNvM@~S!D>yyKMhgur|hWnrULSF*hg>xfsrU9`ZyFk;0{q5`h?ql_vr# zHZ?Y0$|VG%sqcO;tUyPCK84wq9tyN-qWNH1`FzLVyxLU{O4u?Eqi37~*nNuG^S%`D|e9PzI!6y?XFSD1bb6iWngOy z(+l}Bke+0Sqtg-5w~vBlJV<|}r1N~UB~=KZdIg;S?n$ezsNgy72(V$YyZl39@dk!j z|8RInN?HQUL!esPFf~d=gKxiq{8Q%l!Eefn94QSoHv1Mr)2I4Wp6~E0`70l2udpm) zL%vTNuCE+1v2aN2kPV`Fag zJA0p)^}kT*lT@`W4J2_}-Av16*O(6tj9outVOjH9+}(Ah{%%`o7r2C;TEK5gyl#}2 zYJVs>SZKIi5QpoYUgp9!Jpc7ruBvK9Y?kl`dbRcN12-VdehIuTLd_t*_iXdwL?lPn#t+QxKAtGas7o046&ic^Kg6H@^G8z@R=ERsf<=rg>V* z7iub+zM)*JUiRo_w@SVNfXI*%E27llz-#-apXn{|2$!>%H}5Zm(VCr4FPE9GtWe~> zc;LgUlH+@lUl>1f`P-mGq-nv$Yj3vg>|1Bce$#6=D`(G7L%%GJcWH$r=Bxcr3$@$- z9BjB;n|!S@Nqe%vyXu-wI<;UyAgSv@x_ zL+%S>DPdisDumwtDS!0jq|MHEi-@s!uD@I>%Z29dz)6y+miePvvbFi@MW_ejg$Hm%YgBbHk%+$ zLPZ|nV*a0Ef@?irbY{B9X83Jh44Ln{3>Xjaf3<P00J7;L9jl*NY}pJVdqZWHZh)SK-~u|0RTV_gB0cbQgv*D=X~dz4+4-^28cBr z#^iwotPC>tee*Ai{}O(?!}0@BXozb{hO5|}QNDuLhK3G2I3|sVB^xwNH#?&a^xc^j zhAfv9a3PBdXOm8zt>z*acA;E|~55U8oBDvp1W8yEDFVf7)x5B*>gCwP+|O z5%4m}3pX@NKYtKA^4!96$UP&rkHvShGrQ#smyW%Tz&Z2bz zdvZ6$06}tZP*A|pYrFGX*|>|15V zo%S!~Zo zJT6tt^i1w5Td?Uc#!A)M^?5X3=KJ&)7A4O2`K`zx|Hj>lWNF7ci^rD6dm;s@`Qx-T ztDFS2i*xk5tVWKLXTZ}0PN0fP0d39aO@5zE-bNxsBZucFi?bIT8?Ix){RwO6*sUs$ zJ}&g~`hR}>ZBbjV4s8usFXG+?5@;V}XuOph0x3smk*RbKLhdGX-v`J;1_tW9Dd{ag z?vJAsA$;g$tw~;8I6&R^6|^mb3+qP1!y(ih2qf)zgHt&MMxfL15d}t|WenI`t7LQ; zSq<0$>v|$U%OFffwywl?g&imB@v0!$3G@7t^%}{)eWsf~n2rDK*l{H{AJyM~a&mI> zclL*i|DkF7iK~j~uj+W(%$J z9Ll!zlbXIsK5)1XzaP}TS@1BUGp}k#SL8hC#`c!>K}v@|I?6CxeG)QZ1AX4_kqKOg z`lS(48_9Yg8=%h5Kr}^ONlAkUpbvA4So|$X={KV?MD0vZlTg?fw2PF$3if0AIfHj-ZU*iVz#EogR}Vo&d&5hrGuAFC z)E|~T?qVPOz^pSe5RW$?QE9_sZ1sXmGca zZ9MF39xG|*+h1Y(M)%LR%z6Fsf-wR%sG??>Q2|YTqxq=AW(CD+Bl0=t zwqsB4P$NsdbWTbP0KZbw8)AI)7{))7TI`gR@u~S)IJ>Gcma{D{n$o$ziPvLl{BE8fC>hzl(nh2{ z3>5bW*XfZdA|9gQ;VnrMHdC$3*OJ&Ee15i6+Q|?(%e}zU6NMAZk764JVkjHr6&Y_= z9z@62zShhP{yfB$o0v7310>AK0fQJ!DjuVA0*8@rs|l&Gs>^ulB1g6-MA~`h+Q8tf zLZp)j%2;~&>fNh1uLULyh?oUMF<=O_K2k!&ksa7KeG`CT_&91b|KT`mG=EC~{lZBP z8F0FYvXfFxH$hv&=(n#4#h~L8>rgcWdtogmn3*#Q!1lRw>23mJN6VW~zmm8ei;EBO zPFJyNUWmv-MFZ8D0!nz}cj^p}Y4}%MFtbHBk&4*pAPis!sDIIUh>rO0cr*-uoEmT8 zem;A%{+n3HyK^yUH#cyHz1$lxOl%@T9#MVs&30x53W$JCnSaBf9z6JwNVsH7S12(e zb{T;fU7?tII(^!k?##;>8uZxJ@v=b(PZwi4DJ31`HdS>e!AP+A>ZQwatNZET)e5(Q zJX^EfVt$MB<&~4rHBHvxI+L6-G(1{ay)m5^xDx$n0Y1%ZQz-D{XT)W;b!IvDwrEw? zv$zqqna9D;!-$^ntRvTn z2ASTHmTa+X*>E#)lFYJkQ*+~;NiI~`VNGl&YYJg`hHT@(&yZU!UIEv*XU#3A)oa67 zqmif2XR?JZIf0b%dT${$aIM-!W9}BcnOyxfXmCPt9~dTv+*g=;M5DmO9N30RAk79c zNaay}-1RSvBWiovE+g@Ik6b&)FjO%!l5aA1VZM*b%;&5{*h~)p?S@NpK4|2+f`77& z4m-`b)(~~wV(XV(6BzXQa&EiphhWD=DoLxQP?i4*@kju1WPHF@s*9*V=VLKB5#!1% zd=Y~J@`(GPcIm@ZR^2xtu3ms|drZB0$LW|O-gh3Oz=uGr&3zhJ2)HzwNh9MpBrb?WZk!9NW~yG$SFXaFvC2S*ZJE=~U;-tO{{3?7`h? z5dvCz`Y~VIo11D}`6yDGPmT-w;)YK!{ryq(ou9|}9$3sq9Xd~@U(H1*MAuy(yk;U9 z;zzGG{rgtw5U_@Gv9sCms^}9!ln}bCFyN35yB)Ka@(Q{C_D z6Jd4T=ilDY+g%Rr=f24(mRT^C_4#8Lc-$9w9xVroU^Row=IK1n%2!sUe5?pP%p>5O zgNJFcmGUCcHo~vNd1NCoPLKEemwvR7fr>x`Ji`#^*t-lu;OAkGo+G=t*wPo)8PUR? z9&|*CCn?4OxF={PhoTb30Za&4Fctvc!2wev0W~!1pNyuOJhJG26tyRX=FCnp+YKTm0DQDSE_iF)5+wFz1@$nnIau3wB#EJTHoe zv#ZYdPq6)?BBRN|L=INR0`U1X@P#;XDVr4sZg2`M?k#`X-p>poOgtXKaCq}v|VAq6Qu?{SwnJSFX8 zp}1uyyD`2m-_+nXjB6{@m61=)J)GOuvTjpS1C}oyzyOQyTfCm>nk~b&?^H^z(0XZ0 zG|@m2Xc9He+j^`7t=4a-uvOR7`&uI(n1XhvtG2e9lbHSdUr$|-*p^^!Z0V8%>Edkr zO4|2ifPfXY-EHK1{NM-l{N>2Q5QwRz`9W-_Pnt#Q#DL^!TI?*nfsPU?D&<@XSlyVN$~U^(xdu;Ee5%U`Icj~snO)@c5T;l_mb^0nCJ<^ zMDc%`=Eh3Es7ZG`Wq|M)FwhWj6}@GcmKC&l!ya$`S-<08&!uMum=@NTin)p-bd~Zw zxIqzDoo+1H1zCxE-{|^_AYj0u0Mf~SK`%B#1juHJ>Ra*c4be_6-eX@{%EZXZf9uU>`r{2^u|f|%Ch7V&U$$vj2DNZf zO@U+6Q78`A)Ed%{HCy7xUGBrC<}c*hJt_wNi^wj@CY>Km>D~R7^Dv$zfYm>F?8R4H z#fcGhw)h!0x2+0CYeP&gWHQgknI@uVpC z`-}y0?UM*~0f6~COr}&r5Gw+0#{iB>8KuTs#TWd^9&Y0@D9tfM1R?%c#Y0RmM#q6r zfot^ha{AgoejiGVu>nDrMQL(wBmVW@slq+@ZcWgECCw){*{sZRT!9*`($R5EAXoCHY zW-^_nn`(`_cC_|5sY@|@4G9FzY0mSn;P3V)>RZYkcJ9H_8)oz|F!k(;@NyJwB&v*q zcf@b#jza6-PR0Pk`uF81ssYFYYE1u(;g^?SMJ3F(u8e^i=`taktZY;xDBq#Va7{ML zLiSjwQ6!MDJDY+Q5nsCDU_sq z^WPg3qh&}DK4&IjP6~44#2m5gJ=;uUk&{jb~n9zaGt5 z_r(S5X-G_NKG)JDC${un(0+x@L_UW%mID0S5JeSMfzmg6lsfO7a1+uZV&q8;@wo0KazM8^vO{OL7&IWIlJiRO* za%nxq_sj(PHgIG4(YBHp8P8!UG@rW9#x?{S=+y^65cOE8HJ(CTpPD0EohsD{JSrTp z@40%u2cOM1g*a6!$mZMj#E>l@?O5zuH!g@3>?*i+z8sCDuL@ib@S*s0!%3 zrkIZys*laGEB`xT+j0B-f>x~Ny*~+6P4G};Z!u91ds1q+;DwCK)q-EVyoc-l1#;mq zB?3S)Tc32F6S#;MdfolA(AL7uRczOrSwCIp|Hr<6ZaPaSU-O5>5Uw#cI&NyxL)%2F zx|*rl)AqH~8*nvelp@u7FPC}c;)f4odxm|fhVcrQMgZi%T+9NtZL>sxpkn)NVLH(>w8BLBwGl-qc=!wDMn`s1MT8om4xk1=&rTN=uFF<5c65ke5|%<= zK>)JxPoT*Ns7|IKt*tef%O-%=M%w^uxu->LLh}R8-ZORb(!N0a=g{QnN>HzV#tq!ifRh>heHx zB_cQQtosw1v~72rR?wwlBFX)1?qp4{g;5~2mjn$ooBoUxx)OA}jC$wcYmK9Zp;zw; zIn|OuKtZ49`et&j%aHtn{7659ptyuw{g|b>sc8vvHqpGkN;>!G zBJu%OtACCMit zR`DFKttG#GKaQ_4O$HGdRRkw9;M&2Szm)@aL^*HB1+)Pu{ z@SqMh7QGhbZ0FwSKMch23qL9W(Vs-jq&4TCn(jW3*s+`oYl_|6?CjlG zkM)B3Sen?O;@`k^JOj!cbi82UQcIW0E-d;cAW_1*j3pu25lJVSygNlT-kqv^5C@A;h9hQ~XV{6H$QW z14*k7qK*X<=lv6h>3Gpubxt1zq#d8KB@&^%&8PnOx%ic&s}Rv)ZnMJX)NX$hkg^kY z!k)gVzG2APt6ZGl^3Z$7QsERha^!Ngw%;ng!NsY9`Xv1L$sqr;BvBd)sG1^!0Rlxr ztwlqQL~t@1l)jILQ>knTC-`2?2vzkuWGRtBf}_C@j>BB)65^XX|F+4&%U@WxaNO~^ zCMM?Wz;Ze3k&>-P#j-eplRXqxzz0&!3kT|!=-8}u9s>#}+#pqUHdEoIf2Dkfx~51? zG?H7_nd;;2M}y}TB%btgYO&%i;ekTnE%Pcwl>3(CtsUUC|+U70KIvGn=}_XYrn zSp0kAlePDd+xah6viKj27H(wM?eve}8wR&G%d9WgxmbeEr)O6v$lr%$TAq)4hvMH= zF)cnS2X^+9!OCExN<~|teT%mTL>o7Ieo~Su6h&H7k6=f6Q0r*jL|;cQ+s`$xKGgIt zl-kqX)iWP@9-sYU`V%wD;%2o`?^b%#&`|zHYq|zES`l~bdu)$&w90_wTdyR2Un<3Z zWNH}>IM2VNx{a{2lUq2sG3gWSdZ;8e!^w?V=w9D06TWw9=63$y_xKO*Guz09AhayA z9UED--Em*Gz4n7a-zI9bo3{ARU^-0`yJdlF2VK33i}C`=^qwAMxbPl`j4a*vHsp^Eleo3z&(cS((}M731K*FTeKA4`InCoo+;P>_BLF95^IOi$ zv-^>0I3P4XZ|T?Rj<1ebS~co8h@a6Ii_7re(XT$A7Wirzbl9oC!}%4xttph#xH0Em zJ;zAy))Dmk+pgRAo4*VQ(d=Z??XrtP66BsjL+fLUk=>k1!-BqAarw4FSY+WzLs{xn zoaR}tK0VcHN^E_$3`G_BFW&;)DH1zx8_~L2@9oaFi{W)`xPcm=f*VAwNDhDqapf6V zPB;N{(q?jie~nNB&lR%r=|(h0Ufr;?GIWBq%Lb%MlHGnLV%^zOWV2Iitv6=_aGbstE#qp6*H#e(oi&g=-Bo!(COCs;@BHo$G?sD0(RkrMx zr$8|*v4S!rgN#5aAs8s+o+xv>9R|xcOm}d04=$!(_4{S|KMA*CZO(Qh_Z}ngWbXmU zz}->Wj$^-l@6FBpJ3`W@2i8<#3oSdw=Ry{JYlrE#9IVtd?txhgFlcHj&ojLNze{2} zGrY^brOe6Z$&}?+Kj&p&*J|-@O$2{p9fThDyS>8jRIh|4CocX=Z@o3_vEw1GO{_EKLPQh{>0a&VPpy+cCD|wbOvcHY9!+U4Qd8 zVZ+jAFY2;=j3y#Mkc0wf`hxCMLW?=@Pg2HkzKqKSE!5{v{Yd+DTy^OmUL(1!Uo!jC zrf1sc26dy!vfHP<@2_KLZT6csm}Gq6@O#X%FY@A<{5&?Q?np?`W~L@tmtnXK)5P`G z>bE8ack?=aRr*S$jlO(f4~Y2QZazcqEQx2&arcsw9^SdXJ2_wMbc&m9Yi<4c-)5P1 z;JO5^sby+1YPj+FX=?}LW2s$=<`r@$?cu`7lnZlx_tY);XN>8! zjHPg+*H@ehadp?5OQZm%Pcff5RZmYHrhfJk`T(SRqF14gF>&L9Kw-*yDnQe+#ygQh z83SO)qrw5BUjC4r*pif=05X6SMc-!MFq_IA&^rY#lYmzz%eLqa59S>`^b6l;HX#w5 zwF7^OL?^5F1L6_KEuaageA`v>kp>P;9kgAJ2L!M^qrGtNAa}_*vw$IF>s9PXhbSrG z6+Q|K;VOgQhw4GX$$%${Kox-&r=VBS1w4DT(gh+>;U3ssqfcguCywf+9UBIA41)m!tUs+}!z{;i91s#;?_-c7Tl;*!VRm^R7&oXd(*mf63G(0}_{^mCkVzWsbEmuEBjO_r4H}2 zFmeM#()b)v!qiC9Dke^I?(dqZ!JM?Y8uShKd+s|P$>^L<#xG3TtQIFeFLtcZbcAxB zAHD<3Efp9(s1NpvzTtYes$VZ!*?Qdy(lu$~9K~sErPq7%pM<@uz*lTsn|)aCIFHDDivBbD z`zmHQ=xRFZt)Smn+u6cogVXrEFn)m+>$Zly{rUR+i7P7?e@E+yf}vCoXIqCio|>A1 zEyo#`xEAY;iR0~;o?f;a1Ahu$*!@g3IZ1T)^7-mMd=uk*(`AQ@^Axc@!?m5s{`oy| zKG$noW%G}&I%}2&drmmQm6e|5D97FiY!18iwSBgcS<*M&NzWd}XuRixarI()QeqF8 z?QCtQ3?;DQca+O#*=6}X9fscREai3q3fPG^yp#__^&@BKxk2YRwK73A%oSPc$i@~5 zj#dOyf-2Q@VH*wG9-+_$%rA_Ix-N*1jDQ2y4G+Ed^e24CW0f-s6CEX8#y9hXfNIDB zLY)K#3S|;2^kM1q5w7oB_x6Io-(IrH&L-n5>${&*TsXQuZgC0C+WTrDCPLo; zjE5aJT@R}-_ojlLIfy(Y4&|8m9TALj)d)u=ghxlK7c$H* ziwS%r>Y9;A1Z<8w#i5C{5gu78A;57ABsX+`oTzebvTb1C>vwNd3?6tOMcl14^p?b- z1VyZTqg|>60JRMcDFVF&8z4gey?8D+>vFGlyJpFV0b3gfu$X(QlLQ0lq~KtLdTK^$ z1xq+$-M28~2ZTrV+}kz3+!aNijs)$+$j{;x8AKyO*(^+vKOHfi21!r*DY+6~&;pB+ zL^S2$Z0t7S8w9e4{)mVwT~{NBm(~?hNV?hS8Ho&UX57_E<1j0#b4IzA$ERw zg1@O|fKaMYstz{5eTS_()#g`nmbB+848uy0=)M26w;?y3flBw;mSLNhDC~;D$TaJa zVe*OYRJ^>`)h(Hv_xR-vTg*o;gjhjx0fuA8K&eO00LF+rtU7__{7$5}o<07AkdwVu zQJ_BVw>XJsxjrfvYFYo*MC-q|;3CegRUg_ay_lWxIR4`goOuh2TzzY;_h3aF%3Q`P z%S3YWCMda+^ot!5!TooC;SxD~p^dCCO~DlL89aTQ5S{=c4GU$B4JNSB(a|ZspVAp( zXp$?xxHIW;VUnrTNuYZh`m>lOfbWPS+y@*IuDD+G-mlzw{!k&?JLW9(SLBx_@?1da4bxGCD|`T|3qBC-G?CjDe+XQ638@sJS!IlmPnGQjH}r(Iwfz7P2h>9rjyB-yRX8Q%s2yg_b#ab__%N# zau@tBq81A`W8c0?ItsVRN|!k^1~xmLU)YB6%**tR#RCca!QnHxzhkByfj_<&Hyuas z?8`OpVf*NJoGS!JhWR6EOY&8aPCiZj_+EBvqW*F-kg2Hok1LT22h+r(b<%W51JNy{CLS zJUm%7Q?@+rYeHsxkAtf&#_x3Sq;kG}8`Jlz;UHbR)vvgvn*Yb>Y4L{bPl2>y>91jX zNl#{GO@w!DEmT(gQfjN0|73Y}r6Tk_-Qryj2vSl`|BVSm-SrX>rT7PGo#-Pz856nN zC@Si+(_x~6F{`NLibKXqZbU+`qE|2>k=PqAN**|2$(onRee*N^Vlal!;1iRr4XX4= zG>J)lgrkyYQ!AvHFJqSOPp?EPF^KpsBE(N)EE>M}uNPvT{ZdTmMk8x$DtD$#`t^9j z(usam;GE0NwAi|`bpl9Lm#uql{<+&Q@Ug&^155|V)PCYBjgn6w1?r(Xy3dvUw7ugH zYT=Ta?@SW@RlNQKF0g`#mAivkXDrVnHH-eDUu?ow0o5wXI+%4l?2 z2JpFL`fLx_T7ak*rdLoT$$a>wv%+PR_B_(9o-Yx|a)ZVQXg*GJ0-J4^=BbwPQ%Mzq z)naG}hS1eDvTU@CM?Ey6XC>#Nv7>77jmpGN<&37;JWaqD5*H`aOJzXq&)7y`6xsZ<-9sqKpXAF9z z>J=Gn9Bn^D1|@*Z$jlGhn{cN9Hn)gUha{{5v+eHRo*wyrkm;G0aojVkOD33kHKknQ z`f%*~yW%PSZGzU`YE)30s=ZgN*51^pP1PQ;YL8eYw%_~nJ?HnIlXG$ok^BAJ&wXFl^`eA0 z&3;>zedgU;dEd%9?5|eQxZkCYQ^S#9*30YISM>{LXcscZ4m1D4Jq;1{vP!24M~5=U zn6Dey3XLfhn^D*I0?&6&h=%dCADkJ=LM-9>^h&?={J0&YQv0(Lz_xD%l)DC9McH!BUqD8(F3WZRkP`6VWn4#OeLC%Cr5Jzv4O)%l*Sk=;NMBWq|1L z%*nyXdp*zZqS;MI`lzf3;XY!pY&?H@YuJuOH#=QeITZ#tAXpibCH__A^*W|yWu!mK zkQDon-p9k&_m*Yc2rD%I;-*M7uP_F>}b*WWcdr6$rR>UeX8=X z)8a}#aIGnn799eO_m{DId-v4L8 zENG;0Gs9!L75mKnqfTO@<2>7!ub~;a^{sx#D3WLCQ)(3&h3}rR@MgW;PvnF(S&nf> zS+e)h^IcBu*JuNV=xz zAt>Bg5xOwX0|mK^ScO}_V*d$CugV|%O!2=FZFS~TrmsM>-X>LgV_x~--ow?z=TuBA zlN+UTrl!+xe)<8a<>IMLvKD9ygtote71(_=F4lVaTI*(65T#C|t4NSY3c2?#%nlk( zhy*x!-&ML5d!GUI`%Wene|hm4U)Iaox~EVGGyc8*6de5^3W|HfLuh&6UDQACvO`!; zgd=HX_C9Kk`EO)N{iteXSix7N{sP$LE+kce!2wXe@RTY+!9-c5LvRi*t6<*502d;a zEj@H!Gv4gv+*6Zc$4T4NhuJAFTwj)=EY3unRKM?TS}8xkF|(3=^Mka-&F{-yqp8uJ4%3P# zVK?5_cw8=g-H<@yEy&T;?hD4X2<%;!ysg`Aq@YV-xn65f%iTmc_cMvRvplTPRq$x* z_V}HK(|6D7t+>#O+wkEgTJq*3^;W?pJ_7gwVdnX{I7aL^%E^B?Wjp)rIDveeA$$4v z!zLNpPzEXMqs*iqFIYHH{hmgNRw041oFqcL)`XLSS!W@Dn1y~?VrS?5{E6w+o-}I~ zsTG$0YPl?I!Dln0)juiiR6%NwS%pU8=$!WnnuD+L>g#BZt;yj+(M=Db^w)urxrS}* z=>Ep~;$rn@`@wqYJL%N`%p?gq@z0s(1TV=Xeg|5OigH%Juv6DX^B!QtWL*7``{@wW`V z;|-*kprFUz`A3|l^`47YjkKRX_#w1EG-3B5qaQbxPV=%MQT3Ix68iZPkA_O~Cu?iD zk|KSq8YHC-IwRE`$$OFj=C6DcJF;_uFh^@sNLTGyC($gIy-z;XT%SOLv>x zx)&i8q(`Oxr&=yZRDYY9;tkwe6R1Af&k?st){0goV3#^R!#{>HgZZK)Xl-sG= zjs_s0r-cGZ;17X3VPS;Jjm91I$UpkgZR${=T0srd+v_avu`crbY#V-jF4YY$H(EPQOqF1`v8Ys8Jf-t`cIBeE$%?@gS-~Xyz^J||jSU%B@vx0WGwJCzf(HgNbl z@YiQkCr=Rdp0T}tTUfTPLff?JQE}(d3uZjT5U>Ro+H_P&vc%cDB6lW*5>UikR<8a|A5{|k)0Ld%`-3Z>2jOC`McSc zKCjeX;~%gxVZr(bC+&oMILpA8n^^p6xyNJ4-`>M^J3Pj3!^7!jr+lgTbSB@Sms{gJ zF6(Y6?3O2-&Ad_(+y1Zq$jNIzQ%X|Nt_n$^6)5+X(h08+@CTKwJLAi*jXKi)HND`| zKwqPmyc42t0LD%0(bswMJ;~|%gBDEcU`*M9&rz4t%rxhF->c2GazxYl;6nPe05!{xTV zgi9`9_!uRcK9+r3N|?)g14L%?1+2E>2>xulXxw%c5ZPMGt!{H)iwKiE<2Jp}PKuB` z5md3x@cB1`HcYT;GXr#*z4Qjd5!H$x&u)WHP6W{xDQc?ZMu#l)gC0vByJHT=Nl$n9s5>3CG{2<77q=tVo^68;Mi1^{`$SFKpNko%qt$WlxAv_`QX2cm@H zO##uwiL|Zo&Tcm<^~3Oi(5T2n$&Vvu6ss7~>p1Dt;F#Ul=M zh2SLSgO5Pk?y=E?5J)`G-m=1|!12&{7pdANZ(mC_xWKC*RKz%I=P(bT6p5wyELZ}H z9T$QEQ!qv#2|08|wm<83rdOlFN!38(>oVD=Jt*zZY<3l3{(fX+!!=Z>cE1DG13W1N zU1D(_#DY71OKp7Ky)#*i(hXtR;#8tU1Ou2o-Fe}(8L}$o1P;8#iAL0A|2G%MS0s7* z5D1Y&I73ElD0%zN-(=~%fdp>$0qD(?kBD<2{nEwX+^uBeR67_KiJXvJ{C;*=N}Pj> zaUuf%?}GznZ)KN@82P$KKE*zBx)bW?NrEb-q`+Y*r5;zhDjNSn=r!p8r;-m86#-g; z{9;tSJ{;&v9zc*lI$nsN@#*c-6m;KItj2qFvA~a{oNPq8<{%;KYHoF5FFb*}r-Sjs zcCG2%h6t8#B(=LHI_Wfl#KlJ);ec(9F* ziSJmO^=ME+?S+%X)%0Oyi`9=!jGT;Rm|R4zGdA5N z5M`H(!_`d-Zn|o2n_pISy7k~b@Yz(rG+3WZl+@ympYSzoocTDWB}9?%HSL{`HE&v5 zQM;Wvj*LIfba^4ZbYe9#eRl3nHBll`UF|}jHebH!cM{32k-^1X%3>>Ixr5vZk(&Pz z+9oPDFIYn-5Pl^TR5L8_zoOjcq5a@b?n6neU z8{Qt|47h_qqQ1z93CHFc4($L7E~W<0-&$voErNb6H#t6sLP;;t%1fwP0mU`Sd} z!ZvZn0pgFv{0)rUvntD*Yf3Inr2p_cx5lBqY{s2 zim;aq+JPX_B2mEC%qkD&kdX-lbr?f~0&<}L*_#6kGcqN9c-tYw1xW$?9suwI%Ao|6 z63B$}KW7H~UN#CMD|6^q6%4M)y8a!ee!rJ2+$?8KNG&DeFl}Rh?q4Anx}s#^?^)N-iU(c3+NZ3(7?F9Dgzvt)^{dOwEv2CyNYL zZa`7$jxo{Z#Dfr`I|$6pZ$96hfx!wRQ`3T7r@KkE5!b(2()B#t@Ov|y+{J~7TV&KA z#yvQEyoTzVt#;{rA(wKokQxgV#6hu2UQf5@eJb|`42W5ZV|9_=KKp=_@WI7ij?8k( z+AIzugKf01C~VD^}ZIlp^K6EHpkgnXN->)+zwtl z)>rz^kn=ogx3+)3KhdE7Z67*kKHP)q;}HIw22KfiVl?OTaer+B4tr=#qc^3Vs+hC5 zJ)&D;WGoGTJL{d-Dg26B&?STGzVPe6jXj~>J6^uWZtee2OFmtO6|Eahl>sM()z~Lx zMS115I^%nGb9KBc=!p#BE?{Zaa<_Nl)O>1aq7mkp;4Lt{Jr-87^TN&KTUzVg+D;Pr z>{Y9eUJ>n}+kA#}`_kk49aLz$*v7M^+f}!in;Cu2*f+y^;yZPmg94kX+Td@26v(hh zWH>>?D`uu8|G`JrO>5!-5{olZwX+SIQ7t!p?CpE>Py9x;+2NLPX-A!9V-IJeYj}G9 zmb`6zD~9*CF2i)j#o+?^*7i%vMS+&&aJj~>1l0U4t7gRH*p$9CuliKIeBqGg+OGj< zy;Sje?5nUych`3uX{VkQ^Tvw?(oU5|m))ipSM9g$)bbN<@G66ulSA%+tzR0g2VNR? zDedh?uZDNN4|g^CSF%}q3;wm$so(!&bT={Otf>@tIpVDepYUsx zwzxqjgpHE*uh2KTZge>Z2r%ajVo*@nh+`qMnWw({T9lJ_X-chI@SUtYGbGMM4=D%? ziRS9|YxypLG1ciPPZN64)xby4dt^NGritAsD7}ZO*)x?S=|4EYFet7sP!^=gahNWT zLm5~Mg(d!E$c+eh^^WoT?3#dz@5XXcoYO=ckZ8k@<3d5G?q>jMbAXHqw6>7`@`v~8 zS`!MF>4QPYxA<-{YB71BVgao+`~`Fk2PF5sivprdpg#EIb~$WnH#`XRE;*&d4kq(k z7y*ZiT31u8uyKj2?s^le!L^Vwlfb>613FWHLWp1ISl|9O?QKpmBY@nunxw)R=jY^< z6@Y^J8~0tsc7{6BUFypO^2(arB##c|nnkDCT(zhHzd*0))$9p*W_xSv;`YCQ6G{7* z<1|Z0zL1oZ6b8~uL|XN<Aqso&Z!#9X8G6z3x$5^SlQl`SN&B z>ZUd=*$S&Z6`jlTF~8LZ%U~!vw$@~*XFcqyCo;X&vX_$#JPoTv(nx{}%&SfGf+c1d z)moSK-Bq&mUvj$`P)D|+M5P+;$31(e~tz0^{83g>)xGj?QoxTh821cU+V;gZ- zPFIV=e}PO~zgLw9)g)n4)4~GtJOXdi4V%sfZo-}Eq0&pqFCo^UFS8u?5NEw)NxJ4jJ843lZasVq= z0=Ne|-hX`Mjof0;hf$y&KwyX_vp5u*WH~;;#s$TJ!A53>U?CPSwR4F3<6gzetw%X| zssL_hDkYt9Axr(}-uDn9O=i&+N5lB()~!~ci}rOd$c4o9p0bRzF2|T$y>|_Zpuj=# zb3lo$WFw3ssWD{K)B+(ETqIawMWUQQMm-Kr$fs;nbb)G&pRxykM>~ZKfDe}I{trJ3 zRVK)m0j{X=C{Doi0S21tXHbM;W#&t_)d>Q?&qd%&2!iyJeqy5rsWlM9sRlzn zQv$JJL*v9Us%Y9p-#wNmqP2DMI7))SNDwO={5%Nv0~TCp5r-bio~w(}@3gJS)%|`{ z7P}x+!ZF0ddiQ&r@#OZOV-d)cQ2h%2B(fz4<*x`2Y;LM$5R*%R^C=^(ZhQc zA084yP?DkJ^5mjG!`St_b9i_=d+B1*gXgbmRzUB`Kot*9iJdYKMnjsNLIi!xG*NS! z9v_hp7O6%m+KEa4r|}wj7_WP)od(}@6!Ke&+)iCdMEoJsJ$yBIMvgcWYjC-8PQUI% z*M*M6 zcCmu>@BL@_JSsFX;IWU*L@<-o{pYIP^>yr)S{!zqsBPDUUH77>>4g5hJvp>$DD&6P zc}igAq!fSJcf$Z(C$jb3ccH8A3eqQkpLmaU?k!j*o1#w>XiTpX0ftYz6GJnf$e-Ov zJ0~+E+UO2~GUY+}vBD8bQM=a1>rIiXqN7ci;3b={?I)u&pQR8^J9<4oY+G)+Yk1D? zTlnliJ`unUfA{1WX8j|OShl{>rb-Hr0PD^&M77t-)SnJ=f&u@A8 zeBKgq0zkiJKv|`!gaZf&fZ}C#zqtwJ)!7kbyDK#`llqJLqgVX;45UY6BZaU zrUI%JQfi_Y{{QTRUMFdbsnw-+XX!($LJ#Gir>Npm0jUGpcBvb2eExhR|1PcFY;_eR zXFc~-0#4*Z9Dg{D`0iHAqr`#Up^LQDM&HQEeKz~A!@P84$d)kvoCIBgN zUraR$EW=EJ&jBo_@nLX)Ec>csPhJar+B0!!HUSr>2BhJ%j+#m`OS(k{9tz zle&{ZAUu$g(%1hQ2{HNYeAv}Yktz1)YNep@Fg#w4X-M=*?;zFj?!%WGARK+UTj>$Mg{(6pRWKe^pv7tbB+J;=(+5dYC8 zj0h8KZ7eU}mn+|)%A;$v)yy|Xzdg%Utu9FSn_7+gYfs+17nJ7MSY(@u=R@+Oy6*1xx$zeG@Qh$H&l?n$+(yx1WG4P&h^!39 zifK4NR8~7PKI)?PxIUTD-<;~6>$r&QGBiB|N|?HJOV=0&%*+hcl+}c(CgL)ue`5GK zRUOfCBL0H$P$#VYVp00iOoq;-vDwi0SoWTdO9e)$@rpeSc(=)_MO)isZr z&QMnf81v9_Yw?XE&CgYJ?|d4;K$VXFW`8PT8*0qiWNklE(i%ixbF#! zJJ%<60>P)y&LQ0%N#bf`pJ=4q1SlNYN!kDS84z!5^S}`*hi?M~;Zg-bk^Cw+xP78D zocCx~G^4VEtO!s{Ywfp-2WhjeV!Yziiqyli{WCa$Ul^2aS)^Clmx2Xvez|y;D7rd2 zWn2~{w;bO~<|zi`(%G8SjX-43h-grWs+=>S01PJz41#v{g%AAQh&2qzm8O5l;a{)x-{%1dw`pCU9EgLFk0<~&h(%&*s&E%m=)-t?h^)ZCyI&_r z9Im7iOV)(IS1^~psXx6Yr`sxg%^&SgLn5dPZZDhFS7h6+N1hZZ!xQDTG|h6UfPxLm zPZ{H6LwHg?wY7rC{uxrlbu8U*~t8Bgsp(-tQ0si|&2-{dA4uhUy>x)$R>pUC!Qpoi_37B3#5) z^!Nw77us>VQcJMk>^AJz(hsVkky`uhEM!+WzTafL=SG)cwQAV4;@eI>tl>8hip6|#E_~e| zPOQ&lR#L&vnUv=(HojjY#alZtL}e7&f8BZgCfd>AM{MTq^{j^2)m|{xe^5xF-tVuZ zj~)6MVk%ZaP3PO0m@lR}>vF2GcNIr^zCM>j7yMiXu;v6pgUpmU!wxk2Y8WHgoNih@ z?lJzp=?q9oe-ysv7~VEV^>NBl`kJLz%HXp?LJZki``t)VW9GBrq4aS_6EB;U+x6Pf z`9YZTgj7aN$jS7@G;(?9FoFMgB673F3n6|l&C7)WDkq*_#d4ja^U zvsQ!O$EcP#kIHMoD45)T-#cSpTIj6EYAkziC5HsN7em4P3R`5#f7Q&1KprJ_`27^c zT{z$L$#D6#hthd;j_d9Reo55kmuOBYq3Z|JjDf@GI)~#aMCo!0pgisD@75L|0c#hSyobQqt1OpW-GF#n3qZKxJ9>+~EOyu0ffEpR6cZE}WnwF4afB0pVt9 zRSc-~mygtOb(Zf;!J98(4`ST!KHc!$p$!k2O#P=dkcwLHQ2m5?6vwct>VJN!mqc<; zOV(|0)HoXnl>$+8i^O~7^Y`6bKgJGJeF1}5S#Se^Pt~WG7{=OwM@ca+ORly$%l>ye zt2TnrYgPId1CMFgNL#v${*FkMphLu@6>^nxMJSkHLq-?Q8|^Eab_$(*S2{kq=qWVf z4&*i*beHHR=B>E5*A(wAe#xla1lSJP#5w!avv?piz-{!Xyr0#VXRdKAy`V|Fy|K>w zc&)^-p67~WP~jk}WWanJ3R6|-y1nNpVp^22kahkH;#$}P7oX7ZO_ zl7`1tcA z&$#w9nT_1N$q)Y#GZ%g_(TWu=@^?BfEg79Ie!%50aL8UH2|_CDpp+|+2?h%a5S~m( zsyBXMB4v;|7m*GnAW+hJYxnUP4-P3sAmD;f!iQ6HVVHxAfuK#zL|1}IQW6~_?RvK{4gFV>|LC9k!y@cLyq7(?vA9_Mn^M+3~4FE#j# z9>w$`=85Me{{Uw8iwp2KI=LKLAhAjbNXg5rHpoT(L<2B){MY?~U>SZnH3&o#uE;Il zh6y96b_t9JND!b^p&l%R0)hcCz01d=VCDn?i%l5_3q$iln$JONzC zu_m-`n_~qrNBvNNZ=1_QIbp9k@VO}QWwoQSZhtEzi>QZwLqQiLRpYuMb=Mz%;fFu3 z8`0+VDgG2v|Fbh9F&B~WGu(m=n%a|4&zKPuiL zG%10bAh87BK(1)KBne%|07u(Nq`D7c@@?ma@-;Ui$xaW%;X|&aI%%Z_HqjHir}bg; zHiEQ*XlCrH@*u$r%HTKbh9u8io%RxZY7r7s>3MRIzk1gL{Ay2$G zE?DJ@9@I(>RzZ_6e!O_o<}>b^``au{2le&rp#AFH`;(D~8mE@);C}MWfoBJ|m{vYl z2h>)JO7?kmoh|jM>nFgF3I@wq)HGh)`rL0eIc-=mG`+hLjZtz}70(ceuXO4;wY|*8 zTR%#_-FfROZkw~#wJ{jBw(>>eKnDBkIXY53Oz?_Nw6;-V_7OI6M%>g<-SzHz$QZkj zA+|ow7;q7Vt!o`S+K;P$lu>(ERX)jLU&@{1+4sp$pP*M`;mzA#G>eZm0)keb-mSYg zulGn4zg2+u*}kdql1%5iBg6fWazpx59pWd3q_9pjyin}@L_K1K% zZbm8Ym%J&KxIcU(vGeYy@iDKWq)T*=vV?6O)8YzvC?K#n>W1tA0LhRn!9z7LZ@w2*8%FR*36%(+`GHo8LaS zLl!UR_YvxBJBum%oFT}hq$I}zZM_wQZSc0ION->=A#A?R`hE#M0r=`Z}iTN~x+3dZTu(SfU+jiHVL=8pO`s`av2VRTVtJ^{S zUEP9sWmJ4@C@3kp#(V84hZ=oV>$(&rVRIP2nDROFesv?ODOg= z!s5GpcY!P}${oMsQg2^3~XEb zkHHCzy1Iv7^|Z(HWz`cdSO+f~Gpd{E+0~7z{5F0j{9TW7+2luGc{ZQ#9$W@G?M2}a zkG)R^n4s}CZ#G2hK@w1{y+9dR%35#b0lZI43*1b8rgkL<9NjrI3rAsxvjBs--FZ{e z_Vbt;lh*+|6+<;HhIfg>a(`W%YKMNFCNO=w>Iu%;hb#JP5%a@edgxNO02J>7ggq_;XnKO^;KVQ(1DG zxPY?cMaXXE1=iyl%OOl+sMHoqUlT<=*w|W75l}I@nHR-2?5#8T*@*5Jug2w$hTo18 z{i&DRH=o+U%9cy+JLl2WvGoTuS-yw=QeL}nN{TtTY+IW=e4RI2)_gXhob=aY$)$Jh z50^`IW8=LI11z7k+qxt+14o7FiaF`=b5ZZ>Zihc=AD1ln{c`PkFWsR~1SzWk5>>p{z}1o0@kjTQ~0z2jF_J9Om1%m(A0_>};d;-VkjX4XX z=!xJc!Me-R6tahhErbCi-5n$2e!x|ok-f2z(ZZtGo$;vO?dmq)i+_bA zC*sZXQ;#1p?i zUHp2&8{<@Yzc2e``X|)fTi$%R$Fkx0;dmg1XMMyC9q5p3rXWlqmopS>Ag$kkm5dSh z+BAJ|sD1K11*@5gil4k9v#GUhp;986lq1p%xpAmKfF&hM@6T+&atQ8#8Mg`UtYSAMB zZcoc<;tXW1c0V`|Kkp#%K=H+F7z}1(f=r>Da5)=aj_hA8c#Dvt;9zMA5|()tUVo-X z7&n4Buz1CaaoB$r{W+rMNA=2nJpb^emvuGpAdHl{{2|@Am1{m*NmEzO#RBq_1UOKCPa`tkhIV&l>F-D*O>wH8V9^~AcVsNY84z}&{gsf115*|>IP``O&6 z{{^P!$j0lpqZ+{U+ux9gP?{bdQq@XJB+$2>3@5g0@N#yuw6*tnGhb{hB&&f?-tKFd zJD+GA$JPXYvdM4pJ-9%Zs%Om1Wbjr#b2?BR^i|$jTy!@Fg7vTb{`v6_cnZDrhF!kx zBcTbvoOo2MHO*|e@ZETL&X5a@38~qAWTJ3LeaxujX2Q)Pb5^VIGqFIIP_qex_7G*P zJO5$2xR@0>N$M_a+PFvHu(&=+qfjMbx9OKL^y4|n>*q?}KdyF{a94T`(O@pMGs-JT zUoQ?DBb#vB7MqV-xc9$Q~ zR=Z1wPYy>tPk9woI6R#O??ci(Ia}-k~>t1|-tk=xHnWaIti1 zmCGQ_c-KqY4h$l z$SUsru%Dr%A_DgqfP)3YE)KD}k!m z;vt`2aXy8Vn1DWb1S)lR;s7-rdwseuN_KOoO&OQ(WulT-lFBRxUxDyz4y(#T%MhOd zlW&ePXAkzJBK(el`&J8n!$&dWKzil=0-i5XfxN;2+s$kW=?^Vx@ z^0oc@W60>Stss3IUhXw*<#VmmcF`s-b-R2)V*CW9EvXAA8hy>Jl)PJzJJ9p-9Rn8DH>KMEa^(MCy(+IxOqc>}VM$E;mj38Xok#0IyHl2=i|c+apZ_>^72B$m4#WF8 z(xOvuK8}x@`p85=&w%#6!i{Ss0o3=UUFyo%y4JK|vq*}|_it9>DFqrTG$R?1cZ=9O zwm5^+s`1a6&Ol3tb3w2V*`meK(iJl1?R(hiraR z&uV85`L12^u7IjK&B>3Pai7MdK_E>{Cr>=ha6F^mKJ%*P>&6uKZ=qoesp-U0I6O2> zF@m32#Z8F|x&nJkK{ynlh)YWmGM1-D|AnA=e0E9=V2qb$jpHc2c)EX?8t?9B8&A-I z7l=xwCBjm$x#Y=YEAz>QBpJAj^q^w(YY$ZN&gNWiKh(cx3eRWh+hsO%4#_q!&W9*B)!P3D$rMqnI zUE%(CP4~9Fg@1<^f2y&5|Kn?qp4vAz=;RTvdTwE-c|GW<)o}Jc&;G#y^#PRJ=wU&c ztMMBO#(1Iogf}I<=zlW_kxv?S(hhAZ4IDUDR}hX13|bubLr`{Bq_I4DfV=*(jeMo~ zVDCty@!VPxJljvtW|o_joA`&1-88!dJWOEp+5pIcZ;6LVz^d8sdnAkT4b~ zlN|hoAV`*3r-fI&_S!4gyeUDyNSg2sOp9?JuMlz zG?Ay!vhPnNvl+2slX>m}5b$;vJHixUv0wq{@`@u=`)aYnuJ+)%gwIQaao;*qS~miP zad0B5@w=Ed%5ufj>T#=$^gM>W(12PM#@m;3$)E5ioUE=)CJNCcv5DOHs^u2HTB9T3lrVRA&`x-BXy#IF=bu|E9DA~ z$D8tYp~Z#`>FGqe(j1gkp%U#z4pc~_;9FAS#}L9mB-66GG6>8FQuIcKh5Hl-Hahs; zZ9aT`@ahqhEFqI~2tkmmOb6T0Ph3bt+?PjkVxBewR_br@b?2Bsxt3Z=A|7Z%+_I%C-^A^Z0ID2mQJ#C%&~qRSE% zSH`o0d_CR1+-Y(D!xlX9J_yx~1KN1FC`3ddosS}wL4tD{d?-jK_(ihR+1nrBJ@($n zYD4TU1PeIUpA~ZF$(o+=NxI#fUE-CJ1UpXkgAvt#JgWW0oJM>JnOm@`0Vn zwC;)nd)P>q^Wa3#9Jr_lLe?SSU0M{)(0qGIe{i{KT0Tl}W1&Hdu=^G1zjqGLm<4Wu zyn0l{#&N~LY(@FMAuR-rjnyLMV}%&$*6W@$pf@?=>M*PMgIT!C4T!nx zFHJT8w;DLoOAG;2NglG|h|o9Wm2jxsT7CQPm8_$Hg$C^V_CtF|b?CJ6q5 z<3CI2bDfv}f;9|Ssm%C0jpC<3Wvdi;@st#`Q?h9)oD~r}r1%gBNOARvSFG+y1FJ;(u|DWTIVBC608~mXirn0AVP+Yr#l< zC|Eh6>pr2xV+c+>YG)GmD8JbdmY~gLdw85_btjnPbg1fS?-lO6|lhu+*v= zkYe)VAC?WboCO8`=BXkMbRHEY5iMs6q*hTIn7VP0y2+QeZN>7;qSa7c-3cf$IT;21 z?gbrX*5NOEkp5r`{0^q&Ko#xJQ+7WW;q@lIn**IbAV?D-By<8yz=TiXiG)2W1`|FQ z`-H$p(otyt9Eb(UuoER$*js0v7mi&m(G%&RDF0K4x$Kirr6yqS$-FHP(%WoA^jVy! z6GlzO6TU*e<~2dt;0=}D8v>`M!Fa)lTHG zF#VMwN#44nFv%!m?JhReX3o6ndW|~ZuAn*a@zkl`0UhT|&32Q0W$WF)sm9^^{RB_Q z(k@?U`0s6E(9%9ueg;o}VjSD>* zv540N38|SF8&uTzFVUBa1fWH(>!ojOl!Iq|0}|H_Gf!&oPFb>wjoSt2)JsP9fxlG(YiBrca?bT`$6O(A(7ChSaV2M zey{rD_PbA~+|SzgK3y^Da&q@Z?_-9ddHD9+EnRLNOKL~FSNJ+~99ljcVlzMHU%#ZN zqouVoHhGj^SG#ne{KSm->+*M7F#DJSZN3q2_FD&n9>kx6in`KLg=oL^Jv95Xrn1tj ztkxrI=dC0W9`Cm>8#`@fbFyrKPMMHtDh$+WhLAI(JVxt0vFfyB`2w7!DsnX@MvlfkKQAudx3z0 z57ikQg2#$xz;G6{Jw$plkqoQC7K}qctISL(upw0!)Z}swO0=j=&qE_Mlq()P+Wz`^~=)atEH1;JAANl&L=q2}|(%wfwiA;Cd`9q7>S zbh)Tb=OBXEkWj;tc-?P`(A>n74K^iVZm7Vz>)lfizNket7(O$Qat{u9K#2r>vI)%8 z{EbWXIs`w+0%p_jAQ4{?MijztKIPzh*_elI>kTRK=m;G`=#);+5psf9yJerdpz3UY z8$6$ge;qaI6Cd~1+ertHAP~7#c2#Qazsqfk-59KBcxUN$dL4TD-oDp=ZTK!w;e3AS zLaHN;jW8}Agd1b^8_4-%`n~3`0(Dk^#kyh(ZS6{O?X14U=C`*=_U1e>q<1FLf9+<=hjb^g7LJfeF;OIHDzKIcO%+5o(-2p@EXa&#f<~w6$HBU&K4m)4-*?^AV z7zxdYqmzTN-*N8Gf@!}UJ}K`m-qG7?^45BWx>A+*Cw58W{SE;pd9K_l!*O}Z2Wn^5 z)x6TUoZ? zw;}tq#EtpI)p!*@qN)0K^rDydW%u3s{DG(0$wAgp`zpkw^P>4( z;Hyd#+6W36d~IbDd)P}Ef!sPTP33T~0#flYKQJE`dwdzKB3__cRDIXf7^2W{%IANn zoRofL@=J7pzFlGok(Lx{&hnftroPVo*WX{>iNz!-T}hE5!i=sWOp(qX%zZCAH#}=} z%l|}r0>I=6CNQsKp70yN6Mx(Nt&Pj6xJh&MzZvCflCddn&W_eTh>6t5E`|MU?rN3j zGQ@C`-p%>ZgPsJB=3w_j_BSn5Qi6b!->Izt~w{J9mPlt!6zYBY`M7j8UsnrsQwueI1wc#wC_p=GVy}%kzlM-B2Z$AiF zw*Ehw&O4my|NsBTp`7d^5oI01AtPHh$2epin~*ZHmAwgdO0u&@a_p78g(Mj#;}8zV zC_>J$W&d99&-MHMf3E9XFV6Gze2n}3e)HU{5nR>RQbAtVQT?m{lXC6Xh3ieoE`thQ zL$y_3SySjf%4nEu6XO_N?eCNM_&a=PJrDg>sjr0={OX&iK5>uXt;T+b2tyRAb{4wHweYhC2Bu@FEc)Re=E} z-7g{}IK#EvOu}&?z$^C($I^THvyyQ?Ewco@wp{yiAuSP>xbvCO<#BPHWl?F4aU$*>9G14SGD1doV=+1J-oA2{38-%Q^<`?*|9g%} zVAZvIRuBD1#h!mxKlTI$L|mOT=I7j7oS{6uzpksVqc>8SKWN;ZsXBe&q&Y7h0}WrYfDS{;IWff2^(iU zgerSupAui6lTp$993emgazh;MC#K!k;~nDleqO>ulI?-+nr&YA#7M;6jQsnAhrm#- zYbmg$TiFFgYzy~ru@95>D6{PJv2QUqn|vnGvR}w!KQVcCxMc3My5ZQ_D_of4@Xf9F zT)bQb?dlLi3Zfw{XdM9mnW_vr;YKvrka-2F5|k<+43O<^)V?KgD!ZS&`Bev)8*Xzm zI`zB~z^m>tBn6_i0Ha-Rrv)z2kjgla?2k7l5mosH^a#=N3M~eX)Bt@br(u#Xy}<>k z(KJOELg>}hTq($aP#P!A=hE4ZIDFGH0Qd0v@e+WE?=(XEW5|#LC1dtskD>NxF%U7l zkD3sxby~Kz8XNm5#NESdE1z&Y=+*9+Q7Sk!{llU0=?hbz07#$0@0T!4wv5Nh%T$V& z%Xb8b`gK#bymw4}46@v~3W@V)?D?|Cq7?-dk#42ITMxz}Qq`gy=!5`fqUh2&*(k)VyiY zdl4D+gu-O7ZKYcAt>*CG-*(%{D9GrOqo^c{+9>U1RT#OLiYP$|kR&D}#25C+6dj95 z5QNnJkaVULvYAaGB6rQ?CiJEDDtj5x6q9!MubUC)FV!vT=MvhjBt8@FYxExrm|d(m zAaPwCYi+k8)&rCSckh|gT#cU39Sl?m9+|@~LN7LKL}Tj4d{ulH{|mK8fD}Odlf$N0 zK=gpcx?LlNoAC~8p<@oHlZ02%Kmx~xtBYiXPSuS_wAdoi?r4YWETmU zb?hNA(3iJ&*?I5{GvJ(ZysP21_rf^+_T@eyv}2!GFVgog+kW|?!!1j4%V$_7KXiij z(wjt1pGT;DQv{@^OAbvd9%M#b3?_)u>`pB-WHfyon_3|L9*Xww2;KcRK1DnX>}Y8> zC)p`a7_>L0;o@^`jP`H9%3P9T0&LdM_HTB?glnp*Nr)#QeZN26S_??1tje=i)?E!U zpN;Kzm`Kjj@Nk~Ub&{RUeb70XgJTcVU^MWMSl^Ug%SEl;iMpCz9Dgfsdy*$0;x9Sj zXeclyy>Y6k&uY`Ud)lN*J7}kyN$^Y3RT~i(lWie`w%gFH-^;l{y{2+N1*$n7TV-{l`eUKYHuh}+NUL9oYWX>2j= zap+_mEtyP85%ixH(UiA`rxywKrhpSUmVzT^r(v*0Ge#H{y}3Xs6XmcV2xAfe5C~Ls z;2g_PuJy=drzvSvyc1smL|6HW1Y!GYbIfs+E7t>4vY%u}-bX5*Q~tP1w;!KIup}JD ziCV!O7o=C}*Ell%4oB=}dwEW#ZKI23h6M_tFS%3`!2GB{J@C_LZ+dZ8P}WrrGdHq= zqRdw7(bni9ufQ2CGf#g&GX_M}l%?7tkZe3}q~vZ$;J$V=z(+z#Vk})yw>(8YsJ+Z$ zjj`v5;@Rc zwmbH44V5=9&Cx2n#^k=Dk+KgYUsEPG&F-63GK(|b$zhg~X-(xSw7N{P?phu23L!}) zM7U2#&ds&+i*)|IQFE%mv6MmzC1d!wl;}I67pXQVcOyVE(RZ&%=S>jz7bx-0nthA} zsJ0DLT?z6@}~yYVPAv zI1(kyR#q#lmJh5s0RdKLzjko3l%r>T-hmEYr)nt*pN-~zj$=YfNJ?!@4V`niF8OXh zds)x)S3;fgiu!gI0j!4Evm@p#lyTJ5bJ^B#xcg|2w~x=!#*luFCE=m1?aWVEY|dA` z2};J9G=WB{KDX|c+S=CUdT9>qXN1zh`;y^KcQ1D@?B6KLuE%+9Gj`TiS;Q?hA7Q1E z2ZzpmW|Xh@y2_>dPjSC-xr0m}aBqj7`hJ>N&VEC&iQnlPLu^ui#}jOjN5VE+;NnpI2eA&;Crg)hA<8H*9r+F4wQpw=Ww+ zT%6SGWB!5uPYV$Am2^I1$37V3<;+?6x-RD=JOAP!0-!yN$g#v#`|5uDQduG*chbTi zIx?ViGJu&(+i4lunzv@DbI~{SUs>8cT;K&mlj@uF@~~@f!nc0z%q)184S%;!X>Om{ z!97d9NRH#&bTro-P`Zr8(l%82g*(_kjKnOBug6aSa{{Hx{D6Rk-HE^k^M~CC4BA4< z=vjb|o22fzRRyOGJTnsoGwcB7L05sKWJE)j%Q)d|Uz+ZGF@6XaPZqbR&Ol}=RZ$M_ zb-TyS{V0;jhkS`x1S)NGG6lNM=@Fj^6#+5{%4LuW8Ipo^sVGniLSL#=#aBeWBm#qu zs>9eQwOh#1>M(FXd2p2i7b8R{w&pZV1_Y$a!~*)PBJ?B*{Kt(G3eLo?HFx|w+J4%7 zR`ZVZ_b(rAet!OZYtXIhxFVLW=Jm$gL}@LAn12pR8S0T~2l#nv7vG zdbWoyc%y!tlOF23?&Nb+Ab7(?JpbKG4=y}Ug+B%h4?$Gndd%u$DY+r9`rwwGCP=w! zai;fs&{no{d0oUqz8+pjj0LUH=XI!Bn{~1Pa{(2rJ?t^v4~8ri7QncFV+Yi$jj+gH zW$D@*8hCfHRscnpLg}1PWX=qdDqxUJ0Y@4a>Hf5&w}dHGM@-6ha$FLQES9n0Wwx%4=T#VTL$`)0iu2J#a2e$fNzRa6;mZ>lLKtp^ zL;hw%_N}?{^|gqITM65*n?ZI_NF%Z-Ckn0z)F=xT4ow+*YfMi!?US%j083Iy<4m>xo%g48%V9CLK%RsL;K9jZyL3qw?_GH$%^NHpU?( zll9J{HsQO;q6D9SY?SkqwA|0TcdK&^{kBijub2YBr>Cc!R-7w849?C) z|27P9623|Ss&z`G{iUh)@CBFmW?-n68H;~&z+1$x>U>ces}kJC$0j5j6wpruos^LN z{luAH#)Wk4w;IXY66Vsp>mjsPuSP#x8?~aaXO5#a%?7|-$Duy1BjXlXJ>SO*Sby)Q zO&r;D_z$)o9K``#7OjKMX<>|i969uKbFwjvXMa3$~%utM9rsY zBX~zvV^gh!7>Z(84%#h&?f~l&hB(_Lz92bht@s+mToA zy}QVb)NbMFHSM3b?t2Tq)(c;z1Li%IYJn;}u1jcgIiZ}GMrch^h}X$V6pn!wmPEk- zb(+!<&uU-8XR*?aRlO)L#i05tFnrWLjryjY`-L;}Zcm)M4n}qL&yxnAsFV%Y=ZvR_C1;$|R$t>gCok|I|Oo(yiwi!rwj`J;@7;DwoS-Rgi=yzA@FS zWM*UVdue#5t=E2TIw<<~7j-p-;HzKu_pl*L)ZshIw&!2?ArlVwxqmx{yRj#1@66?u zSW;xo6_4oY4B}&+M+$&Utej$Af3Tqz7*XA&fHcHFOrCKUz5wx;nCZBr0*I+ zTZbk`Cvctw%2v{$h!`ddGUA+q zN&DS7GPn@BN`q<`{Ifdw@&(!u=VI;^yqlsFHn65bgP`=dE$_cEbd;M%@=|nE&98mr z72318U285Z1BS+yANGfbg}hT&_IIH9+^Z4eP-SXL_EkNns9g(KLtJ4MS@if%w8PmF z{$WZGW*cgyyMKO4G*|dL(6t?$N`3icX~%doefnManX#QiH+Gw8pceIm2@Q;=3sxl*7Ru!vZ7&BV4lkwWPRoK z2fx`**1if7L^duJc{LvCZ*Lc$%L=$|ws1$^B}=K*{$_^69F}{9G_SRiHrrM!uqkqB zAG`Cvmb%!T4G%GkbR8^&DEYas>|dne1`k_1DMhk!6=j4RhQb%f9^QP%w^!}Lg3VEs zx!n|<)A5e|DWyW-&K=wF1=X(QI$fpHqa*Cs>=Ex;{>|C0I8NC^^z+n-v%)Y+gWT-! zrB%*;<+XSj(f;b3dSJ+y?J& zzHPkBfeNn&2SrD|LjQZ`oyY+7>8T97WsBlK{{US3OkFG0M{TzT0W7hpDd38hn|38K zLnvT{hrg%H!)_WJ)Yn+7x3|@b&EoIN%n`%4kEi3At)^zJ^$M8{X#=>2p`~L@dY@)- z<%Lys68tyOIk&RX9^Yw8wSv-?r>2GScHDd{g@voK_K8`~DZKD|(9iMU(HLY0`qFbR4}SNy27z$y_0p~&PBgorax zpb*^GUqir(aEFbxS>+R}py`mpV2P(Es4HL53b%)gCyE}lZnahQJc`{$wL#Q5J|`MK z-z+Gz8UYe}63e$2FdD-7EyVYi`=69sF245ZecW`OR@^q`v>dpiw3kgt2U546Gv7#- zbEKMoXgW*|$>T?Jal!iIK>=g{frd1{@oDq7qnn3EJ~|mfPj3#DV7UR1)Db>&51frZ zlmetjIGwqk?MNS-ZAtL4Cq>1~rQE$UpNkUFFn4Js^OM=y)v-TczW(|uR5P35;a=@^ zSGX#C<(8JFE_F(f`#Tv;)}gqeiS;Qiq?V1VtmxaW{iUKw*O2#fRhD;aXxj5usz$8H zgw^$eYFj$Qe&+d3%sBk~6NSV1T&F`t_&y0y5@O+O`}1WzWrOT}9NohPDOR3@QI8zz z3F)B%dE!BmVC2sMT*wxCG%aBbbp@ zgN}Xkogz+KMwpw~jh)(nyj=U~gum=gK-Q1B+ia7lA_%aiL3tTKtdW4*({}6JF7MHF zu1q{)ayX_EGunPkQqWOYA0VEWNx0uQHXhJd-XOQX9X{KbP-DPsk|+DD;{!zpQv9~C zr-zp$6VJR+m8_v|>DSVDmhQ!D(&a3<@M>LymrvLe5@={hC?V&*jhmjFS3-&J+m|1A z8k%`Cm*{@HM5bsf=PPWsRfu-478_j76K=OWzFe13BHR!AJ-ZOAc>12%?<3Z(>oRWR zb(zw3NApVl9y#{mJ4irE4w?(~8I+YBll=;v@e0LN+4u|pnTLVY9r4ztru~_KyZ~1e z(60FZs9a5*@0;f>i=?v%WR$8$bMZcceTTd;`CI{qg0Ru(n4r%ii6*cYh5h9KY}{86 zS+Q4itteCI&SwbuO~AhgQxF(W&wQcR{)l49M|^v*BEeMz8CAnaZn8U9o;nFWVm<9dm<%BTzCdLZ?>z-&O| zb*X(a69)%xPBKNQ(ID5xCvy&K>#*)0s<6A@)Z6yGwU9K`e|YuSm)hR+SIU5K0mz;U zf{LPIkc>$*dJwcPyl2-T#D7hQLj-Es_|h~=hdKYgRobHiL!A~Qu*v6d(o&fjI9t?< zc9c%8Q5M_3k8YkP2Hi(Hz;E*8`}glN#{9u?`4``=ifkX#ch^nbzfFgrc%&l;d->E@ z1XGj>j9uPv;pTbNfVuj-DbBT~>^1tx^Wf*fDlRJ1Q7=pwen%n>Vj2%ghLUluJ=9sM z2Cy<{1X)43C$kCyc)tJqPh+p&OPw zYO2ul_-?|NY8eHeF~t_1$FoP6)S1fDzU#ty`!BJb=PM;`*Y_+qni$F&8|0*d0{;|7 zC)`$s&;O+Lm7?N>7Pc@wvpc?QdYW$F@z(tP(a7Vt@psJhHf>(d z>J)>{{#_ID**qVQqtBJ=wBHYE?&|0`Yc1)fz5H^EUKD_c7)c$WLA_Ow6gkE6@|O1U zwstfq@G|Vl-?qJCBLoCt8YP>sy{Bdh19N1hr0JMmh2fz^fbX4AKK1bulq`Wu7Y@fj z*4}{-y>E+LpMOz?^%P_pX_!7?LDuU~4gOT6>aEy%nq^-=YVR6k%R8A}YvN`lTR3nd zU4?;Re^1AoJP1cHMti7tf>i}i$Lvbxv`{&jCbq177rKZv(YnE0cu$5)g_{e;p#~nK z6laY@fV{c1U&?EPD7aJv7R|^VpFKa3I*B8B)*;qiTPU<$J@LUtv;nFVJ&~&~--y)! z#04&&nh)a1=tOkwaye5ktzE~;yXo`s_L?ptE3EF*r?I9jgYZ8zBHIDo2hUNn9Usde zddUL777d8WbmD^nnPAm8*h4ro9hZx^44Aa=w{~-+f;`!YV~MwFa?-)nFF=APdJ@g` z(0KQe$wZE;6tt92f*R98{=YchVQ!P}bj}@n!xStnd*AXo!?rgkP*Yfsrm6={_x7}F zxi|G>lsAPgw{dsx;G zo95=G8~a~3JtLOCO*ei0)8^@d{eIH$*VDFzEJ0UlZ?y+2Zb^udD8=CZiXLFdF|p<*mBsB=acD8dQm`% zsYwxuIvI30p)`;T90#t)Oatt0^h9iUN78lPP{*KyPuEK{&fe(K<<95u8Xeuw)HBzN zc7YE?$Ij}dHbt~{?lh%`ZcJQ;{b&eFW2$$OWfQ6L9FZ;yYBDW!7mj~lncq0;p0<`{f5Vfu%-|myPddJ*bU8+3o^_1sKh4wOzYB;F-nT zmPd>68&$k6LfuccnJ!zkw%t)xz+t-{TVkG70G5@3%{k?Zt>&jMKlcu*j2-0mZUf-z`U7T8O%~(cc!i1o&8d486hZ0Ie!;{FFf$>l|Z@nPQDG5Pt zXkQi!$94VU%d{@cP^Tc0LD8S%RY7#deDN0p2e0QY1l9^l@AvXBKs^iLFzp(g_7&i< z@$8Whd{5~lKsh5NnLM)hOsZpo(}&Kj)pQc+c?2_F3t)=;85SgBXvDN`-h2zH58=K} zt`f;i7NheW(EPLW@=z&g<#U|Q25|n{BB)<$A>%GptLb$49#yV)xRLB*aifL2JUMx4 zwSm2A=9OLzP&*YyY=L->j1Gxd`Clh%WG^X<$Ui^B>JJu!MQP|M!5HgoJ zKvpS_dXY^mDB_baoX0D|Za;uAC&hfyMck&5Fb%>wy|VGL@vcpHRi z|H!o#`5Q%=2)~H}0ff};RWmo2EV4*+Bqb68L>06XI+gma0577C2})-c8K%HOQ&<|V zb6J_~6|(*3Nt5EiFFBd`p(%$D>_VrrjJ|P^-u=x#zjk+b-9yfkquqKXGYx>&>vQ4f zYJ~=?SZnL1h@hP@V`t~RI$5inVZN8O;x3ZTNk#6I9}k{QXUESvh28IditRnZ@37~e z&2_i9lRlKp2ks3hUl{HEW5Gs@`PN@K2jFTe>cbUAsOC(kFlu8#*SY~ zI{eStb`hu5H+UH!r3SEsK}W!IE4O)#DN;aQsDJ?T9V4ItQoEw4hQR0kIwjqD0+hkR zi2|$Tg6QK=TOHy4%f)N`Db>eu&G|VYIxY&NmmY4IqesuQN@L>~9u+#rmeLt}W;NUs zX4@NkTrb_*+pA%1Z9Neb@Mw&4ZaFVXSd^pVSZ?~_*e={9#LefK*h4nDJ+XiZ+s^I- zIjo}J-*1}THsAA}40P8ug$`C$*sQNQx&_($73v|D9r&a*CVyiT0rcU}?(X*IyjY2e zj;`<~BZtq3u0#AKx+J)7iP;3#bQtDZmw6{Ch(N~l;YupQH#)73%Px=qF4H9Am_z^t zFD?MB26ArvWmS6TV_^<{=0;osZzJ2aV*WlqLUS1@_C7GxXqZYyfG9qx!-=aG;hWMfY9xK8hg#m;; zo$+DM(+m2Qvhbx*^~O!DIO>4}rB7Y=jz6Up|8ojrTc07?x4aq20lbfh;7FrT zd??_62n>YuV;+YSy8oTU%bY_smguHbz{0(;gYz1w0x^n76;-r0_)8ey11KoANDIq= z0yAY%VrZl}k1r0Vl_^@%N0IQ(m=M{NU&U}+ibpMUS+l0%+F+E95e||*8LaF!_dzRg zQXs80{!MqwR;%)E554l%$t@Pmt*OI|p8S7R#x0*ql>c>F`sh&M5XGtA07-G<&l^ya z*O3sOS|R_$FCxf6ogk7~f{k(qo@$hbH6}BOX$;NQQ#lC3#}`H0r)BjDF3R1p2VS^o z+)>MXQS3V0*Our42Iv60&sxjpw9DzsdrV#Xn1Ik7(#3s@0*AqAwQ>HM|0K=CY!~^t zZ}`c6YjwU%JpNy$vob&c9nj~P_{KuAwz5^^9h{z;y12+YT?1Y>k3$A&r%P(LMvmRz zoF*uAh+F+!nALBnME21?3?2M*J;BX$6JM<~IsAD2+u+10b9(3C-ujHLXj>?0cYJIh z!6tZw)~@Z+=W=(>?(oYKgV5ibcB}@@^0O7KkZ~>AI0F|APY8>4hUJt40AJnUgE?KLH?1O;GeUU*ssBO%N!q{jVjE1Jrb=%r zwTD`@F<0_OJd0{nK3}*0$Q@LXZF!?ck!h)@c=jN<|85p9xoM4!gH$Pu_RH0e81Xqz zar(dQ4t39@okw)3Iac}Biml7C3Euy<34{Q`LYks;b8%xn?c7&aOSV;idza^)=eu#{ z??qcz|2!G+s0-hksGe*b>e`N9`8`~=wIzYv)p_!Y?%~eAPXl>AoAq73mz_)ZNE^N0 zkq;5+FN4Ig-*%tiIR{c~{c;<&42=)>0A>dh=r!a^&^w!=(8Zza|Eqg-W`OvkB_h;Y z2Gr{DWo%l9aV^%Bxu8bFbOa#Ur50x0W{51xe63w|2dt-)jH<#7s|cXknZD2ksF*I2 zC3(w4E|EntLXkyNFtRa|o)|8m5@|`H0dr~K1tYeq1NuI?WIgUz^cQf{vWv?Mk`ky2 zD4D-_^WRw|;zFtdX$cD!cJuWlf^E07tIs+g>;*#rXZ2l!uM@7hurkIhrX^RoKE@YjznB1;=ZBgZrjR6V)!{a+Jur~P3{F*ptf0w z*0lskd7spa^0x);cdodF86Us$I;~J7Gex(nYcMeD_YS8Z4tQf?LK2Z=F-Jsr1qkR? zy^;1(+^&evof>ae_eB3~I?wN~L3~s|KX|AR&==l1aRO27FZLd47X%9+po(LUw3yUr z_#PmxBx_A5pO9ZH9J$CeFMnI!d(AjY7qwBq7mtD|{GL)wWd=9HX3e6@dv$*?HwH)` z(zBA%40nY@!*_%TJK56pXoZ02*FFkxbKIY>JT2SIDcTr&aUsQ>ht z;CPVC`_&U2!t&Bwh;uGv`#qL$)VhB7kQDG z_G#W}Yhn#O(!CrZg)avr;E$;T$LU3UQqyTfKv8TQ!~n11Pn*IanmQlG=llBljCHzn z;mOIF8UXr17MlW~gJNw078)3ga+fh`8mcJ1Jx}S((B&^6gW1!;d^TQKKmO(iBY9mp zS79fN%Jq8j9JvoN-R|&&mlYrTSKSF3BYT4mvk9-F9beKq`2TJ+xK*P(Mpsi>|M9fC z!}C5#KX>z_s{T}StI}IxMu5Vw&c)8detpqhDIp_)`F&+}yNB}ms#n;4QVkF;SLb0S zJz(AM=U0T=RAZYeC6-FdH#lQAW@o$7a4Bn3m#gK|i^u?_CpRI9P=*iX!Lnc|St7+C z8uaJ0*MjobY8k~44{=c{842h$Mo?cLMsozl0Rrj-+5&W3$@4ul& zwq#UDm({f2&kEkD<%Kgiy_Zt|NmH2JSiRmjmhe_iQo}rom;i z4XUXqZI|bQ{TjJsd&_(URMAD2pSH)Ij=c$R%xgftf$V#NeWf_MmNf?QE?q|&wi)xJ zG{j&aEIgA{@?bCXjVu|xR?%dP7U~d(|Ix7g&VI^L*eHpqUok2m@A&T!v9++~1Cp0P ztsVw*$oOPb78SunCkS<-yCD`sqZOD)R+_}b!h27`;I{xFZa+pdL5mo1P&5L}MXowPclCv8I_P`t?GTS6;*lF6L<+IL8W(+gNpIrN@hViv zaq_OOH2of4I_4@~hfIO?rMD;sRN51zhPd6s+O?gW-m#iXYTsp*DX=ha8+)|>0k~Iw&~fe^T|HJ#pC38*EwRA$Msdz;*?5D%{$oYn@NciHPot|aa z@;eqKHr-yoKkuZJ4A`16A69x*+l4=BZT9sKqppNRA3v2HW(7PyK~~{spZHO$YAJ_X zHd(%aG~RjO7JSohns9QU)#ZP(-*%vZ=wQ3ayj)9xam^NYf4+W^_Dnfvcr?xP;@_(YDYn(sd$z(Q|z2sN+Fw%-wdrrb{tX6D2YOgSAf5hN!{Jch}58ui=87IBQ2j6WiV!ziP8%5o5vHhaGgxBG@3|U2Xq-vXdWaVsH_z#-9XXi&APo{yHlA1*Y znKqKg5HP**6t+Rd3Xo+}07taoP-Bn_LGcdQqH*E%5GFXm;SlIE`WH*9AY=}Ud~zu{ zR22rJsPqK9tH>|&WEr^BI&v^dAqR%4aM3q&jZyznxyyMzE;@gQ7g1MiRe{bhMd1}+ zK*!S6;*T9p&g7L}mb7hBib%w5tsfp{)=$(=G=~lNPtTS(j^O)C<5J&|iw!!p`n5MeY_Z3i zG9#IJb1AD1;R~A)PTs(GWa<7Z803h808YZRf~A39OU@CfSaJ}B!fh@M3*D!Mws!lGXF~0NwjCw=7=pxUIA-adh9OcJ zqCU1cMJ1X@7$8|AV{T}rxW5rq++3Xw{}WK%LA)9m`E<6&I^rB6vfWDGS(rgPC+${< zf+shSbVrehRG{fB2mSXaEe$paKnsk)4(37qg!^)+jfK^+(yHB;JP8Mqb83Pn#Gkt#2vWz60ViM|x^{exP zP9*Y=x5u8`hYyS@*b17|->L$-)ve*;bk4Shir@IJU)AKZ#-E1o9mwR}5Ay9h*jeHC zadn=!R^=ttNG@ON<uyW5+ke3l_7{86_Q|z;`nHv|o$^|Fwzc$Y&u0S7 z3Y)QU3pPGmjhz3^m2PcvK@TD%E5c( zEqWslvCyj2U)}tdRWn1IvDQMbkl~Fs;Ye_zrRYYPI}Us?ZqtFuhyB7vYq3b@#5EaRJ-Cj-Ik)a z`;)#Cm+aXE4-eA!orCzs-(k*8qarfYjA@Id@ow~l=f6I^LNJf!+^_pt`Lp)uhc2D% zf=6D*{$d_wLheGI9*R|8=<9-Rf4x^%@DC0F$2!H$1ck%+O%b_T|36t;`d+s~&X#;8 zws4B+GymMD{YttHlvltt-Omu>kmT|*(tRWDJH5bge?FIt8Y|bgbL+^%{=Wv>kT;1L zuzpGnYZRrjy)9w`!EN=DAvipQp8s01VU>*mGV5~zkOGs@io#cEaw#CGfQ6kYlqg`v zgWz3^VplsdG!5|iPpSc-M-4xS$x6x8D3}^A;=2iHqr4e9AP^6& z+*zoNH6J9r5_Lu2sLG5r66f^eP~Y_=+jrzw`+}N%MoAG=VAUfzh*PjM<|dggTm#q` zgDos{2HA;e53&kL=l$5#r8xNs|wqAW>dY%ZjFOf@(pUhj24$_ z#Y)88ZuJ~@oHa+E5_VYf+lj@_`+KhT(fE$7bAv^2{_)~a%2Q7Y?k%p0a=GCSB%FcF zLGP#OJf0mim~%@g_EHf$LGp}=^pTBa|+P)IBg zXP4jmNiI<_w>Em0?p4aMBzN4^0%nY*1#690JoDAYY>isUI92x?IfiTmmdN!GmWy%Ma-H<+FhxgX+b^IG%#3btcoq2@M8CHAtf zg7A*I1Gv}pzPtRKUKpm-o0xX>4#oqMu>THkaVjucYvEx)KH{)1DlWp90G!e#D9tYU z|1KuFgks%Qr+SH0(Y7t#(5D!55QiTbe z3|r@){~$lo(Xsz?a?lxa7`&5uHGBRr`CF8br^0SLR(G~uZr;lFA+hb)JJrdDXm?A) zH{I^}R`2XA58>ZzsDkJ2Qw5vurSY(V_Wl(91Wmi@w&htxb>-(Lh^VHllbHsOS9^ku z1m5Lw-D*n$M}qU*s4rn6f`KJ)imAMsxMzQ%YljsJNq_Ny)*oxyh2lpVS#vi&SndITbUFw5C2*(Y*&82BN+= zOj|RM0s?G6h977MSm}tuiVze~j8!r_Z~ri2vQk=aE-jB2kNi|y`MUc|h%}rP`E!W_ zI3Yr5YBD|vLDQHVSG&CPjfBOr@C)3l;b2UjQo!@g{ndoain(mFo8DjOR82(TjH*s$ znm;#!+&ll{o%(uQLj&F5A&B|YPM^U;EO za=R3A32(n7*t$QFnzbMd*gYx~HHH_xF@L>R@#5L$cgXImeRvkcH@+JVRYmS&|W56xL!<>PD^Xt3&Q~5 zlKmV@lf(ZOa&?sFI?rulquj}lp>)Dt_D5ABzl5VJ>^@1#ZFJ^Dzh2fznC)|q^P9(tA`_wqu43;F4X$A^T=dTY-J{q>XM4(o@up?mZ6OW^#A&qu2{ zrj5wgg7Vseu?`>#lg3nVq#!RDA|^!ag@evu0M|l0?#VR0s8e|&Q*9gf+hlFgvx4iyAjj7`uq{^SCZJ(>XPCwesZyfCzw3N;K-e)WuDH9 z8Tp*NGQaQ&ESC|f8w12)fquMV6c8B9b&F7MS-YuqBur+%s&jP-Fn(IyH#9Zg(MbT( z3#o6$T<2^F0OSM89RQ0G&~}o;hLKlYFsbOB)n6<8;uo*UBM$3v8yX>$&I8aTqN9Rn zm8%ZTX1XS|#HN)KBfP>t1s8S-A8By!-oGMxGWQA_pP<}wFW08dE9&-N>%81gC0@Dz zW`$qTD+m7COdAQTyED;>uAo`-Yr|m=MQf_!fo+ZBT!*{fX*gT*AYS`gT9C8eMDg&r zs`WA6?~;QhurEFu08Wd+?j|CJdpma(SdcKV7%UZ4sriqxOQFAdn$y--1xYXxLVfwSsjHMn4|Rpn|Pi&Flt0X>{=09QHXpfvvx z#0N;ETcS|qMMeP`YcJ#wycqmZE*iiVOj(Tx5)MX>+O(>eGylXFLENOY1p0^Z>?(vK zZ1{oJwn_K)Y_x7%++51e%nCm?SMjKcg&_Ozrl#K*B2XJ8%2AnGDR=LUB>}MSLHQ24 zs6J98OSqCecvPdbD#ndIn(&zcwR8A%=X4l9~i0-=6d zUJYanxmXgD>XF!_Chkp%!=)-`$i;w!v9!dMcnHi0#<0X8!qlcZ31#H9S1AkQgVK!@ zp3N#q@fA1aYhFX~&Q= z0$=hq~0?8E!5L5%tF0`K*8Me~Q}Oy7?WbiLCM4T@`)TVV5jF)_P60XON+y#ET*Gv}b1Dl3hJigibpX>w z3|gQc3Q~R9UjAPcbb01IE+nuIzY_@_KJ7}~jmrCZP!+L1BzP@4HmEy@INX}nAL}_z znrUw83NmAxm$1rx@byQNh2>4UJlUYBG1rNAG6s#&s~bZ#;rnA+@0rJO<~Dyd=0kl> zb4(wsuHeGb75D!oy$^a;M9It&%*r7jqWSunb2|IO_Ol-!IyTI0j(UHmb#flZ2jIQe z)3o$+<(fNNr7~-(B}3Bb6`w5!mYIy!OP?NY$+yoR%sF!g^5tpP+yw{kPOK*@r~n=C#+hT+M^&toz>FT3vf&j(FtBampwpcO3y z6mDDUJ>}Q9rj=lF=972WYIoa9Pa!lTO9@b=O~n;G5TVIh4^_DRj^Y08^;xl!j)%q0 zk7b{}qQ-Wteg|?AWsQ$6aayFVm2A6zC3a`0fI1V@*o*Y5L(-x9jHc&cxbRV0k*XHxV*j-T&8tgFSTd&l5^>b7I7l^|nb( zm}WN0KLAuNSU@hgz+%*<0ZBwvdjiE#WahQ)sG8B*&4X7g*~ROpw!jh*iVI8iG1p5a z8o8OiDYwc1LbO$6__@@In9NKYQyHPnaq_O(OwfE~FrT&wE2? zAt2hxklWJ-8E5n5aO?6UZn}%65>nP!%-2rIV}iTAiox7yD5%&7ood!YITDU0e-Y)@ ztVRG0);0c_X-25!uYvs~Kw3-|&B$xaS^i~M=%hN{ z!AnOaZ}Qg=cbT9lOMjxMI0TNcIXYJ$5O%AbNq4xB>S|5;G~5i16clM-=UU$w2-_Em zhRB#ji;u>1sb(WIOu80enpB4C5U~x}TZNB%1jJ*m>2j^}W)OLEiTc5EVWUCV_VXsv z9{xy*6!grsjrw|7*|FPqY>9OTNjIEyBmbPfKL#w;GYT@SCL@3A#27{KfC|KWhfPC} zF_N`?QB&}mKPWTh=ptJ*d`9$4=x{8J)$KzdHz*UL<>WW?g_ZV7QsyH`p=z-wbk=(# z%MI3<=59}bbIVrTy_;rtTk^Vrv&kqB1lrIiO#&cH2=^6Hf9NL7r2%7kv(ZKfdOX&TayV98VTkB^xYX0$%f-X;`tA4hy`ot^IP1H#Y-Fulkvmf|r zb|$aDfc{;z7s+nu_QyFNAcJl$*bo0EJv)weP`cW`$=Ud8{)vGt-U-_tRIhxtbh)>> z)u$`Z@@{%1e#P-1aBD5>V!bV5`XzZ3Vq;EzYBekUHZDn-79fu zB)fFj@E@m_zvk%7Wsly+8TY_mNHRK$Pt4!RWL05|)Q}9oK1fzR{tO=tTM-JdcEhwh zL*rZ8ivVA8E|0LpfZyp%f>bD#dBje4hyU>c+W&rah05~?FH%y8=ZkyUBu>tSwzlT^ z=T-ad{v{q=oz_z&E54r;S~mron~5`BzV^>TgMa635kfB4weJB_IDM($I`ZP?|i4UI~ERX@(Mg=1~6XI zhx%&3L4u>x0)>p_XoGjE@q$B|yYHl?J}DRJHjeXReZ0bxb8KE>GZB zK-VIj6IpfgHlIjHgkM@m+)T{Wq8J>eV9+UvRRg0o57_pnJ1%Sjn@Hh(ikOy^{J_6s zA3x4TkmeR56O{f8`?;mPH;a4HxR5dZ*7gm5uS=CoGnHVlj6{Hem;|{|=$i!^aM--G zW5&z0KJ0NlXJ}8l^d9y;{+6i7U@LFX6i_-hLB z(_cIMcHIZ_UinYn{?Qx>XnJ39P)WDaBBDM*Q4nd$>yh|lF8OXh%J%vnMb+S!)2dXw z@j(iNxP<;S3jT66GM=XPdieM4ZVsSev-TUoqv0 z6?@IW#fN)uU*%D4GaGUsWV<^@zi=|ba&hO3%qwsmp9{O=SR69=Kte~n{()mLE0!yb z0g2S7#$;apBIlPqq7@}1JNP=*1$*fks>Et$fufzg%oJh8DTA(^?;SLck~2X`NboAu z#_0wG9wMqP<%7($UxjiHB3oJD1;ckS`y55i{yI*)9a{A$adowOLrnAH(USj7Xn zzYE9QNVwa2=(OQFwe5TN&n8Jwe0S%j$*Y7TYT98;8g0S!6RbwL_Lc~TWly}>X@yzb z?5gIo&&5r#WTnDt(uh^+YXi&*P*MK8|yO~%cHNQpCul;{5m3UsJ+>V?hRy?pO$q#+CY$LTA=*0Abh zc}=>g`t-{_a7TR;?1Qw}X77tNSDci~4pwva>lA_pnjmPFM=3fF-w^ec**SIcAt;=T zh#Vfn$ETyK48sgMJ|X`M*zG;E4fFWZ#VaHHxKr=LvYeoT17ng-+WBVn;-lg5MlShk z|FaxL>ZF&YpD&t+we+v~S1Bqt{;XYG@60?zfXpVdAPk~A)SmVYfP zJ&`yZ7Y+6@#$Az826gQ&5?-$yaiH^Xl37PW_La<_p+mDdq2oBwT2Zf3Mz+Ma!_mqBS*bN8@rsTmqw$Xl^$oFuoePxAC8tNPf z99V6dTP*^0yf0q8E#zj=tEW@5GCopoLG}0Z_baS8Xif{+kzrm{IbFKTDYoYsx6t!* zW!|my-^j=x->{z*Eps8_`5A<^7e{*UE)r_Zwb3H(4@RI}n??SjSM%e!3Juc9!U_4eeXa{I72APWSS>quQUY z55Wr|IV8;Gu&#sBdf&>C?$eD20}0w8d(-n^& zrYYqR{MYd4tOo6@ZS5tQNA4WC%oBq>Vxa3&zK_BKmm8{=B=ga7iY$rWgTlIBn5#0u z-P+9;Cu_9;{wowR$>X}wNnIbEeXIR1u3C;0g-T=_v|xAi z;1=d80tBcOgKm*R0`7C92$zVfnJ`uVbX3LEQIU9P&*mgM>%XYZJ6EdXIZg?qaw=>ldS%HXV3SbB2Jn=`Nn}a)?PYpEAzI9Nh2n3=k|6O zFMo=(%-jw08RlHfH}cEgAA8_?ZG4g*wET~BOz3i1+KaS0*&%vQobA?^Zn53<4Ts>3 z3pU$r9tSwPLF1EtelIA;`VZ>FpFZ-iR9LYN`1_}K+_j4POF-kRq2GTW_BS^GeRIk`V14U3ABk%)=a&`T)4$&0Bffe5Kk_cS&IIem@#AusZNjm!ZDe5RuA>>z9 zsgii;e#~|uQDoTGQ!Z-!^-`UA_3qa6^hgNvep$8XGxw}>SOs;V%dOK0+bz&YGh}h3 zr)QwO>T&fMQc8d0-d_?{`+lZTv-Z)dOHk0=(4SwzUTIHPG&?HuJ_Epv#a>uhKtk%# zX?zBhFOeT`7PUMJO&96WaH^>b^9=X4JsKo7C2`;#T}UYe5kUa1KloVkHeNDU_YRsU zC1A%!ofjj$p6S$pLpi>Q>iiFWQF1YW#2|Fbh&3_dIvD$?i9a+~=Z))Th!(L2 zPlz0#a`LF*W=ouGRf z;qdRp9Rue5#?aYES~+ej#&RzooXa{F7rIt(@X$!hE8v4V?diWiLqbJ*$=X~0Ji3e4 zQw^;EL%DH1jBaZ`9l9l^ukRon^@tLXbfe;7!=kpI^30Dqn;&0z2^>*XDVB6A7u*N} zAd2)*AzYHmQ@cSI{x2%VfEsfY{}F;{A8;uz`CLMQXhB+1w7?ep9h0zV14;*VQyvy*n`AMcVF>%~91<`}c8l zf1qN=J8Ur~Y@_tkR?0Xk@DlpEguZg#Q_+-~vD_3YTdalqRX1f3Wt|5Mup%T{e|-OB zy-H!9o_55(`FQDg{%wv%N!Tq5szXEhCim(G(=D^&p~-GtKAUqyWN zAEWEl9~G}VN_;gf{*Ze8Yx&#M<91_$MyYZmKSO5gcmHZ{SGO|S24;SN^q}XOcg};0 zxYHP#>!RZh!=L^U(L5(wA)qA6QPBzZ3+&TfCkoT`{$c{xATVXbAkc7@y`q3T8RYE` z(SB0j)u6Is9BK6M(sOeuDFF_+PvOXfa`U%AKDGl6;s(&}$EHu)I1;`5qY& zeHfm2oi9aGm#As!a+Ir{{quN2^PIH!9wmd5GsOE}L(W0O*!a_bKTUpI)3T`>cF(eH z{@}kCkVJu}^;4MDT6=JX5N1=@u;Im^ok!>EpKMROO9*{pbid`v%Jje4J*#R{8g0Vm zjIqknqwc1(HObF|@zY0lO^>g#gNzXwl43@kTh)ZER`Jx2V5 z#Pgld=x8p2YBIs|52Ian>Y~SS>|F56(A-`^ZLEWwiZ=>-U;~h757JraW2-7 zMIRGEd>9oj1%Ug%cFFPaT>hNjrH)Ij@b*vx_Bc97P^vHe+cG`kv{G;Q|!8GI`=whig^{a>TY*Of?QqKq^kDPn2%)i zK3vr9sty?)wN~;*B#&7JEiM#wZ7-f;f+ESS34aE8>JmgJL*ekJZ`Ufw=I^cv}q6s7e5ohsdxK62|Uy&@1 zTiG8hyu@X`b`HkLak1#i6~lmXbOAsV(Ar%o|z=xTS z6?6!{d?sX&@>FE>>?|L@4HsZ`IBpnvXxO@=0<(DZR;FI=vs4e&(zd|_A9)@s+{68t z=L29Do1bxQ9^FH^;c;2q^r%yz)$b_nXjs_X32{vHX48}3Uw-!9iRZLx3X01H$qjqo z?@~>B=A@gVeOuoPb4~oyPMy4De)4|n>p$)PI&O+T{kz`PX}DKCemLUFvmW4kEfIf^ zoR5|_COZbb6*3p0B zq4N(Cv^IKz{OW4`W%@(<$X-h=oKt(HOStoDS$$nsFTYA){Gkop%;9y@>?@=dEhW?A zg!~Gd#CPX!dh`ABp-+6OIPweTney{;5ePAVffs!0vne37){;Q<`RWbmy>}~$UO-Ei>JjfdX&Jmj0CEh^iU z8{+8aDa4DH?X--#wq@R@lsrw-xGk%<)=M{(Tk1tR)^PbUc{*v@^*?@l%dvh2vvsBOg=}1{Mem$d za?kn}DWk63)|NDSSHY%!4WW&&bgy|j`5JUTHEDJDkFh(#nAyrVTJ%wF@ZGcvYWeS* zOwisaSoRDKA7rR_Oa+b7HEHebx68U$NTee7$!4GJMc4Ohp;LM$_n&UO&dSmge1BZC zNPY9Svl&VM6~Sda`ajc)yyM;uA#OuG0gb6wL<7!THQ+fdbHUfUF(yxJfAg>-CuGZD z6ZigC$y|QfzruhIC+1@(LdJb()msC7M#Ikl zdZ5ebYJ&@9;l&GCf9t0Gd4akDFJ-!#rkd9u=Vf%+#FL;Zfutm9!L-ZwRaGe@E&$+U z$8q-NF;#g`K^FUQt=`j~c}bhWt??;na+lnB z{Ykp{mqka3;?EfLd3Yj3nE3n#Ydb;_hpSm#Rn|`s*IrR&{-L9EIM8`CVl-&7NInt! zVTLHeUm%Erppa58BUkZCz0EfXSE{2S(^tHg_$7@?oDw3DHzEPTZ2hA3+M`z{O9@B+ zj=or(%!;4w%o5F5D}Qy;#2Acwjo!iapEbrQe?QVVP24|LSdWJ-T+o`Un>ujOX}slp z36x4$uDp4*C1mvVc&-Kg&B0KAn5GuVgQBYNhvI+XRSI!?(mo!EJCTgiAH-aNqvi0B zt$8-6DW4o5;Ir4BQKZULsaV<8;z%skRe4ZzLaJa9-plh1LA{vwwd`By%mK(9zGQmD zC9);Dnu#Lflk@xk|VjDkc>&Fqu=0BJ7?O? z(ZpGs2F-vNE>`F_3Nu>-96|uNxpli#jbufT=kpy>BcDM)%;H#&PvN)!(^>W~teX?0 zoxAqxpj(q5J8ijyyQ0cVy#44;fx%5&zo!Cm!5y&b%Ksj{94kMlAyu|B)Rg8EjtjvlB2G7IsMvY`78aV!l9|ES6P0UFuZ*Idw0OfdtjkE4v+q$CE_# zh+DNHrv!oHHY1k;Uv)X_$KSH^g4`J3Ih`@k3;9--QYCiN037#QS5&i4%K8IQ9z=>r zCPn8TH)A1^PYj&lHRhCyX5r0`-QV?}YErW(pHMw3qpq%wxhf|uqi0PTQKuo`i2uGf zp1H|tJaWw7^u4TGqqG0OFYm2OCnQOYD}N>aidwm19(A$PF`BE8J@3s|VM&SJM}mXX zxZ=W#Wd(|XYdUAGlvHAIK(|?VoofvO9@vi;F+#rK;?bl{SDUFkSR;LC6V6lP<>2D7 zTv&1!NGLD8TVYf0v#~zyc{O7gMaF8&fCAbmHP#f6M^yfK2&l{*910pij| zGJwnrf8P37#<}D6Lv-co=kQ1r{(l{?L^ihE3;fV;RG&VodE9SW#?PU^-u^IVnNib| z(lOGzA+cE>^OLWPZG4YHK217luQ#n7cdPyS%g4JJk+JHwq7||?|96s6vedO*#AHOJ zHSdG_Q+W!Xind8YbNRRB3*0B>S5tI9iYiw}`)ryab0MrR(MeRX{Fo9ljOef?Z87Qh zp{>DVQnb%Cu=I~((zX7FGVH?AA1V3D(l6ek|HUwKrnUcl+Ksxqyfq0;2l>W=6l(l@ z^0jyh>u03OpeDliW-6v2<=2*Jrc(NQOe}y%yTUN;p@LUj1bT++!CEgBNFT7{mW1mj z-sXS8S15Kn1Sx@tecG>%mgBd_ea?Tl*1mSoB7O$FLSap0)4`liN`#r}&-^HDVH9n+ zYVX|Y&*^oNeQ|S3{hw;>h=L6z@SvyL#Kc4;Ww+k+?&PtRoidA>fMm7fmk$ExL( zo_O{?{`_j>(~Ze)LD^)~S*xx0WNKY))cEqqiq)q5M3qU=&?nkW-6?v*hyOBO@n`hP zNOcW2rmw878omyHR(J0 zdY0DhdoASehHR~Wt)E{l4R_9}Y$R@FMH9_pe7dM2@VEGG7W1Hw;!pRU{nHygMyKC; z=n)d+)M7~*$+-G`(DJOzr@)5siEM?tOAalRrvGYtoh#q;`ky%Ae!n63af4;DdsNU` z!`#TrBC97ZE*GR|^^E}=81e2;$wN&Q^zF~H3D`3QFRyGjHq~jm&y2M9l1SsOEfh+q*Q78)*ONu%D3GU)=EQ*``wpY8w z!kW{c36Huc9NJPgA8UN7Xq_#M8+TNeD}bEWgUfO2tkIqAzaZC7Ac|6osUI)^RM~Ve z;hcx(>MbFe&M);M@b>vt0`(#y>y{^y9Mr9A=(}pFbn0 zjocErUEaCzWY|1t)9u0Gm%ID7_TPqloy<>#VydniV+LK7-3AbMz-^V@F$8-e4kWlv zmz&Qjih#FFIxmGlR1S<-)%Khf{vVlVIER*FlR`+*Nf+YI&+tCx_+JI&an#0gG$7um z@}pIh|D&i>F|fj$>yTaSb#6f>CSN4zBn-@Kka=upxC`{5)1pz{{LpIWR2Zb-x@L-= z9KR%txLP}2#7y zlT8-Typ+JeKxZ63C1t{rb$zjQ9|5*=cmFj7pYPm)$-F{1#|ZH=d>7~r4<6&LlQLhH-@$+F4f_NdK8;N0+efCXRO(dh5h@t zLZOQm?>P!nqwK5hS2$lP>h2!e4JKP&O8aUrER)>xq%!^19IZ(m#5*f>^{+!il}^4V z^hBfVgIYp7JzbVbsXdP8Gp>$cMl){JT%DS{I_=YtX;Ku|$&!24iH7hUsJvJ9(r;z; z!fd0*L?P45w=vy#j^t*(v4@>^M7 zR|IF}hI)Se+Pd;KXtiOkST;M)3S=@dy`)zZQPFetqpf=huhw~6w})({^U_Cq@ZTMk zQ870%XGJ6t_E!)^s0fK?P08oFm86h|JCC~?RBY29;*=7&gc0hfw)5YP>)@_klEiCb zvy@+zZkv`6Q4vbIc;`#8yzf&9Bw3=4(j9%d=QWXmYXA~g2!M^l*CG`E8~Qhjld~IC ztqUB3Q4@X1J?pA>d3Pq)^6VgOrB~H`#g?bfs;cp}Vs*CtpWr1Xr8gcY#$S+f z>#UW_uptipg&LihLaf+r%=uJ(Fl`$)>EqO*VX-w*e!pdZYkTQWOI@AztJ(ISD;Mrw zt~mWQTS-)gwA~wMP@R=U*N?5W%rvj)lzFQZNNe@nm}dMOyNdf!rlL-xxgl(tpZwe~ z(IWeA%XfQS%@7q8wP}0;M*R;4r=2VBr(tl_7A|hfFaNYXIv2R6C{C44wkKOm`u<*g zS#o zA6QxNQO+_pd3Ex|`03|b?qEt@IX;=4m0b=73Kvpb=f`6vLZuY?ir5##fQ(b&&~~H2 zRQzl`g8Z{)w}Ck|2q}CIEt8+ z2g$nO$?ncPm&{UvRlcN>Q}*x;*I*Qw)tqFO+Z0#*p4nl~ z+0J_*9;#|N)$}3kNuX{)J5#|ra5?Gbi-mk%J(_D2rpqg{U*_wrJ$3EvE7>b`liUAY zsUY(fu)HVNjx?V}L3ksT5G%Y~4;UY2z{Vt}4+nlIbm!4a@2Q$QC~1Cvz-623phfqc z#d$e!hQ|P%cea1K@->F5c6k-dcLi4`gTOAzq5&6t;gz}|zlQYrP6w0(p$0*Esfncr zt}Siw zjULKS<0{F2Y^diSUo$#kVj@dMf*FtE=Ezm@iA#ehR+to#NIE@yj`N#Mhg;BSwav8%DRB%qVlRC0Q zKBbw6i3oid;>$yg0f98bezvq|wx^x@C*NxHvoZZ>)LbfKCUmsM%TR z(XYdbS(jg#FfK1wsASZNDA+Ux1pDlZYWw4lT7&vcDCOVVU+NW`Ye*rD7r!AgQ;j44 zz8V`Jw;-8wd=bS%36>1!)tWlda?e#Oh75!nuX{e(jt8H$L^(-*MY@e2c+3*mVTyji zYwCF3P!4=UeCSIs<>U?##0y=CzK3WueiiqJ(3tn_?}>&WT;^laYx~CgS%=@}cfyu# z1zAzt3ajOl?BoiV?gfxVO0pSPvLI_mz%3mVgr7S%o!#_D9>`ouaOq+SA-9cy-gG?J zVkHoix20cz%?^djYaJp5M5o9GRF(GwN6El7vU&Q2ybDH(2p*7>FJPOtkv@Y$;9>#1 zgL`M%(k&(SM?Q|z@rhqB;PKTfCN#fsq}2V-_yf$qAsnUGNkB5J!tGy@wTDoYz z+HA~WlFE51hwa-cVQ1NnqIC!D+9Xa0=6N4ozlP27@l}rNII$C+*Q&?Irrj1E{eYJK zy?alC=_|I^k~$jV&*L@UX4F`_(h|3WFvwZ}f^2J1Kmf|9s>Jm!XeU@!GW%y^^N_Lg zSCfyEukIJoGOnFCx%WmS2sDEvth3@+9EY=8Tr>k;>Gwn8S(6}K#e__ev5zk#Fr<=N zgI7g1_XK8>J60u=@CwjK#A#1bNFlrhm=|G(>Ze?(MbRYKk#Bk|{{o&c2`v0WlLb3S zazQ0=g=Vu)m%HhlZ5Vc*D3pGVQZw^LbY$34Q5dk^=?9Buaq7An>#a+T4+ncHM|%4s zId_i^!VX7c1IPCw)*bd5Q;%a9AQ%0C@kRvYIdKPzf{e-RGDDxv4z)684Re#y$mTYD z5iTU}S1U`6uB;z!!H^%}{5~2=C{>qB(TKhP>tn{zY&lZjj56~iB)xE!E(oO_0OFQx zlo^>H1p02b9s!5i|IUVOsE0nufJ?ZLc$0OApjB>Ki6&~qlCZj$%4WyHyjWQRU|(l} z&K_POvtm^r$5I_lu<*)^i{a(}-f17ewLoRL9nl^@M$w`aS15s~g(A_A$hWEBInK}H z^~r&mje;`H^0%e9r&j`lSLPyq+`+Di)rmJjSn4%T@<>4lO(PRur|T-T`SKsJ%$8KW zG!a0~6It%^>zF`*+o%2>eUpU%ZnBc>xoA(_jF0+*AyY2H)I>H3EG#%W-zg^o$;C?y zSUWged5`&J6rU(zaN-UJ0dhN6URnW&3p75)cMmK10MoOxV8LAq9*G4j7dgR42}vcd z)9qjP#jlj`Jk9_#uvTqqFW@k4S3@Hf)3#rFSUS`DF-6#(<=aN3itUxC^nq`J=TG%O z6My!H{_~cGq<&#g6FZ86|9brI^>K$T^(P;#iXR@fGCU57cDA(lg^sR9E;TMIDt!Pw zA7S|Xy%y#qBGo6mf2lD(v4%3zCkqK<3a#ys!psk!g{|(z>m{<)k6dG}2)gH2s>rnIm9J@Yn_0hTG}>sz6zt?5H#dlJ$z?mS z1cla}VFiB@QIcGWlgWoN8%9oy)3GdxCQ{civ8)nGTBnAyDNMB&-@QD{`3Q&y4y)D7 za`{*<8xY$aa9)xNL^6Zg&S_}XHa6Fsb~S%)^I#(Y$kloFt0NHla$kgCz|OPJg2y(^ z_t9@+GA%!HcCqpSI$amrKR8+6WuiWqB@;Ku3`bLLY!`YU2#(a}sKdwcy>q zlXE2#E;(AYtb8M(7eAOhz=9^v=4&QGg9uBP#?eX5gIV!|zKYfmk|RkohL7zA(yxy7 z6i6gqxGI94qfXL#=%L@9DO*4wqBl_b*Uc_OWY&Kkj0mvav)r=<&5t5XjyA&%)&RT5 zNlLn)o{t%f2E3fV)8*meQ52-1fQ`#vfgcQL??z4ibNW4X)H7>IJHZx4&~KY13q^eM zrea_ed_OTK_~@W+PF+U=Qu3vz!zY%oxSElJD@1#E*tTd*9jmd1MZ`3qIrwgytytT( zYQklVbt3XbQEVFTu!skoTqsCN-w8suxq~S{-1l(BsL$2P>n*G_F-N`E?`plioVMaO}F#HHp(}|A1~bY9Q2wTuJ;(QVXsfEKWUeC(knAzJ4u@-`$ zJa_WOcK^N;4?Fmm-JqvjdFe4}m~LqBWJbg=Q-pvWrel{ftIe^bxlK84d`AgdnOelv*Wuwo$22Qokh^lES69>Y_=c!x26-?W`-6-lwiB4q44UUjfZ2^??I zQBUEy!V)m5g{V!2NFC>dxuRLSb4H&|Tz^t50eLe7>*qaMcM8)$Tx?HrJnO*G z_KTH(teUeuR5^O^e@}HNY+B9J6Q{Ys zMQ0E@xplhuY+VhdV!ZI-hT!z&if>=TNVc%j$FvwI0jZ0DL1;i$3Xd^Y48-*=)}{-4 ziuySD2YEtI87e>{--R(BostXc!2kDv0+A#jojJ2hSRC`Y+C+2~sSZ$k$ihKOoP-4y z10^cOoIHVKsjC!;CLsGBH_tyu6n|-Wkq6LF>oaCpMX?WP2Nns>d#7khZSq-KYEGJy zKR|To0CPh5?~Q92j)Vdh#Y(fJ!S32NA!z{WQx!3xJ2*6G?4TPS69E|SAIyFYVlJrn z5%gbCMzS9h=+)-qsaFJ=mY&CE!C>l8eIC`-QU(|A%*p)F{deLAGk047c01B<6PJ~} z(3255Id&RiqkEg&QsHjqZ^uJzUEt&7X92GIC62H$8O?$6Gj9a0CtJAm)+1?_ukqp% z>$Ml|x%i5IGK-O1IyeBa(J@mf6urZ8%{@070Nj$V++%xR8K;pfkGsaL6N8#g%w*F^ z3gFh}60mP9-wtl6AOmn{x;_SW2nG^k`5e~@a&|wnLTi&!%AX!(p?J7Lh6L|*8hsVFqwsCoC#Gj)awF9H|V4z$& z@V5YsH@=MAw?O{F!2D+C)-oGDI1JVh6KF+BEtp^pnm>z#e2g2)2K^0Vj`ofit%n7z zTME6@i3?B|0VyQ|ZL@QLIaa3E>MLtnkPFY|Cdv1z{>t2IELR1dfrgn$DZj)BU7RsH z$7!DTW(<{+DY1iU%z*a~t!6CYBqq}XfJRH%-TT%-;8V3IZRA9r0T-bjbBj*v{##hRgh;j$IZm(EkpMu>>_I5*8F!)XK~BQ3)T*Es^(Hu0@%j zde#F0k}BW78nq-=zJoKt3%b({H0_lnUg_%MQ&bgoDT&Oj z@`o9*rlQBnN@~Ls%SuF8`NzZ}xR5FOSO*eIdL;LAB^%(Qq=-W?A(7>yJcKx43Bd)P z;urZ$4ZTly!*io(ojiJqTo8gEAS2meR!h@^dBUn}G)`c!+_*+(co*j?Wv}ICakxk^ z1c2HFtsR%R-eq4R-%j8i)2k}MW!}RKOO1yhS)#am=qpc`U94ZXcPJph6j-1C%6^s0 z^La52Ni73A7)lb!@>v%3RK(@A8zkSxbxwf$I*>hQ7W1ooSTlKiFEH%r?IQYq=i6U` z+kM8ICZCS`?3wLvy~fCL^@fW6bgx z%7j&dC=_ISQZ<>|eu;MS=-0;1<&DWvfQ3zXENF_E9Bzh+2gCH3Wb%ENq-8O}4gClt zMwa>5-kKn zNWXRq=7NNq!ZuEZGW_rUsFaA=)qmn3<5!X*p}@w?{B9GHQ}RX$1#$Xk`8Bx>5ygdf z^cS+%lhUENT%r*O5U6lehf!=*QAwX#z70Y6a%w(+kdDd!m~2)_e{4JITbSm^#$hO8 z2n^JI#(M&Ns;Em(A=hC7G)vIYo;a2ifJC;d!(u4Jr!>2@5Pw65su~%AP|rHxFv>0Zsfahq zK0-e0F-FH`izQnmCgEUS%krz{D7jw^`ya}`0<(TSmp_(`9i15rp^`87Q~{9M(pUf@ z4Z&S}dvC?dWaYKj%0qS3@SDd31GuD`QZcbh7KMT&`g}mL@ypyJXx74$%1YFFG3Q=4 z-jtGqCWG#xtM5*-2XukDIw(`vg`xN4&R{8a8kgQDQzhs}9SkhN1#1(nEih12VaYTi z6bQ-S0SQzP07bIoHdQQrlr3KNI%xyPunxLi*bQ1icv_|nnLw$i&<3TI2rWh7zAjcZO=xH0myi2Z+O#6}!+ zpBZW%=gFR_vXYk`l7oKyI(ZjYV~!n9=H`k;x%NNC023V2sVk&wVl+W>(rS_*AP`%- zy^z^-4|VTv5hlXf3X(iQ(psj_LwURSU9Zmfh zc#?bvb$uvP&shVC{8(Iqcmb6o+<+w39M2H{9?}xL`=pNu0!gIg>-_f}guZzF@VU&o zy1Ko4SBe2ZCY$K8LX>>mMjze&poze;I}*AlAEz%=L)l`R8fa;mU}#+EO$SEmA=irW!dwEH5DVZ2v-0ey1WNZU~pTOfhfq z{I9YbEh%^i%yviu?cBtGVOC;?z~-IXkb)mYE|*mKM7~e<&uvyJNYjf-gwG^h8OleZ zYba*mKd36wL4zqn3J+JCVr^Viue?NU=?LZ)6^L{LE8aAo4k}WL`{rPC2c(?rR`;Sc z+ysD9L23q3?LrTMEL#c~!nt*r5Say{r6DFrI58!KtyOZ^sDkX4jMP=WUMU*kQkc9v zVGk30%qEW1wF}zmsg;0Xhy5Htu zw5G&^?vjYvN--tAeZ?gU6`o z2Qc?&v;LWd2>syH%b&ObdNynUykS7CbnNSUc+rbbGXrkZd$Bw#N&50$-FHbMAj%gn z%Y9M!+#=?b9V={fzYKt2@OQ9gPj3v;v(&IIHWA&Egvp$KEV~sfKfN6&FX;~b5#pLd zbh#8{t~r@w%OoqMI%b$T$Uk6_cx=@)=H73aq2JYI$a`810lC+ip5g{Wl$QVitWAIi z_lpIpdruyP%1)*xrQG{Iwr>@-=}|#(vMeD&33zzKb%61hg}bX9%knIG(Y>lPsm2L6B9)0mmf1O_V(CLuqP0V>&s=Ra-2LKMKK`BoR)u z2Ql&9u;!>G1SUJ)Xgr0wS7lv*uz~adgqi)t(bmHrlThB`COFh90la_mJskjq#lGG= z>oE$Iy7+XJZ0^6LCxX985GBBzq6A%8n@XDCByy7#rip#=AxZ7HJ>L8Qk9io!o}CTr@`=LN?N4ws{)cTBK@?`%*P>bLMh0~(6`kis0O7WI zt=c^4qIuJ(rKhV2iv(C3z$Lu;>_3dm4A#J9>_5-Yoz^%tYS}03<&+>vY{`#?;{`rJ zU~LI?bQVdM}FZ1FNsL>vof-Szz<7*aa1kz zf0i?C)G~6T6$~HrujF|%B+@LVw4}*xjk1EbAsec)QjK`)8EKpQH_$HacfJ$nCO!Og zmrM3qP&1taCE47S@8Pw{b~A7|lDCb45lQmtieX<4>Ag}+gz7|u1BodRpPX4&40iVy zk-VsC(9C8^TAc)q=bsQLf)CcRy!;bP@%a=cwZ5oHl7Qx2XU`!B8aUtxX2YT$$Wq+J z4zPTK5D3&7GaxBIri0ipBK04F0O7h4A;c-A^^ju_jH4IvSy#AC*+eVqCj!yP!LDdUK7|HU!rkgr9BsHDNtAhgTUr5On zfi~bc*S_hK1UE`qpjJ+h{TrZ7=4viwWHS_fAFP2i1Gz_Ryl)uJty)%H8vaVvN%z8D z%Ij7@)qrTg(%4i2N%?{=l9c3U2Yy*DHBU_xWIjNXOS0G2$Z0FO!-GUQ32e6XrJ&er z3@nSP*KI^9n0K(gj?dNk_@I@}yaj_8B5X=w5(@&4O3ZO3=Kie6<`Lz#Tn73F9eYgQ zwK&}j%S=SeNb)^MJf{@XD9beHz*bD*b$%f z-O}kz{>N3l;u6=~885J${F(3E>x1>}FMnvlMZ><<$M`F}=Fex$5DQ~JXWERex^v@& zBge>@sw0M~*?cMJ!0gL22AD3m=t)S36t|ND3bk&c1PKSnp`4XDVry;*J_>gs0kda+ z=-_zq`scfN@1Y%vkkLAjzIcgCnkEWz2)-4wVjsy{e^>9o&$8%VB$WhaJHd*P0OOaJ zbzj`t5Xw1;PmacNCiS!ionmHrEPAED*$RVmUF$xz;j`xHKp1VD40&gbt%ZaAj$=85 zL?2j&6ibqEeyjkS9~OFU%II;0cnI^LqV-TmR@bOVAX>T56yQxZ!NL zX!E7enL%8t7aI?%!9T;XGLFA9zga=qJg zq6dJvu|lsPM#-ytW|wHe(5_Vd-26E;>?xR&X&L5P?mgAH#PjCNhVq+DLY+AWTXT#^ zJ}%Fhl8CIf&*i>-!~oKhlWi0gJn_Wij2N?BJ3{T~1pSu7T8ME!{#-Ga)?VoHg&sA| z&o=5(Hm=3-Ts55e0;(`Q84Ebu|D;dqBgFtox#G3W0FB18GcO{|f?~xRi~QPik$h!4 zVEhc0@+~ATQ)Ew%Wm{hePZ~TSgJKq20&rYrB=~IERJ~x(8?eZWa+-W;JfEq^s+U4? z+$bmpzG_t2Rc!{587TreDo0l~i5Tmz#?hF-bzNod9^z>(e11Ly$sQT*M!2!~+_~TK z>j_tLIKS2px~*6O;+AqxNX}9vcV9dZB^k@+SqNX5&~Z)948Vyc)DgoqH!$NIe7cDp zdc*;gKKR}s)r{naP{fcSKK@CNctI?duBlYqv8_wygvh~A)4>wc zrdH4QLeVAi911re6V;Jeu3?0QOJ|S@RvoH3@xZ-O90wkN zTw(c<-93pCOIT`I0~wFmXRR77LD{scT8du7QeJ(iDkf+$TpM>S#!Uvc(!9=!l&K$y zNU6{A?gLjX(j@>57QM0YAh=plDVq+#O;v%<76wd`?=7y17_uoMK-G*SHl32y)JHe- zg6@@A${xC}Fx|WIWqPQSOD+9iorZ$jo5ESU_3}PWgKKEa1F#ypHaAI@DK6>YM&hF2 zZ6833a=8VN%)P-{c)49@)^|_`{qa;o%Y&X@<{MJ_QHqb1n!TfZ-&@*dak017$2!f zwty*ryo*OLnuQG__pC=TiEX{02`*yca*J~T`Jb=>Y}Ok`VvlsxZDNf$zxcZ)r%bBB zh0dff{d6mvD#(qTY=2ou4mx?7yu5A2^1;d%TOL&!%lJVs0&$>b6Ac111d;yR{YHn4 zT0T3U=wrM_aYINvX5+S)O?3C+n3&g7ze%&q%oK?E+x#~|R& z2oVCIv{WuxK&e2q2NA=5#-gNYt>op&a6OnqSJ2vA1Dukx_q7q&rq)$Vwd@Tr!RX2V zSzcm@Vm48_2Y^Dqfo~IQZep+xHFU#4Whj^iHy=kL?mjz40Z|Tv5KxUTezmSQ9qs2F zE*ynpT=9ml*^pSW>~$O2Ec5qvEgp8e}GV_zSant4MxBwl{UNaX|%%0)$)dGDl!T6L%`8_rSnaF6SD>P zr?Gsmg_BZmgS%fqRDxvWd^|n{B#-^%{3QUnEk7<_&rPC`j6cT8EK@8V|&b!k_ zw?A|GGc8?4uc7?Ip5AZ&@>EzPUBtS|8qSFC_qIwWfonhlcjX=sZp1!3s}rL+o1zM7 zC;WJ02jAz2?i-QnF>0>Eoo?G>Jm(aED!v)4@)M)%BMRV*-8M;IZd;Ef0j zKzwL&u4K!9?`=uocS8RbGDTwHkdF|88)4`j)`yoBXwNPAD5POhfeB9pO_OQ9S>QAP z(X|k4WS$Nvgg-}uWDUfOMARy(AfJ`Pz>f2QEeLXB#;;6o>$|iMC^XMF-5?5Y%8%z0 zStDoq_(zv4rvGwy7zK+C#_M>Z&$iJyb#5!5jQEyUt=X@=C#wInY}!MjrFs|`ddP>x z2pJAjGZrp|XXihFbTR*J7vDOYHllscEHYe(ZKh={#I0`BhDFj(r5HRNYRC!0-$zZF zs*10qui_=@k4@WNPTNd){YzZ2FomN~eeNkE6VbDryX(TsK+FYHFh@t3f6A0-HT3;q z+a9g6!VCARpJqo=`u7gd7_{08z!TTq_qa>=AXv-W_;aR!G0ppgBWZhk6Va9a zjWM@N4P$6|_jxmrN6k~}ySt&&>YxORcUX4sQ;JRE|6B06;zOD4&d-wUWu8SHkWfB3 z-~Rpj_3KsE|NK=m&v<5L(J6`d-#>re`@L@e{p$DI=ATbrJC)_r^_*{+zis?)o2nUH zyY;)$?^Naf_zA_|G*Y(wyQ2w7c8cQ#soV zQB*dkGGdz~Ta1kyhB^FRU0v_n_xrhhf8XEl_r3l8{k+_6UNg_vh9p4SXe@nOd&=^sO;n58I)$=ohetvV-p>V(NYSh@z_Eu)%`{=8NB zA+RZ8p%Y)tQ5)64dgKh)NAPDNJ}IsXRgfvauJ=BMge_3;%4qk3?b7;nrM+=DV*Be- zPsm98XON|ow#=_F(5Ovz3jd7xsf>sHGv>RI@_!Th1=4?G^xtyy->=AjtC9a_4Y`;l zh+Ez)&q)r8`$x6D4||aDwmfG26ZV>+b&N>+ADw!ghlgDs6BRa!Uq*Oz)oxwevA>! z^kRSbZ<2kA8ZzQz6fE&u-?wYWn$qw_HqBP{vhHR)gPM#k_#?c1J9 zYtIG1U-$aK1sMEw&pBq~*N}gh%NbP^bb{;c9=rC=0Q|sq|7X;%Wj+kki5dClwqo>~ zYB~4!pWptsOd9-NIi+J}GYyT4$|1NFi z@$YTe2O`k?o5C+b<^Q6zGCh^{kC9#~g%f^@Q1d?wU&H>hnT@~YhU|ef+)RmfyFmf2HC7ZD}AfzZe4{{UwOM#pGW=tvSC5BY#gP z`}>ym4}>!R&ibD%eEfel&)whC@&C*I|GOT~e?^w|U)FQ<_w4ek|EI|PPcrd)1^;gC zy6$g^zXf&iH*CM)hkyvLeEWy9|E%ug|5o0AZOzK#-(sieX%4=QAfb2L|A(l@fg5qh z;9rtrzXpKv^3Q-@FU7C-H|u|eZsg7Xjez`r)iDXboR^hiam^-K8LOBWp9BRwHdh-p$=e6d$fLIUubcph z*aquk^1hVd173WyfNPKQ0S7V;HS%DC?oLgBfEo*hjU;u^7FDb&eU~US6{uaV3kvdR zMD7E}h%0dxwdQjE8Szsy7Jc~w>Xp*O6QOCkBD6a306W8ILnsb8F@lpz5 z#+B8Y-cs2r(%m$Iq;i1mF{zTJKvq9f-vGv`Ra>y9Qp^A^J;zcPNRK}$f8_c=k*ge`}f{pl;kRhhrJ3kkPP6VAv`J zvjE?}Dcb`$XjAT`Qlg3tfYIQQ#R}k%^l+>~7!6-UtXKU&ORP`!M+eIxm6;)(<9xIS zN`g)$0aXm+OyAt5m%8v)3Mpo54-@=(hA}Z?`P^E+!(!S{uUvCjFb~hXjz-IPqkv7Itx?<}r4r9tmY#f@b!h_?sc6Qk) z01zir*_$RS&r)7w^xX7?pvL%ZU0>~5XhD0JEf0VXq;M?Yl&AtIczbxEsu>H2mQ6NJ z)d2u41TA(MOF$c5?EHc&*M&b-0hv7-oa!RAO-9otvhjiDFQJX2HLW(q3|&Hm7vG6n z!>*~YSKnE$xxtt$c4`5@WI3$saSA>hK?SG6fE|PYJ`6I)hIArY3j|s>eNpukVulGO z9wix%1|0HKkXSP~;U8&KDTTh!#p(nC5N)>Y+XBh^u~OHQ7(3!=CgL(6R3s*g=HQe? zM4SW%ar3OGimCB3L!4 zMU-8#3o2ePdP%dHCJSFg5r0v1z$_j>nw97A^|=xQuA{1OB^k0RGFj1u$e(Egl~ers zoM!=sf9Rr14lj9qvtW(iwJvGAHB2{Jf~HRxSYT1dY{OX8Ctn6I?iUZ)qUdkeMdN-h zPQFPL6?*=L{>Dx`DD!q;Z%s9)EKUDIO%k?*IZ?rySP;MY9=xeplrU=!g+;Ya| z=c~O+kkhRrhF5LFyt;vllN43-o_IeOS`5Rt!mPu%W#onnV`Bc(iya-0YcF>*=3kO* zG!W;ce0ej=%L+XYA3luN3dTeEJv+dMj4}AbS{<#uced8(>B|yp)YY=KKJ)<;IWRh? zv#J<0Jve;}G?eM#(W~{u?{A#=M;qb$j~8ngK}sKpw|w zJu#<0_6O765GSc=Mnpya)82+$r=)6w!i~mqBFV~0@a)(!}*M;rFtNgB-k`UbCC&IoGAehyz{KuYsEpl0zm`)=p zA9peOmqFvUfYK;o0bBd- zt4`+|xb?vb_y!t6_JET3c7~;zQ@Tq{8l<&1N4ja)?1E`!M92qYS%r>XVTRpM8=Gkz zv-m1xs8K+a)NFC%aSAZ!vmQS~e093yZBui(r8dN^U$VIX(Vny;Sw1;rK)Esskl5s9 z&g{;K&_L$qr@pRbwB=U*Eaq}w%MbbMS$&n($`z~H5=}K8m)LOpu;K>4n&w+#x1Yv z2tuOF+8$zBTmrpbFZ@WRxkkHX`<-<1OSDkSV(*|Y#D)rUT4#5;st$QPf=b$YYJZ!L znBCFiCSYxX6k=?#@O+$IqRXV4l90Zf5LM!s?QZ8q)BXnf|hTSkf9b&9kNHK7T{m8T~Wl^ zk9cW}PJLG(EXXbxAXHbKUMyJZ8!G^%oljC}^#Xl-R!_9zlWJPv=I&u- z-HSKASb3zT{J`*wpwhw;EoF6=r%|?ZXK<+^9=R&k*Y=fy*NykbFL~~4ByXn-kz=k! ztqxqYvX0G^%%!pgv=xoXrgxM$ZrrMT=@S*1b?f!a^__yXZ-px%%A5k|jVBawO&2|k z{~o5cSfyTx4S<$XmKGne>tz)y^9_p;tV3`JJb^0yl~0t3M}zhN6dQnUNy`lU<7meq zYsYOd(2BRLoN`j^fbum1(I2h~5%#$Wd{*&CV2e`dTc*9+V2PMbMRhiup5e2=F1}M_ zubuKFd224l?iy%=g5_S3j-YIT7rH=cwVpBwIO==qQFPVEo0SUcp#Tzez|by|%_EX| zD#OZa1aV0*4xc6gk~8I+zyV3I6zOfnK~4({bT;vrL_EUYwpbUg9Vj>}X-0_8kXV(w z8r|Fg{lf`Owm>G=4=HOi=?}is#(PMlC>lchNwa!L=M6013Ur(ZlC~0eI1jUc+%bL9 zM`_uvlW+_cO~9wPs6bJDPZA2UsKR=AYwV9~L6>Tx^R!G6vhzG;X{%Q#xTi=@aLXzl&a4u}p4= zAv<>(hMmZD2@d957V1tWpuUJDw-OM6FI>WMT4K<*08Cfp&Nk{}ZW(2o)Y_dlYR~qJo1J8*6!_HPJVmRGeJ8PI zmC?0j!Gc)4H~Q9lqv8sV-eq@rpUE?4_I(H$(rVcRD-N2(@nn(B+Ip^qaBZe!-k zC8=?V!wVS-=8P;Ea(%B1c`*FG2z*`vF^kiX(9POBtG~BODY+aIr$4QJwkJjRUMo4h zUht{K)6;`KSzO+@gD8p>pPma3C{-yj+==Gb59d5DUw^kgKWkc3-n15tM}kj;4k?X@ z-s^4~f5Y|(xl8OqxOr|pz;}~BQ&An+G+bzHnI`%XT+84-1l5GJnK2R1mhW&x6?#~e zozOUdsUQu0^Nd?$Df{54`8p~-9IN)>Mb$VTzD2y>ROrHNmjNI(Q3nbKY9Q{xiIbU1vPIjOY(+ z!_F0LaOD-n#zY-P%g!o^8Vx#nE$@`r>Tx6pft$TlwRM<5?%UyAgOI8V9NG_kraW)t z)9P+v53czp3brr!v(qOBWe3}=l3*ZJVemBz0uheH(Bw5 zzP6au=GFPNnCS}-kxo~fOv4Ne%9H1b%JX}4N*@*$8h4ZumsYP23#VSG0Sygnlk7uJ zs4{V`*@=Ex#CjLB`evT8Dii?4u3BoK#Fydh8GB*#2EaOQCFNs;i)+dK$FYb4zn zYxnk{wjNq3KIKJTshJrV`Vh7IkLGU$H4@rz7NKKZY!<52voW)1SGFHZnEL+Jm>+Ju zCr6#n7<4?KuNDrU1v-pBiL-`$36ni-B`$%98@vpaf55a`ST4tE)rbhz&QNq{HCCu} zqCT|%CTG;v`LWd-GDr*GM;`N1WK9`B0-$K-0;0{t0IMS_d0~r7m7!Uh?v~0ZU#G+& zRfFcUo5h0{*t9$q|6TirFWksJlFXc7I~UOR z#|GZOET7O33o{#Ycima4QZJdGHlFK$ZI*u~In0LK&U^S`Rpaw;JEdtUZ7qTGfJha_ zt!b?P*&xEM&kP$^l733-u)F1444d(K*scc4A^J_IzMXA3?eku7rno9bSDy? zt1^7-Z9!$NDH4!yGa&$=N{0jJ0Jwk;d4vz`1fN7jEn3-Kz$6nxN`cc!EY|`+p9XUaFj*5bFx-lI zM2OFn98d+IR$P-xU9#wXy{&-~lf6y0h{DYUovd&yyh|-UBT+TpuBN*2JF%$+FE&Y_b$ z(@ih{x+d+AYi@myFv>Ig0NgDY3>E=y6&8991u!4z_3CyowPKu{vRc{cCh!=vq}Z?D ze~>9)0svT#S~Ej%8wIfS=V8~IDNRC=;I@+7fl6IBx74hYX5UK!W~7=2bm%$H=&=f% z5vbFxkdsb?zuaOLClJL1rjS_+xqkz|g>eiQ8wEUao%cy{t*AynxpDu4N?L3ukr?Yz zp)d#foX3KVxS^LZcc&TK1tFBM;JdLDeK% zp+jgsRT!(me@ILei2mw-h{3iOm;_Vj8?gL^>8iil0G|KVw~?nD`8k_ zacE||$Mv{-Vqc-ChG9>Z51&$tMtAh~M?Am~axpbZm_pQ;zOGJl#8lCIBU4}ikkW}9 zBV+DB4yPwu7u^}*PNxkgBGN^S=o8C=xa%P&JhQ*%=h@Ip5D?i5HP`ZH`wq2khZka! z?B}H5$zb}1YxQIv!7W_n7lTocrIv>k>vnW(YzVZgYXdxeKvc3Ns7N#1@c)2Qc*2Q5gRzP+39u|UfsmD9c83+V*k7h8l zR${tu7K6@17`c`B3^SfZg_Ro&k;_b~7;RP@E4R1L&lq%RFc3mUHtAC7e1x}?qBJef zPFy+{=iAxezw?obD8JQtD3<44XtmmCf9-{> zx$2oMC9Yzkc!GX@pB^#{!2^dy$af; zonG^7OtwKt=WUXoTy_}F$>na4{z5E`>88hrb~1ci`uqFkV1Sd@WnsuBvkg1mT)c@n z4G-?>I`b}e^Y!I$PbZA#a*MCIEKJ+GAnHPniND;QC$H_#|Gj}P^ya9mcN|>!%k?{x zo=!xs{al{lOU<#P1sxUFSLQ1Av+~jo2}P0DHg@ansMvhwOk!%Rs!z=FT=a!+t^J;H z%X8oOxX$WQ#^_4}>-9As)Gbh5EM#LWtUW0^yk;xBC;w0_2=z^SEIPKt*X zCB+@80>af82Pzj3DVICh4Z^jnP2$(h!@Kuk@Gerx+ht1{P0)lI|1sq*4J&*skD56k z6nz?bDXjoKmj$(g@2fP>Z=jQM(h4^xA9#`)>zVD5rEPzg6JoSj;=7x)(a<-|u1+=3 z(7Z$-LO=4}-w{1*$AhwKLqLH%-(N5HpI(5?7M7)@20o!9bQYxJV@STJuAFL**|xaf zl?K}cW2L&BkiYOs*R>F{fG%n+A#n;ql`%E!_5xTi7=*XdUhCcMq1R0jtIInuN^WU} z#kxSrU)h^yX+Lekf*G*qF223Z?3k02m?V{W#ts16p(kthE%nyp5?yaYd2zm|#ukIs za+$lF&_yg!fpYXKX}wIj!(w(@!kCA+rwu=CwC&jxcEKf)SS|g?H5i#LaoCWF98i7k zrs@;_)F3#Rm#f;bk#q#{LW(F1gb88vJNjTL?V~o2Pr}8Wu!-w+q9nL?aB-ax| zaC{MKN=|yXy>Y7ikFwS7{xP|)7{0fSC&h)AY-GJ~p(fU8<{xtv$BSEAh>B{V1+1)tbBmPWy4A2~$d1rwYVEe+GeRyJT*NixBJ zj!nGb7CX?WCVDdUw(DhQ7zzu-Z6KhnA&&E3 zT$LvfK_5aY9tIGAJ0`VCa=x!=r6l0hM|z+WW`Boq8(zACRuWH}gq9rdrGIrop}{2K zd$Dvd;}X3c3Tw5jq?HI81r*AsbkK0g{Vpk+aFo)a%|vw=9+><5& zrBW5U>}tQs{CYESykUoJUS_xu@eyI%UZIC^N+f#YN7@+K0U<*Rj2&{YLIyW>xcCmu zFKVy`ms@@&Ib`TbHKIP;_FCBW;iT4_lzvgL?Iq#~YkUF9i_cLS;l#v#DW0Bp?h@5# zJY*pJgZ0UoOi%y0Y$9rm&h@aFXEUC+GXJh0%MXkl=VuYmoJmI17=3ZQJ6)pYmRDJA z>VMCOMjM8tNLK*4;&d4D#-}vy3@45ICl1k4$XezN@ zAOaVBx|v>bK>KxB$7&gdM|CqLf4z&`l#;X_6UMdxnfF3=7vEd^#vmQuD+ESfOGWi-&8LmQ(%7U0NPZ`w_2wRrU0W9NgXUX^fUKOml4v@!9ymB5@j z633FwJwv5janG;61qL6ZR<+jaoK_x>>+u# z?as6)mdB!J$2L)X#^vJe^L^qz(V%N++QE|KA5P+!{K5sCps_?Q<>L;7+g-$`_kQlZ z%{R=bDopJs3VQp_6r%@fLN+Kv0~u83dyQ@D?c3B!CKw^S!`Fuyt^%JJOj+Diru5An zCv&sy zqhMH>TFda@=ArL){ka=XDeE}ItopMHr(s04xXCSG?Hw?>7tFeeq^(|8@67##T=rl_ zOi|zbNo|aYdWjB>yM{O;o0M8Br1H5@oj3z{r?Ps<_rW>=H>dC(u9jHJJr?PFEV2IR zRV*R6bk@l2Am=ZvdKytEd71sKsqbfNw1H5sx=J7GU zt$$4(N|F)Pkp1Iya0xS*HL^A~b3yfl@bc`mXb`=J2+T*4Q>stA$84G%U25?3)aai- z{muNI``Ai6t;Wz)t3+0#BDmB-E3vNM;>M_QP*Sbv#RRUJ*zy2v#GU`kAgvyIFvL9X zQ9ew(@^0a0lRsZ!qpI=lsYX&aQU-|OKE;%0Q+$SAON-=-AuB_eU-sumn*4}VBMF|; zImdc=xVGeG0M*9})oO!i!XYUy+|djc8Z1feaC}Zl2v0ZNAs625jKXSo``+(W{^Fix zlLp^_o0(RyCo_QJJi)~lJ`N+Bkq=W+8Iqn|w23a_(RfWtR&83he8 zy@awmUE<^=_@CJBTS{kxt{;&_>m#J&i(v5Mi#CoyWMsF7#23P10_~(&k;hx$Y#+3z zd%fe7`?L}8V(&Hp9;sA%dy6-kl4bv{eBS;sIDeD1qfZVQ5y_c@r8BQ(*0cvZk~bP9uSW zNq)+O;Cc)Esf5J+;*k4!zSv9?41qu^p#b5v`3Vm5MOZT=pasta`EAuvV4YG>pdY-e z!JOZ~FAE~X?^yQYz~G-~e?Zc|^MQ)uVtc$}JwK}ve9FC3xBc|_c zgcjM&=D=+jon8@y&%kvd_@cdQ#s!HM_WVEFoR+pva%Y#^Emu+ecrN;8;Y-ujZWE zFahS|4()H2U7~2vqCWUibvXG35z+QSK?eSAdOzN%jK`7J9GDn2=ZmyXvC`VFHToC( zmR_uznm}ksyx-x&D4U!J#fp1bn|q-|SME`<2d=Lzar^t7U$}Jw#}jGpEZi8cznxqe zi9*vLZwdhXYvCOP!c< z3GO_lkter2`}5itm&bbM_)ha|*{{j9g8tk+5sF}e^rZJ@O}LP)KpA?#M{|~Kzggbn zm+{Lc_y}(2M5qm>lSbypS{~VZ#AWqoG}GDimgC!NIMLd*f{B9mrzCX)gRHR`h(I8~ z6x0j%7o@!|o9sM(T)F+Mharwq-hQPnur$JR^_p7RYaJd-#L^BMW@eQDw}`|H-IDOX|H;kU&JHt(tq51v|5SXzoZe=X_$3 z5jFB=2GO%=ZB8`29`g`Wx)aK&b3X1RyQii2XKU0$KufDqt3;I;lEj^liLzw#Mbnyx zU7a_^Tkhk|$?Lm!i8}iGRc42T!2+ClfGB3AXLgmUKj8u8+&G?UNoaU6 zIY^_OXdz(P9^DUX_HqW}Ec5kC>5H2l0Gb*DzzGuT{^?sy- zQEIXwz%IVANf@;$K3Fg))5Z=yi9>V|7ES}`J@0K5SRcy_bxPfW-MNUg(Fnn|^VEJ< z1Fi}*%cb`ZOHRNjiFhCTPUo< zBS-H7pT{>}s0uLAhB#$?MxT!E3wlO`hN4*^_f>K(4WA0JLFvzs1@7bTecB2>jh_7Q z+QYLEI661)?MYIY&{&MSb7p;_a7{7iZusE(a@fk&nB`GxQ9mU8zOCagt!v|m*WjA98;O@PTg%2bOJ)UlsEI{>G{$TI%ZR^~o)XZMB;lJO<`2~v?Ac*o4Ai@Qa_ zfE_N1*u_=QJg2$qrPdJ^dQXIHgLS!2=d9&IW4n0;*$vbAQL)uH!dl=&N3crYom2^? zwc>-H-S83@tAn>I1B_UTXfU6X*rwb+i%8r42yUSjWFWh4)6yy&B=B)W6<41mivQ|m zb&P*R2P;t1>J`bZj)<%i3~B3T+9t}&CT+JhvJST>)ulVQnmLe%Vm&eHxbl-3S2bL| zNwfA&N(=aiBaT>SEGqdH1sN0|P=wZFZR>WOu$b*w3RoCSF?>n?tC#H-1h?R5hLlE} zPA|Fn?wtGgA8hDTN?UHz%Fny?J4feN$;JX7sZCwnTNBpHvT=_o3*^>A_gq|v2U_5N zo^riocTyp~Z5rw$SdEEWR`$soB>fyK(86;Pcx|&w+wMpo)NY%dnwl}+9g(mtezbu2 z65X%vyK+53!rBP0o;QNvaWT!SjP4jOy0$&d_~(v3#meqKkw1y_q#|#<8)+ zu$4zX_ehTZ_*SdZYWjfn9~P>xR04@svIEvimzM9+L&npR^(H(x7y7)l8;qTw#UvV$ zIyQXK($kVYhF55c#dTEwh@!Pihs}x_Wl+06VAN6WD5zEPA&9!|4RJAvSowD%0)#Y*NX;DPdgP z(#kT<{9e#by;@MINNQv^ZAIKP^5>U*{HPE_>&Ka$H84oK%k}rOoaxZ;^hjDl6}4u=K4GrTcrXj<{gqk8n^kE;* zJO=+dGB*CsmC3)n#cZzPk=~t4F;?x$EUIwNt^*%J&(B|x@N&0ko4J1I)l^rWlWR!HDJIcgnNDQ3yPntb?BHgluMNw?+@iQHdZ^#Gp)~$3m z1saVa3-oZ5tc2_@7FtX@#Ue0ubW`%|sd&siYOPA2{(%oPu~HIKxs~G5$MUn27dXBh zs7CeaU;lU#lUJW1hOc3m)-1iy)t*eS$L25|X>%U=V>t@ZZ_}ll9h!Gg`;9k9LRqJ- zMMMukD?hjAqJmx)JEYrPbrw6-`}Jb6j7bl_eSb+rguzGGn#yu2s=s5@4m?71*wjE*HzcgOphC^jyEL{+6_kvSF7W0o{3xWZ%TR%;YFsEZ2O9yh!jeZ z^N$oCdO~4=3Og59OxJ@iy-9IA%0K-EuK>%~w(B;52q_6QD?Sd|lM2dimpZacrZ0cO z6y97E^y6sVQH5>=Bog+^I%;YHU<2QmDgJ7por736%Lh+2Yj(`6k_THO-)cx3npG_( zpcHS*vrbh&2!uf|x#KJMiLhh!8+H)=+CKU&ZUE4eCH#9SB?{X(1e@>ws(-)%)yv8n=fGT3bgtNQrEP%Qnsi8AB`d6xo9%%+z{R!zLE z1lBL`3>K_7Ux5yT0y0mE=_T_Juu&BI>C_hv+g(3n3$WLcbUYD%334|0UJna(td~}C z2MwGLL4#E+FveJKX0=i&OGCq}Qq98+Yq4j8`&@Y%YqD|jg=@=&>!nehp~No*KC7>g z<%2$(0M7Mci%KwApJ!^U>c=0E4-k-~%|>U;ksY)$V`D8+kN_6zeg>ZDJ2Go|b*l3x zw6m^^2YPMHG)zNmoV7aFRao%Lm-wU;fD)O@8w+*=7~eqsUKH_FQ$MPSP&DX+CLu8HgO1d;Z% znCSxM0j<|(hnpH2&V&7-w&=7GmR!88&EDKyvS5viz(l0k`*8+m3%s0<_nAZp2M_6a z8CPC<+2JKeRFT;hsUrjSFEA;TTf ze}PXe{;F9wvyI1lEzAzs7SKQIZnIA&P1(^|F_6o9S{#Wkg}n?-+xs#obMhZ6AqYk8 zZ&M>uC`g`Ew_{=ZH4oLon8duaRtfQy#zI5KJ%OF?nS=l*7tGtynSifLf2ljZr0iB} zFL5{WDMjs8Fn%<(w6@CYF9euEt(kdVf3;F`Y`MZke6`cQrt7QGo`YZEM@&s9^cDQzM%Vo8vlzn4t@SVqv9n#ovLduuZsn!l7TG-=h)LF13 zQC)HPyy64hF%M8WEFxGu<)WvuXgln2oWMwG?lItN8o+0}&$RvsHRH!7g!(Z14_MwC z9l*6-K%Fj3zR_5m(Z>o;P^nR&fPX&1xd6XF4VqRC65z~nzNnh=_EK@ixYKZhtJ@g=uqqBL&MWA zT}kZHvX!4>yDJ@zPi>2JdV2Mc2S*UMe!4e7}c8+r=2 zhR6F1B0SxWsn!dqN|*Rl`h@azwf5P;c-p3BHNKIMPuqRqN9n<~_qy6#WfzS>7BcUh zNF*dZQS|yAj(sxjgi3nPbj(w+2DA@eY`fNAEgT&7==`)YGbO70c?VG-(S7{7P5R}^ zYOon#fM`Ng837=58G}Y=;9@2kM3O5ZV54e~$@wf>k^EC@2dFpb&u{xdI6hdVyQ0ccgQ?

YzV6jnA+ire`ChV_02lnAvV5j1|){U%I_pOf>);Y*$u6^+o70!&OtxxtZ zeg-{uR;ZoAmJdk|N3p1SoH)TDDJm}hBp?%SXKEX3SjjiVz&~v`Vr?QhvtdOOkUB1A z;|P03x|-%lv2X=w)INeH)Y|qfb$hdsoj(NZ5daSWf^GUjHh=#ID*(*(6xupmm5&V| zKh~u;JSK(bQBEwrqTJl`vU^YZTlxD{`;wzh@ENQ{*zH2vNk?pc)Jr%9|5)Q7Z8szx zc=|bjNKBO10$vW%PK2NXB5EnO(`^;v-;nS6VtL|VVnz4<#cOCWu=DMUbs`Z4>^_zV z17N{|B$^(rc;gc}L1+wNhdyXP!0z__CSIB^gCH&lOZ-Wqg>mhtxf_qBZxl`=K~*Gi zR^pb%i)kC4I9N_OCP5{`GSU;*HIV%Mw>7SdD8s;_>hQWLT^J#lTp#gV!7a|2J&e<# zk#=-nX`2O|~}Hj+JKSV51Mg;Drv#chZe*cOf%T}bNO*U zCgD_qeY(U-qrlq=eV%8o^XMaUU;8Fxe{6d}VqdRiTIaFIdAs}=yo&b^sb;&E%ZBf@ zizStp%{w1tM|Dj*MO~{Uzs6eKoAn3;3tBXWD`^1=@ORhl@TqfSIL@|4uv$m2shJ$1 z9pRLnly$tL3`;z6qHorcu^%A1pl||&PEk%y&I1=>k$}lhC?cXtMV;*kH&&?;Qx7Ob zp;pZ|q<{lzYip%I!AEg2zL-4SOG8GQg)|%*7CWesCh{uh0nl{O-n?UBx&mXX`fb>OKCWdR^{5FM+H#(y` z5f11NnixzpZTit$&+BWUNu%cP-&Y@hc{+3V+_l&%ivrMlj#a~ffm`;iPp42gZj}10 zT3C}McSPx^{+7*U?&$X?o3+%MJ+LQLXRla?xe~5S)i6e{T)5mh8@*q(?0!CSq7%^` zYoNUMMex*4sF2z@n_>>H{p=D|V2_d$(ry}IYir&;`p)mF#ljV~wGPaV^$>Yv`URps zDvOe41d9k(4@C#9{ahWwBf45IqB&8CkIT6`d{St9?+HGYOhVGN+fpL7H_M}<)Y?a9 z>KI^mPDZsBP2a|&-w(|l>36phE6qN(*ooU*Iuyuhqg;~;EYXc{>KnCmqcTh@M|1mT zR+l(~5*|%4^|DcdlsbNxLE1|bjm5U_Q4BJqj@d&s3Z z@~519@OmX#P0Qmaj^ntYaNpdv%fekRDOkU$iBPjV9J=T8P2!&~+)ee0nX#;;<)6K* z;HEylkq$rz4v`i8{5hc>teARM1?rRgc4T?wR7RA+6;ugg$d{|iC z*iiFG=^WU?u>Jd&zCP`ne1NDL+~; z&n6ziU0xLr+JeGPmez z9jtV1(`Zv>g>b~c9$dG4>0YnR_it#xB5GY*Uw!DjGacFkFy^+uEGC_^J-_?Kh{sfa zv`2q_59?-C@r5k^@WouCi{^A2!S#pSj?;dMq_@lEKdoDyH_iFSU6efPuspm*UzaRg z`)R#gEp5X()b_&>ES!)?6xPnOSe*2oP$H;&2>^I732aQliqeVDUAJL2FOhdjsG!|0 zi^RqnchebcKAVM3T2Ff|X_j#I0ou-RpB$|Fz69Lt9^;7cRlNly{ncd|)H`_v011QS zMnw``utcInl~s2s<-ufV(oQ&4Y`Lh+yOAuhUEU4N}w$s?n8S_ zbY9hN-TkztYbR?yLlH%Lk6*44DYRO=IK8=zp%f9yx?T2~xa{m;^} zHNpC~xZ7vqX4mAOF)g@is1P)&o^jO-W2K%}R(1qUhMYBvKdkea8wI$#4>wWkDMf=z z*Plc&|6^--;_7?C*`)4}(#!=}t1&@1Jqev-?ilf%{Q8OeJB(X26buqjWS zJ3!>OvLJP$F6;H5=3UUl{GybB;%A$M)LP<{9u|W|rp?kwLAJCA{XAgN@Hx;yGfI+B zaF>k#-U)Na9AuvAW*N4=I0b-3NZC2 zws_?9OUl0D;=w~?(byH>vW6GYg`a(&s82(H`H859!dP+TH=Xp!>+Ym`%+TI1?ZQ?1EDytBA-y zWLTb!4FqOX@oT5d=+&!Y64M<9+t2%4etYR9CDqBD*!L~Pu%&>AG`?va8@p<~CS2dw zqTP0;X?b~Jq3nnRMK-=@){=Mh?{l+PEDOzUN9eTAh$*yv4FLMxjgIio4RI77)+^dTvMOzxnc0y!_Eiisqw`p^AqDtta*!2az zH~KFjLD_CcdkX(x=NFBS{OZpUR&ADOKb3;dv#tgP{t=PI6uB!?Ljf?#o$ty=6`G~P z#tJehkwIZ{X`^^vbl#FOmn~~ub?X**(ygh??ZvFQpt^N6#*(p0o1{8+=Qj55VO{r1 z6u-`*SRi*|)VNDAO{yg3$S#trMz_}2Q2yFf{mkQ!4>a(JE?Dq@=Aq7Wd*dm0Z24ji ztJd$eO*wkcU{WXSGUFZDF_Y(Y8Jyc&ti688qHhZD( z2RrzaW!oe}O)4BsaYG$87E(X4BLB`8e_|tUgDDRcBdVOfVI=kv7rTKqn(-jrSeVma z*qPHVnsr1z2nB->(n$sWY2%h+a&LyE)p#jA%L>x1P+~`*#tz4$EXN`F#tO1z^=H(nmJ}l? zo3tJl@tDJp3BCdlaX>fej5STnw)l@^6ft3) zCA#!QrM+q@{8g|Xi<@(9*k(yv0xJ^MZO^UODm}&1^GpB&P4h7YQn%qY|8Ey(Vm&dU zmI!%4O8F5AFAjRi+zFoSypuwTtbLFVp68SJ%J0*E0nRN3A%N)xuskf@t$$rX@^9^w|C;Khlz%7w-!g1Ms>8rh9de>nYY7JonFv?=V(1(Y{iD~I+ zt+KD=abZu7T|*%?59h|0;H3%fryfyuJj#&6=C~@X*$^lv#56y!X7<9zJ+jc8DrzkS zYsS)4In~=4UTK6ziGda98?dLWdXD*{GF`H&=54U3x@9K8K^qWzD^CEz&44`Ur4P){ zrJ)1@)4i}_pB6d4X_XZQtjrIuPtDHPJ=_QX6;>FmX*~J*$Jk)#3HhI~X-1qFu!UrO z73Yk)x&?apQ}PStcSSNcFZ877|6z3e_Mx*d+xIv8b-xjBUX(3yM0S#7_U!Eb%w89k z&0Avb8HM%>Lu)*?H?C}0ea;QGe;eiDllZ+i8*f|NHqAtEH0#TY4j|JG_u`3x=MMBXD6;=;W{*J*c5ffP9aS0MR=(mPbJRoi zUi&D3x3MkY?uA#MSNlXF-AZ|Sl@+>mA|iyGiZn5<+yQp&FEwz!Hk^8277<|@zf{MK z%A*jGA5X3{Ya~Y9)xCv#D&6GaEE608NBF3n%aU+#>YIw}2to$yD}=RQ0jq@I;a{nP zT1=`NPKFso%*TOgJo~p19*(PXvm4@PtAV_kQWB(Up?%a1&Q}?;riODNNt4wfARF~@l3bz-`_b!QKpkq$i^L|%vt16 zPD^!{yAg6~tTHAIOOBOFHO5L3BIz_abeORjO1E{GQDT@;txVXa+>D%_tLOLpo`1Yv zyvz=+>vMfR@6&Zm@r|%&KHe#)*-CMQbLx3%@QbM)LwnkH0yS3}RyC))oqR=Qa>5trgBxui8yIJ`y{G-?1tT?|H@p z(tPsFr{jxDYDiHae6!i0(nRT)0Yfwpg?mGoMqS8Cd6L-SSUY{1bfN7@F}`fLc`<=q zlRbLiymicKamP{Z1_zFE3XU)&O6<81m zf0}grdU{Fize89LUty`y%<1DKPx1y|!AVUBRzj@5RaDtn%$*4xaJAOjTL(^8M;*SRFzA)|&&d&Cn*Q2$b~4)q-O<(&Q)~5{z|J}KcxkkDp(iYzRaToZ z(_pAB5dWT??b{mRH4wHm(yflzb}W={&EjY``rBG}KjMg7#9UL8mo*`b3kAaa1>@;t zdX2W}4?7CCgd>_hn}f>5N(ZH>yK1xDpH*?+EtppPQ$-4Jw7Kk=)&Hn{?krE|*`s$y zQ?fqH{hXaE3~ScYdojQGb8()8$aVC$drOE4s7}=9Bm-RnSUL0){+JoX;QsscU-2!l zhF%vbBdxj&>|@XirAsb-kZ<>`+&9=C*4rczwI*nTpm~>J{PQMRhWoS%vr>V z8{3|D#g6z(q#ReR6tFa@nN(+C`uDFEjXfYWYz+*UmplgHg> zeXkhuL1Gk;UrGB;+}63T;`WU8^P+{`Q+blya)<3jhV+%}$Eu84zyN|1GK~AADyrP= z84H$u%33uqNWo1jb7*!CCjZ7xE)2I3tr($H9t|Z}m$N$d`7u6Kd?6t}uxIS78}`u5 zfpkkNPUWjF=~`UgYuCAJt}2sp%fAdel8@pgAGDztK%f zmnOd!8HCFQ^Jpv@fwOKl)kR$LM|6fb#@?>OT15r03e#zQibVz2N4<`~5G03ExiRWh zwCup1lrSurt8$QTNa1YP5U^jHW7&R`=&)JNy4KO1KvJsKR1^oY&PuGak>cp$@xob>A z3RY%7JltDS&lswqkHia{D2~kFkADy6CfXi`cO#-@H=p%p2Uqb2gcd)NJlb-G8pXmY zrmq%LdDJ1-N@+1!8qrJd=x8Io^f21oly5mTm5RYTl%fU*^}8rVYjg z>ioy{Cw0e&tJasMwG1E2WfyiMVPLn+4B32_YTJz*srCJDPzMeTrs)$)=bLIciNCM4X>CD*!$AyIAMTGyiIZDeGatw9b1D1V#>J&slGYeZs-?TQxP;d7 zhty7xpOUEmO$tN@FgWIXatOc{GScqI=kM*LAadu9;N5A2yGG-H6pB74OyeG+iyV?J zPB#k){GgPAEeU*{2tEvS4nzDPFJT-9fO^`V=KZijt z%+r4-RrbBZN%6eEVv!NKe`&6GSaW*z$LKNAmlX=9+KQcGEDO`Kj`*KvrB7(#8L9e22c2VvQ|X~8A+^~)iI@sqjaA^)9i=+$lG-GWOwH*K znK>NMQ&MQ>^B2YsoX+vSf&`4L;W&AO3xOzM*5FsKUEr=PpRpaxotGT_?xl7A>>eyx zQ|(OcH|xTUf?KVBwLhxXWd2V5Nk%CVvgA*V|Xiu*j~~Z#eNhuC3P`p26j+R ze*SXk(XHm2rzP1lbKP@$%W0%ZlH0XXVcOzCm22v*LUrl|H{Ur&acaoMAjF^vFOUuR z-_43$Iie9<{RUV5))yJml82q0h4bXRIkGmyoM+ac($3t2!1(^2YX+F1$ z_FBPWfr@Bdj4Wpdb#R|T_W6uEe}6MT&~6eBuG{%w&rP}zZ(yiB{Ofmm7TTL}IwL7$ z*<#r@bq=2~V_%USO__a|F>fe(-!d!CAfAaNJU5!g;r=)=ZWhgc%sW?^-?e6TxgnV3 z`)VTy8j_w>JfRYPW`aE!qJ_5JI$c~uvS&)JA=A$psfJ_JEE&=V-=tbhr&lZimt;4% zFRC|W1c%WO2m5;Yj7qZ)ChkGLa<+!~oOlI8FR=Z!LZiW9ftfw$zR}~X+_WEJdfsw; zoBsYZslnYiura4sNHmxaQokJJM-mi*(P>W}kWrnZ0vJgloTO-3&JvbNOHbmcdpEqK zA^R|OdRRHt zNW;G_;k?-g!_h(vLdUY*NVwa91?2{9{Owxnc;lz#qNKvxP!7hnebjz4SGkch^!-3W zfNXnaOd`&Uj9N$}AXqioU!)0A3{;u!Qk$*ab}si;(WZ#Dd*;uB^FA1D2`#6<6&=Jh+F)swk^erI= z?w4~)9$!7kf^MCwWcm~Zu8Q-z9N2*FsTMi#_}4}>7Jd~E56UP_+jH+qMYmF_RY?pg z?FD}|Q8Ug9|Dq^y<4K`L9m{yP))iV3=^z0mK2(&l<2KAF5aYG?Hqpn@YbF#=0bto@ z?W`w2Ssr}fKNdk?%=0!tY6_bQOm=%djKZl=I3Ge%WOXPC>?_khi$uccsQsm@HHxcj z)C*Th>^>&j)y^F}5H|m-E}6SM@}|xR3JJ$bwhs0t+s%$dlnM~XW`pjlynMILjIQGf z>UzdR^X3xO`zQ^@a-Fo0bSdDn9T-%R8{RP^7%TrWjiyHnBZP%zg4*io40uuzil<)Q!+*cvVPO9J7@oxjYc-XwOkjb8qDb|Kw!pLXD1 zYQJZHxUinFp1&L9@f-aWMh-wJweyQlnQLT@aYfZqq6EA8o{#_AL6az4K=PUOG@DD5 zFNgj&H?)2gu{5$@Xi7CthSf4pwQ2F7`AP?mL2b)!bFF7jD`g=i=Jv znz7VVYo&ZeB~xgEY2ajM-_uQz)$l^sc`2b`xEpzoYtn#x$wb2T(JWyg{z=d^k__s1 z|JWeqkGO<=$){U)ZyLKpR8V@sPda{&GH3L`0^;-NeD%NF22^ujq73@qjq$}(4=E=% z;51WZyAY!oaPj2?SJTAwste5wemq9q07)J=|h$&GV1K-_UL zr*=ThtkLo02Fy$^#9A+}n4h2h)w$T;!WGKl8p|z!)mR(0^n3Yd+{CypHV#^t zt0o$^X|ra`Ew~%0Et|0cXp~r0ApeYH510|3NdMP)x|x;I2kYQen)xe}v1>(Wi*;Xc z{?X7n-BS$0V(vK&Pmi7lsz$6F6*`zl`Zdc3lrvx0yJ4cFLXDT?xZmeoQf0ATkQZJJ zLSv2>>L4nTm?=2VERVb%Jxw?3ajE6Ta~srqV*lgWST7hg!L^tJT(<<02lVF2SOQTO z=3{)sE$UM7IY{@|o^6zVt)Q`7?fb@N=cq+=qfyeVik7ii9dl6i%YH31c*Rn-I9}EG zL$%aYEfX08`PdlIyP?R!B5x(8ur%Y>#tik(GUw%?MUmI+j+WFVitA#)>@S&Q`M>Ew zd^LP##yjIbyjx4E%Lm$C>y-5L3}-0{%ce>(-@~Bnh8p$fT(GG=2#E(Med93}3AeuF zRK6kLuDueu%M19|gsm(lv+vi<3 ztpE5ZaJ})|apvHW#{x-T0mp(F99zU3K8|agFS(voe2%+aQNB|cQrCGrDbD^DEL#3F zY40QUj}l@MqqzIkrj)o$;U<(xha+fDWk&@oywv@q*W+*}qWD9xnaZ%km@FB+T^pl3 zppC7zb>@vXX%v21=RkYcYJV4Im$0i7YY=~L!1+kO63j=T?)iQ5Y0J2et=UHcbVCMq z?}^FY{TdPo-9!1F2kW9&`i=_XgT>5@!Okh?2i_ji=HXoaIGv={AS3`40G7;8=6#kV z4YN{#MC~3cjNj8UF``NuP660j2z8`n#BF?z>7zi_p0dP7js#t+WRZgXmlvuylJqBh zdavmrjBuRv5O&C91I93>nvn({?l3OhVyK2d}Ke|2uotHFqq!; zc4+C7>?2jVf~Wkz`}1iPg>w!5`H(XacGlSd?}~VULY9mhJ3qg>aKUx9CoX+X8H4k( zhAInwYh!bZ=6<1OJ_c2p#~I3b&h7Dc3d3;&PG;8plKg^9UxmCtl=tzX_p#6on|3Ho z#_nCoK~acd(Yq5_LSzX4J5Ed=Oyj9-v1YBR+saqhi}%q*s7l#sS#FB*P{Nt#DEoLeVY zjIf(&jvT~$z8(@l^Dki-45^Ll_WaFJkiB`zUX5CF5eUc)gq~|7p{lW4_bwKsoI&n) z!k#KCcI&kpDUTT|q)2?qhpn^_0~H3s?tgE2al-(DsTg7?ey0 z;ra?948B0DRc;J7`}6FmLm0dT>8~+|)e!dgIHpKXxy(hZ)HQ(V&Dk2T>cR+48cIhu z`)k>rk4PUh5LN_A({5gzG79Bid(dY4wFbpZWQTqM8k7^(cnUn?-hD1PqQI<33Bhy% z4Foj^L>Z#pdJjr>9kupS{O?g|PvzD@ba22W@a|T02@e*nf%u7utF~q0VxCq(K2fG} zoe?V8O0H6MC`6?LrMhw`gsOVjK9dG?N2jgJTiq)#xEtR#WbKvM>}h+Iu6ldAI0@tA zt@kVF3(|zDsuq_LlAvyAp6*(B*amjqdCCzBR7k|h_ysaNrP}}Yzr?4tvKLFT$*|Aw z!{&#VE^WMwp3L~oSVlE3OuH@@1HxdG0BZT|{sAZFNnEO8UQxtm`eLh8#Yn+u=o4Xe z(njd25lCaKy!lDk=2aDOBg@d^qXX^gmXEZL!U&}!n6`VYh>2}(ICq8cdoURF-HFWO zApa(XVB{l`@gd zK5IkQRQ<0O!0NeF#jWl!?euNrM+i6|bg|_owr*M`Fo0@7%2Z60yUoy5%S@XDUn8~h z&029{oOsm6OOGeLl|v470FKyjR5*;NiN~mQyNe) zSYF`tIaR%L3kq0YDUkRJIq|9KE<$fiqqX(L*|`Au)O5vz%f0WiHPzX|q8=>{D$bgm zn%?YBAR)}&a`~Y=!(5Tk&z;tnPQOn#%0#s%T9E9|SDpwt>rB9pv6x5{%)Rwt;KUsN~19afzT#6z8d9)^O{YT(sbL-nVt!K z=&{n0I%*2}88qLl^piOr)jBElzmNLsBtE3blcA%S2^{qhnxB}XsyY&L62yQOsh#3Q zz`IK$Nrr^ef&yWwlkmyEgs4JVm7h>PzpH8nV8?@v|?UZ||(N^mK0 z=b%AtEOd&L$e8r_S#3H#JqC zKmN-Sb|TeTYFX4jo-CoK|DK7J?f3f_uU}U7xAob&XYC~f*bAD!9n$*!(G5KN=i_@Z zt_CD(qkI6tM?~AA^G0oI&3N=QN<6l7%T*GD_24JT@wKQ+ zYkO=t66a3sr+k&q5rhvy2)%H?<5Td1##Q$pWPia{U$bFiXjR-V1_i;w{hIFocr@K9 zJR~)JY>vLBdMnZNK9OEJgl+f)$fm-u^t+DXLiW^c zlvkbmdEkN&a!{S(9|R)#iNYy;#--lS82J8c<3ZThyzwMfNLBR1AQw|ep(jLmnCi9a zk+EqPyhbXXa+Gy{7N$woqduj~ZnM5m;EYP?HS}Id(it-Q%WC_>Jwr~-PeO{$4vLr? zM#DQA5+AZWUyH{*|7?bq5G<5-ViLE^ z#X#d|pm1hk=_<7U!OJbjnrqS=I%eVrJH7@5faw=U1#sH&2S{q0B6M-AQY1-o27M6X z8QF)l;s*T{g&P!*Ha|BMX6*bU(LzgWhR5cMHfWTJ&kh=b1eTjK@P9rIIeEQ!F|bBN z*Q%RJJ+~gd;b~`@ld;N)&?>|>-y*Hvc>NH|%Z)n6WR=0y&vlDz#YeZEyJOAlq01;? zz-g#Qx|R(bq(rguC8U_^0?TrYJ<2bj8xMvkEdJ0~ zqP~4*9K_vbOgn@z@VIuvqt%DrN0YA9!_`{{Cv#J_GD*_+`d$#Mm78Sp)-iYLY);*m z&9{)y?#FqUKLVhttE2l9KSUf%HrnPRJJ8&S21*=gusRs`0EgRqHKKq9VhKUQM&o6q z+n7G~#R*_2yK$HkpT{$d;r9kJ=9O;Inb(kzAMV4&vHc%gOWzGHu(x8y6S?IYiIo0~ zNlC2>k>r2!at@m)DLlN)UQA1!+qkq4hKbfzn*Sg20Vt)GZx>A$qP$4gC;m_kk%cLc z(PmX;kRF@{>&im~{jhOYn)UR^*bHDCAa%uf?L$L8k3hb5&JCl(Szj9(=m0`q(7OG!vylduiWY z=yf@n)V8k&^6?oX0PkNn@aeVgppumWg`i)wI7to+QSiZ;8bNK|B*jU1sapA`%DX1h z+V^Nadm)TadUwM)LXkU_Rk-tcDM)x^p}$_c=sQM85XnKLv8uIbBj&miAi=9v# z#0N<0@!`i;QM#^qmd}CAN73kmuoC^XkY@#W*nFEQsonESN_EPQJ|QZC;v#_R3rto3 z1`_VqP0wRZ{k`;+0$XqzUcS?aP7C2L|5~wZ+q@8*F=u!?o+p}1UiuI=H$9asP5akj zZ$kZ{y!LGIR5w?-IS0N$Gz~Dz(cWT^IQT4Wt5Wcp_*NoV({fo1_NqBix-gOJf z6VWZgU?9@^Im@hR?vz?4S(||^HM7m6jcuo57S9awgQ$SpcC&ZW48e>U5OFt|!6BF% zG(l;3nK<`P?@SThN%56D*x>z|S;KuV^vSpLYM^k}?bA|Q^)MV)6#F3N@%~b57LqEe zOEYab{GAc!Dw$#ma}_F+fFUr^uH#}&sl|;ODQoo+pF%wAG|YQHD``wk4&nTZ8m&hL zQ!YQhNb?F%1fs%&@XJ9S=MLOcs;E-R!~un!cq(zZVGl0SSDf6)YJ^6sbz8OX>5YUI z@##t+lyJ&ftW6BsP(C)MO$=}$vJm<;{&+fj={pqyA0%= zvQE^)VjmY*zJnL$vfdR(#jYJKO$LUBf!9tUOeFi>mNN}kY*Ii^08=?XQBr`-ePV!^ z31SFh#SdZ(L_xt?Z@qeRQDb(7_!dyU@jUccLkDC0s1hs(Wkr0LWjZR|aJL4`VV$zF zg5Y;R&3d*bUf-=)`HF1VwPSWXY*%*J~A|NKo4=MWtb-{ zEq43<3odOAP?$u~m`OSC+VStwQjO7AUfT+%;=I@PhFGQN(Gq&6ep`n)F@)%W`-7C+ z(8Wc7nJu)lJDbSPor4mKpZCB;&b37L!Cmd^8UsLPxEbB^R=@VW=XYvL6Nd!Vx7#$&B}Vjh9%{cD{;ZQ26wA z)cDzdOBz?vLUd3prAM?}#HWE2L&j*$(Os1IP>BkWRdW=d=1dql9dr%iPB`QeV-q@c ziaf1UnA@yjhkJm5DC-VFN#emU_w1F}%?#kMe+glqvJuuMAzP<=mv`(x#W*eOy}x3v zS=Reoo9H6@-5c=OXqJIZXtU1FTW5Mk;e7dhrHs|(n(8O)2Khb*e?qVG!tHilT)6ew zzcf?(KZts8I7nvA8D%q)oQD5;JU$>U60X-}ZS|fZSjPUvCKd8UKAyUHuR>xKfz&W( zN>SxY{KyzHtjy5RP;yE69&Ln1AJeuGvJ5DkAt!4-;1Rb=*=pV%tg4;HNa1rsigV}G zS@yBWjrXk@q>1V}%;OJ}UV7`RCy?4Burk^J>KQFpA8*kLA^!8J&vl)bvFuI^M0!jzf!WHf5>_uDT4-x^ax$ZWS6+b! zVH99V0n-Q0t>ZrUa>?xehl5>QGKMun6Gj=nO@1&^Mq4(}eNE3)rD zGG|o*0y(RZrTS38EpNZxBaLS&ZI820{o~PA^Q8Hu>EWK0ZSEhvJQCzXdZ!+(hgJC2 z!^nqmdj~MWN1^VPTK>Rk&?OA_9oqrDKGK8V|6jcmg~)%JviilB{5?(SOF!hH=`+74 z%rA~e6EoKI4wIMF!j^hk=Edv<2kMCHlJB3^d2o1fRXuP=d=i4MN(Z-_CCRf#LyABv zH5}vpXgIU$(a@>Ok;ReSN+vx65VF8mO9zVaeIgCl%}EmID1DdWhp_tVPF%J5*~?nz z{x%7t=IRqfN8@to;B2RFa8r%5Q)L!!W+^9b^vRnwp6sxL)?!Q^pM4LaGvcW3i6oD{ z8uR=c?^KLV$@Uu?)Ank;rBOY=zEiB*@8{RZ+7!w7Q$zj62<2ZcVKDGO%)3Ve2w)&g zWW<`qD2{I5dx_)Fds`vaSE0)ityh22%}7~0C+ULHHlR_PckX1{H|M=BGghuRdAKd_ z8zB#xsX?_%fveC4I=;G9XaT%j1sZOCK%5ff`>{s12+t!c89iqG{MYX7C3K#-&-Mh- z{&fv>2SC`6DJ0K#)17K=A$Fk1jr0aR@ zB}DQedalT=|CLz0=pdS6c1|57-Vy73lJg6&4f75crRIA29M!SrT2%Xxla;(?${Bs$ zq5TnqPO(m6Xcjffk=Rc2n#0Y~WP{@*%yjY{QFts=a~e}kZ%&)9m)GwH8lc6WKPRN@ z;|!M5_wgZdvh-I__e>C;tkfkj_ubh!)hrb`s&+Io3kA^c_u7DX@jO9RjHgs>z@?0`OGY@HOg<#xHq~yttDPLePc}f3gxkGv9(_a45jsVuYUx(jKTgFj{CdA5 zWT)X%e@~@<=kFlbkA^7G^ng)_kwTs#wXia#rru7bR;%W|=|3;`>2DUN-w{ns)6D(g zCrKNn;G?v*iY4_Vx7!xps=xoC9@!$XvQyH+&rBiCox<~+tc?Tpw5*A;{apkBf|3%T z8sbEG!|jv>0O?us@b$wzV+3kZa)`Bc`jUh(9|WI!zoSJTLF!KO>T5opDB~0Xv)Ple z(<^+?Uuw1>_VoC+&N&~nJJLfO^4sg&ev3{KWoOSf%ZJ>(wBOLKR=ynqvVpkF%5Bp_ zoFYStXkLDD=WeZ-hJp*@q2WG*!b}##0%;o``p#9pp!oo4nTFd{wtRegZYnNgplW!A z=@V&isomkT%W8AZ?G)aoSF|)TN6J&}!RL*|27lA7cJ@FG8=bwPE#cZe=` z3|SkPRpx$f7Z1oQbLa15ndQXit$VL>grpFf1u!(K3AcVql-We3hP9}XPj zJrf5V{&x!(J=`h3GPnc?yr&$ozjZqDH@RC)-a0@lAJ8>QC?0n1kb^<{Pm{rXIQ5b}XR zuOg?MiB2N@+>g|T<1HXl*yIYu1lzamEkXn(@ALGln#ne5WbHoH-LBWt z=T(=4K4uRoYIu7EbmvtF+Y9ZWD@*@?G=CNlR8=vZwg_|@XZ+fSwi;J9$egTUpgbp# z^3oOE1|G!1yv&)!l@fxtN84z9hbxFnQJOSdc$<;z+@5S8-?hw}v!DF#n!eaWH&^f@ z@0t1~a$L7doa7F#oqzDO*VybNdCK8fwQa7^i;<7PuS=>}Bz}ptXm(EUH?>~yCvA?; z;b5yxq7q#VC~PVBTiLVy4evGO1T_$-%`=O7Q#-CJM$e~`Y0O%S@9~j6>8s4FVpnlD z17CY?9y9pWc204tp$-2Mf2gm=aM&f<$#`Z6n~lt*+krz>sX+kOeaxO;h*cc?XnhwBf}Yf_0o9+#agf_JG!E$cv7cwSjYAVRU-;+qu;mfgk?7Y5aAYk1e^=1GTw6DkF@rTb6I^AlaxaQEshgna*twzOnJ-!8;U2p|6~%< zVO>IFfoV9nxvApz4DT~=eS^oZJ<%%7HOeGRVB-9&PPsHMN=YsH7mCyxXjW_8Fp8`1 zd%5kFHxX3bB_WXUWr!|9>5y8>8Nr)6pSoFGgO5>ZF0 z1~Ao+hvT=4Xf&=vCuc{?f|l`a`BzSUJ>oe_sOLt?_w&M4{+dd3bv*!!>V`IbnYVpB zi2wJXhtE~AEr0Gz_RzJAUw>ts)<<0K-DYN`CO9~9CT-a{_ny%4k}yT4PQsErv$phM z$rz_cblMlyX3uYF7Og9}judCaBXVPO=d@k(pu8qXjF3m`VS?c?mS^rzYSQ#iex0w~ zkqM4zHu8J&%n+W(RZ`t-Egz#N@!yfTO*MKTVTAcRmaJ4KKla*@M~|*v51&yvh@o(> zva8vE+y>2j%&;7(HtT??k_L+7eJYHPHHFsFrc+DuMa|NEQ8Zm)8aez#ZF9}Mvq~51 z{mj&yJ~p)(1a4(d0Q4%p1k2m{H8ri7+3T?82*1R}N6H>y0#J{LL46V`Aj&2OgelUp zj3pdvW+JH=Ib?jSr)Hp&^M@lY?+r>?YoZaIS=^QOw-!iY5hMa>^n+Eb^z29gO^6mi z^fGu0r*KJ5oJRhQI@(NV5kgcRb@RN$t+0>K5?Y3REdq|0;a(cO7a(F*#KS!d%0u^- zX;Y`l2ehxZZ7ZyfRV!;sxg~hT^0OW;28J!^%Xf56zs?6l=clLqXY83Z;FI75$)|tD zMjGJlGxc@nW)~KmDfe{CYWeZ2Z;9h4=r0{}ub3~%%e^-7{w2ShToUZ>r-0^w&su2tq_k+ zD-Nw}%?lL@VX*y$a#gX}S>qN^-7g{Jg zmV1Yn715X;A#yWl*$+!lAe4=kUH+7%zT!WB0{R8ou1koFxOP=D^O^GGihkS)o}-t- z1Oenb^_li7sRxW-0|o^ja94`J4grB5g(&E?uX#~glwNgJ6%-w{)|zTn2;V`}uZP`q zGKLziu7kiJN4!;E+^&aSTXPAx>0p(w><~<_6ITJNZ@o!Dupb6pvH3A=(!}`P1DHaV zggeOc8Q1`R(GhdX)2QD$m9b_}cb&U}5hQ?oCMip^YhVlF>0#-Bd=UF>Ieke!`>X6|Mj}t8qzI0j z>}LF2EaX42n>^z@BW)Z>>k#=IT4#-@91{wOLpm$gQ~ilN5YtE7Yh|3vQA^<|?Av@} zID>6CY=G_hu8*qSxNR-cyZv@m>{x7{#W9)2Darb~03f`lQ6b3&BRoh<37t>X7vf;Y z5_gq7jNL1gN=4ex(SNh`2dYAAHww7=99YtpL8WbvtC0N-Vtp)B!{&T0!B;N|%F??Z zy}?R&-0ii22N^=Vw--yOV)nCHO0&(~Lyp(yC!&M!jl%kM7-bu1Z9-qEPEq_YXg=Qj zgg!GXEgMLs;uYw}!_aL_osUC3!Xihpv*AM)Ywz9ci6D`KEJZgwCE$=kYKgd{+fE(+ zpm$J|Jw|PZ*AzI;3?QB}J@c}iXNHi!H8%V= zv*6&;(h2rcX1340K|twlk!xc^87#9)n!s1BPAUfL4Cq5+=WbF<0}#tC&g+4g)A(4;{;QC(o-jqS z>uX<%m)D5eErPNJI}{{aBHEwq;xC*j!N)OP_EmwrtmwEya9U0O>Pv%uc}7lCO(W`l zW;SkI`WK!mRL>7WA{59#tSY~Q_y^5U(;i^W)Qr8m@gB??o#Mp(f}+OWW@*9W8anBa zVyoz9re4S;%2ZQLv8D0u-+F?Y_*$uL5kvM=0tAy2#znK`L^QY!w`R`Pr6rs*# zHGvVwfwZ5&2UvIH!tZgp4_RBd|KBDVh4NP>JwU&6p3mnnexA`E&PXn@IYkyVyNFU7 zj0m0yi5^4p(#M^he3aL8y$VdG;6(h~VH^@#`J+72X}3HrWByEZWUYVX*4`$i?1FS|KI zKlRS>#EBrxovE`W4|fwSQVwtIp&(*!6&>y&Jcu~F)+8zSiSfS!^k~JrzVDp;qNmK> z5UkRp`DQQk*PLW4uUNy!gxjGhm)E__J|Z7f@linPt}8M2xuSCXo_zJn69OtN2*yU; zAKfmHSSUaF9RbtKFRDDM{O_(fv}JofFeke{8m1YmRtT=@AIp70(1S=3HNi^frW|&| zB4q0iH%4F>K39;c(jd#-6_LfrQ9^+plI8slx&I)B9vxMwCsElvS&e59olJ1`Uk%9NFFRRTK0qx2aZC4O^{^WW_3OIGK3^P~UE^+Jm!| z8}w8nCRae;rRIl#!CGj<+KJ4w98eh~yx6Re7s;wZCow$G1W}IV=Xzr|W-t&{)me1e zwI(UP;nMt+KGW)hwRE*${)G|f*i7|S5W*qczntkx?|ru~>Q$XUBBe$K!|PyuDw}C6 zw1QDj9n1O|OLqfCXbGkOjfVY=G%JNml_9}*%Lii@4q_ZX#`>}9D{J2EQ^i<#lKS(M zilMhclasRjd*Q%hhB4PwDbXbg^8@XcM=8sitr^Va0qx{rR{b)M6UHfQv05HT3~8C` zhyyD0_}8J$weK(aB}IARY8qwqPK1x=o0-sS{&&E%j92e3E!rR-5IfY2U(KG1fAEPd zwwu64+S10H4|E|}_`k&mBPZDB60kM=-645Nq>bA^&))kEVi(R@>F&}_&LY#K z=*?_jRqOe!O02SBgOvUdqv`uqne~ksN8m+RkE~Jprpm~zNv2VfM9L7ec&QMg)pEV!61 z(&G<QS~M74=$&m|}87*YyZn**X+$BkiKcA0cj51X?a_aNGm zaJrKl{owr})SN?@l-^xCK8hWUPs?oE9Sk1k1f^6*F>+9+Yhvxs%_>;#Mp~biNM;h# z>Vbb5_E#TW^Npx4wkfa(Fk3arVuu?~3%@L;x}?v2-w4`>W*1k(P7dl*ucOt9+Qy8f z4%uRN#!P3lg(uayQ}ny(#@I}p%afLXGo1%8$2cYRSj$_Kok% zeG(0K^uoYU{Hx!ZwqJ?tOEd5`;EYdwubE2zZzM5H^oC87aNw?s|3z>TJL&#e%;Fnw z=bL#bD2aqi3h?sAUCQy*Dz)Rl{@#)?1Q*SV%N9n&*2#Ia zw2X!SCidz{dvZc-+aIxWGIHVIIQL7g6#vcr>xvm|3g$Y6a6IZuhP4S^P=$V%HlXo6pMX<7V-|3Hz}F}>)JAV`w=Z|dVS96RilJD zlkdU$mg==>k`RhW>0l066+bMtMJmaI`&HE7<^COH&F-+@tI&ry@JJgwvm;gMM!)0L zPxfKJjXT*f+L@bm^S=y8*}}thou@*JDJajKAdLl7z{;9zBp{XkSXEB5(ssk95~ zUc^1)2lbR?%!r3`rx?WHtbbF5i5+3qvn{_{+6n=Ox^ywM1M#;Okm%26e0|^YQ@&K; z#v0BQJu;utsN3{4`eIBIrU1F{nfpb$+gBlcj}f$1XaSGCCAl}(7`;qn`j3#Je&NzbA=Dl}F<|HO+t;I9t$q-t!M+^LMZ%-*({2#&|P?nFV4}E>|+#ndHr7Dqi}Hf70)?#EsCF5a$KqRDEyF+E}xqFw5IXB zlDyeEQU9{Ap0(-5QaBRm(0U!mU(F9C+#9NTl~N?x)hIxn3M``^UR6 zd^hNIbkfOs^Q%o)qhU|wQO{Y35W4a?7*lS55SNq< zw=9F~n4yw!XT!4EYf2Z{L9gS<(FuH%u@ydU4J4m1x--u<aVE?&$=-1VZ53MSz4Wl6T)I0K3W<+yG$8UPc zR-eQG44fj?L1c0g*#^h+CKxpRw30QmvrEYxj^5GL1v)xUtJ)oUgHrc+dK6=(&p7wC zi>G~WB~Lo4+z>erD(SgxtZd+KML=1Xax|^G>nrQ!+p*qC7A$h##et1z7!pT?iWh!1pBXmIK9CTcibP=O{x-}LXIax_h?(z-X`{IYB*T)2UJ*2 z-U;^MRColdUf^W>dcsZ(jURql{_L!ZPQ1?}^Ea8{7sEID>%ljd z(@flz_Pw+F1F@i?g*}Q!C!Go~QNhONdQ8-^wn0h2wIHN|R88mH3&?Ql5{&v=Lxs$! zucY~@K(dNYr!L?-ISw&R=rKn0t0J?mbt4*y@wm{jOz(BgS8+e|wzI z$#3kXoo024ZgjCuXH{ad!QDA1h0IFY0ABiCq@Ta}%3<8$WTbf4RJ>{sKA)VIW1Hr3 z{&h_ODrP|0Ki20R7o%~+Pc}A?b;otFK4q0&NTud8dhgYP(>poOqXX=JUXZZO{g745 z8FxN!;nx#bt54&B`bvB>rEI=#a~f{cv>ADAaK7xh{5F<6q&q&LH_~DeJ z2+;|~x5AyfjgflwRj0`?lE*u!AK#B#kIa;(g^ATf4P#Tpft4de#plYJKA&*3Lhm)M zW6hapy={RmF5?qEfkwZEZJ6FPw_BElaRNk8T4Is!Q4J{2Q)t0tK>MI=E^FY#EynY>L%UfdgIO;_0{WtHPuo*eMO=bW5nxAJ$Ab;7o7rCTO<%E^yQlM6drlx4PkU9+&p<;`a+rO;LeM+z-Tv|kppv{%Q zijqbJGE+3S`|N%`_w%+FMO+u>`CE?Td;FbHSo29S>NYf7T=Dy^D)|+8?%oEW=TWw@vSrC zk3Ui<766`G8y*uJ^?fiQSAK@@lHYu$ILRMjk*BNvyY|LxBrT}q@;xC<)=eg4D7HQg zbO;LERgO+AQPLJa9>7^_uq#N?Gy%GzXQtF$+Vn;|pypMd5Bwjs&`s2U`Ql<#_SfJ9 z6OvFY3J2@9A%f(3!TiEB|9e7sUK%Mbe$>wQCEYPm!6~~rf)ELVUmnsg4-Y)Is$}2N z^z=DqTO~9JDM~q!sSzrq6fIstic?c3yA!GonE93UbJLUa2^U528ddnjO&mP{ zTDWm1#3(fHzMEwTCEx?#Dh`|=m8xvccoA5LW#3W?M@tLvDk@3W_@kK}8O3%gGYP#^ zz$L9rHDvQLkR+Yh#rqA!#Lvjb>tLvymQNWHr2@~)o7V}K%o;@qkd{mHrL)pmYvT_@ zhg>38;@+n!Xa+@4+udzW+2wNa6T$AN;qdIO{^uyPXvVe^{ibchK`Zhv!C}th7IQTo@hf7S&{?(x1rl=!QSj^4h}$+M+a4PNuZ3FQhCt7P73 zswUHXHtS_pj{V}G=e*96denMGy7iU_<;9Mgz@Drc!6SBHuM^ZD4hm8^2L=Fg4`;gKAu-q!#| zIT-?n9x`u*z`k?1@{&WG6Z^H)91Fh9fWcn4eEntl`hrG(pB}|^gIKdgPY!?Q3V>qB z@h-1rHtfbRc)^6P7osp50;={U)sj==Shoupr4VyQbr!Z0r2xqB~F6+DY)SbC+ z;ofLevnwhPlzHafoeiCl;8icC7l;GbF>0eLD#)FH|KI>Ui!mqrRoOulC#carPZhJ3 z?VhuvLweJ1v{{~Ju>0Ta>#}m~v$UeJGS!CT+83=$XylBAR1XEa2E?Ft2xAgqFIY2& z1^A`#e|twXI^CvCV}9G!wO6)uOi!np&!oDl(xaD~i<~&IwKHSb$DP3O@IO1pNd1C| z7Bmpip~q|=>O9y-ZUUoWn<5buoaVrhB-zaSG&+8ea^Us{YtvIYm1+X{&%0@mfpMFz zbomoPy7c)L-9uNoYc+?Goab_D1Qz;xbSpi4u-vD#Js5Pnol zuxZ_Zg~Q{BDMjDpm#OE?Wg@&u4X@uP3g)f71?+j}^Q>q@34X{j&w(HYVHqPnX5v@1 zakA@>Y5VmgNPjq5I$KJo*=~M;w&k#oi?mTL&N$) zmw}SH(*)px5{bn5SmaTZHZ&9<9~m=9kZ)N|yNNxTnwgFyf!`65ry*Vj4;EDj;B9~{B-zLf ze9ef!O|--;6D1s09i$APxLiK^@l*oR%BoC>xI7>?S~Ak273bHK#s25EX>=}KB9d`g zPVxV%jr{E(SR?>{&b`_RHya|csji9g;$a{E?dx|Ga>1Ae>7+{3AyyTb{uN9M7@16^ zkEyF(DdK1s$eG-Uy0!B25HIe{T_ehEr>WT~&lO1*N&EK=dT|`U-)Z)z&1sr7`Ap@f zW-YdE8(VeXaqrHvIZJ$o!DTT&p5k+oR{&_Ot>AP6%lhQ#smM00U_OP_|tc@S0e zYmUgJ$F)%0A0R3?QKEWyQ7Gtpyr=m2>ycVJ>-z}I)av)*_g9(y0xsObcQr%?(jD&h zggr|r)g|%PL(cK0l1uOD1}U2!tFVa4xw%I=qzGM;VEOh@-E)&0sA<$)f&VTrc))v^ zc}1tt7*yc3+8PREJ2p$at46-W`3xMKa74jYJnZd0N+w4?`!ZF$;v_8wTWwT*{5tt1 z2EIRs5sNFoyb8Y2w`odIU|o=KidJrl&)x;|)(DS7VNN3^iL|Dz=g#j?!1on6hoY># z(GHloORof`gnV$iRSD2N}* zxNUXj4Jro`cpV-@$p80rp@}srwyA{0k1b>w`5Tx&T@$K@`t4i2vuA8(VFt@;QLf8T;@*#X#!Y`<(U`C!*Yb1f4wt5>bFm|_Dn_(hDaSucZL=h5|BxCBvz}-BD`g8 zN-3@G?obGTQo?I+eny#t>_dZ4PH=i;c0~pNsY5)?J{cLKc8BkNkZLg~D`<50k?Rxz z%Fe1m`r^0eO{#Q**tXT-#VIUO+xhahS31BGj{>P;x{1HeQs)SvnCkNt71n<20-Sa> zoYETh%MKzGW{rlXX9Aipz*696sZS0hY)>c1Mke0FP>h}r6Ay7 z0Kg@xzRf&RyMs6kIzKk~z^WB!AkfddVh1wZ0`;9)2PtKuO2RTOv^)wCAHU}PY-wH- zNrFE?*q?9hI1zrKB0MF=M;k^WJXNgo6GYUF9;UQYLBYTa?g3DE&1_w_kVdGX?|hb4 zO8N7wx~5&RR~jc;BkMZ)*cpPlR%fSH&olS8Zq_`a;Dy?@c1MNC<7z4(O(mQwzC(E9Wbh5Z~n^5&=xWNCYWuoNU&@H z^={}Ddi^%GHI=~Hc0<5(%?9?Zl0yueov3eLG@}R#m0^A6OWav{Es5OJ*)Xr16{W3z zz2&2uWv!$WIXN?jIfm7n`78e&C2G|p>inx&`{#PrlN!Z~S^SGb;H4yNY1B>v?QQ>+ zN2hn-UIiEdHH{Ohe->@-sVOR(*d|J|EDO-!A2SL2KRxVi?qCS%28VsCUWN1}1Ydmk zqovOs_^3zSFfpIO>`WF)^L_jgI5FxHSQ+&Qk@LN(sY~+6Ce{4>cm_=7}q79{$^#eVyr|A4I6(;r@~Z!i+v53}gRV z_2g^FCeGy@i8_7?nbllMd2NsnFPI_yxr@*}>$aTqPI~BJ-h|1UXR}IO)_3*RXrJXA zz5oo;G!m~RV$30;>G5Rnek8FTI+Hnk$D~@B*Q&zHTpuy7Su4)I&}iD0>&I4(^(tIJ zv}R=bKW+c9r?Awj7v32KCJB$rmW@RM-YOUY8-0R;3r`b>5tG6G7SX`vT!) z-uN%$pCc9{7UME9aX5>`InN)P(r0LkS3Q50#*nXjtc@8KLCScW9YF!2G!6ZnM-|xJ z0-x{k>s-En^JOjsvlC{G!?Y4$7X0CGRoaPo2z;P7U?(T`!l%v8R5f2eyZO1F0Vmm*4hddSoLP;#1Goz|zt#no))P4NT_P$)XO+M((+uAiz znWl5GOBAOC=!wOpsgFu1ahwA2rwn_S4*Yx5QCU+HZ}JiCVrr(iCVx&X+nO9>&ZM7M ziF!0uA{NfNbYw`YtP7cZ2-((RB-t~Dcrgh^ooKED1z`gOthP>Fk7S2XKnr!f0+Ua_ zu$KtDhQe5`E#3|{b9AF)RP_4VooA;EvcH3>-(UYzpm@opc!% zLhE`e&Ukcixf~M&)zvX-O5?PqtE$n7jZj|lX9=(J97)=+nKyBd#7J zO;6D!hmk$Bf~vt?9fMo<6`ak%v>COy|8dvT16al6?yAPH%NQFAQ_)0PYildlD8$~G zAS?I~9v`p8=|Hz$1r(l_(^1xO1REyXzQkc;+FpU%*P-ey;%#ZRVZ3EB?J;ch1&{Q_#eQ&aOt7X#di8hle@ z+oOH|&@k*zDPk2c%$QNEGq>gK_y#JBeV2hd2{>lk$eEcZ6jmfJqsh8%Y{wuCS3la` z**bF_$S~~V`&`5(r&;5(5uO#6G3pMmz?n)}va#@kO8A&;{w;b$GeIcP?-n*CTV4Lx z;I6`?mFU;VFFDsl9w-f6@4X$2$D*}S$KF0DD^orQ37JT1$}XH9Ipu zKQFu1dD0fF5yda^@*?UtB^A@Vy~jN2H(Wj4C3BA0D_^G&rB&_B{-8|1zOKLUX#x^_ zbJ7|k0tQuD=JVj_=pO8w0g{QL)t7bZpn+FW6&s6|ADk!`# z*?gU%EB_KVbaw?6WF>IC*+8#+w9dI)qx}5>Bvvc8sDWE=23fqX0H3;JSrEU%gnS#R z*0>+vPb459P{ST^2t5F0VSMBJUop{`&aW4~8gd`@Kn^m(XShh2yVUKlU?ZjI+&Q;bcA6Ig)v)q zzFyrzAk&lqz-oNnh`~p1H*X!&)HK3A{@q~(3;|x|{_SvMvzL|q0T`Qs&Olix z^I=u2R@0gLq(P3RXiK;YcLgQfY~VY97w~PCgdbbyHTRUSe~G;AQ~>FFPIz(LVns>pgH5?MMZzvz=r?jP@wmwo7BX z!yM9r;18}ZfPYvGh8o=C0-Y_wd&QPmUjlGA=np?Ho1ct_&VewcswR}uZPdQQ^Xb*a zPfF?i^FAxCx!P3+4JO6mAhBu4G!`k~cnz;v0P4eJmiWsW>a{*)fr**GNhNW)_fjZP z7Hvk*Ye#?Q0OB=H?<6e8*q~gTyTPfQf2`3Pw?a4JpNRAYQ@2+@SrWcA)!a z+H+N!UPH>6WkBwbR15MIE~eE_Y=hMBAmjoIp}OZ#O_lI^JFICf*#Kpicxo%uU-zS? zlQ)%C%C*>6ChZXx6(=o0vakj(Q~2aNa^fRx%y7fE@s#MG5zTx$NC;IZ6tOA<9oW{y zMP*i-3oF;^lA>p}N$HBdnYia~=iiNRJIf0?kzUzFI+STll(O+lr;#P`c+sap`u>Yph+O(NQ@AF4OdQ*l62*Ts743r!Q7{QP z!JEcNCO$R7nZMrMFKlPXDKA)M2>&2qb+yJaLH<%F_W$-`ezL0x8ohDwFE$}D@JB@0s zZxpNd3Q$u4#NL57@4#^2Jk)JGbnU~6=n8?W zBQTe_u&w_(0m1C{^2kflE}3rbP-V#AtbI_%KKXg;ex3WKUt|q7wLFn^KKxZs^dJCQ zr)Om~31vz0lZlF)WoNYipxmO}WUR$9 zPZdI$bxT{!^w7bcx@d%%4}W9l4P|%^btIQWzL;Tw<-pa{#~k_5YISBp6O{vQe>HX8 zE1y(p8Zzd>*UZBtvba|3>483JsoyT=e?z)Saf#~nEUA^1iJQWbuJbO92QCU>_*A#w z*&(Z;D|6#Y5!^-eFLdS(%Sh+5P~^%R8nRsNp_NwYIdpvKolj>6{&PbT&I%&#><}{M zO(2A*47aP_-A3|{e4mw}(Q!+7h5y#7L=!H5u7iuk8veEhIM=Og0x#i=A0C~r#9Dp} zsO8-!x7V2Sd7#AaO z9UW67NfO8%`GI4a&0Os13?HAKfyWn20Z^&4$6d9YmMg>F>$Ij;ZLM)S!GKz4ZwB73 z(D0eZdSos0-uONFsr_dyC~|1Fu^lSbFf(MG6XJKkzaCJ!{64@oYGpe2Ui-G3IWt94 zgjmJ=xC-3F^m-PEpG?#8;&}hfdv;`908W93`G0;)8=YiLdoFy+0wN++*?dA1D24rl zFJl%~Rv+kqLnqnHH~{dI`BgdLsDSKeZtvaYT}1>rk=V1wvMtbjm{-sV2p_G-@P`~J zj6Ik*N02ozfqeUmfX3p%M?P52I_OWHm(2`*anxITDLJ9WaYO&zRr^rg1;=~NySF;EwD3y=t(}d z8~_9ODn9Jz+=iNNYz>ZAxJ~l@{hp zTw{Y3!XpQd!n*k9|BIx>+zu74!Re1FxEnWS?(&D={;CCfa|bVf?zt(=dV3Qy^=j{# zzt7(4B)s$?co{^l#X)4;bO3(Hy3^2oD zPwap0{HYRD&oy>k@O_tc8Bgl$Wb)mF^(2KO2QYw|arXtl=w<+~b2;5~2K4&-d%(;| zlHcdv^dsF>l=j^xx<9yS%!Kf?*wGPf=+(x7^fM!UPQ^P!_6q=FX|tPWnS)tT5;2OF z2cQfA#D^;2u)ev=UR?tYP4&EJj$db zlStiidNS?eQQHV-%n;>zr}g_Py|;RYPWl?WQ>A%$day@-%-6R*wp12Vgu)C*_cG}| zCvb=mo@#=%;z7A^>pA8&ww?(rymMdFY}ydSDvu)R5kg-(cxSh1Okbw-bg~lIz#Ej! z4pd(OS3kTm&~Yk6v@b~wl&iQx`20Pc3tRj)fOhd;o#iS>g#v|q%{G$BU2&0S4H+Kn z*@x(3Kxce_2;u=Zo~vjE*SzhS%zL@+$ z3NpD^b@D#vf_O3jsOV+>@K-8u8V$kFe~@$N;3rrSn|owkHXCUKwN7LufPLx>yZ=~6-yRn9SR7L3KW%${nmfDAmjFrC zm~M3RVT11-gj9QY=#&Y7w%ulJZbD|}f{XO8;OK=PqbkHd$-dtZeTSPtolx0+6Nds;3<+hwB_&yRiCPg#FUG8*u94^f(sL zSFjGL+-v`cAeTzl9)d&cCh)pq3M;{qR4aR$?Cz22wn=|@`P5t|0-}75c=BDR9fB4+ z4VSjgOo1#6q~Q}v%BOMVthQ!;YU)eJ;JWvNz=Btakt$<{MLMl&Uv1sCDuXs&aJ70d z&(@`rm;C%*j$21DWqwhidN+%Dv(mwQJL5lCIpO$WhNW3W!*OpvFv?sHIpR06SI=V8 zbtvMJ!C#%L%Lyyt+n-*bX$NK_C=zVH4z}Q-<)MD4=P6gAgoe)}r&~+PI}lUH6146d zZw*fyFLJrPa~(Y_B`?9@hQP6~vBKIyAM!uV?R{oQjvqfI+LAOFox7Xh2A)^a^k0O^ z4d*@-{9}4Zsw&)nGT-E=l4$_GwoPUqfb5MxkZ+!pv$U~mwG zHP}yp@jeC$Ll!V>us1^?dW|I(5Kw>Z-cMyfTRQdf;XhUuaB%l~($6*A8WA_HFMz-% z{vr;P;$uZ%^FjD}OV0H_Tji(sRJ){klNlHzH9I~|3GK2z?sXD1hytr~2rCQaZIczY|J9A)^E797n>Ab%|9;uj z+D0&GtVRRr(GwlX5S!`trr(pmMxTM7onYJ_9lAP zA7v&_LQX|10MrB&C7Ov-!0aJQ=-_|_+ad}D6P8>+oHW+AlMlxX)tZz$1daieq4ff zL_N?Md`KYNPSK!B`(STT5KFydu;-d1JX4bbd&Bb zDyp01tea{+v+jgbY@_L8AXF{lLWbR%gJCvdeU@k{F;t!;scIh5TI&>2l@i1}8@ZS5 z@rMA?mGO#%Vj!w~GleMhv_@B5XH+1cyauq<$w$4#`kDVBA0CK_rbV5FlUP;v;BX)& z78NC~tF${Sh%D@N@$uPDOg~C!+V7rs#On{D(#8)1^%r!fL<8s2;95i7Jxuz&jM65J zrRY)Jg^uEz)n3uVBGHp61iqsa36MW7wh$Sa+))f>bwK;-VHuo9dfX_~T}xVkzvxo|#E6#khjq#C z3`%;|te1`|Q(Cn`UrP|p4F-?Bpae}1-(*qVOH^hid1thXSz_2;BBpkG!;&V*Bl#Xk zo(e?fB`x<~xWt7}s0LMbBAC}>;5bL&J6t6H0^7_wzRgAK(cCJnwrO-Q?gidvpsp&l zi}CLX!OnZ#DmwR_=}>o^he!V1V1=2Q6FEUYa~(gLI^J!UyR z^!%DrV1HUCw-}IM~k~mT15i+ioAx;z0|u$^(hwsO@ct9Pm1kFM#lsLIUm!9;e4m zVvVP|k+pI!tEA4F!6uooLbKGtk&Q2ED$CLd7`PuUk_6<*npz?4DdSd)WcJJ&!>+1u zim+IaitP&TW%*0H8?_2C@bpo*ecJf@0)#8$$!PRf92AE6@ zJJKK8Z%Jxg1&zt|CdEct?+ zif|e2*75b1Z@+BGZ%?jeCA=F3Keswn4{@j^OE9DrB{aUR6~q0{ovh{^a4Ocw@c2Zn zBrvDyT0tI9GQn!(CzwEZSE!IHXtaSI+5x2Ggd6?Zf8wM#ZH$L|cmVsv8TvX;_2b9q zJE946(paWqBK5FMD$Pb80@kR27nYWFfvM4ZD~BgZ5J`{q;hTwa`Rjz?$=?~bH;^0Zo;f(S9sd;mODO&zWhgG50^~4}W2^hS z`srn=@$rN+jdJ3IOQJZkKb0=fhPS&6&j6JZUhs$0n6utq+o?YQxAN=AGTXK_4jlbM z@cjR&@wW$W_z#|-JZ~(oe2vY4UDO-}@l_h(IkPQ!H+y(|o1i31vR)NGoQW1;|0LBm zXU7nCVj`_26P+f|$$KF}0K$Ct%PO>9{#sJ>Gm=x?XN?*bDbp-- zpp1!PicY4UKkeZiN~BKb_oXTP22sZ^of-XixG1vb^mk`mq0gSKeSWMhtSD)aZ8UgR!j&3?(Bt9gb)_gnM@P)XPWiKw#HhgN z!+D!LcdoUxJyDPCkAi^cTNkMeB)PhwOg|UVwG--I0q%ZERL8Po%i#XeJ>7x#cE{wt zeTwY>zermWZOL!va{U@(q27=AZ%HP&sc`u5k0BRuUDzC^=E`WXFW^-sKdm?yu4g^- z+3ntvgU2Ib+0{Raey!+jDV4Imbg0#^I~5^)Nbi#hpMV$4qguTJrSmUi^B6;Lk@@+6 zy<(}ja ztDbx(jk&ee5adVACaaBD1-8^rehAVh@ofC!&>~#|O2!rds+URg!0Q%WEP|%7E`48E zm>M6So0%0AsaP#??UBsIg-W1GiYKnBpo!Y+J?B4YGiTz6%K^%Mh3?+N){OZltyAe& zcx-%LAv%#(zdk2K5Z835>WZE*tZQ@ztMdEj=%vH+#rQ69yNGnLqINVSXeeH!p6YE& z4m)M(=;dP;+i@v&6XHr%z083XJ={sEO>~#YR!+>kb4(-TPgkl~Xk1^*u$!@FM262x zdOO9d6HOMwlUn@wrza;fTMzIybF8GL=dcfGeS;B;Uo#@Yf;bZ{90wJNsEtXrN@@|d z*4M7a{d&+o?1BcI+OJHP@vEnhZbNbCm@rq-{$=~`8cw+li5>-jSV5Ha+BWfuie{?e z+uo3pGm%R>Pde}igNLn+zZMr_1puN)zWs_1ZVJp2^DyLwPlMMD9N$XX5CflIukv>F z!Jy}J0#984og1L5HoLaj-VQMW51+frV3Cc6_ugtgsm>eP7h=_hylv!*A7CnNfl4}s5yJeM;Lf@13z zpA7-)`Wmd?0w5!0J-gF7p107M0@epA#65qoe`rs~`h_^>g9*P20$vBU3v4iIGTOED zYzWE3A9Fyhba@OLM>#?KxyD|JFe(^XZO**6`<}qjm*AHjtJh#^4sH}?`FSSQCdVgw z8}o|VI%*4&@NzZv$zDhbgOf;3E-ZkL*hUrwc3L)wt@IeX7{7}G8GxnaVASY%f5T}9 zlQvidtZ5~je-8F}4;&VWM@J$IthXUik;)bRZ5$4??JV>V8Ddmkg~LTd`ss$#dJObi zJ(r@MC=?3v()!Q{_sNKS6YdLO;kF?f4?Caf99wOSi+%8nOz<<91LD^(qH#ySZA^Cc zro7MxkgtX0M~Jf<1|&#S>`whNYud^E8V&l+5qN|Dph1bB>=u6&E7Is={KB_B$iknC z?mWK~UD?n=K>CkDRhbX@Ieh=s2ny2g1F4sVwD@)B9^+fq3-BO?fmCa!6$H( zwGN?P-&Thuvy^G>$Ig_BpskSyz``Ku&x7{(+r~^{RMT5;NjbuvT+ag?gFjnbV0`*2 zXrPR$A~1_)7D+6X@`*#fJvf*e2IP)61#s5;kPN|k@NJ*;aX2VI|8qi$h93N#=pzBu zUC(;BT<@j%k>uwRqt~K@!WSp0J1f-o5eh(fcJ2)c$`hvr`p^3(4u8=E0^*_bk){wf z)W_^!UEF`n0+CC6jLtSlXuMV;7Sh-t?SV(}%u{|*$PIpT%8VorHk`J+GZ|#mJCfRk zB#nhlx0A>`R`~`B%b(ew}ss{-x=^_j}H;vihaV8KgjikYQRrX*q*l4;D5WQPm)5gp!b3 z2E#{3cv>Aj)S$DofF9N)dl+nZYbwDNrxJ^QgyPejmFKV8yI42(ti3QJ= z1DcHlmIZ}Z5ox89P28kwI}u3`>kmSbC4lr5uVAQ|oxquRfy~~&2?Z&z*l0``G-%MV ztu2UA%Fiy}W)5@x%^B+8CB8idTU0>NO_@ZXjq)K?eQBkmcHlG4str0JD9lu|MD~uT zN(&h|QOLVaCaT`2AxBC@GwF3E*_$`uC^Q23W!o?v2|Y1CR?SE`#wOM052 z1yZnuJuq3!4O<23>I60bAg%7iDreG5MF5=C89&q_<&r8)87l0qSr9dE5qu~)>~aAZ zaCbDSPZ>#*Bid0*24A6pJ;|wX|Ae-!0SOdV~NREuh-7bKawjlb7hSMo!!~LHF_3|GH%IB-gGQ07$`OTD_FqaC67XcCLB$n?q z*$#g-$bde6s@gUMB#;vA_HC1)l8DdBCz{jvk z%?R7-^%W|i?d*Dj%po?ffZ0$J*MK&+-~L>nqasOv>dQw$u#Z#B@qcC;{4m_xwMClMcNn)>iqHPLItIJ5%Huui67DE;-Jm&9%n1Pu& zOAr;3HTNQmwP*2T)?$71ZBuh<$wWVWqLAv(J$~H+OmJu_WbL21o>1F!))svK!5iKk z7jC7w)={Evd)S=Y!;kf`^?ptDH$cK6(ANB1las7Vz9uW`P|pGznb2KM&EwR zN56*o`vL8$?XgFvwmL!pf)y4S@C^aFI6cP2t46!@K&%V~8vC19Km5o#M(kHZe+)FQ zlfPj@Hkk<4C>(k{SD*2&z2V4p)|wS`Ets}+-P~PSYD!6`dC_gXTfh!jwX6gTF z$ZWhIY{bN`1nz(`XKa>n0z(`K=C~Y=AA{w06*2aQ@5>`wiuu#mTj!h@S@H8>$?HY? zh>Kr;4(4>DTD4GA%rWvi(M5>&eVPDzE5Ax-EKUn0zy2A^%uIE&u`vl7mQHo?jH`<)or6S=DS0G9MMZ*`w_1%oYw8c^ z3Mm4B!TRxcIK}@O9)=kpk}TmHlAr5j59>r}5;+QwY9CMcFd8suq!j`qgyfG!>z(Dh zD18Y?O4yVA)+kdJ)=vz-6^uqhKrn~cP3k|aOt8p*3-Xb;7IM=j7NBXO3%?g9sreS( zH<_3L9!!e#%CGu{P`Y#s?oOorYHZg|Q4em5{|EXoWWRn2442fzxdMYi{Y438$NJ{g z>eIhN_;8b_h^~_~-@Pw*&JggHC|v}b90h=i8&}JVQ?Vk6A8Za1(Nd98IX^E1x&^#S z?INIScN%b2>UTWOz8<>0Iot%)5Pn{#hTrk%>po|6Di+QE+djH_dPcnlCJ9t z3T+%uuT#1Kc9NO07&i7Ppq@l-GE)XZii+><2@8V4=+r!Q<)EYkglU#;^T4YRhyAXe1rm3%&+>(D z&n^E;`#L&Hzw9MWi=fEkRHB=HArwp^`;Uk|&iBvH_w*_7%hjTU;XjZQu*l=JF_Q7a zJYCBRw0=H3pJ4F5zA3aYPvvNY3NW=k>Sp;%P*YO3+wi}m_~FLi9tw=hRQn{tGXF9W zBu^-4_k2F0jy&|CkT13^TD(;U-mo_4po}JC6i3m-`o0CD5p{~I^#1j}ki_+( zBd%T$kchdN28>U+!s=Vjb}mrA?m)m#tCAAgl`%o>ku(r<_E{T6b7*7u96KK>u<+rBU3s$)<%b-%B{}eP=l9pEXOB$@QPc#1>0x^9C`)=X%7v2-NMmy0CZFhU zF6tfWJhk;b$r3hD3y0Sr*o>- z!ifhYO<||g)2}Bj%uU$qWTDFm?_HL!q8-q+)Vb$5IyNsU7x=TVJ)2N#PrGWp_BTaT zFe_Evj$!T+eQ#9tHS%OPD>)gW=a=6IR)HyDSHXt)7I=zzVqWQ|&d!vW+f@IJCvhlb zzcizGJpGR~?AdkaG<8C>FN-|eY}qt>{flU#+k{%C0?&0sQczG+TM)a66m44>x&JQD zreJJ)^z@QaQXNmPNcBq1*USDXIl4!`s8sZTx4?P^JcJ)p>QG?%bho9PJ9V9(Go}fd z{3lEOi)CJ(aGP|m?7Sw7H>6Nt1{CxdHnV8Li-Gx674ZU>%mq#?_rCr_T=>mDKl5Zs-#y6zfKtBX!}T1P4->Rg-KTB!{k5 zKIlr%YW1|r8$Hd!vMS|E$}H#+kYS{cp`pbHE+1Y!ikNuVJMW@v9!`rBDR!>u(Q0*k zYrRWAt~4__FD~A`U-pFwF^eQXz9tTl@CQI(9N0PD1i99X0ap7s%&9qQ9Yy?nvaMnMXMGU;^(B(-|ZLk7Poc9MV*ao`t}#d zQf@a2fL;TI+w>*w$uG~GP+z+UI3vaeC&)T6WKQp^P2@TbD!W3>XF{MW9b$dYMzsZ< zu}C)#-GcrN!B9t5ZSvV=YkUC!L_uZmMUx@8to&^_T}aZO{;%Iee(l}-EuxmSgQ z8?9iyT1Wcf_IP-Z7cAGt5dBB$z}AlKZT?)ga;g zKJY|<#7>7q0;9ZXn;FL?(V+Hk=khQ`Ei*kFq(tXrAa`)iOx6^?F);2{T5~rS#2$C3 z&nOTx-Pn+-^W^A3)4jqC@$D)3%rABUt5F6k80g1lr2M(*&lblsM^d6Ccoc+PUY*h> zNmz$&E5&0V2FetHzk)7nE*S0{nGOO9DG*6YE zt0!ou>lfY&b45J#+~PRQzIu=sar$LF5QhvUc~FGf1FH)EG)J$^_Ko!2{x10)(tCrq z-co+mhW_8$&pLm!E&r$7_ITQI)Y=VLgAt>ret~G~Rn-ea0t*^N+x;5*z`HM@pQb`brybpEq!sg9XYo9l(r>4n+i_VW(|d*z@5#Dg`-Qhaqtkjb#d&H}RigpmMu6r%Ta zDl_=%lhVEuk<id0E@I3voAY z)AE(y|b%W8deqlj7m_=L=HT|~Y&;#1m&e7(_LL1HxWBZXU9YeFT zi_)@%m_-w!=FtI8$C{f3ppFCUZlrFP?m-#IjslEiRa*Yp=$jd-ciQTL2u8d6CE=8` zgGErYhrLUa%qwbn9ZWIq0;SeS!Zb)Bh2YPe%_G%gjF*y=*PXueu_)|TU{W5ae)mYZGQ4XVN94{l{ZC-8__wRC{?o(Cyf)!xKX_tOyK6W zkc%!S!h$SC5FZ5)Df_O{%z_{6ztsxK#6(NV@X4(t=ldTzi|z}~RK2#3zY}{{`fGpw zGh_+Ks~h&HAKl@HLR)H%IF}5ofUUH0MDhH^JB;Pu0JDo{@?#UheWAR2?;SmNsJIV z6hc1omXSFn%wZvhVGc_NDyJrgIYd%1rh|r=QIv%t${{<*TQ-D^z*L6J}_lJbRm?Q3dn1TI-D9yq2ix(R&r<4N`w;&9Zh#mUO9tu40PVQ)RvG<(2|5?*eNIW>^gYzvhJo}?;FGxzGUet#r&WK6K?6J=|5UpUBub`{bY#&!0K4}3m z4A+FueZMs9jnp99L}M1B8xIXaV-7+7OGevJtsV+@`o&>p8~}NC_G%uX)x9Sez;#8i z&k@C?itk?3)qopisFs`rwrPxYl|p&?AsKd*0Jw7Q-L8~>+Pp)kTm>Lb_t$)N$}QK0 z2O@75?{+qVE|m$3M>j%*_Ea$$U&8`w*fh^S=ejzy58FcUb~O%|k&7!2F5p!DC!>NF zJN=bZFmtp#;V@0zs3ugdraQw{?F72m15+#w>B7ejtxrBYZZCe&yqU=$-sj_^7JuSi z3mx-u%yDK%&$+}1r>8TZ_YPS(TUQmet*^Iw3Yo|99%?1 zKkssT44Yp&>!9?aH{SKj9%(?SK*tDxM5hnk>>1?F<1qcBjqG7_;W0O(v-MPAAp8-6 zmplP?rEU?AX*irW*;LP{0HEvt{%RJ<8$YjR+;rKE(%DCpc$dc027h|IOL0dS zl3U2-hyJIpYb?&xTjg*$Y`FRxV#aMz6?Ad^19nJX!O7Yrf`_4U_63YdCKSg9>=MTH zH<@F3opK#fJmVK{)CnJBbYXKq^#qNsq0Y?L(u`){OorWIH6J^lvVwgDUtMZCyksDF z!c;i?Ai%gt8&rSRm1$E13p{^Ea}Ea>R?9AQt^v3utW?=dxQ<)*E`tH&z!& z#Um@ApFHE|;{yMmK$hh_TbEQ40X#4Uipw{>79zcwwz;aIq7*rJ zszXX?L?3QA>(lSw$5Hv&E}Fev_*p5q!S6AlxERc1`foC6ZM+^@c@c#dZ(URt86PKgenxd&k!h zQbX{4Kv4OcqY}E%-ddujkje}n56(xsSfd%J!vAEhV$!6)UyKzx_3A6gbGC<_e^B}L zl+1wCKVrf;KeOf4g?6En^kDYzDgNJMcK21jc|`Yzi%8~t=R*{_8R9#yz>#9*R6DhM z1^EPt3^_r6x?q0*6x1X6Ax0@1pdtw zRAmq(e%ixwt=~}hJPNQ)trk=1%7E-ioH_XrV&|YLDs5Q}(&&MCND{&{5q&?(=Kll7 z+5P*>1}21O)z@-?r<#I=Q z{ulex0myGd>_6v#KuiSWr~je0ZJR>2I+n^r{wz((PoxZO>$h%D`?srXEa{QaaKody zQUhgW>xqo`5?p%zSC0z#P~io4;iSj(7wzXM|``S-+Dz87kuM^B@wR@Luq zez1$+r)FfInxGUg2d8HuTa=YR8UnxJkbbS-aAv$2*KF(izAeZp2iZrEbj#a@%`)&k zCwwB+>;P`#*LTZu=@vYH!u=GYD?@? z>&xZDT+vYumIU_Xy3bv`9 z$f8lz&bg4A^RQHG%zuq`gg3)cQ2@jldGgzZuDl=nZ zKKvdQ;1!B1iJUokUHT~ILR0fdQdzbd6(SYRwRH`{6o_9961rhz_@>^52*g**2@0j6 zquw_J470w`8oC^K-ci)zZ&$D)D)EYR&W`8>hl%AiMQL;#yul^sD1Y6&Z^?LEA4@Xi zoq|EI#|DJykwEd9p)<(nTV{}Je)O?Sx!-hTkhUV$5cq=H8T0~aDgKKS=$F|(*c_js z=#NCY7g2E&)3UhbNDitLUB{mFf#W})8>IC{SZyb6ar@jzbTjH)$y1m~ma*!h znR4>DDdr^&HDxB&JA%+dqFe>7$&8tyY5t7>*)F}*w|bYVn%7%LblWz2cyx7iTJIC; z{tEp)>FK2smUu#5v=SH>UBL92_)8kEiWx}mVbe3_n(67@Q_}3=AtwS8(MZjWD(gq_ zT3btZ(r*Lz(Bm?Sz~=HHhUB|CnNt@emEo%7k=)bGXYM|jrzuA)Dwh?Mj|qS;f{G2S zXjuDnjSr+j(Ib(~%T?j$-(%z#gGi5zJu*KZzzds=P;HRYHa0jAcW7k!!Yff*1g@YhnNkABv|d) zhuH~MWSa(kf&o;B3l;w7D2`=EeiH;>zi4Znnx+UTf0DKu)R6{rhi-Ts=j%9F=a9WbOxKg zTV@d0mqX3=)8Qh$lDOvHJ(hrd-I#CIep^%$Cn|$$Wu!BJKhEXDC&pcdq?E5Hen?$K zRsRdaJ~p2kV`QH=quo?vm3vEt$~+4(ux@|H&$o6t(M<&a9inOoQni_x{Oi$Z*q;mH zJ#XK{ zzcH2F9AErDEr4osPYA?@_WeQSDczVxJBK24fJO+YTlP<%jWL=J=X`0N;=8!#*;zu> z3kgsd6H7I1b$w=f{7aa@vwT8K4;xA#5QWljWE1gYmf+#8(f(w@LjY67+xcS!U)hO5 zmcl9nItXz?5Sq+C`Nk91Tx|QuF8xN4sJ(4b@h4*YC1Fb$T^&f`8hd>E2qdLCxt}%S zfKN%Ila$0uAei$d80Gr%(EvG%wP8N)?)dNpI9fT&4?d*X~a^|9reW1Mf;8gBiEaI zjg{%VTR+(Y}$#hJ1f z0B5F8#KGXK93S&9!esu1YZ}%)=Fq+Ho3_Ug*hYDF;Wz1rIt~QEjb;Dn<7WC+u^Hby z_yDTYoIKZ$A>LLWvUI+I>ph|7kf*G-boK=9ylJ+ERrrw9^}>5)+)f>@!{nI zBD&vhxWPr?6>0Kp5;kcoVW1*_i@Yx7H0-oH_Yt6@&eu&G1^#jV6cUf6*Zz_hCI)i= zaq^Rs9SqHT!^kb+p;pgb${sV^p*@y(sz{<9tonG5B+o?9H_M^gHqjy9{bcG*-TS0R zR%$~nk^kfo<|3Wmd4?%jW*4Huj#(A1jd`+__QKBdP7Y@I4@SRqdGI0rFxXqw5WGI;Z>S zlVJ<4q=%Jke{}IF@W}Ji-gK zc9TARx0u;_G1v+@A1@==$(@DKg(5u7exVd*Uh0FA&7K*r*EOE#6H8_NIaRHb%P9O7!TPtxXR-3HE?!J`tZg#ltDa=j3N(yC)wgYZBN{=&JJce5~t8wvOj&ofyYFo=ZoTvy$X56#a zO6YRZT&bq|lC73x#V>WJlMj2p*7Jen7=St*fV( zW5$)0EkHrD75%g7WwgA!v?^t->^<9(wtg}oOqwn}Iw~;iY~sI2NGoO@eN%kZ6nbMZ z>Xv-HshL6y!q5RG&K|ht~~66e26+3A@fewvs&z{e-qYD<(sZ{yMD~e7sLDW;ucqs?t!T%$cY?+AuNPa{DcIx-?rsr6`A&TQ}2OyPNG58#7DNFd5-ao>5c6Om! zot8D!qe7KW)WLe+@3xSXsI(O1zrMf|7hDT+5{6VghPdvfrTy&I;6tlE|e*j<{wGkhn%dm3*zOg8yBq8S^QN)5$xL6ls zm1BS+QxAOzeM%nd1r*%}0o8%Fuk=fON|l_X+8+=CHG&iMs;-LBa5xr;DE{uxH6$tw zBAi-#Qat*Y7P(T-7D;2Jj^O?&`#th%?b^TkTa8-qPIMlD4;i zaDM~=G%o0c7|GbDA4_MDqMbJ|=8Hap$FL1`h=~NOxMPSKD4_M~uudpK?i?zzRfMZ| zRp-h32ao4f`uD{zf?Q+&$3s+VhnXsocsP&3e}3p&ywTU}M#1F5f2ehYXmM&~HbACj zyAV%@82Dl`O~hRnSoh_T=DaKG6+jm~5z(52eUMI{^g^}O&PxL`k&4YI0_C2(l@K@* zk+l7>#1u^eYAwnzSgiUyK=SuGLx#_AF4^x1)UdY?4%C2vQO8Kkowie4XAss2pdADo zciSs)`)i}gZZYw3A5`uQcQ1tV{H-(QD7{zU{KpC2rWVrohTfBLn1Pa#k z$TK=DiGb#Nga7WtF^cJDv?N~US;9>CZp>lO{jR2lhqAq$a|B5uHw4PSJU*!s^3GTZ zVh0bD>|s0gJD%Z9P;A~{I;>$BcXv$Sy#Q;-bT~G$mJED>?4phlCmefoYjZQ%2Z%QE zW~9|=WxS+u6(CX!>6~SddlwcqO9KwA_RWLFv}?$u(;1C9(s2~q|q?FVsxL98qOtlO z)4I4t|C&oC+08w9d#Z73nx3taX|T@{?hR+h0}w|HTY!Am3(+=3mGKm%WjS~HdD>SN z_r#1On`POWOeUJ$Zdzn}BR?f6qvubGu&I?B)psXV=;SR(&I|7PG(F*%r1F9X>?;ucz45m zbMoyWLE{DTLMh+p&WR#&aXX3Hn*@i4Ya)s*-iN6DtEkr*jJQY`@`mAG-ycq9pxanz55z5THE zF2Q~_T=~2%9Kw)<*xSPc12DV4Kj>=3wJxgP3y6Ifoh}QeA|9A82c+|6!(k$$!S>cv z(`40qd<|82a195?x{8F-Wke`&kTHU4+|ulu%a>&CaXr9)td1QA&|XLmoH{~Yp(T{D(}w^Z08CHnKl-R8qM z`I`F%Y6A<>Y*j5V_lF-W!97~ws|(#wU^L_ZfF;2f_QeGQJjB{g_?<3lLGC;O`CM1l z2hJa0yW}DvmH8}h7mUcOpTztF{{M}>X>2WN903dhyBMDV2?F`ylIZVL-TwwcKhIUE z-xTe#wO7g1X#%e&an=!YtUBfPjeYPSuAB(2a$ZW%87Q(SY*5SPa81t z`pmF%0|;sSv>Wz91_K%rP$N-j&1)0*@A(8P5zQ_}`+xryb*@^k^gBH3c!%GPR+(N}YNoKL|Wkyb%nKEmJlv$Ap{Azm~?J0{SY zAun4?#sK&~+80HcC>bbKzi&>L?vR`(Pp!t29FGKv8fQ&5*M%F3S`I;*8>q$dI@a?% z{RNp6)%DVeEt%kFP0`g^nOXGyPB`+T6kd=^igg!L$Snv3fFG*n%_t9SlpbgWk+# z#Q7GOww>j~7F5xii7WtXE3Is`%p<6Sy`&rrU5xs$mS|2dWCv!^*L>hy&XCe41_$?g zpyPKUhd*hY%_{C=(fGxC{pAko^*TbjfCLfK?+8Pm&m$W0L{-R@b52!^;EDMts|g(T z9ixuN=ifMtmZ8P=#b5c8v}i)7rMz0WBkS+@f_(aRY4J~*QO7Eoqm=EUFxgs0kGxI2 zgBh0FTAKs}$WIK5jqT*+)now9*y~(jscZm?@hvkV%3rS{Hh(2hx3hns^XwDVKWhsI_P8YAxr87IFNJ7LKsjha}aNC zT*1=8${S~^eQ91TQLAT!@JmZk{T)}u%5CyG(?Mo6ohDQMMIq_|NW9Xsol^3znq824 z7PkE7Ph=_mr(8ekFtc^~nCsK1Y-xZe`z7si86>R>HschLr#pk!I3df|*On){e6r~e zDeVhOt0zZ6q%1_!^6>kKqt%|sdEIbh?m(!E)}3C)?8zz?9gwH#g;{n_YE~0kX{DI_ zTVLpG(+$`2qp!L@(njR;csB$ZE^p7`NNFe1Sa`pI8QO?8bj z^oVA28tu1$a=jjNrbp6WQgF1Gpe3R5gyH4BwKcxRO!>KQ>#@<+s0Dh9Vj(yN-o~v% zdMWG1mk?li_1}oaZZ`Z0YsNf7=oK+TeK0KGd9xL|#za{#ON+o?g=?#_N-M>2>_8Q0 z`TObZGOf4;a#&B_t&LU^nF9cpq$Cq~j2FD2C-U1U)Or-J*X|-IwgvIseNR(5(NcJ* zQM^JNdh%h@m2?XT)N5S~qiYE8Ht9vN(wBZu;Z;mIHfQ37BFT3Jz z8-OhMOSGygSbmY;;6mCEvQeegT1woiiG?Xr0pM~s|RwhJLKHM zA+tACF4kVh${vpoHCN59)O?wV=8V;-9V3P}7Vm^RR&zHVZ2A71*1B4-WwVnxyv@ATSMgd8 zAKj+9Si7qGrShY6P&W@b)o3TG46>5?q?L{r5H6}}9lWXf55UdgcksL*LQU8_yMODf z-?$2w*gkbh<=fSf85!YthNLC(SJ}JWZU-T|bX`3-YA_+=|KX`~S+&|5&d6p{b14WO zqE1;a*`Jf4ks6TnPMHX-RgdJQRi9N{h4Sqrs-rNhJWz`u(%|<)0))h*ltF*BPZAGN zP?1pKyV|hSUEx+cuL8p(Fnxn-ETrcC_{OjiWP|x98?F`7yV5q_cK^^eccuTjXa50b z{>gWiQW%2GztLm*V1@LQ*r0^!YbbM_>ZCYm3$M?(R!v4drM$VF@so!s2%sgba1-J= zPR!O){dza}M4h4Fssw#uST#6b{c`m#O9KmTsE!?Mx5~}G8|3Q7#%9R|$Lr>j%iMQo@?lc#}Jkds)56)`(Yt;Tt&YyKMXou~;UHn>>oaLXNcA?*T zH&Vk!4pLV_7^}E<>cW(i=8CKvnWg3)NK%YFljh7x%$l5;8N;T;#Yst#02Co7^&bzv z6R))UUnDtZk{R>A63>Q@7)AI@?VOu<>k-}ZQ=B72@PL=4{0bRYb;_=0F_CbZfGOwi zWYznWTu8Chexfa-{!jFIBFi6+cX>{6zs5{JW=8%_Dt_wR#I9>(t}G3mj~GA%Os#F4 zLK5tMF#D;!JCV+uM>dWCvP8dnZ4gz|F})xGiDp9Yim9_|bc~ z^W1W3@$R3aoh70tu0Qz)l0W@&_Pa_5DCz4tfSc1~J}5JP3Fp0l$e zTMq7#O2}5N5q*FuJG)~0#;oKOb7h)2T-UQcyy?K*` zw8puqYhoDRyhdi`kJd76n{r~^$i>A85EMe;QtlWC4u1Gy#VUB)ZAqxy!0-v(=t9p$3x zP^ePJ3lTfVH+OF*RFmJh zodfnwgHCGC`eg(60Y-Z$e9r0uvyZNmSK~^GIY-jFrhJ@zHkbao;x!I=os>COdF&n; z-#Iw1gtNCP!cx7;iaKT*@9cBEQAU46+%dBU?l1WxJ$7WImbuV%O?PH!GK6uRHXd$- z2Y6cK*6-h6jTRSNqg3flRzpQLPuC|S75UIB?TGz1RCxMFv8bAWDz3G92Iuek3pE~O z&@(~_4|!ktY%^M4pqE7n@9mKDz+;hj-^+su)8o8>zmW{;jS{C9CSkoO>vWsfE1R*@ zI>ZZ3$ykHWbwYK?fMC)%bcs2>^}{H6(`feZ#^>MM3+4&y3Mm`B?X|6+OR;AL67uaH zr0ea)gN z_k3LET~zAFDXqq>ufjv9nSSrW6elE6P&&e&1B7+(mOov-+v-rApWB<=z8@cyZDpo- z2&?0FNQ=(!Q95`+PjKhH`~!TGf|RSrzp!c?WOm?@8r3RQB`2r*7|)^vc^)!;@S%2q z{wDkn4g@3w*~jRI1}f^9m)bxYr7o089AwvMtJ>9>NC-<+;;Fe+CvKi*Q-{S!&TLSjN@*2s;rP4vCg*e^dCVT@E zX!C)guElUyhk)ObO6XxNRcN!%V{DG9nZdMxjH~#GgN&VBg-2jB6$<$aIn{(k+UvvY zAw(HnmWU=c2$O(Kt2Vu*b;dn`ngI#zAfI!1`TgR0<{2;1+H-NbfA$mN^0r{6e zGGw2HsR>)=g+7bfnWKJAlx=q0%C#$lMAmzLpPLhaRIk1-@p>BHQiXsJL&pUz#q}~H1imbn zM0H4QF$y5TNo2hCgA+NQkBlgQxPwoQ5N1QKmq#rbfikEbZU0@N;_nqvb0$3* z$rSW5h8+h!IFnjeCa>TfdO}h&L8i{_!@Z2Nk|;RJ>4m}qd6FOB)-q2^ITw?G}Y z4{mqJv%eCTWj`A)?CC@hwed3A7d0{Pp|y>|YR;yy*tD!4a#@b=reK{b3WK=X+%^&V z;bL9r5kgA=*6DccCbT=bbYt5!f*4;^Cyh!aLTs@V<*~foD8nf*!J4NJsue0&sfmIdDhK@qrfvvCGgH5 zt{bdy7dc5z@umxv?n51uA-#C(FT<)ZAQ+WQvay50r2>U3q_3N}S6mtLe6hB0n)Q#=9X;FMcL&!J^Ie}Y48hJj{nH6d zfwn3!bjqqo&Lom@1e=ytCit=vRhmbBBM7%844gyXR%=#nY@xFEQqi7(u&VtE`TLYV zvmuY%i7@fCFmD*v?Z2cHnIZD5l@dVDk)2BRWQqmX;zS-Ng1AtVHwYguyaoXxGv;i5Av`~RD_#9 z=j5XC%a_Wud-^RT~yx3>VJ4igcKHPtNx&MhE5_oxk_nGB2L1Jyk>hvd{!i=xWz!vY#Oh99B6$ zbPjbIL=$Fo^r{yQAZjS$6zt;J`nt*T?|d1=G6x})ClOrNLi24~W~R)s1?KA=5!(}- zjp$!5lNTOXtkaWM7Y?Nutmaa4or+wA9d^HAL}TnBA9i8dj}r13?#~EA4tS(nh0i0R zO>Pb)0sZFFr&L0}7u=?cK@^?d3HkgLaVwEz0uz!}KllR~olO*02_b=Dc!Lst8ky0p zrM7elSemGgn0)Iq5D7}Y0CFX-({bfRPt_VHa~GWPZm zq0d+O@Tj87+M}aKa72CBeTdyTT}bs+jjoJt{d$Hz3_{UI*r`&q+1{X0fd_)Mh-QnF zWsb81;JAAnpZ3sdlu|zko++?*hkyV$JYMpE=pX|UfVBR~F5)2ILI$uQs2LnmYI_YX zT%Lmmx?oG)8$n|4EFpMt*%}A_V+xc&A*SzR9l-&fC$J0>{`-jV9q$-gkZwo(A0f4O z6>qykT;RXM0o{>==Uo{!H2U=UiKV^{9OEL5tTsl z2;aW7W#+TdwWj=b_)}F8GK?glsoHskgu$z{k0M?Xe+qRmW7DuR|EC3r%$e66E-Bzm zCUSVqHp~p+SHrWk?AIqpmS%_6Hos7pS6`JOZo4CfuTzSnlbCVhStR;AlkuA=D8*eCqpD z!dqFT)Oq8(xlXH`Y)S*tpVg4G-0=R2`g_MBRGo>FXK{7j=YO|uys;!PykwxDBWSgs zrB&OaJn!Kv2>U%^);4CM&GQ<)W;6hp+fY_Xz4U8?ThneJ?JWuAE)1j;F9V ztqF0-tt%YC$T9KBSV+V0SOXFnUyIiuvf}|Um^>VNM(YK&m|%VtE^j>Sg|ZPu_E6(q z58oe#626suS!7hUc-FAKH8{zrWBN^pmZC%YmYMW9>h6r|uWcXqQ!6=wCE?#DK}eY! zLDsNbP=~CI^*TR2@{kG~04X70MSNpSz#tEU8>pVXjm*1-MH2bO9KX?I7=hH|4G45# zT7Qnf;jd2Zx2y;AwH2mO!3*A8SdQ5O*3Usqm6gpboJ?<6;n@4Ubbl8?zm43Tt6h<; z=ajvEMxzVd`8T3UDUS@*7uNZF2x1P|?EM@HGqo@?v+z~jFwQawLY;+SBa}+$WRJEf z@wu|(zcX`2FMH2j(cDQiRQ9iRMTL>zh`go;>Du;F$lt1Ca%!yL^ik_9e~M7wG;<;0 z8Bvf-^D9-JTfVM0p&$kxO@X^X3?}h{4~dp zrhU;c>vb5Z(d})mD$c9^E8=p#{MAQINXpG0Q&C+dk4`AS`m^^T^_RWUF7_bqHR@5B z%e--mAoHZHZ_I3q*8AY8YdN9d7i;?5ROtB4+t^xirLf6J@PsDhkt^IIaBrZ*qu|c& z=%D97{s~b%kw+`#dg1KhsQ2RjTwsbipql!lA&jshg8Cm`dJoPO$TQ=PcG-Qdt51DU z4sC8rNjS5T8Sp#jtC@CgB~F_JCuqIDrPR8(t~mGi_g8@rAt@p!QxAdS;u1-s-3fAeaqMbBBaJt+@59D;x@h95Zkv|x+tqaunGPJO9C%ij`k$y!y;O2$C zJCTWt)bX`p-}QXnKy7OiZTn8j%AuvdL0^1HMOpPGErjpbajs%GWS6+#V`ZN^t?tD6yCT8 zQt$xcDv<8FLvx@=NX4YH)}ghKkW&;ofUk@B)<6sYcKvn~?q%!GXS~B`^Pq{P31}fT z+pv7sZ$cyZ8H#8*xdHd*gyPrwU~i4m5z(n2vPdy6oH5ssLtbTxg8H^)qpj>o_Hxjr z#$nH2e+U+TS1eYSEgB>Cy^cw-8l)Xr7JDZL&N;UF&4V0ucpq_!;}*zGEvW>OLdJ=% zC+SEe+;C)q5AA4C>E3-D-Mpd=LU`~foi_;MZ*R1pHTT%ShGzY^Sh&y?lu)#QSb49K zy8p3ZZ^o%XeVD43rNSHI1TnPoY8(9L;LsX(XV*!4^y+hL-^ z5cB~u#cJEoXX9bpZ{1G`^?%meejScmTG`$#uy+XM6Fk(LK}RHU132eUGA<$IR6uZr zjqH}udg!Xr1w@3ysd@}`f_w-8v^oESsY$57*fgTbr#M~!(&htVH%=U_3dcb)JDv0J zMHi6wbBgnv+xIm>HYv$!)Y689=7?n7%6(KH{G+#4gQXyomn;ns*t1utYxyNG64lM}z4Kj{b~rDjgk ztt#9GwNfEElD46Bs-T5QSX@z6J$b2M;cc&pAgqQ+c7scpm9BOdp~9JBI4D$zCg@pS zCo1@t_61>#&{AkwSAL7nzEtA8=Sw2R4b>|S%Rhij?JN|2O3~*rg3ngK;fuAkj01W+ zgSfg`&!>d6Y-SiK{!D4YqHCYYN&nXMjlXKXe?Q%-1k=LF#N=B-2tO zyV}&BGrazn6M4c?hv zRcN`ZvksgzY$S1fH@W=;OL{MW4E*MorTqQYQ8QA|LniNiWcm-8dp#*v^Dm}#nXQ|$ zHaRyXGw}lOQcV)FIaKrSk&4kB#Mj7!`Y7fZko33lQSVou+@L-N5y&-msp2Hm?RfM^ z`s`)+jwmM8bVP1~w$d~0o4E|fx!%uCD z#2T0SNiJ*W<+3l#S5Wy(6_9kdezmnApTilOmStDYdd=)y27T-=cM%BPi%T& z7^+iBFPpL=Rt18!UXvZFxJl zOZyVyiL$kZ7cCh-FK#5A^*!mExU7ALJX|P0p`^!itu|avcO;RE=-p?clKz%n>U(i{ z{8IQc;?L;0OCz2>x)Gemf;1yEx4E}}dt#BtD{C_+UmCXG zk3{7Y+z+;Bp|gtR6SC9Xv*`y%n1-sX8>Y70(S|TZqa%x1g2j}Dl+B)oHj@=2khZ$n zn^)%lwSOaS+o*Nv;(guvq=!m#v1TnvYNonY!^4c=URv>ptuolHX~CGXv@)mlj>fk2 z5cC4J=HIXkUQgfyO&yu+7t3B#e6*K#0Sq(}<7=G8wq*X#{d4)g>OgJ=2)7h`AKDfL)&*+5R){D-$dWJej5- zjNpFzRnn%(i9EluaYG zr6syDCL!gw#oy)a`AeJg{jWWjn{G*~->V)%+;X%VbS-~>zCTb{m3#G^ zwNnc~0{6%>)u!S5;`Y!bp~xUymA28vDsA==b+8<9?P9RP`eu~y;?HF&3HE{Q-TD|S z2(kODa|jo{qa3QxVTJ}J@}RYXir@-LT1E35+-2az@!~WG=x&)R?UoxDduUB}FI>U} zU~&163DBAYNHDs|CkKm7X8~=qe!VsY3&%hDDIx|eKtUQT6*)}_95v{9F!_1$i~Dzh zyYXl{>@D%pQp|P*tCxNCD#r1L zaGdwtGUif*Z(E(BN*@osxH&Tu!fYVR>OgY5(D)X1coGxIUHdv*)$_&XciQsF{Xz%S z7^>RG>`!DkNcl6EVXLp)U-qLw6j78qOT18Ap*(C3&GjP8T|tGde^U$1G<*=wjZ1D; z*qB%f5OOXw%v~I(r6g`TS8-n$J~teU8yj0W&DAqcK<7t!#bkU`Iwu$CDD{aFQH-&8 zoVJT@cAt;48OL~{cWu!Y6Str0CWSB=4ENBC89scds1$T!bi15YA^qGRkqi#AV%DViIOKCET`QP0xb zU2*lT-p)*=DOPna@9kpjXsnZ8Re?X#7fem z1lIdS{YWw93zl_c$YKAt!wly;dihmfVw-&;l=iyRC@C39;KS*ojr@TKFkrc{$jm3u zS4R8S5pzS6$!Ejm@XV<-q?L#(Aeo(df7Z$1s{%)Y+$)>We@R5Ajt)c%tFIz12DY1J zZT{{SR8s<#_ENLr&CAByQpN;g?X2}-3D!xGhT&@miChkIW+IW=$B3@?fJ=O?JSdAJ z%7!S7HEbrx6XMS-JX=|7Y{Otv;uDnAvdh*eFVAClR~+!Xj{WL2@`R%hf~=*mz)Ztt zA0FPraFK8xoQWn9OLjh0ZcIqnURz5X6L>$<8(H}kaG)h~E(|q)^6}~IEwlx9am!+R z5s;6L?^8}%`V}xYG`}zVzt{JgTTFtyo0GSa!Q z#+l-v&MUuh--#iirvkW2nVHf_8B=^DgOOwb&!ouyP*3Cnm8$nlhvS*Zq*LLO6Mn_}Uwmm8uKf6A{TPI{^T)ts(-9|KPumBhEYfYg*(lm$ z!Rl<}t&dYPl&X<^FWa`euu?j2!y6-6Tiq`=BT}}v|6(IrU(u4*|Lh#6Zmo`Qm6{A| zZ;sM^H^vG$XGZ396JJlSD_N}O`u+_{{&$kz==*s60ugPxD4kUq+I0mE>6BBZnS5FI z>ISDsxpmhrM0_z_`YuO#y2QV?huYG*PH)>@Z(A`<5p0?|TpKUr0Hf_n@yL@SRhxdk z%X0CI$zX2x%HM_6zqc)ZJ&j2I71TydD|@vNGirYMMXtz%P`kQZWU{dZ4eLXxBz&wr zQ+jFgw9~OF)jSlzdimUwP{LZtd7CHA@mXu^#biN5%3Nbv86ewjOcwy6)uoh`9*gDO z{lR{FqeVw5=GW z2y!hpe(c-&u1uQTWa=hnzx#I%X`--{{#}g zHB%3VkRPE{DlBtV&kYtDHEMJ*o)UIJE&>x;$oxvX^8o7v7d*b2Fuah=tGQRqra13$ zv*d}8#HcqqNj+vo5dn;NR$#CA=B2Iie?N{SFZkZa-QWK1yNv?-aj9NEgVMlH3lS2?Fg^4&0CST>^c&D0uA50q=2L7LG@W^X!dMCKecML!863(HN z#DX=>gdXbOJ5VVNYL6oXYKKHx2WT)L@|s$C5F7M4%eVjyO9vbulJj*p=F&m?1LB|l zh>!=*-Tibegdi<7L+G)4Zx4qTz9hHAlVq&GqDL4no*n?d;{npW28vQWZDA2xKUc4woy*#Q2eCcOVm|e(x8wmH4wxx4m{uf4zb50({wa519@p_-PT;!mC?Vg_6QXD=hrjgH4ZO*Ewc1Vz(E*Gzn^Z{nQSg{n#bz*L=L;a z&$cGCaKxT$e$@)t1tv9jq9Vd7#Ldrov;WKvowqhi+UiSyy;-rdIu6cmB5@@-17&UO z-}kLiXXH$o!0`zEby(QkQX&?CmiIp?Y+J7_4=bT9;ydNwfqZNGYcp4t0qBFE!fSfS zqONdWj=a8a;EO6++uc*7wDfz8$BeBzaI5MztG!`4{MxW20M-o`Rm(R763dK+M;p!- z442d%7{u;pe7|(*5~7|6cHCGdr!D1vgEHN0A#9u~Uq8)9pTz3~SD8jIOX>|@I>O_b zS+B)$weT>Ijq$y&HbRA#MOpZt3sU%1Isuh+UAp`tQBekgo)v-J`nXU?-0`(Fj7#!K zT>TcrTMi!{E@E%QQcIn}ZqgR{i~|yuBr(KaJxDL%J6XEG34SE? znWdGfx#YWH|G=^*QbD)BB9vbv4l5%fAgke4*NJ^pH# zvtEKuBhD&NsR=+b2}GPus=d#xtr`L}A4&yD{l=?^;aj9%?|&yRdN@)^_?XpI5usFL zyPOZ{@+#svJ9oUUeOIA*?)-<>_7BT^$wF>jtWf*2P}4d?9;UE3^t5i*-l z{pAGSWqjz`vKPAV|IzgA@l5~m_j4&L#YWLZE+bN|%{A9DxkkC)Z)IY+4kOoGG8DPw zekp}q=C4U5bnb zBugEt>eI2t!#yCQd4*?lU~Nn4^0$0tS*Mo3-+$vDH)u`?`i9haVthSJ5lZ=YBpZoi z@fl@La&c!dO%ET7pQ1~{%*Ht7f5FU9g^RXgFZt$zhq*&B1o&8m6`pTovRTq`j5wmp zC*Hc#&nyOtmq;@)5KFB+9qPGw^Ercu!6zY|n zgh);(O8W8_$@3(;OuH2aqVW^ELYGfVIz!Kv)fdGiJ)1F(JW%c=FbJnOyJY6WmvUvY ze^zy~C1dnL{iu0qpktD-U&!5acZQK3grz-A7)U(J^May$JjeU265BWxeab}OUl+|A z+uxYZp_}DRPGOrP2RF-qhunYMRyZJ=brA5gb9>r6uH*Qm}OW$ zMVW5#7v&{a1iF-HqsUUbnhRox2PQ5t36*h8ph3c@8^LF<`m1ZsVnd`Kv-_fQ=U%&S zs-8D|km{yfS~{=JpXq;1(yp*pE0|zJ4ZhGc>7VyiVWiqXpWo<Y0Y`;2NDZgdM?J6DxY!@gQ6wZ>MyP zLl}kjYi(PjZMIsQ6nsT8Ds2CYY?N)*Vun=t4R_$|PU>*3R!Rr>6dg#( zg)RQ6GrwBMVr94ez=`^8sOIUpMP* z55mIU$QFbJ!+GD1o;(TbIS=z1VZrL-6id%|Xv-9U5bU7YS0K0^JMgHtg6Eut|1GOP zgXmY^CMJ&DA$c7mgnm6!0(e$=T!9FCAY*>mosT{Vm1M0(^40mx!h1w|1ld2dU57&x zx=C2cJHM%V(0E2P0ZNxgH%mFNF~*0{~}3d-)!)s4SnHn+OK!#kGLhTxe#7 zh9_PL7nE$H?^<%Ef{_gq|J{zQj{v4p{3L5eJTDYZyhsvZ<$erK0sRs@<%Yxn&k9zC zu>w)?QotW}&?k{ab8Hc$XSsH8OGWr69Vkom0LTvm6E9KGeFe&CI}gQP!NOv|(2r8u zAE3|Hg;|f0o((pKA)>!fMQ~)QdjWJ#^1T+FhWp=3@F55ZG*>%BFB9BNzDMmWE#K&rDYcnRZVCn<;amfByjP zKu3vFyuWjT1e)fMf3NhIon~=bm1@l#(_8t0spN4j{gKJTVK#l~(xt@D4n`_Ls>x+~~SOEmGCJ)Ox0}XG`6v z#HI4g#x_eWQeAFMFM3JGbcN?Bk)#mXa>;}%K?AmXuJU9w;$3AJRzHqto9n^4D03`F zF*_8X2qrE^qX=^x+?186!=hNS0Rkd@jpG9>pPZQBpKSbx>le}Ci1}pVJ zUr^E$t;ZyHD00N+;>$dVmy^gURkYp`-_e|2vKJ2KnO9cOTTRAqMl{*hW>>i@2ZGED z84i{$q)%rmFG;wW+_Ip3qmqpgl#eh+K4=ZuQsG=sfe@t~6T-MX{d)(^-&&AR=!0%9 z99t>W3+7t8q_O+?vT4Bjulf0qe^;Ka?i4b7!`D*FJkblhLeq}8!+%Xt%x;X+&hyTL zwebPYs>rqVdAaBUwUcry>VquSWMe1`xiFOQU8(@4uTqM55n5!ALa0BN_`1-42`Yao zwz&Qwti|MV(24cdLZLRsOi^(+p8MlD8+KZ_$#;+T~{RqvE)^r*~0OrCf=#6mDb`cCO^h=_yjX-+N}%U)O7m zv0FVa7bePn|1weEs6VdZUT5YthRW|d{Iv<}*BlY&?mu4qv}fvYWYZb7vtt?o%#?v! z81XsDZsntbZepwEg!2#nqOkpCLg7JqjcKbhS_N0&+w=T=|eEWdCe` z!9=cat*lLaqw*K&n?~*=|BQ<9#)93Nn-<(`yD6XTcrPO_Cxu?ETt>nk2@;f`RwJt_ z^3bl<$ajPhtHo7)Zz^FmFr<96k+~gzuSRr8J-tlk+6S2NDJ09%{Cu1(s*o9M%>qli zexc-T4R4m6A^p3JVGi5Po(TE}brYIXIu8p>02(p9BN;~k`&N3*BsRBR5)yj(rrY;0 zV>)yXhnYTDr_p*Gbzg^N*Z4?yO9&M>f7vWA?hILwCsX6~2Gpby)BA#DxKn7sA?r)M zdq88h7_oNG*~#iboe~D_%oTw;J+Cts+e1R(pjbbqTz06PgzosW$&9_}ql~qwwv8Ek z-_C&vt3vu8^$ASq&+&!GavrS^zsxp=@#z(Q>X)Tb*w4JsTtl9`Y9x8_sgExJcr6}- z8oO=(7UMF+B+2nZ3+yF!_V_wJ0+~Iosdq@3nYl|F@d64JpCSvd%{Li})mFv9t@p#A z_5Y^@2wea5(bQ?D-m+t3=AfI%%=&s*AyIslq4Mvrw>DB!T9$XQ#?(D8y)t(}Q#pB5 zKt5KXnk)Gjv}Kqg;NyBH1Hle$*vjLVSn7p*fjOKD&X#TWl1 zD{6&Ym;$Ce_2Dm|wU8MWfcDAY-{wBkpSIx}Ztyd+RXOU=UWM^*t@95UgdnkZ9Tkg$ z+#nFZQ5bg~i%k@UemsMGj@A81Lj358@3k|3IhyBHNl3yHljWeg?Ak!GqRM?Fi5&@o za&elSV6H=4A&Mx{vsZrH(K+CrIKX6;1qRd;Kz3ycP+LGj^xNgyV1x>^*bB$vQf3Z< zeIS*dL5jnW0o<^z^W03Zr9S|$G4^#Yh z7@FuO9)O0#6R`;P96J<=^#fH`Og(O#Dyoi+cDaj?!{^GQAto(E?5>Uoj4s|2xctAs z%6HJ`s0DdP*qt8jOokt&97;H5TW)S|zg-K1mYKs`@7`Mek$3Oc`qB$Up#D9<(brPG{aM7#YPs^{#V^uo7$=El+wD! zOGaZJ#|d^CC8j6;T0OF-3B%GJiu4%zHL-HWf;W>>Y!~adlEeM{>X!In1-jITqDE?f zZZ%8t?UFw}$mhAh0vRXthPy}Gz2)~g6<68vT+kH+TEQiOndII8{8ajb^d(-?IsFO= z{pridQe_jLu|Y!d$PGEF<$&OUna`=^R(E6%1obg@}OLKmr3CZ71PBTC`r>U*2d0iUaT=DlUiC6P5P zzI5DZZyh8ARc4S|Vzt6&$^wFlpl6qRk))&*z>h;9(gT+P+@O zQ{#;>9qp?$!^N1777gWewd>--_EMh_o=6o~xZ%%ZvM$9xe($1)e|v!h4u;FxThgDh z2>+!Gt5~)MFi9Hd=G`(O3WLhy`D742f=-s_aVF@Ij&ca! zacn#b1PVe<`AC$w97kVA<-I4tKbtRifnsc5ezHzoo4UrG(n#FfTlCRV312yw91P!2 zGa9Q=n5CQ+6jaPSA<#WkEKvNyZ%no<6xO%#QA0R*YiqB!zg_+sv`I-XS@?;|1rO+# zLU2w`d3~Ux-Yvp~glF#mV*hSW9d2z0+q7*>pv1rKNi4+6cK#C2Y|jhD&0D5S9py(c z)-Gj-%rDP*<0Jn3E%j&osz9YW?&W&Os_%Z^Q%+g__u&!EZ|+>Vc2)kk?4Q6f*(K4v z)m@`O8;s<`89JEv^=tb_jl4GLTT-Jzjwmu}@6*xd9py{O@w2qlj-!ReGTHsFo%M~3 zp+7Q)OME)0V?)5i;pfdt*E7&AhkRZZ2;LUaEv-!#7vP!}6nZl%6u!4tdoZtKCAl&w z)XAf@XC0LoTqM%3y5K)Wr%NT`IplREd!<^{*_-5I^-aE&fp{Axq^YH}fvVQo2`?b- z{=A>6bp*G{vX>g0YqlvUF595E$vehX$XsUMy*_9l;xWn)_%wC(7pWvsQeZt=>@0A6v#Pq`B^k}Sg}&{3Ta#-Y*0-H; zTStG&YYUyMGbXKmt6#px-AR`Ur^Rp->UoHgP$2&+V>3wPj$? zn~0en67<0+HoWH3H;eNH>2JNVEK!$qVq&Dv%wQ`i$|&&tFZ54muJ%aUC!3QVAxXxF z5vi_t9R&5mtuDzSkk;9oK41kH6f2G+Q%(!R3Ido|{V!N6JwoZ0OH1?PI*p~+SX%oG z<=IaYbJW>SQ)QVuLcgQp;imgj+1f>lof|KGXGr*{^|KsZ;75VS1=$}OBKe?vBCs>Y z^W`vMSjva}6ZG=k_80m>C&9p;-&auadQewfUc+ynZqI1b)O5$e?tiA>L8JM-KHeyYgWq*Y+ zeSuHo7veAXVWR0f5*rMm7Ifnp=@)D)dw~_`xYh;H~l@Rt)9C4s+4wVWgMvK++ z^rzNv>6)10g|aE`1EyV|3}iyy||kb_%b=! z((9CJ)t^w~<#G~Glze@Z7Y|nbqHxxA2H^vFs{hvo{nda{X>D)HIBdBTa!RL<#P?7U zt6d%w(`L(S#S|{F6Gvu=EjQ#gI(~nXv4LyS4Ea;f=pIrHT-wR36wl)0av@TsT5kqi z_l+=gkuC+aiL-W-6$@U8pbv;Mt|Y{h7J`W)tjx^JknV>;TDdbWj6hh*Mhg_6U~O2u znJ2-RV0zWCTP~AEl0#=v9;p>SdaBD`Q1~t@bZPhc9jnR5lq6)dxtpF;cGX*(V&hx) z-o%Gxb0mRY^;7E<;K2Su61EA6{Fr9$%ZKE%nz3Sol~mF+P2;iEnaeUTDFZ}6x>>*6 zDf+;(=pBc#$$I-OTQy91-RK2;*7Za$Eh&~9SDDrAhxe5nJHpfA&QVz9$IQxHZde*# z>hmNl??t|TxU%{{AZYHu%RjO+zY%Tko6sv4kJ1W}hFu@HqnMTu+_GYZ^Csq^vw6+& zZo`3#gHvH!zsm!cn!MZfrpG*`N=M?@q4qSkyTc{95D>deQ3<8V9?``qr zS!7^O#u!QFHCxJ-R$En>^}CHH?5K}rY&PTZb?Z{E0(xhMGrIL|>F_bf{_R%PYHlsPykA31b(9?GS7-ZV z^*wOk9*7BO$HWbGZtufQ)erQv_VI=73sifi)?pWK=ie5IqK>-oeSGI(XT%(_$v4W+ z2NM*s4>FOQ`CIyxvFo=+5mlb*@IRWemyOzlXBR(?ERlJZbLuTDH{Mns3o;%qu#aS@ zY1x=gzPU~e<`BA+sn#?Yq};J?57ZV?EUl@lk(?wh7Zah104x+K4t%yrm=b>)nHEYi-P#1M>TJzl~X7v}j4|cr-RO zYOuF3;8Q_+_1!D;)hkb*$+^j}s*I@LW04)5`}OCESKU75T`{O6T+hf2a`brGat2jO zppA0Trw(Xqk&IaTrm4ueO_xXI1OirRZPlqQbs)v4C;d~=e$)6cVBV0Ycdm!{d9kt*xF|If(A5!k+h7hq>C@K}(42xH<_ zhGaRp*)dR6Tj~m0R~ylJB-_}uB`=s9eKF= zZH2#cpVRr0)neJW9m5O|yTYzF!*rLBb`pFqpkBos`fll=Qs_e0%a~=Zk|iD-w`oc$ zy>s&uFq~$7i;X3}c;GPt51uCOAhYA%o&H+rf8(%!P-CM)_Mm@Y${kEp1FFw=dDft- z5IPI{PK6u?tTa-FkQ=WI({!gB#IYmdUYG%0;Y|UO)LUV*5pc*4t8NP9bzQ7D(eM<4l9BFE1DXsB1T<{`ZuxzBlL*eZ4v)6G_IWOo_cM!JobF;M zOewA*S_Jy7?WDgU^#QvO@x8jB@&)KS$K^{cI}e_FR&zujI0tWGY zB0+DmKs|A3eg&>H>?^ocer4Wy{Ebu5L^hW!zrKnPY;LUf6Z62b+Ms?A~1Xo;&9v{{_)T}4qC28)bKgtU#Ao$i92e!on-KB(%E`i_u$Qw#)# zUz49*pL!iuy~W>M!Vy9l7*>!^dv_8-qTdt~&S?R@w$pb07&te4R``335u&=%Sl(KK z2h}T$&{+_9fxU`vwuFi&nIlJo4jiuHTWxXA&w;Ujg9R*yA8U{$`W&ZM3+!L|vkl4p z>&YWV7A^Wq_4wfz0$z6!&f^R6%1*rU%(Jf2H3altyvIJjY|gxWhA#L`z(5QL{zIGr z(L9lS_Yz;#tboj+d=-SeUX=j^`}=~758D=Tfd?vMm!Pyh4n2Mux?UVx+(R7kJ2W?SikjPO z%1SK|vI^@(Wy2w=rJ*v=q3ZSZS7F>-R+no|wf($v<{rJ)n{f0AkXv>QMu;<$TTD2| zFQrcJ3^a8xS_Y2-B+-uVdk1C*Qp=J}*V_I*FAhH(b86e0(pz16(^nkzyBw2}&^KW1 z<)`G^?pN1rZ{hpFCFPFUI3>)%>ywoJ@EcI<`=A(XOh}&M3_j{!E*y*?i#I66L|H zNWJ`_4H!=#wX$$Vu~1fu)*!L^QpWz;@^0- z<}|LA(^O;cjZiyMX{|79eu}F0^^9g#?|@4vU^g|1-@Cpa?~!HN`R~i=tSa@)hcG+4 z-$X%|Xgk!x+i=Fw_Nu-O*G^YFXOrNgzB$|@?plq8sJ%DVfVL>oq&B>5eS{A}t63}a zMq5CE`u?6J$n|y?X~J$(sc+jQEb#C1>Am6i6MFqRPK{P3DWa3I!@~8L8JNI@?ox>KNE0g+;%UdJP&X`8*GOUY24tG+u82`|NdUfN? z_@#3Xqy&FF{P}2(c5iQkIaS0x)ttvAQ#_5D3!IzM+uO_T9(CUB;>|AFQTR?D@M@WQ zMA5O-eNf~9^&!K+4+Vi5Z6O`!?+par+x_s50I)@9KR1*@M5_$OoAae@-k56NpuI$g z9h7jU)r<`uP>f{5XU$KOq)I~bZr{Tq;pTUGLfZ>fE5q)_#`DWe z!tyLD{zli}-8!&t97pI20<5212@Z1;5ypN#4PsgMvkYM4#DayJW67U-ghvk9^;sd~^Xj)Ddh!HO)v#viRNtLU#B-p~?Am|J@PV$=3RoqiG z7Q`O_E^S7|V6T2ugI6BID?dLRHtDZ!X(68_SpL2BL2KaX@_@sUhw~XeSlj;$X3LL$ zEsQ?PjXwuQ`Xl0aq1tC4P%WJ}tnkyiRyDXa3U=$2${QG65L!8rSCIq^D8p=2Ku~|o z@tHF$P{cePSOLF}1R+!a=aKrP+!OZz*UP#ec4lT64sDhf_M1qhQ?a>E0MttYi&>4~``bAsv$|`D=zI z4x@7oNn-9Jp{E&M&vRK2h=CRYpGVGlFxnc*PPr5Z2B+mFV&i$!!U_x}$?o(3;8RHg z9Yg$tQSKnFKs>aC-BN{N!a3u>XTW_A0r~F{$1C5fgHULi@N58!a5a6<0hW3(93M#Q zAmHEnbQR>~{r{o1evj#e1Fq{){?6Jj()7;*+31I4v@QAz5C@7WilmAQ%Yp+&S%!1A1VLXdQ-R!?G1PRb%trR8NcsX(#ZUw~Mnrha4G z7U$)SJQi)6X{T0NGv|5TuK~O6hl0Ae#>i%?5lAB!V{+N}24->cXcSo#fzTzPz7J6L zI=E{Y4tpK>UPdKV3o+-7-&3m-A*?5I7t@ZF=ooqyRVA^X@VfTU{VGC5T|Gtrs|a^h zU|@3vPW|zM8){fR|E*8Ka==KF8L>vxwWXX5$Xdpj;t4=I|1L|(SBRmFZ) zh!5*@AOMtyWsq+^8M(xFQ$<(IQNlfsGU?#GbYs?{`!n0RnVn&%pv26%2CKjRr$*nB zB;he$iqJpdI;4;B4&+_3pO0*vB}u#h9IV{YSU$4GY-{2OZ?{YW!MihRF#B; zgyWdBwHj8x{|uU4m>NKMh{pfg#P|x;hy;zBhq24U}RFlJBzu^Sk5Q) zp3R+y-9nm2c&)I&pMqg$JZ-2u>wZTQha9yj*+SE6Z>HKJ_UadlpUv?`K2QZRXYkGM zBbl)mbkggi=>2+d-zNLNLnN^_>NBA6?4`0JdW0(oPxavFrc54a;&sT>qoT!{l@AY) zUtRB^?l^iKSFyl?`JBXuja5C+Km4l_Cfg^Kk+Mu~U*@7rsAC&rbWcr)=r^X*ElVH=Xov zS%L|d82b>YK%*tmN?E1*D9LB-)b|PPbqj?bO#nxJU&NSqU!wZq;Phd;Z^Rm{PiyN> zxu*XDzBq&y%M@y3W(Ya9gv<=sOcVXv9Qx@z#UcM@-7w5<4m=`aZgj6=QdL#+r=U>O ze#?rrQ2SQ7RtU;Q3R22e-F~!F9Mw`5aqoBQz-eGa&89uMy0ty91=wpztam+>$nTC^ zD?oOH%^~Vq!rCPDFwT)a+q0d2t;^}@Wf5Q0%sttU+gIVf3dq1HcAS`-?$;88sJn+v zQIs`DRl%yJ-@nU?HC60{1T!?i7i&A$<1;PHO}nhBuoiHr zC;3+g#rBT*Jyx*bX>GiXR5ss`wl}X)QMq{d)x3+)pzeSo4+V6sJ9UO1!zA)(#CmswOk}R{p{f9-|L%|bYQWxnsg0x6JwD|3niazehB`jlz`jCq z<&kH*hSQbJ2#!~yj{}YdE@~algsoBZZwOrSNit`b#XS9LT}y2z9!H&N4c=QUAY10hbq?udEvNJne8Uh)s0tz>~DL!M+EpWsF9*0_3A}Frk zu=@I!Zofd%W(*Wcc+UChUq^FEz&tKvkV>-jfww>iCvxi{sXCp?24+6Q9XGaRJr#{z zhY+k1MHl}Z2f(c0LQ^Bq@O*rqzhr^b7?(!1zyu zNol3dFhzAN@@?Zz#Id@+{V~G#WP&DlTliCE0T&XLvuJxck0G=imCTvC|E>JS7cuAE zYttX%nc;KU6di>AaaNY6dfEt4R(}22TXFfsGQ{<~n>&MmX1f%SoTVdgefv;iWQTDA;7|{P!WT!t{IW5{#*|}O}zf}e_DX|W{N0w-5(U5%dmIVKBrD7TP~=% zAVC%xxsttI26B)%BAf8}=on}kx`vQ4)pOeHOGwEIVnz%n02Lq#;9`3TD$F7Wp+Avh%9K78 zhCmIUgN0$gz)+A_DM1{z{}=Dfx_*%(N&?onLZ$~WeT9yW%j_o*j~x5WlFKtI>bz7x zN`Vm3nP~bH)3#?Ovhl{aGu@l*eL6ZgkdPHhG=Zh7n6?ER^lxn3qlcx-TZ`MFN^QK; z_D-ShB_Y2gUn1wu5bW|B-HQUoWP>s4VoQ~ISAM*wK8m;4ZL~eNdC8Ca7?lbEukN

A?JRB+Wr0=n4d;195UJj~0CYB!X=et9H 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

|z^{O;%Z0F7MB^lpJT& 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�EL4qp}E2<6Vz{S<8a`7E|leQg_`gN##RwbKi#L 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≪}~OAlC<95=Q+$4pu;Gn?r8=w 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 P z1~fN)%GPMEFSKRWE@zXyv}?^M+iA~|7jmrL>mwIyAi_c#g!o&OCeT}(W=A8Y8i%Gv z`|6r5whFh{N5vxVOr{^PP}WLE+b@4z zey6YJ+z@t$+^lk!XK$?TeEf+YlpGSYUt4>jMKSKxRBTueYCh2$z`VKl0wh%g!-GDJEd zkKY>7>=@b_@{ne`EW5_$EZb2NlDq?j>j$O|ptz+SBdx%_7ez-ez;RD)!a{80M>=R6 zbitl$3)D5b^0nz2;QX>IY3nX$G{Lg=%1ZWJa_s6BIX20T@yW?qT;Pm#zWy=d)*Zgh zF;iUW#JiiuqQLbX<;~9@4J*{!h~pC9a12fIPXxcsUCvN>)i^?|c1HZY?AAw;*u}c@ zUem7m{kt&+Y7S~r%AA_2A!p*aLXmFB88+iTceenz3J>>DbY)3B;3`7_^(x%18|4{m zUmtu~vhCgV{QhcvKvXCB$sWR89MSMuNdw2R@XGz&RbjT~fLc@9(xDv}9heKY zX<&oiDt1%_NdxHV(nxIP&dI9Xi{el}NEdo3%_|UjyFyn4-q07TJ7C~;DSz3@-2C)B zGEz5Z@5p}(h-}PRI$3$iS*he&U4mxQ{#&TrPO$%AFO<^NtG_$OnnWn_^k6AYtJqH; ztm+oONxz{K!+1)GLD_LM(C0|%A1Cb0c{5^>J^4;;P&~*)&x6*|tbz~bpp5<_*cMe| zxIxZ+ORS?;3P)@~>3%jF%gPE;~o(IE#u zdU@TqLuRcihQyaN7@eLQwGx42nwu1D!|)F%V`y&_*pZ~2rE~c54jVx5_?79_Qj4YO zt%PgF+HpJX@j%If%pUCG6>KFE1P}8OLUwv$V&dS7`V}I`3=cBwfVTGF`*lY3O@;#@#16!8Zkgw_Ali>W{k?eez;B5{?PTOzuA=r3? z!c72YqPVij$@v9>+6eDZJN`-o7d?q9Jvbf3yx!`!Xg(hGP6?-3v;@65ZqDUXoeP)@ z2)}g4`7!i3-mMbZ8|db_{!)2*qJkl<2T|u($nU7qz4iYu(fX5M zZT$1Kq3lF8_WzfRz5bni{rQ?CA`%|{J%s$p#QvmUnZN%M@%z{RPdfMK_rZ7l{zVaQ z|4$kxb@Wl!@Q(i{*@NFN`Pcvb{HBMiCol6Z`+9;4c#Y!=lm*AAHB@sbIDTev^N*G^ zIPR1H1ue&vmLQVrn}xAfCc)H`oxXrE=R;MsNqJ&BB|*-P=pL&OqxHY|dh>WF_y2wT zo-vkb(HIgZW$2y>r9w%GhN!ubB%>NFl13Vn<%DXIu~bG*joY3jb*9CXEHNz-N~EL? zStm<$+H93VseGSvI-l?7{r)~4zu#XT56hV4zMrq>^SZ9*b@}(A#6-8^@)j85C*BTm z{9+<4^J_;L%xG66ua|XTywYOGHI+RVI^|cxg-PPpLGc zDjW@lSkGjV*=_|m07;D!ip?5#cPe7bmwU2D>*0=IHCDE2^)!MT8xtz(FhXd1U1uYgA-}Cyf)Hu*aVT@t4G6bJhT`H7L;o3h zF*Agyyk6dasi6DoVBmAZ6bS@5UxX-hZ$$)>DCM^b89%dn?p*sg*oeI zI}s@~id-Vp1F|7mB4x-nu}QU?*er@3d~90l=oNoJLky1t>Vew=x$TaE?Y-y9u9%3V zHM<4PhBV{(m`qd2L;0_I1P#8-0j1Hx%C)_vAdiS@BS1Yl;Z(m<_>fXrAA4Ck#4T)j z?_!7PoFFk9AqY|sp2tcz)}qMS{|HLp*{Vg6XfPa#gHr-j|9B4b1B=5O+`03JCPs7Z zMQFOc-d^5#V7D!QL%@kw_z}o~Tm(b31LhcdgWllr?ovU;WSgx4-Mj1dL|w;dDhh7ewrjp>?@twRt`GqZ4PzXnq`0B=I3)JiiB z2{?KF^OuerY*!<5z)AXW>Id{MOO}(UQvoM=u+`)sx-EPX(^%HpA-qGl;IuH$X2m+01Y?yvhtbN6?>U$yA}DQdr} z+4#Q`<&$5P2r8ZeCkuaCJG~OV{ySOz!pDw`9eIIlyB7Ydm?|1M1bR2&o4)_8snGcS z4|JyZ&0qCU@n{NM?d+F-05wIk2Y>PZ)V`g4{|vENKgYYjchO{5;x9oH6wH3L{ilVez zaL^XC-fc0|xOcsvqow2UKnBcn6K8)6_?d{_4|TNMU5<%5H(fwi5#9~~?j|Nx(qj1t z$`33Jq2Xee-nm%mBeL^Q;!?qhEha>op9_TJ7MXW>5O7E}mkjddI&JESNfH!oXX}H^|QaDy1<`~kTi*4MWOcR%S{;W#Za#js* zjUG?*U6qsQQ0%9-IRzclYvE`S7*#+Guzws*v3%+ZMLF*J*ta&y!IhT@w%Qq#C5bfA z$C~s6YaYMTlx#T9STbO6YuFme?~vt}DG=}A*~5o2FVKxetoa5yI*G65!f*&titP8g zL^Skpd03p97$N9Q$>lqgzTNMRs$;B(^?~##J7Sym7F?5sAz)FTAJKi~kqz()PWB<( zalgoK`bll`W+I>kAQYCjydRRj-=EF>Ems1t9n~V$*BUj%d8SYAdbR_oLV3U+PK%Xx zjBP(5ZM)~?%0Bt3UOcWE?CwB=nDZ3S9|{d>HbEOcEyg1VCSmALkQs&@s9AKk4F`X0gPdM1c=6=}<&|ie?>p_zJ~hq=?^?q*;v=!Qp=p3h*WA9_uA6 z9ke21LN+W2cLvPm1Ymf`We#-q!fI5uxw#Fez9LDaRM_kk0YVC-!OYx&yR4vHCC^!@sR~1jF)bMakpAyoPnfk>q&8Lnkk#?kcmT3vuHPURH> zogQjS&ojZ-9zNVh)F{4;a$uQD@p#KDh>)WLs}Dd-D> zie0v`fz*{AQPW7GWoTYG+7Uh=X#Q4KFvGOv1$q$LA}ZM5+J?4GwLp!(Zy(b z2g2DeO;wNFXgO295lydFC#wXW=SQt&Fo*ldbhn5qRD=)|(IfjW_-_KFF{9-Nzqd~}Wi5uZfLBEH@K^8~EB z0iqAN%AZ7+x+hyF-@ln03DksmU^w}PQa#v%iOK2S11M*YUvurxZ=5SAF+G@y^YXza zRf;==T!aCQ?~d}7pqX~UkhWdbe^_ktaCN8e;I$uDgG=>g&kY4-7rG_h48pUENGC`z ze%%04YsbMp&NBFx6Y=J78F;G0fajeF<1SSpp96MB|HYP8y# za(>-UG;~M!pDHh?yPjh)m#kjjysB{sCr1fh;j5hTNNx%nw(kjc~p z0#w4CoU#7FsHXly6+KVN=&7QFd!SkPnr>r3me z?;b7v=i!j=*CRi9=@dHj!q#B>A~YC?9F|-Bba(d}_m^t|lmMX}XVS(U8ubm0gRvMu znL|!{>{6q#+yGua{x*YsrL5w}S91$lFok|=-K7k0*@VwGWI5tVH}Lm5k0RJ@L7uvW zlF%2h?B|_qx@bN?xmmh^DyW>7bP3pYM01NYet(+{O7NJeSDhOqMg|nuT?nyocp_~O zkEIJS6sA}>)SGv4kvrYPrKvF2K1rC9$diMLo^xzd4e)NM4)N91?B?NexGR^qCu_*3 z0eb%N@~gQRN-yuWjt`c?7)wG$e_vlTGG;Ssg+})L}}nmRa0=eQ-m8(o8b;w z4yDv@>5jBN6kPw{Rw*TH)tW2^A%cHU!k47$<}1oZQ>R?^q@MHG5|ex7k1FPziH05u z%+m38R59)LM93{59X2-cNtdLC@8)8JXg!#fBeteRaI8Lf>j0b&Z;IR!A=WCHlQ#e% zcerAV4hIfmpaadT2xCV?L?$_ykjePT!}phwnT;^WqjO@mNv*Wxo1UMu!B|sB&*tW# z;8297?Hdm4HB|mfRt=h~SVqO| zT(GJ;z@b1U&nLJgClx_YUk~^!&Q=C*{0s4Xs;W7#!O*Xueup98P)^6>&W6ymDAl18 zpE=G<^=cTRqSsKZcreIf?vRWA%wrl5l zBJHH$^h4!<>Pu^_X{X2&u@S`1`s3_j|aNfN$Y&VTV<q{O-VOq6oY;*l--s8z*2vK6S1ecX3r{ zEP`Q~AU_4-?!}M@4QS5c#WU+hS@Z`rlk_S^hJzMC9to}}dQh97wpo?`Q|NZS{8iI_ zmA3DPe^sjgDr!OhRqrb9{VHw9zm@LnufO5^zA|4Kl*q0fY7a%NJ9HSWuiJ z9r20vNL+#aHsi9%6Bx~Om6qJ=sg#1k%|n2QOSZ$+KR2MS2lO1Vq(U@{dwf2kK$owW zkTLnVfH=Y?Uc z4i(x5O0;AU1tre>Ji2=y4Y4DtV_08aX^$Rrp0wk3ck)HSc1uO*>wSE%nti6o1F-*` zh@CvR+`Om`aw~Q|+G*~a$&kuV%jITI&=i)Q3$ID z;MLi+PZ!ceI?MU9g+p-lvxt<0C)B#3MNTPQf3hzae&9#;1GAvuBHdouZf9excmSZ# zHG24gJ9#~{xHugGhOkS+HMj8oW~!Bdum-xch;C=KWXWYI(c3zz=|YMFvhtcE?zRT&5f21|1oAZp<(yF%b&PL%w6;+<4!y z9EsH76rX|+I#2^BKQlGwAz%`O#;gHuuVi0$_*|l(WFMC*-oksL^RQkk6rs4kI*_Es zEVQ}eiP>mMj1Vl#YKK&+Ec6}QpLs#Z3WASr6rucWg%y1;F!_=&cwXK1T-=g64p6DK znA1Hal4x>t=MS@^jE}dh>tNhR2y=od&D_x(KVrd2+ zS-;ID*qTQMw(>GFs=w#Pva@udQ>U}+4S{-WlyZ`^0l7v*bB8k&ql+OKF&0R*T@AS0 zya7VGVxquU_Qyk)s7EQmuepnU@3s5n(hNs38bu7)z&40un%HRZNBo3XIG_w-!LSvd zt&(_fAz3lnM73R(R-fW|m5*^U`8X3PsXBP&+qa*i_tW%!pc(w}jeW@sLvvMB{n)xR zTNFn8w8t|@;-eaaX zBg)9_RTtbWsh$B8eQI*=L6uL9d%D9nYP=P0^xJ-k^`2tlV=@h4#CiB<<%DZgn<*q9{H$d%OyVF~S)M-uRt@J7H?$98;lynJViC3z4r zGGwVRn;%#ra{8g;T6IfQ5$rwUdXJ_?q^zD8oBa9|iqd~{Zw>!h=!Sp&Xy?;ko!x(z zpZ}^?|F&ZA8-#6vGoY5use~TzS4sTuTKI37{8jtDPyT=Z^9{fL!M|PQzt8JO)$k8> zVTSQcp;}(h+Zt=Y zWrq--Beb-}`)j-%b|FRP)aBo6h zb{URcO3bp#5*5ym(ocH^2oa$_{5Au?$4BjSqjG_ji zNXU|N|wh>9VTG|6!XgTmq$YhIC*Y9o<>LKD6 zW7|=uY3fs4#9GUs{TrM(MPtRqqVchb=La1byPaqRF%roI#zEF9t2y3B0*xsV$bcY9 znzW3-dQ_!i9Fk=c8ou3A561$MKBo&^lX`qlOVDZRynK+8v6~eqZjN-%Y;{T&&OG48 zYd5>iJhl)tbz@?Z8qLfZBRLh%K^&;=#M|rezRQ+AQ1oWo(g>@K4uI}w_dLcT4n$GJ zK18h&T_9vRs%OoZm__+?Qi~S5Mt;TNVj(Q~rjpuc_5$tVr^cVK7uo0}nPU~$@1EDvvk z9SF%_H6qm(R%7FK*h73tlY1ge;LyguHU=ICh4}zS7;Ak$`zSLFMZT_}>SnowaP2)) z9HM~VZmvhR@Cb#wV;$ILjLqRnU6rpK}E$(A4Lh(NuGAH8h0;vH=VoY9d~V_sCK!#60td7|J@TWTsDEubmj6 zO0-7xC=<{342MnAVW34eAXj{?>;4Y;I(l@|J!8?$N_0`Y0&VtNdkIAtDi3@5C;Dfs z{*I{9gwo<{9l-SnEZ2q4!f>e}h~=7zAnc{e;VOUT4|9nvEeHYqC>}e5Wb6Ytq_!{v zq@H2y!3lL^5du(5yDO0iEDq%*a@hnzKg1RYyF&pOFe+yC|w07eSzp9&h&tU;_&}JC9c0<+nS9AE^^{PB4{QG*CZ6{a% z$G=jPNEmOee_n(~g&G@v9GBv+89Q%- z_VhgBlEv(;{}99NUYvGv5JlIZv|Y0sIL>f_KwzD!*=}5Oe$@3AA9JCf=S(&eVeQ)h zifrUS_{J)fv|4#B>s}NHg;`FIZkE9S1hNxYf0Y7a49rEf<%|m`!r}(R+OY|0AFCcl zS&3cjeYlHw&O{;Vx^@6DC z&XPIiSfVUR{9RU25%J@Seq^8i^F8vCh>6i8Tdg|p4Qo3BG?#t!&)q^4o55(xlASQ1;FeM=ED>RFnIV9l8`EU- zQ>#h!AcYsH#a_-*47epHBuu%2O~pM-1+3%a84!(kyX-QW_IM8$XM(Lt!`~tA_UDZH zyMz7-#0h62YA;Ehe5|WUC-fK1VrX7c{qCKqh0RmNbpz$x)BIHKS`&r@(Rpd`*NJ_w zj=r^Y)qQuOip-9pZ_jwC`l>o6s z$j@XX)ttnV@KzJ|jG~BJ+dyNQQ4L5DD|(YW?eVe5@e`2?eY{G;C*`hHkHOsiS_USNV=6%#LLeypp;2*@tF*h#H#ev202Y^z za-3o7%b*$Hp1Qf1`tgyO{P*Oc+%#LovXLq9hg`|76R$UU1jNmuv3(_`eZ3V8(AiRdI$~;FuO3I z&&dEe7|i$yC}IE?Cm4E1wV`y-Hv0NNS!j24FZEVpop(Qt9Z_>&Y^<|L&SEZ{vSQkK zicEvzod;apx2DPOZ^i|YSAKzQ;rCZh)>dq11E}h1Pkm?y3<9kBSBX%CUW8?S56QJ* zE7Q(`byK$D9tQ{(S}ZOkdG|B{$^^j0XgSZ+P!$7#38Bp*S7r!?jffhFa?jGIi1php zfZAOR0!C19@ZVBA{lxsZAX`chdTa}5Gu`1dg-g^LdNQB`se1E^N*`Hb$TYO{5`0>) zi~+Qz&Wsu3;vOd0C;$^)m~1AbtRfUnuT?{$+~K!C1K~v_Bm(v(k&Jqz48m-OVewAU zP1VXOYQeM&iS%~a7BmVD2Venl1op}b7I`(_hH9wbE-aaHgv+5aQz+n{Q>1-2;>WvM z{i8?5K$`lqJF5 zY0(Q`Rt8Sobs`aTin1j}pbO}DUAI4eH>lw&AD)u}H#OvXo_#+k+8aCP_d4X3%Q}1m z&WhH_MAaKOJT9F5-qrx@PD7$rPhFw722i=hZs1laLVkRho^yN*LS%P&(Gzj*swNO4 zpb~_BNQIOIXcaPJZM+lFf$D1WCq9R&s)ChBjc~P^-Cl5Cv6aoD2G8qh7MdDAY+IRF zY`W2%8l6MXft`3cn{FZm2I6KlbN>Hm0YaAxt5>mDJuHAndHmrB)x=FH2m{a;Qg2CF ziP$Y+UNBr>ct9zap=Jjgi4D_)3j7JU7L@+C@N)us7KFJ87_3D{A<})^0{~>nfIMP% zZil`CgPWB771mFii=W)D_}UtoP*DTz5$V3#>PnDWXimKcXdMmNXdk_S_&ZFWbz;Lk z07HQYag?=y3?6K>V8uN!uTITaK*AqIEjgLQ`QVa=fR6#`1S*tBn{9j%9pgtbhf5Fk zP}J-6;t~J=Is$qg#w_DTCKWXZrum}x`IWQl^*+|eSpuisGq-b8zsh=jK zox(bH@GL5~cvJJZD*A@>JifdmNvEnbCds%a zEt-{5IXBg3ApH-j+8HCI(QP1BMO3tvdp7)RI{R|?NB%Dat9v?tP)8L!q9kC0OYuXI zoe@BbioOo;Vbi)WJmOn1?21FT3nw$w3C@dwM3ebgkUdIZn*Vg;DfP^_zlPipwR*vN z_g%e+tG)KFGHF0TskzEKWQh-r*Su66-*UL@@oXy$$~_<=L&x^;5nwfg-tWgQgdCx5Wn0W6UwU^A z=*bN%m0iZW^~`&@iryAE_-GfDG&z7kAU%Wv6f>%&Me2QOuD;PdOG#KN%TPcKb!g8` z9`(^G7AQsx)M$P9%HY!u!Yi`!3e3r>Z}Q9I$pKc=5p=rry=MVc74c`BAz%RV|)+V;$$z zEZuYpa~=?IwCudn_t5vJEnfXuFx-`S_xUl^MDJcD?u*FxgKM{EQL@hNQ*$ z8<4{tWFf#};(ZqhZtmdLiGYo@2vsN93H!8{2I1#}49T#jfrZs4$47n+oZPM$n`jWk z3kTyZ&nF2^u{t^{KKO2cmIkyLsU)&@coOuOqX_++pg>AOgPlN`%a|`mwixYW}%Y^kV4->H8G+4df^Bt&JXd?JhXMDt zbbw{vIEt%1=X91`Zd2%o;KW~I0eX#bCME*FUsyy~I8#V*WE4&JmM;R3j>v3uNg@F` z4N>Jc_>ZF!)>lHKMr(%6NEW(_TvN?YhmmR2yXaB6|!lVb>%gc@u;dE%WO z0_QMjVDh2EPxN%N?bg z|IAqml&E`pmm3!q3Xw@zfVBD;>#O5I+2EopstE2dz z@N~$w{-$y!v_$Iab(FC59zWC(vq*(|TWOB8YXU?GRE^`Tr$c#39w2jk;?gWFy*T?4 zR6>ACaSYKh+W5Tw>f@HqDJmL9uzxHk7%|=rDO6tYfde=UFCHYU5}+tR0!Bp)EL;~F zlWi0KQI|=}7N&l_ZlU zL?;eZPhaWcVlGn1Uk5cF0-pROYAN#-3edr?-pFN|D&oB4?$ICLU>mfwmt)s z&tD!DS7S5)&ZU)VNr*Q&S2%fp?u&tdw2OYbY$JzCyQD)kVVMsTC=*q};J7`^MEq1+ zV!)c{pg$2g#mk3k?V0Savhj5QiTcxDF6y7?^6P9pRGh#kW6rS!$5pyn;+8x-aUz3G$M^fyPtMKl#MY6l(#8nd&^8= z{R*hQDI2LLeQ{Q*&H)Hmd($-=IeGN-l9cK&FCjl*B&}j%@vQRM7`)k(x-hhK`jn+l z&eP}nPtD~&yTAV=xcJm^Xnt!?LqNUE0+xktUYmtrqaA`iGmByuVjH9~6G+19Kc07$ z#onxDtT+|AJxyYZkQ{Hf5Unie^*2_b&SwAue>!sK+GEQ)nIKT#*`4bqBDJ-#Yup51r>KkJS zB<&g9@>`~LfOYS;wx9$eXO3j)Pw@A4;)OTcU5i`J=-x^3fEP%ku!65gz;luj1DVbx z;-#%Sc!|iF!Z|{Y>%DtnnV@k#P$vkKkLMWe<&Hog3AF=TxIFQ>XK$Am9IQB@4PL4$ zE`Q-0^EUPsd=HI6xofrKQGV;ni)JY!=)mc5=Yu$Cb+Gf6|7KuLoW+%kgX=h4LJ{kO;lnsHLLQrDHXJ&Jp6){tL*xvGzu$ zWf($CqW!Jpa7IQ13e1UGS-)`8Hb{jX&fl{M)(}ZP8>#6;g%flVET7za-k?`&W`Qbq zjdr1g-hyRhW3j#6>lRAD$=Sv{u3E05V%4E=ns9P-aX#6XSeyr|@#s)_x#w>fMo14t zLe^kmy}RlDyxC|BRS-zttES1?XerwNjL!u}?f6$b%ROBkC~Cc?(NZY03p{u-;;#5X z;Nzgku$occPMI=z;EFvp!A27?P!@W)-j^GR46>uY9rTU^&6?BPU55phVn+@iBYiGcrQGk$ZTl=`)FFP-cDo6^al_`~^Al zC)+2-ANN@yT|y@(?}GAhYq%OyU)6ta3H*`0`e)y2S@~E?h!^?I%7XI0oVo;=X8<gNN-h9p`SOMJ9-zK<`lK#r-RQV;oTUWeg?V%%gcSw-*Ku5BS-X50U zcY6_ja6z{(m^fR)UFf3FC{p>#UECT^`R+LuO5mN^3ai6#1e@3YzeBr?C7o51Htvg_+ER`1Dg+2+zinGDg6madbL6^^M0_UvJzP`Tx*2O&2 zm?ZpW>GYpxrciEZ%Mg|91ShIdV{+kU{63HCFsL4=?6!Ewc&;hkkRHq{Yccuy<;%*} z_oVZ68AZu=+Zng~1anwP{$Mm+hgyVQ1K|X`bS8FZJy9nZlGG z(622jfLjy%v*2M%X6i;exp)Sag{(b1IV>gN#CdLCgI9Q~$?`qo4oO|1tgZ z&dIdZ)~Du)^3bG2(;&Zqq&wI8txka~XKy$1^fBoK=82Unq`d+gk)`+eLIi-|4$PV=|Qyb!!&Xj-77R|g86 z%JIvg$lj^6%c%AZS>4spl1@QEDK4&lvd%unvIT833S? zy??V6cXSEhP*xl=0N9WfhQ{CE%;UD5|J??2;|&wJ=KQ+R5`=IF~o0b^0ZtBxi2d|%flU1xN>}<&t90i>0B6pgbcse zR_fS~xkY0oW;%^wa$h6!%WaauU_Fd%X|VZIqdAgFSv_W3U1Acj^EzLN)%*9hrqmnV zKi*7g=0@WIzBsMDHaPhv-K-lYroRhL_myW8f)3JW0b5Tfq5GFj2XcgP2MUZez#k+=vF~r%ynNpeH7HNFr%UeXg?y~f0B`#Co&BP)2 zVAfW|Iw^rKBqmke@25QrJ0lOiYH2F&LclUk1IYt_`*fau?Z=KZW5~NBrotZS3e8Sr z%Jq49e3y&(8OYY-@P0!o##AGZ>;HJWE>h{o@`@k*e8L$L$gJvkGDz2j(|Ki7+j%fl z6ynKu#`Y|h{|<~f0WHdY?kPf_2wkt$>z%kjzgE6jh$C7`THE3Kb-02U=ZTAsod-p(Yx>43mKv0rZS!Ry_5vM_r9!WIg94Zx>tSl0=0TG&wV(Q3EMm3~_v{;c9j3b+MaTD^{QM{``MI_*FT;R>D3T{A zdc0%E?aLTCXv5#py7_Afgd@30=;-#=(iZ$c`D?4qa|8Hkg`ms6vM_2*m!N-3Is%Tr z-lID#BfpkSKC+#^#=WLXP}drYnN;}z93vPmbukg;Yokrny$duzH+m4&DE&RZuT79? znBf5p)xo&l#{S<=mfHNmL?YUpz8x+@vr<@yyN3WAE6jn^ zQ0RNX7gh!f6|X|K<4$nPAkH0v{wH;xA(g^iZgD+z;<${Y@^?NBe92~GO^_n6TugGJ zGQqDANA{jn#pENxhxUz-MDG@bU*&^kk+4$G++t$cx9;?#I0 zIYp;KOGK<_)ust8Q8^J-qEI)SKi1W6l?ujmbt9{GP8ha_ab5l--;%6C*WdT5s$F_x zN$>|@dPeAWzFv(Ea5?!M8(G{mGEMkhwx%#|A`Q^(`w%%2Ys!f5By|rCnX16N( zy{9B4OHvI(*2<>TmU@Vj$ zh55c64bvVF`Rk!n)0S%?Q{{rd$26`A$eH*G*M3D8Y4Q6t&A0VPtlD!eAxbj(qAJ@t zVXiDhg*{KSp3SbyP^>_dyh!z(3%>9-$)sn;K>+F$lJllsTz@}|8mAy}aANt(KS*jM zC?xx=k9m1HMh?%2JXX8-=)`h_1Wyz>_|a=>$fB2=%bU!MmNmmNdS&GiL3LOQ-$ta*648qmnk6W zVk)O5FSTG|05qvS16Al_^bTm$tN_v=VkNoFEk}4$KiuAd7-_f|nvwVSn$~d^ka=X- z3}f2p<%4^hY(?60!(x48+AaF<|!d=k?4jpXyor?A&`@IyzkK z&EKxS329Gq7d|~P78)M2%}dbf(F<;|N=S`9`Jsa+d#3Mo_cHyaEr-T1@p&qGlv(`X z4__*_{$>^og1fm-6X5Iu-xd^{qG6>g^#CNVg4iI};w2O<)jC;IRzEGnp|_p^vKzSU zfJdjVP{fylSv!gH7KU_z>C92KEL1MKR zy>xHcbu1f33pwC+e0oZHwQw-wTytI5#P?BoyIiX>j3vu{ZPoB%G*vMd373oZhW|d# z_(RKyatI0mJ9Trf9gr9mV4M2m_M#UK+R*PXAOW5h>U=L1h2E*XOK>B%`NRY2#0ZC% z!h{+dXlREa#kHOyR{%*f9L%3(Lrj9&K(h)W8rDE=jkP(29La*9Huu;2#s_b7-`!Cl z?#x6HTNGru)aBUC3*H@vvrYF$v^|;&iJ}|s(+0p$OK%6#;X023&pirLGs3l#8P{7n zEL`aG4f6KDT(}BoAw)n(*QF9o%ehLluM?5u3s(JnxBBa1ya$eHWT5=%h!*GuXr=4z zH=^!v<;nTwZObW!?WwPF($GJ5+EyIN>K-4j8(2V29y*wf;Ntp(Q!x+fwIL*(k{3BT zKk^%|;^XgyOpS(9PqH8Gvwser&MkknoUphNac%cSenVfnC1!UXG=JuS3lxnU5SI65 zBcEVGfDJbe3Nh)KzI9+;X_!HZs=jMSg}kc35?IH8Tye0BkGcp4r8;J}p5gy^og8yu zyyWNCGvH&;u3RP$`)df;G2N)-Gs1;c(9CDFHT>})IaZS0E;#!p!_!g!&7lT3H1N@` zJMHjb^|xAQ?K(yju*7;v;JLx0Ca-U&Tgc#$j0D{mAO zZ1BDN_4RyH2XzzwVdtx%;uqKXvd#xZr-p9%AL81c(yUA=KeDa$St;5^~9{9fA$^&!2zR1}gjS z-?m~-vJ{e*&>&tA7$-r{-Lny>?BJ1OjQF4QqMNBXyQA?h)D)o=DF@20?asHwA>GdC zkA=C*B?uHsIN&nMTkOw(5&-8%b)`p_*d$SxYg6e@a;9MFkWK&kzVi;=V7*IFCPCLD zWXxlsKL9ChLrQfp)?f_@5=&E-`o7ArjuI5=karz;hh9bn07(@^0B~UL%+07;4_o{UfM9&`>q?5&Q)$nDRfm9)Gzm($_itCgL}(0SCe44?z_I8pevJovRD@1}5)Ifmxdg(wk(CxD;ErW4q`3)! z_#;ugP5mxSuY3CRDeSet!xJIi8n0{HA3QZW+P5iluEm<(wIU`iqgWFRq_MfE^1`7* zqN#??kbmX`pyNhQyWG}L)6AP2dtJ~c329SuX}ZZ(sMfKHnswC0%R2>-LRg&tF!wym z@&Y)JgGS1Q$o#Y{bH-=>A&o33-HY6k1J7iPtP(TUScA{r-UYx%#)0x+z0ch!tdU-Z7p&` z)m)}7)$IWqa_ z(!uY&;YUwpUN98BD!>0>gw%BFcERx7iIAMyuTKi1 zi19U}%ho&#%dAU@KQ=wod~5g7iLYP({`UR0k^9aaJ7EGG>3QN2o;kf7@jC)L-qZpC&>9 zBXV3Yds+g02|?JKQ`G6{4Moh?4Hk7@ zA2-Z>l4_Vq-e)a5BK6l(L2r?VaS`6wyRh3=lf?qf9#kvm$ygd!8fZN1+yx>^dC>1E?oV! zFLJEE;_L4tG1~j5+c|AMURm+=&x%S#Up|6f>=aYG?Cp=tkYr1H$`-AVzlOvIlBOkAy zu_wekt(>!wgsz`bDtTNlUf2j-EL_FOklfV5$vArS>*LU@)nDtn;pJIh&y3N|ATi~D zb0&ZP{ymw+!&OMIA0Dh{RISP~c*m!<*Ok!8LdT7QsD~s{2k|Y#@!)TA|6m^B*^uN3 zXWiC;p0yX1_surePg+{E{Qz|pK0WRjyR5(4$A6NN@`!0 z`!U{pEgCx>1Pc_rQW71{MGJmd2GB3~7X^sV7CaqU1xOMc7@4x@ z4>6Xez87Gn4M63SzWei!wO_xpL!iIoT^#Wsz$c6g+OkZ-vt+l8xy$1)hdnj5fB8N| z3b9+qE-?I|Ifvwdy_)3)mmk{5&)@72GYKL2rDH0zL)`f(9!sYqfGuwvs38LlRJO%s1}e9CwV|bVGxBgrD%HY3@TRAQqL`F zNvsC*xhQac$tzzDkj#e|m}^QQB8s{d934I7&=3xl^KTHCA>4rZMcJ_)ApL@$zfcFV z;9!!UiXjqJ$9g}z0}!R9mnAL>Wj7(TjCPrM=SxjyisaY@7oiMXWDv5VpQ=OkyN`~1 z>7S29VW0Poz-Zm~RtbUB5U4`8#*`DarrJJgNcj6A1h<#_6Tmh)w^~O0SZD+LO}KczecdG*iR#e_!TzN%1CTco%RfFs8vl)M!xGt`f$5m?^d(6Bxb zPA>nG3k`3_Mq^oOlOe`n)4FbA|`e*}boZiF+1iqm1@ zZ1+Ur?mZ425scgU;}ek|pmQvX{Cq=x+~yT*R%$OlUq%VEnAlcZ{|q+NnXm*xfbOFz zKKXgr>yGY-8wovLi*~lctqoQQLA#L>$9+bfXIoEBOnp?)>StXLG1y3a;^?gczA$ zZ!rnxWjfIE2VQ0}eSM?@rlM5&nKLSYhA=bFKlsx@-wsZyE0g> zH8hHn5{u5Icf2>V$QCbzEyhY9lOY!i19>S4i@HVN&nN@p4SbdPnDQRNXNKtX*BSLy zPafZxnmR`TJdOOyW)!wB#z18RD9m~};%l3@GzYKr#+a_4 z5`c$Ywo)@hH(S|={r6dsBV$1m z;ge4Sorz1XGg+P~{7PSF4S9?=4I7`x4}NvMHQ+h38byCkB30%Nq9lhYI)NL}KPYjV zYO8!(Yl8g!2`yfT{hd0OaMU-krjlU_gsY`R#$Bc83ayfTl;qSgE`Gl-&~g} z#0~RifyL0`?suQy4MY*^_Z^+JeQjUpwiQ3}&mIyC)xgd{)I9&)5Q65{*%_4`?hfcx z<~a#k=IjF_Y*86IBFB%-Uswc2nV+v|rtJNVKsmtzrSKek-0yT>+cL`Cm^pYD$|(BN zU3{`~`|Ni^C_>eApnh~4TqFdiW)=wU$YE)c>ZX$)jM}-CJ12e?$mN}3Ebv?2_Tooj zb}Y2&Fkz~=v3ID#r(Nd79)+&X9IOIXuv16~_98&(?GSp?ieguPjVYQXKUmvIHzq$+ zuDn*3iBjZXFp|w;-9&4aQxR0@_y@x+AZ{hGt`OR|b))rn^iFrerxs?Tj)L!2NgBFH z1nN&0`+ec$!l`Oq8oUog`RUreud6nCsCn<+=&%ToLkLDG8(RzhFZ0ACtz{O50jkNd znXN|n+aUl%rLOK5;M1htDnjK!i#k=0nvmv^NB6tD_p$Dm-ZRC*pH2&$tz={(lH9QX zTg}+=@-y1XmC-Q)_#$ld-NJ}5h@&g%@8dIS!~SRjasodO|cXxstmu7p{Yf{l(Tct+ss`$+XAjb zWe;~ePEpI1a$Vnc)?bzcX<}v0#ZvA?FbHJ8Xj3`lIkT?wm=VRB{Ui$y5W5DMHFoAG z0|5gb>jyDnuFP!>`r8yeCN1Dw-T(yzyb^GX2ytv64ZvZ zHBuaMe~)K3mn|TFK9qx;>boqx@y6nklGkEW+R*tyfckR0!`@`o-8nSUTw4%k`!m1$ z=bz(~8UKf?cMoK`|NsAAnp%$D~Ft>RC`gxWvL6LD3>yl!xXV}K#7@C zT~1wEmrMtTniwG>6-tRUD@83~B{?7Vd#v8?&+qg3{-xL)w%6rnN+udgB&S1Hu zC&`XmsldQu&fm;$m(XM6+Vs1aGtx4AlRe0N zqh|L{0^&#^T^-cX9lQ+;%r(!$;?TyRtiaYy%NHVVTY{mZ42CNyteXZadCRCJ%AZ`g zc9dIB*73tNdd1N%l|b=`X}Y1w&|BU<20<9RE~)Q&YMdYV=5^l>xF`h9~an*d0d zcFRUsa!20-Bap z3e2x>(hKPGVJ{YLiH5BNavEJ8HAyFkfwJJei|^n}>tnZ43#Q}{{u zFewi1nu|S!xzpjf`>QOiH5z-&U!MD7WU}_U2>b-E5^ttZHzoF1Izbx>-{~1gp&p`h zxQ~5m4M5N2aL@}j`!Udz1LQM41#i0hc_S3igA(4FrqNFa*+^J^d$|(3`-TC9ROt{p z5mK`1kjHkR{9pMOat;y6%DZd7l7Tb=#AfkuLZ|4;0XOy)za{mp{)(f zPvLdG#|No*Jo+y2iÐ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