From 90d3dcc24a496a299c68737343c54b9da7711f0e Mon Sep 17 00:00:00 2001 From: Thijs van der Plas <25641549+vdplasthijs@users.noreply.github.com> Date: Mon, 26 Jan 2026 09:38:46 +0100 Subject: [PATCH 01/28] Update minor README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ef1978..a1a5072 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,8 @@ Data folders should follow the following directory structure within `DATA_DIR`: ├── s2bms/ <- Dataset folder. │ ├── model_ready_s2bms.csv <- Csv file with "name_loc" id, locations, aux data and target data. │ ├── aux_classes.csv <- Csv file with explanations for aux data class names. -│ ├── caption_templates.json <- Json file with list of caption templates (referencing aux column names). +│ ├── caption_templates <- Caption templates +│ ├── v1.json <- Json file with list of caption templates (referencing aux column names). │ ├── splits/ <- Torch data splits │ ├── source/ <- Optional: source data used to create model_ready csv. │ ├── eo/ <- EO data modalities From 3090c730db31005d74b6cdf292cdea985ea47567 Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:05:17 +0100 Subject: [PATCH 02/28] UrbanHeatIslands use case: Guatemala case --- configs/data/heat_guatemala.yaml | 31 ++++ .../experiment/heat_guatemala_coords_reg.yaml | 25 +++ .../experiment/heat_guatemala_fusion_reg.yaml | 25 +++ .../heat_guatemala_tabular_reg.yaml | 25 +++ configs/model/heat_fusion_reg.yaml | 40 ++++ configs/model/heat_geoclip_reg.yaml | 39 ++++ configs/model/heat_tabular_reg.yaml | 45 +++++ src/data/heat_guatemala_dataset.py | 109 +++++++++++ .../make_model_ready_heat_guatemala.py | 174 ++++++++++++++++++ 9 files changed, 513 insertions(+) create mode 100644 configs/data/heat_guatemala.yaml create mode 100644 configs/experiment/heat_guatemala_coords_reg.yaml create mode 100644 configs/experiment/heat_guatemala_fusion_reg.yaml create mode 100644 configs/experiment/heat_guatemala_tabular_reg.yaml create mode 100644 configs/model/heat_fusion_reg.yaml create mode 100644 configs/model/heat_geoclip_reg.yaml create mode 100644 configs/model/heat_tabular_reg.yaml create mode 100644 src/data/heat_guatemala_dataset.py create mode 100644 src/data_preprocessing/make_model_ready_heat_guatemala.py diff --git a/configs/data/heat_guatemala.yaml b/configs/data/heat_guatemala.yaml new file mode 100644 index 0000000..f0003f6 --- /dev/null +++ b/configs/data/heat_guatemala.yaml @@ -0,0 +1,31 @@ +# configs/data/heat_guatemala.yaml +# +# Renamed from: heat_guatemala_coords.yaml +# Reason: this config is shared by ALL three model variants (coords, tabular, +# fusion). The old name was misleading — it implied coords-only. +# +# Note: tabular features are loaded automatically from feat_* CSV columns. +# No modality entry needed for tabular data. + +_target_: src.data.base_datamodule.BaseDataModule + +dataset: + _target_: src.data.heat_guatemala_dataset.HeatGuatemalaDataset + data_dir: ${paths.data_dir} + modalities: + coords: {} + use_target_data: true + use_aux_data: false + seed: ${seed} + cache_dir: ${paths.cache_dir} + +batch_size: 64 +num_workers: 8 +pin_memory: true + +split_mode: "spatial_clusters" +spatial_split_distance_m: 300 + +train_val_test_split: [0.7, 0.15, 0.15] +save_split: false +seed: ${seed} diff --git a/configs/experiment/heat_guatemala_coords_reg.yaml b/configs/experiment/heat_guatemala_coords_reg.yaml new file mode 100644 index 0000000..f335d38 --- /dev/null +++ b/configs/experiment/heat_guatemala_coords_reg.yaml @@ -0,0 +1,25 @@ +# @package _global_ +# configs/experiment/heat_guatemala_coords_reg.yaml +# Variant A: GeoClip coordinates only + + +defaults: + - override /model: heat_geoclip_reg + - override /data: heat_guatemala + +tags: ["heat_island", "guatemala", "coords_only", "regression"] +seed: 12345 + +trainer: + min_epochs: 1 + max_epochs: 50 + +data: + batch_size: 64 + +logger: + wandb: + tags: ${tags} + group: "heat_island" + aim: + experiment: "heat_island" diff --git a/configs/experiment/heat_guatemala_fusion_reg.yaml b/configs/experiment/heat_guatemala_fusion_reg.yaml new file mode 100644 index 0000000..4ab69f5 --- /dev/null +++ b/configs/experiment/heat_guatemala_fusion_reg.yaml @@ -0,0 +1,25 @@ +# @package _global_ +# configs/experiment/heat_guatemala_fusion_reg.yaml +# Variant C: GeoClip + tabular fusion + + +defaults: + - override /model: heat_fusion_reg + - override /data: heat_guatemala + +tags: ["heat_island", "guatemala", "fusion", "regression"] +seed: 12345 + +trainer: + min_epochs: 1 + max_epochs: 50 + +data: + batch_size: 64 + +logger: + wandb: + tags: ${tags} + group: "heat_island" + aim: + experiment: "heat_island" diff --git a/configs/experiment/heat_guatemala_tabular_reg.yaml b/configs/experiment/heat_guatemala_tabular_reg.yaml new file mode 100644 index 0000000..740b125 --- /dev/null +++ b/configs/experiment/heat_guatemala_tabular_reg.yaml @@ -0,0 +1,25 @@ +# @package _global_ +# configs/experiment/heat_guatemala_tabular_reg.yaml +# Variant B: tabular features only + + +defaults: + - override /model: heat_tabular_reg + - override /data: heat_guatemala + +tags: ["heat_island", "guatemala", "tabular_only", "regression"] +seed: 12345 + +trainer: + min_epochs: 1 + max_epochs: 50 + +data: + batch_size: 64 + +logger: + wandb: + tags: ${tags} + group: "heat_island" + aim: + experiment: "heat_island" diff --git a/configs/model/heat_fusion_reg.yaml b/configs/model/heat_fusion_reg.yaml new file mode 100644 index 0000000..0d87720 --- /dev/null +++ b/configs/model/heat_fusion_reg.yaml @@ -0,0 +1,40 @@ +# configs/model/heat_fusion_reg.yaml +# +# Renamed from: predictive_geoclip_tabular_regression.yaml +# Reason: "fusion" is concise; "heat_" scopes to this use case. +# +# Variant: GeoClip (coords) + tabular fusion +# Encoder output = GeoClip (512) + tabular projection (64) = 576-dim + +_target_: src.models.predictive_model_regression.PredictiveRegressionModel + +eo_encoder: + _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder + use_coords: true + use_tabular: true + tab_embed_dim: 64 + output_normalization: l2 + +prediction_head: + _target_: src.models.components.pred_heads.mlp_regression_head.MLPRegressionPredictionHead + nn_layers: 2 + hidden_dim: 256 + +# GeoClip frozen; tabular projection + head are trained. +trainable_modules: [eo_encoder, prediction_head] + +optimizer: + _target_: torch.optim.Adam + _partial_: true + lr: 0.001 + weight_decay: 0.0 + +scheduler: + _target_: torch.optim.lr_scheduler.ReduceLROnPlateau + _partial_: true + mode: min + factor: 0.1 + patience: 10 + +loss_fn: + _target_: torch.nn.MSELoss diff --git a/configs/model/heat_geoclip_reg.yaml b/configs/model/heat_geoclip_reg.yaml new file mode 100644 index 0000000..d8aa2c9 --- /dev/null +++ b/configs/model/heat_geoclip_reg.yaml @@ -0,0 +1,39 @@ +# configs/model/heat_geoclip_reg.yaml +# +# Renamed from: predictive_geoclip_regression.yaml +# Reason: prefixing with "heat_" scopes it to this use case; +# "geoclip_reg" is concise and descriptive. +# +# Variant: coords only (GeoClip encodes lat/lon → 512-dim embedding) + +_target_: src.models.predictive_model_regression.PredictiveRegressionModel + +eo_encoder: + _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder + use_coords: true + use_tabular: false + output_normalization: l2 + +prediction_head: + _target_: src.models.components.pred_heads.mlp_regression_head.MLPRegressionPredictionHead + nn_layers: 2 + hidden_dim: 256 + +# Only the prediction head is trained; GeoClip encoder is frozen. +trainable_modules: [prediction_head] + +optimizer: + _target_: torch.optim.Adam + _partial_: true + lr: 0.001 + weight_decay: 0.0 + +scheduler: + _target_: torch.optim.lr_scheduler.ReduceLROnPlateau + _partial_: true + mode: min + factor: 0.1 + patience: 10 + +loss_fn: + _target_: torch.nn.MSELoss diff --git a/configs/model/heat_tabular_reg.yaml b/configs/model/heat_tabular_reg.yaml new file mode 100644 index 0000000..edd8dd3 --- /dev/null +++ b/configs/model/heat_tabular_reg.yaml @@ -0,0 +1,45 @@ +# configs/model/heat_tabular_reg.yaml +# +# Renamed from: predictive_tabular_regression.yaml +# Reason: prefixed with "heat_" to scope to this use case. +# +# Variant: tabular only (feat_* CSV columns encoded by a small MLP) +# +# NOTE: tabular_dim is NOT hardcoded here. +# It is resolved automatically at runtime: +# 1. HeatGuatemalaDataset.tabular_dim reads len(feat_names) from the CSV. +# 2. BaseDataModule.tabular_dim delegates to the train dataset. +# 3. PredictiveRegressionModel.setup() calls +# self.eo_encoder.build_tabular_branch(self.trainer.datamodule.tabular_dim) + +_target_: src.models.predictive_model_regression.PredictiveRegressionModel + +eo_encoder: + _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder + use_coords: false + use_tabular: true + tab_embed_dim: 64 + +prediction_head: + _target_: src.models.components.pred_heads.mlp_regression_head.MLPRegressionPredictionHead + nn_layers: 2 + hidden_dim: 256 + +# Both encoder and head have trainable parameters. +trainable_modules: [eo_encoder, prediction_head] + +optimizer: + _target_: torch.optim.Adam + _partial_: true + lr: 0.001 + weight_decay: 0.0001 + +scheduler: + _target_: torch.optim.lr_scheduler.ReduceLROnPlateau + _partial_: true + mode: min + factor: 0.1 + patience: 10 + +loss_fn: + _target_: torch.nn.MSELoss diff --git a/src/data/heat_guatemala_dataset.py b/src/data/heat_guatemala_dataset.py new file mode 100644 index 0000000..ccb0c3b --- /dev/null +++ b/src/data/heat_guatemala_dataset.py @@ -0,0 +1,109 @@ +""" +Heat Guatemala LST dataset. + +Location: src/data/heat_guatemala_dataset.py + +Changes vs original: + - tabular_dim property added so the datamodule (and model) can read it + without hardcoding anything. + - implemented_mod stays {"coords"} because tabular data arrives + automatically through feat_* CSV columns, not through the modalities dict. + This is documented explicitly below. + - Minor: __getitem__ guard tightened (tabular only added when feat_names exist + and modality logic is cleaner). +""" + +from typing import Any, Dict, override + +import torch + +from src.data.base_dataset import BaseDataset + + +class HeatGuatemalaDataset(BaseDataset): + """ + Dataset for the urban heat island use case (Guatemala City, LST regression). + + CSV layout expected (produced by scripts/make_model_ready_heat_guatemala.py): + - name_loc : unique location identifier + - lat, lon : WGS84 coordinates + - target_lst : Land Surface Temperature [°C] + - feat_* : tabular features (numeric + one-hot categorical) + + Modality design note + -------------------- + `implemented_mod = {"coords"}` because in this framework a "modality" refers + to data loaded from a separate file (e.g. a GeoTIFF or .npy embedding). + Tabular features live directly in the model-ready CSV and are picked up + automatically by BaseDataset.get_records() via the `feat_` column prefix. + They do NOT need to be listed in `modalities`. + """ + + def __init__( + self, + data_dir: str, + modalities: dict, + use_target_data: bool = True, + use_aux_data: bool = False, + seed: int = 12345, + cache_dir: str = None, + mock: bool = False, + ) -> None: + super().__init__( + data_dir=data_dir, + modalities=modalities, + use_target_data=use_target_data, + use_aux_data=use_aux_data, + dataset_name="heat_guatemala", + seed=seed, + cache_dir=cache_dir, + implemented_mod={"coords"}, + mock=mock, + ) + + # ------------------------------------------------------------------ + # Properties + # ------------------------------------------------------------------ + + @property + def tabular_dim(self) -> int: + """Number of tabular features (feat_* columns). 0 if none.""" + return len(self.feat_names) + + # ------------------------------------------------------------------ + # Required overrides + # ------------------------------------------------------------------ + + def setup(self) -> None: + """No files to download / prepare for this dataset.""" + return + + @override + def __getitem__(self, idx: int) -> Dict[str, Any]: + row = self.records[idx] + sample: Dict[str, Any] = {"eo": {}} + + # --- EO modalities --- + for modality in self.modalities: + if modality == "coords": + sample["eo"]["coords"] = torch.tensor( + [row["lat"], row["lon"]], dtype=torch.float32 + ) + + # --- Tabular features (always included if present in CSV) --- + if self.feat_names: + sample["eo"]["tabular"] = torch.tensor( + [row[k] for k in self.feat_names], dtype=torch.float32 + ) + + # --- Target --- + if self.use_target_data: + sample["target"] = torch.tensor( + [row[k] for k in self.target_names], dtype=torch.float32 + ) + + # --- Auxiliary data --- + if self.use_aux_data: + sample["aux"] = [row[k] for k in self.aux_names] + + return sample diff --git a/src/data_preprocessing/make_model_ready_heat_guatemala.py b/src/data_preprocessing/make_model_ready_heat_guatemala.py new file mode 100644 index 0000000..cfc1da9 --- /dev/null +++ b/src/data_preprocessing/make_model_ready_heat_guatemala.py @@ -0,0 +1,174 @@ +""" +Build model-ready CSV for the Heat Guatemala use case (data/heat_guatemala/model_ready_heat_guatemala.csv). +""" + +import argparse +import re + +import numpy as np +import pandas as pd + +# ----------------------------------------------------------------------- +# Continuous / numeric columns → kept as float feat_* columns +# ----------------------------------------------------------------------- +NUMERIC_COLS = [ + "AREA_M2", + "AREA_Ha", + "UTM_areaM2", + "UTM_perimeterMeter", + # Vegetation & water indices (continuous floats) + "NDVI_mean2022", + "NDVI_min2022", + "MODIS_NDVIchange_20002020", + "NDWI_mean2022", + "NDWI_minimum2022", + # Urban structure + "CopenicusMSZ_BuildingHeightM", + "BUA_GAIA_Age_Mean", + # Socio-demographic + "PopulationDensityPerKm2", + "SocioEconomicQuality", + # Terrain + "DEM5m_Slope%", + "DEM5m_TerrainRuggednessIndex_MeanTRI", + "DEM5m_MeanAspect", + "DEM5m_TopographicPositionIndex_MeanTPI", + # Forest cover + "Hansen_ForestCover_sumHa", + "Hansen_ForestCover_meanPerc", + "HansenLoss_Ha", +] + +# ----------------------------------------------------------------------- +# Genuinely categorical / nominal columns → one-hot encoded feat_* columns +# ----------------------------------------------------------------------- +CATEGORICAL_COLS = [ + "BlockType", + "BlockTypeIndustry", + "BlockMAGADominantLanduse", + "IntrZon", + "DISTRITOS", + "ZONAM", +] + +# Columns where >this fraction of values are NaN → drop column entirely +NAN_DROP_THRESHOLD = 0.30 + + +def clean_token(x: str) -> str: + """Make a string safe for use as a column name.""" + x = str(x).strip() + x = re.sub(r"[^\w]+", "_", x) + x = re.sub(r"_+", "_", x).strip("_") + return x if x else "NA" + + +def main(source_csv: str, out_csv: str, drop_zero_lst: bool = True) -> None: + df = pd.read_csv(source_csv, encoding="latin-1") + print(f"Loaded: {source_csv} → {df.shape[0]} rows, {df.shape[1]} cols") + + # ------------------------------------------------------------------ # + # 1. Clean target: drop zero and NaN LST rows # + # ------------------------------------------------------------------ # + target_col = "LST_°C_mean_predictor" + + if drop_zero_lst: + n_before = len(df) + df = df[df[target_col] != 0].copy().reset_index(drop=True) + print(f"Dropped {n_before - len(df)} rows with LST == 0") + + n_before = len(df) + df = df.dropna(subset=[target_col]).reset_index(drop=True) + if len(df) < n_before: + print(f"Dropped {n_before - len(df)} rows with NaN LST target") + else: + print("No NaN LST targets found — good.") + + # ------------------------------------------------------------------ # + # 2. Build output skeleton # + # ------------------------------------------------------------------ # + out = pd.DataFrame({ + "name_loc": [f"heat_{i:06d}" for i in range(len(df))], + "lat": df["LAT"].astype(float), + "lon": df["LONG"].astype(float), + "target_lst": df[target_col].astype(float), + }) + + # Verify target is clean + assert out["target_lst"].isna().sum() == 0, "BUG: NaN in target after cleaning" + print(f"Target stats: mean={out['target_lst'].mean():.2f} " + f"std={out['target_lst'].std():.2f} " + f"min={out['target_lst'].min():.2f} " + f"max={out['target_lst'].max():.2f}") + + # ------------------------------------------------------------------ # + # 3. Numeric features — impute or drop # + # ------------------------------------------------------------------ # + numeric_feat_cols = [] + dropped_cols = [] + + for c in NUMERIC_COLS: + if c not in df.columns: + print(f" [WARN] numeric column not found, skipping: {c}") + continue + col_name = f"feat_{clean_token(c).lower()}" + series = pd.to_numeric(df[c], errors="coerce").astype(float) + nan_frac = series.isna().sum() / len(series) + + if nan_frac > NAN_DROP_THRESHOLD: + print(f" [DROP] {col_name}: {nan_frac:.0%} NaN — exceeds threshold, dropped") + dropped_cols.append(col_name) + continue + + if nan_frac > 0: + col_mean = series.mean() + print(f" [IMPUTE] {col_name}: {nan_frac:.1%} NaN → filled with mean ({col_mean:.4f})") + series = series.fillna(col_mean) + + out[col_name] = series + numeric_feat_cols.append(col_name) + + # ------------------------------------------------------------------ # + # 4. Categorical features (one-hot) # + # ------------------------------------------------------------------ # + for c in CATEGORICAL_COLS: + if c not in df.columns: + print(f" [WARN] categorical column not found, skipping: {c}") + continue + cats = df[c].astype(str).fillna("NA").map(clean_token) + prefix = f"feat_{clean_token(c).lower()}" + dummies = pd.get_dummies(cats, prefix=prefix, prefix_sep="__") + out = pd.concat([out, dummies.astype(np.float32)], axis=1) + + # ------------------------------------------------------------------ # + # 5. Final NaN check — should be zero # + # ------------------------------------------------------------------ # + total_nan = out.isna().sum().sum() + if total_nan > 0: + print("\n[ERROR] NaN values remain in output:") + print(out.isna().sum()[out.isna().sum() > 0]) + raise ValueError(f"{total_nan} NaN values remain — fix before training.") + else: + print("\nNaN check passed — output is clean.") + + # ------------------------------------------------------------------ # + # 6. Save and report # + # ------------------------------------------------------------------ # + out.to_csv(out_csv, index=False) + + feat_cols = [c for c in out.columns if c.startswith("feat_")] + print(f"\nWrote: {out_csv}") + print(f"Shape: {out.shape}") + print(f"tabular_dim (feat_* columns): {len(feat_cols)}") + print(f" numeric features kept: {len(numeric_feat_cols)}") + print(f" numeric features dropped:{len(dropped_cols)}") + print(f" one-hot features: {len(feat_cols) - len(numeric_feat_cols)}") + + +if __name__ == "__main__": + ap = argparse.ArgumentParser() + ap.add_argument("--source_csv", required=True) + ap.add_argument("--out_csv", required=True) + ap.add_argument("--drop_zero_lst", type=lambda x: x.lower() != "false", default=True) + args = ap.parse_args() + main(args.source_csv, args.out_csv, args.drop_zero_lst) \ No newline at end of file From 7299da0b1930326c557ed9659a1f6fa14f4088dc Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:13:20 +0100 Subject: [PATCH 03/28] Update base data (add feat_ + add parameter for spatial splitting) --- src/data/base_datamodule.py | 15 +++++++++++++-- src/data/base_dataset.py | 9 +++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/data/base_datamodule.py b/src/data/base_datamodule.py index 9a30883..831de38 100644 --- a/src/data/base_datamodule.py +++ b/src/data/base_datamodule.py @@ -33,6 +33,7 @@ def __init__( saved_split_file_name: str | None = None, caption_builder: BaseCaptionBuilder = None, seed: int = 12345, + spatial_split_distance_m: int = 1000, ) -> None: """Datamodule class which handles dataset splits and batching. @@ -47,6 +48,8 @@ def __init__( :param save_split: if to save split file :param saved_split_file_name: file name to save split file :param caption_builder: instance of BaseCaptionBuilder for generating textual captions + :param spatial_split_distance_m: minimum distance in metres between clusters + when split_mode is 'spatial_clusters'. Default 1000 m. """ super().__init__() self.save_hyperparameters(logger=False) @@ -62,7 +65,15 @@ def __init__( self.caption_builder.sync_with_dataset(self.dataset) self.split_data() - + + @property + def tabular_dim(self): + dataset = self.data_train + # Unwrap Subset wrappers (e.g. from random_split) + while hasattr(dataset, "dataset"): + dataset = dataset.dataset + return dataset.tabular_dim + @property def num_classes(self) -> int: """Number of classes in the dataset.""" @@ -120,7 +131,7 @@ def split_data(self) -> None: "Warning: DBSCAN clustering on more than 2000 samples may be slow. Maybe set n_jobs in DBScan?" ) # 4000 m distance between points. Use geodist to calculate true distance. - min_dist = 4000 + min_dist = self.hparams.spatial_split_distance_m clustering = DBSCAN( eps=min_dist, metric=lambda u, v: geodist(u, v).meters, diff --git a/src/data/base_dataset.py b/src/data/base_dataset.py index 2ab5c4f..b87f467 100644 --- a/src/data/base_dataset.py +++ b/src/data/base_dataset.py @@ -112,6 +112,10 @@ def get_records(self) -> dict[str, Any]: if self.use_aux_data: self.aux_names = [c for c in self.df.columns if "aux_" in c] columns.extend(self.aux_names) + + # Include tabular features + self.feat_names = [c for c in self.df.columns if c.startswith("feat_")] + columns.extend(self.feat_names) return self.df.loc[:, columns].to_dict("records") @@ -120,6 +124,11 @@ def __len__(self) -> int: """Returns the length of the dataset.""" return len(self.records) + @final + @property + def tabular_dim(self) -> int: + return len(getattr(self, "feat_names", [])) + @abstractmethod def __getitem__(self, idx: int) -> Dict[str, Any]: """Returns a single item from the dataset.""" From a8133763ffe805273eaed96222c3c3fe76dd63fa Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:15:07 +0100 Subject: [PATCH 04/28] Add regression model/head --- .../pred_heads/mlp_regression_head.py | 46 +++++++ src/models/predictive_model_regression.py | 120 ++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 src/models/components/pred_heads/mlp_regression_head.py create mode 100644 src/models/predictive_model_regression.py diff --git a/src/models/components/pred_heads/mlp_regression_head.py b/src/models/components/pred_heads/mlp_regression_head.py new file mode 100644 index 0000000..e835b5a --- /dev/null +++ b/src/models/components/pred_heads/mlp_regression_head.py @@ -0,0 +1,46 @@ +""" +MLP regression prediction head. + +Renamed from: mlp_reg_pred_head.py → mlp_regression_head.py +Location: src/models/components/pred_heads/mlp_regression_head.py + +Changes vs original: + - File/class name made more readable (mlp_reg_pred_head → mlp_regression_head) + - No logic changes; class name kept as MLPRegressionPredictionHead for clarity +""" + +from typing import override + +import torch +from torch import nn + +from src.models.components.pred_heads.base_pred_head import BasePredictionHead + + +class MLPRegressionPredictionHead(BasePredictionHead): + """MLP prediction head for regression tasks (outputs a continuous value).""" + + def __init__(self, nn_layers: int = 2, hidden_dim: int = 256) -> None: + super().__init__() + self.nn_layers = nn_layers + self.hidden_dim = hidden_dim + + @override + def forward(self, feats: torch.Tensor) -> torch.Tensor: + return self.net(feats) + + @override + def configure_nn(self) -> None: + assert isinstance(self.input_dim, int), self.input_dim + assert isinstance(self.output_dim, int), self.output_dim + + layers = [] + in_dim = self.input_dim + + for _ in range(self.nn_layers - 1): + layers.append(nn.Linear(in_dim, self.hidden_dim)) + layers.append(nn.ReLU()) + in_dim = self.hidden_dim + + layers.append(nn.Linear(in_dim, self.output_dim)) + self.net = nn.Sequential(*layers) diff --git a/src/models/predictive_model_regression.py b/src/models/predictive_model_regression.py new file mode 100644 index 0000000..1a41d43 --- /dev/null +++ b/src/models/predictive_model_regression.py @@ -0,0 +1,120 @@ +""" +Regression variant of the predictive model (MSE / MAE / RMSE / R²). + +Location: src/models/predictive_model_regression.py + +Key changes vs original: + - setup(stage) injects tabular_dim into MultiModalEncoder automatically, + so tabular_dim never needs to be hardcoded in any config. + - num_classes defaults to 1 (single LST value). + - All regression metrics (MSE, RMSE, MAE, R²) are logged per split. +""" + +from typing import Dict, override + +import torch +import torch.nn.functional as F + +from src.models.base_model import BaseModel +from src.models.components.eo_encoders.multimodal_encoder import MultiModalEncoder + + +class PredictiveRegressionModel(BaseModel): + + def __init__( + self, + eo_encoder, + prediction_head, + trainable_modules, + optimizer, + scheduler, + loss_fn, + num_classes: int = 1, + **kwargs, + ): + super().__init__( + trainable_modules=trainable_modules, + optimizer=optimizer, + scheduler=scheduler, + loss_fn=loss_fn, + num_classes=num_classes, + ) + + self.eo_encoder = eo_encoder + self.prediction_head = prediction_head + + # Prediction head wiring happens AFTER setup() resolves tabular_dim. + # If the encoder does NOT need tabular data, we can wire immediately. + if not ( + isinstance(self.eo_encoder, MultiModalEncoder) + and self.eo_encoder.use_tabular + and not self.eo_encoder._tabular_ready + ): + self._wire_head() + + # ------------------------------------------------------------------ + # Lightning hooks + # ------------------------------------------------------------------ + + def setup(self, stage: str) -> None: + """ + Called by Lightning after the datamodule is ready. + Injects tabular_dim into the encoder if it needs it, + then wires the prediction head dimensions. + """ + if ( + isinstance(self.eo_encoder, MultiModalEncoder) + and self.eo_encoder.use_tabular + and not self.eo_encoder._tabular_ready + ): + # Pull tabular_dim from the datamodule — no hardcoding needed! + tabular_dim = self.trainer.datamodule.tabular_dim + self.eo_encoder.build_tabular_branch(tabular_dim) + self._wire_head() + + self.freezer() + + # ------------------------------------------------------------------ + # Internals + # ------------------------------------------------------------------ + + def _wire_head(self) -> None: + """Connect encoder output_dim → head input_dim, then build head layers.""" + self.prediction_head.set_dim( + input_dim=self.eo_encoder.output_dim, + output_dim=self.num_classes, + ) + self.prediction_head.configure_nn() + + # ------------------------------------------------------------------ + # Forward & step + # ------------------------------------------------------------------ + + @override + def forward(self, batch: Dict[str, torch.Tensor]) -> torch.Tensor: + feats = self.eo_encoder(batch) + return self.prediction_head(feats) + + @override + def _step(self, batch: Dict[str, torch.Tensor], mode: str = "train") -> torch.Tensor: + y_hat = self.forward(batch) + y = batch["target"] + + loss = self.loss_fn(y_hat, y) + + mse = F.mse_loss(y_hat, y) + rmse = torch.sqrt(mse) + mae = F.l1_loss(y_hat, y) + + ss_res = torch.sum((y - y_hat) ** 2) + ss_tot = torch.sum((y - torch.mean(y)) ** 2) + 1e-12 + r2 = 1.0 - ss_res / ss_tot + + log_kwargs = dict(on_step=False, on_epoch=True) + self.log(f"{mode}_loss", loss, prog_bar=True, **log_kwargs) + self.log(f"{mode}_mse", mse, **log_kwargs) + self.log(f"{mode}_rmse", rmse, **log_kwargs) + self.log(f"{mode}_mae", mae, **log_kwargs) + self.log(f"{mode}_r2", r2, **log_kwargs) + + return loss From dc0d261b4d4ba25611a6ae8a1050b317f012a6a6 Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:17:38 +0100 Subject: [PATCH 05/28] Add multimodel encoder (tabular+coords) --- .../eo_encoders/multimodal_encoder.py | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/models/components/eo_encoders/multimodal_encoder.py diff --git a/src/models/components/eo_encoders/multimodal_encoder.py b/src/models/components/eo_encoders/multimodal_encoder.py new file mode 100644 index 0000000..5e9ce94 --- /dev/null +++ b/src/models/components/eo_encoders/multimodal_encoder.py @@ -0,0 +1,119 @@ +""" +Unified multimodal encoder for EO data. + +Replaces the three separate encoders: + - GeoClipCoordinateEncoder (coords only) + - TabularOnlyEncoder (tabular only) + - GeoClipCoordsTabularFusionEncoder (both) + +Controlled entirely via constructor flags: + - use_coords: encode lat/lon with GeoClip + - use_tabular: encode feat_* tabular columns + +tabular_dim is NOT required at construction time when use_tabular=True. +Call encoder.build_tabular_branch(tabular_dim) before the first forward +pass (done automatically by PredictiveRegressionModel.setup()). + +Location: src/models/components/eo_encoders/multimodal_encoder.py +""" + +from typing import Dict, override + +import torch +from torch import nn + +from src.models.components.eo_encoders.base_eo_encoder import BaseEOEncoder +from src.models.components.eo_encoders.geoclip import GeoClipCoordinateEncoder + + +class MultiModalEncoder(BaseEOEncoder): + """ + Flexible encoder that supports: + - coords only (use_coords=True, use_tabular=False) + - tabular only (use_coords=False, use_tabular=True) + - coords + tabular (use_coords=True, use_tabular=True) + """ + + def __init__( + self, + use_coords: bool = True, + use_tabular: bool = False, + tab_embed_dim: int = 64, + output_normalization: str = "l2", + tabular_dim: int = None, # set here OR via build_tabular_branch() + ) -> None: + super().__init__() + + assert use_coords or use_tabular, ( + "At least one of use_coords or use_tabular must be True." + ) + + self.use_coords = use_coords + self.use_tabular = use_tabular + self.tab_embed_dim = tab_embed_dim + self.output_normalization = output_normalization + self._tabular_ready = False + + coords_dim = 0 + if use_coords: + self.coords_encoder = GeoClipCoordinateEncoder( + output_normalization=output_normalization + ) + coords_dim = self.coords_encoder.output_dim # 512 + + self._coords_dim = coords_dim + + # Build tabular branch now only if dim is already known + if use_tabular and tabular_dim is not None: + self.build_tabular_branch(tabular_dim) + elif use_tabular: + # Will be built later by PredictiveRegressionModel.setup() + self.tabular_proj = None + else: + self.output_dim = coords_dim + + # ------------------------------------------------------------------ + # Public API + # ------------------------------------------------------------------ + + def build_tabular_branch(self, tabular_dim: int) -> None: + """ + Build (or rebuild) the tabular projection layer. + Safe to call multiple times — idempotent if dim is the same. + + Called automatically by PredictiveRegressionModel.setup() + once the datamodule is ready. + """ + if self._tabular_ready and hasattr(self, "_last_tabular_dim"): + if self._last_tabular_dim == tabular_dim: + return # already built with correct dim + + self.tabular_proj = nn.Sequential( + nn.LayerNorm(tabular_dim), + nn.Linear(tabular_dim, self.tab_embed_dim), + nn.ReLU(), + ) + self._last_tabular_dim = tabular_dim + self._tabular_ready = True + self.output_dim = self._coords_dim + self.tab_embed_dim + + # ------------------------------------------------------------------ + # Forward + # ------------------------------------------------------------------ + + @override + def forward(self, batch: Dict[str, torch.Tensor]) -> torch.Tensor: + parts = [] + + if self.use_coords: + parts.append(self.coords_encoder(batch)) # (B, 512) + + if self.use_tabular: + assert self._tabular_ready, ( + "Tabular branch not built yet. Call build_tabular_branch(tabular_dim) first, " + "or pass tabular_dim to the constructor." + ) + tab = batch["eo"]["tabular"].float() # (B, tabular_dim) + parts.append(self.tabular_proj(tab)) # (B, tab_embed_dim) + + return torch.cat(parts, dim=-1) From 84fe08e91e7b9d58dd6a44956ae5e2ddc254b5a9 Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:19:23 +0100 Subject: [PATCH 06/28] Readme: add diagram --- README.md | 10 ++++++++++ diagram.png | Bin 0 -> 291926 bytes 2 files changed, 10 insertions(+) create mode 100644 diagram.png diff --git a/README.md b/README.md index a1a5072..0785459 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,16 @@ We follow the directory structure from the [Hydra-Lightning template](https://gi └── README.md ``` + +## Architecture Overview + +The diagram below shows how configuration files, datasets, and model components +relate to each other in the AETHER framework. + +![Framework Architecture](diagram.png) + + + ## Attribution This repo is based on the [Hydra-Lightning template](https://github.com/ashleve/lightning-hydra-template). diff --git a/diagram.png b/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..da8c4f9758ce7d3bcc021f82544c2026c608f7e2 GIT binary patch literal 291926 zcmeFZ2T+r3*De|>Dk}O~KoMd`MT!lSY6DahY!vCji%6G_KoaaowE+r3M4Eu~W`GbZ zh=Lf3fV4#E5JC)uBqSs`>xsVK_nrUDo^#ILd(O<6`7>iod+xf{wXSuo`{DjsBZFm2 z)-OS!P|Hr9IDQ_5k|e^*jztTRPmIdK;J-OO=M9dc^1f~ug*Wq^j+{AyLKVhH&R$*s z?-yS?amfdT+FOJCo3rC@i*6K3lz#H~k&A&g;{x1sD~>gqM{>F{xYhsp?H$Wgb`-ib z9NFf6bS%__YVxD&u8GN2L#qXP-$vrf-rR0UPl-LferMV0S80^s;5N!!7lQj8OM{Jb ziHA+H9?mLVtrpgARo<_((Y}+iwO*=k$L+1rtGc@c!pljY$DPPCUt*GalRB^Kpkt=K zKjS<@JAIw`(y5J~(!l5HeXxSj{`06=k)4T*{-1};+M|qrUc>)Ol~Mx!BS#^Qh9?Ebskf7bQC7x|x+_+NCG|2CYtVPzcs0xwJUv` z3su$44n>%JVlPB_yOdg3%tgh8_Cqv!5w4>FE!iDtn8qw3#?0wni89|w&^rR_hDATSNF_{vAAQY-*WSy^W*9%)I zq`|Y^0*Dk_^5WgUH8{*c1wG{7Dt=t6C5^hPr&8BL)LILDOAA<~(^DJZ=b`BjXqhX5 z&?|f0B93S;M7=O0=pMY#t5ud*hpIU>GV~_sYz)Bkh>5zu5^r(kCYIkW- z|BoVzi{Bbt9%co&7Ls9k?waKbE}O(K(rru)|Fnl4O8$>#5 z!bqbI&q2Lc;uts>@v2zZOSv6<$BOGqQLLA(Ob-oRBEG$4W>j$0g!mYXhlZDy+wh3l z@|LE?u1OPSZJRG3Ah|f|;MD+3)e$`HhxQbH=@T*+i3G_@T)%X!nIJq57`HBBDxV zPtcj+*d!Uxd<-v(T0*6mAep`FV=nJ&eZf{fZq4=r6|&lWIGq z1m)a*GNyW31{HdlIaW$tA!<;fu7xMh@NVHd*?vn8D{4Y~^46R-m-JGjsS0t!HC*oy zX#KURVW&a-SL5N>UX_b&2rsE0;Qi%tlwp|ZB8W{otm1(i*+N2-X7M^QBrK2gu}*jT zS-Tc0^c=IxllSpE&-yV_K%KJoYQXc0V->zs5R&-MDwA^NsA4zZf%Wufbn8^GErN70 zr#s2n7M0nEZy(;(5p#A`5V|URI<7r}zYjlqaf8Sh9oes-BLj>2y{Zm{iY!v^32~S$ zWeD@Q!Yt7N8_t>hOV{4L9=mN3M0x|AP`8Z7AuuL=DzGytxE~Makp2<9vd2ThW-Lfwq!wINmGX%*C6k4;5(qh}X zhcio$^6CC2ekfDvx?yN&aBZtWhmB%ouW%m`rUjp@_QpsYNa4KQVQJ>5&^kOc)F+J{ z?dY@JpuHB2nRIZESqS4&Cwf@VCZV~mg;Va-${!ytd4vxfx8w`@{P|>-f8N5Hv7cOk zp%=w3VuzN4RYKDBTM2l8qfs8(BIiM_QI(YtZozKk=RzORCrQDhEg;-gh?gU`4vh*KpCPlZfO*@l5B7Y2@hj;Td! z|9(+dOxBLqA$rnmrlOeTRH0d)r#nAq&z?PnKW<;zldjOa*~dEpUP6@q7K|DSr8=Q(8~tY1 zP5TNy<|(FnZ9G2a&8(GnGT%k1nwPF0GHqBIIAj>b9g~*bqn@Z!iR)!I`|Z;^IYQ)$ z?EpZP8B0@K5oDX@D;FCjA29NX6oD6TNE`6i$If?e;TMlKdPbIG>uke5mscIC9{fn_ z|Jadhh@Oio_&b@)t>vaF=&Ws&5_!zB8MEaFIhE*>=$2xD+PmDu0F3P{S4wdB+oK1; z>jN44_5KP{!Df{E96;%}dZY0qmPvfSV?I_nk2v97HQ*TEucsnsH#Q%(uiw=+uWp~M z+lTmMmk-jqmD{Ul3AMJDx;@d>M4Onaw8yTD_?)psMcQLUv1RoubQo-8Q8J7C9!JY_ zXqh<03C-ClrbLYPL#?7c+K**JxWZbH_+RbHd3%xZ_7+CK~q2h&6eSNHd!g>=$N97oR6vPs3PUA-d2d_2+5o>=|aiCUqraR@O7-fa~^_ zP84bjgD{*NBX$i@-w40o0YB@jp-DR<>luxo`HYSN(7iBtvb5)ZX^`N~!`InHdFc=% z=c!u7jd5r7I=*~#tsZn`Mycz{mR1N?z!?0VCFa(mb^T33hGJ}1+Xh#ZH&eU$BVGJ~ z7HmbfPK9sy-=X0}!Z$^TaTM?ddGle!5AyE8dXxCEwlU~nhVK1_c&A})Zy%15wMDn$rsSB%Jo(kW zYf&}dxwW=}sDrbfR5S#wW?$3vfDi`fgAo75>FwtdR+>f7Q6=rdwQIJVEEP3B=g(Uo z8oOtte=5h;>rl0Ge@CB*x>h10L&!+tgD11OtQqNAv+5=cS0G2_YZrR*3|=;0-93VD zm~MtG;Ejg!=`DO1Va-?^O>#vL`GhXc3+LgXEaaoH`zeHBr@m&<%)Kf3$HgLRMr1IK zb+2_V3{vBlk7zr47O$Harzn`|pswcQ`jWXm`6TDJi%W}kYCkj0C;iG#Y%t0z6`l5+ zS5UMN6C&(V*I9)dTBh$0955`5`;9@`p~HL_pEh_Zf}X0F`0`~;-nb63pFxAXIkzc_ zX?UXGHcv&6Df$aHg(j+BajN78jCPk{1IGChy6a`zNyzhh_rQ;5$K(-h^AdF``mmku@MF8_`sq1~ zi18vuF)kY>@gxUBEPrHKy~ ze6l|PLEOg|(d7Kf(atx_ZqnpYsYNi1q((h0W=c+fR$cz7;U~LzBlR}{Hhi6_R($%2 zn+#{%A8WVvt`i<*xVMnIVN8@`A}wJ)Y~WC1{$w$qDu;98cem_Cp{#iwb=U)ljkS1Z zB~eKS`~`H<9u-!y@N_2YZwoKY$n6VMS1*J>@;*RoRetrTtMfVt$;u&YrgZIN($u38 zE0+}*U&jk6V-W071r-C){5zEV6S}UjBk1cKexEdMT79TdWok&>EfU`?ns_rv#h}(lF1(!Lg9>W`&@BUFc#ek9!ff)2K6u2{s`Pf~RMRQOijXgb9RXzY!wg=fcqpueT$K*VtID!u`yANiW z!nTYJSd=84btT#U;>g#utoy*6$x+vmRS)5tAq$9#_%(1ZFPd!gW|xvm6U88&-CD|N z_FMmaGd)w$quh{zP}WqHfGTQO7{A5-XElG9Q|@}gsxgi{Z`f<#t?e^)(w9oyxM!_M zI1%7zwjUA_VDn63xo31kaeV*yJ*;|?HW{I7+)1Mk7LtGb%R{86A-Gsxwwlo z2pF47%R+_A`nam6^&k&QlrD0 z)4Xxl=ACsftQ$ryKq+Rz73vsYy1*B~kzd-o7G~}kgD+}E>gBpSTHhTE9!|!O1|Ahi zFCSkMD1kD+jGL|`DPn)tP)fAONb15OqoW$)RqCe5K(KU0vp2f|=e%Yn2ixgvXAcjL zx8L%1zgk>l=j#)KZOye^35}r4kK|i%ta^NDW-XIidT8rr1+#X84vH~6$FtjNV}V!b z5Pnk&jY#Ve;_m1BAu-p*Qr`x$aKg*oTcmlJy3|fq zxWHI~I5C1;?tQfIEf`qM5+3p@kfSLwwMZWBFcSIC*0qv|cKfq{J9I8C?fG1~e?ttHlG<^CS(ZeZp)EQ5H%9{`ZkD4K((>)^)phX7qfZMFCyNdK+@yT{tDYsl# zFu^TW&yCSfUAb!2DoFC0D|)Z)Uwe8w2txt0d}*4aM-;yEORa@uHbtO@l2jVv&bG-W zN6A(T6ve>5>ECEq4uea__<+s8+0a9GK`+XTz82bj^wt5>vmz_Ar@eF((F(&V|C(^Y!@#AI|C674O zFXG;j=sSj<5wJE*&GrZbobrLE+6}h3ltzo54NJ-6@7vDejFk^QjH4JE=cOyOv^;h} zu`)aQeQrP%D)eW^=yy8uD+w&IBF4ktzbsQoV1r3Or45)`!Pqf|quhEQA0K9+F?QDk zpM(Vt$qyxwtZ+py4QP=BsZ{i9iNt21p&$>c4|E*c&X4rq15x8B6Je40Kx?(kZ8VBAWS8K9kbKfl9+$8@_4Ztp>T|4zsIni} zKR(Vv?0@psK+TQXNe0Q7-7+`-r(WB~rtPjD_akXbz>I>zPIc z5#{-~$vQw6(ytp-E7kCe8tFGU*}sCVW;BbzxUcuh<4No@wh^z=O`xf}HuU;E)*n?u zeyAJ1pFmgyOqC=yDU7LmQ6=$Ms(_ucMWihJQK(?SxqwjMD)%uqvet{P1J5jUrv+pV z#yvB}ZkOjyUyw9<8GDAV(2{NR%H(t7JQ-=hZ@SB@@6bs^!n4fE{1AF^A={6fJ{X7P zjbtBXWR<{{XE2?dJRODknO=K93qs4)%DvxCAH~ z|70mVcdmXGs(|W6H`(4>O`d$1}Cp@OC|0=^7LP>Q+lM2#)&e!avM6)}Q z!ohi@)rgKl!@7tnDeDk6j~MPvwbwZ7aa@OHt9Qe&h-JuB6b+WIeSX|k_XY$Lw^PPx zCZqe&cBNw+?rf=N$ab3$x*G&$l-&nVggOJ=w{wLvx`Oi|KW>qTFK~IgekDs*2eg2+ zjQCaQu49a>m#O`>8wBaTrVX;{)jAV`X0%ZQD1!w^a?=m_7?_K&|5)P!u~#}Ow09W; zjyKdpx@xOlH*7}g^Zqxlcq#lMTfG+f%)%pUEY*-dSP!h2H^yp)RjwH;89U0L%SqGA zaX;g+N;<+U@F35 z4INQNlsHo6oS87se;t#zhyY6bDgJO5e-!BnQITt|n){`2c0uA@Sn_RBNj)zH9n{T9 zhu~s*19??T1N}~^e0FTKSkmZ4Y|?2(4{3$38c7%Dy|9`9vj;&fzvAa_b`locwv7BS zB0pE2F6j9BB!+FX#$Sau1YK?R*@Uoc)e2LS5#sA9d%z8`{HenmsOyqHM5T(T*#@Hd zC_C1mkW$I5Gp_wS#Q36l-_%c28?vvxN<`ah-pgbZ9Qh;*1e;)y*B_Me@8gM0)N>yQ#q zZa%(ROW!}9Y~y`dC*=$j-HZ+(@Z-c#3skovB*R3he_z+vim$vF zv=_+9;N7MiFwPl4hwRsx{x*DyKji(BtDj zID6#NK_Ncd;9(^@A*VkH*H1?%oXH6C$_u0+@M95A(-uwF)_xe5d^XWl_T(;Y!df%o z+B1xKkvXtfUyT(ygg9 zG&EEs(h$(8nrmF!Pp2V6( zmKqVR^9CwTfF^Hpvmq%t#H3}4XjObV_D3*DL1_+3bs_eLikV1``$@!ozd+%uw?ccp zQMTURn-_!S?5xuG#2!e|Y|OOZA*xT#g$eV5*D=cU97Fzy#+h^8uM@-&d$&7#5wSer z#A-Qdr04>$K>iYJRax$tyIgY)s2_qFj!}Ag92qN=WHOCKOt5Vz33M4}nhL2q9Emudl!4!3<*OSxE;7URe2;K9DA6zhg+oJR0 z^Ain_0Hkr|n5M$GZP{bPt$=htyQdvvnCN&53z3o*VBvs18<1+c0a{hCo%Po8Vzx>eJ&%P{ zTlCE64r{)Jmu~L7*ZN7waHHDhAaTpIyl2l(>1vj5PE20wH_AP;c3o*+AADhFV!kGY zQ}TGTdU#KUI%$s$mTm|d8OmV*(b3h2Gf~cjL7YvXH|29t(avR6<<#i1bI}pqblo|o zIlj8_nmV}A9AyKCD8Xi!#T%E`&m!Wh#~_}};H8tTnxr}m(boLcCvoD{4uXBveuPUB z2IGDijE=|kyh;YYi|L`>8QpQ7uF%*L#Cuxw*qJU?;q|Tg*k1uSQHVz6AW}*I`$ef< z@vggz_+hTFyr`N0vA;!3Do4x@q;UM9($w#qCcSYx6oJAfnFKE9mtiZ=(6W@RJp>cWpf9SjdmWmYPRG)*x3f|Ra8)xGh zqB;-=_;_}L@y-}GF(nDo%7t>oa}r8B>WAjNUQ6hoim!UD@f|L#3H&4{i{<&?@f{K! z6zO>O=X8P3!&!wQwzv+EpsxnzwukvFQ@Iu?i4M0d5!b4!J*>s%-OH`;^J+^t;CyKF zW+>(6FkycuZ?1BnD>S#Pa&^1_rNWw5ifq?WA-&ZYlQ+q&GK~prHgrOE4COGSr;-$9 zQM-;-5|g)kfC4MuCKmhlU-aD+nSmr;h=kXmgp|g_cG)1na6gl=d0;YaCre7?Z%)+6 zBqk$zrKvvxBxQ$)78YpAq&SIm!l(?4|RPp;y{njJToBln!ceb=4g5o60ENgr+aFf|9}U4?kD&`?-WvKvmPIx&*VjVO=j1i|98k2Ap0TGw$ir zr?19i6mwt~p;MRAuAA73CIiHyj%^DF(P`O2jK4F9=6_dcIp5HTaCLwI2Lee-cbY(s zk6zm*EOrZj^utMG&TBPCei^`PM7}jQ5GCUj&>IwB;gYrF{k$5Nhno7c--dN`^KElm zaSpo^Uka;|a!lvS?I#OU0rBvonX1hUP_9 zAlu7w!k=nTQmHQE*>=pUIcQPtkFiJ?u8H0PkY*ayv!@RzX@n%Nm-lQ5R9?XOeP2UJ zZ$1PE3d}^oEHmQd8Zr3A@%g`=D<9m!E6Q=~m*x>C@b3}y=&g7PXFk}jra;*Ffj zt%4g5h)2n8$?-|y;I^ZoLpZFEqdU;x50EOVp8T#7Lh~2)#&rXj+{&k{a;{up}$cir?Su3O&}0Wa}LtTq!J&pUsq8 zQ@dYNQ`VE$(B03B!EDByI(~firv&Z*!txP^J#GDTCUCZsfwi=V4h!?N;xA*8v6BY& z_V$~>Kwn=f1_5h3V#1wSfg#M|=Bvj+U;+)H)Itf4|9}C*Azld2}d{g?vi~I71I;uu$?(Wnr~les9}O^EIrf-0mm%ne(W(L zU5pV46IBcwR&K-i_Oi*jmx?n00-pY+@z?6*5@UK!Fp_R^ZNElt<(%IFCoh|}b2vXc zk_9}Hkuug_v(y!*Q{&R&Op4Rg$(J3KL#;iCow$m4%jt>UrUW3nG7vWg==?*1lb<$t9Sl%lKUbwWg)1AsfCD+9=gy9k!9SyN zA}4`r)ku2Rg@JIjdoPz_hFe;3Cpu}2qkgy#Tgt36`{?0ic&aDJLjNk{%T0t zpTo1lRM3}8J)VqUL;lYeK0RA3+g+0#Z3^}sDS)ewyjoIF-jO4J z;Z-(*@R*Ho&2IfJPCIt?8N1O$yaf8)pYA~#V3+kIX+@64jdtZEGe24Q9qN-Izcrjs z09Cf)x9H$r8um)-CHmtnL6K1;cq+(_QJtNgft|AIna0l7Ckmy+Zqk#GNPQG%A^%+@ zl?t|!+8lQO{(W-<@|-*po<2q1wfjV5+2kAKnz{;hXB_3bhh8p!+CODUW!@>7ANg>o zTGBad@Yj8T*KAL7$(K;XbUX;mvam37T<@8wp+>Fgz~jez_&>C##u}8$BljF{xHJg( zu<~;e?#Dw3{R~XJ67KR)R$YIyg1r1Er>r2nJ%9NahPP+TT~#CGZn{lfU50U8MJcV- z`}lFNjR$e4zK0yrW~I{A7+*b{r7p%7^f9PgX|kI~k+UwLv9X$J(s1_p!U+9>wQK-BR%fO z9nG9~jb7UVD`ZBme)Zb+skzZD_ADabu;KKnoeLxeaoNy6KLG(Npo6xVyGfv(HMt zdAsp^EyhkNuLy>CNZz6p;B8m;F!}vNmY-`!`P{-=rjgeu#wW_Zc;9ASfW79dc_P11 zZw021MlxrZgdd)7*L;P3Ieh~2EBQ^J^L8ZztHpQNvWt3QMbtJV$vRe} zZ!LGox2)8Wb(?5=akD9FaOs46q7HH71=CxxyU|~vOWtr1-~@4Xw_Atj5(;tGAXUe!xk>1>MIh0DG>Hs zTVDFE`dA(4e1-BY3TE$Qki%#PL()*TwYu~XjBqN$BR(MOSY7Yy{>ukOBsVXi|D>fa za*!^0E4|zCDsE@Itlf&1>T;t^92*`TPRv2Cruqo+>AFV`)uBgT#b0r9a`5+8vtfU1 zoJww;Ak^tRM;L;Ss|VK5!eyowqr2`mmjSj@l5xPb{qIb6-CDBe{`KHOsbW8mfHMa) zV^@e4E~V}6q2~&||Bu|g%6|Fy!Sm~udL-+v;^+h#TjV{FMA=sDZ=Kq~FrhL3@ti^B zche@cL!4*bN>?lg+x1eqr@MCsQpgob1MRi2EXDYgMaRhi6ghExErMSQz2a)TB|9Si z%C3$}&DeU1Cm69;LsYp*wMWWz;b|@2hxf7g%)l7n1aC@~{S&O}9d}0t%ep1&UO1#u z9vz_?oJmHn+=E1{gv_g}9NTRJE(`{NQ$CJcyTj7o&M$aCkblBZiH`A&(oby@#Q|}? zP!8o$j1LdFi^I-wAo{bxUKT}I9RC<(DHJMA;|_&3&8vFsoMiNB%~a)~6gcQw6J{~a zBs6J8mS-3E@80{N;-dGBcB30j{t?nGP-II-IY+$97svO<^_U{Ob$Q12SF zsf@=csOpGsT?ieyc3OC}1*E)ByWTygmm^%_wb5_-A$GZ4e&A;%--@1|buQ;!kD=dV zxJ8-TT;V#}jj7W{v^OrR140Mm*rarfFL7iVITuj#%iJU- zAZay(uhJsYp#~RJ{}=2^^E1GQEY>ZdZ|4$$4A)y63Rd%=$6K|^!3cJh)Y!lK-mLegx>ZkMr~9=OBQo7j zZr|a6ZN7zPFNYwwiZxZnPE8w)uc1K)l9Ow=6>V|7Jp7!ir1-viLSEHc+1h35c z^MX$~`qwCcJC03$g-6_mgOyc@0xu z@>a+Sx;&>wb@a*yCyMxM(az^+)hMooFZ zCf{W%|Dy6i%~xlA6nd3i)#F^B#lPF3!nePAt8L+o1*#z(fZ9eL76`Re1sSZ&3WX*B zF4B7ic4m5*;^p?uBh^TL)DvjHdl05bwyke|mZSgF=5-HkNWV#WK>v+Ai}xw&G}&&j ztJeEdY0kxo!mf?b9GKdw-}m^8v@m@P6mM1QHEGLD6R$B_zSO)geZNutrhkgdZ5kk} zvvad|s%gNgCZ{(`$23!y&3(N*Vx6!39x`GxrpdqWUOFsQhOXYHR0^TedR?BNW{Xr> z`oqGf4|DGA9OyoC7~f_f3kM33909=t=>F`%5PKYul7h5Wq7>zEwYzP${=K{1)zNM#;C*&rt!# zeW-VC7&j^XxpY6W5Aa}J=Ks`eJ)b3xD(e-?djc&jZaStf13LimLFbPh=o}#9PZ~~H zRqbC@N0vL&fP4wp9{znt)(c}`1}6-sUPHtybMJbFR5#!;a^uemprg;=jSSO&hd1$8 zho$}*c?oP1k`h=bmwM272f?f@wr>WUKtB#v-`$POD=nhtY3o99llr&*v>1a>D#J?% zA#qRi&loKHHL^-7Gd<4Iqe@BXZH@CSaWARHf5s;P6ac;z+eVxi5~3olR0Dw_id8UJ z^uvE{gK5AgOMKyenzV%9XVCyckdr(gsZ!NUFU!E>;aWkb_d? z{h3U~exjc-*fZyCu!XLQO~Oeh$jk>mYT84a&eunB#d|R+9%nj=Qxl%LA;X|}idSquD_g&uVcMpLiojTp#QnLZ>(4bB-@*A$dsJ-!72r7dG?MXH zL?gzzv+vX=HR%^_I^GoOk-^V#LrT~fT4g@HJ= zK{sH(64?iG0JkPJ=~s-7jke{jG+*8<{Yr9>mQv}`y|3`H&ytxL%a%)Q`6;$$!HVCm z`|4UpZUF3f&yETDZ}+>nU`*Q8yI(G1dEC%kk$7)g&bK2DMnu^aHpp7<_EFh{F-5yy zn;B46y>?D)KuuDACiRzu|AzZOt}+M16mKwW-sOmAsB~+?<%(WbyEf)tAVSiCV>^M-b%t!=tRiM)RbSw}TJ6b;04PhXsg`i#n{d zd8ozyvPYhGd-#sHOu;am%b+1oRkLS2&m>R#k+s=B5xMNCrO%WlY)dnry5_&Kw!S^J zQ{f$O#`PQ=1_0g$hXJNDe`onLwVEB~a8xCi!95D;`Uyajl9J8JHVOBE1DtM9BK#Ud zSl5lO&wGaPJ(Zi3OzMe7v0#Txuy-?Me%Tq#{ya-Y-fYhuBU+wpQk>`ylZ)Q;6I}SC zk~$@hcz6@9=L#%!R!A?_MnxeY{DsX(Zb{g7QedYYS4d>F9#curH2cHoCx`55RnoT1?L(^5?vXok^)~?tpa=Rx&i&) zwsO@6C{6u~E2J&Yr4xq9X^;a&hJ=9q4F)5A1xRxr5>hWnI9y#ODpx@GwGW~t*OPlE z=EZ0|hzs)Peh`-ICqp*r0QQyZs9n(i>1LMsQ1;ntKVgn~?)yv?+^>!L73c40_t8K= zfR%#mSk2Qvapnzz51lBQy@5Pp34L%;$p)`&vjl*~lAhw8;MI_PQ4@mpylPHIxYZtC zt5-{E{T=pfxlvrmY&O?gpcOIQq)5 z7h)i-2BtQAcrFp}(cYVJ_XbAj4^bfs3}M5_)h20`MnsO3*50Mte?-5%amw~7)`_49wICS(t34V@!8!BNKTbc zLa;m|Yh^*_zqFU*R3;;>hB7Zkgb_;2pC;x!FWnqI=qx&N&G$olk5Cj);i6s>N^1EvmiY|%s-!WP2iks8ex&!Ua?Gd z$=cu$EKRc-WP*`%h~cmHa=bk%w)?3KknL{X42eK%74OT17yx|0IIYz;db0;3|Gw0J z>c!fHXJqG_>%>%v);MRS!#S1at6ylihBI`*_1_wUW&Sx<^BRl~Bn>Heq=aXBdg3YQ z2&mA)?X2ZZm9_GCN#eZS6nlgpyw?{mV%YM!0hO(YEdI~KZqfg5Z$+*Nd)8B#;@gGg ze*NtkaF+c~j~|Aj?*O_11fDzfa1EUHntd zziz^}SXnz+B6>fY%jUem@s}(Dz~h5z7!BZ0Vpa!9Z|n_@k(i_b zHDcZI>eCd{=B8)A0TiWF`>IuNx938V&F}KX$8d(2F&=jM&Gk{oOBPV#Tg9v>R1L<4 zJpO!TRk->F2lR@TznVS!MG3W^fl2N((3iFYPPBgewhVYk&@Jv z$jCy!x~$w2zgE)6C$`x1c%c?u*U8Dr5_#$$^bB&He4QWsUo_xoiYV{u{`JjQ_d_w^ zfX}> zlx5C~KfVJN`J0yi44$KU_J48)AEN`hN|f`5ebZ=2r)nuQAi1l(Z5^Vz3R{Iyy^SS8Z~V~O2v@XE&tQc zwQawY#}RY~4A1=6P1LS>s~cK{K5)2j8lK>$p^WnFWM0LvJpUSU-0Mp&VMYn0@DTwc z9O4zwH7LYbv_e6#=mPU;-}PG8-^CZP%!d2PYlRgpwaE38wOhTL&7Exz2-&1G=h#)4 zAtH6@9Y=iSlvCZm;?xEtnR8O9^oZxc-k)?@76nvH|M*30bo%U4q+mLl8{7gC`F=9~ z(j(3WHR61V0>|Top#vRJ+fODU+3ao?>REQeoxaKy4Fyv5r4el{%PTH*7!s4E6*-!A z7j@=ERvJ)5;ZVM!7<63SKQv7m%wP+vpa=kgHn(F3Zv?r+OsAsBSgcQP4>+w1f7qkO z9LUi~FWABz%H_a+$#J1hMqt~HQmf@5>~2@5JdD$<0DTGafsm6odw`m?oIif=N1*aG zn?Ybv-yx!u^qgy(R5B&uRXA1HQi;HvF7M`r;cAJNAKyWyoZC(C!&}zfT7J@uXr@cw z!og%)OjvE4g(OUyF15B;bYE}cmNy<#SmE4HV0Sc51(!bcBR-ve{g7LV1m`q3H>Z=o#XV*O# z{~K^*56I&1wrR6xPAprX%;eb?_~4c2!G@!ZkEbjhnuf3KqqExLMp+q zG50?cWf2cXCfmM$BAj98As67ff{!;J!Zf{F|Di&;eF~gMu_8Hw5v+@MkcmT%#h^x# z0HcoeH>DgabZm%g_Z?|UVQqrXmwvaO_rNjy@Xr@(ZZu-wPdLIV7jFJpXHQfyEu8Il zTj72X;{khsbax}BfVh6?q-G#YM$fYnNnGA++`4DPj|d6$noH!`+M^MI4YiXhoa*0w z;+r%JTn;2Q9)#|0W_7w{NI5QY>nz&l&!EU<8YQ`$sSIF5D_NGMNr8f5cNk;?8{caM z^{@;Q>pwyYG<>DV4Sd>c;DZm{`X$?BB!y`5>Bq;Zv`eFT@*t4;Nv+@0u zqt%K@KSM%Zyo0thzr2rAvoTf>kC+(B?jTU5oc5u{LJhH7cz~~2gAY+ z`i(tVNrhk*cUa|T8-U}`ncnpme-S%gI8;>iDo>r4ph_G#>h;WPsfWMM%HxHC#9=a$ zcIS1ygG4{BL@qMhhP^HcSYcXDhYQsoK-BY$UhZQr;>I**{W%jfpK#HL z>eViBIEak4IQ}KQ_Fa$F;OjN#b{q4_P*rP3o&skQDG6FMT5|CCd*{XG>C5FbF0Q+V zF2l&q&`k<@L(_|fhRPvhN#&3fp;WtneH4`Xuby#jfBo60)**a&O+Eq*$gyslnE#;y zzq{Du=mUhc11>ljR3WKmj~}g9&enC$7N-E&KwZ$I{^a7Y(MSnSF1|dmBfAAELrQv9 zm+)TO>@H>e5z(OzObLEKn?XWUR=Ug9k(WvXh`25pSNWj(ZtrfNXGZRCT50~pMtpY( z6Zegq5!)>(*pUak- zmj9IL|DR-vAjxN6EbZ3}{AD-ZRjQ~|{0?OM%#4h_fzOYf*V%1^Tt2A$d%sUgfcYhY z-Q|>y0#D_FOC!?wJ#APQcRF?yNw?_}?_-VK_s=+7*L*m!MD zf|p|=79^G+i;iBa-7SpCp)T8JHu1XUa;ap0iKV~)c+v{F=+Cw%x=^n-H(mh|vd7pOA0dFm*BN<#UAVL~p9azKccV}2q-Rozh#)d$`)FM z&YxPm>))cifQDD23aT$czRjwdO^U0;Q^kr)%_LBJ)1-T7>`&Vp@z0(=KW#X*Ke2H^ zYS8M|lwowO;tKr_K4g&)c5b zG4*Tf&Ehnrd&Wzm46G-nrq>6m475Az()~*{!M><8jdH<4X42P7V;kA3Nc8tdw=>v^ zum29M>WH}0HHfX7$wQPSu_$bs)LRLv5}*Vaf`xt9bFJ&%Z`BeK62hSvejSRaC|XjtH#>}!v^wyYX_wJTstosZ1?#3h%=|4}iAC8Gu&AFs{^R<}OS`j_q90=o z>{SN3hBsEXLR#I@VqTv+d?YuuC*Vq!ez2_@pT_D*H@_l=uWPp{H%!t2J=5d5JuE9$ z-j#{8uJo^k+t^(9zJpp}&5r?nbEF`+@kZ;&ireFkENagV24Q7aaIEBuVf|ARbsOh0 z_Pn_E%jI$9iWjm3RW}v7{{c(49|!kRvubTh&IYpXkBLx+l)Lw+*Yh`Wrhz3iE*y~{ zR!cMs?L$*=;!(^XAX@)k$_)QK0of<`P*u$v&c~~%YF$mz@0L6MtI%5cT4JU73$t5` zsshfh@wZ;)-EF_(2*pZMCg2v=c*UXjWm4-M8wmMi>%Y%V+pgmkexv8Bj=VtbKSimU zBVJb&%$X=zy>g|5l>F~5Oua9U9GQPtl3-`A9NDQXtz{K{F39IdlSe$^@ezq^_}ek5 zZf9vPv*ng%FN-X)dUO5hQhU+9u{c*-v|M|Duh*Ol5KI$t6njff`K2^Vc zZqoeH;iiU!aW9DA--{d@Ze~4Icgv0oUXg91X{`WWj~OefcaLvVs}JsEn~(EUf*XBh zrQZA7D8qN%>e)da``NV?+2EeiPu6&dcNj!FMIV5KwmaI)w_lyP~shjAn?EjW^K{CVM2C}vV z+7emj(Z1P1_$$Si2t5(aZfXtJ&aUq9ZKtbTZ@1DY{H zcb#|R8(mQE>bBM}*;#h7lRaX>SIY~6(W^}Rd)OxXjv4UQ*It~)gb!%Oy7Kji{*Jb) zyITAJPDlMQP(nIYahl%xqT8afC!i2dhCi4yA>=b4>DWHI{L8*mH)>;-WDMU-TYB%v z?W7$2bek-H^$93FwIYSD$VAY_hi>+=LV>`0VhZhm|eGPxnKM`Kw ztDx6Zyy&`e=H`Oul2R-52_V9cByGKNP=F41m<(aN!_Of+L z+=tV@$&XL8WnIYB*V!m&IwqB#UfprB(6gtdAGh&U#o=w6`+nYwzp}OH6?gm&_%-Oo z<_B(5FV9}QbNya3+*$CYaQ1xE%`ZO&j#fsvt3xJ!(ojiUD7Rm{`X_sHlMWEY_7Y%V z54&P=pTt@i7|z%pL`IHU0-Kc%^ok|tuX5qGP4MDCc21|8vPOZ`l@&)uz5yYMAG{fA zwb9?(d#_T|lOttqu(QiTWb0z-TJ<*=N30K@pHDQq^)h$&M;Lxkm&Cx_Az*AaMFQ70 z&Se*uUC3d&t+UH(UWrTMn<2J?;J*G`h0A{2WlDORysyeTx_BgK^+%Eli-CC7Kj^o2 zr&L}4eDhiJ+CX$kx|ISD!7&Y1SAO={K#zfubE=={dq4dOd3J6|NO{b-_9wp$W?lUA z6Z7KUzvw=t!Vm2UPz&%fBza4__F(yR|Tj2J`(4F1deTE zb>&#qaLc;aay)a*&Z~5%KZe!uo3^-c;euorHki-&`^j7?_!OuXX0&uOMlhA%((-8} zqj$O(4Ycy2nw`xjjFZH=4=N?LsAdmXF3m|T)axtn7^tO{kan9!v#XI3m>Q-cb0yVB zoctpx`N@XeEg-WvAfofM%@E`@$e9y}oZ@m11Toiyp32J)`hMec~74|kNo`kbGzWNg7HTP7j-X&&(E*YT;SY2uK@ryl2bLT zJ$h{Ih}w@J@WiKZU=x1$H4$k6?lgh5>Gn$Ul?|esc(8_{9Z2b_^IEb_RYd1x)Q)B3 zW;C3izLeN_rLN!?^zF*eaEBYMrRQ*;r@v8k*f~&bEYW>bq$i8MTUPzeTiT!`Kc+}< zIMaWn*-=`Oa`-Ekx;sW>hDqD-fqG5UBGNq7p8q^wQw@doRbcF&?^3144?bE}WpG?9 zcKj7_aXv+J=iCXs2N5hvM8^n5S1ACc=}Hjqvy2p&ew39AXS}o6YjWUo^o@ph zpC2pq!&_&9W78HJT~^bv^q*hYFR;OOghfij19S84*b{x%GXuT7i~2S0D<8`zW-sv# zSn{(hKZm_jy@f?Dr&j-9I=0%IEGUxNE{*n`N;b(i*-_@D9*zphq-%}eU_ee0TPCm< zOt?r2GArC^CR@U!a*z+P@!@ZD2|?D86hL5nI7O#nVvrRHJ+d;$Y4^a*cCg+~Ri{|kPPbpBiPxOU>*rPw z7fxSroYQf1&tyP;J`lVQp~rFv^aRO#sY>5q>F!kgMh{?lh&@cHMJt#2}6fl~mjEn0|HCsx)YLp`d^#G4nf4Qx7?987r}SD|+3(4}<`tg@S2NjF&j zgq6__DB4!(h4O!2E!}k(2Ue?>i@)5`aAG{G$KPgLV~o{f^mgbn5XLr6?G^$9=W8x{ z?^eivYV?+4Bt75HBL9|)r3rte8~*GU)Ckl76t^;=$sx^L?cirL}C`WHjP-mUOwPDe4+{ zq>Y?wA)n}`XX_V5hb8MD$oED<-2U?mnV5Ra|H0dPM>Vy5`=i+V!Eyu?1&>k$rC0!^ zT2Z=y6s1WM0Rg3xK)^0dlr926Y0`ppDFGA^5ow7K=?Vyh7J)#35O{M1&-dN;-aq&L z#v33cb75!U+!AehX|9~cET2>JrApMqdGze*osa9?Q`GHl!Z z`52Y`+~)L@Qn561w`!YAwY?d$!?VHObQi_M!^FEv#`}EPn6*TpJ)v00bSgBeI?!yf z@BK)61`_+O^r<6pFZ50pTyL;C{xb6RUaKoC6gM$M#b(M{{l>$=cjC7+h_@jsNlh$7 zF=x(l$NEw5u^>gaIpBb*S5Q>i1*IktPvQj#s2~M}GGR_n)CZmMQ5SB!>ogwimB+zR z0z0?{hHo+CJQ#b8=fW8o*@p_?Yu9tl8ILsEO-OO=`kS9C5DZ<&IJWe_Ywr5i*{F{R zxV>S?~NZYkfF-Hm9>(#m$;${4)jW1_`T6ziUO21c z=1s$rveWOG*G(>0y?zfiX_S|3SRvt#JR+Cw%8Xy)N*QIFR>>%Xv z;cBZQZ2X3{Kx9Xogh_zFz-s3n;>ccK{B8~+MttPsHo(SYP**&cF^e*Ncr26KQZn9| znRsqOuDfBn{%Y`XB~|7b;O7h+>2#hOh6>#2V}e^_v9~7_FcDiEq?_=^bSAf_+3k8@ zS6crM!)zS};0(QTO@E@JU|XGJArTFRd)qH@p1sM-m1r~^LF-?8eENj#nT`kT85|w> zpqfZABYkU*a=VB9+M&GN?HdOrjk$OQnpjcK(gV$$(`QFfTwtu`z%V8}D&&NuyLQeP zEWLE)diT*ekqDtUZ&-2wKuO+fvgQY-dvPrRiCy(+ZS40Nx}Mf;4f(@%q5>&!p~b`Q zWroG>CjgvY6zher83=R{4U4raxbqY@s}*aeix)m!Wm+wHD{gk?!E;_cr6MA`q_lvX zKLD4n&t`ijP)f1-ck#O!J4w-dlU>7&%93W+8*aLMSgR%`(}B%)csKG9U-Ni+m0vcB z7rUC|r_~qxeHTNJ{d`_mXZhj-1JanARpG3M2V6choPGGjrQSZA@spg!(p;(a+dleH z`tnZ(&<`Y5R`a5To1F}6DfK=oHUXQf#x-H8TKvPaVl?qx_&vt(ogGzdUwHmC*+Y=q zkfxmK=E%<4KrINlg1%Y-$u>*Ft+28*l|C@strIIl0@5po-hK`qIhx<`>R^}Y+71s|Pj`%FoUGK8!=u(i z9%nUMFG^ac&$b56L)%W-cJ~VJd1rJ!aqG6`AbG)qfxCk0JsJmcH}<=4el8)jcK+Ta zKG2mxwIxwX$3qw@5@U8=F6P?$Y^{tn6X{=e`_WPylAZsd-NLeFcMNu>_La7-z##3t z$0z6td_r-vay5+iWJO_Flaf@|Rcbj+X`4elI%t27T8X$`pS{(| znM_7j!C!K_#P-ld=4k%%(bCTe-8uv|d*rtrV-u^PsrlE@MLq-NeLcC>YLr##7&4%y zOK#=kg`K3G4lxZk!PQ@Ej(ZWod}d&>H7wnZxumw1gFXmnL#tdvulzz4+S=|2J{lzM zTSeElYy2iY7q=;@-@BT2$mVoaHB{$lr{{V!u9WaUSTGeUf;Hyu_WGQjr#!<1Xu`at z(WFjmer4j=DA~uxF|LTWRhrG@1aZN#Hr;{4Lk9F<1E;tshwsR@wC`nJc|VvtKd&I0m$T#BY=viqn}R?Z@1dvO_MHbKXQ-Jf(o|3-m-v~WtSCFAiQJj zwEiPKR3#c`wq$|PbJDQ|>;x&k%}e-S$<0i!K#A0_wV7sOem2`c-yWp@<={Tv(Ym=3 zuYfJ2Z7=)5{Gqqbh?7q~I`aJ+M9Z!13Ov9>xe##KC`tTYU~izVsaYswC_?jU0$rL~ zDr@{ar$Trn>?AeY>7=E`apv6j{hz8pJ9na4(rd>#lYs35pk3R**8@WNU7*|CSQdi% zM2=KVTr4ex!g5Ir0!!!#l-g4myhkg6UA)U(zuOzhi(2!^2&;USwKd(-?QHlK2QP+=W#Wy1O46&iGJM1$}|>bi$g zz&oaM(DsHK1FLC)4j#aFIuvAR-WxMj#)cfpHp!=$X0_e8TQNG&7x7}zrMH_crCigB zo77NRK6XQJo1K|ieqD|C5ONzF7`^|NBI&Fd6m$OORG?q6ex7>=(t`MN5g@gLg32ag zyu8@>>J?Da$Mde@U$*4`&x=K)%xg0W>v$eACrTwIDwdaE z!zVy_J%sxc|B+!-Ztp-9Bj^4t+^gs;P@cM3f6UU3&PZwo|C{BL7n0G%W(FT~8 zV@O{LErx)oNu)Q>D3s)Ul>w+b(2mjVU4(>_Id-YVZpUvkV_JoZCJwdxKGS`*HnR5+ z&G+JUJG9}!$-UDHz0SH=-=6B~3#fJ09(8Q>8pBRN!>O=V{C0=Q32|edT>QLFGBM3ZYcQ;HtxP)kX2!?5mLXc=|99?i<#;`O z@yKM5@N177#slYQ-H*GszSb~9GVwr@rUp$#z1j`RT%E__y8C&-8Z^^}{9V`hk zFk(el*O@k{lZRDo_kN{VF`psUQa<;kLMFjKFsiIAXSW5m&f8Lj?I)Oh~g3Rm#O)ayO_OiFqSXSp8zVT}W8i z5>atQTSt7>|HFM;Y)g=M8^ArTpyw~1g}11P2jRC=KFc$1_7qW`ek`hX_h%FMEwYYU zNk!HIDDT&Be0uawjw5jZRq#X(?owqt5)OU-*B<&rD9oG!#@1MN+ZQ&Pz3%*a{FijV zKa=T_<;|j7i%$B*k9hco^S)N-?$v)Z;gY?IBO?xe?P&Zv1@=gfD!umL@$1?+k~jdI zwXLmo`s&o;7n7a8&gGrUXyt-EXq5CEZXP3XU`nA9p)<2M8)%h2Yg4{~BPb8npw{>O zetOp6@ojArA{S=Z2+?n16R|2fZF8XV&8suGfz_kk>6;q{71y+`-+vngmg^Rqz*XP# z#>?)Z&wd@(;=;bZGBICM0+aoObZy7}r4#53tEer)Uzkr19%KvH*Rv%yE2l4O7y6+&eY^uP^Bh%vB7m z3nX$6EQC@VYGb(Wh=k>6(;9gEXEPybRTH3e7pZo9`wj$$rVN3hy-3agSAmufkd zbKMfTq0R)O;Cm_?zSoDuS!nl6mLqN~59qEJ2oZ}Ipg$iU)aXQZC-9Em!D>zpU z{5N4uYK!$o&*(LgacwI3>&)aHm2pB?FeRws-P7hi0etq_AI{uH1vks2Dk6 zu;)UlxbDnLo%-VC8}!Wov5u^0i(4CVMUY&XCS2uc?9i2e6Hh@%7i z#-m6U9PW7TD=``>-g!1nn>i(3J9f_LI6N?wxKI70L)%qaeC0+n9x$|Dga@>3AW`A^ zy*NO4s9b?oR1V}GsHvMRH3DncjI2TI;^)$hYbD^gBIBU00A5+{-JM%Gis;}MeqCO8 z&|}(tSUl9wA9nKwWByB^%q(a^F?}2x?%H7*Hz=Xsa+9l60@dWdHZ+KNy`m1zV7obC zwM)tZp9@Dtq~4LWX6mr4!!^f4PD9P)$S@AI7CEsa2*=h{0QlPgI$pmwSo2U0(DC=p z9v-{O_uT~h&#JVqI7FBd>dZFF_J;l zBMr>{Z%G61dqHv}zxcZfb{jzz#5|)_y`7GwVsGkqJicU7G-`Ev4dJM!m_6VZ%qySbjOOg{a=Ay7Q`SKxk(EIbqqBLQwhgd2V2S3Q` zE&=v={J;EQANoPPpQxI}PGHgB`stzWJRUFbzQL$ihwgL3epHGc0D)ytW?GuaJtQt* zKm7DG(YNKMa68kDy z0oiJ0%EN%hBuOX5W;{~M0b_}zqohivojb_)ycp1!2pjN5UTFV3v6_bFE$ARDS$KTD z#c#{#OWt$#7?0n<-#r=Z4$>Nkbhfta-bF8l4d`rpdm$B>pTIUuXS0%s5ZS4WJn5=_(Pk~#gMzn*IDC!D?L^0umd-UtnoH! z9X2Hnm=Lv^0y_8e6(NUZ=h@HQsZ# z1Qt3fwZ;_)1aREUuHUmmVZ+%=4X6%Sl@^DX{A`E!D;+i^qj#)JAuU0T6!~3IZ^mbH z_aXiK8Utkwes>n3A4pNI{X7~KHgU6JESwVRAcWk|l@%Fc2^t0d_r#rmcF{Wb+ z8V}xa%RQ`i={(r|B&mL{gZa3ogCxrlc9JRYcOfl+u# zUjF(ZRNO{}X269Rb7O5S&2`wZzwjq=q|hU5`p&WBTB>%AshmQQXm~r->rr}BJ7MI6 z#O!n=(L-YVutO=#JYh_M6aO8*?S5odzhh5^dP%TLw(e|sOU+cI&nL%1m6F@VL*ZgZ z6L}YI7I*ZXV6>Bd9T|ux6Gm7r%UN&IgFU9>t!Ytq;5IfN8#2wt7se|J>lOH9D7utn z9n9NTOgW5gI&NKWHiLVV>((=ljZ~1)n^_8Em08oe>&xG%E|loib5;$mY#Rkzp-b%z z_F_2|rxBH$KuUqO`j-k&EP3MuTa$~^;m%xeE2p~sVQ5z}c!(Mw-SbE)^|rtd#D;Hu z)eS9cccG8itHAV9?fAv^!*$(j>0kKruGYWbiHfHO{CG@mSD`!(HNxJK7%ky>fp&rN zStkS?!FwSthL;an6xBhnM#;`E8*xP^QP#dHfo=jg-dywk_fx0IFOn#zO_kZLO3`R7 z34Z$i*QZXBj)D1TI_q+(bhKlAmka7;1BBqtlT)smqZm*a$-Hgdn|1hFY9BKK z+mudom7%?Knf&6*#qJpc(LuYl;bzn<_Kvuv+dI26szO~R`^Aad73VLxnMD`Qn=1Pw zuE@_^XeE3Z(0Ol(C7msDyr2Fk*Uv%r%~V1X{)A6&EIr41Rkya@>@`gLW9y%_t|qCZ zI~FqcU`I@}{ayZBce1>1$|yst^W!_wE#>-;40WmfB$}rTiNkAelA{3^X(D+WAK<4C zqaJn-v~$J4{Bv#)p?ApT!;pl%Z}&)YR@Ay?vb9JUE*0z5ba-BKNPOdP(yMnY9qM4; z{d0TyB%sM~ z%!O3AeK+1VIbt0i`$Dmt(iHu;(WUd0N!xJZwv@Bo#=J*S7vmO18`*TPy$2?4<}Zp8 zA2%gh5ZyYss2(Nw=eQD6(s+9?PLXy%Y?inoXVKcB)TBhrV9I0oFl`H2+H97|M&HVy zoIqo~dU#8&p2~yg)~gyczpTc^-M|0f%4~Um%2A$nEyH(FG|t!J@$QX;yM8?FYTCzXCgKWUUi7kUo$;=OQ<4A%|6B1_l5q`wndzSvs{>@ z-A3Jr>cj8dr_Z$ty*RFdd18Iu`0!fMcem>gto|OkX0AJzfb%tEPQ}uEW)&qEsvSeI zO*UCJ<3v0QGuv*{JME39wKKlI_(W-`m#iB~W<@BTk09A#qV1(kB_>&8m*k6VNC}iH z)O|HB&1$y1#A=3fvrkG4OOr%==h_gp#1_L;z71VjnNoEY51#rzuM&!>v1&~&{7yMd zQ1yRNRraKl))CXz?PX$+wk!Lkc`sAvqqTZ`yw$Onv+AOPft(i6_V1E|lkbuuit)C~fOhsyd~|hGXItTz}`|q+_;D zmGl*Bskv%tO3`*#Wys+tiNmQEl1FbCi_L_vv$q5X0ru7~mA01$dkW2KuUH@3R9Lll zprCf`$LIrc;*Fn1_s-URa#P)uur;#URQ3t0Tnh$!?Opb`hr@Wxgmrg}99P$&1(9R( zZrh1FtvC2=OEsb@h+Zpjp1D8$&FSaYK-$>~LENCwMXJl4LR>5x@uvnRv6B$Pq_d%) zIu9uB_I|#$J^IS2&tXxWN6QIhhi`b@y^OpOREZLTKsZX34XO!?)?A)+Od1%CK+{#BhW&K~#I z7RyTko%ajT4{dH9OIe}T>Q3a$1hD!X7G z<0HtZf)1&$GpIXzGfSsS1VvumY^&9f@Q*Glwfi-4vUK`R2aML>`0q~zMx==bEU9pt z9GAdkkIV9xH}T27|53KpXo2__kE#4nRpePXTfK!xv^y`v|WyDqP zU2n9CNK#eQ0^6Ic`wXwvFRiw4HA@H#5~ut#KDpyprfz%dV7y7*D%6-$yo?tPyzVfI zlS+#DdfwUn*mKzYUmg5dyCBAKTaAwrc{hT!;@i#g5?>qccVK)Jfi=XOw%*cSd$+>x$QlyA5rG3se zYP^lSu^N+4Y?JxfJ;{})p05~hp!&`uf+pf_tEY83i^k7fFB*I{KhTv}`z)#b{Dwf4 z->qdYS*4_umoqgKxsk^zk4=M;6`xFsv?Vj{hO$l8SL`jEXK{>zt7HS8Y&5cWvrVJL z(c4Wsa21UME7Kopld-&h2Y%oFC^_9ew;lmpN28&<`{jg%Fs(*b} zN73l>5pc{ftLnNmv}pYjT4qx?Yl+E4F_o`0P$zHUF#!nPz*W>)f_`_1%j9E?cL%sWFvFJS-^u zmrFzVPA@e|e^P)}P|wM{a(hf#P4yV5Ku@^bDMO#YHxl#I{~a-$@Y=JB(Y5@7K-D{9 zz)cygl^l&|^B+25P?EiE`X%4s;)(Yp?CGz?{DTU7ddbte3pwnvQqYzaySfr~;Plhz z12H<{{uW-2p$9u|z(IjRIcSME`G=?vp+Mw|4tl5xcU)bX(DkEaV zAvcP?$myJXoW!vY^RVb@M(^sx)d_s}Bv#v}N0FG)!&2G{x23u-!35|2*c;Pckzp?z zSMscX)PHow9#(xoZF^FFHp%8Nx3A&xuOS=zLWFdxY+`Ofjg48?9D&$-5G@dro!Rz zMEtUjc8Tv_xxFOL)qTt=lK+r9NU8I0Q}^BqBn=&3x|5<(Cf)CAi57$3-9syDSkr%# z$AbIHcnxDRW zsS7K}YYZ6ioch_-)wOsBx*bfsr;Vzv_ugInP!XiZ!J+>C7o|c(zoC<6*ipvjjwpf zDjG$QCiT~!#>uTZf}QB;Le(#P^a2R^Rtfeub=a{e zESh|fFdscvj-8Gt%%}Yq#$@l2(i8GCE`!HvwEVbqVDXv>Cpuyv+A{dR@@ z=oLJ*23CArqkTp2`uTlHF*HGf7BXd_dn?fAbG1OJ5uuo9kJj$>oag=T0hf7(6EZf=U4+McmT<8e~0w)9CQ7DC#8wHc@bW|fd+2EtSF>RPbt51yB znEzSWmXWAhmKoa8zjP$;$zLh$x^)w9h>qz+87dJXYua{QfWr7WiUSV)V0i6(R2{Ibg8SkkdlnON~s8QQhyRFW)noVT9kZ1eVsMHQD!?n1rbLkdxR%6o5u*pJg)Vu2oU_0k*1ql$i`&j- z`Zyef{`^3+`u<%uwHLidm=A|N7mw`Gu6A@n)ucL}!i(!F4`gkLNL0I!qzZ=h} zDph}nAlCu-5+VE8f=Za6fK9YZA^Y!&vD28!J>OJB;({U~!i4Q@;&!)A4pc!MZ63mk zamn0Z(c^;h{<#OfdonmUqVLpa`|4)K6fvT3iW*v4sZ=U89|W)Sx!&_rpLE1@vkV-N zkjqUr?j!`3loZn?mTf9oB~H@@w-5GrDfGd0V$1hrB(%cF*EK6oc;8kx9pIa(-Y+>v!fqrR(n06NX%9h9g+Io5q^T|1(#;7qToVrE-Ae6Abj8ROAgB-1d~tEcX$wZ@nx!VFniG?gy}S60nll#mdt+Eav; zLqY+lBF`@+R6#in5z2ci`=N*O2XL%$%Q=@!rm$fE;>nPt*uskHha39BDht(aEnbl;cq|Cvnq z^wrYEU1whXXDDTtZd|1DW?eE>yGWQyV(XX>lKSAuz zsY!+du1so=dqVz`pjyUlF9*j!pp>AjiOs=r+=*GST`(ZMa~`G`!FM!B1+uOemt;7y zfp5P+c_CyQ2pqe%et6r7JPP)#L@V5`#RT1sgyRO!zjMd)MSmcKXTj;Lq$;R!)>VIiX+* zx0e8C6hGG`1Q6XL;w)a72>G2s9}|KYb%HtTF1992bctgi(%z94gBW-Y!=rz$-qv66 zc?t@$DEkC+#*Kwl$~0u+eTfiD_u5odmjJ3UQQAD2&n8Q5r2V@_ZfN)UVt)U5SLFZk zt|4T?1Y7nA*8ItpIV#^kiu+xPh~UM_N9OH=|0*iJ18IiX+{~p_HKOK3AZG1*&Tp~ID1|Fb^_;(88V_=DuM2-&4)J#jmMZGelG;?YYL7YP& zO8GzDkA@SH&sL9$x8BanH&z-U^aG}JPR27*sIgImu;lF_N5uN%Q^HB*4jZ_-wm^8G zT^CAk^i5a!VmgLxZYm&+?j5%2Rm%x}i?^f+me;bn)Ho)VhXuhY@g=^BkDmyrkcyCx zF9L@T-d(C9SX9}dW^jtfWG7q2oR^ZOF|o2JDldPBP}2cn2T>a9HpN4Ft%;t%RlWE( zXvI|UFbnrzh6TsX=u}f0C7^5*zK+Hnzg&}k(Lsri`J$G8B<9%^^RoH`A$Ee1 zKsAlb9VJd&r!i#F(FA>$7qnT=Q*~ICXt{CRIQGY|vm%9uXERi1jWg%|rs7cQ2h4{2 z?-C7v0`aQKJJy5?Vw%8u&yU-ST&3Ap)V|6H&AFr!F)TkkY64KVnR21-9i>i3L}3#9 zJ!zN}a$zL?wyBTMhT@Q`ks}H`gFJmUuKj7tUnGZ_Mc*y?tI<`r$2_NOLF2e`X~nLa z?UL6v!8LY`2t{;6m<97LEG^Es=O%*5%B?vN=)dc!uGi4%h6x|fnU#fmMvd{vQaued z{7WZ2)oNoki4|`CGz6#OJD*O!iZsbg;dj{AK=4mtabh&WznPF(WwYi=YJ!s`*>W<( zOoVEwCH>h<^%UJ&lpcV8I07+IYFRP741n*a^m3{F=d)eR#)}qyUQns%Jhe+z>9*lm z0ejfZ|I0{%Lq|5Ec~6)bAShBql3bpz!LirJr3C2GS-LN~y-w-7L1exxJ2iKndhdzS zv2TTty=3~VcC+&whxqT&8u3k#ES*&W21}pl>@kuzi!g6A%BEcNA5GS+#Wu0{)4FY_ z`;rwyPVAm-r{(CYGR+X@MHY0UX=V4Dew~TkoGoJ~+nY>@S^wQbBH88m*TR1L%uZ#h zu{3c>)s~1OyegTF%8+X-aqB0(qt1;MY8N#b+jip!(}x{X@zd+o3z=uAq!PJod-d;K z0HfxT`fC(_dID-kRLzD;qgmU?>NW6(>-WdjpuoR zuRB>SwWAl0Y@w(#1Pp^tTs})+njf9@2~zpS&ge^YRO#hIOCi_Rr)jnf?=3DHPYgqK* z7>vN`sQ3ki%jcYABj#`^)h^+7J=sFZE>~4=J3er;pLnXb#%xzI!{+EcT@XI>91aFjQREtLbz_}C)l>*woSdv+=_{dYGfr)aJIZQUlM9JBQMkZ zr-G4C@K_@@$Umz}U=ye4L?T^a6jyEOw3E^9KIyr^E2|jAHNEv3hZT3J`nOb>?n)l` z6+NdApgNRDx4d^)C^xE6%No`S!9JNju&CYARBW3^vSB9|31)w;b`CjwEmroMV4@?` znttpAwY{os`w3RbhGTZMrH082hwuD%^N*$Zii9^_Qu1$^tlia*!6|pYQ?g?NuEQ@@ zD0B6PI;0sYiV?3>L1%b@TG#F%4Zpyn7RO<%n$CX_qNTe=HpCK&>)-f0N@HGGIICR1 z4Eg8@kPJPc%<=pFO77GCC!xIYV!=yxMn{g9X&j_2*Hd%-YY4ZH3iS!6hSC*(mB|N- zMSh}nK8OwHe~EY=cBHcVWk+M{&Cdk>SwNpOMP6{-!k5xIc{A*M5A48CL0X1zP(}c- zE0Xwu9ya&E67WLP&k@=7U66?PohZ(+>p9V+z>RXO8ydZw21m{KGB|k7=rR|p{SDW= zqmP8%Y(h*%kpPxF&390 zQ7Ww;r=PsGgB;gv(qZ!|xMNbhO-Cp>DzvC}yly_35>_!W_i|!rF;ejXDw&CDh9xh( z-XK{%XqxVH=o3%3g@t|KHI%BKVt$gO5|>n*wUmxP*62s`O#i7u8`?JacbaBuV*l0y zbY=D6X(+t%E@aa2P@VI-Z{rK4AM5p_WVHa2F zn$!qJMtGTmqpDKCXETpQb#TY_6jzn9@;>sw={$(S9G69scWu+c@SjvRICvBBE&b+O z!+J*X0z(Lx4WNsRZJc^7SN+(8^F}PX();*J@2tJEcUzc%@%2=E>NyF0TmEEWSH@2K zt?s1oYPqk9y*`~-%U0W*tF>~QRaM#_lob_6m&MtIR$nqHQ%tAqS0Ybt5K1M#H^ryE znqI&4O#PrLxO2;cN4$DVDp>B!YF&;|?3E65^nm z9VBSoYp{O{j79~)_ps|~DzT~cv!#XN zmnSlJ_F@GWBX>6U7pkgiu}lGDfAZ1S`tgh@w@YNukZewCXy6gE_fmIt?*{hqFe zDsnuWl63^%?pFBJWt-OInx|6_e~#F;Ksquk3MWJndfSLdpg#GyiQ?r$IiirM%c6o9 zs%-)rMb=BFTu~hqR}hg$xoypbAKv&$Z#}Iagz%ktTB$mH?%k7vwfknU&vgEIDI2HS zC_e5a5`o+JLQ~MifZ3S+WCSBl?8&>UfVU-@nu)w1YErv~7%%3oWddGmKWviGPoTzb zWA52A;Il?ZOP6;tK+VjpqyKg)mI)_UN#dzUVq|0o=}q%_57g&u=J4CpMrZvFh=8|( z*Q_Gse1Ah4oaJ;F~$Nw+dzrCO5XLZZC(?+TL6ytgAJ-2G@n4gW2{#z$G;t zm6!{dYCmHyLR8s}FUQI14ZYP=qD>|Y4MTPhnm9&YMa?aYFDhHODSSI^M48qZk(n%> z@KKdo7D-T{UOJq1r>DOd7`@MivD4-!}3@qBg9*WQV|9doTW`oR8zf3D3SP67f0Zd>mZp%_E!A^Id|~xNQU&IKVf-h%lv(tTJy14mqCsEkF7gNq{x|FV_vsvp| z`Vs9k@z!rqBXC=Di2KElh38j=4{RaQ6YOPxH9DqwC1LRkO3)L#L+92Bo z!TpKGQLdQ_19rZxUIA0Atzjo|vUKb-$aP}1+|9n8P7iGwopqDdQ+j+06GBQ$njFFO zKz7h(+{9v6NVA=uSF-@J7|F}HX&s zTY9u?kO{YM{kWLDT(NwJ<%C_*U|(Y9C?&~vk-)D4<+o{Ts2)sP&rki@^5yhUY*?g( zSxMvJL%(+o%U;){G$A;(I@FaBJ2tWb2l0hBDJr#wvyCcb_9 z<{e82XpL(Wz`)7gkkoLPet{uj$y@4%x)-};TpQ|HHNwkkD4?yD@{uT8kjj3hH=W*? zZP<5Q&~1hzF@=h2b7C%bhKPj#=$W2Mq7K;pJS4bexGF(KxAS-U5%EC1Ejz!BTDasW znn|=Fw3}$26xxGLyU$(Z+uLxrt&FM2YNuzV#y>-*@!Uya#++LwIO z*0*VXmWPX6#Ulk#6pyozjXO2Lw~^y00=Xy|FWa z(|xYS(wb|6UX@_Yz$Q9FT7_X-$S_;Dra528A1_rSg%ZTSp;VUPs^R1`jp*9p^un8p zM+=m&HN$=Ga45f)0%zV4x00UrEh1}DXvy+p9EF_hv{i;W5-bM(J; zU9OiZXnM7CABSJvuCNqxTD7g#7XEFMA~Zx6Xso%Q;qVdt5rHaiuJA0%!ZjHw;&0>! z-zH%t;8KkOplxS0WWD%+{-%}8R%N8jz2${s# zYlLirg^9_KVP+F0MAeNW(eC-|e9on)T2WZL2qr`MWnJ4Yt<3<`kdVh#|gzRekiI<_u^Doh@hw9=d6$`31U%&6<_jU=tpueJy|j) zy{*UEGOmt{sHsk?xpDL-rTHv<)YYXLnVE5Atn%B05*74>s$PT<0mP@yt9Sr4;Dy zbdO-y%lvl^~xnYccWhny@>L7W)|~_KII3!Y&TzXrmQ6`YWf}{yQ9rRwA84 zQ6>zFlEH?iPj)c8Pt8?$StSMB`$bq4%2Bm#>7GVFi7hiXTIDoyGL`}BX9(p`d|<>Bx3{2lAs zm%MPQ{go4D{=?sCDL(B^b(Fx)x8#!u7@lG(D^iJ?yYt_VNEsv*^}4IYD$sm;nJuUo zz+<=2<3W}JL?VH!x&JI%C)F_9ib0aqPW$VIu^!{2>G*WE@7;^w>ESLHCkt5VJSHQD zT8Nm#7k6hIsTmVJ#>G8^W){3RqzjU7Vj7>s@hzWYwPfSO#*0ULYv2NX`dqOztUyI? zt;`IU_mi)3UsdC7vclgI_-=fw!5T@$amp!l3`xkJh~Sem#-kqo%3Ij6-vRWGCuX|I zdO?oOr0}_(P2*(aG=8Hi}QP*O(h_%YgWK#H|X}W|1=Z&tD-JMfdbEz?K=N+$+O>%Hp_Su_dI!)^x zE8$TKoGdU`D-eTsZ@30qk+9(#j;PMSa$zM_FdI){d!qQfPO>_&%aY*7B-byE6Mdu0 z=YGF1RB&Qt$)x^WuKP(dr)*$Zwpe6`Vy~$RS>8`u&x2M^3xp*zgpbkGlGnkn1y=?) zL+g9tLYnS{FgM-Si~qmeE8GMl2ujJhjL9B=g;O?%RhmzvexVri zwaq6q?r&3EV|YC&Pz!|F3uHTRXhCqEsHyQaHjACiuQn6MdEn&L3f) zuc4>Zs1#!Nt? z6nk$fd(OS<{(aXyXML;%D+zgbdG_=Cp1Su2HbC4b*G-MRUU<`lriSyb z&g)i!o7ZROUp9I${$Qdr2BhzSNybCeDw_t!FcYdyy+&Xa96nAF2BRnQ*Z{hOc%yiZ zk-d>mZg|;SzmY!Vy}5Bop0c-v5*7;Go49;-ZAUvRKy6i-pquwgb_;*-`L=)>&<(gM zIyOi4tKR9iPnyv3NRnCqB(;c|!tAGMo!V(6Nq*UC2yCPkBGkUrNGl`SqgFi4Xs;L$GUEwke0Z-%2L$W%P@#@pgHnwLo78uyd)jP=(l20h@dlKe;d-G|K z5V7WGT6X4LNo*SRD)91`KR-EGTb1b?127EyPZ<}~9=XW+?YTpX&ILKnw<6AzXfY97 zMP+bFy0U#kLY_=8V-3UMyjon7PCG1T05b%6hV6#9+ReFdWDVUXQWBb4U)C-waf?1% zPQm}U({Yei5~LTGOP0#TP7e9e=wKpf0eUiGtm%;R;E=?0tviFOkTe=nwpOeVPdOhm zO{wxM0ONtOaR9f{Pri;dX#3|qQuUdcbCETDBSnuiE^Eh4)R+PJZu4SP3kM`$6V#r? zS!P!Il8J+Y${jQQ-37dz{K}JjZsw(MpR=eXJAFk;uL23s@|w2acxBOPGT$WROx=*wap^w;sl4=52PL~L(HLt>xS2R?x@pbu z;GnD?Z<*5lG$k~rVY=wS3*pmQqui9i7?IUqev}Gg8VPt&t>i<}bj%bW!mIi{PLBDu zsBq8XiT35$?#E*KTI|PuDT0B$7kBl+fJu1Uv(=5~j_&(RTnA z0IT4$!@&RH5v-ODU}e26EWHwf_f*aKeOaN24UR9JWBUHyw5@YaT+vuos-AfFC8g@V zQzimLlb}nFJ^d;{Mm5H-p)j)>7sF4nJ6ZU>R}g(lzqxeRlV5;QnwQs()T)&2k|4G3 zjD)L~E91ybU@2J{uFYgTK&j<6zzpg*xrG*5-=~j97t@zDI$QNvk={h|e1)zteZ}*7%4%#uf`-6u}53szdN z2Se=UpL_6dA~IL$Ra|6;2KrvpS>xh_mUoG{gk`G{h^6R7qfUiDLgE3j@-&(fo`3Zf?o@un71Brj;}eoVYDlm=7hb z9T0l;Sq{V&wL2+QpPb04Sz%T3g*QQ;8AK;bykmrf#cdcf4UaReSjg|alRM+#YmQ~~ z`fnn~`<(>eIwy(4v`21Quxl`E(GwtV`4}y$Ywx~JydBYB*(yZpYc2j@vF8_r zX2zo3)y<>g$&N>r3yTaqwpLqhu4_7giDP!In5ES{hxW*A8&|lpJRv)AEBq5Kwo>42HG&7B3j5XP5CEGjeAGxKtA?kmBs6qAoS z2DVc~HwSKg7&czU1-PT9;p(<8(<3hf&;=cE$O@au01eoK;Ikd3*fhRL@J;Yx_CYX| zUR?2mfxum-f3fKB{&^!3tsX*WXqsf2lWfH%bS1$@QLd+T1W5m7?+pA(Q7y3Wp8f$n z)z#PDhm*S#2tt$KC!L)Q!9!Ae*mK)_s8-t$dC_%{5CYVtjf@O}ewPlxs^VM>K@C8< zP0ei@n?L3iRHoJ+3J4CUrW#<-0ki(DCCovKJl;MzjIrLd;M72+9OK*K4!D>;f|oG6AtAZP(>42mb5*jxZ$E`3a^~9_|w#J z?y(19dU3LrTz@iJ!4tOw**Apga(cZjI@JF=SI_r~D=p~Pj}8WoB+eqGWAcIwzXlM; zU$ zYLd@b;j`nKlFzX4s~y^*OCK8HOnd2^8Mkb)_+%Fx-Yj!Ten{ZV`(j}yYY3yX<`2=R z9AHst$39EmDA zw57M!YJIgSXqTKiD&bO1N5 zz_z1%C8fabvL+J)fj&@Mpnfij9SG<%TunB19ot^C^m8gGtA|VLL0Auk_S{A@@AcC0 zd;sa~6ke@hVng|XyiWG4K8Hr@z4c0t!20<#X1RBe>xZj}1{jwNQ!I*;VgPSzjZ4jw zD&KCTxz*R&SP4&4_$QebY}vSyCgF$nCkb)~n3@g?mQJV|38IGUjq~)N=NsV}C`0gT z2{YadeV-NTx9&LmS-#BlE!*G+YL*Y$p266jE!eXoBnQN6M2_VhLoEmDHXi5`h+9et zyD;K!KG^su(0f~7^TS!YYAQMc-ETDwEZd|G@q;E#+F+2nakTLKdkyRKp*Yw_J8a`( zNW7Xf;PTX)mS$?@P%1fDUAV^zp&f0~9uR0ga$2R%!aHnCW{8@hjh2)m6gOa2_%eW2 zuwD&eRS^nc5H_AUlujBg;Rz~LCB3b$YF&1On5I8oN438_u!nP zgWpVK7mhAU=GX9mAM8r}-rX^q{ zRQJ{b_$Itotoq!nwSMLh>?V#UP@F3JgKXSv&yF8A3Cbod5Z<&WH%$HB2TS{x$K!H1u){H zc!37uVY?$;no|X4Ak@JVdBY{wfYKI3uLlF-sXWK&+CVGe@dP72nKb!T(xT-KNI1q5 z!lOA`b6@ef9C8Ii=mQj0-P>OEYrT9Ut;ozPxTKR39vmUOBXn}Z1e|fRJvH#U6X$al z({vUMGsupRLf65)bsMjM0N#5xI@J?If`P(>&aGEZbKP<%cq!mjlY~#X4_9s^%a#Em ze*{F{u6{fEV79*1;EaP{rpzhA>2^FA9c>ISY?nB{d0%ib`9Q#W^?Qcq2vz2!vFvky z$);4V^HYM$R7gS$dL>xIV{xQNAtLXwmY>ag8BJgA(;2}x#Mz<68*tdR7}sF`21iQw zx-O?@ktk0;n7|f-!GMjKzK~UU0fDI5w59z@S8bvxp+6QZ7F72~80>Gemy{e~5(CX! z3p6qi#C&S#_SpAfC`e9xI|>MTPPMmuWQ!>e@NIHCYq;?IK!LFZnJ zg1u&Jt(-cQ*2yEOl)|Ih87pD@OAzSj%Bs;|6mHsY**yCMiFWTmL4l*hb-9s}y%wA584WJsN8g7R79RQsj0~a^cg7A&s4fKP zaFWufXNBJg3)@j_*yxc8_CTqo6l5J|9XDl;Hj}Av6)xpFUoF}mhLI(c-keI zzvf(fc{zbTc(XdF;T|#vRL$=S&THIa41D}VXS*$2bDp7IRuWy)u!48nCvR~4FwDxu zrDOw4TuZ|R+2zwE*n8Zmy31tV$?c{IEWmLv+z=fE@))NG${knR2vl6=Sa?C?i_Z)- zz+RL@h|2Ob5AY(A)K#N5#VjYa0AYtN|7yh3@n`I7T>u&UMpDE$<#E({q>Kp-_>&d! zt>-|^CrQUiMY9l_PMoYTla3!T3I3;HsRh$Z=j^cvkS-|$LF=3mY*jiPKetUIl}lbE z@mz}%@{`@@k4))zw(7vrN%U3pEGLuW{yzm4U;d z=a}z}J(HCcCdrVzak*vHNqYeN_G8-cx=M?kLp{G%Fqx#07|C5XhU9v+Dt9jp zU+c9Q2*{{;Ky4CTeeWW#FM;NfrB3Hn9pM1W>Tc-1hEY-2*|_qC10Gwy(oTx}8VQXC z7*yO4m}1=}-^*;LlR&O&^9q;EuAg^|5kGuOME~Rl(xfeqgHSPf%{Z&ha^d-6!VsV3 zj#JZLO*r6=nRx~VQ@<6u2K)lb)xUuZuLBl8^J%X#mF!5GYSuoOP)dA;*3Ye(c_U`& z)$*p{@Xo6z^@SZzJB#*wSIB35Pj8cl455YsT!)hLkp0m1y<-BgF4F40=hWB`?^%mu zj@UC`eM!|dQ&S*g*Ur{XN=`;h^s#saP5G=!gnL#N(Q9U-%r5Rz?(cZh#+Ec-q`mF- zK<}c~4l9`nC95fa&!WerE0_E1BbeqLMF8eJ$2=(JEb-LL$?DUx!B}Koq@L;!RaSRZ z(O9;nCjR`c)-!ZVjFwu|eveXP4!>Y6hF>TO?b{FOXOK;)Uv370LZn<>WYt;>c*VOZ zZjA+@gdCr&NK>n6$x9w6g*pm{z9SSpJ}eieWqMYaC>;Q%Wg5usf08uV8awELz#p6& z514+6iD))ypCu6pt?DPe7snTS0;S|qvXw_GeH*_QKz%;Ds+?)zvNcnAcNwoX)-fj# zY5usCHu}d|;zTpx0aFL0z3=6o=Dp?Hb9sT^+9iYH6M+491rGjUx5YEVE)Ypm4NI$+ zZOuG@N{&Z!jsg{&nMEp0%8I;fZlx9Qg03$l1sZw>6>LW7NAGfEQYzPp4m z{Y_FKR1VBHI$1Vsm^ZI&fRG`8`f~ zXk~{_J4uey3o+6KyJ@Msw4(MBv;IUl9Ka5FHj>+Mf2BpIXh~VOZ`WST4zgY(uvwbm z%+;d9O5kpM`OpkzZwn%(NkCC5A!6?;jw8i*BAo-w3hHgY2&! zFl@h=>H!dKWN*kR*G(aplg-<`w)8&PmqD^+9>bd21X-P2pt$(v-F)+QZwzXCa&!W5hr08tZTkkSI>KCW zZ%aEnD{Qxw__G+(v;?|lK3fnXa>G3E4CI-xK)fNPtJpIc4u|zR=GUU)L*e3&JHeYm z;yWFhKosMHY+1qv<12Vft}m2wNBSGMfeh4q+h1%m!0d|)pcD?5l^IyXZffkYo2sHx zt1|KEsRM&$T{Kfb&~vqW%jFgi1{fPiv;fPH=gh^E!VYn~gxHjBN7pjsQWmc$!RkI; zI#VWLJ6S%?Qgv0b0-20QS&?5GB%gJWIb5t|mS@-$cq2yU>Bl3;Bv1^NyrLyFKhSNv z6DZfbe`-56rPaM`eP(29OE3kfQ{G)Lxl&MD#RD}+$5K6l4tiMS{@&z*iZeRt+H6rK ziZ7u$k8Qj%W*u99dT`gne^AzX zrs~<}z7k%p4a$%Qp^D$~sOHeQ>&f)vDduUS^J|dF-DN8*XkO8$G0|rVOiSI9tAwWq z`R_oy*^%6Bde5&PZ&`7_h}T^a@8=K3*P25H*`;{bLkzJ6V_6aOWWQ-LyXny>)YWaS z8QT$!FCOlqR#Cz%Gv7=#vEdzGart=_q%B7ygw7Ek%aY6y=*PjAx%H<-j-u`WPqVAr z?E3&wGCXso zm#*@^4Q(lB&bd_WkiNg6@EJiV1+^EOJun{IC<(ht@ZBf9K5TDfiI#c?1lJ!hwx=_k zW10}y4Y2Uj(|Wa;8+n8q?fm%6_OiLk;q~Th@l^NIET<;FZ_2wv;mrwVq{R+Hn`qzW zLPOaTx)+KQGM&o23rpVuBjc;CQS$v)N9{pYSb3-KuONw+_I(Q8RPh>6>hxt{1RKH`E$vwASh#R%FNKA76<9PKimG3E+}c3|M7osnP};sAq#?N$pFMc)hcO)LeDL(uDG~R>0w{rOxSlE3SC=nIX#rYx>y#&qkim zh{LwTji*+qo3t|s?-kIpysf6L`pj(&w85ab#|_D55UqHVK9S3m8Y@t%6xl-SAez{SOv7gFEB7n}ox6jj#?z z7jnUu{2B;un~ZU&56NTDrD$jOeYhc57zCrvku{}n!2-#jyTvpaW1afWlUk^Y_LA6Qha& zKlmSGAY%M?It=wO6129=zS!O>o$hY>DAa7}c*{pua=KJ9y-HW#=#AvM;loV`T zF?c21fq^ULr3l%Igbn2QCaf9AOaj5rtFi_-fjGj;cpJ|HYblDKq{fS! zF)YBM2`1>S1D;?8o1J*E7Y2S?5uMvwmOa)>4qsshiJC~ zn_~9P_$FQzCoDt$d};n11EbviS3KP=Ya1)Bd)f)cspl!wJm=73)t)RUF3XG|{|Hvi zg{(MP{KL85I~z(w3WH@WP5iMjFTY(Y-OS>K0?a3n#y+!506@OEeK`U~3Y!88Gf;FU zHV+AET58e6H*ZZ(DKg3Rj%o5pD+R`Mqg%iJyY8*7s~e}f=d84+IKFIGccK?{=YqXZtv{9ldgxz@((^SAPSE-?&oenthZjmzOnF1bW)}O*ms*2)>BmCg&Jd zGBpC~73QV;-vvX`s<_{U&wmBCVa9E%XP48~h9SFPnjM`<^@arnrcvi|6PQN!>$8gR z=JBcK<>GiD(Y|00&EGv&J@PLsG`fJ5bMbK<@7U&`=j@e#w!dPKEogh@Y?3F9z#mk5xE-U#I7GWt8@v@#IqHUM%nh9fCo}br-JO)em}* zBiposd8R)IV;kBZL~%Zg>S|Db`%kA%U|F1PU0FLrLZ;ovQkeW9I?%ndeKv$#?GL(& z<__iZJab>+i({1^qXR52r|DSN&?bT@v95;_EJa5^_cxOV&*U1MX6=lZxum5a{VIJ= zx6c;xJo0eZbqhcueb|n>qpQJD&^=`Y7hX&UvmEN}GE8|stDtjx_YzLTi7wg?<(_AS zdD=|}^BV}mKx~SNbk58ab(TnYn5BrLzIPJ8n1nhd<0aWRn1u^FvF4~v9pc=R{h62)qgJEgo!|M+{%QN^L z;0M|-trd&$2^pU;T?{x;Y}bcdEo^$yG8YoCB%8_{J@WmjoYv>gnEu)W=&nPcDiu`s z@4t%atLmV~*8{YvZI`AuDtC>FpbV>2OvstyZ4s)eCcuB*{*Mlv^2lF~G+C@HDN5Jp zHc>&D66pC!&ejxIM>78jb4<_k)(I~zO2@h(_;zsdOWlRbs`abB?F$ZBY%v~M3#ydt zy!tAAsU3O1>OOazf*&#QcKyUredGZ8UW$wCZ1~_+?ALvsF;opi0Pyu@hh4Y9>Jkrk zX0lFW$9`ru4Lv{UmZskn2*wUox2Lu^gOhej_cDAvixXg$Y|ANKyoS&3Wt9o6Mr*$> z@hjTk3d-NEhd3H(C78cVQ9USf==t)r-j4yE8J<^-pdsIeyDNY=-`4m1+ZAea!F(t_$$2R8 zEGS}5zl4w1uUnfoxEM55$gW0yM0V!hQP_bdpx`n3B~w>IE*lRWz(kZkwgwD2J1V#G(}sy~gObNGFP zr*R5Q1$jhqW&zat7qPdQmcrY|xbP?#x|9#L+cyKwy5^q?0_kut zie+0I0auQ;JPD{cm^We0^TwGf?^oG`;=r z8MCE$HF-0)|2@azz{j*7rhf~7D~v!DwX4f^8pF0__RaS{b!YxPZtwfs|Ig2~_;0uW z=bl&c-?jbk+QO*!@6Z3nC+~cp!GFQ=KT8QLum59CRr>GR{uibGi&EdE;D4vn(Ecm8 z|CQVS%I$yU7W)77nT`KNssBAts^otjAD|0uzQc$H8--C?@q_qdYrwIZSBp;+Q+8Iz?(3+jeM~_q&9NRup+DkxzZ$_!E3o0l7vO+n6PXogj zK~EUn@oMpT&A$c`%3L}`5bnA3y``iJMrH~;JRJ(Q-$ z5&{LRMM};{$mvzHlbE*o9o*5BxU51PPiF>w-F#Xq>Y?JfJ=_aLiduZWqPA8tb|zez z89E{m3*Un?cv|GT`XiZQF8I|SR^8Ush{0H(x5yp;d zYl9r=YN@X1Lk+Td4;TAD-?VE)AVbcua)ssaTlr}DhTTN9U^lT}AX1y*|3FD@q^D&SDGzukb~q&LN`CCmSH5`< zLF(5baR~Un$kF|M^2VTmEi+oFw8By?@EMN9YFy-FW{e%2aA|l?#6*p#F&!sQfa|@Z ziu+Zs4KE5avqe*77Q+MDG3AJcAbYPz(1wjRtRkFm8bPVq-VvoMPc3;8=pnOlM=y*T zxX?#&AY{GPR#sMy@NrgKNY2_js?^G?WMKyBMAmQG2enfJ78-AOk=NRr>4&z=Ojouv zQMAuh)rL(M#=b4A<~CZ`C^tE%A5piDQ~270=SLvWtVOBbFM!vB?7PFi&)^%+XT%;W zM~WJd+5$Y!gtU!PE2U};;1zop+jp4mG{Fg_d}aul%>>fd=nW3iB>A9&}^ow$n% zifN!4{cG_W>k1DU?YU+tMB8$ew0}B$ftG{k&X*@C%!XsZiQJmua&(fLDT9ZGt5G4* zmkJExA);o4k)p&Y<~*i`|4uw7vsEdB5P1byRtTAn<@itq3r&DfF6k@7gB$6gC#*NE z$UI%k0WDV3OKu+PrK$!Lh!!!DKF)!I;1F#vUXOHSiF)RtN`ln{^vG!T=V9Nh5$F!raMs;@`vVq ziE@}Cke`s_P*r9x&@QRz#@-6UQ!AIB0xYn&Vrb@PaL=T5{$H7HLDiuE;XNO6G`F@~ z2o@}qE57Y`>IBTl_T#K*E|JXGuR-7M{EhJxh23R=s#+BC5a#-;6#TQ}v!TJ`ny zi5@dG@v4_2E99*&ne&a|0t4vQc_8=0Le)L;1BRTXb!nMz+_!P;=JCl28EKNDndL2| zhYab0{V7VdTksN$hB2jDCgS_h*K$x=uP>kAR@$_U6m_ENgYA;{+6X1dq`tm>2O%Tx z=$c!T{}~VYYSZ}ac#0pjZg?GQxqkhRqzQdN)%&`ys;pMy1X5 z5yE{F;o_D^{pjJrzWLQN(nOE2nzj0zZSO*C&=%F7`p_FmN{Ti|g=3Li?>2a~+|K+m zj9I(1e*Rj_#KM&Hzmn%(O5oEkjycUqbjnk^%1Hh#6)MF`(pm=bo8EA>u1{xnl40*a z3g6W80pAn@em%fz%ma)Nd;j;LyNei{#NX@FOOJfDyNiQ&Q$mv4Cb!R5@AgOpG->~J zk+PCwvU2#%KK8rYeAFb3!S>wH7f)DiI#KoKADUKyHWQ}dk@Hn;?c`NHOKq_EGB+*G zWG*xuD>&@{D}jZCCA;qVON#8Zr!*rtbww?{!Z_^0ZnMu3hfraCk=KW^Os@CqP~Pn` zyS5G%OKYx2gwJWyTGzx%=E~s`x6oz_O1W0h3j>R$>z4MVO2ttb?q2?56<>?l@^w(J z&9zjSJmCW7AA#LBO)^D^f0J{W>d0{Upy3VM&4EMm(2=}K&V4<)xYQ$b>VZcj?*$RA zX@f2d4(>xF>VhfZ`mfPy!-p1&q!avU8?PF{T(f3vNMC}zuY~mQsR4lu_+!0=di%ig zTERjk=hOn|olf5_a9=F6)-^9M+PHsI)}{S}SfKKif7|2Jv7ui;AG!Ovic64xi5^JR z8<5hMhm^O@UVA_tc^_#b>MA-E&QE?;OQ`sji*+)-snsO(ZzXAQ=qkZ;>DIA}(1XDK{9^owO0CBXSltOV|ee^Qbxp=IdUah{QR^0YoEKRW|T3I zgKKg0c}f?2GKx{`j~e!nZE->9MosJyq*Jvo6%$3*C4DB>RkxA*ty(+FQ%zg4%vzgE zrp-navHH{fa7T&uLeI#O+Wps)GSu|+5wMDFp%(H2ca7n1yA?^-x#g7=lHf7M>!YbL z>m;Sx1&@I)?!RcUe;H6@uRaFR+w}381g7PBhU5x4MK(ZU@B&W!)ZkY=QYyPJ+}d)T zC78+rb}|HoOTM)nDj><`iXwtjJ;KqoL#;Wde|@JF3-eK=EWM3H_?VKJ*PCgHpSg;6c zv#J={4eJtjN%im8aaenZ0&Pi$=%Q)dUMti0`)UlYEA>1c=n+&e7A+1$!6$LFktz&r zMDOpw3dmiQp;SX)JWr$R)hNCT2eQA>I$IR@){CK?@xb8>Q}Z0bvxoW_f$PH0dr^d;(w>{O7Qi3xG!^uXfW%S z>g9nF89G#rc@f5rQ?*T4oK>Lu7BY0SY{1b`6VHv37J^F-m$JAE39q>vO${fBtkhww zcPp*JzN(fsnuxx}v|R6-*+iI?97%~=W$FD?x_VCa%&CK%6@|wQQb;qpXcN*9Nnzg@ ziw;2k5Oeh`<}M+8`Q?J`5w>XwB~{?%WwkwbfETd{*eYD=Zw;Sqe(l+cs{2^0LGavJUNz zZ-VXgn9;z$=wHNQh9qGGOTm}&cI{_#@P|;A0Z0AS-50+Pdr=%aOC44FD*Rq;WUG}* z(}tC|yqMIDb~jbLr9m6lZ7`m1q3>sO4;uH7A^N#LJh70_|52hz6Fg30E?4s$G+Kl7 zNKB}8PVF1RjlzeFKQehlH}~p=jhgTVmq0;G58?{3#|Hy({<=;-dC>eQ4owW@YI18j!qR+NCcEeNR4Ao*7anG^Esz!KqAuT;G zM1gXsoC9TEv{(WQ>Dy<_#jkZyWc4ldL&mgBdt>ive>B(PIyZ8+qF#Tv*RbChKKux} z1+-?pvr-Z4Od_VzTP}r#ohDA}YjL6^ZGS@Z^PfP=Um6gsLu*fLK=2$76AYs=`KWBA zClr)2pmR%2HbI^o#u3Z6FK$vxy37V1T3}&S{x%8$H~w?b*R(6c@&w`$PbEEFf;n7o zVbxNDi3l!XQ z8;*}eHtz`a=n93&3q52rlyl@0?9%(OIDOErm?XqCZy}0ElStL8z&S^Lq|Yq~=*I?W zb)#B8DY4JBVyvt7mP$n?Q`~CRjn*_lR$APhh0OZs> zQ=Wr@?hMFo0z*snVF-YC!oGgQHya9V-4K(p_6;2_%7Ogv+_}JSO?YooNhH&oM)jpC znJBQ*=varWK&!t%4Mlw}Gm3=KU_DQKaPlVeK2{wpFDHpFvDD{L(ro?V3YzL65^ibZ z^ce5Ta1RojAA9c`QIV(`PXY@yJ(HwAf5TVd6^Uq zt&OZ0GKI;OjM4{7tNNf-BHrVO6SDLPvmQdr3VC-ztw{~8`k4?$S?Fz$X8NY3GMPW3 z;?F0z#m?$KTWv!94t>&_!)TGIY93OvNKY^Jueh+c4Tw6xkk6D}&;@&8AP^yjx}3C5 zE3F}Q1TmTy1Emg+)GUMX?tXvOa7iMv9W%G@Ui+UwxHe5Xq@H z+9CbQ8J?bIzI;T_sS;>jqLYxq=B!#oPgkI6+FLMW?!Vg9Cj`gyLr_D=YwkOWhU)S~ zosAB=Uk4&#z!V$yMvF@El4#Sh!Ig}fsYCKkrYfaYt5J$HN?}W~iJR&uN1AsydmS*s zD=I6~HF}QEP!?m%``{4h$0*!C!7nPCXi83UAK1F=1ryDBfj_xwW2DSh`@V~DKvQKY zy^X%Qkj}4*?4G}tPzKz^QD!orPYlXwKJ%isP=Od8twda*a)yUG)9}N|?4Vt6Gixs* z!bkSW!^-mjFNn?d4}W5le-g+RIRYJW4x2yk|5`&X9Q69@C;AQTI70RGVZ3^oI&mdO z>&+eMszLI<59y9SP5A<^YHH;Vu8h?xDu;DRstd!15bRj=((Ct|PA-6~2lh^rU{@93 z*I-30{ktE@b zq>vSh3n9n(7 zv>mz>HPN1wZ!GWUYxhnQ#!$z5c-+0y!D+w-?pX(7Q9mzSxalge0hro$bczc}T2i;c zy?>gEd{+{R?P`Eqj54j7o@lwwCNrMIrsMe^0!1c_sUxgIh*Yv-A4UQo_SN(25M;i! zSS#jcX%@?wxU40XFFKnpBb)uE&AxNhlY0Lm#yY_HIiL+OEp-^t$v8KzjQfes*EseI zeaHBFljlG$4g$$LhrdOq(ROI19Cen8pA0)hnTOwCjd*wddux;k|v#Nc7a!oUId0@gk)@kx%*#c zc#u#lO8X2Df?Cx)#MPce$-1^)A?HuXfRRq+>?sy516mS*=DE7tv{fWUAM+hkeGB`k z!NK2yZBfznF_WKw z0@SrK)sM2wi$yE;fU{c8u((-Ymta(bbwz-Qt(!$O9r04rW7XJO2#LyGue)`lv>p9?%CD;W`+A>aptV4dJ&8>^tP5U}9Fpx6#-Sf;X+B4F|AFZT*R|LZy0v~Lu9!+}3R7ztI4x!Xi;BBC28s<4p{*qcgs%`B} zA=DNQvjX&Z;2LbX3rn;y#rUu21;#z&y@r%`{XlJgZ%quspBBGR_(P6\LEje`D$LjLlT%xto7@t^OK-|>T3%fBem39QMwtnV}InDz`c%w zfFDPB%xB6_NNhF;(c{ZH2v5#0gPsJ=a>GLU*CiS)97UqbKdjPL><7NU^%kSl?}G3o z`t$Xsi>s=|R+#Z3`s52sQKYtP#4CY5=}m=lkkW3`neK_X&=Vto%CStmBYjF5s_yHB zz3>gV+Jf&OW92n`&urvW3zzCc>9{D*)B=~=H|?1MwGWern+vtWP_^K*wDoViR#ZuJ z2dpHCMvktZC7Iq`1zu)hhrscw{3~`_zA*Z}JG`J@`ER24>%gq1s|k%g%P@s+D1t^Eug7mJ6Vt;RQB0H()qL zs!*LFqzV=36xdDFh0|A1n-fZOD|HxrHtNOUYAJU~H*B$zG6(ZXf9j8K8;n7uJB<4T zOOonIF!X+X(|4mSKL0M4?L9jFR0#G*gk&f%mC@BM^!=%puW9qMnZ(FQ?XrbX51cib zyMFt*NjL;-sU5V}_zCKl&6_pso*;TqLYk_VFN!2dF0|Z6urAb$Zb)HfLr~7valF`& ziC)LV{HRw>8cv?X*3Eh}lFfZSv{XY}GZ(pEheJ!OF=Zt!p+-;Nihx5A!?Qf5^l34n zz6%wAXk-bZruaKo5WaLJU{bE&79j-cKtA?z^*isHFUwZq*)YnF=3vp{`IzCFiS|v^ zC7L_`N@5jk#02Zt>!@cwk5DT9`kW*s+#QMShN6N%E+uNtxrjg-P|rl_-aGVg0hL>&QpvKs{?=dcKQHqEV%P(OW`4 zPTcvt-&j-P20v;otnpJl@OWACG?qXTkr}c*jPv@Dl0#(RI~)14ugc~?ZA*k}#69}t zj!=1Nbc+qRF?aGHS~IHlQE863aPlXFu;I~c!`bqki6zy~%{n_l zwgb*6^z{nR)?Yxf7lIbt5QsSiIHIj*M2Y_*YC4!@thE9p7aFo)`{LPOQW9NRsQTJN zQB>~h`}_MeHRqJ$GBU*yiKLTEUkO34Cpra z$=jOh8G@hS-bN7!#mvR6%j=QvRa2>qF>FWOT=+b7t>ow*2Ty*=HhOHTnKxJXTKAx_ z=>lMx3}?Du&92oi-8)?GgJpl$+bHqZmlXT2b~8wf1}h}w=TblrV3mr)7w(<^WmB8* zC>cyS8kXB1jdq^K=<3lpyQNu+7K=B-yI!FMuiGXoK7&t8rG%*tw!5ixR2Ma%H6Qg) zvs4Vu8Zc`VYs7siZORgEYxD69mJ;|eXjISU-kr}86B(vbb#rn_3LQ8u93Q@Rk;tEa z9kRYYYb%7|au^`|_l|8w{uHV_JaO*fta)g#v4VMn2{7?0N?A*~vBe(a-dPVJknH85&mkMT-PX%98VuCcA2C>wL-X(D}#$B?b+J6^y z(Idczasm2B#E3f0&=AB-h5xz$h#H<$Hj-voZ(FM#qTowL2IB?K60+Vd4be+^JfQ=v zjfbBszW7jf1&K*X=MZhbD^o?sM;v1V+w&)Y3JC+Gyj&)$OXfQ^H#w2+&_{rxW?&(O z+HhGUoH`-hU#CC9XU1?g{bsFwK`^$IODfY$C;m{^Qs|S}IKJ-h;OtWyvJ=SEHRtsm zjP%sgo{5C1X-#@TSgCUA>rA0LxC3tG>~-*(DJ}#MKez!%31R!pot{WFHipnFidbgDYuk`uP!1li}g(8Zv~2-yriLn;GPDIu6m{m_Hxs(eW>9hN^GJzEHw8 zoUGgg`AQOS=Qf8%cW^=fWAKCUb)NzSSz7`|dE#`N_EdLgyU8N*301!%k7% zALKnZx%z!agl05#Jbcs**bVk$pU<0oLu7>nH`dG-zM2mIpDJOPpU!+|LZOw$5)idJ zEI-5Fhek;i%-guy>G+HS0`6`0m-)slpcJr#*IUMacRKwW1f8HuPq}(l2RZ61{Uf-w z|4TQ4Hu@t$L**$NN7nLj!+q0{KM^vZ#8trZYip9EU+Vi+2xqE(stIF#&psAEzvAv+ zHGLOIVo%pgFr7D>UA|zj^V&&spucU%XaE_UFb!s_$3irGIsgPI+(9;`dP-FT)k4MH&t>F3%=kjj&%2U) zOr`U1S74=n>?Su^EBf|Q;ZGL$jL-IR>$S9JGOl)@gHkY8Xg=dV27JHpcJ{*m!P=Y0 zL)pH63ta1tpQ^-WU{k2<2dtF7En>T~EOs zZOz9#f}HV3sue3De{^;XU#K|rC;+aDgXa5|^7Grv0X-W8N7~JYnhBD?b%S|Dy~ch0 zr3jXFq*3wrIWn+HI-viwOnX)6?bUA;3+lam;WVwNt^&Dni3I4#HDAhj~>b9 zm8Ya^S>qkku_u@Wj&)nQY}CuTe#v!y!r-jL;Jw_K^ofRbZ~5V!C~sx6&8e66i|^dN zCS|cg<`b06@33~8J?UjDeE5*7=X6okDTb?S64kYa9*Gs97m={T?o@O>a5jwH+%Ppu zbM_U3&bcPXwwB>jp@)k5=e~hh^tg=fbm538og@4r5z%850z^?sSkB+;Rp=p?bE&=5 zZ{+Q+AD!zjUhMk$EoSwyGWZx~$l(i}7H+H)?#A>@#m&=J%)k4_Pdy(7-v%YPYaH;_ zRhg+71#1o8eqL&JVnrDg%-G9(`-t#WE{!lajJ*6Nwe@(xpae&a$a2(JS=O3xwLp&t z0yR9pKDGhxZe_nGvi z#*0(DDJ!(mjz^F!G>{sCp3jWYR>!T1J4)Uk_nkW6{qzLWhKhKbnGPiZR|F1p z16?kav^099cD=oF6+M<`>FP^8V6Wd(E`P6YY~^LJ)!|ZOaP`^TfeL%-j7I1=$a5=i zYd_E+BR$R|+iKcCyQrsFdq2J<)h146!crtWGLiavS1xdGfE2wW~@Gg6v{?)33 zJm+0^%M7|)mcubzt4%jwWMOc3FMy+ugqQqm?fS3b$i0;vwW6+6-nqGboAEB+?S9cp zrZ?eC>eenHI-hImM6_eL4U%GjW)J|~+fLt5l)N9Wu>aJLPabt^+fd(;Es{7wPXEE& zD!=gd2^@TAdkQ>MsvLg0rCjys;<8wD*}U!%0(*33w#txsX5^?D@(c?0C;y@DNt}Me zQ5|9B)$fLg&-W4WrX;4S%{`~8CSP>yt{>~94sll~vY0{981!_*^QtKqA7F~@La{ZA zsaDya{uPa;4L<+-lqXvy9pRH-%GbeprKT4&AfSeN6iwAWn809*WZ=0)Mh1j~XE2uNRTcQ4Lm2yh6$A zejjKr5~Arm9t*c2j{u1TJ->4^Rz?@K9rfmqDQY%cN@Lly-M}k-#;b>v3?8PGJJlWz zjozfrD{PlX3b*F{Sf7rb%_T;9)ZqY$GNdn582v~_*4jm~am682m;{V}tKFlmj4`S# zNNwFB?!XVdt-Cy;MoA*;iF(gx5RHQL-|>7@liGjhLFixU+to17cm%3Cnr=@;C{d(6 z6t7*IyB0FW=uo1eTRRMW;irSHs4=)Zfcc`fiNN{R{lq1~k&MmlTfr#x$5K{#3|7nj zY&}alpg^gOO)F~|@iF4&pJyH}FXQx7M8g2Zt zWL~u=(tg$O&6{rcUWB;_ph)aCtXmQBc)nV=iV*wQK88K^W4U}ebGwvHrw!g$9e_%} z<5_=wX0^nrbZ!K+&;0fc#C{I8RWz@}HElSbJ+=>0l4+Vet37$TmA__ou>O$h!9t#? z5EvC3mXHTo>*?$a+kfCd;Ny~CG`Q!MV(I!UW|Q5UuIsGrLgL)h8|tb=_K6QLA|>UM zosBix)#olw`c}L?pUyp%=3u7Bu(nu|vz}&WrN|JtU*6-;Vnu4Ll4^TPP31ylp}3og zgR#;WDNa;0FUTEl^uQG>t)a?8yl0S{^Rz#BjbUnka$n@ye3xv^mxT>-6ll@S`v7_+ zLNW`!{c&LP?6SvpsWSxI@NjD63Co+-PRlV{^l6M=ZDj`>Z2?h%s5mwExAjpdRB_|b z>8z84i0%~E=dmIN`zI=J4>sRcG&g-`^tHy>p&d4vm>G>4oRgI+YHxX+!u05m;sYyK zQ4jurFng;N`s;Rf>9BI^d;+~ik54wrI8498+ePCBv0s1j@p+z3;%AXyY5c<_d%>{+J0`G3UVXn(yf=oX0 z8y9LhJCpBh-|U?%D{FaIY>G*d>#qrpisrjRAH(|SS}Tq>`_Hsoh7}Z0F<*~pn+-G} zGF-d=em9sVTFe{qoR9t_$8D%C#B{KJ2?j?9Y2Kc)n^Oj`u#xat-S{k6eDI(49C3Vt z&gX4b`k8$4vZp5Od6|+>Hh0v^DtzbBIbQfp_?LjV_ukTi>Jn$3wFRdafn2FyZ;E@5 zD&ae>=e)P*I+&9ORAYMkTiYe-t47|K-a<)fOmCjFIyCR4$zZ~j+jV!F!OgkKH3{7b zMI%89%t8P7cwB{}yNXe7Onjb3*-$!jPORUp_AamuZ6#Uh6oG^c}%?G`uta z*mo=k@FPdRi~cC?ffmngdQG$&Ehx)3q|1Xz+k5|eUSac`cmVY^@kC_zc_XyFfDFijXK(uGRA#v^L@pU;A z{~oI*8N{~k)x zwz3{y&C7PeF-K6LJ1W9jp8@}+9J_8sj=0Uw!`v@XB}6RUK@h;fqHfma&c7Y@mg!YL zYPfWx(!-Cpj1;te^yk1Gv9*$ta{YilBc}RUbhAb%x+Am|pNlQJ(ocwj<-%9c(v@M^ z^^tS$ITRB3wgQ>k@3v@6Zm?6Azlk}UOMEd1`*ro&EjZ74ez9QHz$%<~D1Y%J2jG!gm+^lv;)NKQ8BhFhIx$g7o6oGOe6j$4D8DW0V4LFPVAPe@n}+L$v-+}c zflA9t{UYG#paTkQ-MrJaX+MU!@`h1T)EiIT%lN*&bw6^!4NhJ#!UKKNBX_^LoCvz9S*znb5Pp8Q&*^69J)D>EZ;I9jMG%%-x+Nvyehj}mc8LrB;--M!$; zRJdN)S64L2W4I@GT{Iu}eO)1@WVFnsX;Xy{!WrK`|FQ}&81KZJ$nlrJn2En%p3pIy z&Z@#E2MIiLLW!NpHi#qMOp$Ofs^zpDpt{(QeP8uVRrRnojV`er?ysq88 zg)L(vsGLU(yRSQ?CPo;0xpBq3&nP}QS5ISLl9`#Y^$MFG!d2PyJE5dq{;68U>cLKA~%l-1^ z8Tpi(VfPBBRV$rHMJl64kd@y2bv1 zb-!lf5Ch=hJZ73Rpk2*W!J?LL`K4$sonm_Qk55*nm(Mrh9m3_~@}JX3i#|=jT>+QD z5>rgND{Z^7keo^43?W-s=1ZgVO^gVXBDw;>@3R;g?OAv5Cs{sjKA5%_SHq5F@1P?T zHl5Zvd1uK{Q{Cas6{&2;C)15WhrmAZu zhGZMdLo5T6&LjD$vm=zr%7THszHDXU39cL#A1l&ji=nr#dy7TzODa{8g{8IczsgN} zj5_fr&Y?+o%&R1TYbqhJfF_))gS1O;{0s+r^)5W8ok*1sJ2LB z#vW^RmT1xvsC{jp5Fs?_Qi~@s@RdGqdzH>Chl03bgOJsf3&)XGX47?Xyh$)-H{K-D zk7#YVLqV^D%Sz9dD9zq3UK++H@UnWH)9`_)g&3EXN}$U~TE6+c?8r3iJ4$TCgP&Mz zL!^VNuAbPL`R|giBqB=0sAQ66KEefCO~kVQZc>Ru+g(yQj5Z#}tHF*Hpch>^PCM7b z;WqX@XPvC%B5ftsz7qwfZxJ#4^_d16yV+zPhb|)Xd z>dExDe{)(izb_jU5eu0)D-Bb`$-?D=X`UeNv_8t(Na97;3%P?r!LK*u<(sPq&xT+CcEkxtskV z;2~O?6(&rEydtXX{2|(?5m1UN%@sOPy8h)+Kx$2LSGy2Hz+{^M>bYP6pBSkR|IwCM zJ}}tNXC7D3mxWDYysc1slH&+`AKX&9a=*TDOQfE=*Z4Ve1AUo^?~$R?keU|-ya35v z{ne7EKy8T#>P!m^SMnZD65RPrrq?dLkO$9}&bh~kP{YqACSBxo`oLAWLYlB1O>2xU zVKygvus%Ja8(&PbFSX`D$`Fgq+M?1){A8O&$qHv`xMg2)hGTe#hRr$~PYe@&v!bZf zpJ!M)|Ay$%%BFsa9ub>#N2_TQHPWSE96sUV>AE$#yCi&V=9F9?xN-6!|I+Hlv<$;n zN%&4Drn)H+tJKW&avuBxD@|R$!ai(es{8JjltLfEx|wM z-NTqsJuK%6dza-WWMb-yJ*7p6=8cf&_=Y~~udx=4-E=e*3rQO}h`Uqy(5Ud_?)s1u zwh7=ap%)LlcbaQl;YN3xdDSy;fEWBPvxmENn_q~>;3WOTjf({&b_>qVlIYVpd7O>> zPL&V4*a#HmdW|vjM*~*1R}D@iyk;1jy(wT;Oe*Sgj>X<#zgmRn+sA208<>7NsK8ur zFvQv1{Ro@YX46VYsTK=&_h|m^I~k#5yvI9y?Yn1=YfJmzQ-`qYpOzOF#rw;AU+i$b zI@}^yY(OjflChpLSnrL0P;j62ZTgYp2X5HM4bBqiHB};W=W!2n5B69W<0(vkG%pX% zijnY4f229+em#SKV0P5JR*z3H8(lwa9sk9ucDA<=uZv%IJ&ZTv4kh0kGUc3HRViM7 z`BNLPR_1?+b{qX0?X$USo2shqjK1Hx>$)U;t)%mK>Tl!2@_A35G+yhL(tg;LELawp zThkLCDzozk?m2ZF*F#vNz!bb|F>xEZ`ciMV94* z**2J)m(OC(6pY~J(+fnO?k8B?!iTwPVEgbR*i*Mq-$CdHMJ7oiz1bDEIUS40yQW$H z^{%QWRf!it?nod-_1bhMOKEfk!>mpjs^;%I;YraO)6>l{PY<>c?}aCX%N8@0_P(QMJBSGtG`>_{D)Yon z+^nK2z2a=EP~1~qm-ssv<`U9qcG2+0v@W=IygkW9xo%NSt2|>#;OuN5x&FVJlzu@l zg@vodzNkO5(AYSrm>Bi<$1Jj@}xjjJygZ$TT$&e}aFXUOqxW!STu58TgR z<}XXo=UWgU-KsaO-Y^$`7Ia3c)_@fW_Bzo7 zvjwgZrb%5HB>I?n5n|@-_oaZ}bks4sW=$c#&#-LRBHrk5#apM3Hf0HX?dTcyF^DuB zj|hAs^Wh#+vI2K(2#N~yml|EmH*;o{e>Jkg4Z%D=H7uxU9C{fQexN(1sxwyj&+VTt zp{kpO_B|0ELYo0@q5vaRZ>m`7nLWv{jY9QUW}csA?UhYg6nPI6a<^w~2Xr}$mRb*y zmSz2e<=di975%Zl!fibW20kr`Y_Zf=YR^|^I;&V8mC?v-OD4b$Ym2^*bc&J$2U&OG zOUA9g`rb!-an~Io;hfa}_+5G_|edeKW--pPOO*8TB zS)lo}jZL*mEu&}lOel`IW~ZNYlLV4DVp9g$4>@^frTP0?2%-7eAnXtDl(ql}2%_Uc zIrlP}QA_f(HBk?d@MmXK`De!{ z=LoFvDbyUODimtmZ40x|!*t3XH%KoqilX~`myOj*KMcVjAb!(|*DZQ9#$Xzq^Uyg^ zg!L5TfP_2Wr+H>C)Azd(%NcS~k_S1XfE8>&uGRY&)yuVOq^-Red*0jHZiXlH{M`6n z?*&7uFofaZ!FL@@U_2Q<3lXB-z?<%qWmXe+(`G2;@5^eU-%k?4cq||o#LgWUW~c17 z;fccBub&5f?*mZQj~BRPD|I8_>-xhuA9V;(Ab2R)HQH)PYqj#Ud?&2OD^|OyAi3`o z-!&H&kpbF^51jp{1N7P< z{%VG<1~&^rkqtR6sOGWPwJ$q0mtx^Dg`AFj{2d3qVUEp#**n`87>hhUd*f_a$q*4Q zK0#!t*^l}fSe%W_8+v<2Y3iI&3HOQoHqH()u-3dBAG#jy*J-4R6l%wuoixZ$GA@e``LVe$UdF(th)jVCo{u}Rk8HV~TFv7^W778t&IIO?U3Z6u_4KIPtxgINaED;wSW6T8Yh!&ru+Az4j{OH$ zWwQXn)H<6Bu-!;4e0vMhhK-0e1^%XyMP!e`?bdn7hzk136d#MCnR`R%2HVeLn7;<| zaz4LrEW4DE|b~m*Q`1#o?V)o0x80-wRZ9MJDHnz5DII+v-?}iI*fqo zN|5t_NVV7r2fBTdW&~mn1P_D2-NZ?nirsrl8`Itxt}j*?^0B~sW5Rgld5+YTa(3^3 z>|9jSlee2U)I$(-vV$7Niqv;W%KC%@cM#T?fL2>OC~6A6>+4*cdD=HYf=z7xvr9cr zbUs~K#EGA`*h5zG7F3Z$Cqj@x+0~sOi@#ETFSrN^4UgZz7P1IMbp711jcjcAn?;t7 zHQ9X{%qgE$RNJ+pFYm>8INyk`IEWdwE~GhidXn#K+L4@+K1akE=@+*l*ml0`!i%P; z8;+H%_*=`b9dFN94PY%>{6&=oNkkUd?!J)gI*v^L(Mq&UqB6W~AeEs%B|6vP^|jihm|?5R zrd>UjvmU2Zo09du-WqVtH;pzj9UVaCa$E)A+8QQ9(Wc>O5I* zFg5u)4TiMArVne^%(Rq$2r1SoBB_#k1GuwA3z=7nWAvF`gpgg`y}&lCj{Wx{^j*E< zbGOWzuIB2IrsX-+5^jK&vouxI`HhF=E|q{6)tq%vRZA?lesH#0m(;H=OnezPthHdB zW8W>tP30%w1wheRYVC~S#S*h5pS;nj&=X{FL!JHvg;AfG0?jhD%#TT|>{(!@UNy z{yu;jwnEBfQ&=SM@g~ExNggT2(>3{-;^x#mw?s;!W8Zp4V!v!NBf;%6kHn#pR(zF$ zM9_@}%NubEpRq}0X~Ci)+F#QgPhF6h;!L>STU4e#cC_%9Es=oFQ5cXsfS-&Iif+^J zig>W*M`l%sYdv?c)pAYAh7SLMgwDT@+2CwVq!4L_LQHK}atl_K-xGz&HJK3_W8v7# zk$C^ib>TBDSFG}rj5iMyRXatP94IOsNlsfTtoE!Vj~BLav}~AW+nC#zW7mo~2Qwf} zwl;OWL|Ek3b#mzc@5cPb$c46HifRe6=Igyl!V$9I^q6sn1tEUZ9yaqQoLyL7Z9elH zXYK)4Kzh$L;jfA<`~@R=O~hIw$jSS{+|G9CH~{eT_`DKbu!EKiAd5NJA8qZ;Oubr)U#u9OEv*zwcJ{vS9kz+LwRS1 zXv(ohC#-x^Se3MT$fMeQQ=@lDj_%2igs-O96Va@teAIvcunYbRS)Q?9 z47*K&ULi=xi#IPw4EL)|l#AMQqZob~Thb|j9{stVTPIPGhHW*nyk<+7A8*g!!Bw3e zwp*>KfphA;N`jkJ?Z@!ts>sqzBM+7>?JP%igQ9ZjP6vl%fYXTIZetkX^lhRsxnHqz zn>-!g%^0DDajjV99+>w%M|dWC#mTi*vbo#r?P@t39Pk^{?1$LeJRaN(tsDt+(hUuH z;`lN#!?}j1cOK``IyPg3%okNm4FzId)>+X>(mwh>O3j6r8Ogu8-gwjCJ6Ir6&P{sF ztfoJ`vP#h*5+*O2-u8GdLsRAJcrxCKoDh{MbV5f6zA{Hgg2+Y6&=xPW!YbBv{6ITS z6;*-P^nH=t4L}PzQlzabw$((RztF!*wp2HNeHZt_kJ$rH?^zV%JveM$P$oqNL|?Rv z<9~7a_T=f#(D;{B~B=o^j& zJiv*K_m>@HgEV)NV!&4pN&EiUz6LULX?&4-Q(YFF&T!5gPh459GPeKaMnfTs72wbu z1WQfKrBbap?dn)_f~;tjkktugab<N(p@51yy-FyIF9MsiQ7ixp2w4~;{w1*N&r#ZWK81YTQSkZL?9n;O4trO?k zq_jR3q!AbUXYbUa$E!R~+7dCl59?lgTq?BVX`Xb8^<(vbduC;M-4?~R!`TS-i*ac8hD&zh)-*%y{*$Hto!B!E zDa=;fe<81`#Mkicu;IBXFNTYhdp+4h97)<8@UnOP8?e7AE3Qr4>f&yOl!A%_e_C)H zzrxL0sm1U!N|LPb@05Q| zbDR#ceIs78=DL3IfjGYSoxvbH*qsR&O zPaMqN9hrl-kKrNm2RRm!nn?25$~WG7=n3JSo~7lpkp^gQRBkrobI|K`EPR5j6m2fs z=mGq^!u0yN9CSp9Fk$266d|O*MCFA>{`)W7tSvbzJ`vW6(G|3q`wE7ekt~<{onNgF z;f+47pBVW*QRC(izROar51d@?#aJ*;wWwbi(jc%7}Gaxp&I_-!LNVZ<(?IowU43gv3ul^ z*kbR|wEp4idq>7fGGmA1Po0?ItFbx~Un<|`=+#FR zk6~BXW*#D}R_?Qu#IN#;kG^v{DZe)OR4&1!5+qDe6#aMe9Tat$ZGUq-a;%e;C~Tv~8QNZ;e6Wm=+U zOQduT1K}6MVM@%*q1B^mL>~5()H4KtHe{_+ITK6~h(KrbS&U>c(_QS8>8me1Ubn>w zv#*l;a!n%+u4IbpmOObPDesWr*7Tz?L(b`!cgATf1&t9w@Cl>KCr9adpW3* z$T;&jeDrfYrEP`t)cX>@;QQyuVtLk5rUfoK~QN z?_%bx!x#4%G7-*@CZ9bvp_I7k6p~mKh>aQy3i>^fUo8p44dabbMXNZK^$`O3{SIdAtn{F~?FzSLz8;9+5Hn#(>FqPoG%f<3T5<1J#Leg{bi0(vC@u-^N`;tM?{q- z6)GjmENCm_l<3QE8nM;{^s3)pyD1cqkXwbn9PEb4336+Z2|=$B$p#qi zOiss{+zs}~0?*n46C|=T*zyzgG)@G#5ueo{xI(@j?D zOWFA9S2bqn5R3%3198K=pAPz%;lJtDwqmLW>pRVNJ`y+2DdTmCX*^SnXUilCTvu2d zmmba^XzhL#RNxe*abns8|G+*m&Gy%fV}fYEqKrq-TZR~&mqQ!f?!44@pg1EnlF;x^ z{xb+5<^2#cPy8yrEWf(RT^;0mv@G|#%C9&&d=x1Uaj>S%xL@dDC4Cd)eN5`gstch5 zR&IK^P>;RlvGLk=x~&c?_=p<|Ir_*HjvqsS(Kl~IfNWy>CsRu4*v#tm6t0lw&|A5( zc`nR#7Y#xa{hm@9g>A2Unh2f};2{c!z*_JO*1Vw>WT3p;3(232`!=gZD$|18wa9mn zwO^;E=$pkc-xwbIelm2klD_4juibQmLdT|SPKw(ahgm4LGY}z`^x`3Y2WDDwkjHhN z+8U%PCYee->+Gqxyzd=A(XD=?xeSCod?N}d&)52ehKP_Pqp zLW?Acr%m7Lx;gay*GK3@a9Guen7G9F;$1V?R%Bprs7RZ49nkh9;kPCLghSM>td8K| zy$h@5dbqO%gSiG3yz+m#%YX4v8qDk+v2gayO9EBfnQP?1vfcfk0Ek*Y9TEWt@c5fs&_k8=Fg2{2QwHQyAFdV?{oxLRK^7RHx^F4Y^yfwUSDf zyFMuTEBp|?)4G!M&gnux5Pw3K4YFw(%qBn2Z&4vp@=ddWlg(=V8C(bDA$kXz61*~N z@-Dq^r1_gaGdHrHFG^Fn`ERx%LfF|eymxw+ufJZ*;a=KK+IsYRz*fzOtyc|Gf6{$z zqi;gaC$waHfPCkAr!I>Ma6zP`?P+pBq>-@zaXNatY^jyWZ;nud3rn?BdV<`QgBQWy z1Mtbme;;`}+-Jw&NzKpN0d4Eh$O^cGMD{fAFNmx{>tqHX^Amjog> z=kYTLXGK(y^}LQI#G)GcHvsKJoO3x3+f_NL_&XH8Fi3p?3jb z+z#xQ?h_%~k6WlDs={&$c)hx&-E$MVs={woaLH5GAoqO`hnWrYh;LBW@-T?M%_Y~j;M(!-b}`5#Ww{S`K!!fz5=hlC-*68N@?D* zwlNn$sErdR2*r099A(IJ;83FD&a#%^iD0c^F%a+w*3l*wf_emEy!1^^5A(@K>HRL! zYr+A%#|umojzR_c;kwPG`h`){F@T8Us`L$ep)6*UPoO&=u(GYXHdJ#i&?hp2Vh69* z4R0aayT}=*vlz_O)|eN${|S8WY8u&?EYe4g1_*?(%PAL|MNfY<)w-t6B;*_#2T_sf zmwz8n2wXL$Qg|N=HP^LEXGiNXWmS#MvJ5G>P0VUn4@a+g>Fpo3Ejxjm(L6-$llljh zuZWts)oa!hn&d9S;IAF8+bvu3`twiEtJQ)*7WS_9Xxs3XNK$+vXoXCit5wc{` zxU%A)`|cq&7U#-3r<^h@KzsGePp$Di6-Rqgv4GZEXeKgyaC1tY{4o(uz!8Qh#A?E@68VK+wy0l!T}yL|}t>fR!H* z7lx*p7{)z!*&P>^afAvO%u)IP7cOArLHbk#18q!pW%%REJdAJd^cj`suwP;dwwMC zB3w965;9t=zdd;2xBfz=LM_=vbvhzPAEB$QW?NZLIF;Ove&adZeejBD$_et(Mj>29 znr1%!rb#@10jUu0+F(M9{pvb)LdFowo{J~!#q0m^m?N|)#+oRXFi}Vv3eht6GH<5% zr|7NH014x-)_jqg$*@FNlAz#UURzqtqX)qi$T|5==)DC~N*T|NM~0s@6ix{ax01V& ztR_5z&EH&}h<6OL(D5#ew!bqS+h9C#9W=x35Nr#=_f~B$9SI?rSPFxF z8P=9q_+?1wSj>zLt<*{kEjsF$qv{KwF@f@r5mBpOP!7HD0#Gjspu{09Bj&$kLAJnf zyd3tykwTs(n7p~kel-;U*x47FxN^N=6WR#HxVjaPQp*?tg+1N$AC)++SYhynzr3(6lDgAv)=31v$F z4gB3Yspjy(*Wi;Uofoe@)$1G)dQsAE{YjVI2d8lTJ*B^i-bvAyS5Op^wi*Wc(ZtgS z5b5aURQTp0$}WZ8do2v&7W|`0Kzit~e9@D^`+{GHy%@I90aFJQbi}Uw>a1dT6k5r; zbEu}^GxJ*=eXlK6aAEr?*Phm<5uT3gfRCTIB^cbi{b{71@(;oM{(pdHOrBGUk^3}4 z_lHV$U-lw!nQ~GjhO$xt!3fTu^pAKuuULUrYekFYvkLhX@Rpn;54+|?3(Dlyia^x5 z?hE#(pJe#u=*^X3>E0_KITLm3hpwY-T(NZ(qe7sZE95zSvDSn~pcWj}I5Fa7#p|5D z1Ndq^`XU`UKDL}|pV#JV`0U1B^<}55aGTrU?G44&{F?gjH-3-dIMS4m6H*DU$Hs?p zzNqFj_hN~j%-cfjFZa1=u6-*}Z^93#rmnjdy|P?R`hUhLM$*ry{RP}BBdI~|p@~V> zvz7ZPmc!`=lIDe)Pd|S)+`MGvk#sb5Y!6cP93u}_Y}LC}mi6kw14CMENA1`;bl@Im z8h?Lsy^lW&-zR$d97}H0RK*;Z+LEIO=}Nz%c6}7@69z8wYYE|CN5>JpdzvbNg*g%R z67tj4cj)uQ!DWDj$v0}6=OlFCgNL6rUU=t(wsNiwd+c=hY15ZHVo}`d4+E4{g_R?! znjSGF_P-poRO508N!+a!a$Zn8lh#_w+{1UM#BOF2A;m#^fFOK}txifO`w?Ltxjpnz z{!;IxmU!V@D5urM-~J32W-u3GPmMRce-ewhKd%nE=0ul(^=H}`No@zupbjn@Vr*yrkFZF+1&&Zn%;RdGFix(W7P+37Ypq%jUHF4!D);b%W{o ze498xn{xk%kB)d@JkF&U$Oa(RZgzwNFP?Sd%mzm+o#9wJ#e#c-FayA9DZ)9((p82^ z7g-H+nlVeV#aKy?p2YlpSBdx9e9Xju9NN3otlje^xg!+0Kjs}eb%6!L1KlV1BuI~n zy0lu~LMQ?+&mDJC5x82c%r~H@UA5|XU?bKg<)ez<%~0@3ZHm)KY!-x5URDoRoCqU; zYt-t>(iDApLP29s8l{E$HYyM~4{fOqMWW_HX^RtldHdhZJMPqxp?-fTgY2wCp)QXz z=ldeu{Y@b8H!H75BttHVS`}oF{JS8B?npT3iMaWttG<9lvHhw8+4Vwh#)_#|CHh zdcWI;4Rb#Df0p|~Cg{D5@;?Cl;1&i3q4#c;+Z^Hmzt`nFdR&VI)maO6f5z_bS_I^l zJ7_wvf8M`}nCSwbs0A8ZlF~!x7MJA(?dn%SGCZwRm4f^NT9^=GX~Egw0kk5A@W-d0 zQqL#yBWRs`R0;(Ob&td9A087*)E{vwfpJiPlzBXTwH1rP52k4#x&S(S1Pl`Veqtqc z0F1xs*5aQ4g@%%J0I3;X-UB1T@beWCb0A%T`11j%ed)l#@1Xi)p_(6>@$aIwWpD7f zpqxikFh6Km2ow?$7ZfgRv2lqUlR?!TgFG;B&Gt)Jr-7149xpbx$ zLPr@HWAK;56F#{kP9)HZIx|!xoQlzlyk4`BNNpQ%xS{+cL$}gNi+kZhkZt!#d#H*y*;;M~Vf(B(*hMHo%7k)h4{$pEiLQY#u+bt>cp2m27k%JhJs}MdSMGL)?g4@L z7pMdrnKFoVffY49{^3Ci_4*8eet>PBHRA+4`wH=Cu-r(^9i(a;+`Xy7=t~VcVKb8v z=tvI}276j_{t|fOK=;}CyNZeb0VsWJg|4_;#SDcF5Cdw(3$+gNITO?Zjop|uy}d12 z`1P-Lyv;X__FMGub|A?$!<@O*?h^K4v z2(8N$tn}0vN`ALoJFA#{_x0c0?#iSeez5&3NjPmN6F!_}XO%reL0Dh}+uvmQcWPbL z4|!D*TyH=)N~{!nM>G}W%^0w80bPaE$HdLA$knaX9G4nnN3ks=esm5+FN)(lE3y^@ z2J_A1eAd$%@2SDHbL#^IWRDw9JULLucjArMA=sbZfoAYPjxE1PRggN1__=4?BBFQ7 z_%gSl76G9AuluG9#z}dHQZJ0b(do7N(@cc+0&-m6==4*!10<@U;}6 zEW-5v%X{ERj04BzzZiM>$b+xA_r3t;2ojQ`oiy|?)ABJ@36pcZ0^7IL4${+j!Edwy zdVzNQHm+f*Wcvc_0Tg7wIAXbwecY-G+lOi2it|=7AkeeDELQjg`OGJzJoi71jU6$! zXYd7VKmUUj#HAy|)tf)5v2<2z2l%~6fE$EZkK4*AfYf0DF8`Lb`t1Bkz3 z4X8Y|sz_^#4pw7&DWXD8Rb2nX`XI#n0}dyU4vMHGD&$|(_U5p5exmq@13@k{5!6t^ zj)g>Z)5LDs=TFk|26_a?_*V--8^&5AdQXb}x4!=U+2hmRWx*`s;wlECM*CWv?{PZz zxFZ^wP4!>Tc|RPOe>_WilE?xq6GydI!@8awMow#x?vX$@rrrtWkhB#UOX~T5ff{DA4 zQb_`JB82Iip5(cibOQ277|p-8W5)!d^yPtdS&`X-;EF~dC*MnvN7=B~*o$&$;kK_7 z=WQsv1~I+en?g(nHf^AsIBwoUN}Tv={ZK-WEb^@PHs`;O_5UrQ1*8@Zb?Flq2}g&j z8K)ShL;~*?K9(PZut340oCY6ty@^!0Rue_0JA!aRL*dS_yZ`O#JGrf@J7nb0%-#Y` zXoej*6td-jfN6mmtk497DZdrs{*F%RT##+)bo}>f@9ISAml01O*MfZRA)t*Y6!Skx z&k$`~=`kbaDQ){k#h~mEh!r-*7_d@f?hkqZUO)O&y$0_DYhb3Mk95#{6hRsPZr(yO z1wVQl9;OrWwrb^ClVHPEPhp`#Zq3m7$oIE%2u~FZ0pzkq1zlH;I8len`|qLd2fgf| zmN`4rQ*ow$Nt}9)dTDknK=P}84tbf~-!<*jS08sF?WzUuGbacM{fIB*>!d3D{APR+ z^}ZFcs-)I)?;X!LHE(B8H|1oBz`Q7jj{gw2nzK?;P5}_hyU%$&Y(J^uU2XMdioG(_ zV?#sS!1c|sG0{E;K;FyAKa;vo+fl2fP^c6D{bFrwtdGB)GlVGv{wJlbm8$cOp4wOTEh6+OrwQsjCv2r8jO3YT%0MeC5<^aMG&#H#CZW zHC1wzhhf8W4xxo%np85taWXP`Pes8Q*^fa2X25*7F=C|Z7YFjrsk zB27!9p`UAY;+9jx2S^D5;D{pVIV=kdmwkZy%#7Xpc80wU)sN*{qmeu)YFStgw{Q_} zBZBe{Kx)*R8N}bK#fK*?%IHtnF{bRT4j}E{e-M$(WlrSJ5`~pMg$8*dSNg!7?uScA z*q&k??Ri!FUS-o{d3u<~Q8Y(hS#f-N*OGW1N8=9E;Rg8y)cC!$mG;8PWX2iT31YY0C0Ix8wplqCfB5mbYDvy#k&8LRIyz4^M0X^d?6d{aOgnCc zfrmwJtRa%ua_oxpUSGoP4q%+|LKKAA{zCykboq~Wr;6f{>1`>YU6C7SJAowB?I7tr z0W!Mbf3BzTm8Z!*iHr5OHVwt78}IFDI!ojy2g*Qr8ZUAiPQZhMRRPr-$SHh5ucv?i zX0BeT3KEg#)U7y0U9>nxW!(U;-0jc_CMJvL@H(BHVug@8E~I0Xa#!#=IOtH=Jb6zw z5emF((g}tPg`I@Kc4Sy6gTvDjheo)MHi7?v(7O;;vfjWKn)krdq}DPuuYm>x8jRVj z5l=p^3}ua2^I@yR93s6=(V>30n1E-QcDq7!51o+ez!WkC(vQHTAA1)oF7tD;6Dm53 ztC?{OcHRlQq;C0Fddfd?()}_vy4hKtzP4?-4ER{-oo?|eCaBNLHIsn+D@%5{fmia* z1ML!?RaAb2Sg%nA6iq6hUyHtpzQmYS_}!1xMju*% zYnhGMVm3%lAQ-IIKEhO$TEuwB#M9mB;d%A_bk#v5s@sR!)d*RaD1FoYC+eygX7sa_ zj=Dsn$p>aEsi@{IYQdNHwjz#!XBMY<+yKYNIM4gXt3&_l zt_4yF<`r0`!^sRY#GRyFP2?qIU*9y)kE0G^=9)-4PRfRA{rROF3NY$=*vj4pP z0z-v#nZcLG;{?`?v-V$(-dKZh6p7?Yt zImfzz{^n&6K~Z;&@>MRcR#O1tD$orTB9uaDR!otOO?Buy-F}tXQp(|%kpxC5&-nkN z^3tQJtnhUbN&lrp9_~yDoTr-!sJW+JYtT&=sMZ)>mjj)M_`GiE`iJ4x*Z+;PyKg;7 zYX0?nq_KUmVYV05G9Ev?$_;fn*q3)__<1`!lo(PYx;b<%tU7z$`+b6?)7}!y$ytt( zXFsy646vR~3oX>h$M;NMiAb0ppC>oP_U2K@Eo0+I&z}-fXa#M{Y;h9FR@z% ztpi8>o+gA~`EDo4?sh&2ekS{)H}`Y({utW3nFIxBh4!PE0C3I(^!7}fj8Y&~RCaof zH78E6Yz%^;%}LsxE7jQWl00&z;ytq|H6p2^J>9ijAlSheCtf{=*6BxBT2DAQ6h5`` z<9^o1psmW$WvxZClb!l13ZgF}opt!zFh@(S_fUd3tP=u1$8a&uSCXtuQPshShIakj zz1ads#XD!ZCMhlT#Z;gkx2lQ#+bmU{xu05nQ2e4RBf}#3Q=TjT5bF39Fd}c>IVN$& z#T~$`)8Q5j@dr*cIPF|bqN0ay40@P56?|VDJ?dEkNB7EmT`J~Dw%`JbhYT=5lOOLTz{L4WCz!eSkj}>$bR+P zZcmCOxX=XAmMi1^s>j7`21xspR}i>q!e4Qd8=MHKC?DVVX?;`O*ou7RrCpkPio_*e z9fGTmu7H>SpWz-NA|S>xtBnITR5;dN2Q2L1!x;c0;FPUgzc=FtDA?SC%sGeg75gxI zKzS&X$ONqBW&CN7wN-RBu(}%v>}^6wJ`@7i!YCuikMPVt*_G%#%D`yF5MN(H=fd#T z>FmN8s5P z5Q?t48(f8PoX?{L_zU1izy3%Woex$S;xR15y@Z;g z;$X5}Ky^PgFltvKp8R`8a7)T$dQEhJM4X;I=vm98nBajjA$19PFQj(MJLEV7)!)gC zILR@qYd>~VbW&q?x*ju_APbl^b6%8)Gdp)q@*tS)uB*%d3E_2-ldN{~xF=enXCJ0pP}4?oGf+t7E1p2>P;i7z&kFe?$0pR+`!c{)}iKquT>31{J5MG4L5Y5wlp zVoFW%nG`-TY`x$Dr{goftahD{YD79bpDw?qH{H^ssN^z)YnB1vc$t#g`YjLyRM=^1 zgyw-Z@9avwZg0DnZ}&`7g32rU$TBnG-jijxax+v#~vbHM- zf5`ZxE#cV;T_t*%fo)OACP1V$kJZwGTPWRQus^-tX9_>%QeQunx4fYPf$!Jzr-;YO z@*)JF&t>$8Uv1*7gw81#7ZoFh42{nk3({)On*}Kgraf(d_=B_^D)=1EED0< z^F5Rzg~iF|$RfLMrIbby2Ppyb z=^{F51?I!DL`tL|VH{jVkccYteW^R@6bMhwzRA6wz+z0ACy+Wx=PY`i)_9>kG#NN{Lh3?T3ddN!MGp2vh*UT&%sCqP1jpELA#zJ!gPU? zB!8cDJc%{hJZ_eB^m>Ha%x-^kvDjJ3CkF+aQfl1~U$St^Ae`zx;{02Xs9pahIyngj z*)3Z&w%oCzyef}Jj?t?Ku;WHgGdor@n-8R#V?Mi$&n<{Po*x!cBC`s=nHSB^0e1~a z=0ei61(-WYNCd{kyfH7d&?x$S4*<(0*C){?dY; zC>ehC+~eYeTYElxWT=bdbJJc^BL1@|d+q2u9HY{5RYePJAoPbISr9~o0pSBuqhD2B zC;UHFPYUt6#YX%uwjbqjZTCfB{2af|a}ekf7JF#{{sElE)p+$q6LNdiCFJP4DgnE; zCMt0BZZ}Jd!b4#qBY5|r&DjU0xq5BJL*6{od}dIufuIAhW|urZzddob%E7GW z^zu4_xLXHY@OYTUK>34D(E4BXtAhU@Yi|M$<=g%bPpejKLK__H>`NJS$pvS~xx78Vxgwk9aM^u>;K{{@ZLcXP~b-F@G$#qkAHlEQIm z8bF}LTU0lKc@U=ywg@yrmQ7Hl z|K$&^kLdW#^$~qHf;eTU=r#*WeVBWi333eAV|NNZKn9~a=*5!LeQi{ zS!F!~FEwM3?#-JWV*+Rn+Q{^2V!}10SyZa`e>jf8x6t3KMY-tjfa~Qb6LqhjQ}XvT z0BeDXND%acHVwoPiJl-_ShJ^!BGeZMq$|8ULqJZ6li&Dy3BX7O{C+mxg>4gy(*p@Y zpYzM@>^-vR-sYNQ8*{YZ{I}I~Z)DYY&pK!Lmoj+1o+o8pR}mT~eD9f+DhnH_$k5h` zdC?!P|BBJh^;_rT%8*pZy;zqZ1MA9^Q=v3{so&`%J4Vq{4y?=CiKXP9fVMNL+41V0 z38Subz(qSIrsOXawf>3?E-6?o{`!u)VTmA(Pe_ZTle=afD*wJtA16dY6_X?#_(wERjUQUubvM_AD999 zK#|l^YU2r~EP}9V|D!da_dM`lbn#9IP*BQ$JsqSO2F=!cQE;8?nRSPAs=jo^{7RqZ z=6;)@V{7ES)e}E(m}bQxF^x`EXG_Ape^YQ9>@`xC<7Mm_s3{u2!!gICRm1`uk3Q}z zQLMVR$M<^F9{4UA=r8pWFzX;zw=1n$zXw#6Z?HfJfWVXsQ{)Z!o|7SY0jfknA_vaa z{DS@cWCn|yy^bd>d^O z$j7dB8Gs{I*z=Eqn2=+?;SG=0}+olkdO)1r<^8B1ceumq<{*Tw>|@6|q8k|aR~N~0peUd;cHI&yhU zZgI0@ym8Sj{T_Yx)EWke$JGJ!&W_u|V==MTBX) zD{ypNc9IcLYy&OjjvWN}by#w%?-RJNOZrOS?8&{@6`5%88=78yUZ^=H_pMgPFr}#M z5)jNHpEm%lzMZlZESV1gS`uDX3;mnYWS_C#2I0o%pT1^!Ms`zqujkfPdT^iup3!m- zqEfAlh*r-NURv$$vbsIJjapdjM}*v$eV2FuBq%Fw%toe|5L=Eco(tC8MsZX|R(}aq z^G;?7$st=o*Rz}WfnV2ZQ_lzMG6Fw!FQ&IXLxMi0)b-X3prz`Q7)@msAd#UU&-eX~ ziHav$i#kFqM(Gy)9Y9LFcG*>(>1=-#Ve^Kr3#PAKx&l17c8cT|_QA{jUcj(*y8iIJ z1$30z<`x`sLbMfBkrA(*HlV~%w#!N`xtehnfI!k+v)^QV-Ue;Af~-!1EdkqYSK$1z zeC@Mejgb-6`;njP;SF2Eic=sL(OZZsuIoO4du<}8=jN4l4(t2ihI)eWD^Y!zNS*Rw zW00x=%x+-f1u;YVwgj&o#A~1c#4*X4^HktOhGJYA2`V1}pXm9DmB8xfy%x)%0g%|_ zcOUubyB8a<$bY7MfWa`P=qZET7m!rxmRoqd5Dzk9iX^#zoLz}cu{1U-cT?@dHUiBR zW-ubEJ(m>aCJXQg~%>pcKXW*s=S@psdzlDU;ZWggURy|&E-G6PQ-MIfF z81|OIx1low-6CYJ%SgNdTAg4rTWi^&Iu0Cf6?>R0m^}~ zAZnn%e=LjJGU%wyx zVAeSvcF|iKsiMi&C_yt(rL1>|T+Zz#ox_^H{T$1Z!~hH{`y=DfKd~Dh*bc+JO+&^Y zT_64rQF<%RDm-T+AY_~ z(t;(g+J?4-oQTb4Lv2Vv!2NSq%w5WIV;S%<6m(8gC13j0O7%ErG<&IE&0!N@Jh&L+ zG4}X5s-!WZc_6T70_YM_5dpZlW*Y+ce4R6=cpk_!qId9-cSfhAJL8IyLV;s|ws#ZB zkNNbr_RQPb?*|hCS3%JYbOR@NE}k18#rr@YgjM0G{_NR{`};gorcd?M)`N?rZXz%s z6>PnWGvInJhvhC@3l4nkooPj~II68)-m>kA&|3{NXP&IG_22cqwTtxTT97{ZujtMO zwzLG<{B~ip^9jQX3AD#5Qf1D>AE#k2v9j$@i16WhoXa|RtOL$M4eMCB5P61&e4$Rd zXS~2#i9cq7f>O@_G+~L-KnnnE!?oE`w4mJlOUua@0((XPQU%e!hX=N| zYr}=VCdg^m%7e6bv*?Y&j?D5zR>f;jDC2}H;7EtfUFOi$d3qgoF?r(!$J76r74>q< zl`B_pU!G6xm{)gG-}j#rPv(muGCvZwaP&MwFmtI&48vb){EL4AF9?9f84#KO|GoNO^F^Q(xC;Yh`~7Q5%KI6B z;Fqm%3JX3UD&x)i!>iH5=t8Qa1Gy2EeWNQ64m>0tJ*Um9e5>q zDEt=jQ;}#_KStZWEoKYC zA~u4ouFVcr!&KyFU=-YYn{3|2o7hehapH|OPCmB2I>h05JJ6`$)icU9-1kwXw?rD* zwabRgzI4o{`L5>j(pl-nop|-6#S3jC7i=cT?TAq6wB0%_zdod~CWS#vPlIP!KvjL9 z%jd`>sZ{4vV5e>Ine~R%y)3nmRlVar=1k3xm3>9s>Tj6>_bEk}Ahc6yJ`dQ><7ax0 z43qtme9)X}#|yJ0Zuq?4wr~^Fy3uzZFzuHgY!A5wRvq%wzw8Eg8eX0mJhWiakv%|o zioT`&Mu<@w5?Q}p7AoIbPp)N<7!eIzJ30$_6rR1wju!qDAdBxud+nAHcldn)&2C5} z-yl=^PPbR9IL?bSCAmH1*Fk2Xm0lcV^1jZFqI<{vl6&G=^~g_^A|o`gU1I*@cFGG! zzVYT~JN;b~D_Y?1NR6kBYjIJP`5BIu`pu`rUHQX@Khm*W8pdYbg^q~ST;11`41ol{ z?TrNlS+aSLw%7Q{514w-EY9I$gDMj2$Gh<}RnLiN9SUJV@j&^?&Ceb~T^>g%-B}5m zwq1|Wd*&J5db9`D85$E?u5!oWs-bZc41z^AiELh&bjr%raBlz{CK`S>q;}Vgh;)ob(#{Nf&B-uwU_T> z4~~Tb+W;kv_9h(x6+SGh-^Vv@l*G3j-VR!3ipK(<$2kAis}>ai-+I)ND;Tmnck5p( zD17$pj|#3`yD)2JpTD`X_Jk2-d5#6@k%DBpJ*pOz!I33SW!s3DB`SPqhsuv`T($0A zkONHsW8}Iq4WlVS)mRXz`d9$keCB&TP;>9SBS!g>l2P7Hz4!WF8qqr0p)*i|c;=J7 z*Nk*`Mr23YCdb!mgPt$;gRV)=e|~V?l04u`1-l0288Jf-_9`6-Zhyg zLW7-q5!X8i=L??Z@WCaV(Ow_yeKB%vdNP=X_bbO0)rl&?w(2{E=K`e_lY~qLUFl7J zLSH#{4wU+)LnD0zC-?WG5X#T=2XXqjOkGnldYqx=?FLJ^jdi_I{ z{=cV_O_29(hmGlhCZYeDNVX8Sp82`qy4)CZxM*-j!#j{)YVyJ*bRB3?TekYh(zxjS zxSs$KvAwUSa$rGDH3%XA;C%Q=kY4lU_e;lg{TAmBb_sq-WA@%ARzw+Rn~D94{UBqY ztLI~XJDPPUjFz&<;qIF*;!=Y}+HIJLBKH~r(((jcoO7zlkc1uC+sTMbPKdJPB#}B> zteqTeCSKq3_nV(f2Kid4tOA`vdy4w!PFHh^)@!V*X?te&LQlK&*B;&a@h|olgzu$G zv>eT*IP}gXli$J35lX@r^b} z9WNnHhMcNozPK~uf(14wP&cRjl)g5ltxQ0LCD&<;sYW~+R0WpIf0IiK+SauI zE6nlNP02)C_8#ARw1fs(1DJ-H?28*y2SY&`0F(}my3Z>tw8}2z} zm{KE^&ZATTTAJ^$P$xhE=!LFR*eYYgQvu_EKLY3wL=@jn?8inuffpQ{jr6i9{E17` znNmM{Pvj(&QPZDcu92jmD&dr2I;$0p^=e_N{B&5ckzgGfRPc8QR$I_d%3s6QBuId=OfgF{)7ivB&-W=%OtDy}?9nuC1IHjB)4V*R8 z=%|7FAACr|X&M=)<`Mqd3rSun6I=1RCh5*qcftmg%9Gk9B_{a1Tcrv#(trI_Ie8K? z8J_x+q^@RGcI_g#fpdcxSqDd;&Hs(C+wY!yyoCN9uejB&ezO@y+a@*p(rHN{r`>vf zE+?9+rQushBcvE2{BsDkX(}}BUAz|{g@|-EJ(^fPIBw-=v zT?d={agmknt=Da_KLc)r3#$;y`2zy`3x?~YO)VrK{oFF+O+qezjjvR z^$v=XD;^L<;Z>3%He@iBh`j6tS0@p)eTnooEx0!5z0|j`7)`kwyVYB#_Vdea2K-6b zJ6skTe)q_W7-$;L;Cu$iie%yirS3!z;7O`7QAsA zAgDIR^ZQDIxEeGSi)-5id&%){+mv-hRO#g}CrJI>+bxWe(=#}8rv1#Dm3FSf6I}SH z*sW&7(W6~j-?;Y6ZEG@5thYfQa8t$AC~Fdw=}IE1oTXPl34_g*7{{tgsqQ38Y$=_j zXS#;A--K7$W^3WBC#qdw|v- z?}=Pkb?}cN!_i8QY{;k4aGo%Fz}Q?e8lFs3;(+aeF6{aHxwua{Bsew{ZjMsbmo&hYGQjpI}<;}e?ZMzeHqRQGxt#~B0n#8GkO5qFU`!wg5_TdFJa!YM~($FSVM z1$p-*?fP#zjL9Zk)p*$mJV8{J4=b+9@|BDqPRLdB@_z*VT=|lqo6dyeA)2`}0&bx$ z0YW;Jj_I1rr$tyBTT=lGQpH)ieE7RT2S64|xuzT+xIga<0)9OIw$cu}@b=4Y~-t za${+M5-Nq^nqcY8zc}SH@St!Y(Losj_akOrX=IW1%UWn)B`?sM7k3jcNaT6I6~>GB z7;j$UF8PcxvZg9BDS>3G*C2aL=U>(Uc3eaIk}&bh$4l!@BpPxer=*^xeLv^PN3t2z zwX?b;khqy-L)!ykHQ3VevH8lwQeVeaY?ahQ%YfKbPen?BL`1%SO``nrYF#~MLgnco z!HCN^6{Mg**+jsbeD)hKQPMjcFZb>QcE}(JF#QWRbDFq%JmAA7^qvRbfD3oMMgE48 zSCvGE0RIn8K6f+0nFYqXd4rUR`N|%mp4an5doKa$vZ$irCzhd?R!;5#RO`Pj;&aDe zP5EAS=}%oDF7SoI|1*jMdD>?6T2M9dlCgTw%X(d0v@$A%{l<}szUW6CE3)h_a#jC6 zb%!IdBomw&Jhs}ggYDJ(e#AY7iBnVV7*)zWL^EAsrM|?+CP9I#IkPk*)A=F zxt4+ODOASt_o09xQaPV`UnVnTqi$UI0$l!sQ58@g-mag1JCx;!Z=1Xu`$EBqSh*gy zFvp8|QG)lsLuTLT0UH}DlXhi6I%F7`r<>+nB|f!sTsMvGy`xIei?7i$y~`@J!>ay< z$1129S?>e;*BifI(f)+ZhmK&;315;60778CDVJ+NPzE?qO*qgK{KiJ;O(U9|M?XHB z8Ism%ZpAMY`?4frbXDj43Jpi8)`_iEC(_4iPf$!%x%(Cl+~g;J^^={TG=F7RY%D#{lmH zq;ihv0k>r3HH z=A|LeO7M?qE6qT>c=Joe`8oQ2D}_X?kMVw4aWqMfZ26P|62#8kU6P@zR0)5b1C1%m z?r02HI|+WWhlW3lr_055<&^e~cJ_SrfLo4B(N%Psaf z$T!E7b~}o@NkXp9qhri=QC5GRAP*YSEJ}Wusq6gcO2N;nJt!~N31LVzBhm|8W2Nxv z<*J@3Qg{V$&LRKuA3~_w#I>|1+IYO4>tbn$g*HR`Ahvr`2By_w^gj9MD(H?s*}< zyT*QbxZ6PV$9G#$n&do;!Oor65%ajlG+OD=JIc=J5jpsIKH{o%URL$@X7`!YJc79U zVz+B)Wj>wt#Z+PZd#T{(v>eA;%}1`0Rcp=2m}HJLr5LC@4#dczkQptPlHn6T^m0MC z0Va<6Z-;#yN5UdM@99t6jKmg2IzqX^#iNc07wQ%5H1tFkh+lyajx9&`yRo7>hc69T z+8q5^4nnz=?NBhRruD=Do2xr3)pZpW9DfYNHm#d{u1E2JRolQ@)XLy8vr5-pv?cb#`>7S+;DY&)m%c*~}uQDM))%zpG|9~K!5b(yuH!1R8mveMTM+Zw}RhP?jH*Z|u z0&YAi`2Lk|7Nn1T6&*uqRCaHwyJWY^KaR7_Y~m5Zq4bVHrh=1@c?{hhc<}jb!`@Xc z5)^`8^iNnZxxAUlD$~}UYL%BHBK04)WSiGN1;=!F(c6S6n?%+z^yj__v*0)>XJGc~ z;;r7#*dWi#ok%4YK8@~I&q{TW`BPi*(+H$CMMf)!V&0?Vh1mgZ9g7C*ps_T1F6uL9+J^a%(aZ;L$4lfuO zTRa;tpK{kM+$o2;@`-Iej!8pAe#iphKg}0P2U}DY{(vGdKFY^jWU_$6p|XP4)o9}$ z9T_JNlgJMuMp%!6o+zak=Ltp2nyr2jS60T6_1G8s%{zS$HAzqjLPTjq#$~ne^STlD2ldE@J z>-BK1YYf=Ei-k~+N`5a7kca3f6VB%uo=gL>9Hix({`5ZZbUoe^?{9RxF}r@O8~Il0 zjof>nY_Ck%f-mI4!@~J?y?MSIL5?Yd8bc})nkX3!qk`tNBBWCLYBj?4f~O_gtIKOj z=A-*Tw4LeUW`b1F2p@yS5=*F5LjdFwg~UhX|4nz>QCn z%l@w?30TL&!HbHVEVr5U+`X2^}XuWo8h^0P;ePI?Z0bYWW2{@bad@Xy1(XiVo=D@Q*0o z?)aq5Mxcdb@0!)V{yKTb(U3a$f~fLOY03S*AddI>?ZudK^^i6qB?0hy@}!ju6~{Cw z(L8l~QevKeSJJOE1ME7>v!O=w&~K=0xO?sYeA_ zrHgdy?+PxKCcAfkLU*`YOq?%}PYBUXb%x{g!!QhOXZ0PARBL@1>6%M{()-xyJ^`}g zPkmbRg;Zjo#DEd67U`Nd)=Cm%_FF+s<3EdMFLQ$Cjr5bJpv3Fy6_x*dRonI_0{FL} z`k>0=tr4nt8qyu=UW#$`go}$uEfNF<934JbjqiVYA4!0S4-V5V?pSu?Q?fXi8{}1Ke zV{2O43C(63y0r=Sw0i{(kzvAPHA4;=tW zj|HHfnAbPeS^B+p?bSLtZE)x}>L0Vm)-Q^IU5us=V{68swhFMc?4ZVRkW-%Q+H8Z6 zu$tcn+oRN8#%stj+WBM)2)cbgw*hZj ze_rSCplCv@ z=*h>E;_pwbEUOUMt*y!>_uG<9oO_aIm{ksg3N(_{ZKjFdsikU#3kM42YTSGV+!^_# z1L__q`*)WpmgMQgt!I#{+mFmwJ8os?3r#o65(sVPi`N#&20HqS0aigN9u1i*gQJxi z#nJEEu=@_ixTg>{iFs$N{0i;uE@9`W$D`5c&aN)Qold6?=YaqJ z_3K`8V&d3dMttb=r<;lt%ff>&%Uv7|S(bBX{~F#ZaN*~I=FuSpxW&tv$d*`pIE!%p z?j<6|J$qh0!}y%kQNKx#x4)!UeFbjRI3Kwju;xkk7dl+g%ygWyoLZi@FO0HK6;vLpec?TEi@`4P;?z{A3)Wr^Em_^6w)!ebP#%#~M$&|GrK~-8ZrYsb%_N>vhw_;Dx(h|mA z4fjX&AVW$RwX||OdyM}<=i>QXc^@0uskN`Yn_xv<16W3TDdPj*_U&8Gn#sHBC>P>R zOeHqds{P{gcBzt|0x4EK>}rtMcdj!%Wt#tMjUd+#mA((k{j^aQZa8qdzE-MwB-xBs zx>oMeuav{Ai{@ENvlDv_x1-%rXvG;cNqrz4jcGXUfh_PMZ&k}0FHvd@qy)}#Gssq= z>;TRxd{(~$3ijK4M#Zy5uDl6D4qh@}^s_fC43ePiujL6-4HX%#T1aQB6BSfjCxEiy zMNwv`Y2E|w9>qT-@V;$aW@)PaGq;~{z#h+-#-H6b1AC!-Z3YHQx_w}5bql)_`jd|L z>E2%38M!Uc!jrI)LC1%FxaJ<{*w?Gxim*LlgTeGxBPPLz7Rp{Pb6t1st0?p4d$)uO z?c-qFA%}U0R`8>H7q2>=Rf}O4yIOHF1Rk8NDM-&k)OM>5#z&da48N$3m5mb2nEega zJ+E6NeC=k1BDRN6vxC5-k;uZvK`_SXW$;8?Ll1cf@(n ztGUgQ#IK-GV>Rfr9A;A2#Fb{Y3KvnH*1_vL8 znQTaUA)-9J1!gf)6_2uAi(Jl`Qm{09@pMa_V$u!KZmQK_0kf)ret7jl^MS*)@@rI| z6_gui4C3pEps$Sgr`P+}7W%>Rup%xpW&fPR;ZD}Ah_4}S0;bV4CmGU0>wnYcpPQ|Jynrqd}&6udgNqnBsJu259(E{g0q}1f_&5&<8EeW5!N(bC_ zqe}O61_Nn;lh90y)t@HpcT>*c?Biv=lL6|CTpRwU(;xK7)UF}-xK0PL^0m5}(wSm* zrz$fD?T+;5i^dI`IhL$xQ3mHzb4UFsDx~8mJH-cPT0_ns%rqP`X4H!$S4JIz3Mv9n z^A%`itq=t#R-CDS ztQMPs=zL~nt@HDqgS9&_t7UEjwM%e5jxE;iPKVaa8M*sHHSoW5m;ut>pNv1ON|k$_ zdL~~i2FpyEF*R0FL-sk_84;TIO^robjJmg>PQ|=N*6=H1xHnHoi!9R%sd)7N#Uxd zX$ARyA4M9Gnc#SV)32KMyi(^?Q0%23^Oxtid&>t_aULU=&*8DllZ9F;Gug>Qf0Slb zO_^aLD1ruk#YhCBknR>%JQ1B@hSbHZefBD$=EPxV$~%>Y)XZ*l4WaZ*rvL)#vd!<~D0S=&ajH+2Zvl$=Km`ro>w(Fu8uq0$=Y+0czYnqPxU^_#w;v;NUrE# z(frd8iC#G{Sg6y2?VeXFI6vu-J)b1T-+UV7m3pSZ_1wnrU?QQ=n(?%ieZd%By^v5} zk2-yLB7V`1FYC-!ei77@R{5E7W0#cCTdhi3D0q5{{|}a)c>;FOSKlh{(4dD0a^_9+ zC4&yedrRjJ7xdzyr_RJ-*RDo1I|2!(W7B*NuO%MGtsWvRlyw%TM0Ur=4s{;2*pWp@Ugxx{jPZhZ-1uWc`tu@=gnk+%ADTSHunr=!)c zp}_D7#g3uH>}{)Jaf^BepJtCYOxEhx^u*4F?aJz3tvoYuClI{d5m>QoiZ?Y0I%Gq$ z7B^6&L9~?8>d(fnis^d}uYHG#5y2B2s|W0H-R3jg;hip!<;!h6*@?T0ppUjYZHxd`WDL#u$1^^|%r@%= zuKwr`z20wZ53F8RPMWDav|_4Ju$vOJfH_CRD7y+QQ47E;u5JpT$DB@H{e2?vdf2kw zmOHQ5z{pRnd?GAH7T%yp)|`X`Q+TL(9VaB4Mz0z;fpUYgegMrNH-aG7OZWPUpJ$M)zbKw_!!3xJ>8Cm16F-u8s zL2=fdKxsV?ni{t-YPut-1;*Y~b+KF=8zKR1Ix5e{A_EaKode;MhB)aU^`JT)*@Q>=o(~ zv{yU2xP@=aw_1G5EeFF!5>ZbmzF~CvMyyDEI5oP{fBNc$jzX_4T=mMGO#xz0B>O(P zPkbSqN2#lYXH*(4MK84xR!s*zzqaSOKDTgOdyK?yW=^QPTda>6C@G8nzkAadYeTaX z3r5Ba@Kjm<(hBJ>ey>2a!R5`g8FK}k>>4-{gdramh+&nbkJ%}WPYI$v><9#KfG2Wr z9S)GH_p*j#jkneUGx>NXZs~%qq}nuCEY1M2zt&OgdIZSc9?dmOy-{+zWAy#*mkCeS z^&}9!X5-9&6%outikgY8=UZ>Os)FEb%ucOsJ#j$XJD1V(&HJ)szfGy@yVm;q;1Hy^ zlIWX%R9;+mT%$FM))(MoVg-93I0YfH_f;(k(d$DdQ?az1<(lcrX}53V?GS?mJ*kS2Jjeh* z54ZSLv5p+947BLb0mGP#8U!duJYgE&GC}Y^ePekg_e{B_SdYN{wVY)2+h@2lyt~gV z+MLbLDFuU`e$we+&u%m-l|V}jT&SjdQNgJ;VccYY&~)sR4{1e_aKL#8MHHY2^zgGy z;`k=)wQh!JT{J=2r5H)CCYKUEzy|=_$5*w?0AJ!R;mDv_g2nG9lNmx~dd3hUxz!;k zro>l3+e0P8()$x18$HYv-k1bTBn(>TOr2N5aOD}X!`xW$=yTi_cN@!5w1R1+YH-%W z&IaZm+O0`^>65G{S7_5)b-)S&AX6pi6#xv@nn6=bFqaP|di@F>;#i9Z#kUmk#@Yjh z`8cp9Wf`At|8&Nb3X-d79|+d{h4AS)%cKcsJW#Wdg$q{)MpU~4?iy%8TDHeEh=?t} z1F+Jf3CgottNFN5c>!u@`AiLSNKo|6qE%Yw1>8IbPbHerc>9*pzV?v-rG)0c=27(f z^lhzXJBN{_S+a>|-RI9&C(k|t{$`#UZTaE-`)GyKq$JG=Nu-Bw*G-AFy4d2~@y}Eh z1}N%yCdTAiMDDHkypdPPMB#x4Hh^+jQpV{;QE|B9DZHLXLEF6IbAL; zLd(F0pDj>T=v|eJ73PjGEC+7J;)N7!*=_O+gbm$r1^W4UZE7wIT=JqF1?lmzYwD?? zuVlA)g5@9WH@mE|(8#!Yf6Vks{Ah(02fnAe_d-qiBe)eX&7^LmK*}Dn+j8+)e3Mh4 zT49@7zCYCo3BAwgq2&Oo%5`urE1(H^$FU?W_vfr5CmTPFKR76oJG#(5qHN1WEA3PY z^{YiEdzJP@qmg%ycpe*8+CFvOcv6l1b#HN=15+df@-Re*G#dE#1L4D!%u?f5PhEgcdzRvObcUFzGRZ@nn-C`orxIyGg;V(dGit3dzZ*QarldO zTXz*EUv(8ec(Z}4`|eDo(o?FNqrgn%r9!!&X(fPV^^cYgCPy2T)sD_tf|VSv{09gC z7(#Zss#A&VR5jp5>o)Wtu}G>B_b9^u;Qlb?4CRjp;{V?mW&0>TKC%eRGsy-eDd&owdyM z`tINQKWbZ+*Y!$0-B8>UYUO)M(D1ENKY$zf)|TG310T69x2~L(Pns%G0uq_R1a`6( z%wt~TtZ>zIg`Xw+T-&T4WPrO_`$ER4`?}M9apao0N>Ef2X0n{Dj0(LHn>Qb2I z3#kA!J`$R#jGZ;rK#>y? zwFdaVP!x}_5vft*0m-2i4eHRi89Z*O?m+9a(Ln6}+an$<4S94BzMNl}f`I?E+PXje z5F2AZ+(VrQZux!T$uYF=Bm{j11B@g7*G|ap2N1&4D}P}SNq{|k7w})777#98H*ijI zH(=LA^u7uE>=ryX8^aB)39!&X+Mea0C)n{Es1p8gxUoy#gG0Lcz--BRFE_+WABag) zzq|g?SxDln%$1v}Az{@4!U_}HTx@+F^#()rvY*_1_&Wf5V=0SaBExnQ=-q7eN-+et z>%JavyM8MI384N>;#DoW?_~ZlbxY+)&cwvT=N8wZPl*L~(^Lf8TU+Nt&!0c<_^+JD zCaL=nIvIr4H}otbCdO(9klG6a5LVqASr6H;htA3IhxdK7k18;|k3isC=dYYSf7#YnYfWd?>?N zZQ;}J_X*YXbjct4Wy{XZbP}T_si3 zw9_IY{u2)(kf&$$#!|5vnq`%{vmDo|h+vss6ayb#X9EV~_&AFmu5$p}X26N$JNv5n z>!F!B%nvAl@Z(p++NF*G00x48>COxn& zwmPxH%e12TBigGapNzlG9FtFAh=|<>8uFr1X?PG0yjsMR+h71kueW{i06<>HK|3bO ze|oJob?EA>D-BhJ8hq4NfL9-jp%g*BK)OHI#B;KX|Dm;{eZe84x-%DJ|1pts2thj? z4tbhl{SfIiJ!_2L+Pwn!G$jZ3y|OhkRs=3vinpcLmC5N-I~CN1E_By^3k?LQW-LN} zRu8C%)HBd0sDLixXmZT58OG{_3^%x3vB*DrI9}lh_5t3JLW!8zU%tuu4Zx{7@9%n-VqUPSF5#s7+7MTxz6E zxec%nCFxAyj$$Qz^+ZuX^GiGP?}meAKoUiUYU6-x4xk~KZ-PiQh;u}NEzbVIulocz zJt*jpg-?I}59EvLnYn$;CZ=Go!u&uJcx5n3c(u7gi#ubWgo%Ot705@!tPHcn`O48? zr=tc67CNxH{uPg4*4mH5Rtj zGA)AWDS%Xew9JwI!UDWV%>ADPeGi*dy<9sPwbrSyLCx0$9WY;U9>fLBQsg#-^tvUwi8rsxZ}(MZPJ=Ed>a!#(hz6tC1hi~&IG)cG0!Bfs(7I(66|q7R`XUsI!m z8j+~_5mlTQ2W=0;o|-!tp2h0*4UlQL=tCyHHNfYpp;t}=?$z4;)<1sB_s*K;=}3!p z4%7{?uAC@m2arhKJD=DAsjc;l|LYsKZsAIn0l#_Ld#^C{LQRyhqWTTG?sUW9iG&{a zlY6W1V3@Je7xAc;E6g#bxHrEVftZwKnBxLJPux`=}{{lGNjn^RU zx&G9>goyhAa1QD5&aRM>C?P?+V+FD9vv0v?_CUB`&*}hwYP>jD1+|8^PT9Q)mrx$#r?ifTmY&`EFTS$c5;Q>*+ac>P!01%&Q6T|sQw1;h%&B+( zn02N#Sa3TdGGNW=z_Rl|t)`7HLLSe?vuntL%ACZv@DJ#{gt+)guxjyA5UkjEJ^=`Q zw5tE-iVzuqi}j!G|L0G4--CWTk9aQ-oQt~uT&ag3a1d?*MWpPEvLH$b>jHjD($jUX z9xRsd)qj3=H{{~<-f_-7Tn%Kc&_Z^5U@~BHw#+OB zf*1%IV1MPj2mZNd23{e*t3`%d2!Q$hfxPXFhiekh8ohClb|iZc@z6F;IYY((iq_O9 zr$FKjozKBxo~lm%zC5Hiv@wuvGtl?{zX$LMqK$#&hy>f_OJY_xDp$>bZ$mqUMBcna zRHFdqBY(y4QQtPV$rMYcAVn~Y)_)PzCIEBAsI&NXNbP}0ffj_F-Z)JM)bv8E5V@Wy zKUX!9BaGVzBo)%(f6e1)KiJ&Tm8M8YS8_*I0)?0Wu{IFw7WVUDz8;U+cHKQ;5x{T$ zDrkl8pG0}8c;Af{EKIw`p{=d`8FLZ}Y>a!P?{m0+AJLGMlvKLfsSpO3`?-B8N5FSr z#zX&WxQQS8H()~p>B{pV1;BVi^sE-iz1@u2E6Oa}1V8hV+!6Oq5at9ppwCRhVDfx; z&}CZbiuQ*#3tk=eVA?rpp=P`W*%D&{J{ASCh#mYa&+=bKnq&8smkPlBDa7IntynpeJC)y2Uce#}pE zTGC61?X-bOaccSa)dEKeiG)d6>5!i1z2*yqd77*oITn1)erh~anO{}?!1@-|-?w~U zt7~5DvQ)*dqa9#}?A{N%4xchy5ww@%mIYSTeO>ar6MSHY>st+1^4(+sJ z*qiQ*Pn(Pld*lb`E5;iGQto+}!@P5aO1F5#5q#(^U3ca@5sc`&7larf56g{gLEU70 zruk?DRl_~UXZBWbh(XYH4r_hK8e&x;bj&O}!SX&@{&PrO`1K`NtA;@byZCD^SZvQ$ z2>K4r1KorH`*s~gKk7a*I~P>x!dK-|bqwZVkb&Q9t^YpoR-u_$P!5w8v(y3U$(zZT zLq-_myV}&!sV%|!uCDX+0x+!g*W+z#RRnR0~AIuxDtfG zi=L0Dr&|TCRw5aXG&otW{+@tB2KKF+(rMQrPuT}*u+q4o9P?6y$6$5;&pR!4JYd;w z8WQD(Mw7~l^X|C&n=z0ob+>^RU>#oZV8Rbb=)(s7KhT*(fW=VA2sG6?r8W0P?6cA) z<3E-)to+_?q9+gJS;fZ#u`RjZBkmjU=q+hqQKBes#>iOT-A>x2dANnhN@6`((t6>4m*|(r z+Qci)9SytrC4>eKw@?k^n;rrdv#ztl6X`qZ$Y)E+zpAUv`qk1%@8y6o+&jkGit}>l zx`EIv_v(;BQyhBQ&)$z|&~HAkfmaJ|1SYBO;M`mR4Nx3UW4d|dzz2&wWi13GPtV{>6TSM1AtF`mbKtZmn)G#9iDBKy%)e0+yQO&4%wCG z?KBJ42c!A67S)w8NTk-mzM5_kaRzE zNU>NQ8&Dar+`A9v;q?{AARcLP7)&ah>mth)gQmy9!tdzG4_9X6=zo&-B8yuT^CP{m z;m%F=L$a_bpdXF1wbb*$VeAA~MvvCi^b@TLB_YhWImn_btY<9G*O z6t`CdSXiZQw}u$z_~1Xyi{~VJliO7%S}Sf49&;o#N`O(t2csuGMNN=UB?|D#n@hhm z(>kS2Bek}->4_(7vUY5#^^vgj*H!WvX#!sw&cVd2Z`mUq(i1+1yQmU}o`uE}DMP8n zk{QwBJUN?q)1mdj%x5isD0hvqP>l()_k&QI_09)4fj{v^mc4w1H-En|CCb30cA;k8 z%&4t=1U9)B94<&HMVb@Ke%KQ-2KWjio#RKl#SLzg_SHRvMCa0sAI%H|@;jc!(sMP? zb^ztWB6|&Dv~#jJCa#3I`7X2=e9#*?{hUdT&qJ%Vm*zDpGL0_RO+E!uBIlm|`9zn~z|$yjP) z1vvvJwQi`>bFVM8c!B;dDN0oCvueud2xGYDD2KHtG_8Xu!IoJKFY4N~PuJkoN;tBm zb2h1O0y;{w7u3$bO7ATf^JWH2DBwL4n7FIDE+93kgf-VZ8WS@NyLFp|c|NG=x8{Fz zdU16rbT54=n+r4^uCw(CcqF4*V*_0B%0J8EqHU*oj+oU*z^?0E-DmwOLLEIEGsz5K zQ&{l?et(;j$d#4_pXK#;F0m34a_l6#L~N#8VILRo}$wAo}EC|0&Q1{UtUa+Uct4mj|TiKB1?Xd&2RMS#B>Lp-nHY1g5d!Lyc9t znI8f{2{mf&Q{CsrYN{;+I@x;G3AgCq#&F0cI^4}Md~VVt4`7^gx2HM!pk1oF8q5PS zW(OkFT)%Sj3b{%BP|B@~j6#Rq(Ca9H=?jPsK* z%k4^7d3extwTbjM-ttuEyq;}!4!}#oIuDlNr^ZOr9ZXJxRckjvu+I1yqm$xXPXx^s0<5w ze@XkE7~ij?#U3l@23x6`WDHXtqb`ge@%lgPeTQ3-!)4uI9Qh!{j{Y+~>YO_dZW$Zsw!hN0!|7i;ri#QKjozV;!klY|%w;?{Cqv+4_f} z&V$qm)|BBq15oK8F0W$s4BoYH@_JZ+)y)&U{l)LL@_MtA4mjH~Bq2Lsx1e~`9c{_w ziu{UEC2=ry%t)WNknX^oLRRYk1}=S0Y$j&t3{=}4nV6B>b={C(JXHK|M7CY_tg{66 zl_OP&9rMQ_&)T#gj61N8?mLzZNc-}=A$;-im(AKTUq5!NYGUlN(9hY{RPgVAv7%5{ z*dgJYIxfQT@+k}6}4Q@$6WrxND3yP8WHdO z>S9KNr*(}8W?1-}BbCH0FR<4);HPwTJR+Soh< z(M_%qm1oYLLa!NZh3-CZ5V78q+9Fxa?zI}3KCr!ExKBspH*f1b&(qTsTE7XW>Qvd< zo+*Z#amvAOh}Zga<(k&O@WbfRtG)Wx>6?br42Z6IsGUv+Dpce(E>C}(Mn0mat-wVu zc}3363(drtP(|W1U32#96*(fPM$zuiFk79oI+k$NMuk}w(Uf_B(8B5AJK^PdaJaG> zEZI#e*+Qznj^h+EGt2tt+z}u$J5RacFwa^Kpz~P$F5_@?bn_HpslaD`AOaqB%Iao7 zr?L8=_mgVvCD+x=*>wliAth=fzEdb$mL{ZO8iL<_xQ}$dGr%4JwnD3mv6L3>`D+B} zqPx|euN`W01``r+grN-Xo#l1s25CH7=`OAVBQ}`&?9H#f_}sg!eSq27h6e1E0K$5f zx%jbb)vL!d24sI1{}3+^yV6rYxJTudSO@$iyDLn5!<Wd;!f-GX!Y^r*J z6%UIEmus6Z$7O=IOdx|J6QP1K)E(kXrb;it>q*6qvh(@d;mX6#wPzjpxHN@hTS;10 z)B{zvXU-I}#`%3r^AdCb)h9IGx#Bbr7jXs}?H+x}oK+AOc@ffG$mlcC6CB@dmD@OM z`((p9euKTjx$}?|dOwB_vlS!WVrcP*jN+2Hq;GaN1xH15iNcLg0XTv2M&$IcYsr0g zQ%td@7Nv6AUqMA)1;L5oM?Er9TUlDgDVPC?)n;FvP2LH24DRBj^%71bBTb@P2_3 z-#@1wr1rv=T=OYZ*@yV(H0`MOp=AU2wdRyhg1Lot-PbA}P{6xyYZ5h!%EtznYC|fO z%08c!XtUGx@k*SmXY+6F5-_mux=BVWtla+$H~ES}u`A@5w{&HUM@$}N<{s{&7J}gl zV#!ZjGndqs;Z2jGg$_Ro`*24C_mg%V`XF4q2zY~t9;@G4`E?n4#HwS-V2YB#Pk?NUT7y#9P+Nioap+RwozUOG<034!jhSLBQ&zx=mvxety? z->3d-1JLYDU&Pv8KmW(l0NQJ12ZfDVU<~8N-F)#}r)==>(W7?|v2WddJ++*MZw0z} zu8Z|Ry|r)9`&V4!W#Q%os`*=#e!gMoMzmw;Z)HU+YM6DnxHQ{i!@p)@f(#uqkc7Fm{#fTx_vc zaa%sx4`~aYcZkBGS)@ItXWlD)GK^Vv$#bJqLViwfw=&W|kgj!uW}k$S3p3rw?0g^KR4_9YmGbr=7Z9eqdM1lQSUaY4a6&X+Ba)HX*$wN#~G}5BTQKw z#-WmCDeRrw;@*I$_|x`w_`47@X)8W2&&o)~5BIzFOrS$2k}J;GEugkT4u$az+z3f` zg7@w%*jrEnAzXG0E^FDG++EsRE02JOno|z9!M9-p&1h6kF z8-MvauF9FWmyog0jm=;nM^K!^jTEwMn#we<>(7>5O?eRkXqP^nAn6$ZZ*3QFGm6yJ z)Ue4}+v+WbMf1;(Z@?Enw41b_5?0SC#0g%KtijYoC0sOb^f03cd#(R)OV`l5m?^;* zRItP|zbL4kv5e6-LtZDZoK!?*_ap1h57nN-*s9VC4K|N%6+KD9cCK%I0a5JpcK9H$ z1e1{~W#``#d5hS+6Uz^<)xqW(C~4baCfLp{$idwHn$FV?c3j5v)sv34Oyzsw?5`il z(F*YXti)>hY+H`l&!6pP_)28OS$D6TZ+^GSyzKm>6*Y!sviOXfc7)Uf283p0PGAqp zHRxwi!2BxzViFnlq1JDV<1Va_jMfl7;~VcD&PVzF7=`i!b}l3p2?@wzpBGxv)8sKl z63=viDp?kZcB8IQeVt4GPcC%hz^l_d^!0E+I?rIDSEj7}dN zbBoDqAv4Hy$Bl&bC8N6|}g*nRecneO6 zSCn0F9F=us%C*YZ&@1M1r0cdO->9w`Y5_4oG#@h@TNFUb`OuwiQibdfNMG*mfMTWm zi7lk~mF*-24vRoScV;q!acf4xA;*>0tm*;h{-cK1fq{SUTRE_RkGy%hRLt}XuDONR zo2JPC!ctNjVLLp((zI^ysxL2AJx&19Cr>}m#GGYpz>B-0#Cwn+Ym8ZW0JmZhXni5u zs$*BJbtnpWcx?S~u=ZQLR)%v)CB|&48gBrNrG`8?A)<9wjP z2usZHjQFhegbte8&T5S{!6Ofet$phgR!#BARw*Tu~4dghUXIn%vzdh&e{RjVn%vU-Y zUj79Y-VzZd9KgC~Z#FmB<_j6mit)G{E0i#Je&7L5FRl7g6kVgziYl83#)tQ1qj)pr zdW{a*9}*~n+6!;*HmR+?u+t=;hA(m|N2-*}3t>6t$9?#5g zIbrZ7V{5Cz)7Bq%$(m>8N$J;-0_MVwIZu9OWpQ7c`PUFYU7orFyjD?v0FPQjl)Su& zj)<)Ez7sWW*om~RBHNEwZx!_pYp-ocLXD9tKQC{1pNp5+iQg+y zsKibR66@Gwu(%_JpkQZTZGY>gsHd=!;4EVNZ;wN{LU>&BeBT zQF%44>tVAxon{<1f5JtG6PFqibtEHx&bMl_CLlXzl2iY1+7zTi@3kZ(gs}wfZYs?r z#=E3=y-599`*B0;mF6?aRb*Agay1Z6&>Ux?V{0YX!qjhE&S~0}xfFeNV&*%zY?>tw zBFvy<(QCS^P8FtE{Vm+fCX3??8dQ?{i`H&8+-_m@HpoadF8h!dj17&RzgW3w{i6MI zTWzK?>%!ogo`u2J8CrQ(3HM_E4cmBr4-F5;(hQltO5*GV*ST_&YlndKJxu8&VfOcf zV9z(9?*~_z&#TEcz6r#=t|>}tq9;SnDxzd|zwxHz>^l7U zj};St78-n}@wRafe74*Q_ErOJC7a_#NV`fXDI~s*-=#~MX72AgIXF9ay`u$A6#@0& z^v_oNYrxqWmEClddmOH(KuC|NNaVc=16KE&?B#?6y#0Wdo%m3#{Arq;trg=>yZh%k(RQq8&oU9101~)*{TDxxe{YuZW4V6T9M1Z=1P}4kYB`PI}CS$;kAq4 znAvAxf>1_pB62g(W1zF-NcM>DZrMU$*@#whOC8?lf7T>uybr8KOS~DdL1MjW3^FMe zE6l|kis+hyp}Y*?qt+ba64sBDqp^0DMDak9&W za-;8P>aoHces?<35u)OBgsH!kSl#rxu4J4ftmV4ng_4DLdF7K=bqmAUZ^DEp zTv^Fbyn$F3aVmPP8*tZ9K56DH^CVR;`l|uzpP)|U{hORPtyuIsm*lA zTOW7x>F;bZ{^+tP6KNJ|w|1p(NF7noFBRSh>%2iqm5=q~@`t4>1`% zE#}_w)i2x@+DpIlAQe5!CX1u2*kn-CvAw7cfAQ132&W0|TdlM^5ypN#+?$Rt5O8GU z0!3yPO0as!kRmm!S;_EWK5<55gUaYaU@^oM(V<{b<)SApRs9NT0Rb7~++D%8VN6{qsb=!zV!rG96n_m?_n6k1QXe&92L&CzzkcUr8|hO4D@u1>qm z^Pu(A2&xo9K$UdsAKaHa)F^HFM~d5YoZDS%fr&1BX_);Gq=Yc2UW2q#vj@_gfgYHr z;fnaa#7VOuw?ynL?a)EoC??BiA>j?Ej{Iw@(#7gOrwnVLAG0I79_*h=*8;Cvcr5FB z@qAi|ESySQa8-1#x}+J1nRyd7+k>}OPVe^tv!I2>UV?&wJrpQ9x6Ay{4qv0_ckg_Q zmCy`#N>sj4pHugfabQX3Eq;WY=k3)ccGt+lP6wohAMsk&@#C#$YfXQ+F2-V&R!_>kj^IOum>zJcLyeQ;dl=WH4Y)a~ z*|5`WtR2D03DB12CQ(`=14Ow_`ArA&)<}Qw42Htag{JO3c-qXaz1?ood!@vRJ56`| zqa=fW^!kE}P(qgZ2{WnU!Wvdt8rPh4aH!zAZuuDZgvm^=%7C_S^Y6u3M~4CRCqfnk z30&?23X@rBSMqC`ZOKVHn~qa%rZFIpF%kSOOCFf9dV2PNruWJ|TN`2fv|Z_Yb4?7* zgdW=Yn_aRyFguO!oB`~ORhRZ~D>qBdN53DrL1gUe%=1+$SyjZ_&MP6(hmfJ)*=`cR z4}oiLe^mwIa3E{NEDaB!ILtehoGf#OuE`i7a3_6HnO?jXuIP{svn5sf9S}z~=-ffS zSL6hANt@YPt`gn&sWG^xL|2aTga7V*zHx-s_=nZXG(C!@RR=+`S$G>tv?$Ax(mk;` zxX8J4)KGHAC?&1Pp+6E)J{G21ZZhNIR&`xd4=A#y=TZ@dxto#ZnVS(uGI5wN*XUVx zqe`RmP^D+#q*Q1<;20c@)~~YnZ_`At{ATCp;xCA%hZaA1-IC}$6H-=ZpbK+3t+iL$ zD0&SqqM8Xym-TTzc1B5ZOHc^Fqv0BV!)@b+e*ZB{XVD#CC9Y{PDA&Gy0Ex>R-;EOFT;g-g3337}vW{~Lw*%;*} zVh^`)?q#>N7gdK2hw9qy%C}7Kx->A@YXeoBd=qiS|NC9}1y)@kURMR`>J23+Oh!q` zz|=OK0g%uq8F&D=hM!MnadY1?p@1#REc)lXFFTgBzFo_$pJRteLSg_#nSLU{|5CJr zbIOK4O}9)aBnE#*#;!2;lMTb?$AJAAS9Fd8;{Tb!4TnC)?@yPy=^9tw z0!%U|e9R>LmIkeK;X)TuhTn_L!pt`!ZIyOmp9Px&fZg6yomy_oGLAkUJ@%%&nwAjN zC%L zzhGxon!Q|VEgjUrSS8^6O;A$OlE6a<$IB?(E-ZV77znXkvKRV!6mwH0=2SGLsM4zR z_YVo>8OsUX`2Btk+0zLd@B==yXyDzr6Z@bPljrN3e1yQy%R-9yDQ}mdn?(iuHN3*K}LEa-7%$|PeX+w=9xy$$yDLvo8`O!w) z?qnrCq=CK!9vT?$eBk1sViwrk7`%wW70Eao{itne+(2-ye5ynfgoEgA%Dsd_uUOBKy`{_#0LR$drtSlE=YO zGdCfMM-ko^^r1JT=bY|#$Au+y=MbjJ9&R2~k90&4m~@^hr?<<_O3WGA%j9|SuL&Q} zMFS7I@XSCcQEEJ5T)p3OP5h3z!sxeD>APZ6`qKwo8iU;*+gveY(5pJEKKQt+J-lCI zEjLXe2`ERxr^>N0u^R`z-0{#3(EjtEKsdX-YZnq@hMoyP*`dTM3d|%F<{OCsEgDEy zR9dYAnfrS>5cGLPNwc`GIAlvGg&($79K0{ae$SLc9!~XY`~$gE3nD#}da~W5<3)je z@tF|cZ1cfE9|Hf2q<%`wdG2HPP`}r#fOwE|RcIf*&pdZCPkw=oLvU2C9%hQ`Wy;`d zw?rA-Qtc|+PERv9;#zC}(O1TW19P>J;}jTxNT#>ahSoT^u5{JHVoBu(bn@X{BL(z- z_d1$k&r$?W2fYVM^wymPPCFXBS)$5nxkWMX(>#{UO*r>JabS2i_S;=1u@8gCAVeF; zbJU^amIR*mEyVbn1apeR*h8U|MqiwlO=A1BrFx~CO>_H0o44L8#d^;j=91=L;kpTH2-?E+rK{U=9>W`Q`@{Qf*w zD29e;0R;$9{I)~&{G^-FMM& zl)Sk7GfpNR90zOz>-&<;!hoRE7`r$NDO0wC+bAKUzcCkopfjhs@Taj7?(;DI%TVU> z8^*xY0}IL>2F}g`AEUPmvEpGO6mwdJLB#tf*QzV7ZjIj1-zm4MD<Rn_3-IiR{2fVZ#0^fK17TA@qQ1GW=HIi{g$i5#-{zkh8Uy(Ho-leBG zCuEzkL&bcyYeK&LXODJf30KaSX5yN5>IeEF3YBz12o*rqKv@^<`=Z}Y`;82)d~Tzj zW|^P!vebGdV|RKzf4r(=kqjV4)yQB;#V0`!nS9)dVsIT8;xs&v(uPM#ycvmsQ;t%; z+cs=(d{u|bC5PtfAeUOcM@Wq37h`bL-lsJ+l7*xPx=;=OovkftToZv6aRp|$rG z4LA~~;kk1DO4JrD&FgcwY!6_G#$NS>f&jmrapHrHm}R&JoJO@JLnlvNmYG>^Xh3}X!|7j zjJP!taT5N2W~5zc=RL5`t{9-KkM|#!iZuo4XBz~!C#P_!H7 zVm3!Js6uL5uAFyBvdqc3r(Jv85+~Rf3l@zB;&QOxDuk$NnrzTXms9FndlgoX$mhvH zkY+K^JNl^b$%rpvv#xm{d7ZZ=)E{C8`lo!#pD-4 zk4hTbg>v`X3EQ5eI+kS6ri$uyPj(opRi$s00lC;d>OqeZ(7ol;iZc5?b-3e*Vuv}f z$UTA)y)}h6%yJR0~kT0aCd}->rAZ-dbw?@GRZ2 zNBLlsy=JP?7|n+s`nGmp{v}{@mt-pglB!X1RY!Bj$c1E7e{DzjY+Ld6dQ*5O`;i~0 z20JLtqoKn?UZ`3pgE8oL3@+uSk&7~iw&9V%A?{_&0pq7NwdU~Kx&Jf0vnE~Bmg&Y` z{su=KtZ0L^#>fgSzziW{^!d_!-~?yk>^(H?3fj*DPQxW9Y{(<*JLAxkoiv|F_N;Aa z5gc>|sf>;%TQ~Ol+zx3T^e%X|mHZ?i1mj_cP#>h#bqza!rX)~cX|UNPaYyHfcj=5l zH(})BL|AF&Zul_1e&BlN@XvYcv+C*?pBrRAM<{9C{exHaR_;_ieQm|a%`riwl>>lRRGPdLN&j;#OFj2D2^bs+t^GF+IA6R&5M4pyCS#_bUwv=!m0)hab>aK59B}gifffO~G_qah8_<+?Jz7#Nw%YS;5Z4 z@{s03^7R%q*x-IhXfwvu+g~dVaxvO1q7l4x0-ZJB`nC$K_Gc3}bh>ya8x9?2+W`gN z<8AhIDC&w#@z`@x=zsLR`Yr9b5J zGZ~=YKEo`bJCm?I9ckNk9Bo@3lz;74&_5Vg^k8ecw#FH6Z;e#DL;EgyZ}ENo)Xxmz zJL$aB2^1mfh8N|Wn{-ap?{v8^X%*5-n7T(ScB;2+JWc`lNpn_F>J|Ak8-Tgm9cn+| zlUyC7+C>kG?QbZQZ}{nx1@Lye?LSha_|qVy<0Oy1wI-a6=E6%)zDYOBp{%IsK-fNK%@Jqc4>i|Dh@Ogrq9G)DX4H`3OMH}#<16wdb@LY!yW4R zZpl7F9cKAiWdTKj31c346;QF+_Uz)wbDrY|JJsfCca(27T=WFfYOc^n*b!4ga&%VL zO^@QV+HF6bRrgOOylJ#S6_E7s@{D%v)x)dVxCcS*`$Gtza1XHNnQ(TF{gxuVci-Cp z3^(32Ha$K4gpoi-$qV$3k?cJVvH}v1c8&l_8T8qs9I(uzb9F^qN_0R;9U#`5txCxp zZ;z_2@mDBTA^rB$ds#@|i6c;T-_K*AHygU4wqRw;H=+@Lxu0O1OFQ}Zc_wJ)djMoI0$o6h9meM;!jkP~=|%thvskN;7xq`G zz*dgc6wg@C2ky)|)TeNJ6leH9J8;Z7qu-)RU(?guTQfDgcwRVPoPR6R*mK|#C<8oa zR+G~7@Wr#Deb%1#nrlj9!!=8Q6rq5$tyits&qq{%5$d#~%bF4{38&Zssn_$X1|{1E zcaL^{PQPXw(xqDRBtK}(+07Ts1)`uvAX&{@;}hL=&w8%kG79V0toO5W7oB^LJ@C{o z_V@EypxA^^7C5f4E$e`Wd)_TudI;gr)eD{r&lV#+d_7SJ`ETOtMsX+GEk9wwW5b6Ev*+#}Ffeccwocw` z<`DJJWarZ!z|#|yBePp((vs$HZ^%8~oo|mSP!Vwe)Iv7KgEw3EK1njqqGgA;%mw5* zyJ0DjYH|e|M)sin$~Gu6zTh`fR~h7002lp1z{H)eG0(o8{wczTd_{J&r5M~$7R}8L zuXYg!!aN}zc<6A)MOt(5!(Na0z%Eef8>g(*xjnzw+Q1qDr1wAgCu$9KeCzXNXhmBc zy%CJwcsb_G*Vdo17X99m$2O7mhWuEw&DQ9ms1P$}NT`0->F~GOkZX_f!}xgt8yNw6 z-(Hqv&?zNEUQ7<$Y^tBi02Sph*#078AI~e#w23>wEWjS4L3ha7__xKMLS1LaJ&vQp zFU3KVPXRZ2fPzgJFwm9L6MAZFhrTrR%BvUz6w~UuH{v~(GZWisO=*-1)4;*+DqQkV zDx@c!)@T6D<~H!wM>XbMxBtiR3vr6rth1_={&L5m!hk$bz6q8P;7xs0@&FY2$1Obq z8zGb%a_Q%PYBuN(&I`&L9(4B0Q#`mokbKyC|0fK0&fv01c1Ki5G!YHl-O!&CCz1*J zMxf2%wWn=Jx3T^iay=l^IhXLNm-bkPH!(#O$l*&n;(opyL;TtoBJy8x1s9w3g%m4} zHM;aZ>3c8&>{ub8q3@~0Z#M_31N%-B)V$4EZ<0VA2{72TK<_)?G{FCSx%Gr!jPz^w zPX7NtqbTWzpBgbp#*` zdIe@6{c!L5E8=S-GwaS|)iHDovi^3~;yN!{0XS4B?9|xEX4o-z$g(}=d>i{2{qdr} zTK&@BE(3PsKab1BM|jizqq6iWK!ZOYgcE=E(m|gU7X8^L2;Rl@Lnmkb`8eha%31$> z2fJ4dlHPy4eeDXWZT@=uLHDnwK=5f;)}PIa(05F%|GDgcX!Q?~|3e7y^bbq@MT>s~ z=r3CQ0~deN;vcy9lNA5J#XtJ?BQyMCUHl~!|Cn%p(&8V3^-og3{xQ%0qQ(DzZ~=-R z=~dO&#F2}-CZGWM+w0qorouRMGf?t+$WQITI@pJA<$>1(zSh&h8go`cDHJ#PE0y`v ztQdHd1-gNBaI!_Hh7=^q3Uq1sR^xz}&B`&K_|va`L~mAK6+*H6p(6;x;MS^FKR;0bL6w-vEf$~rIPum|-X z9%X?Gt2*UJLa&T}9>t}%yMOZI{3DE7!o^#Q@Cy}bV2DnOF;yE&ickJ*(K=54>^c~| z+_twWDEGWbF?XI0t<7NAg?_K=ZC~X)xz=_4x%)NdiV69DC!4NjIHTsgP#&x3mq)nh zWr6CNk7LFUN{Wb9AZ~L`JlLTg&(vQnx+OJ{N3)VE&(o8C%}V3Y!#q)gP!J>_X6b9w zzmrK7bW&ChG#^KYUZBAEo_IerxJVFmF4h8v|xbzb3x{<9-SMq`k|N7Rg1g*}C`Nd<&^|>Hcty){h*vU@+B$;tg zFR$M@JRy(3Rs;p9VXR-3iu94onOtYlZkx1S{Q0ou*Z09+H8b~QJmvYx_yNOsoNfGO z_?h@L^+j{2!upy2Ok&NYw~uQstv;>^>dULS-UmI;)qtDE)cDa$nSXHlZB+uzjXcAo zjm+k1BcAz@&cM9lGIkvl{Mxk%^v~*=$@yMqR#{|ovVA}3i!TBp!2;)Dc_7Qcwrclm z#ow~Fp2K0d{TkukREBiHnyG}~bup8$f*G!}Qmn>A6YGB1hvlis?*XfB3d9o#upd! zxZrGvyLBX~J2+UO>5%6&c25k)`+Hx|fH0yGUsbsnSy2IpsUCnRaIR|S#RbE)4nc^Q zACw3`=axn zC@_tC<#miZ1l6xTz1|~Jc!$(qNS4hJxoQ!hDqfOmN|B)6QR_j}yVZD%Ftfm2ifGno z;S~nksh}FdoxHVz!O;d4o%y#ynoE^nIZdjJC+!&d8VyYERFMg)zMjZqYJucE2D5FK zK^|+vDHi=>O85PRGE=3FrX7wL!Emr0DWr>4j12lIb!#3~Nh}jH3nulQy zWA}m^kq28t^+i|wz@8PI=P=bMN<^6_^8pJR0jeOP^b-t0lYI6Bse`h zk+7dMA$B?F;<*s&eVgw)0Xm%^;)a8KgH_0$*~-6htd=!X?6B(CriDl3NXe*{1CoJC z*^kk*?vl2F(0U*%+{BIjc9kR1UeSUc@S@?pxaRx>p(bc??oVmD4x|c_Fd%XKt6-|2 znBxs3pxoa3z7#_;B7gJl=p(ygXWwzBpa072Q8LSs&Pf$1s6~;LuuKHEA)AS=#DW_q z7+(w&-jFTEP%NmjrJAXX@LEg!@dJHT{FXsQSg(9l$z>Jo2rY1UP`=w1(dXNL8Vfz8 zeWYD{_`hPK?=ReD;36X)_$t9Iks@nZgph<;q?WWeNtN5&7C#!$eO$+xX2vy zim;3p3~@jKP2mm|fa@*?mC%dx%pQO;SZ){UG)eX@W&j?$gbQ03vGKU_oenrL0NFtI zWOk8c3Vy4PGtu4n^UBAy_uY8RjD^x_F#WHgq1N>Wa>G?LKD{bYO7ZfT6g&@X1MZ7~nVw9OB!T`|5k}-ej8}ioSgWuF@{tieS;LuaAi_yi6|>ze!#iqTQoHS8xt*yXxUqc z?SB_?1jLDb7sq5*fsol1VP&Q=&_#q2I~Gj58mn(XNF-^P?^Dm8q|DzFKb$#2C6K`VFp^RT3c~ep3*PP-1x)acin@%R=X*5)y2A6QK zxftmXcDUX~&9^WldNky%DTRmTnNrmB(6$92bA0eRg6E5}l1U>lMiUqykd@$O%LV4I z(>yptZaR`Xb?ETnx7mEZ^v@FyTs*a$sTvB+W>5|?HHNQ7d_BhvH_yB6-`bq*U08%T z=NAy;^<77D4(Y$G8{LPIsR=6jai8Je?`gHWIu)I;FhonZj=f|pl zc5txFj;RuX{T|KKXQfo{44k;;Bz%`9xh$*;jtbOgD=Qys+e*s5i!fN*3hE}bzk;|W zC;w(LI_p;WftzaB44`8W=a~L6XKsh={d=kGMhzUw`vn6pp^|XY=lbF#;>GoXA#1Nf z%z_B{J7U?K`Zd%ert5|mlVyh`NmyPtSD-JBDtP-r2$!A~-e<+|o`CwjyT`PXj5^M1 zfC4D*k5Ga2#3#UO51eR|0~IQPd)dRJOW$!0`4W516F9y9kIWQ~z z&V26yt+eB{DHiKm8{if}F;ywbwu%lTG$FQ7O4mRJz#sO=p^F%71T5 zvYT1u^ai{vgeS8>M$^efBGNNbaIT5k8Q1I}=}1~JY4!Oo`L5hu)kk7t2vc~eee??R z*AS;SQNF=vj9B6+ZgG!ZVJ2T2Y9guwefwUZSEb_zsCwnxRIkRGAPp-fKx*=Poqkt; zK%>}NbES6GEq|}y{yCA6VKx;yuO&S>8b#6P_64uJDWm4g=RmQW_)5MfQE9T(bmlFr z(3 zOOpDp1hf;SDC8W|FJ|*?P%rkkGU^9g$XZb^7z_-P`VcSea2L%EN3|7IS{lh%$h=8u zVDN2dgZ{lF>}3q3$hg@9kbwdy(VrHJ65a`z9LwhVS;1y3p`B6qf(n}a&Z*0Vw!npx zg04%5=~TU(95Ku8BY;{WP<5PE_2~pay&9N6i4+S?oy3X~h=On_4=y}Sn9-62$&XHm zo5xC3C`iFDX=hVX1)A*0gt!t#)7os^jgNJ)f;oD7?1zf-TZpXRK8%6gQ8Hmn|zq4bng<1SrihlD|UGzD|Dzly?mJkIR!LmA|hbU>6 z?4ak>$t+_~UmLe)LY66ET1b(|e5nYI*6YukSsc@|mMy@=k#2QY2-&dx8dz`xw`kB- zw&Cn*QJ(2;z!C?S+CgC)jNqeJMV{%&UiB^ruOc^pFyBthrs1J^yNE|IvpybwZyaj% z=-^mj;vev2h4?F(%YpPV6Gz5S(-hfCzV^%s&Ej{03%|^cICksTb-^jOSa2V`Gcn_d(s&iveTt`6f@~_<=azw!lfgZpUc~zZ-br-4x6itGhqCP2ieiAwPQW-HU6YCda zrNM|vBhs{UP@{pTh{#I$*yOxK6)$q%%m*hFiK0nG~z%1EhZ3i8%`~~&KFMpO-%PuT{jCvBP6YyOYN?Na=jG#C;FpaPR{AvEO z%$G%d;3-)7^=asQLFh!?82Mc5dJ@cN^SSXIO%n=6_J*N!mz}5Mey>tU+V^{V_p5_C zxeqPFP7K{_zv}!;`@Y;$w>P<7xT|UGH=cVWd7X7<gYi7D*~*(}+cSi`4590CTpdEfz0j*~mtW~r{^slzrO_;$E9(Z;MU05zxBj&uDXK`l_Tfy} zRVx}tz89@be>IUV4Oa@3I7_$7tf#8~r$p>_S#}5TxYhTzP<-li3qj)Qj$e6lF1~0x+G9kMZNsQi&teryghh-hh z`r_G2&$O#&lVi80MV~!Pi!odIIr8h0L?1`C56t*qP`(<*v!jeK7LBA!%cj^Kq~{Ki zZkiOA7?b6L-;)^A$?oSHTt(z9QLlya_6|$$PO_@TZyl)Kb))!k5MTV3B&|3oY?1K> zbXbH&;%4e96`Q06Dg|H`HS!sWvZcXOna-#b{OEEY_5&}Tx@;HQQJ9ZlXINqMgSZca zV41Q`nL=xo93aP0qEvL253YmylU1x;hl#_*R>^P}H7maf-nd3e+z7k3pa2(M<)g75 zkSR$lekj&^?iMI#XuY$EI9v7tFH)v7@Ka^eBq^(nj9osNiCi6<)xy&61?|8873@r= z9E~JT(?)!cuHV^ZMmP4|Ka{&);T(2fi^5kYPT9Zkul+(cgcVz~QAHxzJwR(I7cMzD zRgYN=PD}!rVf+hKSWD6tGm*l08f}y8y)Wj77<9zqU8#J(YYLAV*bdPJS)P~a zqu`hYEsQ^1@XUh5PB}02B_7oSL67(CU&>~vDmZCvM0-a7xY;XdU-PO=0FPHx+Wp)7 z{QT9>Q01VYpdlFwg`(zGR8$-(_NuIxy0<@}k=QcW(_lG6Gs^uIs&7XXd*h9ajHc%1 z9)~YDj4Ss$Q_v=<=5JCwL~6`kabNur{6K0Ut3>9uOmU9lS97P_apHJ6*|k1EFQ-Bg z^M-UO%Up?FmZnLQg5O2z zt%+o-*rTy+!2$ww$aI|Y+9uM>{0o+BST@rT*@l$_%BZGBQTCS0wn4(J;~&<&-zv9? z3MxUXPDpR{?U*b&zU=MXnJ;T>Xr`@GmeGn0$4ZsP%iiu6=hg!tDWq~pSze9IluB9R zvPGBdx(5^#FqglKq|cMS)$jMsH@Jy57b&#Ug>my zo%Xo++vf*&PkpydY@4~RweE4hsa)Q&@7pdIZsR@K$wsfzhV??(WS6C*u)4j>UGIM> zcPd-HlZMfa<=`cC{L)%TWATl!yx}f6>3w9gEUEAyKd&+|X;>5G3I1@}DiU4};Y4|;yQ&(UF4M3029wIy{0Z9&E*8-=^S!fh9 zGhbRx6*bAj6aA-`2rLF-`S~({z)Cfvn7JU>Hlt{JBP^}-z2;Z2CaXf{k8^fk%B#GM z1`{@3%T2@rRehh9w>3`kJDBy2M5TAswQQ0O#(zC&^x< zFaosHO5twERLK~rM5tB?eo>G%zDlKvn~*!ClXepBk1t|k6~2p5{*K6W2(K=AtPY!# zZ{klH5sN${*^=EYxJ;4NX!zP9=ylrJal_lepQ$H9tmzQ@x3|$7 zzm({pWMeN>#COR_Ny9{j2=ny&sg{O!4pLGqy<~3v@A=1J3rX^+-z1DM4gNbcF(yGl}0Q8>2=?(DTjM^v4@u1bLX?m~O--K8`2#;7dt@2i+sS zj_QX}L$m0GrCqQvIdHj_I{^?FKqVv%d&vSY;U8fZ(vrz7>{Zm)@((?l*UYKBlMz8H zXH(X8Qx~+ei!yr3ycA%za(n70Cl!%+k|k4%xI015@nsvQf_qTLuLu1$r zYl}yyviJzd^b@ul#o0UPI%h~#}H$bi+H;paSlS~uGX6188V3v90u+Uw+u2TU@ zB;o25K>zFx2s%9C^aV2{T{H0*-TS%Ae#v7{~4sSDxx@Ls^ zWjX?O{Tunh)fxj{K#i>q-*uSN1Ds&jp@F{afamqVi?dn68!3!e7>cY)r~sM24E+dC zej9R4c|M?r|D#lpDkoV0z9}me@6{to2G@sW?~Oq7m5~xdHKTBQhk|i0+=;M4H?!2DSFmqR z$!A!6ZTQxyg-}PU3w9ldGVgnPz82}ef_=Cpr@|7RU)pea(FpU_xf7C5k9*^*Q%LbU zd{d}lNshfy+~eY3fSVBp?tlgsTR>gLJ|Z3wGkMYnucp_EL&zQr)sgDi3a<-3js};B zLf(wd6S>xMoYnhjNw{oYq=salC03=!=wS=d;*!aD%G2p7f?OV8Iyg_6LJ0xH@H6 z*zx}(>uuSxFEv7|$~@KYNZ}VVve1jLK}etdNK@*VQ5tB(uSr%=QzdA?Q~ZbH;obsY zOpk*Z?dP|f?*HC^InZOS*m^O^FfkaMRw3hB{&4&(`D^(^YciXD)CJ~M>_>lsu6lXS zWP98quoaC@mMV24h04esD&;MDoEsoN^?wtTj2Gsc0Nm5gsBon-URAD(D;N}t)Bkl6I!8>W;|q|c5ivjr#rTpC=$@7c2tGxH26YIgtGUPGeS zzwVjdom|)NB2ZY3M+r{@W#LP#6DpWP0>dywvWu>0x?DKizP%3iG-DFm?q@HnRxaxG^6o0iC3(7RT& z!#18xW*2rHgon^4_iBrcuGkyh@U{hY7T~d_y{*TlV?VvYS8a@_^nL(H4fL^_HWgTO zOJ^sZ`nk*71+IPx89|EW%A_M056AV#4ntek8h;LaH?=&LqLuk2yewun?2G@$-kZlm z-M)Xr>gwuBb+u?wQLf5T(kRKkbR|hy3PWP3kaaA>*oUrCDxoYXYf_fM$Tp0%L_$c6 z!3;x43?|FWltK6Lq3^fv?|ELo=YIX3KkmQo&mT30`7GyooX7D#-pBhmr$rdv5xqn$ zcCfUHxOLBODICFD0+-zy75y4@rR%Ub>g~9TUjWGp zJTPHP-YTWT$OPQkNQXB>FDZYo)ZG^dtLl86GT?#hTFzVet1ef=Iz>L9dWiW|w|8DQ z_JurQ>G@C4#y&;kTjPrT4hwJ)3?Lx(3`tOm$h2oz>x}}xk02X%mlfq*=;a-^zJ6{m zEYZSGu#8^$Qg+D>MH8HjuD^jK z0{K|cr)x|9zmht>b87eX-ZRSsx}ioNdY0gGRgPO|E;E+|df;Tp8{^>#&~mc$>MUfh zaJ)1VLN?D7xX!;8SNa*n{{1igqREVV^}~B@Go>q6Uc{|0zuh zbClmzCtGRusLAfJL57dy0sz)haj>$UUiDdjHp)y}E0TiUZj2CUheL53d(W{yJH$S^!rDb&16T zTyc9Cw-a)4T)aWXRMWuo(N+P0Rj|sIkHl=Ce>w6`^geax{u%m4HP7uBRYFE<&0a=d z-&^gyArB@J;15TBnh?BvCHViiDxmbA=jsnxzUs_5c-U7GKMfat>3-7H&28`*FbB~M z;;0)(k_QYm8p8{!78CaT=X6?|N*ml1>ejMvfeVFnWjyMg>W znMbquao8|bTXg;P8A!NAo4izV^)&Wu2)&|^P*)dlEXe={T8%I#A0(~jKkKmY1Ew-k zMaVbWf3h$FP1_LKXI1`=Q?9^UjBB#nv3|9O#~Rtw_r)UXJ*KP<$2D=*a4CzMPb&HL z#%B_Lr1H@TAv}eJ7iX#d!uKY~Y^=A_!p_nk0EqMQ@)SSCQ?f**DuJpoGc#lP4PAw- zf9GnYh;+WKa7sz(q5q)H2j(fG;P+0@;`_dVH+fYBsak#1IgLIaAr6kR-Y{9sF_Ez= zK~FM3A0<0()Jo{cAL~iYo8|A{vN@GIT0>gcsU)j! zlM>Z8Aa}f1icr-RY00;)`~By{zZ!rsII=6e=JJtDy%6jtu#okuZ-PD5;3)S~`pktn z44>WQ-giQHma1xj-;SVE%-cuh!Q?u1+wEq)tAT~z22SjB+J*VqzF5Am**(AQSkHif zgb8D9k*)lOXeq-_aUlclJ0zoZFXoye{9m^VIk`tVZ$^Pms%XCVJP0;Ei2ApUDHV)* zl^F~9#lF7$!EvS2(H^fjj_CT;I=U{dW19roz+{bg7s3h;`_8s_C|{{xO!pQ))dW+DGPIo+U&XKam)qMGSK1m zMfwnZAy&;?SXats`WKaL$CKrhjDoT+2En}=ZJ)&HE z#uTIKQeHVmZbnV)Y$|qhRYtQIw-hL=^;s9hzh=yRZO<@tj($_p`{)+Y-#{|@>(_xd zjo1etpQF%Chv4*kLtgf|#TRL1jtc8jIa4S7s!_;_3#nZ*dr+U%^SqKwP1pQwB+qet zW^T@ZKj}$AqsPaDgamgyzBpM2#ofsbod2!Ixy*1bFdu3>akD{@!wN1>Cf1C!E=At5 z&e^w-U;|v(2Se$RrJO^wElm=4x8+uP(w<2}h3Q{ItVzq}F~TGAZL(>pj*AD%|sD#K&THYT48UX9Xf@5*@YQ>v%WYha9c zk>i|$b=ka&u5TW7N4PICX2Cx{b=G&A2M}?YS*!VvO@qWWCluz&o)9~Y=CZw8J~ zDqywj(F|hvYrdyeV-q@xJ!sg?ayLR#7{=kgEs7! zr7fCy{3|-X3`XnbUug>AZ94gd$G?()5y~v+29~m6ibi-?C!AVT__$m`bB(*w{V*-x zHdNEF97^MkB@Wwl)T89AD@IHsaEEYGjD2fzowjp%5t;!7VOb>X)X#HQbxBqk#22TL=H8*GJyu~_T<@*`3AJSPe_ z)}Mv4++Qhk2iO!@L$9_Upu+4KyQ*r2Z6!YEq~olG8n9s(sc|wjVQmvWvFAQ8Y5A)l z7yawsA$dcN^!Gw(^P*hK8ZXo+=L4~`gh=2HToh!dUb7gg+UmX*hi~OnD{Sc2CyP@FX>-^rjQz52bJwLwGuLXhVD`oWwd~S8d&|~Y1msQb(Adq(WFiH*UK}2tWR8N2?IOEI&9!Hq`fUCyAC(%FC4nRffC6*|*9>#zE zn}?;zD3{AMSQ$v;bax&E6O4b()ROtJwQhlDGN&g}_42E3Tu-R%jU9(7ZkBgl%x~@({kqIUbzio7(`nHL zUWPj(>ysp^g>^^yWo~k!8=P6+hZ>?w9b|F)TQm`jQKkq(t}Rs-H%uNRFSy9>LhljV zgNz=4R&&I|=opE=7HQjc{hS$o|NG`$aQc1*f@5~9myR|!zWruE`$ej8;^w^c{plf@QYpoR_xRXC@p z+zzU?HfKLeDc(7y9`{v4bi*58wFqEn`(#~d!RzXZuO~3Y30BKvdZt2 zknw_jluAaVG2vU+Lg^ujta(gu_g_A4?kY*0WHyKi2cPBES}Sz%#JTGPUMYaxyb|0A z$Yf*s%2x;d=4Kr&x7LIuP!NM1A?nuf-Idm78{xhZjKpQ#RM*Z2YP4>6^fJswvT8&q zaoM|9l!c6+Kbwwz-0K7PYvn%JgyTh=_3#SrBq6_YLrX zC)R0SCry~Fa!*)QToZP})wO7&fYKk75I$eQ9|ZXVCqyXEJ3S4r9Tw_`s5C){CiET3 z;v2n2?DjkQ?!120Dt9NG;QX6`mt=yhHjUt*Bs53BPGxJZD{<8hYpNDu=P1h5-ta|)dUTTB?-g_WuFQu1%c`D2ai1QKr& zJ$ru*+rx7x^}4ov$WewnZdu;&BITBSVDmOU`j&jIpQ$4>qcPlLBlm<+&Kd0i&;mYi z=Z{1^$?zZveRd{wEKXFr25fEf>O1hw0y-v&SDUJIj;y$DlciEmCG17`nf|KmvqM!wrSI}- zl}t8GG9^O@Afd#2pQMh!H56I3rA(si05~p6B&~OgT8w3I_PuV`Lp1gZfy*KQ()-^< z?0)zAb(=H2-vp(+W)Rw|{{!)p1Reaa$L5`|d;?mqX{5OIrlWN~;qP*J7pP^fHWW+K zhzG&MG6PX&C^4vybM(N-$7)e<8s5l!KO7D^{q@0X2?3=TVhRjz_ewbH3DvZ=%))^6 z=%Wc*;`_}G2UuS#H1~c&7l)-%5*hm~KuoCcXWlr~kX^?1Ih&SjMm_2^Z}$XME%4A& zY!0%3-Y>T{nR;BgQcMiIw*|??pNZ2qw^-+=#3A`_-~y5g3=~@bNdJOKnVl|YZWG27 zje1?$87R6TG%4~#f`ygRD~~{mCF!O?*3Oa%NeRF3t|^0ej_8)w;1u5PoH>*i0} zp!o|&#|pwE=_O&DhQlN037H1bHud?DBDYXI$9Uhd`4*ghBZhpa?WuTac%!WBxAa8 zL9gtbckwH#s`~CYe@@3G&VK$ZX^Fw)jywz_+>W;qb@$chLHh&uKNW098s463d4!mK z-K<;Vh6WzTx@fN?>iwwJ%%1MQrywFVMvX=$g_7(MvdMRPNZ0O&{EIc8(r-LRr#P1N zG09mz=B~TPT~dKzmNq><4MW;emnkDXMsXfH;-`NGKp>_Vun#IGH0G7S*6ygWsh}u_mUr4gktiT z*`0^RmDpvArsQTEaje%XK;c61ee9ps^K&QStfyOdht@p8T0CL}(76i?HJ@BrcR!#t zBr4z7Ih7es`X4@ZiL{XSX{A8_OPuC}*{b|9$TT6wHLcDc1JcMHs2|{WGBiCdlAYBz zUa0@N@2koZZ_q^~4f`8d-#76eyT{30D{V?yiYEOBSmu2OSQf@K2hOstY0KQskJ#P} zZx1~s*{sb^-t1}dF=tJyup3mFWH~%IF0X%%>_|e~7dD4q{czal>gVfCTz}?x>^+P`0JP6ej3XE%g zb>58npvu<8^#ZRJkQ~6^BFeY@^ybS>3FBycjTH9Q^XEp(lHr504W&)O`@@HBcw-a& zje4iGYx+s7fG?axgN!8CjGF#4g7X-P;l!uMAF%3%f1^e4_!fE`%C)rFTKt6>mPU#w zuKP}L#)zrj<9?Ydz0f)AO}AHXU`<xT#qjTV2ezv zI-QJ0J{)=Nhp?G{n8j5jhH*mT|B2jiR2q-Dy3nsZJ?o{SZ$QB}aqfP->h)HV#sugk z;-hja=!0oBGjBo_bAVf!j@_Njzgpj4C$LigGp1zsy7HnX4L&$Co))P3l&h*zd4?9U z$3lXavh-HIw{!e=DtF=^dz#UK!gDb+61XO!J$13;7K(HT$3H1N!#s^n*tXzHvAiv1 znCw*+Zp?qDF?WGJsMVq|X7;B0n61>hW!_DG>vjAWBJO@J2!+j zyk42CL5Q!MJUnKGCsgP!By=jr2*oz(617+QVtU^^;;eh(49U6hE|L$m*d0wMtNPrU zHTIjnNv>IHLq(XZ)$=(I>LU7p(DUq`YEsZaG~G5%!^jSv0&-?5xDv8?sN_QVdAyoa zSrENLw)1%_x;wpEU?ls$B}n8(r23U0nXfOaCrsidWJeeFG-12sAdI9WX!Q2jZ&EcC zJ~Q@dN8fCqM-J4M93M!N>=RUOZ|ISyX*L@DQw@Op_Jf_nrQ;?m-S7l?(^Yv|H#stM zdT6oU7lzovBqKs~gIc^xb~>l~bV9;@eU?Y2cY}vs7j!3Qb2CumJ*ImLF+SZ)A2jtE zWLtn|N~uR*hEG>nP*Iq!5$|&cQ~p?s?W3bL9gIglOwSizlqpa=lrWihi{bIS`DoQ$ zMnPGQ58V%))uY*T4;!cQwiDa*!J}GL=f6-S7`~T>`on}DsQB95mB+-k=2nqgQCAAC8uhOj29+j91E&a|HgRkf3iOG zO`~^af?KR4$5n-G+1oUx;kIo?w_(CeKZwi$dOe&QZtM~#jmP8lG8LNV-@8z`yCj9C zjpK84l87@_?cP11M3vzP!vXE2Y;LvW$osEX#Tu~ut2;;>GgX znQkBTk|!g?^kn)hbLoR8UHj;+8D!iD&E_7VTHR;mOW=4gSRfx<#K z%iIBn>Uv?=NmVXl+|G`#N{BB@{DHzgjIvmEJ{RFUE!89@_E_t=P1dT9GTatA-7uA$ zT=-`K>t;dVmjv_2RI3J6O_|@5n3TCm_TnU!7ud?nfjSG>e?%4D`$z2CKh((icab?k zvpT_EoI%aS!R(Z|tdvU&?_1~Jj}h1b%&`S_@Q<;ZV)OlDFXF5&EsY^zHcbq(G_IBN z(@ojXh+xMV%g!U^`K%~)fjtEBhe(Frcd51UmaU!oXxalbO{=`Ky5V>bJgOUs%uhH)7_Lq>8MUm3yMZke2=9ptysU;WSev2gjg1hc6a20Rgf96=b6*)giA8p z!%GIp@h#O2MXb3_M++LE^Y_x=Ppr4Zt`RzOk!zaY%BvVr&*oL}DzkajKNhk#2KN7! zy)pRPo8o-KDMKaosgXOxy9;;d6g5oU&aVQmf*@D}QZCppAp?OpvzU0{#hZvU^!sat zM?^P(Ae(XE%|V2hyaepCMR+NsLWS6GNM@O7>RL(0f*pLGdshY3zVYc2^AX6^>A__W zvU%h*-wtdxvCZG0f#4`yA2R0unLI!^fB(!@I`3%eA#iLtrrD+h_XL|hNKgl-N~dsR zbNZR1dCC+*+LsairI|0StZd%14mWn%x9793;+{xn`eWDO7BRZZn-7XZO`e_q$x;AS^jay%|nfidDX$bokdQtXggkurX7*{@b8uC5bjj&j z+{j%_>z^3%g-NM3KG-ngtE&#(t0^kCAI+Qv?2QfZmY{j3-o%pb!K5$qD?>HuQ_dD-y?_y z91XMok1(Dfnzus98ch4e!O4RmwI^0;3-L)b9sYT7e>19j%-D~w16s7p_M|gq5&YN6 zynig`GsAo@$q1*6?u#(W?0K}eCwX8`knW07ODKdvy+y>MnPCzU-N#^rK!t^)hRbgS z^`BJ6s0Jmn)pv-_Ji`|FP!p(8?Ya4*?XLB!WB<-5APHe{`|s#^@9=o>0sTN`+|Q($ zu||QSaBq0*qGHtPEek=_xY@hJ=Q#wZSac72=eN)$BRh3}w_JyrrK7khHl>CWQFNyF z@MCv1U6mK;zh>PAS1lIFH=yz{c-ySM1)d4CgMy zXI!FskixJ#oaQi--=J>mer7>9O*yiD@JK?lLi)4$tsMS>OK%g0DY2nu;XHL?3uU88 zT?TiXapUfFxT#7qk!)9?-s+LCQo#Mv5`px%;@fBo>Birbkff{6Z(-09(xwv9yR}>~ zp4hETge$4p*hl9~8CRreicxv;D1lj;5|d z6ONQ5XI!R*@J{wtb=Jw@6ibOc)s0Ym2{bgjTc7&3kYB<=!Q?s%%Bc|r1Zs0_11N(Q zX7ynV4;7z4B*D)#-j*^Zo&3mXTQ-pheSZvlgb26;@gYM~w(AtCZKR_}*ZbV)Rg7oa z`_Dq0o<@l_yz;JkQrTIhb;r}peR7-pQ=<8us0hIn_p|jOk~rO*P_-Y}v@qM*^M!f% zZa3nb9{9RP7IE02s{0@9R^o*D!KvA+{3jbZm8eKzifrF-#0=bt0GjyeDW+~5UICr$ zZt`F1oOUP1w+=`3m7U$*D4}uu_!GS-V^jl4CeD`b1=-51gD7Pf|HOU!<1G`taHeX@apys9)!6*fDFZ{t%6^Ht?;;E77J8BpY9i#bmQoA$qB6^Kuy=xKdSyy!FTrXlN+~)_-Lq2xk{1BI{a zTaGP}@?8h>3z=-@(k;cDdj_|ZN@LkY=kv0pFFro^fo_UAC>yuN`v68NaYBp1q)W=D zWS6QNRANN8Xbf~j3hED$+q06RCks&#?G*7D)aR5a7KMs&k5Tc&JL@O6syEvE_q|V9uE3T7d#=O z_!SD|cf!2MmZ-w&pwh^{f%ER~LYC1#F*?>M&DWq{MU`AgI{S%_qf{KjX94R)*1n>V z!qoMiDATBqT6ZV;2IGLli1Z|Hi;u@XDEag;M-YLLnveTUS?I2glwVZsa=S>1J34KyJD)ilA*ZCcI%| zsMeI3fI!P5gw`y85S+m1wlgw#IAkS0zg2L&&g8f>dv8avR#L~E)^cC&xVfblH-fUj zJG^M5!(g}i^?Djm;L4LF#LaKQ<-B?#id)$Qd343rH~DjW;F2fIpvHoQzBcpvYT~72 zqu)9@>dwQ{EY%y38d&0;vcEb|4e`ULfEoGN_d+s_sd&M_yZ6OJDYH?qw|>#6{@_vq z?jDTh97zf(6$v9z!6F3-9CLkK=#BIpHp2VeTnuI^LuvbY+ z4ty4nvtywu>=fE*%WJghtJ=~)mQ;uXIMxF1FA^KOHLhXIJ9GCw-V6ZKSN4hflu)l&bnG~uRKFTW>} z)(j~qM6xzJ%|(n?qm0Mcu(Ep?-Q(gd|NgMe>}M{@8Be>m!w?vOT)rs6wr~T5D>V`a3 zKVz%z*E*B=F( z&Cu2S(svU(k(v5uxJvEvY$|_1Bl(Zs|vPVN44eliu7bXB?PNDV>70?2Iy z6Z>Lm-mX!91-Rm@GnL4e&nDcJD!M|>Oib%W2!>vuZqPqXADNwCsR4%ugNWg`koXE2 zduck$Ctt2#x12%kb&z|KXnBK$qvRwaQ&iZ1(|=^lS@hI@7Vz!s72uO%-}^%WTa{<6 z_>ST>Atd$(tjQFj_mLYj3m*4pPN1GtIWn_)6t&(E_>XbeAYI(V1J?fKtGu#Xvh3%m zgNNeQdx@!oUJg9OP)Dp~fo1e6B7^Ul=HQl1V@YHXWU_OKwx(b1+0Lm3A~voPHX;@0#ln^W0O+Bu=j@g~&NKKW8kdm*XfxSSe7$(jcU3-_Q%rA+JlhmZW!77PEZF&0Vz(jRX)dfdpg#Kq!T+e zdD<%s0NLUF_N+N>9YpM*8Q~UOG*W!xkMwem<~d&dK>~jQ;`eY%&2CfIWK7VbX217UkfkGa^~jD|Z4unvccGw;bY}IKpz;sKt)j&;rkikS_1;gud1u;^R4Cq~avm>P zwG9N3@Y6|>>lE717Hs3Vi6~Y;gdo4Y&Y>R7I_x(a)F^Sq2f3O3>8;laOAj2PG0Rj& zypoixGP3RP-@oVH#YP^YRQUu1&>fj9BJy2wa9n?b%(4!|J|J?#!r1S^FJF2m;o_PQ zXwr$Vfg8#So4Xwmb-I4g!)_nOtRWbmmORo!bjCN0?eloqbZYc`^p~zW?r2$+9c9%R zhR-HA$5}Ex^}1r5vtt;n@~+$HnRgsF1B=NfZwz63=3K$4OywYS1E&PVZ6;~{5j)(e zNHfrf=vLXG>SNgr0UpFtW#85dIRX0>xjb3d2a(~@fvTj4)ZSsC)<#@|PPt^j#G$rq z=>})uZPf}q<8;#~t1@3-erZg<9WPEwr&ph&*tLwzxD;GWB5ir0)y!=u#%|$fx^-(* z=itN;$G!zemnsSVY*LKvnmV_MGVyU}oke1L8MdU!?=N|!+eN#F)#Wp1Q2ftT8h>oV z)yH5p-yntPUEu}wm4t3`OX}x~6)gJ)A1)UymIVQ5Kn_tv+@N%Q7)LR{r5I!YQo02t z#RGzlN}}YmRSgoyU88f*;(FMbKFKAqPHt~s-?iw2EUzc>@gm*I;}6c56|u7&28shV^&2ZVH<5@PoQ;TKKdkD^Dn6<;UWs+=* zT+`ST#~xB}JJz@ugK*fno)=Px3XT@cf^@uLmW6A(U&^I&lV;h^k3Sf+d+X~K8&4+s zS(CKNR8|iU%{AD{jmoqsl&Blg^Rg5c(gXJ#DDra?#wI(nW5^?ae%#F}6umV6SqH3!S6sv(buo8zjYtnX{jvX>B(tFYirrbF;ty*Z#k~rL8WtoWK5tFw<)5M@Ub5{04xFav%rLrHMSLY=d|MwNA;F%WwnmuN>tq+#~t7;)U@zOb^dP zc6>Ck{8Fxpawoc5$0BZ`oQ=n$mhD)8iwNNpuQ%8h71ecN7!U z2YO+qY)@G(9Z?X77vYmC5QL@du8l0W;%oBJ?gKyE<%ts^M-^^GROd(9u5Cl z9`a3t$P3zHOqyRRtMw#i&oNxt*+8Z}{VjK4IEBQwQmXmB)U5%0SvcbIo`SLf5$7}z z@-G5kw(afURG*M5S^rt?xmv?myq(&fye)F{&hi}B-DMxNF&i(mqFfRVSj>KZmRHX` zx^K2>Y!}yrS%91NYRe-}Smg72P?&N1ffM{o!g%#l>RJcy7BOf&zCZOabDmZAY)smG z;0t>t%GrgH!rUqI13`>pEKAg?BY>G!p0SmX7Py{~zKAXx3&4*+?F%{jfTj&6kL7yat?&E zH>Grs=UbxQAdC7;hx#eb#y`%SZpv~Rbic}Bpj{KTvizh4?RZ(FP_Goagc;BMD!=E2 z=$2ATEVthH%OILRltnGfA+`)?SITmB;FxoLgxUZ9df{a|Z3TsWc3Ur^SJxUU zmFmBT(q+HtM@V$LS4vC*vh&KaDp%%23nwm6`-{47^IU!cz-NKle_8#KO7Q8q;jWQG znp}cN>k4^^dVftEFN6eD<6no;Ho(XK@uT^F`=cDl#$kYw00^m-CZtZUlK(A56v#wc z90E10HG|;09N!|m%yebe(bGH8YDr>!S?58 zRxQ1gxEiv&pT|Sr7#`q#tlG79P}LxWGmyJqPW_)2b-T+<72gS9`v9N)b#}BJ5tsQM z-L>eV5N5qvKA@?rb=^1y>=~6mrpvp zgfIum=@fkfq{611p7OhLSqMEJ&V&3D82mT3a#O=_Gnd``_lBS?FJ8=*PWiM7Zlv@; zgLlY`+4#sXB8|8HL0Fvk`!-IiKIl)As+^znS?=I0{Ua|x%d&|3$j#rgw5n=JBmepH zHFb60uYaj-%cD>z=G8wyG!N*uYLGotTCp#uRmm<% z5iik>h5R)DQ=)X>*O<%J3ie}ltYn26Y#>fRZ4pQSh4dJ}Qan&$A=-QB1MY0Unt!Hq zW)mI&Z5+s&|JVI`Ltf56XyKwJA|K_SO z;GoX`>WKO)1hLN2%-HXNRa3s;!{H(qOkV);w{wbMy+5m-wNqA6Drf>cp91pDPvbX# z8Pchbb0Bt8*fUa_ma#GP&09hCEg&)9Y6tApRkv#Gz-8CwRaRE^`a-~Xx$!?%@~2ho zMBmw21;LqHCQYTKoyIbI{thzB!k;}{(zy3DGBS65IUJM~t$_hD$n1lAjxKKM$q7gdsb)VM1z&dK z*K_n1>F(0}J-WemaB5;=;_YCf(!n1fT^9k-umBff8kUb&zk|rt;{t%+rQR{Wk>fDk z%CeA5k$zq9OP5pem@UZbrgBvCFUlzFX&sqCT5r5m{%jh?VX7dAz)KLsv>afAn5b`Q zaAbcCjyKY$QR=YYV~PA%y$kIzh)f3%_D`=03mRz}i@ODNR3Ouk?R;Je|N1=Y1I*M? z8$jXhH>n}uTl@Qgllb`v!m`IN1sG?o`np8WNZEn>8HAxrzUkq64dA_j81W3N+Xpqf zp*a}x@#tTpw7ah16F6v*$OLGZgXNK%0S>;});_JxA!&Ti$%|5j%Y_TrimT`Gy%F(p zxM=;aKEA)MP%PhS$1V|E#s0wqOB~QhqaZuF;glQ3?mJKE>dU?JY}sX{T^K0Qt!1C2`@d~ut9K&ZtMv$%uzdW5beDKs=mfQ#uUbm0g@kX0 zRl?bHS{2zs%P7CKj(gdLjX{i&i z*Za2xoY?1BnG5#?fakRN!*5n`{p!2IC+|=1X+5N{WBsRRn|9qlB9>?W@QlWe^}yI> zCxUl{X2&Za`6U^4lR4{UPy0sFB`VHzf|a6>lu=;v#nsv;gb1}ajxTeO2zy=2@7vb_ z@Ipe_Vn|m(pE5&DYPARB-4&OOhJ?cf2oyZK-80Yv; zwIid)I}Ml?av8a-iZi=p)0Mi_y&imBgm_Z=C8FEK+rE~E1>W725S*r~{&N*wAG{YF zb?o@uIv+?7RTbAEI!y!<1vV8uyGs!Z`I*WJB<{xx1Qu&`&6eV`pk_`tXe`J5#oDZD;SJR$ZmT_ zTAOZ+RY`*8xRRquyXd=6I%)+p)bi!Y+v*RL?LZzcZ%hAR)|mrt(c@MMz`+WR!tLxd zK73B1LUFgbMogz2H18PN4Ju<<=B6^oVv)L^uyTi_fU&SH3`K!&fX%(8#D>-f%ko#zf+TxUJ_7g6Yg=?=A%H{ z+AjP6njEeH1bI$$f7AYp>V&yjgJ%KV8am}F!c&WTQdE(t-mo{~g8a@^108kM#GT$3 z^M-NVejfwDJM`)Lifss8y=5hAg(HqEf>)nx>j~lhxPzYr2#J=B-(Th`rvo-b2kAP3 z(wO0ODC(23WOPGP%G=K<{?a(F{Zu;!k$dW!#yy>v8{4jL)Q1sNoygC#o%IdjA=m@# z*?lMCt3=_evm3}O`j=f2gasHHtR57CA*AQ(*xwzAi#N=lXE+-@Y8p=BJz`-xDzi+k zS2gn!-W79D6O3A@q`KriYwqdT8x$=4P(DcC50fxf);Dm1u3}m|QIZv$L?|*hpz*J6 zK{v4~zgS~P)->Q(A*DllE+N^1-XJ@nK!}m+mn8?tej~nW2HatVblKAnWexL*6LfF- z+a}$^+2JMxBO|OAk${8(CASf!o`4DiL@Jr)To44TtU*n{nk%w5)qyubupXQ;tnMl+ zKpJqy0&U&ioKH11PU!DjrJgz#{PVv_ovy1tF~|_neG4*u&K>b7wRn)&H>|3Wo*KD7 z&DUvby_0Sg9kq+|!l0e2TdXUb^3P9|E{=fUCq#7*H!%c!l3`ABLDSfyEpBuLc+!bK zZxN{FABM>h^k)@8*v_QXdY4rv@@UJ?H zQ7>0YjveNfU#!?ep{?Xk{SVWwL0Nij{YC*4vP)IHX_aL6aZ_(;qocV69oIKfXl$Wl zD`8KB|4zXSGDRh2Xf?!oZhP0X3^g}=fxssc35`QVQ>85q@=l5GE<)^()@jG4q1ITv zaO#Ltsrw>_-`}((s3#H(lOW6@1REy_g4U58;}wjTbp=gjJ)Lx=QFe!4t)jVq_v?ktDb@7EjBKHn&^H4~L*GHYXj(;XSR?PD4t)s2YU|K{PZ0e> zAMLL*X|CQRYah4ypTV|UO`lXU##Eo^O;%Ks7H|2guN|JS6u+Snz#VVFtwlGTlPG!H z6h_N`AkrMjx$L9*A z-#uJx6284Vh)6!Z*~IRPFyCgp^15-SJlFAO+aI4EJ2yO z!^i_{Vd%QML>;-vQ%+lR4e5YV%`>Ug(#P4MD-&|u5--z>2u(&ag2$Wkh@R%r-g%e2 zNtGu*6ZAVZi^Jn9@^YNM^NBuV1Uy^!F8{l`l1rjq3K4pBrR>n`*2Bka`)IZcgPcGA zoUF|4^w zA9B+bgTR3;?Yil{qv_)sZk9DayIcyQzxJ>GSV`WfQTaL|+Fv|+sDb1xQ z304^d&Oi7i4vdfl&FY9OGGKeUh;0|o~mokCF^J6H~XdS z?NMAwsAGHx{$=%+dcD`(`RRq;S!y=TYAo$gsOKcRBH2uOrg!8zC%I`$WB}AM`bSlSeIo6$r zEy2?^P)mGbcL@f7k zRcDia{JeCj43Z#jc&cl3Imx8P3E49QYPx{i6r%bK>-KKhZmj!6|8%Y4-DqMYB6(jX zg8sF^ zu#{%N1-By5jB#wa;;!0Ig}%4y8)#ef_0*)W(Q<|jIErQDP_KNqAGEGZ9%a+>#|YAN z{{)VbX#%7#AiS%wm2;HO!>tT#AM%-u?9hmbp1XC6D69H>t_f)u{rOB!5sA$8fXsjC zI;kovs!)FTr5SRM3F+5@EoOXr(xea0!~ib?L;dN~CM$7O!+%Lc)t6 zu#e2)E+adZ^#g~f^TCkvL%wI3h$j6&wF75pum1|(ZFN`6B1msfvHm2RP^z^cz#+_BV>us z(zdMN*-l#4u=m#KKA~_lyydRV*FgmYH>+~oLz?3XC7(`(*NY}SId@^rUn}fRs^$6a zUYo^H8X`XhTR9ScCW+R_KdHvVw5&rfEXjHhr?HeT*TUdHjknX7zKU)lK@U zd4M6!DZaKV)&w_rRA>TLC&fEbXWho*d3n=_VEW5n5p8cVU!L`Wb7&+tbZ7BijJ3ZY zV@)+~LtB^aG{GQ2d{9AfS{X~5`dHkXp882WYr;%Ic~{KcXK2F2^KLRjO5K`dR)piwWp5p$*(Pu!rK*7l`kO+DVI30odsVm?VS$nC?D z@v-EzyBTv{3|>xsT`Q3kSqcuXT&QPe_6B3%8!_>I9C0RTVQ=bD9`w zs*45Xn_osSzH*`m;p>);(jQAXm2P_o!vtrYu<9fHNz70i!dn)fZPcTx8aTP`Gw9co z@Y`;L?UghSPOu%4*5~VVc~Cs~A@@#Arf)#AV|+0fK+?{|t6LWVG&|8_U_*enZ2jUX zTe${TT8yuSCIC_cv0giR9baeu_kV4%ghCieBvAiGzr(Z;f6ytRxLq(dA0xDheuuT& zO5E;q6cOn(4L{xBU$5J&|6EAPbApWQwg8-70+xL>=Ce{;VV246guuTqFB1zKoK{`I z;Dz|?=Y0X0{u$55jLqU=B=6Rv2}P*Ais*WH7^jpxy70QJs-&KhCJ1avWCwr7*~7BQ zG|CxH>iH>&o9U1)$fZ_-is%skqe6YxH}xsuzrB0C^&^)Mh6^$5O;Yr^OJ=Zpj_v<= zucyl!jRe17TiUZuefYXB^(*kCtlBqMO&9?8C9O4qLKJ*y2brEEJIe^oesJb?jz7lt z;r-;ZJ6x}-B=zamzAq+_TJ{3A#Usrk(_>>PV`8_IUMm%2!-6)+DwZVQB67k@T7g)e zoV{t&srsUsY`~fMR=Kxr!<5QasKKXQ=!>LYLpL4nl*NnQjk}O(Vfs!c?}IHyE6lqx z@{`8JOp6f{O+yYdouDYMbb8n%SEp-gezQ=024>`sqM83;{?}xjsoW{xzF4cNoUZf` zM|YO$QY6Hl6gBLYnDm6^EnAG`p8{+DcN+BWp(^Ex;U4RceDz24mrEIwBB4L%&dt0l zVKZK$Ij-4`uM`&(^PQsxNSwao2U48)Wqz&}BUh_DL^==4j=y|=mH%AmN&+{(wCW&w zq5m-_qPV+rN(I6R!WXNu-JXqBp&^95=*h?>a`j*lucfP`YtDkz0I{ z%4L$Ri@VbgX3cGlpKVGk4fjqG15ts9CcuL(#VNyxgH@d>JZI{;2lpb!{jn9YQzQMB z?@w5(Ytm<_M5SiRTa!-&@s4pRckA8^o4^X|9;uQoDZdrj@P4%sC9_7xZJLUIpe=zq z2ztJvUkGt z@9(#J_MAO?_UxJG4-SDO&;4BY)$Y&Lis!V}O1<^6eGEoW7@%_)Ae(~&kXEwy_Nd2% zFPc|HVMh&4k8}p)y`%`y*Lke-qTJ)S4?vNB!xTYe=b>@rMwAEja1tZ|=ob0eo|~WY ztS&AM4taO}Tm>KGOO}rKeSb6Q{iSz()=Tk>+HL2$mJX!u+kd3Se3-uiv=mUBr56>< z%is-Iq<%$f`QVXi_3@M@&?C%&c3;OQKd=|S(k43VtOdhPC-SWuknN1>l7KUE5$Y}4 zjNl~^91FrYSLQ6}2AtHu54%5=+>Uv%m5K2)x0p)t+#JdOk*p1}hC#%p`OxH@orkG( z#J(_L-q_vG>Xq^z1bg_Qs|4K2o$lSj-Oji0Up>z6p;;;NohlM>^mumYH0ri#&!RG> z-Dp5onCELCj?N8mqu(gP2 zvs&p#ZyjE=2IDw5k)GtYUp428`Xb!A!g+Rh443(zNWKy@k)lnn;fMj$dZl;ZKskMQ z{kTuW@E3)r5&wx?ki;?2Pri*b6-C!Wi<^yI9_4C;h2^S^#-8y(ad`tfbNX!Kh+<~b@ zaAFK8mqvo{ZXt+&$iWI?wKQJ?>@zC|ti#W6r_iJ?P;dA!agQ*@c9Nb4z{}Pt3qp}a zLrw9>x#7$h>;R}q?y+i^1q~}O#>lnIp2pbF6V^4Q_*C0pmuN`-4O#0crz66hsC(Ha zh+$McwO!%Rvd}qUSCO7{H(8vz;ZJ(Z6|;VNXAa}JNiWg$n3qZw<>LhJ;(gnpeZu1*?;wX+w!E0*w+E*SUZ(E4^T< z5~r66It%w+fX+YYHC1n{BCS>s@L7>869N8O;FE1|ma4RkAf+aG=+GQNzX*CTAMeF4qJZ`%P&!p@?x^V! zg~To?AfoQEhkG@cI~n-tx9F1?n%0u9!zf7Gs&Qwi96CvR)H5|XnJGmp!N)U*?!$tF zL%j(o(Y=B|OnaC~M6yDlQJ-iS0#5a;s%ptBB%87i1Iu2r$FMOPVSEmO`SwJVR$P^-TbcV+mTe1^_h1Ts8J6s23`?hMj7 zFXzUPuO#^7_Tynwj(rpk79mQU-YxFfdGg`@Z}m(msENI=+PrM3(FH6C(~5h(?cYX<;6P`)4xmMt}M=4+8N zAkM7Oss(|qXDYIzWtnF!nGb#w%_9kwxmM6`(8P zsYOA9Ha^1vs2%xU#ZFz=ZXoRRkuj)6^$=;<96h!lVoU#bb>q{X4V$}m$3o;?YqoqJstoV`7Ds>mKx#~_nd zc3ZS36c$kLanY3U0E>2C(oDjDEo-Hx%>4icad~v;xFxcuDyO97cxGSqeFsc3K<*r9 zr!&VWgl*sUsh<=&;dHC4)|f@bu#yqkl~pHPNydfVDYqi%+mCC0@|k49^A3JVUv*l> za%@k8KeFMqT&(|`O6;gDeXjmebq;Jwv57cqSVXp38q7kD?`n#gq0r;4%V{-DYcpl8 zI3SJTHb5G~Z9!2p-xf&Y78}L&&rx1(I415^7?XwUZNaq6IOW6vOC-K--JX>FSdZy} zECc-?;_lu&I0w1{f{dA|&=bQqigtN{1k15`Q7jiQeQho0Vq+1#cj;a6%#e-eBL)e& z*QE;8&`G&B#wQZU4vU~a)qWT61uI4&@wzNBVHdSOsAx&w3Nd`XI6j6qKB(1u{s~jY z&%0>pX4o6m7XGDPqDeKI%pWT6m6rembl8|#5FrRYzhC0pl+4L($b6{c$pJ!1!Z}#q z%A@H8r{oOVV(eH8?j$fF{$$kbE6yeeNfeV5U;Xx3_x36~oa{Y#pyWvMv`wm+O^V6s zcq!R-W*)`rID-h3cm)(>@no5Ge)FxA>KTfG|CIB+q^i^H%d-GjN^x8{_sgXRI(DgN zootfd_E|Md6Q|_n6p=|R;;xlnLga(Wy%=*AsYL3%5PSYe5OubM(VtH)()va@dpF(czp*vg@e>Q+RK4g6~`NVKw9SEuywyba$E@!Uk9RyEgKWf>1BioWX5`s{R zUFm*1Un{-BC}tTS!MinNZ+buUN8U@&vM6okS+!Q1@g1u!*Q9F|6*@ovnEG+IBw_CR zt=`AetMI|49^X4Bla_YKR|k8_Qri&aR?PR}K4_&q{+ah`=5EElv$N!1$oyD~oXI8l zRN@LAt`dt(8P}=pIxR%~8(?pS&OdPtAIls3v|CEUa_J4Sy~0XA|6vu2F8`D!pA=xb zR97;&?HDp8lP7uBlA~8+xZ_TX?!g*zVZqGm_f~RzCYp4A5YCWWVUi!{<(%-t5w~vC z5{Y+Z=jrbUKs%TklPb`|SJu)InUrLKV%(_XgwdlBqvu{;W?U<*-ElScOLC8aKgkoE zZu4T3nkK7Ya!0&1J$)L`45H(+el6rf7I6>#q)RH&J4q*fa+J}NKcn%z%lRP%*feQo z$AE3kuA0lw`dxGxrK1{olLLW{tuwn7Uwy-wN_fZKQG`SoS6}c%2Uslps+%7`CsJu4 zbtsFeA!7EKr)3QMoCcE7R~~{>%Ol_4iGBCjBX~sdIJkvx|eTmnz+eeht$|dL7Kd(RTTrZH;l(_UNU# zr)ntXbvaiCrQHDKhh~&|*+*=T=Z_TiYZ;&PDeTcWa?mCC9yE9~d#X;gdgx4aY9kUm zNX#~WaiG(>XxXC+2heD%CeOpRMi89~zb7h10xIi@j%%m8Xk4Uggv{ zPgX~{%xTR!qU)c-9(sD>jOAYyk4vo-Dp{5m(=My`21V%vqw0o;K$r6El2r1G1x{7E zUlkDD1$TaVq;t6u)?_083iAHp9|>q19aTj|8lnVBk+GK)6x~Y-Ur{lS@zitptUEz! zv@{O0PDo$0p5BZs)M=Z!WL`&5;Bj~PCKYt6ZJ4-~GBQ$>5|i6VKUCC8EzqKpYt>I? z2TcTgtRBF?TGnz+=sXe~oOu5NITQVVUdS8g0fNx0`WJy-$Kuoq}xD$_aOWK-Rk*36KW2c8-?fPd&6^ zxgiAS9=^;cvWsGCMxV%e)qVK2oqU4BIoNZsjY`cdW^IMs|05r;)(z-kitD={R}CLY zz6VvRS_AB?mfQd>`I$XCW_I&D4{Pj90KE^X=aSiFJ z1^In20tE6MsF>YodH}$2sCiC&2k27{Lfukd)7pUCYb(gwFC7QTIpzfb?&ea^=jWUG+2;HCind*6)#M2Hogs&|5!q4zSO#pEGMVU`&I~(5FPMRMa$LRIdl>mrTr-*g#$odhv z#N`~ItkTsX&qXac#n!K6BtRTP$1vXTZ#-g7C7;4pTEQ3ZT8P%kNy|uJH`OTIyb#u@Qjii~r^O*s*sqIKrm*poQ z4Zyx(R6BWc%hAYa?WIi~N36h7! z88FB`BZal#OuZpn27U@}?C9q|38gTC8Q0+;APfZ+bufh~Q*)i@$Sb~XfBybJA*h-D2>|kElt=O;?1QbS>QNg3>X;hee*Xam(K?lh8YnPl95gQ&k)mH$v}o^N*|0#i zOO1)Vwe{=;n+JLOR|dE!YoN4$)dw3^GNuNC;9I*<7O26Xffefp3GD}Aa8DdwQV|{t z=vXtsIe0yD=4%N1?C-mHUvAGL^q@W^`V7deF!#TlZRPKA_-d(1R)3$C?hMqpI+%fZ zI0yx?61BnmlenUp6iq;$K`qYmw~j~j5Ax1so+aU1rX=Y_(IAbpk71DfW5!^Cb1Yq3 z?g}HnuVm(U%}fd7VsFh%YL10*U7eQRA#u*B(_*hqdDR3@E|+$B&W??DPOW!RbDT@O zqqC`grs53c*JUJB5$Wc@8+$@rI;!7Vceq*zBK&2E%CJC?@LDVJ2P?E4EYOM$qndkDtIIG=*uwbJlrUT4Y*l}x z)jhteExIATXW1lMI-?YRz=wuj(Vdi^8cOEL^_+-Cr`}$<^v*rVnO*B!I9-8AJfAB{ zq8-mi$eYYaz^d&>d;E#IwiM(d=scgDpj;l}f_yl?>Al<^2H^C?gOj_X!%$n#SV!B} zA6%;1Mb~e*82I{7I@n|oCVIFuqV)5R=H9UvmJE~`#1+t;jTk(9vF=XK6iBkEL|4gZ zXqiiTc^N2-8h`X6Ve?WHX{v{2EuZ8f5ck;iNJN?GdC_5#J~eE=@_YC<0>k6Wv0*SsNG zph_Lt_g9_hANw0;FoxOYbBk-w$G%>=9tE|f%ta@yTdqARavt0S={)!Uavg+%%i#}d z4Hvsa0e-!7Hb~4p&~Pyg)`$T+ETsYr|DyT#Z`D?+iznqJx1P5qY*UwP8BCb8zh_iq zRsECnR8GbP2B~oTU6lfA#@Re9HuZ8Jv9oUM?oG!+7XW9>_7r-^7e9n-^E-XLm#iVT zBPn+W)xTY}Z-K+2f|w;EpHMJ(OObEqIRN9kAEBpQm0+mJl@qjviRC0MPf|Ri>atHd zXWn9Ax;XLU2fx*L? zZdP_4s2qXOb!*6V0k)p?dnZ$}!+a-Y_A7!GONRhNWga1?#uyK=xLA$sCexh%w=sfC z-M*2pyhw1p9dj4(YllQ5q`!5%0Y+{Fbc5hnB>rS02c$KC;XFcv1gHO6Nx>eLTWmF{ zAE6IckJKO3xzjRVGWaAG1@Fj3u30YJv`h>^GdvwfUlQAorbuJS-j<1A&@JxmWcdCCg@$+<=l?*A*x74u*wZ z2Ze7-^V^cz@|MUNAT6WDSE_!w*Oj4dEhkIr|B9ivNZfV-9EJeY50XHtivvO~&mkE% z4HV|`6KkxiJ2~X8Rt=uqQi9*?JEM}6eJkyF0Hc^RV66@<_NqKwE>5Y8SL1o= z{zS5)SGW$xwsbhxgxUfx>E+hNUgQa6u4_{cn2k~W4$2F0v~J6-FSUK*5gydbeij@T zU|as?`&EPLH?H<2h7qgz6MDg@>5&^v2?!%^-KXf+8lBc_7-6UX>90Qkq49fXPI{&a z8Paatd3ub?Q#~_>s~Xz5E{a+G-jfRK)AZ8`xF7{vp}lTA8nRI*%8`0Of%9$FT70{I ztJ`@W0;1p953Ubmzk2^Di&^IhlCA|Yukl+2pn?e`pe(W4t})v+^gaJ~`2X+ulWsWQ zPHX&H{O_h6EI|H8<%X!8FU9pIHA_H^$5XAF%r|X7VZSjFWEv>a)^qxauN4xnje=}y z5H!gD!#@CT(vOkq0m+K3ETRbI2CJz6IJ%msr}J-Dtulb>M+$Y`?R};V{FbL8R}R$5 zh!ccCn?O(@@|QyckkzB2Bmx{w`!$GDiYj@oBU=z4*IfyC%)XB{H6NPzzuQz8q(a>K zpwKY;EtqHINS^2rjTLbMQ$#>Z%%#QmFMgS}Y8VGqRBP*^aXaGK!XrH2&~J`1uRyYt zIq*mpz~@AjQ@L-}+;zwx^dOD$Nj>YVljoLQ@;aA9ZJPykB;}S5!y0_*I}_pmmpgGL z%UA94|GAR-QYS}eK&@7|y*XO9wNBJlMO1_4D~kPzru)QG+CkzV=+*S(&r(}HbkwQ% zuOnt)f4C z6G*TqL(8E|O9`TLh$;q6_1l4;B1&2WP*YPwb;!E&8!1TV&wp+>_;zzqX3wA3zc2rv zq(EzOPFd|v!dewP zHntB6noauc0=px9BsiO!u|)!OsMpck7$^9v^AD}%H0Q4t`o|g}c>tOceQI$s6RL=r zklvUdYB#ILu|zDW_+7SH9Z!%o{C)Z`>?3|xi7O7t%s{$qJ0+U+sMg|6UakgG7j<0m z6Oh7M1I6__lT$75wMUEbiVz*8jeGXHPg}m!Z^nST=~!~MOwdA*H}Z1dYzYHPRD-MO zeg=1Y-+9tKxqz@alE@5*6AxpB^-!QSdk}?Ryfp-D?OqCssf?_!<6cIFn6Q~MiumysfT79WHuNE`~x(z1zanmz!-hclEDBb)Vi+#s#rFhM)bHIc! zk+ON=Pmjhe?VHGZIp2}d6Q5~iZ_-WQbn4F;rQn~qk&wk8$PPG|`?#+S{eHbdef=ru zAuw#Tp7iJ5tP1;w^IkH;dOE%XLl1)!b_u~|i{??fsx8|u=@fQ&Z45F#-7sq#0eT=W z2mem!x~UeLu%ScN2WZnCfw{ef~znB1RI?YrP9Q z9dP=lUsB=3)ayaA0_2ZR+OEHP4mFD46=FP{I(rdlNiE#{`++d+Wvv`lJ{Zc3;Bwp5Hz;>Mu}R?19SOD?<*v?y zfzN)IS+aU#^pl~6kP{oUk^;2yJ5p&ZcfveUy@@>AxH0Q?Q;bB9FBeSSiRg20(8B25 z-ubeG0F@Z!C(I>+Q5|5IvglU{(2UkVG-&y=2VwQm=MwVgZCXA=)CZ z5HM2Ha_MT_kF@x}#c4j~nBb$4U_v~!e%og$;rqf@m2>ou z&uxy>D(+MiYfCGTLt#cy2c3tg94||HNzri#Q8Xs}4Mnj6yOxTz=QhyRvbfj1z=ZjA zlMR*$VIc5i1wknt1cb+% zhc!s7u-XUd5b4)rfRx)u7iB?nSECha_J;6(7i`GoA=XssLaMe8F+0N(4Bz}D)?Yi@ zoVStJZH2E<+biVi<5=l+MIq>oubTl%UPlTEl@lg>5bCNq@Lx17<$jPi;=U3Ox^|xy z{rX{xurCp4D_;SMzzC5W?eWk|W?x?42GK=!N{h*`8{{Fe`mgKe3><9TXJl(*y+f?b zJM9EN)u)XtoURhzIR3x~`g)8yIe?{vI-{(;$7120 zke0mZ)B$MX?j*6+zB6?4z54nPZAa6%Y17RgT=r2<08vm`8LZ%HY|sP3*)k3W#$otI zYnfWFUym%OmKc2opxG^qKmF&i%OkAJld!_#l@zukm~>=H>%Fwik+b4G zq(n_)1-57pZU#Y6&FS{S3XTfh#2m8kwX+aCAdUWsJJ$43`pzXkmNF`!@JCZaTZ}Jo zlu1@uZekYs)tSGioL1a_J(NTuy>2yZFYgR-vG%8J65-0CN$YX#iqB%3L~^%GSTjO4 z;HRU6or!mZ9Q_*`+xrnKNU-OAXj*Xd<2Ynq9%ymz+5A{uY&r!$*KwN!D+vDG(Y;WhR5e@?ud%D6)>xKk*fw81cz8t@#~J+m z$%}mac7`kz=CjxXgMcRJx_RJpwxXfWBC%bK>33h-uk8&M}RYh`znT^aVT+874AyX1!Zj{-LXzR|?7FmM@!l*tIfQ!coVD z1^z3Xps$8P0lYNihMjjD-Me>AunsiMJ6ZB^FlRnfUmN+_a`mfA!yP$Rq4w6gke1@k zJ!A9pq2gii?<>4z`DUQ9H5$Fw@?wiFs|hlFUSy%7jc!SIYhzydN`Ohw@Mr{id5dtt zcgI|~kR~<|LuW+4Mj3H&*Z?puT1CR=C7sN{_1F58lFGaDO1Val@TM%GC19dcCaV!v zIbudrd!)B1!u^cO6hrg4qummI7pNaKcKGcp%LwCBPZ*b}4^%@GCuqN1I^r-Pi z@MQ1TxxWZkwWDyt_fbq{^#xz<>(7I5e$Nu>T12-}G6bQfI=Way;#iW;9~DYKkolcQ zIRRpQlKRAWdZF8B>Ewa4^d!I1N^WKblTM}Q*Lhh%f&eJjgUrGy@ zh$;@R!f36pCaMrSBQIv|m0yK|Y55QErllD_&LA5z?)Az@KZM2ei;%a^VP+Z@$(|`H zGMMWT7EvMhC2{H&>?|f$%8;MQOH-(GfDL&7k zSxvi}0$(W#XmLS6o!r8$J;}K2jb-@qzWrdSFf>%>VJR35iXj-aTV6b<`h{qkb%IDE zG_QI|@*_G54KBK9?!{)BjnP{d4pR+dg_}Mlh)mKW-g~F@E6##=qXz6N-*q5F+6@Q7 z*vgHpEm$4FmTn^jQEQP~65?M+IKLRl0cqeNmJWTuMXV9(0+N)-LEgtHbE*ZGG?N}A39+M!@N!^VW<=g}z?ekOSd(>k(@MOM zDa18mB`QB2-gbAccUV(b;^+Hc-p``__e+iYEe4vAAC7H)`kjpVH=M|uFLQs2$UX}_ z1q=C3GXff8@ZawU`*&{r?#Er+8{d8W&yA6&?nsiS|2=$9jey~^ya)*jhi5B!r) zkG*^wR2nD0^-UNK@a7KSjH3+ZBSY!;daLj-7_4KeJ?RuDG-E$x`_l={gTjbtoUWLA z+f6h3*_GzHPqdczu~Ia~?PIWghEQJ>rzD&CPzbN^ll+xC&-mXv)0LE!yIV)Y?DeJ} zU+4&pn2ib^O79FA&UDoVk1HS8IyLeL6GF`{5AXY#Ka+`>C{m`?Lrd|y7WPUR`qkkn z>^B71rYm+#cQe6sn-N32w<%FTR@sJQd5`wvrTFov)>`*C>=(xzVn#Nll#|qZINKuD z&yh2585t(NVIAq5Cjn0LzNz_i@))vQ7O3tWp)-ynDQc@V?XD|w>fwE~4%5z-FU`G? zlBYN%&8G8Zj$cJ$deN8`T8^NyEJIpkNM*2Vtxz{X1+0YmIMm>Ti?7y6$X)n5{pN4p zPPGT-aEk_M&<}nSS+-;YA3dt$2DZ9HqEqwI3O;Hi2T>WEEVmsvRc>*nwL^~lCQckZg*xJLaldcM^tc;A}_|WmP zSzXIoXgs~xZ(roPO4t^=pP15Ii_EMnv!zf3%PQMqgmJ^rg3ZcX;+*^ z&OTN)Y#~&ji6c0?W@e$#knK@VgCqAG!PF7>|HY1!V3pO%e?4waH2ho_+GF*>p>NJ$1>tBu5pB?R|J#0uuWjX1xd9CpKnr ziFaC|Q}}HqeY+Rp+BunowQBc@w)#gqAOvEcPsII@PoxOf^5b;W#99UyTua zI@4_);3CgYh#nb|uinjx4Vj1)rZ>(1H;|`ps1K#c=?Bl4sOzvKx7T8>`83r*-hTgOsn^IxtAR+(N_BGvR5kxzTb-Dkxc5__kg zQtq@sOSsn>mSf9QMh2_|3OJ)XUU10y3nIa?T)9(^r>M{LO7j9-R_7Oo3JrCkGX^5A zT9n4}$^D`ZU^~|+qh$3)W>$dPib0{AFlnNya4nH}649_88+!=bYL-JH|gaYLJ0nBU*t+|W+L~N$J_E}F?#<;cikN5Og zIe@B%2C~e`8^<{G7tcdPOmKy>Eu`V=d(xX%Q+d55w)r*dSd0OvWWU6Ja|SAxV!e>%FMta`zgAi#d_x^{AXSnL$9t((j?@N#*$&MlZj*QmbTPqFG*fT(i42X2(tbi%&XV z)CsbVX=-ZLJ9WU}aGH4u(Tk4PMY21y0|p(}=T`EuwKu(%4|lA;uW`xg9OZ_KRgyyI zfFN~(wmxoHUfI2mr6>k0KOu_ffxkX5$!JmN-kN^7@6 zwjB~dT*okbCHbYU4;o!@jm(_THBuN5p-vn zhPZy^((TC6SDpbEa;t=U8WYRAe(umsIMt)Xk(vv!Iuu?|SlHc}t?wmeB#jYRdUV&1 zrZ!p(sJaLQfg@l|e52_ne&9&c923ltz@)hdn?`d+&{ylfsDES;Ho;RaEX?^_tGhMT zZdyUgNaIO&kBKo3s4yv`i5EI4c|e1U{q@I;ySw;r+#YBw+f!8CoGN?f?L6YJ%ToMO zUL>b?*|1bA_=E``@s2N}D&L>Q`nsnr$QcIE3lw4wGYG8HN7WavaOXIXX97dH7dfU)q z>fBYBF>aid_A&aX4culYEqP9mW9cJ>wVFBkGPp> zw(3hu^4~aqqX7oc$Y7D9)PIsQTQIa!3aXN?Ym7@zPan7q$Ix?0c{D)SZi%^C&Bj&d zIb$4YF}9NMuAQX3X2u&vg!}RG-E;Qa0!OP>SEpFV=Pah>b`hXc z>@Jt^X{hpm#i6V7x8XV5Hb={c%4$?9B@gb*R5s>8o`1O^9@qQJX@~cwQ&oT)qSCp~ zk&KMXZ>3A|Z;ugX!tIf>Hy1boq(eTwYu$Dc+G?^zi>>nojJf*6Wd7rVb(b=Hefsr!hi}ewn-tV~ z^tvtPB$C%Ono3^E4ie7R%v(|wfW2Ex%|jT?)QK6jf)lLByUArxM`>VB^jQM{VASY#?_`SMZ@H}w6_Te|es1gVP> zLSEYd-E->lmRX#6__AhqY|g@)Kqd=&7!O=O8U0lBs_MjMMgBG3TV-fEIiMZshl11e z#%?b*6lR@J|IqblF*+J&*P>8}LTgMU)d;HHUS42siOd&!1kXcK4le`Wni!8B_v?`n z#vP4DzpUt6HZ1#xG%bp^8@_I3j7#ITB|-hddaJebg3+I!F0QIJWi*C`Ckor#x?*!G zq1nsR?s>0v@Sk$kFb9Dgs9hPWK~0G~h6f<)I+gFMd?Q&XU<9 zfiEu9H>ucTPiLu`g(f$Yi(MrGzy5&<2^sq{UR~!>=1x>u3Q6*J(ut66nus! zXhP^_P7hRj>G|}f4%-k+3ZWeC;!%0&);a%Cm!%3K1RQZX?DIYUi1bA*9N;|KFP_HqJq8V~NY-WVhhP#X422jJb z79d4)br(#YJZmsnZ1Kp4GIw8Ap?XhB5&cOg=P#Ev$?LV|l+)aHhifiJ6IIA=xbm>f-*Bcy@lZsNW8>lc4A+&zZBm8EBq(ZYPOZVkuEH2gN{F@7SHDXqH|6`~0pO^| zpvMV}-7CK-yJ|G{pUQ6S9y^W%nifw31!A=oX8;7ft4UZkctL#?+wD%~Do&J)HeBtr z1FJ~M&E0{q(&K1Q^DJ?J5he$IepqAhK~hR1^uJ2*!JcZ;HCnNC$+)2socrh@bTveD zh#;L3dj=d3`&$Tc9hsN8mX*k%73_7xt@^L`6U%9yS*ul&sUrID^;^^buHDvR*zsvV z9!Fb%aC0mTX9slG5Y|;h;&~6?!9d5I0GZUp>Q*M(V0rb^W<{ua0ytZ3_rKroZaJix zDE19nGvTU!`|Ml>$yB$v=nsEmR|09_d{Z$dD7d?4vi0Di@3fqcHD{V{C$jjn*7i!Z@vXQ1u_cE6`x-2hxye7_udHlJc3XP*v((G#gs=a=B zrXSqW0zZj36fvJid-LXv_sbh^Kf-es+t`FU4r9WIKvr9$YZKszx^Z40$R3P(094J9 zM#JFIqw>N1KTY(Xkuaeu@ID3p`h!H86fJt|qk_Fj>ZrCHjFi!85GT|%meoehg0l=D zf$3t06ruFpnWU)IDstGCyhU*cKV`^ge zBuo|{ifp%7PGQgSuItl?V!#?~5dNh8%_(bXytjQmCIvS?))p1{YqeMom}RhJD0H zm?jPhuTJdZ8=jE={2a|T&`M;q95jZ`^tx6Q;wcBs%|7=WrBZE7CcPX6XeSo-rNZ>UgetQOZBEIt!C)w;urpV*%xNXfM7>sJy!| zksx-(n@{&6=62tavM%)f#-O~Ecj*lLD!x9$UT6aOPx@h z^agb$V<1U3sd3R|Dihr$gd%Ig9_quy`U&?hBmJzU7h?TdJat>;7W%INQsWXeXfi9i zML-oPPi@v#TDmkd#UbuYtIYLYSCMZ!#bdD+*ffMDQD+@UW=a!rF5K@CFb~4$yiaKF z-$jz1f5B{4`)RT9|zep#nJD24qb4a zKiEmVW}0(5dO_o7sU*F|0@zXPTEB^rG~~z@RC$xZ4H>q(h%qAfeAg9l9Cr9bCw-zCjDG@#+U*!B`a!>Ks#)~bRD)eopo3Iu zPtjED0*aQ|gz@$haNIXXjy+ZDOr>sP3B<_~&$lneEKrs-Y|`N2)uh^MagMDa<6x6l ztMC*KzyO~6SD}Tm>2c>hgz$sFjBYUPF*6kVk-=q2_CkuXD>K6Rw6an#)89FkAcfHP zMY(kr{SwFVJRY362ZQYgW5O=Os=en~hMUUm*%Uqz+@v;HXvX<*tu6u;<*m-6jaHeq= z!O7D`eDb`~KiR3OaaA%&Me|$Zw6v-sFXTf*;MZ!BZ&YU`sw7nU>}NAR1&0HVFMP1o zWqxLI+)Xkc-+Sn)>&t?kjE4rOqhuFvzc;HiN#Gsn7RSy|(yqp-+LTju6oFqShMMh; zthFpNi71Viq%>D=4W)EIH4HN+>7+&<3Cx3Q3B5Ar8LqZd@t;fEJ=u9w!(LMAaA>S? zdRoIo%@}PLu4Wd+N@Lbe6`)L}fN>csQd6=_m1!&VgAz%%&CL2lc&zmo&wLo%2F}t# z-{L|`D8#OFl8Mo9k#UO+jpek-(5C;F-=y3s%t%@A$VxogdT7cu&9BZAc5ZHU8SKh@ zIdzo;2q;>m_CHr?HQA}IaoHmEN}FTOqiEyIf;@BQlJJO#bZ|QTuoYBbaV!3tbekP%8sESs!19)8RMI-9C{YJsg-**?r3WYRataaBiqv_ z6%=tz4tQDkNNS>fXDSaoa`J)JO;fJ7VSbeUN#;Y1oOBwsuSyLHk0^`I(4hETK%tvo z_bf+zhdI7Kf6eFtP$p#?%H+r1Y_~~CC503shY~YBOY<`sKoyjAa~$+Hd0bCgOkbd7O-tcg%s-5Vx$vGPS$*(yTZJ zWvswPJ0YU@~p}belPVO%J}&srtUM9 z2a-wZeq`I&=(^DMEJu?)KSV_*RfiR^FxhnXflo^a}UbS2t2qhJ-o%Sf35 zck`(;&qM;H;^QS7V0@C%cgSwCAb+)?cZmx49tD&YARuJWD`uM(Mb@pM!h?(>7mR@$ z5*+c}H$Y76F@qPqMT;WsCeUa-y0A(bBceHVqA%{*^7cGqAxh_;JnGyPXdbhsu{8;9 zy5Ltwj{vkw*7IP|CYE6K)boa9riP!h^L&0sl?S=oI$U7%t8l`#*|A62HtP0^?+6A}MK-ti2_?7HyJ z8)ZG}w9jubbG87(?$Uqfg)5;Rvax`PQc|YI89s=bELEU$_99g9{Yp0mdPal(V79S* zVj#lBB!IhCN20cnyZk+z zhy8ni0(o9#!fE;E+tyknGl}tQ`QWn{KIHt9nbq?R|5Qw4PiG_gi0ZwI)G;RyPz8TV z9p;zWub8S@ZluNr-bEzmvUHL+Bh{0~^2duv`PiJGb8VQ{FP)mn^Kb0iyxozpkidQY zH~iGj+=N|)0cHN@kVLR^0PWYv=n8^OW$-K$QIO`4!;~NR&bD;v>H+XLb_0X02QrBz zQ-rD5LGR7SzCqHAn1}xs8n~kC8Q?Qj4I?boVTd4TW0L~D(1b7}O;P}{WhC=KBXOb{ zN~eKgg3Ygw-IS}C@Pn<@0eOmZU<5n}`N!gBztW|BJD*k+Nd;?bw`6e5PW;OHDs(&K z*!ow|#ykG_5A_)HJ`$HZ69kDZnyE9EyZ$!_zSQa!RQN4_Rpfu=BC`t0t{N#qo(s0? zyXa1{fi`Pp9CLg0Dnc#tvR8Pgq^XE`{={$Jj5UDcR^T}X=rVuGQG`gHvIXZP*0Y&9 z)9p9@cAvKi3x|MxID%wpL4J!C$n537ujqP(CrEky{cC~#*tkxm4-Vy94+@jY!AkzP zNT=WF|M3C>$7`D+qiT3XsY=W4kNk$3zQz)9F-u=OSg zTU``|uy209ytVW!l7@Eu`{_9{tTPcDj4eE5>6;)jk3^A@=T+3>SbfVt|0{VlGlp(0N*68{~-ZTFVLkz+M0xDE`uNY)k0&W>?Sf9La#c zpIqDRGXsX6i@*X9qUFLo>yQA~0tai@kiVS>7F#TVHHdyYl0sx3x{?;ScnW9<=09g z_q;{WQ@>e59$n;!zI;j6-FuLXTPKm9b!b6e^(_zmVDon(w^|bxY@HNS-4NghK+77p z^K?Wg;$Z8Qryv|a#{34YK!)F{=E%^gWBtZq~zncOTxB(nE&lKv6$Y&|y-v4`G!$Y-8BHx%Yb;*n&#d+EdX z@#GJV6Z$nn8M6&jIf3lql|219vOY*xX`Gl1pEV91M*EWZBjN6fV6!d_cqJNkLBr?L zmq)w^RX64u!Hb#Xit9&w3xfKH z?y8vxe39anOGuh(ewxHDe+%cowT7_^L9RW>?AIokf?WKS#kzL#Bck(q{$eA8Y*Y^t zwolp0aX&|iQt07@;yij4QGV3&y;nErlxv+WEoYI4tX48njG14l72kTyGp(E^;vW>M zJsCimm@3266BLYH8i;^iT7;4}f+o)0fiA_SpRE?e8Fy!JwK~p$9QUqxZESE5z=)b_ zb-0%kFVZlRgNvrL2v5Bag_sJB@@~K|?S(M32%^98;j3t@3rKy;mjG$9B1Eg%&Qq5E zhR^gLD)1TXNd*}C&61hWJe99nUV@0t?WZf8jnL7j|AV*p0BUNB`bT3yt_|#fQoPrK z6hTyw9_-Sk_pTx$V5m}(SS})6r70~aOUteepqpJ)h%p)4UabMoH^s?{pR1yoP`78+HHOp%`Pb zOjL%kZf09nbcS(PTAPuW_JUkeM#e-cP|NzD)-c^l>0~dpGdjaZC(TO9V0fkBmfyF! zU{8FK0kKX=w5QfbC!N0dTH{>r($}X-vo9lW;VwsM55J%vFc@e!(^YVHfDnq$)Z@0u6Wter5ms~cZE$+f-l z$W;wc-sTtplx4xkF(kPb)ZB5@i4RmM*P8@-T`tzplRZah=+||KvE5L~+zp%h#b=%? zUKcWic$N2vs1~3=6}owLu$OT!v?u+1I9X!O{xU?nf9zQLo-P$Hp9{l`&U#%pb`Wm{ zdEC#xY}$5p2yNo`=`nAbEH|K<>MfIDB<6SHM94fnU|U5I$CWaAlFD_`m0Zn|7OPyo zqpkeEHHyTdm|XQQP&Dvjwf$y~{S)0rUQO}Bc6Hdd!gWy}mxyhmEG=_-lW3Ylr2Kgy z#HWi0V9Ou9tXOSH=)vXJ{_et_sL$jSZLXv1&${+NkdvsWC@~fO`Y=RS#%o8b++r+m zO3$j`-pR|muK#-?&4xam!9EwNW+%Eb;JzfA%zSI4%V1G$Eo~%bK(OGP%G6$^-pf3r zZ@_w^t-w>$i%5@yJzG!b^a$ZCVis$>jH>ALr+gnoJl1|E^4csFm3(i5D#^$)IY zjNUd$>q31Gp^Dfr{YKMDo1Y_Fz+RBr+$7^BpQ!!!e;2w-KCAN3uBraIa$ziyH6_hb zv|207^C)w6rpfj?u`he41&M5^4SV3N5VAl$I*!rt2E^4P#+f6oqo>EvgviBfefb2{ zg*K;237c3RRNpbe3G_tCJ%oY^zd=ZQ48L1QJFGyzG#EYpVl>!e!;)35BbJ?g>rTNFyA5VSKkRn5P2Owot zv-S1W;$y75u^w8!O_KM*eLj3vE`Z{(aS|w5W~XK{24DgS#{=eG!DT>I>*tVf5;8Lf z;x^f)3*2USbd39_^Qk%_{k|7tUh1d-v;?S9w#~J4C*CGL#jF`_d;?X=z!r;Qr49q= zifcUB@CKVRgutrTdv}`r3yWb3c7{)$^oNu%HTy!10#wu9F@%j9qb2J^DzCDrpHj)X zP6Y`^!P0t;cxvEl{bdWHo$*&ni(M^WUZjw_WQ$Mk9&Wh_wL5CbS$k5 zLy%HwYqe6_%(K9Vv1Nom`7hYZ|C>?5G?eQ>c^#hJdzEN}X3Ug03(ah%(p8J2YxiJ~?)=+Cdz9@4T$+oAI?dyt?$py5pCVK6B<;jPoZR>mPCp z>D2&bnA7(UEOi0Vlw^)W1^>$@q@P1zo!E4rT6QB*n$2PoNjPf}6WMHgjC8^%8+X7V+L&JT_uk=5Ldr7$*442Gm%b;H1L*43>JK?Y5Y2w$1pk*?7@q2%w z9?GrCEjBuhsx$pjgLP}n6J5S{6v_SdD$>MWx6P+i0Qah6l(+TEfk6`u)R0393m36m!|-bY~3IZmhG(mT?r=9S1^eo)XseI z>=dZq3n6KZ(}i@o4~3vtg#E(N?24H#dKWJh-@(oTB} zTo`ibz_0z_NnfDDTVDOQ zWVvxq*9qT`1cnd8Y9p$gwUW4^%_HxAU2#I4#+cm?wk02V-_fsHU9RoP!;hZEX07;3 z``al_rg!CQv-(avS#Hu5+Y}8I*oGC`HN(-9fnAzpd2*?fyZc#aGAS)os;A=Qikk+S z{sA4FbMN$VP}&-mfP%>m*U=o5|4W{Nn@h@oJREqLG;0+J$fLk$^6!0oeOv@$jJw2G zx5Z>^_5H3vD-zYl&wF?+#75h|z<{z(&8rRb8YX@MojqOU3**1g7=o^2*5ESmeoGVw z2q1l$(Ge)3?pVjt2B0+n7u3${InN7KO44L9njZWc?_>J>ArFAh4oIQV*oeg zUvEYHAvzYdI__oy0R`1Ci!7F5)gqwF7#{06UcTxO~h~#k8Y~w-pdOrYfMqn!v($V}gT&p^pjH^lW@s&P-M)vPFKDN~P8S zz`9S%v|)woR$JmJ@Ot3nwW})ZOK6r7OA5lXx^-?S2C04@_v~J(4V4Cbz(0C1vRYbb z<4=EpawRioW2v1x*|+5&D2@!kDl&pkiv@7o?rQGJxj2DwTTjL7qBrKwaWM9mmoxKK zkJU~`qTt?Ll<`Pcbu^QOPUfS8as7~49Fo`;zXKNulMD}z)}MScs9rTPJg(4$*t)T| zOJJRE-G?;^PcQC7wkNK5MJN-KOW1prIJZ6KK2lnp?uN3Q&cJ213VN;G?-4zT&VEO$+Ill)zKxJW z=*UC}!(z?FSnI{o@+yG494)#szkz_&mS_p$*WR6-Yfk}&eroELU)Oqm!hX7BGn{0P zDg2=#J4#KRJ$Gf4u+h}|=bKW#eYsGRMF^t46dg8Ya0+xt zgqdEdU!!KG`C!=3z-WMa+^|8bTv)Aykhh>eK(W-SfI|wvgZ}j7AAQxM@~CO-zPcTV z2@%a&S|^6E8Rliv0T5UJ%|n{D>|@?(moX3A=94F#@io6g7|Nt500~vqZeG+@2f8r? z6lmGX$O0uz)0G1@TR#F_2eEPz>xoSmwC0jUy*58WiKo$2dZB+rzSW2zecosdfVUtM zLdqp=v4z0wH|bnRkQZSx;a1U52-{hfNd5}N8ab~YcU-5+2_0B#?bIv zcvCM>O}GoeA>B5xS(%tlI?u-6~OUz(U=7aaMIERnzff_O#r#wqU9cn^Z~^jZ~HdojKBta*Uy$ zj!w{#pu-tB1|GwJ(c)jfz7Z7#ud2URYT02j+)@OyeH}l6F|l3=_gtp5FLjyJtgRD; z2(@yYCv0-8VQCY`0^zqhfdZcaMmG^0eC#jKCs3aX!8Sa@lpxhf)*-_rOc~!g*y1Zj zZVx?Vz8BL_)f`^;9EFCwP>aV7syO@kopkY|(Pu`NPK`6)S2gMZyE2g!p zMjpDXbcO!Y6W%GgMI4fWFej2vtQWXay~hxRh2R@<4X1_?5cV#3JZm*Z^Q!s z?84O2Yl+JeYzf!1K^&dE)D3c`06L{wOM92+u}{?n#1!B6N5Ns;Czvg8JYw8A)F%d* z30o&^EiEd8Y-z)sSs|*3jGdJpe}n&VtOf3nd#+5QR~eSdf%|9EKdOK%2L}@w$z}*4 z`UQh958ak@9s?fnY#paBXh5FK5oH~iJ4+S8WO~=;(!t_1;OV$Ji zz08LeGU-@a1=?Td;i$vUb|)SmCxxTN$5VeW$Jo?Dg~F~3fIak$ok+IFz%(y|NqW>h zWG`XZUc;3+l_|_e#~`P_2F{_69k;MATJhT_A^Fr94?I!I)Q11;`T$69IwysdZf};uom4akgr92 z-N+k0R;;?>W}}6vWx(&bt-fqkbr38G@o3?{E7oFW&fV}4GL5S{X_%T)h8q$j<(OjH zP1ax~T0S;C#d&d|DY`2@$|0u@)wCYJX>I$u3y}Zr5wH-Scf zNDG1+Tg;CipoPhFXKZVj*ju^9)NWaNbe%Ed!$NKh%i=nuuJgjD9+%)h{Iqfox9UM? z8zi! z_vSFMPSVxRRG|xiHCw^6T)PGxg}0n;R!s$^hdN7>pp`ngq<0n%l$>AV} z0SkL;jq?!!3dpH7LWr_Y1t1U+3c6dT+k}HfV23WR3{h9nYqplMt(EoYYx59)f1y^D z(FwY4no8dDv%cjtTTZq-= zl(oqSbwc9O5l%A)87~lay^Me_z8+K|*+>nkN-vt3{1BdedrmfxEW-kti_;Cr_<6?W zr#|R!7$^qsoOh?bpZsZ@ucwo0$>Xa`&#!C>yHk_VSE}D5dJubk6VR5bZk#0Nh4E2A zwlWE4v#%Pg2){=?%~?9as(8*GWAxI0KJ@gVste5*CI0T!K`YxS6=qco1?wg3??1Vx zy@3@(zTuziR5wDuE;TME-DaS%cK%>pD@dM6X6Q30gU5I@IdLvzf?7t2(re97;t&v$ z%^+@6*YfV8YX!oaKobl|Hep^iSV%U3dtdl7{hCP9YZd31=T2cSONtj>8(%H!GK4a7 z=@IQLS7$XDzudan_U)Xi$#4@KO~#E*LykqIxD}-|7&&n8L+ha9y^51u921$V)*m+y zC6N*RxloRTTezQ*zX*vunp@ZlJ&Yt10j-N|816Dd`vDwqS@cjjlt(Vu<1&E>Qr*xa z#z^~KIW|36Pof~!Oy=54mM;;E{e@;KcfgS{Bu*=o8o?WashWw zQ=0U5FjR>TO;cLK;0vILyHHD?ecO^>{{UE*xBgZ+O;eC}0eVio=0&~(F33kht}f_C z62ftE&Vj!)qysuPz!G?vSSm;ZZ2e@FKI5Fp=~fhM8`N%#E358?&FXZ18k@1vk66hK z5}B8RDq1DfiHbiq66zD`ycc$ZL{<%~PU^dX1}p7BrVoriV~#Qn8B{A@BOqgeKzni2 z$s2L2E!MOJaz+le8ljVWPRAjkZEj*d>CC0WUCAyg}dl;16$PKcl;P}?NEX;$?tP8N1AWX^%>}B zft|4j^T{i3+Uu32K|e9%K(m^`<@?1YJU<&F}0MxNyiPYjypMFQ_J>g12U_HJHa4sV?9qlY=`poD`OVhLVRZmyQV-k=@_R68t4aA--&TrETw5ie4Q40u}HeZtTRu+){!%FE-@=U z&O=UmXq?8M1nBH3U3~^m!{%N4*a6GI@coc-GyPoy_oq!|#@KH7FlcfLdLO+73?&d^ z6Hk%u9g%X=*-)O^+tCcY)Ls&uPWqT{?cZ2)TsO;TdkO$&Ypg=eq>|R&e3fIZM@J>| z|Lc}B8@@{&gV_%q#UO9;r%rw$kzb{VB$tr^hwv&CR8{~T^JqHX(`xOh(xL`#oSNjj zJsE)I$IhP&0MItDfz+*;zvf89LN8X9bW3;sC^GI#yARO3?GCA4h_2%;+s~ZktmWE? zD$lr7+Vj=v7m3#;+$}bEV=ua20)iT~4<{oO4BnGr33L3Z|eBJb_!uG`1qrq*Ms@PDF=HCOj zV^~!6cW*$mf{)SI-EJG>E~Q+H=@0MT&-#Hs4YmsJa+=b)ckIT80CN;@!$S{*5-^GD z#Elpezjgl4&fkZ%t2=K|SRVriSsC_~hJ zlOf%SuU%QCJ_Y>}bZlqI&1%aRRj|B?>GXZ>eGDnLeRoir$E6A z%=WgJ)iD(P14ssdbdZBwsiDVMeEt^O2axS}1m&ueEL?$$yn1T%1ElO?GCh+Z5z)%J zSu&nu6v_3-jtI6OGH!N*n>Bpa2U7=>?+kV1=@AFr0Ruq@Uhu`pCYcN>7%J`!%&7!? z0F(XJs(}lpjh8!E@5|KI{Jkv-IL#^9U9a>R9&D!YVUFy+6=oG69dNl&A{H1L64jiy zApqimthMR2&gz6HRfC*N2ab+31=Ad-6F~na^nwM=4K?YWt-jVoGJ)MahC)UEG@TsY zx&$=}8I&cB(|yv;e?wP(5#esQ3u&#EW$Avm|v!ihzHa;R1D zNt5*=ApZ@K+Ig;ZIyInU0A-&-x^WgMl9UP@+V=(_=*41OGDm+O%r>N2H>+~HWM%vY zu&4RlKP^MBwM__Fe3W>%Ckeude2T{IC*x%X>(}xODYaOKO-FGgkJJO~(N@lXKfFmi zEE9<|?zKMcicbSJ%bTMv`r~G*7waxy<7G=nJbx-=2`kZYe|&`R_9T?~%4-c({2c+9 zdq3fd7_0IQW~O=#lI)^r@XmliM|0cn{^J<1!Ih!{@tD>a-xOdAPg-qwF6h&XAZe~DE;g1tQULG|MkW24^@6?(d!R838(NO$>+nie}wFX9o&Jv(p1$+R+ z3JdCOW-RJa%=knf-pb?CaDK31NT+B`+h8Fv6@wxNP=p8mHob>c z-*gBFAas`$=~oKSZy0=FCV~u;4Ey=DtsZDy1RawZn2I}~#Ezpl!RLlgH*Dg#GYLSU0D-?Axe?tdV;KsjMJT7N1(yvoJi{txedcR{=LoN>asr=Opn zw<4$(Sw%9U8dFj8X>p7*KW!WGJCirus#t2R7nhcml?ApAW1zNwBgXmGR`>hma*Xrh zkqpoTF&^|%-M@c-ac@n!>Vz#!Qg>%KTJ^ySp95cm=}3*Qha!Ex*uh6bEPaK9%RFsS z*0fkyj-;ubbW`#FK{HKi(Vb#55ws>r5C_q2o`AyB1bttT~w_#H}oDKpW2VJp!F zI_e;C8lJ;9wz@EKgyu5BH21^bA1QN5gA?QzNbjBS(%`+21x2~48^MLn#=>;a{WX3+ zPO?;4rwVK`pI1;&pbLVXj(zMuJDupsh6zglu7Lb=+U>16WR+mBD}bQ0A%QLMgSA`Q zwX+_Uw_hb|<4G4>hWktlYQV5dT*s;gtx8_gQ#>U#2J&q%Iw~uDEg1g;Wp1De;9ARt zj693-79$mx;SwkHkRtk6eL5H`R_{Qq8xRC5_qG#AGFfkdgu+*R8V zgY<^dm`CL9KhFueM_*lVYJ9faX{^c%$!BZQsY;)R23=y;_-v?pI8xt>0S48NvdTpa zw4pC-8^VXy=BF~CmvUGAl0@+A?(L1@6?q|;Ag6Bo`B&LD&29f84~UHqvZz^Dpt zT{An+Xt_`)?wlXBn29C%fwD<(Z_>@sLb`y*j!7wj84=a%zWb0g zkmp31=_sr&E#vyoFArrCVozJll-#RHkaG#)O#rV>i762iwgD<&{`G`u&XVg$SsvkG zkWtv!oiCt!P5l-`O+PD-jx;TI9ZO`NI-^yKVnKr7GE&wN;WgP3?qOb6uX)X^#>S7G z&W(OnbCd0r?{75<%GnMD{!|2DjJE3c$Er%pzWIWQIDx#p%V>p6o>jFR^yB(!0Be;{ zc7Ld+*!JP?TwS#x-8q|=?Q`qb1eDyrT< zps=`y++r<@MyKkXdNUr=5c%*wP2cy7t?`{*>~pY@p5oo*XU6`9K5hDGa1+cn`j@o; zGt$f!e`xa@Qcd0+Ra37t?M?LZ-%$c1fTpshRpFYkX3U845@rVQ#&K#IlR|0y)wm=g zy>bMd1dIXCf@5SntHG9kQb%QV+(Fc@1d#_8*!mzxNa+ z_at?47a}HGz_zf#h~L52U`8{k;&-K>JGMxT9YhV%q*#o#+H-?Kstc=jmpn!)Iy zV-_Lm<|hG8yq!oxn1pnU%sT>I;QIIA8qOA=m>bYu^>UfM?3kCoSWHNPrq3;#=X&G8 zwW0KfV&QYHOt69xe_sNlo^j>+lq#tsZT2Z?wADp~aPs8IXXB9CT?5^p3he(;gg3;j z{D|p=IlX1BV~48`HD6l%r0PnSFE^wEH3yM7Y;e^h-|2p4Qh?uRz?76SX~K8%{qVXp z(s5MKwpodtPEPcxv;0f}#gLq%VELb^fiM0a;BvNVBwW5Om{;g9&?f1?E%|ke7y63R z(FXRoTwsNdd!McZq6yM3Bjs+9R-yI_!=;7J5ePuj3}!7*`%uid>kUWx?mif9%gkIL zSR0IVqKQhAGiM5Rc2zwbC!6*|cdokj@&cIr;6G$4snGPrCHl=}73NS{0F_!0Xt1R2 zAaU|*Bq>3N>gx6MIP1gJ&+LH_D|8;%SRpx>*g$7%(7~fk<^NVSFkbP4u8>9bKK%)} z1dus&ai*AOCc10P$9uJ%h-<>WJ$10Rymr5zlZa2{!Tw@L$ANvQhJeV_*^EdF=*z+8I%q4iz6!N896&19h0ATt0iNBp{6 z*<_>fiM}2)<(cp3ArEwd@see4{Y%`ooHYqkFXGbH98! zkA1fVaH~B?itdfApF<|=W@ctOX7={>I^kR43d(b>I(}`u4t%>h0AB`M6_0NOQ+k3_ z(HG~1v%qT03sHYG+C#40f(cSFi4s{aRLwV45~ZsvD!7!Ygc9^_c!}_;Vhy-uME7*t zl-o?6?XkRF6?kP6~S|vNUK?(Z!qHO&gH2r zIu$CV@5QugI_Q4)smFB{?15xMku;PaIVKi9>ya9VosW}inXVm(LB!Uj<{}&Q3U?lA z<{M{sgV6a29H|ZbKn+kj1l1xJyR6LhHygVY1CMa173xdh*4B1jMn*=d!(#3j&$fo; zlI}Ia78A6L_olGYj)V&r4hiSm)Yp+ePB!;YYf*y^;{|q?9o{~uucTziWd0sreSSbY zLGB>=8ECgF-2;RBC-pq!9ulc-sR7pA{;{t#5F=gSL4=M`b}cKW6NGQs^ocEyQD}HP zDlSOY_z|LbV^*{UYvw!eaqr$e9jFJiJQ0*$^njA@d5>t&J?}yCw%BVUw5c<74(DwC zRpx8AZgIBh+2Lh)TNynLZ^mM z{h55}vofb2Bs%SFt$Klw8sL{8)Kim)1zRHK{c}TAI_-!wWkWxkxMb%+!cvd(ivEVc z@F}GA>Ap)lW8>WGsf`M6%L4`5t)H!^Y;*swr+l-bohui3%0VhK`Wy=N)amRL^mj^h zYPd9?flNFkKhS4i!(1HEaQfoZz-IBPpfOIk z;G>u*(bOb>R|o^@Vb=`A4K8q6{NvCe9=|m^rv-$r=15oVNvnqg&4`umMDJxH@nf-+ zj-v{FWlOlMh@+R!D7GCvgW4%5;T-924snbwbU_k06R~o0mjj?di((ie!Y?d_fmHZp znuD+g_c|s-D1dIZB`GMIwxZ8W+^K@jxT+i^m4O(N?gV|!fyOEYW~&5P39xk!d56H& zF09V9=4gV$?|<_LK?#UJWCwun-fE;$DnL&0Q}G7kj12ev<(W4>S+a8~uIDZU(apq~ z|H3(-*`R5|c6|tRw5myY*EE|FBqI0fV|}lVD)Qph;II0J+R941FMUxo`Y?G0k{TXl zBJo2Z4<&N{Gp17XwGw#m3w#{63ZvjHx!o=Yh2yg?M0aMJ`kA(7xpz16k{Fd)w-Q%F zJw8sr^z|Udn?M0r zDA(*d`PvAx7Wn?jY%AN}AxqZ+S&&CuRX=h=gUsjSl)&1Em?I|6?64;p2BI4e6V8M$ z4;nV7HlFzcrra+gDrsmms<@+Z6qBj)u$-bNNVi*Pw>z>*-mqsRrk;xJ^jaS^JgY-* zRzrHdv8Ppb)^z=f zj)n`3CzD>ko>dr!oO4c;TDJmJIn{QPZ)qf{#eBFPXnKvzWWRg!!Xa{3>FccV8ed9{ zF;frmDouP43&9m#>%-d|ZOb(0tOUYQ0GQf#ERqFru-!Pc)Ncx><}eftzGEU7ks zTP(sUs;u>-%9;mZSXD}8ZIG{ig$N>=ixJu@{?SGFbh)m=7n8kZ6{W6;%rL|Ynw_B{ z*)ZF|nnoX=S(Bz#@EXADNn(sTn%}4e9AT~a{kg&6$gxYP%wfSyLl2e~GWqg|a8B8z zz!f;*N7nCBd6CnF)I>-jGh$Cu%6U1`~40Pz!Ro=dw1&inROBFRkPp8wPq}+s(|l8 zo7-YgA#NVEt4<@x?iokxPnBu#$aQmKU1sI<0Uc2tvF_|<5_ z=_y@ihaC?;K*zSc*%koE;g#D9nVGx_!LyN=j>y=AMr%%LZBcbhr;a`q6y@Ir+)2;oOOu$8@yFA53sMZ2AGVd3!sERjA_K93u@;Z|4FnDcDo-cJ)Ww$Rn^LG|XlEXv5FVq;W6Aki0 zey{{EFah9V%`N~hDAKCfwTij%c*nRZb$w?KBsyTb_DPiWp=v+zvC4P9v4$e;D@*!aOWex%ymcgX^i z4BdM$splz}qOi06#?ZDg3^d0`dO`G#wBAQ>iUNCWq#2K~JGD@Ju}d?nxllZbx7rpm z1DBZc29c9cW>Zq+SC#+-#@bFmqk~@dK)^IXq;Og6u9O*&vti&(a#AB8MPfPj8TjN- zas*0)JTn%w)(a~rz zB~pX&!UW>B(Z)k^&j+6m^yt8f`MDTY)zd7U# z7zHje7pv_|tGyTI$vQ?a#=L91u1=*I9|S>xiy#4{CqpO0>UmR@4*|!eQOY|K?$Q5@ z2?fe}ke7ev5h|3tp(n00pZNlNzQyi92~V*a+En9e>dw>dS}LfSKEjgN!T4m3ue?zP zw0tY}aroTB*a!gP>T^0g2^2UynyK)`e$?(1lMrOb_#(2w;JVBd%8njC*7&eCkTt4# zdvsN^m+ta55rD=(oAEN>kPQ6+=H-=o3M+iY=!J^Zq|0HDiypc)x(cE&<$wMpRA= zYXZukc7S#Gmj3Z0DtZT16TIj*u!poe=abCt!tO%D7Ye%?H&hOnW?;&}aKwb@J>r5I~B)2k7oc8M*+x_j?M*)eL;9pJfe?;9$t z%a@2M<%7=B5ia-O`5skhamO`eGk$>7_dD|Q}ou4k}^=(JOnSb714*`K=p>XiPIyLvpwF9zHw zNPk|YzO&+i?1`r@ayI)jo^L*K<;%ra2q~l3h-dR}o3<%G|N!-TZY zlw2JAO*W#nWv*yb*tFsYuH$EmZd*77A03P~kCn`J(l~H6{kIv2?K}vZJOesYE=1+-qjVlt(S+wkmIq7yVk%ADUxn3Gv%s2UD#ZC^|I_tnFO* z5xHQW*;j&N9$NM1_t>S5R&74m>&`V)^@Nu)by)8L`Dkm+EO>0V{hoAZk#@fqq_)a) zTSo9FadnYLjwf6h^d)b+Z95u1vE=aiaJO<+OP+Pb$(nn8`H;i?>o_C!87YT6OiWZdR{&eH+bZx3!6h;i{Ou!4(d+xeySABblh3rzmQ!qLt-?=iIN$7af!(FYju9&+>RAe=RZj*2Zg0^rR%%rDVS6!*0*#pLPcIg?}Ad zubw>j^vuZb-HzOTEam2@SxJf2V`tVGl+gf73k#AeHZQMD+h;6i#;-q?j_Eg3bFH}? z=V^@lNNn7~`&w1O=cFgq$c>mg4=>bpyzYMbTtrO&Z8OwHupy~zsMIU}%YyRz;-EiV zl1@$!bAwgxHgjlY#KF)9CJPqA9d3J>c}vfC54~KLFRMu}ULKsLR3_1}Nci2S@&lIi z6dS_GSC!VZqIK1z(>(;z8aB^=3;R$ZF?Qq}nRI?y=vq>Bm`3f5D`QQ~vfqucMWR-R zUc`m+;&Y3uBG6Nf`rYqAL6?x~?)&*PG zqqgW$Cgt;FI{iD3u)8tW+Bb?J_6V>-M7sB{0fLJ zb$btbqY*odvov291BKpPGc60>j0qIjrEvP=ldY}&VCYj*qXJ7jR{O}^C$hlOB*?iA zo-bKY@%mmNnW&muyuUDfEwQ;^&ffIoI%6D=3$SRe|7h2O@}S4OZmJ#@EZAQw1vKf! z-=SpGQSNF!?@wR>-aNryl$WK`#}4j`@wc?<_M{R0$@qk59A_Y#`SObsSz*^h;MryFUrw%=i5(r zd;R3qqj2i$v)5^YN7f%L+VSK3zQ_OTUbCW4fW~X+9z~AGCH4C}{Y`xJDW3VQUUJh9 z)HjjGKl%#=jHM-V+Kc?{f;v0H z*~h}G-9`@iNmd;f!xxkxOf3mM^;kQsS4L$9pyPhh;n~wkF|AS<-5N$sJ4w-ml1oA4 z#2v3V*)*xR?b?dP%T3TF6zSBeiDzy#pw`ZBrU>)yHK_MS3#UD_S zl>2gW$K1;Lv1l^9FhBqCVCti=^Xb`Mk`T!&!8WNyxfbTl3`K9NZ9? z0=Cz?O*n+#Y`Lky*MsX&)sy)WFxh7r%86AEM$MAtN!t_9eNXLs-Gv;n%;W)Jm?ng( zZfWaT!j<`(_a?2#B-54_cg%V9$8?pFi?@A>$S$B**jtM{`(PyHMx5_s3|>Cc>h~45 z>A#xfD5OcKMurX6iLf%|D_oP6*V1r{buI}&Vc*sEMZ}2ebSFErP>gOhZWKLBgj5u) z*!dz^wS{?rARpFPN}gccXp}|6Q9mAdb`>U1DlhU1Z~Hx;x%tnpxXsw@smOonnMdju zAyYi7gnQp~?{Pf~{eeN<3;HVl;AyS#lY<9VlF?GeYmP@(_$9oIOIs=h9znpV8|-R7R+ z;ZiTRyD5da+_=hX&xB0uEywPYxc=N5j$$)o~Lx=PDdqf89(vI3wY$RhR(&*oteC(Tx`vg1}oet z6P1;x&Pd-xJOYbRuR!HSwR)W+FUMQr3UgZ*qP@OVMN&vvbw?;P)qyQ zVVlSi(QSX+EAf%pjHmn-uT(`a%~h*^Z_7AiH&TRX%=nU8OAxrRxFelQ{P$WkL4=Nw_*1C&DPGon=9COt$Z$0?7*zf*mf%=TMaCDT1 z<38?4@^F<2FaRgV-)eTIATZ^g0|EyK6FXw_@7GBqhP1H_gtW&~*stR!F5AunkL1{v z+}^E>=?}71`Dvpw@*h$W5pKc1-P59{Zf95cEJT*PLlwN54ifj}4zF58#vaAJ7x{Wz zMVhj&bUdxK3T<6oCc6`dh`y7=l*(^Act5EmxfGED3_r8_WQA(fEivi8hzNseJ^5dH zYxt(^!UI5wCv6HU626<<^m)#G{^;}>y^DBM<>WS^(3pp$yAm+IZ;S0Y=5Z6Ey~>$n zT}dxC;`7P9)0C(B zjnn%S}?>vTP2chm{_)4{nHJj`4e!@rsNeR{5|7K3!!1{A`kfkT$)+)$nCc76JT(ngh#FW1+kst1<9Jy^6b1B`Zz?|wOO!o2#%m2d5q8U+dt zOSix6RVm$C;Y9lwvH1Ke^F^tSHglZjn-u5!1NhY|6w}YuxvWyhJ@jMbqJ(AZ)uX_# z{3x+pcXA2|N+13@9;tJ}M}Bd*Ef(_u@*06(eckoLT{-4&8SP5Xb;3lBOqmT_+-l)i z2z)5ZNEx(0<+r9U61JXuKIGM*m=E8Hz~evpdR~zeO7ZzjC8d9O%QN9J_ED-Vzwqi5mO7Iyx1E&>?>a*i!?;qotGoU z_6FBPoU|fW3~0tuw6+CcZ$p=fk#O#2@Xjm8sTH3{!#uC0R0E1T=gzVxaEx|qW?Y@( zIvMz~kL!P1We;DNmqtyNJ>3L5X)v(bB@qeFF6NNi;Qmafzo&8B(5jhu%;tr7?5(n> z*!J5XNE^FdF{~Q6s%tydq#_#JvA}D>+z;M2YN<5PgxY%2We$+%3mr<&dC=}gR? zy)S{2&1WX!JM43HtsK>)7Ar4A5ucZ_gTFFg8{F%0Ivj5|8qPQo~|{|+m?};MDPVfxP?Mlo9D%%I90Fi*C8M9@8i+;(MpfUM6ln4z9xA>rnA;QVxJ715#&_?oi#kC}}rO9p^cY z!C>Mpy**Q)hga!}8X6jEnm(|1GZbFJb{+U71;4H)dBPs{yu>lp-1E%yGyt1jOWk`z zuDG}u$s52c;h6gMg-&L#_Ja3_dFRFGz0gGg|K+~tH;RY)%z^{CUP((yeV&+j*GF1W zoAXp0NLfC1Jz_T3lIU)nV?^{+RJq6kJZ#ZQ^-`5}2L*wnbB$cZG%`#!g|mBms?19QBQ)1@^K zK{2!-H*IA5_p)lfaxF^DLcCZqs$tf(_ezRxN-b^D3;*p0UuJ222-46uG;DoQf4-oH zRWny#6kH%}dluRjkGR0UES#MQR<9Qrm{~W))3&(DzqfdmDKgQ*JERq!9}B*q-Cyvu zYGtMHYkmC%a5!h)@qsx?C@QA)2~Ij291DJ4j}#Mm71NSsWbCxdbSqxb)A(cC$9iX& z+f6iY$RUmR{=cu%)-1nvo={QL%F5y_+9np9HSE$*-K4{rJYRcnOC~FSU$cQn?A^C7 zg-r8rtLOebgDU774?H{+#JR6$b-q6HuJI!Hqmsi}u(`K8?|Wq{?gkcHUVa{|-TPaK zN;=~2yv%6u;6H=-JS&IagUGGX!c8m1jwAJB$=z@0ru|fWOlcZ!{(yg(mN+$&$%90} z;Sa0&A868h_0`L1%a-`lE|EfYmRIiN=qKy^*|KS1{`|i_kKXIX z1v|Ig-Il47T6X!rI@iw~l;MM)miRW@3O{cMKv{8@)dAHy4ed#!gMLMV!^4+=@5{J> zyr{cmP$Mf7>Po|OnglPYy`30fV`JmcVzlrv-xxRaLlp;Id*9711gONAZMS4=fhC7& zdU-uX*TUZZ#LIp0x=GYcMFlrc%OUPa4=)N1W&fA7T$s5U@PX$XHm~KX8)!vA&^*Nj zE(UyIi~HJ4TqS)PoswZ{!!hzfT(No9Rn{OS1Wc%AVgl0;@T%@=Qd?{%=0aAdZ#U1CE{B>Wwk=LYPt_U%XbY_= z^)E|7ox24V={+Xt-M030Oi(eQ5Int4#VT@>OGoB5IScJSsBqNauE&8CU5(+95#(*t z<;wyEzJs(G`XR5M=Ss(&u|2|&ul8g^?6(S2M7zT72VXefHR*i&Qa-Qblo0pCahXkp zc74T0R@57Yh7&jVZ2TS6;b2zE(qZ67N&OawX5+PeZrIB}Y ztmp?Z4BmbOC>i()rQe|91OzHZMXQcsr$at}&FL8vT~OqLaK|eahz%n0t`?9vAZBa2 z^1oT_Fynu=TCK>DYA_K#yTAb<4BfQ7YRKu%@x-Rv0$aPZKXzi6R6az-uF|78BHqYO zk12RAHk*5sP<+P~UO@1u{gj5;qHcX&kFwyc1l8j%Z}C+-PNC}!`n>J_zE@Z2rX^x^ z+UvaT6$K!(`In{LLa-#$C1eGy3-3Vqi{uA*q)H1e(=P|4@A8SeBWKlI9z;9dW69ow zu4~{e7~^Nb3h7&{eUNWDL;2DGe)!6>cvY8$kb0*09~YvR0RsLa>qNs&z*M$8K&Bfm zl?a~l?gM5I0!MZFvbu`h3+ijmr|7c0&S|>6$(Xhzi~lSMs&w;@G}17{NBRo@-CwjN zQjAZLk_fbv2gSE{x-qVF4j^3LIa_I&dn!Po#AYQ5K`Y<9pWo}yNtB;-?x4>{z^dO|dHGvmk~XWlK}7Th@oX;%DiiO178nDd7{6~;kx%EyCI2H({d~@9EEVG3Ajm~{5^=3c|XI+Rp)OP0@oNL+S$>L3Ih=1o` zW8Arg+a&7U0-dSctyQ-^*epqqv_1XCP23%3EbT7crZ!zbmVM%!^$1Iq&}QcEXTP~kc?_qF8bsb87bf5oL~(ddnSv4^WA^V^qSn2=2L=uwc@ z{hb}EeOb}EoT4jqGxmpm%3cm-qa=uCY8Tg>3$Wbhc|g-3={O>fPO8N$iv(ZrcD{IB zf~;OUl)3vw`ILkqHtNi>khlYqfZbSt1Z@8plGP~PgaNndB|dD_uE(qI{(k%rppSxY z$S#)<2w03-2M~KAeJ?nI^`(GcsW2?)nNqOJ(a%sh%Zq#Q;)Ohaakzepu6E`RRZ}6P zB^OGmWIb5n%RsoGuz6&I4E}Ad2y+C-!hPVR<vN{pQ=>rpFs`R0Z#;k4tXZV3X_(+w7GP(UnrvEz#%S~VN>WQQH=zJMnvA;6 z<9XEz2F>EQX&JtZn%Q{Q&Q1cBi*5=cX7T@hWh?`XrY2EavTP{5kxDaQO*A@1(_@`j ziLsKTve~-uiQ|Qgw19HX^362XlAl?PH?U>Xq(%8~ASNVUJ=SwIjpW8oN83P;HzN0E z69DR39Y)wb`WBB;H^ZeOScX8D9>$p&Q*wP?Ob%sXtZ8gx1z>hjs2#lPn~=RpnUbkM zbTM?Do1-09{$~T`djnpzQk} z1zo)1q3>FNvADPY%joRypKkHmxaYV1UyIgFTl^Ylwg4H+Qp)>fbnf@h20dN>EJKjM z-3J|@&-jq_4UT1W?Kr@hV%*A5c$Xq8~0Ps?%{i66iVE^DY&LS&jvJpMe z9;UQ)eStW_XqMyvcs+j4i+iJ&`6gillpNlr*x!?zN$lQk*;kZ)7Q`1XYkcl)YF^v5 zyxDo<@TT3TYX64GA!t8ZxHXZb5~urq(cOhPj|>z)p>z&e2kXCH5czu>)5dn8y9V!ytzTq*yS6AV2(^RZ?85_{zlE9IB@IlP<0Dn zPIRsHuV?OP4WMUyxuc6<{y<0}_VNS6SPt9@Ib%9u0X7I6-)%=opH^Wd;Jq_ChBOhd z578V%C&SM&NY>ZkwJ3u1E}hS#pIF9* zQE1C++Il~7pIYgW0cl2Yzr1;PgVGI1<7@^X;2`+G5vpAK^N=_{Jeh7)(u1dd;s9D(|UHG_Gwn`4IaN;;Nf^hI1NLix4ybyoz*#U)Fuq@luiCE`YG{! z^r&5bxFI0M`*nDM?*#XwB0!)STI?r5@&iab!GCEg6JAfY-<`HlUnKO4>VOu5X;QbU zh5dW-k7rvSur2Q_H4kl|B=eY&*Cj2+*AlPB0)#hH9~H3HyM0?1q-XRkDZ0Yq+fhM} z|Iaf`5ko3DS(?ri`FYEfO%(yWT}KCRyD)H3N_q*+E76FTfZl6-IX zr8oF)mDRaTlc6;BPaY&>4*iFKLy4bRq2w%r(4^fRv{FIgQ^f0a)Q^9KNC>IR*U@8u zChyv&nEIK%w`EfR#g%<0!XucX?U21tGrUY}SvBTGnMxS_FA4HfCtf;K%il1dQp3m# z=K|5-3x{7m`O)tZ3ArfKj0(9S4$VVcS@2hw`qAs& z&Q}1&H|n`tF%^5)ddgpFl>N?Yd78>STuIzMLmkJQ`4 zgI~9C?%U}y;jpBFBNx)*wR{=Snu!;I5M><~Lp{Zi_pW>@;Bn{T*aIM%cn?Mj&K_~= zJXMGV__nS4qRTBYVaPremp?jJHLVxNeM+GQ;yZ6%Uf3}VX|$-p>-tqlXAeh?jER_z zLJ=}gn8Lj&LwJhd_64M^%cFHzMd=QNu`C-eoF}209_mY`eiCIHP3{KQnk&@r4#bny zFWTPsy1wzgMZemawiy%|vjJF@0$`x#p{XYLMEb@p1&41BKp67&X;UwC^E?ueAP#Y6 zpwWBu&>`U7nd4{QtKJ7s&Ho)uyYc2Og6Pi%+u7M!Z)?-5ke-z~{mVQz{LQWRs=FE_ zjx8lLk_8Td1B^y=NWuwyQZvNlfMSTJekd99Xc`F&rH{r8rIGJY_}>QN?$Kd|0I91|O^?VjpLS8IecQ#2T=h zP^PWB&&9@^bjNFrYCw1B0h6@2fvl-xHC;8jR2pnRZ_9EG?3=+s>a@rrkJ-Y4U!^9S~%;P4l9=?Iu{;UV2 z`GPN$yFQ3Ls?qUdzu-k~^7yH#AH(S4%=9*s*XibxsRGMgp_X_ZD%MTjcQWikCin0O zt|uuN>)J@_4fRZXvE;JGA^%x{AvOIz{pQ(2bxWA#bdzQ2>P(CwDN$g#eBZ*)^kDL} z5CJCpI?|Hf^%&C~ICLs$bG4aCSN)SC1h;+0r~YFSa8st3Zrk;4M~Sos!OaeBiu^Rf zx(Wm5h&SJNB-a1FBn^65L@bHfZW~HP-NS!|jk}SUZMz1T*nuPbhk(%$27J^?C`58c z4GAN)i+Rtpr`doGf8jXqK?8gpB4fdn!7*0!uIVPVT^Uhd=mUtoL1N&$oY)WI13mv> zNt`5L+qK0ra@s)rOyHJ>Nvh}TW475NyKFAsaRiW%x#gA2AEYGC#xu77ajfMi+HM@PKZ_C^;0V|xz4_})ZCtRwC;zDqM}$`gldpK|Cmev3%3Vz zgFN!dHfsqH8mr>T=u_KgI8ThaS-qtci=|Q6QK*U1;q9;822U2D~9(|^*9fXN`ftV$Mq*{Iu~ zuU6tT*-wSv=}mFE&XKYj(GZlW9-Cn17K38#G@-hxn83T_)fuw!Yz`T_^Hrmc#^CX? zoJm2&`%M)lp`L}0u%QCdx(`xcX;3`~DOpXo=f3jZD<~uA*`;ZxRqngzPQdz+h3tfF zx?Qky_IAzG;|FnKTL?xslUwA91)ku##tV9E7g}S)#v^6|uw(~!`_P@`1b<+B9PvAA z*R~qmYqlXrFNDSx`ad`CalvNg7b#rNZ=M>IuKXZPI6d*UKPA8m+g#gN`Kp>APp}D0 z10*Tls8X%<$GZjfX7@W=g&j*$7Zr-O$9v#4d?ZHE+-)|G9z~oroAxUxGNTHIpjnfc z)$ba;l>)(T>ES7v{qu_~ouGw;{3i^hC+m&`-+V|O{QPNEPcGG8Viv^6hbS>$7*OI< z$bZr#6)ik-wk#iCY<=*sVWPJQrL4(D^Dn=Iap-dKyxH|?>)wueucHu4Kk{A!tyrukgY^8E* zp;@J2>w^{~Ydmh>P@Ns6(Len0*ZX?f;q(X*!69)hWF@4a6%y@-9DCLh-W5yJ0gqX} z6gfL$vY2sC-%sT%__H|UG+Cb)at&EbdveH=jnRir)EMRXx^}}s?jmTQC)d!T_a>W+ zwZT7+DaM(m*enldqj}6J8OQU1m0DHCZeC=zERzV)YE}epA_)LuW8Odd z_T6*KYUUpvpOy7jjxtd&Kp96Ul|c*?xfJr!T^=(w} zr0c$spXrk^Fqt9N2A;3YjAm7T7}nILk4t`yPTR?D?pBt%(|!tHwuE7V?fEOMyvFrX=mMFiLS5R-R{lkx% z%&Z3*_1cvbgGO8uALc(G@MQ|j5rYnx1LHXo_N=Q{Zq!lD?(6}AxokCoJg?olXu&d} zky#JqWLDbXrfrXZF!0B;QmB#Cr2*p>OzqQ;Vxh?+Y7yoYx@l$ICT&#S)h~LU5$-o* z8eRxcMM7o|)y^*|#y>r4@}$BW%X_{pxL2#FWT3Iqqucy~gyAff9PCu&5~<KD7*M9We`jGej~JxaPD~`@HmRpv zPE>=yHr6AHaiD{6@B$E$S|4_)={TW+Qbc?#SzK$vStDCM;p{sfk}&)+OLMNw>S?ld zCj|G8A7gRn8OPdZaJN_!+A7OhkBcmj(34^)3b28kge>UkBdqkPIq+VfO;g1v;X_uT5BTG>n<+U=m z)JAP0c=FuN(O(ZrQkEAFiCIrKnOQV0i)l4uD*YSgyJ90W2*j6kFxZZo*UlytW>5`4 zvKO7A85HAs=CW>3o3a?=7ZKXe*;yCiCzQX(oMB#=4-)k{YAgOjpvn6Wy>j`;8Dl&4 zHJO)^W3O&7pJy&9-@ew$HXNlE)cZv8Vl(Z8&pf z!~i{Sw$0`D@ml5knN0WHda9|6IIKNme<~Tx9ilv4Yn=ogNdjp)<_)(IMi1O8u$bD7 zH#ihg#kxt`<$k)~!0=mZ)e_7LNBLTGxTyPL%AAcDW-cdQy=8B&1AIpVuDW8Imp12$ zt!zj>k`Zd|`;B+?I;sQU1C3%FV=7f;Ow7?21uz8vyfhOWlX0!;6+c?|9y$!m;UxY8(SEoFcBs^G zKQc?Xex_aCUvV^@(No3mZE~OD=CT_?&EXZRak+0iFILt6!o2h8#{w7e-sWzz+gy6; zq8V9s%j0Vw$|OeJX>Xuk|$m=W|-J9-Xb_n z)$*Y!Q-YW%tb;2xZg?W=4(;yQz|}wGeky-QI9H{JZ>l(g`Mm>EO%WPF{L}9HRePge zVMai)Gx#r!79DNX2=(>yqbgj%e8;)x`lcs&LJEB%of>mQ^K_Qddj&8Q9@44-U=b}k z-uJ;!W(+@wrU&n|j~Sb7w%}X{?Hx{--8=?tGjO{T`KJX^W(5{T;fST$2bU+{HOfAM zp*kY_r%z-~UMULnn|~p0v>Eo=(u$D+nGY^V^ma}8UZ)raE2ejynDJz_$PrMOZH^Tn zr}skb8J+F>r1*uxv5d5-;(m za`0+wgNFOpb8qHWen!MqwKTCp6`x_sR=>by}I^#m_tQ;i>dB%7=Xckr-1h`vU?Oeaz*?&2@NVH$k z*0edViGTP)4KxP!>ZIp#cS%{G8BAb`p>?~wulbc0^1!hcaX14>)+|d|_@tm3XaDmV zbuj_^Tfj9LylKWbzO|{!lTb8(tcYSi{NATMD0A}U^;NRJ3u(DbK<2pMsv)Neo>e1q zSt7Mifxoli+R?pgt_qDOx2UjvvPLAbN=~g%wq+|(p zfwd2~wv5C*ig1g!?lxI+jj{~KE^H>boT#5W(L9YZRa;t&o_}s2{y&4 zA0#W=5+Z2^kTI!2F1F8T)9yI+*%?o$<2~QU@LnOD4kf+;sIO13;7ie$g6gHdBQ9sR zs30ODy=M>Qu|w^j?CnRr__?Jek0OGgRhS>pLwL*WBfG`;?;-zqBk)uNTUwCD3uOpu z@c~D-Y`Lv@fq5`LM8j&piPh^6eaO zMfKFjDJK(Mi+Xp>?Y9a)EYNQ(R$Jk$IdtMoChN@?`omx}*%XXacss7kA8&m^R@P>_ zi-ISa)#EdaC^lw0c_z4Q-G>OQ_dhCcfei64gV*d`_#Zcz4T(#{)s)#zG}}U3g)vC+_7#ZF-@bLs`h{fVE0x!3v~{s zPoBy>IhCoYzTkF4CN^N?dMmn)&#*}QqCM%&x0UVY1}fduWr)3xJ;CyjGkVk951;KY z2^^3nWV9Jwbzcs|WJwcb>!qxYemIK7=cjrufP^IUgz)3o+rTOI?c8!8i{0S?@F<#4 zw9WGE8c!j=xZmwnq6(@?#giw~i1~!V-|6+HqLR;hVt1)_o9=h-)7s^Gt44n+Px-tV z=93Bt*3HROiGlV4buoT*84Nl6+}oK8k5?zAS&Hh+ma70O1GTW)N2x@y3kA{qpL9aQ=Q;}*pkgx&cLH2=IWVZSP5`pyON*`{wm?uV#VW2{sl z0(s{19D|u%=5N<}54sIVWq)LVP9m=9cC3O{AWsyaKWMx^?w0_NEbM80p_bvo!OtO= z#^c}cc%!wHdSTz2B|8TGr0xs#+^%h42N5F3uRmhz^+{!y(n!1PK2(=P#_6fVG*vy| z&aLCZ1@O$B>N{OM(wsi-bc3l#>MGj%~j<-r5tK)ozZ@E9hm|h)yRY8YJ zYy3sL3nT~)uP?ijMv7}0Q!D5RL6m##pq%dEd!zM%AL7AhK8`cP%vToa6bTNsuHvtF zF9Ct?D4feG-WKDdb;v!r<7eeF-b=wwvDfNMtU46hD=m5lY_s(Iv&k5y^iIO5?FQfP zATT(2+u#ak1zPBtf``-UV&!eORb~x6#2a7l#?}|4KKaDfzrA4Ud`4SvO7T}>jl*hd zb8if@OWi`}c#Wmux-Z^l4t~zW6YsK~{Oma=;PhaX6_Hrn_zo&1^T3jY9*199Xci7@ z;1s>bfbyn^;|k3>)~o(FssZ^*iGKK&P|*v#_>Wl2~ARr;-V!|wsn$Daat$);)c5-7R# zu$(GXwZgr@M#Wt|+L$_a!BW;b-!SB6Mu*Ykq{%C{e{E9H>UIol7+w8ygXA%ji`V+zEJWO_tSZIp29ima=~Fu^?e*X@|?i z%wlOa&$~TAAcBz*cSq(zQhY1C_LjTMs50P{85Zt(F;A%D(X z`tOb}l@1U;AtmK6Zm1L*0}lyw*h^sJLlJt*_(d7e$Kpkxy=ib*p)OMhMU|G|VQIpY z*`*cJ1o-sm{++GoLrDgp;8{D8N(3>{eCsSwsus2*pGubp+5?7}A9apvT%MqSm$g_j zQ-bO!r;y;1sKei$Y_?v=Nm;S4jV+h4{XFm9>`EF)mi3pe&1lnO_gEdyiI83ytRyIu zOqEMG+&$nbi`X9`cyyavT3r}*33^&!_jz1>+Qz={v_E)xSAT0Gwz3_#fOMmiGhHDb zhPjw!(c|P3y9B4*&c9B#iJ3DqQdrF|`}T{X5r|{G)Awc1i0ck#4*_{8EIE}Fe6HK^ zlAU?SviRHe${_UGD>e<#<$($qBzobNmX;ATBc7@^0R_hm5zt|eD!f%cM+`uDjs4b^ zK}8>Q(2I+UN<2TfP#6&R&W`x_{4oT546%^(fzqJ;f3fa=&Np|tQLlH>flP)J(<6=^ z+#R>v0{ldG$X)0*Jz{{rwWW6kkxeM%4bf5N?*Lgg1CAT1n{UVZedHCbCSKH`WVBsl zw;w-MhaQ-+$v6;Y?ZakNtA6>{aB)Cw&XmA_h)~^{_;!iW9_OjN*hIG??%|Amgf*Sb zuDQXY;}7mVbDY@rHbvoc*ihR-oB(N;Ng!@{AX$~<$ZkKc9%vJMbTT6-KC(Hr_QQhR zYiX(=L&s_L&hhp_o(^NSUDt}ujJ4+gVRYe;MIyN4 z{Eb$Bkb{hYS#8K;`HKoNq-B>89^(%B(6^y+-p=gJYle$&%in z?-Ydq^WMFi&=)YD64nyFsdF3g?&;pWHyXX!I+Yu`qzn=If>Oz$--vB&>S@>FB}eL_ z6@7j#3y#fSlj=L&x*C`Zn7m->a>A^67-^R~TW%eVr(EBb$C0-dANWjP4{|-|C&8tL zj#g{;nKh)lbR6*mPOCbG-ukd^^3{UJqJP4|$*6k^=@qJ5n@(;6C=QQ|zAYemzvW-S~$Y3r&2OeIYW;SvvX ziPZQt?mChKniJe3?I37UQ@<5jApGT}?j5hywbf(G-pa)&ncQtpxXxTf3)#4zU}e}d z*3u=y2U^`ah(^@I{)+>)CB1z*l&lQKbE(P4Ye5j;V4I6AmZp$q%ipNBkc&VT;`YW2 zH-*;HbnQvS<;NOnbuDJgg_sv;o#U1@8!?QS{Yp@%1C7M?JAV4cA?Wnra$Ikhe}ObP zc}(Jio{I5Y{)A(2wXR)!-pD&_k4|Oeqp$n!m5^(ux<;f3gGx7FAH)tq~=VK-lHe%*2_T=Apr%q@eGVzK=324}RJQTRr>ecv;ScGm8Q}c$lrQ#6Z^9C*u;XO{PPHvGIn5IhC*kibw?Lp_ zryY$qu_CPA%xnu+=*2FbxSY%?;?(AL18=7(?jSKidL~_|)gfag`y>$7c4}%F&K}uX z@oj{e(df1#OK4&y5o0vP*OAK2&VSn(sKxeKu`Oic-~qS5KZ(Kn$o4$AI`&GO@c3Kk zcRe0?WWSseI3-{i-)g^$ZEP$`mp3a-glJK7lId z@Z%tU&jsdmifejPrCEf_z;m~V$BZw##u=Q6seuu8H}kd5tx8uMwk@57{5nEl8%G;S z$9-*kpeV;_%HqCIh51`3QcB?{&TppZ3~!pfg3svW3pdTGrTH2= z6)qA}Zz+*>8C7`j`1~_=L7LuDGl3?d1G)ko^s0k(xbuheK!s-|O{8VDn`W zfw|xsLGBHo%L})JQAgU{lwoZ?u%Q0% z!jp?8BLZfn3B~?h^(D%imtVb_jM!?o(EYy^I(c+nM&yxcd=8%xkA5%k6No zOS({h)iC&Iq$!Qk_-TW?Z?IhNk=`I6W7`SD!uOCA5wrL7zm~=jM^3)O(#>@qL|>a~ zjT)0{@=Sxw$Q+`=$hQ!L{Y56Ql$}m!;4_=0I4U3n0a-v}X0hD4m%8lwUNMO# zNTZEJiGBUB7@lp@c%|Iaj~p5s&Zhju#xy1*ac*N{YMV^f8<`mM+Al1B_+?9U^&=e>H8dPGxa1 zE9(sLKxM*fs~w~ikBnfl?tFrIx#f*0<+*&G(_>zkN52x31i!ofBMmmqL};SYrw9d% z=-GwDt1H-)YGr?lq?$2@kD;G$?F|fzdCMBen?1U&lDz;~FH)fn(#^zhl~=q@W1;XE zxlWakwomstF1qltv{cN;93bTwn=n(^RG6@@=YK_~8Mtt^7Tw$trK~ckAa}81_4gqV z5wNl}tOMFRfnel-@OMq${wxT0BIq=O1gyWeAAyEscJ~B&^FBR?kbwV0%{WNGdZKId zW{wm@dUC`hQzTHUmdn>)q(_^P*_1Jg9B)+0h_)7|lHC}ilq-BD9bdALcKu@(gO89+ zS5XD79Z_dohQ!VGyWUkkGW2M>1)+N4W;9I4eQozgjCOwPia(nz*UJDvxfl#-Bhpx@ zCmTtkj5~J9Za!h>@!jG^f1KV_dZyJ68bDw+RC;?BDhd4kM5_0e$~=Prg;nzjqb-H^ z;V5NLl5-v>{KBkHm}znUxhS%Ai}(UbJa+MG*770-hmdmUmNOlwY89@bA2$zOh3JTHU+H;&HEWDrHTH8Ze96YcdbJTcr9{Q zt3FAwV--8+xx42STD)IBwUmv*R2C~JP^tDDb8EcWW+u7KoH=giBcqft3xCEc&!{yx z7y8!zJ|ZVX`{uR9%)j&wiyTN(TS|SZoV;53Iv(Z*+TMHn>T*ja;|jC^6QNa&@R#d; zKtyUVO*r1UTAGX=OO;V0$|;qMQVQ3+16cKq^o)2$^Y@eZrgz0S^js)&#&X5El^^k7 z`XoGXfb1IONBRBvw`eYBOZKlX3VIOqSuMzixm~6AzCT{%EN z_kcv&ii&6b*-Guy-gGxUCT*8bw^fk99VZO8KnlhE#$!EyoqXH4cMU;0#n%N^x7{TB zr!RcI7`0%(ecbi42dy<1&0b#8SUuka1QkP!?zLoT``&Z$J|RrX0j!*r>vGwnF9R_p zti8?rAu8%iYuOlFj8C3wa4J927YRZ*R!#DF4lm}D+fv6_F$3gkDWJ7{_pOibS^3G-0`M->c zD+Yj5L#|{}^(tYNqk_P;jvT{mwGGc0T;{fI!q@PmYodYb@Ve#U)5_#i0_C{ND>4RaK-{r4qjM+$)Aeteo{h zA3#nysjvg%12oj{8e8@B-AoiBJAZkFlOgoiz}c|NNN5h-Vkq>u-1&fjyrsKq!E`a! zpaHm=X|v3p7X!w-W(qwbir+xm^o3dAakbk(bhx(R(3mu_e|7=^s#6)TsS zpY1yR7gX8A!QH1DpBHGj3rqPCQm?-d^P-p8#YB596NCFLIWt3GUDHQn{rrk3kz<>W ziAalSL|l-Nxk6S+VzklA**pe0`Jg*&zyJ#1hP-|GT0X-yH^gp~=iVqJV#$ zR;uQu;s8`K=$jVB`)!k+Wi{HWRT(Cvc_Y7^U2@O7f*zZ14r6S&JpgQxUMWabNBqT9 zi5JImC*7eMFp_#cSW!g!k_g=sf;)wm8EWn)=knWA7G7a@&!#WU)ZS_y3ZfF5C=Cu@ z%jG?=(^VrfH7BMT}J1PA< zi|v6K*|t3@X-bnQ5+6InxtnxC;6!Tf8fDnVzW)66qDqpg z^!eIwp`wr47v~FKvB6=L536(Vg5=^?FDWm?#+Pn|lblVOEi!^h`*O5GJ&d$5%TnV% z%WnUFEBfTuWEQx7EVxwir7lfo+lIHzB_A+BiO2nS@DT@P?e4lxReS)7XGXU;1yW5v zfQ}!|du61C5L^Hv>rYm`1gBP_&+F!`!nw(zJ(^~jo3PI;zFdCBVcmMoQfH_gj9u$m zCDb#p8GR_xE}Kt*av7aVQO-z#2$X08SxK?J;kwp=>b1rLSw$Ra4?}8n*R^ zH14Hj`sFh!C;gEQst_H&O6<*?ax^inMGEHf50LD?Q7SVeH>b`DeeBInN5AHXv0m2%hzFK-snF)Irezif%{Fp?aB<$!_O6+?&$UU`2jb{(;4_n;RS+!pTfP z@2QKgB`bX=6?W!|=moUEO04jz{4}H>R_$dEVp@7-P(EBNVcbb8x$jhJR{kDlTW5Jv z(zFpNv89L3E{Jrcg~MoR2_z6+W3*NW=B0Z$#s`?k{$O;Zl97^({v2_nYE{{Qo&9#a zPil574zJ3WX`*evNSX6#z%c`~2}Jmju6VuFVD)ib78a%khveAKJ{QAXW&S}T073tfYy7=GHX9l$X@ES9&!NytpK$iPaqV9a$G%|?@dq(lbn3~1(b0i z3C-qauDy!)Qy>U@HxxouI;Gfw)X(Gx8!-EhMGJG4q?XkrQKZ>C_=fpNW3vpD=1m;W zm+XB~Ce}RamIl3!5cnn_nqZ8N3B$b$jcZ6t=c~*!q(&|fB}v4fDjOO5v|S$fpWfN4 za*<32#|r}}SF4Wno5j2hVE61}TjG@P#a&=smb>FIOMEp_bdv)@do*?qonWqB9^ zmSyd!e!ztMR=EcL{=FROw6-XV%G(elU9UhvRfMq~f%utqV>~qComRX|TkFl{T;6WG z>A!~8#jp39LPTvycMvQvXTWZjftI z;uBlD(~3O!br&HerV#J)y3<*X+`cFDSHM=w%wWiE(u)um6!hW0-d|__E?x0jXY0>e zF>sjCkYVYx^2XQTE^1ga#=P5|{d^R&J#;4MAcqfyHTH?t&7StPi4>qlRC@T?ytHUvmaVmaeXDPL zp`tSsW%~9%cJR(HELg8QnaJ9jY5!N02+z?m^Y|nb+b5 zvk~!YLxYBB#gS2a=%8@!Q`4bCP<#UCn&Z*4&Hb1Y!_Rgp*&qVd&HKwcv#|!>qrM0X zKCQQ|6+ZOpQ;Aer#|N!^Nep=n+UCOK)u`AuAf!Pmfxp?>EC$I?Y@NEs^SA2!3%N_5m7+Tono_ZFk;%Dj9Yyn|~79q4n(N32%japWDMN-JYBekT@PPxy@Xb ziTRz01;H=17bAt!6(FDZz(Br8;EnDG0l(l?{Z}(XUR1@|_P>a8WKzY4{{J-!H1f3A zf(m;8%_7s}))MOJy?D&%Y7haU;n9Q2vGMEngf0M9qU}zbOlIDCtBy#Cf*MLzinfg; zXOCA)`cS9B2i255!c>B5CS%fvXBLe^e)?&T4(zjU=O*A+yFRdA)@C>NAWL2FUDSlc zxnjO+T`QoZD?03F-|%6*EwW(Egw2pV>spZ6khN;&3QB?c1AXAM$SG zS(YMQ>FNJm=alcvz>x~7knV99ZZr24~foT2n3^nUBS{it6W%j1!2bJE8ob0tJOC{;(QmCpc-w`N zTIB14OP!M1G9w+2FGa}Q?N>5I`y*|mkgP?M10fdwzOK~n?dB4?apM5pdwXby1&yk# zoXmqf?B1GQF^NzblIu{p>3=MX^)-pQ_dIji_)z}nf=Y@(iNaI&J8tq*Cqy7VWhDe; z8E35AK3F}kdn`C|DVRf1goDwZa(aUET|kiX==C?)k!*z#L(Hk1rBdd2@^nE*0`nWuK>-*l)TX@I3F+paR(qyPO=gWMt|7b=B^QZ z(V*BY{r0<(9OZ?xe)t+X25L82?KZd@FWM;ioK-@L9W$QAC|A%?W6gC!5mDcRD#s~E z^n2$mgQ%3XflN^`HiAT)-t|EDI|f!=(Pr-33fhGaD*qtplo&O)Hi#cy)$wg0K)#d8 z%cNsTKJ{fjW-}MJCNEC@dt9d=ytwb_e=mi4fViBRYY)0#IyH~(y-UjwmL`-x<8$*O z(#B?BQ`$Jn(8$wl;I)t#QIqIDa3NEhiaz}3iXb;eY^QfE`iR2hyfYfFbb(V^QH_9p zUbgY{YnDa7u!_$cF(XzH6lIRns}`iZ^KxSLpnq=&!k$}! zPG`_c4Rp}Z32RuNmD?*x^$DvvIZC}ISm3EM$8sw{i!4?7N}!`#H!}NETMOT$!v6SJ z@Zu)Fj(k>$GFhq=)p3fJhsOwV{iZ#KCId2F&1@XnL66^EPJGmUJ*h1af(DRo2Se+y z?GGD1@AV3IeuHjoKhGTe1e;YSK5rd3Q~oZu@BA-uI$QN|=c{=&nB}H(tuh}y3qPMg zx(@uV3x~M%XuaB(Rf(^-5$GqT1FG{|(K)=EqE4ZV1L#v2EX!i?+9J#90hZY2X;5b; zUtwRni)uM*!eXdAL!fv~R*J$Mz5d--?d65I%dZge7U;(5(xfa=g`%Tv>cQ303DDGPo91hPf7i3@-dPDfj!cPdcW?~Tb)_!Qxv>+2 z^eWRXouZZ8>r}W$9Wq(E&&jM_YY3fF>UGEg1{g)%jMW4Lz@&BUg}>LYunTBu$Cq=& z2E6RPFdi!pR3YobTnO6QQ60bx83yd-j=!8Zx2d>xX$3I=Xis|SNEK2r@@CRmR^q#% z-5}q5qVY)dj%Z(T*X(=b#aPc|5U%kzh{63g8kcN5>ay=0-}@_kKfzILZ&rX#p!HiV zSbY7sBt6$wTqsLOJGNx61)Wz5Cz2V$jGXvRb_cdjCOo||jPw(9RdFMEe_yIZT-U~T z(QMq-D{;4wSC+{fah6q==R72GP>JS7-wUIe4avze<&-WK1#hd|`U>D44R2+x|ZVQMeB$!#Av0Hl2B=>KsO zuIC0kG8lJ#FuDh-a{+@(){zh@@Ex{bY1O)HX>`xE^)~crWqfG9YU=E{X$dK#S+h}R zu*c=!Qd^dsL=UdqFFkxm@e!g-#$I&P^g|o;boqzs1jc<`I&iu{vB+?hKSX381PKfW z|JACp^y)_v1uZOo$lfq=tY$KFeL=N_N-J2~`6tzY8WORpOAUPj}{Qj3^RHR?4A{utcuCs>8+J;T)m;PYn7MYAUJ=F)b#=3A#R2YDpJ zsSv&I_f6`R2!*)}NGk^&@wknCtL9D0W$Gl+5S^gI%BFYpiS^A)dRFf!^}1{lk4kSC zr7FYJDmEv#%$NOv$inH7M>jB%*;M9^{23!SrZz_)wk>}Jk*Bp(c;YXePp_TUvMr>> z9Fg9x?SsuYj8O1MCcM75>%ZNTsDT%@yR=7yZkk$NospuOw4MRTb3JJKUn~_#DZKUoZz*|Dy7f$)C?O z#DuLcA)SIMHv0LjTO>?Z8Y$&dAk^DShPCs0%V?AqG)TRjhb=lvbT^}0AVl{Uj+yE{ z)3elLd)m(L_F>C|9L8Hu7&lRdpamx4{Ge(8`rNz&QKdS_qyUH@V!{z)^q;%Wb3FMAu%NekTd}E zfD2ua8i&HjuW2LPSKnYUBMC<*9{Bw~?7ewB)Y~6FK3#RS>$a)H)NN5ol%#CaE-5NW zWf^UxLY6U>S=>r0T`CC`QxPFE3S*yfQIcgyOpG!1Z8F1**|+a`kGl7M9>2$L`~SWl zj~fZzxKEa96(;|kqC8xbwEBC z?0;%Q_uiY`Ij>Li)@XNQ+8?jNlxe-cZep~>?bxx(CpoG23F9LfN9SE*q#W$TK0{%N zKC@Ca{)juAXFsc5+qOE#@$Nff?xhj#6aO1&K78QrHWVw3&kek9W()odNU9pa_ zN4xuWu$N86+CVp$gt>5*4V*~uU%(nK++fR@j+e8OI z(Z++RFOdPDG%6_6xG>p9>2J1KNnW4Xm&RCjDppC=Uu$}2ThuII`uIE)z#k`8wy9l( z|E(a){^O-*Q?B8IFIw{(SLFKikyu)K?@|#PA?EJmvY;^#meYZQv!8SBrmTHTK>qcR%uUsN0 zTb$7l3qp@#7Dc4}e?w)z$)SHr5<=qwPsRRi8W%2M)7abJPapoJ<<&@>Js0Opa_8S033U7vx(q> zHfPf4N_AJ;1F;Te!JY>J$&7=DLfQ~AWDoe9{#Z|7WpKl1nwjnkP=^nkqEC*$qkLxz z6-?3Cy_k;P-(fw?BY&#NkMyn=c_lbt{7ET!oYIY|sBzJeH%T0qbWa@IB;K0+i z%Iyn4v0Zj?8}Q&x{T}vM1Qpxa4y*2w#vEek!|p>hUp)?&32(E(El;fmGk#v$bk!&d z59pHqHt+W(vq_t2`021!eh_(5wBR4KV8#-tawD+ZpmOLys$cyo0)i#iMJ{hs!_Qvt9Y5hG6R_Got)Cifjc`WG+s89NBijoB} z4`bShKbNL-blHePdMj18xmW|XY`U{-sE`UBV>pr*R_;45CK(hip3*N&4>yw~vu6NJ z1Jy|O0>=`PcZFytt_1Ar`cPGh1cD39#K4WlRj}Pli9!dcw2=DTgV>jM6V-4LINqSv$B9p2 zUEq-JP9wJ=6WD%#tj*l3vipqS{p`#fswV1Az zy8_Z=AWQ`gHEV&mifs{PjXQeGU=LS`pzPnu>I)j=-3-v*EIpPT-kalBw97b02QJ88 zDgbqe{6F}pF!I_AsFE1qs*+51l4$KOAUcqEgvh;9GUj-nn__;<>d&`)jf#B8X-Tiv zeb$wgSK=N*OatTxk7K>SYNE}IvS)3Ez1}n2=0yPOfXR^8r>hI5!_uSK7NA?qJ{Ch? zR*r!sUR2|!sL#i*`HY(p&cHHJy~xH`03tu;cv$klS5kKfuss0x)DYy4rm7Ym*$6}k zQ|KMTBNlg9HOO;C;#Z*lY}q}KxRbbws8#6~)~C}yNN2vuJFq`3Z#|Fc7igy*U>Q%5 zo0lGloOsG6#Xa-G{Moql9Y((ZB`q?)yY?d+$j8AFL{SFP#XC}qCY!<9P}^#Nseq1tM0f`a4)38T{v3bUW#)3Qsa4nf+;I0a*reTaA#Dyp@f^c1 z_G4dz+OK#l9t>nXfxc|yeDNWWD^UD`wGefoT?og1E|ouDk}{7Z*Ntl^RFdER09>`8 zd_0}rwaPEFMWAOHqy zhlKQ^gZMjbxPHz!Rg9Wprha8TfgRps!4issPC4k?pZ;3KkNNOC#~R@q z3+%O5?g@$9X|N-OYsUywnT_F(zrIf7-hlqPOa9SpddF(FvFGNr=WVrV8Pj03YWg$^ zUxp6J3_$&79b^e)SAZuyf-URTqVRGj{tsHdKAt+l&Oio4Lv zjSIgdU9h9%VpOJ#)Y>P2PZtA9Epot~X-rn-H$q^B9eEQtgfMil6kJMX3cx$3S+YLF9@yTzAnXq#z=ymHV0IDqA9Th17KGO05$FJ(tjRjtRns>}m|HZ6^| z3LPvPluLKPU^~d+kre$T380@NezJ!5#qMt?gpRyU7+pg4CH|4ErN8vARPUx_qek5V`>eq0H43XALWgHsO@DJ#2v<9DH{YnqOyS_D*{ zIO+AE7%1sSJT81NH8j@00B@Ut46t8tJM$7&*3Qz(d>j$iZJpjbX@>sr596FGtm2XG| zp*w`Cn9yc~E*HDnQYJ2jz|?hGJuuk5+N=E^{Nlk{#E81qEzC=;k%zN(uA!9fFP{&K zF#1k8-xUZcbPR8!1Ys?~k4(w#L<{97_$O@w=CBufEQIT3#nMOVc&<)knq-Z&I4HMG zgGnIynjRqm5Gqn~@q;x3hJLuXr+rRHw-RuRD@3gIfX%yZKXcdT%3h*HL0=c|H4mE% zmy1R$U4DVBGEm`Oag8FEjS=Rk!o{CJO$b2ViAlC{Jj(a1$! zMgvBn_d|BwdWXF{|Cz7_A+td&2f8oW%Z_J;*VUV;?sXXg&!^Krqf@}40%c0dd>!X| zi>CW+%kUw|Brw=zrD6|D|5^(!pa75a9f=N@>?1TyE$vnm`22uoh&}Fwjx4}FoyPS{ zu@9r!NA?b?Twpj`s#0kno0x^maG1a^bJV z+$f|Z9BDFQugh#tMYiyt*>3)eGZ+YieQ6TuAPyAZ_2eSz>VzlMA5#9p;1^y(e>YV% zFPS-TMfSCYe39ZzTk~W`;~NZ^`F`VHDyFxCpEu-%VyW%um;I}mVrYwQn9CEk_#4i#b#e-ha+ zDc<2s;jn(WD{MCf1m+?(p2xjtgMU_iz^ejzF@;pqaa_x2f@gn{5i)g3CtZL(ugOL} zZEkmCh1cm^9E$B+v+&Ev1zhZ0J0&|zFBt~=^ehzLEP|A_V}@$Kb-Q`Sk9T|HasmTJ zCkeyfiMeD4W_l*W!pF7{1r}Rj$+!xOxTqdOD&pcZco}{~TW@BWvy6vyHTcq8tfuw5 zrZXz{q45?jW78}1^YSzcRFI9s=>U|psYe6!N@1<_R#}RHX+7||RSE)@G(1I5!K zn#CwTkg@Xzn>GCvJ37T>cVyu6=P52L7s%)MbSeecyCRwCv}x%;Mi+J6xZ)VPd$>{8 zWg9Dl>bG>JuO@76L@4#$Ysi3-cX8|dQsikcyNir z85QL+89BPc9s%mrdNDF2PtzGzg6*(X$z29pU>>g$;m;ei#+9i__ddKT6NLN4Bc($K zR&vc?tpn1ChFH|4-n4-&)1@ICAL%2o<&E>jBO9ed1&aORPF zO48a_^A^J%%!kyOy zB-L%k6XOiOxuL~iB->rUv141YXd%Bj*e@FN|MDh0-ag|8*4MlO{$kYczjU#b<$jOg z4Bkzqx5BMim9oriB-FV1I=IxbtwFmifL>=drkzsjvx1i`x@Na(NhvN93G2DZi6GFB*fZv zb;u@}wTy1Zi`G)U|FLFwkeKm=fjoS9T3+eB$S%M`x4rE=!@W*3G6<6*hr5?$`Cw4J zbNm`KU`OWiZx*B@B4qG-mLi5RFy3jc5Jr%IHFiqLGylOJ(+u#T$r!~KQ*(>%Kk(zJ zz%FE-SGX^Wch$94227&u-(k#5GXz)Frflp4|C*>6%?vGFsdVN5qs<%usE{i3|Iyfc zyzDAG0s1yscbu>4Rxrs9dCU`dM1Dc&!2)c@qgxoG8L)meyLphcTF${sd`5y_EUB`=&V{uef3`2u| z#Q`e}lYG1+8va8qmi`id9Jtz_NpmOVY3wMMg!jYgU0w?JH}D2~J!hL(!;t}*?PiuE z7~@`+^JKXVi!Kkk%uy|GS4!-t^6UWlL&Oj1GEJ?2jTAi6==X@7J_Pfmv6PZ|Uw3pz zsXFCbuGq7=Z+<#b2l1cUXaY?+IH?__YPH_Dlv#LRe@oXY+S~f!DKP`H%GG@G_SEzG!mOb)1<=HT9A& zc*Dg~?gwvGSs3c5ve`(fvkRC^(8Yb=!9q*<06!V6I!JVPYcZN3_8|sRXC9afo<`ky*bqabB%_2pHp=N@>zB-l~P`D_nZ?^&ffr5~>DIAtP zNSd@VJ}Mi6Q2m*zD2SbMS9jYh$4FRL+(-i6$xC#nMd(ew@HF{ooo@^D?;Sg3lD6JNE%>sAAv~$d)dYA3lG7kWOb3lb|vSPF(~4!3nTiqNOW;qn0AnuWR0pIqK*6I3jKXVb+20VHqg6FUZ_iP~-@T zZ5+YREX2;*uy}TxmO{nBcW7t#4Y3o552;s}8-P0e0?I0Z=R}Ay>5<%teNZBOeRa~# ziVOzYPmos&Q@EHxku~HJ+(Jzbd-F@v2)CO5gu(W`;$q1%kJT4sLw?Efv}=+i&Hi^( zdD)LaHeJ9=Lfd&JTA!fb;xePM$6DlF8H{Z}q-85wp2!EDO$MFTgROc7&Y;gn{Pk%u z%s90EYIsJ=h&>5h_K^WD`?v`1bt1Z#cVM@-)EQAbk2bKRKB2=1qZL#xXP$004=D3j1YM*WDXfHg(HOro&pwDw6qDmuZr@40bZ9jwkQ$fPeY!6D+8Ni zQ>>C~txRq20aE`KN}8CAsIga4FyE`!d^}sp43OCcFtqSP@fJ{KGi+5#%%=fb=PGap z->L*$An3p>Jpf_!az<=>PalG=Yfg-TGe;oaNwzNOt7*Lqpm4UzS0(pC$Xa+4RjRzj z(en0fP+QgS$mI2KbMbMtorJ611o-6|e|wy-EWaRpy|-)<{z06v74Ac*2#F4#zes(o zTpx0f9&p4H89u4H?FX%R7UA_nTB;s+T{BDWbHT8OSUQnaHbCTl*6HFsnp(scmVBT= z>hS(KWx$i8UM$E6BbBK*RQSvt^yFOgJ!WW}6AG~GT83rguhRPDe`l)4*-QAU$G3`Fs zbu^v|E~_^`B=it|^AVipvC|o`yG9=pl;aMnXiG7hx(*o7SA2qXy21|ZpbX6@=6np{ zLQ#zfZys=b&PX~1@4+?pibqZ$-i8;(SzN3u?fPwayjd4Pwuk5S)x-lTd)CAjTj%B3 zpyfp?HUl+SwILtR>5xp@HHp9;;(VJtr2uucL0qQ5t`7M~6EEmfI|&JI!7Z(FEretm zB$~f_c$AURuJnGg1R}cLzli=g^v^<+d>C}gulWv*0Iv{VlAu*=e~Dj0 zpJKN2{(eJl=pKs5jn%65{frBggCtVC5uOv4tb3&e1W)z8Nm6+rI65n+sCr~_s|Ch2 z8R2h^4T{pzMSvR|m%kR$s^H24?W&jfbhT6Cu}N1U)}M0UbV2UY;)f~SfzDunDZsfw zeHly1$Nth{zzIDvbxjTAX`Bb3`!1gVk>nV7VE!8C8d__%^FV^CFseTe&)ayx$JeYA z{< zu2bmY&yZu_Zoj%@#QLm&Mc|f!F^jI@qU3e>_bx)*xV}IgLN{I#gWzfMAio;}9AfF~ zV??q8)oL3T*ldax*Vr6|hbeS)VZi(25?GAFL8kj72<9GzkLw z=OlWVDinZRH!riUm@wxCdPBEkzb80%E6UuYqh>(sAU633nzofiPMHXqhhmL^lhVJsg{Ao z%984tK>(6PD>hAo4M!aZ`!Wnxc%D4ETvTVIl+!-fA2~yv3$=b>>~nm=0EnlF`tiGz zxt4->(r7~Rs}Adi9mklbG8x-}Fi+V5ZxA}-B}yrX+*pIDVLn(9?!M!wZ`}s!XUp4` z8vLY1SiKE%$AKNBjmOWO;`ha^>p)o37lEd)Gqh>;hVHjMxcki|RXu zfA!KC-~#aK9ZdoR1LLP>RwD!yL*PdGjgDNL#THLkTnQTblhZjXoCwr`E}~@R`RRQ! z*Ll#q7%w^y&J-aEP;i8S@WV4)`iF46HT_;_Wnvjyx9|t~)+z+rga<4OMGdbMFRtNL zJ0jbRY8GYyMWNcx*jNPuSwef};Bx4Tzyg5HNifT$qUZn2^2JaX$pTlOW`UQ-=<$nL z%@^3>;xIuLX4C|~g(~<2|IBlyEIsYFkQ7?wR6Ow{VF2Y9cE(*~Wn|}lI~)q2Ml}0F z+cN^edkovJj@Q|8DHPZkIJ;|5gr+}(Rp_J+Qv~IzmFM=778|tk+b> z^Sno4Kve8mQ6r?m#Y*&N8M)I?L=pLhvYwO4O4G0xm`3=;2XHtdTL>J zR|hnREJEvtfM&3V#9{xeaLlmQSsp&cr_O|h*^FC6(UC$aF?-c4DCbTsw$`K~brevD5Efrvc>?6+71a zq<&x&b?>)fj@kaF^BxgD+QMMJUg~5Z3YFdA{aqsEgOeP|p3os5zc@x$$#E)_SP7H% z@)Az<&q*LGQr|@R03}b|O+I zvRu&@Y#h2juIGvT;{icljw>^Ib|#a8&~-P8T8910hN7=*Y=;C?TX9tH9z9ACIX_VP6{F zpP>cw=sa>(He_mI5-`MIZQ^2NjQ&O-cDp8og|)ZothHv8LDPV~tG*9(kbyVLgr=m2 zI>>NPHCf6Qe1`^<-pMyATLqqv-;pPdLq19% zx;E!!kbBbUwK1akq_Gx&pD;;@C8Q+vIg%X4vj;z<+3*)Smf3T`8jX?z5nWPMBamw; zxvJk)LuVXLDTO1ucR_u7tmrK15xnm!N7u@5!%QpPjkqtqSb-2B`|FUhuovo-7vquMeC+5B2eA80b{-A3XSM|&IT?1HrQNeO7~fxR}Xn^6&setg8-eC zRGas0h`Q`YBTvyR10rQkM=)G+7PG z89{bu(>|mMaJ4-!0Gu;uAl1PE`~VC%UTX$*wMvwsa#enRN2`rPO3uDG0*%zTv5S{( z_Bos-m=E>j=o_jy`uo8(DV&oNaU9G$Xv`^Twnhe7Ej9@ZXm@YflGHCsi5XIL8#CHW zeE^L)9}fwK#AOO#p21tvfQ9K&n&Hde&Mj+qjr)dcZDSUm!2R z1`TTmJE>Mk;1L?($Jo4tSj0xW1ellEc6Ge(fi!fTI-ro+3vFUQGxK?jE)#HT2aoCu zG=MY-k!fDleso%5EjI{w3%0=QpjAD>Q4N#W>%^tVyi|Qopz}7m3eA#|F#~MY1Cn+5CS+)slak{?tDR#+0XyWP zb)h|_taxo?$?q)e2>9VcLVu|1 z;v`6W>DyZv`jl4lQo;A5Ox(BRH~2Lxq3%|Z*ZL5E;<=qdMg*QM)E*`8H%S_c@pMTu zgb?P_vcsowQJXTe&SQP~yf7K;NNmwid3y}BTvRBDZ`FLPLsPQVU?8>c!*?+_Pim!W zMxMV))%?WEy5o@#QyJ*8tHGP!oRLw*1Kq)nz`brhd%dq(IDFVs^FEGf;S*$Ie_B7* zN6%yg#ZIg9`_cl=py)6;8H|MuLnZUR5ZZhaN{+?}9iX@Set%m|tEc-!4yGDN#$pFk z?Mn<>TDz7*yFgpqQf|DKhv`f^0-QtZu?-;eNOc3s+PL!UsiU=>M_hym#s@4`9^;od+hne=h?YfX|esF^qOq~(r-<~$Rd$E zLy-o|LgWHq#lyC?bLNz^>__JYZ3|K+(m)h#S5AUA(GFo2cg8(X$Cc&-g*E{P?W$bS z5k%pv-3oWJMOO~bU*U3Zw7>RCk7Mp*mRg*7k%O(7!EYGLEPjZwRp-XAo)lk$?eNq` zz6tjaR{^O8M1!?IX%PGLL#0{m9IcYP{ph#DX%=3uPMo%hO}bWR3a@$u(P%Qz8IrFN zBdI#fYr1Pn79BtnhwZiVOb#Nn?8uENxoPy5b^Qqj-vRJI>eyPc5TT|M@M#|(zdHq{ z)Psf7MxjC3Z)2#t#O~xRqBmojkI!wg@IZ3?j@n#uU9Pvw`vy{i-}*e) zbBuG(el=!-vM-nSjQ~SP8>(Qn`yg2s$+2wKHSqkBysbn-zcGKT*r%PCR(I7}3JE6A z=4%~hy*Kma`Da4M(>3=wWwV~Og$@Q>1EN1^;LCtnI}jX+zmj+CVd4PN8`2mXP!^ug zy%~Xw_inZc^eF`dgS8mEEk9Pcu_IlP#;_2i;`B^&hQP7M0kJ9%&7Ekzh)NbaWW-Gy z{8<0_PHyKp*plS~+dg00RzjOy>#*PU@KonrJ2zUAf_JxRq#< z{!|LK=$btJt#Y%1m(iE?oxRZfSx}oLIfrWex;@3HkY}AHL=?~Qs{{8w+=?Ota0N&MaGc7}U0##S^G3n_?{zQPB->cZ{ zP?sfzRnFvUjq0~N)KS?l2-AGACzBQvfN!mh=h-G^EhUuMCV#8-Nx0%9TgVM;4afqg zj&_!uh$M^qZCkgea8Even|U_Dym%37hx?YZtu!NtKt8O(H#5wm7~vFHUr-d2lodKi zwkycO-W3&J+0_c<=t{%lFpn(XWpo`!!6*9z%xzA6M;bDuy#&Xunvk=nS~ZWI5@Gi; zFPaDRv1aY%!j9}|^*U5+Wc_X-A;`8MD{iL~wpf`(c-WD!x6JjB05H3aV^-5C)WUVB z_m>_oC49P@(6__PtZ-`k(9J0k0-(%pCZ7H}NYk_f!G4Q(M)^+ny3T z03D>Taddi@GkWW=?+U`>%$5Mg6Z!{4Hh^g$7PcGfpKM&PlCEC|5L$J%Rp^hD2iCQO zSU+)rmcYshRhiXs-ggC!?p-{V%`r2}dE}zGAX}F5(s!F~@dS7JOEgSq+d6c(Q=1TU z*P*@|G?S_P8sK~OPD1wAc3__FTp2K<;B=W!tL>Aown;_!uar(~LdFEm2OagV^h!cPzhPRpn<45qFaYhw;tk$>==I6AC-t;$lvbuJ@^<7S@sjC{y2ERUcupI<8E|ZR5xj8|0GW~RN>^%pAA!Jf``3sCP zq_EK}ncge=f98FL!v|PeXT8q_|<=6SI=e>HB3# zdr|)Q&=s_V*V1Vbp8Z#DWp-R}Qfx~(B^YRPV&Z)%F~xip7hz~ z%(@Rc$bRC8g~esbx?ZLK)5H01L-w5MN3Ss70GwPZMuAnn_Gt-Y_QVd9L)(3GWPzGd zH7}g@dFR^@@JNz1@E+n7j~#Qf4Nm1av>HWAvM3>xE1{3ABhtTOV~_tMpADZ#H)oB) z2lhASPQ4WIK5MUQCw(&D+P5&+3#$_aHCZ?TFh{#r&CNFZ$PTP4Mio=``s(g>9Hr3T zWFE2cm0Ro?){WS=N|dyi6rG?y21Ld(8>i#M5z6~>>}e6g&#mkFP!qf~EKq-`hg*No zmIl5Q?aiXT1#mt3Mutmmgl4K8rrCXLxv>3Y0VT`mqI6DG8)zpjZFWGaFlrWH$0%Cv z(~GUrEXsosqq$J&pkt>pmYyj%>V*6>seL;~Gx13Y7jeY^a5f$=*ZkM!gyU7@dZ3%`Vn%KS*F{`J$XSk;LrNUMQiftPIL(dIug{lLh7kod_g|3TtENc<;E ze_-H0#qm=t{0E8uAn~7){K*afDajv{_zx2QLE`^KNuJWb)f8(nM}Z4iGDWNFpLW4P zW=ub*K~*%T`%t!wlA#U;02f*P2N7#NhJqcO?ic;PM8kZXMOH_~E`e~K(NB*q>R8JV z?v)e^P(?fh&JceO{$=$ptu@$NO*G-PqUps|TVL zOE?kuZzps2oYq~=^sgYY1WWxqW6_+WJ{q~mQHp+M;SYaRJ){@wMxPVxd`zyWjQhHP zW4Y5Zpr`Wrxk9@f2SEaGxjoK~QZzH4{m&~iP7Dnm93hR)Nm4#mhjHeUTq|-v=Z^IW zCIYgIPI>7>q_<+Z$1VOnoC@o@L zTE_EGtiY+L;!jsL*CAktb#T_Z4D!*2A?bM(843$Las6bx)bE)K(FExQ!lzC7C0tW= zxE2Z`sGr35ouP#%k6D?jnpLve@jqg5madAP*hmq+KeeZWhF$H7@B6bys^d4?tTQCA zNcmBxYMxowV&5{!;B`K@Qx+WSfi2iO6J4Yjt2~1)+P9NkZ*eQI(cIuUwoSKkmsj%g zMr(fk^}p!P;T&{qX_Sn~=Jeo1W#L6NZqzN5(6RBbt;j+Ut8z~m)wq0^DN1zBiJBPr zhy*DF>L-0Inv%2WtDeYB(1?ySAclpDYea6kT`Dk0Elhu3&&Owede=b2!1$WZ6BRP*mchQa~O48M%_)s?bnTY zA6^PWlw6jgD_7A*)pB+fpkIo}=vzka_$m(_fTJBdMc?x(*J*`bKaKfTc*{vM!Zt|U{rJ20jB8D$+4)~{(t7O;*mM^)ROB)gDiQW-#n6p zPo3!(5@>`O3?#tcf+_5ryG86Z6lG(GbqSI4sB;sn<*VC|g*R&()i6#Tb;MrE#6^^h zQexAt>^`#IO!;%^jbDBZEhwU%#))KzW$ygjX1D2-o})ec;H92)2-s1r<(y#pc##b* zJVc%v6RFuHau44-Hn3C_pAaoEZ#kU>e-Tr{UG3ix<@vACetc|BSc+^YAOGS^*-6 z!;kl0j=G+8`lc9k@ttQBI&ifz8mSx|uf2+J=~w|+d019rfjugIsE=_7=~$$v?Tarp z365k84Gsny*7OL^)eU%C64)AtGG!^powUyf{A=lcb4s=`klq_XAxo^w#7ju?)y)r) zWGC_kVm16!vQCpumAh!Bh)T1niWE`2c5-I}JJU12 zkm`m3ha^2dGBI^I5ccN+>^m0qq(7?^0PGW~J?Yn(0(w+7Lf$;C)WU8rQ>}r|;i{T! z0Br-W=xD-NRJ)PK;FSsoGX$%aY6f7Wci}ExQ0#at185^_f@Tdpx0B* zS6)&dLY>v{mlpgO%QOUPVTmk%eN;<4kTnuR-P`Ao^2tJW$Ws9t@wP2-; z92Kb&=i_zsf>g5kzi=kDgMEbgOJ0hmc8EmfFSFdM`~RgR?tyQgX5@T~s|x&;vpCF5?zlL8%#=MTuP$p|!+0Ja%9F z#5Uv7Q3|}eV9nF1XtWx<8}8B`E~!)C5SR(6PNj*GZ*-e3mmt4)toIt}(V7LiT2v*n z9z9(K3j2GkmpAJ;+(Igt&QW896f5`m$zg8M+OqB>gkGbC=(*KPQ9x7qrb#``?tMWY zMCXe)yZ`D5H2jSs+U z|HB9$ir)ovD=y*35mgRWssp8MLzZKAW3`Mz+FGiT8xckj1&v#*Ws&Skm5k-S5XWyN zMLVxk$noNb`qf!@tZT6GLnLQ}fG6IjY!k1a3$xILASf1jim0e`qD# zF9oFfBrg6FIZGu_g&*j28_}eSN-JrKZ;ro$H5o78G#xpe6&(>CYQ6t2(ay`ujWqIJ za;}03=>H~`ab7PUTu3F0wHgWu`M_2N(WRS!M6?$d3?VEmdzxeKK}&M1>Z(%yXAek* z)UJdiw|hZNABE4T!b?W*g$9#)4t+~CyRy%&Hr1-XT|$x-rT-6=j@+X~E~(RZNSW;* z%_Pjh^U|qZ1(eV4Y+P5mhsk&KSc{5WAgD$Bh8eyiUFn8Ga{Ybo{!7_LBrPOp7-)9kzwfH4GH@4Vl(spCHs|5ZE%{M|m1tlaG)1VC z3@RKa)W+@NboITfc~UvyrTmuCB+DHS-!<;uy7$2NHuqm+(o0B!BFg`c`wk5c5QQk5 zFzBJGgk0`fH!$Bk;OZWf zbUW46L~d}OQ>k1@plmJs-b&H}E4MP=F~ffB3Xr+FGnuiS^Q?+E7~j)2Gd z>eaW;OWz~Jgr1BP)vGU0!W&S7mCtZ0dexUI_(Brcck;MLW=VzP$qvei+!oed=dt&~ zeEleWYw5$A*`?afSR>?^6@?crxyK#IrbM+k>jZy5Ct9J9tZi*S_R`ezh$%bStsp6d zKIaB9Rh0YzcRtfMq>o#E5}HSM#5Jm5tmimld{Iw-rsG7Gn>(+QFpDK@(CSze66^9? zMC?uOfcJ(Otn9ssPS}bbXHkLS1uL-YM~MEhDdn+LEf!k{vN`@DJ-oPg-XFjKkI=}U z9FMvMMCQTH@|rpLK9QOeo?C`)Q~xtZWxXH!{(WvbpwUYfm+KuFQrxLkq5SO!fw~Vx zSIzz~xm+dDt^%U(sCQjCj;~G7(UT>!^q_^!rKvxvzeIBb8ZxXG;d;#6x6Ukgj%4*! zgl`eM3uG71IKg2ptADsx6%U=392*wNdJ^#L_#RWdQv0=`C=7z4yqk)<)(KLODyB*P z!YjUwzw%NAb(Ys5T_xo4dvq1|`smlpJ>BIiF^EuJKLGwNamwrp&DH1#ji0-56%QZJ zUgPTD%BTWmb+i3NTM)7fh-E2~Du)FjhJ4laGk7`t6uTp|vI5WVCZ&2nsG&wFmzMQGi2+gSnOI~&2z&!}dW%0FIJrk#S8iz||a-{4-l z!G*~jez;u`Yf?8|Z{ms|S>)A&2ijnxPch?zw$%oCZ->K2CLnr#rx8(cu}J(%^8-@@ zFVo`A!V8_9Z^!97v;jTp92Q%}ExsP^s|$-OSNTNFaJ(y}w8r6K$mZq*I0(;p)99yIK!{@>UbYc^zv-W>SW zk|Gw5leQG^vT)%@6&Y?&8h4lAT zX;Z|nL!4%=zQss>x4@l`R0Zzjb_P~fR_+B@B3%P|-gqpy^qjA+ukl!r`AzTQ$OXT) zgy`*b9i`wdz0ClrK*XODda141HOC0|Av^95(Sp4pf90iY0Y@rf*Qa-m$oZ9gyi~uJ z^M?x+<02;b$+IB_yUy#cwQ>$~0D6kWrI(C`p8+K9`-j9Jajoa4i`DC-VFyY;h$r-s zY7|{RqyPrd9O%1Ft8wX~a>#|}%qmIP#~F~EJ1643e_>G(^mDKL`kN1b+^n>7mpmPp zu(MP-*qN&>`!XHwmqLW=51_K$@O=$ED8G{PkXa+wE8Hoz-V79xW`+0`NQ_m}_mR7t z=Un5a0lAB}x!AAo)Qq@~6Anjhwv_+HT87ptQyPWG?-98UgZViB%Gx)m^={hbzjyPa zPB|4poRL7`74*c>ape2~U&w6j-2&Q=xzowT5M;dxm2iR>0Wj<@wwhl7gv0}J@?wzN z{ZmYS+OYRmaAHZP&q+fotU{qSdDVEi6Y>R3x}|B=jq?{(Aj`*e!*6f~yq&&5R+{gO z9`wK3ICeO4c9%k_b(R{WMAa~sd$hWYV6bDXgLZ`PoqTsMGX%?LMQ~q7sH%pL!le;Yxn#Z9BcN zmEa&X1qeZkP-XVZh4il;>hpTDJz{}`9~*;7vrtn z{99RLXSbA2_C|el19YhepuELZcH0PVbvPOllRg^m7dXM5u2Hjm(|M;E{No=)FTMS< zuXZw~?T+iEz2JE{a(%ep3W(nsR8!sSppEX!bqaeiQ44c%Jp9ti03(3Pkz5$&ZI)I< z^AvmLAIsY5ekXdk_}8lHnj@VjK#EX=BB<4ZwS*F)nCFiM(&M?uw2zF+zVX4ImAh1Xq@exsg#WP&Ctajd&G~qc$#wZKIQRl*p;2XFt3-a^0Z%2) zD`w3@@a{Uy!%;VnW;&U+oy;*^dnNr!8mwVT)Lnj9w91{6z3DkfOf__RK###)?Jb4} z-#=BGqY<&*P4O@mNS)Y_PdED@LE%|nh_#cVs~lWql8Z&a)E_##ns|3p5 z{c@qnHymzt8C_fz2=dT2q6+(l!4U|5=hq>nyntkobq4gu{j8OXHx$m%3)|co!f%)u zTzzYSbF%ey zpYDUX3?p0^HBDI2C?*%l@{kx$JhdzH^P6p8&GuVeT@{g)VaUst0^c6%woGt6WvN?EhE zMk7*M<}4GCJ|%#}`*Nl1?qS!hFQN(ijJCeiE9m*ucALi^#mzSJZ$JIkRaS#zHpP=E z#gb1CRo{+Zcs1+fvSxnm3HgRk3B*NCt{Cp_hftfGm;q~6dg{&@b&4plyw~wpG|-q^ zqeEx7YHe9>OQw7XLW1!JJw-f++Y$~WlrHB%oY=<%Z*8pRBC%CI>%>YpOBl1NR%gD4jjr>WTPqd@VziT{U%!j9b2Z||u8>kUH1e0wo{g7fMD&-| z&@_C}^e%v#Vp}s%Nv)u5=dHzjUO!v6!3}4>o{=1nzE+P_OY)f3ol}0x>D0AM2}(Ug zbhg4|Pk~}Y8C#~mG`uk&ny}`$k~UF!hCuzH;IFV*73^=cIfH(d#lOk3K0?iAaW&_o z`Rrx=TaRa1D~g^PdDUjrn8q)w4?Pa{^jwKz-Lx+rS5II>Vngj|>Lvg%yI=a6oHNS5 zb6EZr@ELc!3tCx7Twirq@|P{NGU(n#@@grD(mUUyVN}jJri4{}vzZIo!F5jGi~as~ z>69zqU-fWXxu%>Ey2t8A(zDsHciqIU%ez+P*89=I6sq3id1Zx9HWt&YWLdqZM6m}4 z*8k@9W5taY)hJ&c_+2GVq9B!-*D+mguJ&uf%5K%w)2ce<$f9~ZLt>GEWqXC1c0;HN z6)9LUa9DP(8~e0BK#Ob?U=EJ(P$eXK>93_x?0Q)_W;9*0v9IqNSf?OA}ib!eJ zK|ONcau8cHy^VoebBeVM1h&4j4{*eChg`@U=TQa8M_O3l-kfBR)1mp@7N zFW_dc$x;c$?7HMs!`a(Iaa)U<29GJ}gC2z85ZO7!1YqUE!>I|CRktag8+To*5;srY zg_LqMh3B;>ZNY5_8uc^X$LeNV)?OMri~2_V7f6*yXQwSvH|&tf4=k^6@7r2@e30Ce z-B98pbF{f~%6f<(nXsS1v1nqrBYm1)cU%6QO zA@dS!w04^o;QrfD0s*M44UL)$pnOyrPE1GDEuaqF-gCei#PW%j5CeC~IMbZ6+`bd# zWMLz2l0$G=ErR=--W~Lsj-K`PSt_P!lRXmy=hlN0Hs%ohR@!F+82BIq1A_^?M11Ow zn(tq0*r;9Zv$^b8*4J>%QlCllpr3O(wI`HD>MZ+#c*s?uM{2W?sB3E#Rh%_;|G||Y z_G&zL*$L0SUA70z<9%)o#-(W&Z>WeZtg8=Aak*NpteIYZO6OUBU?`SBr7mX19s=K7 z-ZNp?K5!Q2!v-?4R}7yX8Zo}7zdLB_=5AE_eu&dRu4p*>aURWo^KG-QJk`H8*6Z9M zl0l5d7?lhCQN-x$zAc-_)HDe=MDC|5HzmJ^ml@a%2>aWvG_zN`xqPJyHaXT@*7$Yy zz<}Ge;z68I5PD{Q3hQn_(-cL0&U)t;xr*#jxbz)WNiSPM*lls*hN5=OI_9-BfbfAp zeqQ9c$}jq(xRbl3UbH!VHGRz-obaV>+kWx5W~TRd+wzmKAc5ej!Y43NO2oX()VhQz zB`Yb9W;fcKRb0C>j4F9&4H-l zkbc8POpJ(lbX+n6!TRZ%J=8AwvQh7|y*F87kGQ64k{srgVQGJCVFrb_#;fRa@i7H)7It$3Oz{2KZjLlcxOjru5}R&a=jCm*Cz5enS?mo9=!OiL zExz=l1KIO@tV_fqbHUI%_!^-Z zS&{7YXfrnhO`n^O4qmyiy(xG!G}lSsUNI$XKC;N@vq%4U_9R?V2D`D&3O?q@pvPf* zStp_f1W&+yMP`EXS1iFDO<;IV9RaD{c1I%Lsv5*FRtOWW=Ef{Ha3&;_k@&#?Pa6X6 z$IctZ&c3K2V;EF+(;O(e5BdpB9RiJ_-|hx_Nc!sh)Y^|VFs0xVS;=ns6?+&DElXlp z^W{k^<)k%sJ}ilgZXiQfmL3Q3AMnzZ`Br3ZDPQQnWT>*V<24VIpfq)Lb?u8&N&PtE z9~KrSEnCz!`4ql!Re$!p-cB|_0p%NtVHmJu3&SqPGgQ?-rfA#-P-X1AB83uL8+P|8 zS#qy%UGO?gR$yO#;ru+<|1a?gI=lQNZ`MHSh^~1#m+$yK8r@pyarGqy9ZkSnB`}KE z3IuLg&Z^RGtmkC5UY%33c8P3(vI#KpaksVu4{VC!qcH!*ANv-%nr-olI z)GBrX4ZNA3)F(#$unRegqvikRqjM*1g{0-Gz z_?y|tJ6^#%29JkMMQVzE>jLZ4{?i3`Em3PNM&DopE7FhMSA#Bi{afj-Dv_}kr1Oy2 zK5yPVT}In8sk%9g@+i^V)7MyZc7R5XsJeRyFT3MmJWbfH)Ep@iCk{h`IDID|Awr=i za3bJked!jbL#XwRpE8LOc`Mdrn95wlud40^6=$?pQ?|;!6K>02Ui^UydK(xRm{VBD z;^Lp9n&1Y@W@2T+2h8OJb?3<(;{?xrbdiS7d63 zDIpyl9S<2AhUfSszvN2pukZPgZrJvIPjE&cHLN%FNmoMa53gf9j5FcA&CM!Z-QB-U z$hcbIts8JliuhWCRz6#|4mS+Gid-=$`^=_@eSBhquFcQSFDEBQBvN+d)rI9nK>>m3 zQiG!20}c)jPdX;#1pl8%jE zyE%iM2ocAV8m1oYL`%FGKi~*!_2{7UAj-U))h1#h1cinDp`n>4@kS3Ux83mP7Y(`3 zv#?n7Ub&3A;}=(?f<6ZOVd{ll^n*@03ACSUzzM)R4pn!_W+_(%{x%D4}U90#)Dpt%;8khO68B=x=^;0 zd?P@0@pD$WHQ%CPEDHXHiUsvyw>XAdxP12@hr-WQQf`mf(ZwxCzM|5HzppO-hx2wu z_rfXG^q%0B@(sp{2`*ce4lhv?!p3jRwIk{0_8pK44w*L9DX$b)-e{^8YZ*wQiZr)8 zQnTC|nJ{Uuveof4QjWauL$5rI?wC63t)jkTPL7FsH`#JP?wYLdQsi*GOnUpAHvZzD zE!N_l(cx?QoHyEnt$s{YwvKv>&aI<2PBbO)aAqhPWhkf78~s+{5W1hCA_CiGC^M-Z zFPy#1g%!3@k6i&*@^~uIBcfFj35GNe+|Rmygswz&Z0orTJReslG3ROReRS&yryDP+ zY@xpraL>Zm6)M|tEL0tHZuNS3JxeWGd}FlTOIama{V!dc^-BBYeJHW>?iGfBuuSQ` z78VxDrMCSBI>=D85VUMANX((|@bJAizF7RdTnH`$1mXd5guEK|w)Ie*O`OI2EuOUHDQJHy?GXdn*+z zHZ8KFa8npFHjEJv6ckl!(z6)6RX*f6XmjjF@4cqzuKJJ2Tz3Yvoe!+Z3kBl-2vp5_A* z$`0~{2|PMv=jA1xiN*TQ%*^CeR7h(Z8X5*&?i&L!!r*Tbcay>+B3x#S&Ka3mTW8G; zPvq2VPa9$U8vbH7jbg7Ec02mO&CN}<@kNnf5lFC9f4Le_`)p`%#Jnk&Ga>)1rz>bi zp5RX_#q7@0%tV>gv+V5bVN~@q%lurFds}Ke2kNyZm)yIdjXMz+KTLUJf=z{K<*I(* zNHNXICQRs?yu~jU2WK2eIF(!4;?p5>fIY*cdgkFdH%%4a2|ZSftA(aI^uxB9$_9ghSjIB^o(2=lO5yPbn) zy1Tk=8lEtfm07SK>izcZTd^b@d-d7iL@X|0WfPCb*AR)sY+P5)p`i~{^p`-F4{nvP zWjSQMJzGX@9bIy3nlX*r;NQ<)bC<$@KPUoO$l_u)m*CS*113+Y+{=Vl3z79%X3<*CWn7i^i^McX-_D=wj}KkNYD+|NQ(2w?YTb?_9lX zxVwzJn~>bNclC2>l;pU)m-N`OMQA;KG51nh`yA9e>zC9Yk@sw_eof6NQ#JYGz)~l+ zSFK)MoqDl(A)zN#q`J6hGB5QIoijLSU@eX+A)y6M;nItx9cZtqknDi6cbfh4=?j4V zBV@@sNQwsnGM^j~ALUyC^6d=bxqw1fl8kGPXL$w<%k37G*We(4i~$yx9j)g}$m>p4 zbjmTyGGoL)lpo&XW@ziji`<*BjMTTb`n@(XB`A=Gdl#y$z;37pKIN}vo&38~@i+L1 z@rdUG+^{wC6HDDYIbM}wzdjL@6=$#?A>SgS?5>9f1R{pk!=p^=xHSfI?vbr+ec!GT zmUHSSs_aV7Xs7;N1S<_C$u;)l#O#opGb0~vd^IucO3Cn9JdY-GC8K1fOO8@repPDON@!`qS(7iO^idNRk^>V?rDc>~E>TUZk2`-mLHddp{U<=! z0=GNt?lmTFJ<`q}JGOQ1(#4g5xw>xrOxxBs+p=+=d;6Kz@iko^9#if~O}(;6Uxq~d z^g)31V)tI&(d$F$u>Jms!Sv}D`yJozR$Ke&S6S<)d2xsy(bm@2S7NcQ|Lvyg?etd3 z=7rx?WG`zHk5p0GoWIHLJln|WlDOAfop%po&0Jx5Img<@rgnY30K0j)Q04l3F+aq% zUNG?vXD8KoW+spBY@3>zIu*Q>(^6iFovB$Cx1a9HEw=gqCvJ^Wjr%b47uLIX<^9EB z$a){J6OjSZDp*1Q@Cfk9%+4lRf{{nQ2e0P-Op1ub&9Y`3i|FV)PDn_IQTID~ z_n?ECQ&K5$Z-0Q7&~lkn3J_pQuzGrWrxGpz{-#BJ6}}W-EfYE2b;zIowXL9Vm{t*Fkc)!lHGI{6Ak*D&F>GYK+nD+JAjy&VL#`Baze*gOvxyBKk zVa+7J7TRLoHD*-Wj3voXeFTS2?)O)4J1CP`ud71*Oqidyw;y<>80f?{S70#qPF6v! z{t6N2uUK)glQXq_YV?B-)N(@6>8M=y4Yo3yJ}bB{kH`Ls*Lu==^i4dTZdGf;?NHfy zGRgaU2kfuNrj}zdoS0B|L0}&UAWu(D?NdISVuUNbQAcntp<+#c)T6`c_jC%LMn|14 zFXC3)QHy!<+7I@Y^o;?Ldp8|)c~-9lh>SKgCQ9MbPr7zQ2J$)CAE!uU-X5$lQ2R90 zWg^x2EX`f%{o|IW?KA2L2Xot<6;>UR1eR7z^H#cd?VorFsfw!1hK{zntgk|ht1Zvc z)^s^bdV@SZMVU|~ZM=Awj6@hlUXcNk;tWEen3PQg(fiL8v5~qrnMuTFy=uM5B$p#4 zsPi?+^tH+ymqYZsU8Cg%jnQBCT$tMZMxFOuG+Q1|d|4XhF0k=SsJ?+&p$twYpg zeR_PZzvh3bs;3@otv%-zsqx+`y564j`8TR*Y{<=_MNDo*MMY|dIAic|Zn(RWvR6v} z_k0SH9?GQPt za)cwl9p@%Z3P!9n=~!1!5B=@iw@u8<%to1RS+}Q{3NFQ8+k9y_wD`3HT$W3hE-{Xl zSg8@k#Q12>v+DbsjGBvXwF|I;?^}OJi&jim>C#drk#l+gI*Awn0={Bh^4Fv0yTYht z_lm1l8T#kS%C|!Dbwb(kuid_JNIE}iSqbcYHnXcubK-P8JeuPV^>+_?yf8J@PoqjU z)$0n+MLr9pm}qcK@QiM0V;;BZAr-p$mvW9JRl1^=YWB02brrWyk~KMj zyG1P4GcvNxjO?3QLU1BMdT}m!*;=+;T1%~7z73m-Nm|Y#nKmA!h$|~rJn+{sG-Rv~ z;*43*mPVX8wO|Xv#NWp`Mkj6(*|4Snzx3_D{&8xfoG%SOn?EygPOTgro(eJbCzIgc z6_4DAkS|(GxApqr1d)seJwqo$g6Qo0gfu_I47XWG>+is!+iyMA3%@}!CXsLoxwIh1 zpa(r_Mr4wb-J9*LN7!?vk)x2jp4e$=zf_ZAm77+o%Qk18yy;=aC};r}5;8NE9WsqhKL8C}?aKp%ppvStvn7xuqv!hsxF6yT z6e}XQHvACUC>YDWZm;p^(IX^o^8ZEBt?ve1-{q8)h<8?=$S$Rq^4HUoL5>=&Szcb& zM%Q8CSMZEcBey%A)}@_g3@Ni;KjRb+o35c#W6(<$wvhmm-DNxnI@fp{Wc2El+_Z3uV-T|&l8$;!-pnw*^cX4gyDCmuZ)v%l=*kl7Y>|D~m++?}&yvyw9|Y_w@# z1A;_vZ?EartCQ>fDIxjD+^0J_`Ex1m71Gu{_Gmaf3&qHd4Ez8F-hbdM%Zbl0iUB&L zn?NA6X`#{e^u=6BD-EK`MSwk56ztcGI_pe39Id8a1nPV&EtR;7@&@ETJXmIGUCP)y z0jDeu56b@jirv@t1l+=J)#;Ro39iHp%D=f_Z*zJ4f&lT z_T(dd9KB~V=mwmpN`W%*!XHbU6$wE-w407Uw4PJ7HaAjFOFf{1a)1WAuLxA$G%vEe z#2&2`Da`P70(14`yW#Qi2L!LAZ}(mo9#E@4o|m@o*o0i&$lh0+R&8&N;S=Zo$KJ3s zek)tYMscP+yh=kXE2xRxeLH}H1~J8|CIDWq%J!ysF;9SRSZsCN>5twgZyEj?s}tF; zlTbFW5zg1Z<@fI1Eut*F617W~Pi+Ujy_iJ}`=b5amq)z>Let&>haj3=dcOx+&S0c1 z6HdWtzukjWku=Ip+S5b%UxPRjDCDp1+F@g3V>tle5LW=fto{95`QDY48DI)tA(1t? zeX!mbbfVhhZjsaNE{B5L4+$>O?Hk#vd@!J$8$BBI?JjHpjlx9Z&_BHeoF0iX_slH0 zd(?TFnkME_WpAeCS_QZ^#fXiozn_$-H?}N~mSBPDX{}3+7msnN6U9{mx4fh49P&YW zU=AasLzbTAv)!=JsMl!b-3bo>F$cPwNZVI_P<=NcAR)J;7LU|^^yHBlNOC9@yA6stUQmjfn=(h3_CM+>tzwt=yWqpsynvxH zR|EsN7$Zq8;ndNVN@}KJ*2uD^FNvi(m; z3OgfnbWj`0uq%BYLH{YxQrp!UY!fM3n>2BtZEET5j{LjJPT+)*tk%(jDjq{UM5|@P%*T3H)dYS)_)l!r$Y+vx~N(xF) ztjkKP@=zhVrI`}yHIe5D>Y2bSw=4MUl6SQGmf&bmBSv||A?eXuFNUbxbW;{t4@5AD z(MhE9f@!+OVg?5vsSkQZw%=evzbSk9^sVR=F+6+tE@Wnezu)R>mE zj={8Vep-i{zTaifQBr^2($&6;`?Au>qJ+d(MgkN9jAC}}siys>@9iB?2dh8$G`;oE ze_sc;)jkC_g&$n+9xBVTa+}mu1yQP?OL@?|p<20?L(8NX*rgCE+GU`@erTTXBBtxE zRHr?ecck1UHOQ}hK_}e9hs)eZZA3D=U0Zpc?usVymF5YGu1v$WHuEFYo~ldh-rqLq z$k%((TPr5n@+KmOrxA6U&h%0jB5R=Rp4=O3Xt-rIk3YAwy_)Yc`@*HU~B_H+P8vsMfhi#W4X{T^m-Rf%{KhvVzckWDkpMOeH zohJxytQh96WpDiV&!!n3(|+gbykkcMoL&XayGIw^t;-C$7n{yS6>Gr|*ZHTKmd7_U_6mvKk(JMeS>CXQ(L}l^G*RnBr zN)bf`r6^Xq^f@o}0&P*3hZ5&Q(EXeg-Jhy2o%YrJQTASS^GZmsf8A&btp89Duc0jX z3S%T*l6&C5mH;ZnYN*=3)?n9Ik2z#BAhTXznJ^|XxxT*sjs)q5YpHE%nLaG`36)iw z8Pw=U^VD-jVeCG@p*KzekM9|nRo>Z-d@#7WexDTu7)w5qKSXy8@KDn9&paAlZ7{$T zJ_0$>aTJ6IscP2q?)H^hdGY0`S6AO#@98UTao|*zE`%M|(=v6&bl|g9VOBI7MWmK8 z45&&MJs}j|Qra?=R8Iiu0SjprxOApYT8N0NY(Ls-;TZ(ctl)efr{xPuD{#iZ&#gj3 zO1t<)Hv_B;(1vbigbs<4Dyo=J$>`f+D`P9GjNFV0Zp7(>y|erVRK_c|{T!Ny@3UV% ze(B}i>ibAe1Dw*!g_X*?2T~93-G6E~i~7slh7G+Rip(RIzj}{fJbJtj$v`b!Oye;e zP?jy^Nx-KVLc4s@aALbp+F{KzBaLFeK4ivw%##Jdb&P}Ib zVP6^T?SrI(Bf}AYP%tgc*cpqzZ8#?tn|<^^NKd`p+9q#@I^~5rjo>BQaxJ`({rIeecISE_-@$c zid|B0Gn@i=!6_v>LU5UrI>67zopf?Vvf-SzH>c`IZf(odhh?gm)Weazt`vvZ2C7)I z)!ESgfEdpKNiZ>|gVWY~Y=+N)nNC_c_4sam+MQSU@!dWgcg$F1Xy)Z!Nk)aRprA4b zUyEPaRHwf^HL`3=BIPJYi!=@b(l4@8WWQ~|9TR~hy@oM=KcJeu(>LnQ5!L{oJ#LT? zc^H5_L+={_u3UQ!8kq4UdXp~`%XM|~`Y|JTTl>+BC+=L0#OaBvZ}QBmNc_vhmWbE#k(XqnF>o21jZ5?Lm`JYQlfP%-h`%r(8$OYobfZ{H38qaVmFQ3FqaV;JI1E}bD30VyM2i6pt@ zd~M6iMx(7K)no?|Ln?zj$w+;$Ir*{+S6U|g0RB?3$8ofWs$$2SdbsMAf8E`&_&kxi z4Vdn(oGlh1Pi=zeoop|l^g$Z(PR6oMc1Uwe%fWv|fK9s0*>Wl&PdMdW|KK7mPw0D% zXXz8kAx0;RPa;^|mCpCB(lOlc?x{1dksbzs)&NRKz7fn$?8GdOl0$+$g;T{pbxQwT za`C=vnt|ny+BY~^nvB5xjxh3GZKV<*x6i8*`=J~=T)CCp8OX%N&C(?do6uZ%P2^E! z##+s8>Vc|Fh@jZRJj@D^c8L(zu=|oE)8%DzAp<^E>`cfr;EP#E0=n(F_k)bYJ!T@P z&9aupWoO$6sii~Hcj&9?(}}~Hb-&%i_d!A|dFP1Vy#%$PHOz9!>ryyu(3AW39qZba z1FBr?A=8&p)Z2e^eo3Q7hjv5<{f|a&O7+9T_W=F}mGN6!Tl*mxIV%WrtqTyg34+Y} zPZijf%&x4ht!Yy=@Z;m-*~h6O5MF%}o>yKj<=QM?;sa@UahM^zs&HQo-UIeC);jWu zVzK7~?|}$xcJ`%G+Zzu(WjC))efUH%c`3^kIZE7wi~qx}1|`#t%mM=EPMS-l(fcE8 zZEQMmC%se-R}HkZy0%flrRI==)qt0=z*t6M*`JayfGYq9#5V?+HZ^*W*dow&m$`(D z^z}KWd(S{p3Grhje1lbVX>)Xa=FG&aBkFh zrEjwktyt<>TXf+f-8XQvI69S5ZyR zBnHZUNzrzu9}HmYzxl7E$JGs{o@A1hnwHhi77qSO#3y|dm-2w{;rm358OKML z19V2_%~~^Aj{c?1gV&4JU)t)H$i%vBrU9jHC`H(@M%E^t3AwvsYMk)C`h?A0VecvP zzrDNAEOyFcSOEqqO~)aE0xp@*dza&>zdlcvmG;a;aP}w0g^Z}8Wu0MOz>3>u%Sdez z^5odm9GkNE_vIrV1NaP(35G9Kp$K&~sBAB8_J!XzPiS+2fs}9M7Mk%pEdvP`U3s~E z?GZqjIi8cJpiV>B%UwpF@^!Hzf9M^2U7Zf=7cSkZ;K%;xzyGe{D;3Ncyas2H@Fkd) zD?+hlD>=4|MlPT5P$rb%N|_niW=fSiG}9j}$M?zI+}$6LfkPL#_PQb+vf-tM7?{^k zlJ_y`d zxexnFBB*M_XMGM++XF@_Zwrt5Vw>#xh6%1Wu#7HyWANyo^4^etHl?`v6qPYy0~DOrAE{*+QaIc?X++lKCXW>G>4 zSs0SGm5^k2J$T}&g0PHKtWR^dNA(*jnXefSoE_go?%I5k9O%5bf9gL)P9e$SykRlEV+$Q&R<)&JCrLA=nw8WM@B{A&RgtA({2 z%vpTLxu1^gcwjhJL6hI^rMUlMngCDy(Kf0R_UX^tE81jJRF+W~WrfMg*H?g=A!35v zbKn#-XsbfgOame4BaMRI%5qJYp;BcC?c*&^P6CB^((Cdj-DK9rAY^8MNV8hk=LAZP`Ns=88l0jIB#ucCQ?JT&@UrymxnE zO$~0-+avpnA!G4Dy&%2khTMMXxWBk*1Nn9X@dLgSc`p{qF3jo$wqI&Za`VQDk+9)G zgjYJp(|XLMVlctaTz2UrlmLo(H-1{acZ{yTacIf4uDgDiJBf4hujz!Oplg2mt^-kgpI z(yKJSOg+Zp2x^11jg1gtXt{`?#S?1GV+=PlhF%1F-!E=kbrI-en8q$Ni}Q1MtlSv7 z0o8@G6r<~<2$QcHnGtF+1M$zHafNcg-hQ{?|-cipY&?!A3pz1%@dho2(IU+k4?=@DMjhAhwORE~#G+JoUQi6;sF;{u=KI1awO`|g@82oM6|GnP?c9DU(?h>BBZGh@Dk?}17Kpi zTddLtzUP|EbuX`xZ{$D;SOoPYh~gMEz(=c`J2zeCfr93H5t$M-o3Sd7RpNB**J%59 z((%HSFg=XX*cC6&zj)(!iu4YXFKG_s(S+v1Pr%~XZ2iy8yiY%_RT6fM=mhmyrRh~3 z9G=3uZbrjyXEfq8UTm+GAY*Q-9Jv;vxE`zbRV^z~k=ApRm|?2ss>gOon-iERaVMjY z=1S%5ez>r~j@@B28QZA?HR#OVzyXCqx>*^4#cbR)6^@I+v~h<4*bxZvS3ERZD1xX5tTS%AwkYf*FFs4F);TaeTs z%2@x`N7(%9BSNRnU}noXl!Bj3jfr?<*B0>ufm8O>=IWT&pK|&l0(9RRvp7_Qb;YZ= zTI$ix!sCrajd6pRzvz7V#>ir|8W8VA`C@*pOU1v}B|Gu+(1LxywJ8h=$M?4(v%ByB zdi}z%*N3;niHEnC_l+>|Yi8}sLVE8U@>tz{2d=RhqY8R^e@7P>p$_?A&*JF9Di6}2 z0b<-=LtV?H{y%js?{;7~|6qJqKa_dzn18=RTX7gUgD|}Df^tCa#$ZKcU6$BUCVzb6 zdkWzq&dYOaEP<1J5QTI%hld6#5#fDFY+c%J?+m|tcvG`giZKc8mp`n<{8YGTMW%sb zuo(qR>pVdrw(uttm<;-?`uEH2o^I6n{Ou1yH4I>0TC97~2(Z4TPx~LomSPnr`hNm* z81=weyxQ<;I*Wf7ts{aB(}4M^c?9MCouAL|)56N<+pABN#DU~lTNFsX-0u%)L9W&% zW}b4KHdlGrAhfwo{A;dvO5)X+TVLvNbiKSbqvxJFNN zVXp87|A5Qt1oN=j13i6_SG)e6`x^0At;w?3-(1+10s`zVo%M|rqDKgA$p47PzqbJk zUPJBuVzH)QPX-iwZR)^!CP9n*_lx!!rS=|fxO6NLrzXpaO8-1yJ50W{t&Jd!K+{H~ ze+lp&j6pJACNo`Uh8*0nrXY^IG9h=1c3eTk%5|mh!yy;v>`Q7XI-5FaW~eit2QUo- zZ)o~}E$rv!;UN5@L~jlE+|o4WXUswuKx+)kvK1MIF}E*i5}(wVwYgJkDVm!{kzoQV zCqgT^x8W(@Haz{|R{Wnaq@?-$R=t(@UDn`!iHNhN|K|^O_Db zU4)MAR29KpR|Gb*+h~2#jCcMN#f5)~;@JQz0nMRBvCmvBXupbKoU06;&ac>&E#c9N zCsPpW{IS{p-xK+l+VT1wudCMRlv=W?ZNr(DmF}wTRQ(4so-P_WQQ_>I z%R6AaD?vMOAZ+;kTw20Ea%s%1*`YU#OF!-*6^Ks_H_^bH%O#H9)-KZT&r+K4?hiTXWyk^wcA3>jUA! zKsPd&g2_k9(3a76*IR~N^;5%xnC#zhR*8ix4J0@=Avc-`N>dC8z3*K>67m=f2Ja4^ zm9kxCKj=GF{Rz`mY{Ty#Il^L_@l8G;_(@983vD2rqXtEKfN)tb&4;+Qbk`6iiF)^k z{BH~g8Mr1s7j-;H47?ZH8}t##IaMY@w5w*|VZv3d=P`rDDv@IST5UWQPJs^W$kb2b z8mQoeIt%9MK^6{tIi&vi;nVGVK5@=QdUnKo`pwwRG-Jn3ggjiLX^ z{=Sbmz7T-;1X&e(2nG-elnr2uc9N$>ks0R{L>{t z`L?OVisf3l#b!i6S{*nA@{DicNNhjw)osyUWE!d4VsvBwiGAg;+SG=ypB45G1(8T^ zWi6V8Lsata?ysh>&rWDO{kstzCfo}lP|FWe1qpK<;~o`;#q$mP{1k^C;O@2!-lAcJ z(GQipcU1rBK=x1&w)1iuaE{~cC?C3Cq`#KuI329HK|u1g0GKndigVtbt4NK2M>f4I zaRpU%^=Bx_>)?O&==WSAPCEe~;Ijdc8@Js)h@%4kwj#q80?v!>6$W0)z)O8z_H1we zwR+b0OAqLDUZhv7R&OvzagE>n6!lVaq$ zs{J~UxGt-PloO%gHWuHT_YF4lm>1mOMdg2P&}75A@=YNm=LVck6&4k_2--sIZJQA# zhsCom!Vb)VS`CoQW&N>@`Nl1u18?m4?8jokBCI2*|5WMe zVGWJzc31CwGJpLk_vLr41a8-kuh(ne9OjfisyFlI@lpA!J{l(t{gkk`693#uANW@l z>c@2J#Xhf$`PD>Q4F&J1>!WHqnmU?f%9N8~6z06CQbaDjJa0;D?fs8Hpbld$b$Bkx^4^Q`vrrAzWDyd5*n>WSaG&dxYX z;>=olW|mdDq?7ZR9vB%JsRGN!LX0CQbXe2`w!mP{KQp_(fA14*&B>;y3%Qo*s|*v( zaRHhRXvT6E2~HE>Z5R)Us@t_2jrB-z9kzfwsJ0nUR0v0?9%s}eq&>nhsbgf;jc zGM2qjTt(|{QO=Ty5RkY)9*Z!N>A>vp{n+7QP`a>QUAAdCD(b8FRht~VLcQ}JQDp#U z$@j^TT`X;TtIPUqz;3an#qg~3+Y~9to2Z(8WItDB$i~_kOzpNT_yJ?atKBMC_-5HT zBQV-y)?>O0wdcKyF&7b+dZBEk>{hp0CbF8yOY8;Mk<91@2&2NYI^_grtDtx0BHMm> zVxoSIq!53@p0Db+Ca1geaxJeDS`4ufU}}GEg|Os4n^c>k80hTNwQ)AaNwTe0_Vn|a zw`x60^+@N5xd%xZI#3NPt=&!4K;wIDJ>hNE_gF8=p_4TkbvwYU_M2CYnje&BL*&#Bpe zT2QPWbZU+jXUcF!_)yGM3AK7km+T6!4Bt+q+8*z`4Na8JS z&0j7q++FIE{bhA?zQ8UOdwA}hwDP`+24j(%AObCWD+AuGMqMy}psQNcs|`f=)t1yzAWB_u5_uP59rHN17;jsp{<`Q6wvvO{7Y?(&Nm8kN6EmJg{wiv6jCV1ID!`v zBwcLoyT^l=eOb&j@q%$5S|)|^ZQ(rAg>AI6PV$*EX4i@DM0XHCLg#Mu^FhVMJXzCt8Xu zZUF@$slX3U0b)XaX{oLrph)=!FiFklj|Ix>>gwJKls8Q}GVH?W8ns&sC#(ZnHEKtknxV7Q!VnxcU=Nk3_GWmoWo-8?RI_)GHhJ=YoDV~8V@hUoH~_& ztXH|W29(#OdRH2;dt-mVt){jiZ02o^|1c@kX3gmJ(b~!vv@%dY$anrXy7YdiLXIr5 z@2t)yJFYES>~KK^`GHbAmf@^FS3Z#h=pqhyjM14R=WnX2|H0DmD`S&?76^XKL70pGyjNTM*L-Nd`#Gs!fB%2>v6=F> zEZF!NYD~s%Z+~_U`6X3ztR9H0amas;{J@bai`lV@-Oo9nA@EPO}m{_Da^Ftsm> zCj;#n{Mu4ggOzL_J$j|Ii$lR1Ji8p$U)!T97c<@z^=8sxqB&5h<|Ig3F5dxwEPL!S zSB}Dg*M|RrGWB(ku>Il)P!c8zzK?tgz$w}D2kZ#{ec`Q)j$=_I(7SCp`&1HSq|aA? z&4dd%R*?}if8F~a8{7W9X}vQk&Sh}`Yi?Q;^``aNv~UPaIhU1%vocR%JygT)K?TpqlG1BYQ-g#%YxNiVkauHZ`^S*JW_Abxp0yrl1d(1FVYk@C&8DSy0yOW$md6_zvGb9EPAqaqN% z{j;>J@D;dH(0{}CETO)$VU@bEnLSod(TH*`Q@>RMts+=Mm?warHYdoGrq_JY+Ngso z*LtcUlX@refx(Ta{E8{1y#9Hay232W8VSt_b4`l^U3Id9%@$8Vgj@ZKnahe%&I64p zt5QeI!c8Tlh7%e~S5y0zD>$%2p;Vnvoz5t|mSTKHL;j3`^CA3`p&eW!7CnOKx+t?% zr(QjliI}D0@j?t?O4F>z`gx;}k!pH#LAsSnchZEy-IPAk!%m0uMZqClTN^CF$`Vxz ze+l5_oy-X4-oLkTwAgn~xd;EX;$d2Xq^4^kDyGe9(B;F-HE7&?SPi;zt)m8CJ}z2= zuOK*GVc{mX?zk^`&FaD?{;X~<)M+CM}mGy8Z*6t90_ zy{lg4()wp!nRDxlsj|}Lq|&Kp2^-Vq{+9`MHM4c>wj74Vb|%H(Z!DCN5Q3+aFO%SA zEFUW%Lz)V!IxNbzAAzG_hUb!X0lk75kPaqkXZq+q`E(qhY+8|Iawt4Yo?~YVIxGW~ zwxJ9bpp1s~0N6Ndm$JTi%cs4-lQd|Iy#BqvEi*&J!eatFh4zORQ*_Ch)JS!XL?{*R0c#g+{L_b>R-Xk&#W&`vZk?lu*2W zRRe!gjD(N12sZCF>|{XErD4u(#5<`Q|IAP`D*XRqhK}63tmzQPIn{O}Qh@bO$YQ5~ z=n)S?$3*m%4}h7oWexV{Lq4yL*fSG!qF5vMTiOGti*bKYveo_YqI`;EoQi}CN#D8b zgshG;X zX3?-95wE8(=@8Ys?08OFhb0)@SDGq5z$30O?xp<2OP=Wc3`nb%8*S4L9pa_j_$L~e zS5x77Un=4)vwwrf3>L*XNl55ayn>k~)#1=gnB>7!@f1Hoi6{r73+IziivWUiYV>lD z{ZzIjR$aMlwC9wWOo(4`e>EI?t&zLor`VGYZ7iaFqL;|21Y8GajG~NxTWkW|+|idj zI_7i!&Vc3zI%NEAh(DwIKgX!{ctPI~OM)l{KTE!`4GVm0G}g-~UB2EIo$VpzyC$)V4n<`HLoJ+-Y{R5hdHrETvYmyHB~X4OTe z)Z1K(#dbX_T}|&ay4+$X#!;x7WzZ{@Rotwd-h%~Tr|UDfsf{i$aB7Tf7g(TBHw+e( z&Kv32R9G~f%aCYp%a$#Q#Y|{x>fyhsf61~vRMv(hI81R-qCV)F_eq&y zaN5Mqgx>y&%(8TYjL}Zn>@0I@tXNBauS8~dzhcoToXcA``Vy!5AKf)BiI|x;dRxV& znvr7{44h&c%?RFHq58d_)jDvRR2}>!IJFe-HSRAul^K(oNp#hkF@0}|3pu&juPuax zre@8AJ-TO^v97hVVOYVDacN!9I#VlGSV-Zlku zb?pAELi%hr*48uY*<}?KoR<#{UJsCsk?YpP40}IE9&+rFu^`7AQH9_do$+S;ts=O= zPlM+`-DtJg$msalhT`L@Izp`%ES{e!Y8fe%wxJ|V@dZrrM<^~!HZv8OcbX}kB>Chv zD~<)>PxtCMWiFp5C-uh1_`F@E$0YDZUB)-Jy>zAtXSlu{oN*HTETPcVsE_O zL{cyNM2zzWCcgMUo{;J9n0WiB`xPb5F^>I&5($f#gZ$08I(W&MwGmH?KbM;eI+CW? zA1u54a2t_mH0xYG#%d_oBw=LI>BZHYLn=-HeRwG1T;u$(jH(2=*h$qs)1P@N0mc%S z`C4A$r1G()=A~Pz4&^GF%Ojq{6So;Wzr9#UJ{xqyCWbeT@*$w|GJVA^fuNPVH2rWO zogiwPL%L?j?ysF5hg*0jnBgE)2>#~sf%Bv-`bH}w3>*;kyzW=RW)OXTGkI@Q@gn$9 zlaBYC5GZD;K)@Go>J;c^UF2Zo?IDA4%}|T}IAh=Vp_g0@QPnSt|BJBqfNE;n!bW4o zipPpaDJm+02qGd)$Wf1Ap(q-PQWOLPq<2CH9#j+rEJ%l_G!00R8oE+~RHYcHL0Sxu z#1J4rNO*I@x%a>Cjq%>g7?!~Z$=Z9bHOn`@`OTAzM1xB})$`4~1pYhMK6)vg>tJ!E zx+xGN_E9e;qVWND{JL@BENE#_#A~K)ZDkZoynIaKp5$pZ(vDK(UW(H^Tob{wr#Q(o zaMv}XF^3&XiLLbqX-&7ywiAJn^n^lCN0Xm8o?r;-xXkH=gsI(Rf|>UD(^_o*(7}K@ zhacuT?wQa=mq&SPqU$bpG1gPpFDWI&fm_@Y*o^bYP0H&T0Sc9 z{DGyM%w=`6q=#tqnm}zIuRNy<3&fOZ^ixL(U7UkY&_5)mJFLdTs`e&%t&4WPqyjfvGy$WEURup^!vAc zdDrf5+hFHxOXH}`N6P~0t6jN3N zmN%|>>$X2l#+04RQ!Bflay_?|G-MD%R(&z*p?g6w6We{Np`bRu@j@(Ta9>Mn zqzUWHlX2KQU4@wj0w;wp0p#hCmUg@5c}1x>>zgz4eMbt(2i<7XCkbCnvd@qfRdVay z$i*%BjxTr#I;Bq|RfX!z+}*~T&C=5qoDxwkG0S22uIrn2lmBq_|FGbfX%y)jP2^Qia2DEhd z!*dS5bK{imSEv5L65Bpn`J-B!ovYru;>ViCee~z&8XS8v8M{^m*!}a(gIj&ZU(Vf) zhkjy;rG;Oy&Zw*btFcN(l6D}-KXOYmU%}u zmzG=YF4dD$@xSsjqqjsT=u^j`bYeh~^5o;jpwSW*X(PZ8^UeT|s*7vPpz?wmvtD*t93WFgzfZoC{UG(T?)9 zD4jH!m?*hNRDh`eg-F%+&z|45s)8rIw&d{U?GjQPC)UMP#u(bKGe-pL?nJrm2HK#v_BrUOvTkWJPc(Ka&c!&qdwSsbh~Qn;75^gR(pkQxIQ~{qJvy0N;@loW z>rb(kPcCZZ-Kf&t^)n8VWCOq$fr1S&Z(uD%8peqwo@=b|?9M^{#l z(9Y)+i)yxL5K^ERoCuAf=~~q*a%_#<;TF>1LQ`TM$-UH62-TF;buSINC%{G2 zJ)&M)S4DVm#bkeB^GV4A)n~qh6{}x<9Qks;IptOod(54g2 zR#fxmKTNhfzI)-POd%Jy%Ig^=0rGu_K`lKmi3Bl#bqEP8xJvD)Qm938 zg7Z)=*OxH|(HFN558v!4X9X?B1x(G!U*MKaDA1ql&;6YG94*irEC1QrPAwlA^Jvya z@3IZj;Qc0RCiTy^c&DQGELi(}b1s+Fn6X30RSZ6-#sy5+TEz5oKjC$IM6@47yy2Rn zG~wCNd*ujRw&EY@D+0TAu9)5ZPb-M}TwBv_le;cCee`n;*)xS#eUJ5{PDnb7cU)^j zQt-b>PB?5sa-mJGSe>fdk3m(x>)Aq~DeJ04sK@HUR^n$Sx}fND5H{klX0+5#-VfKE zt<<2BQRs7@ka)7=4G(q?m{nwdkRQ=j3>;Yoc~w>`^xk|BgvRnW)8{G|UU(1`BlIi1 zMvk@#X-@ro&i!;|en3g$VkLW$df9>(!@7h9ne?<)Q*Kv2Sj>zaAh>>{V%_KHbH7Q) z{rBswLUFD>=m0&HtSfqPCt^;?2P?cCgW`Zz+7_8-`Rhje`d_Y1cRM3HHq!0Yy>GZI zf~&&OY+>g$+)1-5@+C-;I8j3%PH*s+ThL@kbk=gbw+3ht9&r5nDJz8yneJ^YZaWll zGS>!LEtg0K0&A~0EAU5)DkU|BZxUVvj2Z=KnEmM9tb|~}Yp66aYHN?5yxSY& zGppR|d@x^8Es4TA#w8`BmD@bODaCO$rX&<6>7@^;ta8cx*Vw+^J$fu{vDIM_Y9ggc zQ38P(OWap%*BA7{5IUW#$?u|L@C%P}&v1!3r331yCT%DxNVkW4N;qj9=q3&Z#O_p~(r?{cu=4t1#Ccp3$RnzUlXS0skXlQTY`MF$yqF23ls2x{PBtP-gg@71z z@{q4sku|!;vuU0*;Z>?=QEF=@l`K3I_wr`I!q8Tfiqo=>7rwBG9kq(3zfiQ7Ueaog zo>Y^4+iH$K=QppPpqo8Eq@1!*MDA&%${1E|xBRRyit}xJTI-VBl!25;QAD>RBeGls%Ln zvoe~*M`t09zSrNAaVp#WPPfD7+g}Q5Wof@;9X%pnRo=|}@S!%E9I~HjSL<#UWfi5a zP5#on9WHA4yF#O?vaWjb_zf52Gc(nvoJ{*& zpF6NjR@y5V_t+PB72Mv@3dKfc%wvb+yLE6*J1k?IyFJrGw&uIvF68gx9x5_>*vn2T z+?>w$XMpr!$ZNYwY6OPde=_+*dWcsjS+XHfQpi(RMV762vQagT*DF>xJ+N=M<+)vt zL-rtPNA|^+!2OBwD;@Gpl@#DM_8D3b5n(C~B9@AK_RFk|d zF!`=A2FYDw2nbyMv7kVyY(|l?xiXFa;AcZL`qsUu%sJ1C z@BYX`{skyZ5dIUU&v-wg&JIg-dkT*>;40bd>I~|1)-oo>gZ%R+kGd%MDTJQ=^fOp< z>di7lRg;iGG*r&DDFI%UqX0%ZD39 z9sxV38jSz*){Q8sn{&MO{|~gm_Bu%vTFz`K<>io6Q4QaNAB?NibHe4-A4~7FuPwsF zd6j0=j6m))8ztt7^JIP477a1I$l!^?UE%z@EE7un;nRi?JW%}Gov;b=y6n075BOfq z))TD<-5Nixo7NJMt;K5$KD&i_+7Or(>rP=yfG&2!v@zsU*6MBuG}|X`Hm0 z&8>4I0c$51(1XTDfF2xu1n9xhU_cKtf&o2ncm(Ld_#;3M#)AO_k}&t|#K7~NYpyOT zXE;`SS8x)my(@Wr)!YhhdG!|mfmPKGStOg;+z8yg*(dt`ma}wyykEL}e(x6I;`Y}! z7D(6Sw3eDvRBkCxQ&Kwk*_E+~VGEa!xNGjWI3-lcZlp&9@F;D0g!w-D3tqoEPLPO} zs@Oa;!C@_^F8xG<_nw+4_*H~IRz6R`t18KtKdj%sQ7$ww?C?PcRs zM8Aj6njg_8Q&52m^{*ix?)rvL?tL8YdZ&T^qK66fd@zuV`bY>I0Xa46(QvvmB;&fe zBl)<2Kz63BpTxP-wlxvt>+;BH-|k*dN(Q(MGWGY`QmtRYc4&T~CEGuk>%Bmea{Nn*h}r1h#Q zF-3K;#p0rcvz%jLB&WaGiW*<$p4)djL~$gU)tQubaHrjiZ=rhoky7DNMONi1y0>{{ z&zpw7*Dv;oX z=|0M)fBtSrPfSjl7mLteoVJyV=yZ7<@Jp&SExKZXYdIZ0lA1b2uAH`LGh;1~ptxw4 z4oaaBI!3RwlAj-=TOJ`o5w+@zfj?db9kuw(9>`aHKVLL{HdQWVk15v@t&(L#uRTZv zLPFm5NL9SRA7ZQHszc0;(7k2G36D>|)afN+X`CVRtR3hYATpAfWV{dnRh*AM%Pvxl zq~xrk93vWIJk;w7yj2H$n7t%Y0k?QMD#G0wFX=`MNPaN|0rA zUBV~GO1HZ?#h0=e@Kte>qPj{ndJ64VW{=4!hxkr0s*fHKu{nLt)KH9emelOVYAoQSI2KVyJ?|aX z*pggQn8;O1XZFSpmq`~&IaSLtJUjmX%8AnR7l7~xM4$SZhr0&n*1Eia8t&fZY8g*z zCVNLadVWD9#iDd_r)2i4^<{Y%>ef&RvoYFfjRZCh^i|op3x2N2QX&ERBI-(3WSfMw zNC`jNNW>$y5Ll zt?=pBEfsSW*y&Do9eLVAu`4Qnc9U7mXlPapGbvOGNJ>+3BD^j47Y93*H{lIttLJ$< z4af(IVtFQosxYPZ1y8nRQt=?gYpA>QS8AwxO9}zagt23@5=++3nAbrI(ifBlGU(|={{Nd?EySHbMj#(^(0}W_mqxR zTw%hr$}Zl^p6@2z}gF*fz2)TA0CNMx1Zh)_YmVuaveMOm^hoxi5veHceP;a_+6Z#6?_spxvgm;}}D39k}3ib#WEet9HV*tF6_guy9 z-rj`yg$t=O-Q%hsDTHseN_GaJE(!6?qfHFWahhBAG(dspcub!T(P1UqC=OUW=IYtd z#s2>TKdgX-zQ=b`Q?~g3s%EE(wc_fyWEm9?Puhr*1mDMRh+1)MufM!dztwM?={ij$ z4OR|L2|-z9bT+KL7m{OHNtIY%BANyZim#A_w!k+TmZhP8QOXL{MK(aBC)rMJzMb#w z8nEkA_K(r`JN)}2_L(s`&#wvm?>RZO}-uN#ny7%%o$1%gm3IP z(deRgWYt2f-aT%)zg*~ar`XUW+uBXYxA_STJFK$O#q^}XrB~h|kDLx5kALFgw@QP6 z1sJ4x)$gbCf}RgeSA6E#<#q}FOm?lk@wy2AhAru6eyDQoSfs%vD*uOes;$PzddbE4 zq9edUEgcKNvr6;x^RKxrjw(OITbpp5kF8Kia-*h)pkrhNK4XyM?iwxW3NxbNy;fA+ zeq7lOF@nY#!=DF{+Ogn|3*Xnr)QpwOg<;gQeEQwB<`s;LjM{-fdBe=?!!h^@$<$wq zrsn1?GuScC>iUe*!+Vy-zYPTLQ10uWX~930XZSQ#Q!IDNJ}u#JB&fWK?&tkO?^r`x zzVeqgC};MSEw`1a_%4UoGZ!(pxT_@QUFc@X;)3ZdPcb>i$68t)H0Pg~-RAE0mp{uy z^dpm}qE;~x-vINq|IIjZwwPZN^MkotOwo*6w>uIEFfCRW(T-2rSVq3uADV;RR7rmE z6d51}FPFE=zcvv>3}m{f=urHptaAOxH0qrDziSDULS9wu_6yRO{{3zoM8W^osgWEk zTcu1TZrZV8%)^J<>{K?do4a9G!}9$#=fBOfv$j42SFXJEyoPEG+(4vk z_kPvkc7_+iS-y~%*=|YqD$TWLnx2b2Zze(8*@|t^LyrKXTaP-55ObdJlQ8_m5rfCn zEhxQ@B@S=@CH>bwguX9T;W4Lmd;vZ{p!c}kN0$0qnz~P>QmTKoj8K2yx|RF5YZiI_>U5XJWBknx+D``5r9iUY ze5aRuL`(ceQZ)Lgru^~;A+$SGcqs%fATKXDV+nSgW zN_bv^G%LVMZ|%~1GocLK;Z$U$glaOA%h^c2syZPK6NKtDzSq96U!J`Hl_ed-118)p zH`fQz%UgPuf#s%dXSkE6N354WY?f7CLkbp%(pW)v8FP-YvoBxS* z5P}}?+49TE5`Z}cmaw5^2%4gS*EW{*AJX2^X$6+!GLdRR=KZMcK@|Bilh+9nhxOcy zf0@V?7I1g3oXU#G`$c_TiE z+u#I*c?2~EYEsLuUa5=UoZvZLE4X<{8hT0)Li)trdF)lqsF#m2k=7fyLLgWel=g+o zv*PWFid0y_ZhLKk&>6kR?BIPP|MF!$k^TI7c!?iw36zPk z9Bj+g_4`{JW$_1}O`lGmC0Uo7v;JO9?P1I`ongp;A;E4q)ygy8H3K_pnHL_~so0h6n1IQ3 z=A72v$nOg|b+pLLtTZ+B)2InhTDl!CNi)=<+V4@i@@#>k+Oeh|)VNy; zclE&h24Jd&IEyK;9D75FxTBF=dGX*9{*EQL1&atwMxdU+?dft8-3T%6!>3zURAqdC z-CF(gI1oyZ_~^N{GSq7CokEaESkJ55bg&;F`<fxjpW=$3iciO$@W`B$2%}~dGVekS*;Sv13t3{jH#x<>mzUYkb^H~g( zis?DY&&&LuD+tyJYm%9`vGa8HH6U+#<7Y((^Gr`J^{R6z+ zrB~G;;#mg%e!r14sjUsFh!qT(VD(%bKMEd>^pK(3xhuO}Y#J@4W zD`cMGu44-Nmdd?P4Z2!zY`7cW8|fsYLIm7ectNF{Eu zt_0T#hx3$yu*1z==Zkv!JpBi9jXX_>SuZ*DwRV2`|6esA9$VWzRMSrArI$ z-h$4NGhFT})Wi~hRqyFrcX{uid*7~ymElaChHLR3{zS|kpb-E==XTM~ zd+pHN&bd-R;Oy~5^dx>*uq!`d_$xF}IlRi0-3&35%Gi>tRscEe3o(9%nEey5T~j{Y zIv(w|?QC&wo{}vz{sB@Lwt7HlC!_L61DUO&QqO;<&Kk14^BpmdqGs&MV)#~|t)i4e zSN-wl|M}GCaG!0&zrD3z{r4D{2fdBAXCQil#-!&EuUTKnFc&Tv zMq+kLIVhnI%PiaF%7mn~`KtB9pv&Foq+iao$@??IMwqp8l|kCpD$AJcp#bG|s+sT>;kZ2LTK zmmirCX+9D7=^*Us7W~T09s$u&zB}NBbyFULYuP(zplK8OvAJEPiGTF-M-1)ks{=o7 za4n=m8A%k<$*jaSO*3WT#xqRTZPC`rf=ocl{6dd&%|-9TGt*s>s|Ss29OW-n?0NzL zjn_29^q)g=o7iwrM_(>-F2$y1Vj&Oh)OHP3Ua?uMK`orzKWq07D@fr!*D#}Cy9?4@ z1_3f~Dh<8%Nk|F#Rv6(l5nI@mFTXZRYI6|;9`EO`6L+lmWViFpCs#NAPHf-k#{-dS z&6+h{N9W^(OBmd@>*~Z)9h2&AGcAC7>QioAYwNS8)=PiVq(L=vyzX|aC*IceE7?8D z!Q>5P93wc>s*+bommTlc=eagNmdw&GnMm+4CHJX6;j=iqH*G)-yk53LU>;x>d;C6D zeBh3`@F%if_b;SzOD2P<1rkO`U74&oP!ZkY3D4yg8#1H@Di_F_7oNZ){U}+l_g1DC zDZU7T%&)qQgDtbFP9%LgX4BXI&dKEgpnyAYSI=KLVcTXcnh(uuNB>e~o|eAO7(bwz z$yW!IbHo;;Am>KsOhSamOI(e|x{K}6FvCOt-Azh>XlsdsNp8~QUy3Bpv_G>hl1D_l zvmLZVT{W6rQw{tx#wMG3^%ZyTKvlh6_OxI6{x~{O5agWAQA}K}Mj~m3JOifs zbhS`FmQa9box7z}VvQ#mNsfOwLJfbzcxveV@}Dj-;M}z@IR)PDT^Jhv96sW?Yw=9> zk@Hl&iR}0keJNolg~plDnjA|ub+LhQN>n&ca%|U|j>*FOON(b*+N_`UaDCOinY~$# zS?c<3Y3ql?^Q(I+!M;3i{d?T9isY|1JTH-Yid*4I_(}8>SE}{B z+F5~}%M`C;i*8z5$~4mX*b-^rmB{WkKUCzX&0e~=2_eGhmW>$UtO%>WF3Jkb}{XEC?@4<{ImK;(X~$7YrAN%MiS)WXI3C*SN`!s$hSx` zaKVyr``dr%&suEBIGe<=U*x;R@RaFu&rXcTj&kDV0vEu&wrJc`Z_G^GbM@#n5|hSE)%lnx?e3gmzjp;{7l>6rM6PE> zqZYReo}HLF)|3&1@JsDLY}QCsc*cQBT-lySRM!uWCkjvd4Ea=I3Vh2s(kghtApR76$ z1o`&?5-gyeTLTYIH?JbW^hcgvFYS7+nWtN$%7wfnNs?7QWrn&Xn1pW^Y(4KZ*WP6D zn06hrXz|LV=Ux<8zAs`_SIg3HcVn_*zs0*T_e8BtHzM34Ti=)zX?W|6wA{bG^*14Z z%jy2$xHP?L z^Rymu?C`A#)CXvGfi|g(!zZ$d42c5H0gu+BC7GfLRd#PM+2?Rv+?i>HHus8Mq&E(NXe=vO+OtRG8= z{Xe(gj5d^Vn?{WHf#yAgAfWX8jP5#BufP_|ZoG7&Tp{`NDi-H1FM%lh^P={eP&eg+ zhh3k6SO5}H#GvoQ7}2=0EVIDssE3F)9Y2an{ZzW zGwyk*w*r%9REAGUToL$EYbk`wkjXKptp5|!R|CS_(72}K*`6i$px3_Oqu6TZUU;czp*XIEh0q>K68&?Ia;SOZ%$mikahpi6M06J-EVkpIAyL z2}*$k-^Aq);(X3b`vFts@QiAeq^n!qoPo%)V*bBDZog^aH`SA+Kem{A<7FtVnvQ5q zNPmz4rd3ZcB3?^Y8z&GxbRA1vwG} z4sxl}ftI&Uyur%StZVn2I~9Nj_!LtLqNYYpm$&-2dLB-1+8p$b*&7pF+&5Bqv^(2$ ztgzrXL&A6mQBz+!!TJ23wy@DDf}M3@(L2I*JLkUH7xco6IOw4NxWxMr)Zi|jM^*GW zMKHF5-RsjU-DGpE6Yp*+%HxK}FEzPe?+n|L?5H#ej7_VIDo`0E*+#9rp0@h(Yjr1tMW)9qu2I{56r z-t1O=$Ml!a=!u$ijh*?Cf>R+N(Outv69pG36#C-gC+JU1;?bU-_CJ1@K~p6PV;2E* z0mQ>yn%8CY<&N-}PdG0-<$q&j2@~e%Xj(wK#yfkC3@Ko`_m(_~@Whi_4BPzZGWJ`d z_tVZf1fUc>(T_=or%Iy-p#3tT=Yj;VGAz_ekghV}z63X8zZZq^g?)8lKP+PI@Znm= zrd#dX7)c%GMWs$2GbShH1?p25qg21-N-rsyxR@SuLuIY20?F01+tRBoMv$10Xt*#m zSAu>Ne10eI6JRsSC(0#u&6T)zh}E%mL>5;$UZ1+TCAj)uS{(54d#~YLKB?v_yXJFy zTeE#yi6fOT0Z%G&$q(L`@Q`b2n=@VgEF(%a%rHaAD?jQYY#vJg>4d)_@P z(v98pnT(!ViBgeXO8CAJ)kLMl6x3wS_6}(gi3Se}X@54DL5Wg&huK0#XV9;8@`bKZ zr!I^1eApcpAm7uIV0nlAG3Z`K!lc9&ojgWuWlkb(4k*4Ip?kl>ohLdH4Jy`aHckrj zcEdiYI-^3YS;z>ry@%o0%R zRXtvon<`ooynSz_^}5+Qa(d?=8;L}`LC*1zD-Kx`(fk{>zA3~5O=iL%FY+na6U0LAT^#$2$hIsmnL_V9t^%TGRM;lD8s=eUOUUL;w_afNjc(G`*0mmla{zy;$c1 z==XDaP&fCbj7ZW`^1u=Gr~Jla=P@+K>v8$YB5 zNlr(QPz~!bue_OL-SI(Ds_3a}k3!?=hd;FJLVO!X3lee{Ay9RB=1`htW0E&t^s(cRs5PhfX0M~*h!3~8S%1?UzGPDl#>$|S*RXHo?3#qkX zXG54_dA;OXiBx_l%_W->Kc5$=&Kf`ak<`jMW2&t8PmpF3`*h+A+Gcnq>!op|`@01T z?KDT)$LeC68utYjDVU*M-uYn~thNYDQlE1lfbhr@x$S%2;#@&~-SLze&qK|grjhXkk`TJ;Bpk{}V zpFtJ|Py;0T67*^ZL;6d*1e!b3LR;EJc?m!2NQ6Tm>7fHY95PzM&NKak>@07RyAQcp z)2BJuYPnz>UR3Is*}YXe03gx8IRuuH0W_i`-2dj&@V%>C+aKR9J8;stpye#)>xs1} zsplKb!*4ELjqGW))Ak4lED5}R0i)BYD35I4y)|r0_0{gmURxjV+wD&1wJIA5ys$6%`KUBj12%)Y0X+&6a4;`_?rUPXAa{& z_n=iGyEtL+^p}U1ki#LlMGyU@|x$)+nwCg<&FU5ix&h)-%H|u^ATJeUr)j(Q4V>xC-^d8Ap_Y`|y?0Ro; z%dn3(mi6lx?DLyA3rbR9MY*? zF{8=tU7xML$BXd&bo3gqa2*e2-2r!okU(+G>c%uP=Qrz2nTL+Y$gB)knD9m#QSKdg z-vuR3NDaDk?4fyK#y?ZI;c8zcfRsSMPw!^tlYdX<6R5ss$N^SM%1dC?78DtiPja+^ zU4=0ZYi;`?OuAjnDL_^l6})!X!;TQ0`JZLyY#IAZYQ9`~YKcB*$ePu!oTpmt6fG&? zOu~uKEotqmR7nk~!YYhmvue0?G^jH*FV}6LsB|aD0|cC)835u^+P3dUcZ@T*yn^xY zaq8t?xw4NwS^Z!YANeO1<9PZ5xbOxm=-I{8dpsAbUa)la?qHTfK9rkiy zUxck|g$T{-x-35XJ}04CB{-zj>rDaqDy4nDnWCHIbkU6uB#C5S`7JQd9oQ@XBf_*V zxtDN4R9L$K>YjRYxdhzp`LO84{`xX&eSSDOeQ{o~)Ya4Va@>3BI6}~ZC(2+mxZ0w?1l&^*h*5f|0}=ZIgOWD zq4H#q`wO^DMLDC;kIfTmqP#UzTrSt`eIIX=vY1fZRNb#_y!!u$uyoOr!N4cI!z<3X zf^c36@>SN6JZ19cbu0fzcEx3#pzj(X(l9C-fE$E#*tUf~+-1C3$jNj7=W8de;l;RL z`p>VCy~=DGy|UbEo8`KKrv9V9dd}J@*t{e|Lo`1(#w7` zT(q=dgb%$DFR!ssnv~?{`~#P_apop#Gp)V4a-3d(NYwc0aPHIfib@$-$9V@2b*}Cq zcdq)Y>w}YTD4bNFrAt6iaBKe(+z%A3=X8@AYo^lQTeQvkSdY^UjX;}b=fT9ktX{=L_ zIkht9actwHB4fZtSIiC9ZLNB8)xUB{8Z5%UsD!GFvz?D#oGe5$ zR_JBUYLxt|a#Z5`WW0L|5Tx&P3>LTWd(k%ABfbSZrmeaDgf;{Q=s$&EY>QJZpVJi> zDWGexE^~crhO9h+r%>8U7pBt){8gp%s*U^@OzJ|vrQmIA{( zZbABX!CmqN(hMDG#Aokqix5n;?qw%F^tSgrq`_c+@Sx)={qLNdu^fI25nOKazE|U+ z22IywrIg#SGJPs;tJV(;zvDS!BENI_7v@7N=Stx&3Z|?plf>r(v%@-3Qicn1<%Hxt zz(+7v@^sl zK2wvv#Bbx4^oXQ2;s>56hE16>S)fZ(HSu4;Aa_INHR-b^Bo_!czPAhkgTC#iK#)l9 zLUTgtWB348{p78y{@-XgC%C2Jub6^01mzPSv2$znfZfoi`(`%DvcKeO>E1IascV>D z<+DyeOn8;_TN0flxcfW$c1wI2Lf0;+{OOUoRwZ}Pn;x{zM?7Vy0$=4XR;QHQ=VbJ# zZzFc|J80y9dTOB}?hoD??b^}t)^t24-*$QZr4)^}2#vX$-qY@*^UC^(YM3tSpXXS) z5!WoF{wgSO7+e;2yM?dSV+_t2QF)DRti`d`bcs2pRLaPqzEiSG^ycPh4HZa8DvtII zZA9aZj^N_9IZt%#M8$MCI^)K{2v`vo?kw$w0!kJ3lAZ0rxqqtEdo!8;Zh?mNqGRbN$d3UsO*QyF&tk4aM%Fcr!(oiU8hKQs}X^uXpw|JMFvy*noVfvKz zq$qAFJ6Jx@rLRk!{GF{|q*4$UbwaY#sPonM_$AC&4ZT%=>4At4#6#+}V`4^?JdIqK zZ@mkoY%W1g4K7nds2`&9`U{hAnua|=@+m;OjPK}d)@8K5>L;9kCjq|a%$$WQ!V)-6 zdTWuopdu>V4j!as2xLScd%uJbbU=5(4!9UJXyGbGS1Pfd0EV4NTT)P7aUImiKXDKIHh(~ce@&(T`8~qj!HJ5-L{6$T_G}}Z+o8V0 z>UUZ3nQL+*dsRpN!fq-f8T5@R~{8nB6|| zNzu*&kwFu+R<7;o#TR#2$Ws?!3a&V5#dYCQvNlTZ(JVjJG=zm-T&Uot^Kk9n;Y~)x zj1SIyKdWP0qtm_c;+twjGVDH6$S}!kF zO8B>3ppH(~E}EJMml?h44U{-vX-Cpmn(-bRU%eaSZDty>6Yewg-et9`J@T=74}He! zjg4Zz@*;g@L^%hR+Hl#{ASE?CTpK)XI(l6NRZT`=e@IAsXi+~soz-^qv4T5eUS zk4KAj_@Tl>AAwdReBzA0=Z7Tcls0qpQrV}M zyrHLqzP=rAP2X>*ik1kq-Wf6CS;s&P495yCNN z6~!if1^+o?uXsk5ORD^zrrl!7vufrVK5-}22Im`lRzLjle7AE|O}ygB)t*LW*Fnyp zmcD=aX$xP{$hM-RPLe38a|@c+On-^z+R{75>=A{) z!0iK%z%~^v#s#N=WZJ9&!~q2VG4B*?A0yOj+722CJr4voe$^21lb1i5CFyid52Hc8h9TeH6id6b^#%aSU4LL*-QSrGVjEJ+ zdWn0{n4XPQY~?T9caU>=L^O)WYtGRfh9+RQm~-MQUsSN)Yzgm#$CH4{=H*rDLy@lpE7_5FrIBsUzpiW4%?(X9j)(WGs`|3M61}sXjs5yEiNBq$l#P}c zt@z?jV0TQlxBA)uB^5QWdN!hRc5sRiFr5mV&d4^Xho{m_^cO}G1&s%OSC}fcA%{q7 ztnofqW!;6WMMXMmbv?246eyCwnkMp0zn)&(7QBBd=_qNRKdHvL=8Ey0Z?E`;Sg=6N z(Z+6Xrgz(C`IRr@b$$#9_}!N}FR*GSEvdFyi`xU^JIwa}YZpyO z5r;H^CTz541#68S!%_$pGJX8eisOcGl`c>D99}Ch>C&Qpu#1tSj!n zMzAc>xvplfl0s9`(OQQQ@+7A?eDc&QSlWqKl^HcG)e+Wt#HCuW>zyx42!4>YN97kL zA{Kk5hS0O+OBT>-VvRiM0KaCV`3}TD1Kv?|N#4JuUHhN05foPShk4|IS@SIUR-;Ha z>fLW5aVK!uC_H5l{R+-pAT`%z5UuV1lmh`Yj^2X zJR!1wlFNG93A_J0a}h)5EjBANSNAtcmh12FlkeZF?bkXTmZnpA6s4T;pIs&T><7hQ z=cR~4BKEDFm{-MFA5}JwwA9R&`75TG4&FV__RW$j$|O#&{Hwv=TLv#86WqTzB~Oj4 zV8o8Q&WPb>DgzWXe!a+EI%T5goc$Ybwx1*X#zA8Ngnev!M#U7f6dL@Z-3BzG+nA?w`SGwetI3y#0JgRC%2>+PEQ}J`A(y8~}X&6Nxb?tI3zj8?AbcC{v+oAAL z@$|++a(QK0L_3sT)}(jbpzi`p8JZ#>9y+S=`(}j{vTG!wTwdDZs4v^(7lz%J_BQ!z z1iwi>%|g(;fL|zSOk_R_U}{&`9{g=CTn;0XSsO@X7@yUcTt@zi&9XR2=l#!d6V3TS z+jfpl`s$Yz8N?!SYpr)Rw7$_}uGNvt(Y*YmQ6@Xteox@bV*#{_sc2!@h$)!xnAjp{ z$WFJIXI1WnwaCwwsi$)nx|R?B?vkE!J#?haW9gX1jHc3WN(A^F{H@t|fi?1M0UAt3 zj-yX|j_$H#wz@|NYT; zGdyPnw?(q1Liw~9D+Jl46$_Uu_GxgjgdD{NEIVdnd9=1C+H9z7tihraw(o);YDY=5hnC+*y#%8PvjGPO&CU^cf z4nk$AS-}e`&U*ffg+IIgL_^l>LxP_E{HQh=i6Fx7Q*qNa^GP&Q@eJ?N@25A@w{9u9 zBb8td<2xSqTcI?;3$2_Y!Em!*QfmfmJSp1$-i%$mTf{UeTqah$v%Kz0)cEzLHQzJD z-91T^1~*UCm3myI^k-)E@irbrq9rar&(3#~HKlRCt0kn5jo54{qZ*}h7I`7d_rqnr zr$X6my2v>cxgSiQo}Lr}e&(9@O8Q9Ee99ZH+d#R@R6l?}VKe4mMK(M$^2RNDC}R{U zAjUX)qhBp~*01xV&QY%uqfTFkVg6e*2Cxy61?IH}eK4oyz-$F1bpdlB(WwMq_GNe^ zGm{qdG-uzA*rgS0oxz)9<#6PPO!Al*)oawlZ;CE7v1g=Q6q<5J#kIY&HQH zqD!qo#A+j!?d-<4S@MS~qBd5MY1WwOy@VR{^p5SKuW9wOFR6Xs zX$H$LGZ)S$f9rF<&$XsiAhKkJ)OIDi%1uqKZ^rCCxu@7WZ{FStM5KA<`I2MnbzI+iWhR z0kTHvMAB3M#4-(8f@Zf1<)%h*AVzjER`6|hT~+_dW%wW`W^CSuXr4ioe~J}rsOx+B z9$P+EK=eb!Txa9bPPbuwYq)O_6&R33NQnqo*iHw5x#6iUnD!M4(U1qZhbmXjk1&sA zPO5r`$Rk1J15?hoh}3NV;i9w%{Ny!uDnwQQTD5IVnBiz+%V#FU?Iz$%nr`!28m z))4?IVFotqng5AD)>ZvImi2PEMcep_r`W(q%cR{U(bzQNDsxrULrFp$HL16-x*wqz z17>>JGewutzZnss@~qieDfFv=v4{VLmzKzXZ~W<_FQV;RIepCexxwuJ)!vmyHFb6S zD6Q0jbCEcKe%1nsu?Hh!?wcg+Fz4hML`$t&!a@RfQ?6c1ve*2ugX~kmO zz3vPeOXeZUD;M>K-wvFE5#h|4aVw_ayhtyd`_`oH38}4JItf$nNaxQ0d}OBw?IY~C zllE&gCy#h6Exud)(usJ(E=;%9tUu?sGK75GLq2j1^ux`NsOymfGkms~9qOldx@9|2 zUFCnFhgil=V>?uZ2gQ4&>bCSV$JXbUdVe})_scK0t9M_(`c9YTJ5U_2{1$A7Nn>jJ zjzCUjaCJ+znT&^h&W6rW`+}(jN$)YxRb>=cKzp{nZn1a4kMu*%b_*S4NOiD{AyX#D z)S?y0(YKggyORvlg{$RrF_sIE``NRd9qeY!E9;pf)m%{2u6LObA?dyl8gnEz1YyE~ zCk)0)$!Q^ZqY4i|QTAYQX-*O`T$-{-_gzpC-v5Ovxlb@v)`>|=A8r6QZS`B5V9zfx z&Zl~Xtll8MLBxj=9`N)INgK*fB^r}ZYT#xFvLfeluCk|R7tqX@&^x6AV?WSbn;{`QX{YOq+6_jFx!Sp(!k=H zzu5Nc=cxbDyzKlj3}+UBB3ty+5b%a^)>GTb9qw;4b zIJ-xGc!=;F&=_x)_VDeCW!U|9oKToZAsy6e(vogoOrD|c@I;=5c|1JIXQS_5C%_BMkZ-Q^>r@wzS55b;bh{8Dc z-tTU(STbj{uMfiG=Z>3r?y{Aexa~yAc2C1?Pq*T`H&jFPMqiM6!&cfQqaXcdd7o(y zqoLGY_GXe-2}oN4e_FNFGUCZVo*?jS&Bb$E@excdy4?u9;)CWTetGbVdE@4w;q3MH z$G7Nm?PGopsJnxv=9vYS{O3{-WfRw;l2xj0@x0-3^jH=1d-q)O9B|#zw~^n-^^f3q6%@z%LrScr#dbbW(}v zc6#r5GhtAKyuu@tovq>fy=`7s~P2w-)8!=vVJ|-uM<=+n5)@fzMHT zOa5YzhJ^74Cuh27dumn2M;e~AcYD~B`Or&ND5aXgaxxpB1OioPkPpW(6f$hD%+LmeY2K4L(dR5%JWHtN!R_n!IolKM) zTahdQzP!1OI78HW_$H(0w0mZA<4Hn%x3^U z-2!AQr%sg~95yq4aHP6S>*iUui+;&WawAOqcBnfd&h2K*bBp$WoETJRP!9aHTsC>C zPua5UO&r_mPD1&B1lcA<-YzSRlO`WPdQ~)>m}nEpU=2}z$kPUOIRJIK(Oo9!<+l7q z<|*tN2TPlS@tL#ZqTA@v0~?+o=vt}Qr60;hg@>6s+Y}j+zH;+3^q<-~7ZOE9$+kB( zZaPF)C9_<5%3=3IexVD7WE*a|pFT?d?n=x$>$R0jHms~K;&Lw=`+SV0nwN(fzrXrx zgitiBx5I z{(HS1+Ea8$mg#}~xgbA5Uuk$s*B1ob?0;?vWpW2Lxkvhc!E<>}JpZS8a1dR& zxQ!{zu&O}K#OHwiF1g0-$}vlM=(}K@HP4oDFJ-;z%4bqiuP5D;r;Q@*+3WkzlF-|r z7z9CQ2C>j_It-#frDuP#t67h9c+V_|9lL|AoVjR}`*2%&@Q^s=Obc4e0>S{rPY|Y|&7Sp&jW*27!K?R)`b;g$ z>IfckZ#C>eh@bZHH%6SZq27xAok3UgjlQEDf^56GiZw-+)a}OrggZfk-1s&>vYo2* zFHR!h7L=8P#2NF_Z9>KS&ce)5Iqn1}ys5PblH^v38hct*)#qut&iC@vUzU2S^sPzX zH~PyimhcHWh1`9ap(lz?L2;ti4Z4R;q+g94uH|m1Rd~)dm?n{nad-|SFDpleE~o68 zIsT^4%xHUCY6f^~#8A%Hx63SQ{aVQ8;*dbP_#jru10uEj!3Ex>ZJp49O*+3wqc`JABXY0DOyI7WSGG>k$ zw{9#ctJ?g!Z1y_WBvH^$_{5fuNKSclL4da!+qAG}B9v<{WQ`7gHTek=?#LLhTdxYM zN5Zv+k~r0Okky9af3?v~VxdC(6w)|p6icOB@lgw#L@VxTO4*WauDX{}vy0U3^)UT7 z7~S>jm3*ge;>1iQ zHMdbtdo`yH)vu8mrSvx&V7hnkTzc%Dsbok!0Q1e0y)s>HjjxF8EX*ApxEJ|0&sGS4 zxGfdMoO=vtP=c>3mU{8~I-8VtkL-c~UX-`gxSg?8ItWP`Q0`X;qvnJRHKTMH^qzN` zb0*Uf5t^S)+Z%vdC8*WVQ&<$^hjJhQ>ZiMLt#&{Kq#88n2YkYg9|>!w#VhIwzQgVy zh^|MSr&NCP%WX5!ObJPnjteAuszIjVld?pJ{u}`k^}Xc&{ zB_GfYz+66S2A?)j$~M%J73ZYVZER}Gth)Xc;(&MO6tMZ=<7ch*;U+zc($W#42q8r` zX_v!f(bVY(eF?!JRBfTFSI|qRMZ!*=i=o$FJu=#1hoBp8(REvjgQpOr5)q-zvH>Nl@E z?wcLZDG=|&x1VHY!QEBI)bDo)6IvoNkvzaj9{J-l7W5F09vZ}XSnl`eEG!sV5;wl^ z13FsIS4w;w=!^PL0VG+?4i0+ z)>mUYaGQxK*i~pohTV*{1Kg=nd*+O$o6WC!gCKw95)!#-&&WdXP7&jaKt80~qPoni zF&Ym|;4?vf%2lyK({_4Pf2pY1sLl}WllBW0%QAQ#M8iyB zd4W@iuQ&@}2*P>oLtK%G24F>f?Cfj1T~=w&RbTG>+kwISmD*^UH?7h&tO$ znw|sBD7lF+${-KK_ja9XyTw7YzGTsm$#R0XJ8Zd|^A%rztUbwC5dLSDvxUV0yW{PR~ykc7)e3 zI8#gb;QAk5(pktKkvKcTLhsK0iXp6F&ECKeMw}eLhA>2&sZGoVaS&Q`?0xm4}2xvmtOegCHdBs=k4qT zsd*4OJ=;~Annyb;9D}CEI5_=J**VPx8TdMqhFrEp#*a(qODUPBWS1J+JU@Vl#ue?pcuSg^W>6}p@3gR ze&5jG0DF;J=ejdHsi85e5}$YUg*#fl339_HzN-=DceYc*2w|(+mroa=9^EsDK#!7n zCI?P?xe?>;I)SBcUDDLx_tKV0csLsImYm`M}e4R3GaL^082GHD+h{ z6HT5VPtFl&%L2oj{UihE0&jz8&T!RxnC;KndG~uGt(gM3?6Or6GlKyPRzv2H|9q5N z*0Qq@7|m_Q!M96nXENG)#gRJ?y5VgDGc;kBr?g2rhy=*JKKo_>4WRC3E1wg}r zLykNcagDY)N;Wz92-d_{XE2;_^>#U3#F~QnAzq+Lg)`6%gU2=X319mD*^hN#e|gvm-8?8f z<5nKN_F3R1cLbXu-1W`)QhB3)+<9SFCnmt1+;n7wCDV2)=T*?8 zJUhai(x>Qc=hHKA=E{BCtNe8eKhc%Os$jWYM;~_;W;)pOrNgzvL67bi<|zxRbl7zu zQ1awqvEn{hWki45?Y%IT{r3R8xUH2y{1j1x}`2=Js}ct;$Ek9^)$B?2N*Pn$sDf4ZmGM zM#Onz6&yK-dzi=&-sU!e=DL!zC_2DqgAl$_!}}+KPE7pm0;SGnq`#K8l#+dfC3xGP z8KNtYQCz+a9d2uMuGNgIRY=2jdAg6zD30`-gAr_MArn7o1kA)8E%?XUci)Q0?1qL5 z%WA+zsCcsj(h%oKW_5LCcM-2Yni$`aql|SOX(-7#iWE}EP03}5g3%2AnD_MwlYOhY z?zwowE-qMV@f|EBcl32D=$H5bTh{se772)s8%N1)&x-R9S!V?K&DW|it=imDkqzCW(j0h9vZGJ0CaM`vq#zVa;eX|XH@93 zdZ+F38}(T=X&M^l#%!|ZtPwn>^_Oc1tqk2>jB$I{xh_fco4gp~Ch3g(aRfiCz_l5H zR7DP*r;;(3e3ARZ^}wNtiz^WW&^{*D>g%x;#CpT|5fllXCrs;(h6KsKby>mT5{qVH zz|a3!HN(G~9U(d9|6QfZzvuSvxdjTu|KG2<`Zp*4Z*lSv{i7H+1v3|8aj%{9ZMTDV z-i-V<_NU&gxjJI{pbz4m-=HDuk!#QI=mE%)t9XO?RK=&;AI^S?@R;wPPyG~qG~ZoX z@X6sb-_7+Jv6ax(H(EtDd literal 0 HcmV?d00001 From 79a79e2b8f2b1e10c752c2b61ae974cd19b9cbcb Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:37:23 +0100 Subject: [PATCH 07/28] update comments --- .../eo_encoders/multimodal_encoder.py | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/models/components/eo_encoders/multimodal_encoder.py b/src/models/components/eo_encoders/multimodal_encoder.py index 5e9ce94..fc93a7d 100644 --- a/src/models/components/eo_encoders/multimodal_encoder.py +++ b/src/models/components/eo_encoders/multimodal_encoder.py @@ -1,20 +1,11 @@ """ Unified multimodal encoder for EO data. -Replaces the three separate encoders: - - GeoClipCoordinateEncoder (coords only) - - TabularOnlyEncoder (tabular only) - - GeoClipCoordsTabularFusionEncoder (both) Controlled entirely via constructor flags: - use_coords: encode lat/lon with GeoClip - use_tabular: encode feat_* tabular columns -tabular_dim is NOT required at construction time when use_tabular=True. -Call encoder.build_tabular_branch(tabular_dim) before the first forward -pass (done automatically by PredictiveRegressionModel.setup()). - -Location: src/models/components/eo_encoders/multimodal_encoder.py """ from typing import Dict, override @@ -28,7 +19,6 @@ class MultiModalEncoder(BaseEOEncoder): """ - Flexible encoder that supports: - coords only (use_coords=True, use_tabular=False) - tabular only (use_coords=False, use_tabular=True) - coords + tabular (use_coords=True, use_tabular=True) @@ -40,7 +30,7 @@ def __init__( use_tabular: bool = False, tab_embed_dim: int = 64, output_normalization: str = "l2", - tabular_dim: int = None, # set here OR via build_tabular_branch() + tabular_dim: int = None, ) -> None: super().__init__() @@ -63,11 +53,10 @@ def __init__( self._coords_dim = coords_dim - # Build tabular branch now only if dim is already known + # Built only if dim is already known if use_tabular and tabular_dim is not None: self.build_tabular_branch(tabular_dim) elif use_tabular: - # Will be built later by PredictiveRegressionModel.setup() self.tabular_proj = None else: self.output_dim = coords_dim @@ -79,10 +68,6 @@ def __init__( def build_tabular_branch(self, tabular_dim: int) -> None: """ Build (or rebuild) the tabular projection layer. - Safe to call multiple times — idempotent if dim is the same. - - Called automatically by PredictiveRegressionModel.setup() - once the datamodule is ready. """ if self._tabular_ready and hasattr(self, "_last_tabular_dim"): if self._last_tabular_dim == tabular_dim: From d5d996d43199e80bf055a211b3ac19f8e21f975e Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:53:44 +0100 Subject: [PATCH 08/28] docs: move diagram to docs/figures/ --- diagram.png => docs/figures/diagram.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename diagram.png => docs/figures/diagram.png (100%) diff --git a/diagram.png b/docs/figures/diagram.png similarity index 100% rename from diagram.png rename to docs/figures/diagram.png From ab32d62ea5db7b30b9c89fb01e3fd95c5e744bd6 Mon Sep 17 00:00:00 2001 From: bachir Date: Thu, 19 Feb 2026 13:54:03 +0100 Subject: [PATCH 09/28] docs: move diagram to docs/figures/ --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0785459..8cd772d 100644 --- a/README.md +++ b/README.md @@ -202,7 +202,7 @@ We follow the directory structure from the [Hydra-Lightning template](https://gi The diagram below shows how configuration files, datasets, and model components relate to each other in the AETHER framework. -![Framework Architecture](diagram.png) +![Framework Architecture](docs/figures/diagram.png) From a8168253b687682b9a939e83e54a61df8c1eb917 Mon Sep 17 00:00:00 2001 From: bachir Date: Fri, 20 Feb 2026 09:07:53 +0100 Subject: [PATCH 10/28] Removing output_normalization='l2' --- configs/model/heat_fusion_reg.yaml | 1 - configs/model/heat_geoclip_reg.yaml | 1 - src/models/components/eo_encoders/multimodal_encoder.py | 6 +----- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/configs/model/heat_fusion_reg.yaml b/configs/model/heat_fusion_reg.yaml index 0d87720..6a554c5 100644 --- a/configs/model/heat_fusion_reg.yaml +++ b/configs/model/heat_fusion_reg.yaml @@ -13,7 +13,6 @@ eo_encoder: use_coords: true use_tabular: true tab_embed_dim: 64 - output_normalization: l2 prediction_head: _target_: src.models.components.pred_heads.mlp_regression_head.MLPRegressionPredictionHead diff --git a/configs/model/heat_geoclip_reg.yaml b/configs/model/heat_geoclip_reg.yaml index d8aa2c9..eeb5f9e 100644 --- a/configs/model/heat_geoclip_reg.yaml +++ b/configs/model/heat_geoclip_reg.yaml @@ -12,7 +12,6 @@ eo_encoder: _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder use_coords: true use_tabular: false - output_normalization: l2 prediction_head: _target_: src.models.components.pred_heads.mlp_regression_head.MLPRegressionPredictionHead diff --git a/src/models/components/eo_encoders/multimodal_encoder.py b/src/models/components/eo_encoders/multimodal_encoder.py index fc93a7d..c8f6603 100644 --- a/src/models/components/eo_encoders/multimodal_encoder.py +++ b/src/models/components/eo_encoders/multimodal_encoder.py @@ -29,7 +29,6 @@ def __init__( use_coords: bool = True, use_tabular: bool = False, tab_embed_dim: int = 64, - output_normalization: str = "l2", tabular_dim: int = None, ) -> None: super().__init__() @@ -41,14 +40,11 @@ def __init__( self.use_coords = use_coords self.use_tabular = use_tabular self.tab_embed_dim = tab_embed_dim - self.output_normalization = output_normalization self._tabular_ready = False coords_dim = 0 if use_coords: - self.coords_encoder = GeoClipCoordinateEncoder( - output_normalization=output_normalization - ) + self.coords_encoder = GeoClipCoordinateEncoder() coords_dim = self.coords_encoder.output_dim # 512 self._coords_dim = coords_dim From 27bc9ec004064a3228e81d0f1ddf07fb15b66356 Mon Sep 17 00:00:00 2001 From: bachir Date: Fri, 20 Feb 2026 11:58:22 +0100 Subject: [PATCH 11/28] data config + split_dir fixed --- configs/data/heat_guatemala.yaml | 16 ++++------------ ..._indices_heat_guatemala_2026-02-20-1148.pth | Bin 0 -> 592203 bytes src/data/base_datamodule.py | 2 ++ 3 files changed, 6 insertions(+), 12 deletions(-) create mode 100644 data/heat_guatemala/splits/split_indices_heat_guatemala_2026-02-20-1148.pth diff --git a/configs/data/heat_guatemala.yaml b/configs/data/heat_guatemala.yaml index f0003f6..60de6d7 100644 --- a/configs/data/heat_guatemala.yaml +++ b/configs/data/heat_guatemala.yaml @@ -1,12 +1,3 @@ -# configs/data/heat_guatemala.yaml -# -# Renamed from: heat_guatemala_coords.yaml -# Reason: this config is shared by ALL three model variants (coords, tabular, -# fusion). The old name was misleading — it implied coords-only. -# -# Note: tabular features are loaded automatically from feat_* CSV columns. -# No modality entry needed for tabular data. - _target_: src.data.base_datamodule.BaseDataModule dataset: @@ -23,9 +14,10 @@ batch_size: 64 num_workers: 8 pin_memory: true -split_mode: "spatial_clusters" -spatial_split_distance_m: 300 +split_mode: "from_file" +save_split: false +saved_split_file_name: "split_indices_heat_guatemala_2026-02-20-1148.pth" + train_val_test_split: [0.7, 0.15, 0.15] -save_split: false seed: ${seed} diff --git a/data/heat_guatemala/splits/split_indices_heat_guatemala_2026-02-20-1148.pth b/data/heat_guatemala/splits/split_indices_heat_guatemala_2026-02-20-1148.pth new file mode 100644 index 0000000000000000000000000000000000000000..02a4d66b9c0ef02b8e2f311b8c84b86fd88a83da GIT binary patch literal 592203 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 None: """Datamodule class which handles dataset splits and batching. @@ -50,6 +51,7 @@ def __init__( :param caption_builder: instance of BaseCaptionBuilder for generating textual captions :param spatial_split_distance_m: minimum distance in metres between clusters when split_mode is 'spatial_clusters'. Default 1000 m. + :param split_dir: directory to save split indices when save_split is True. """ super().__init__() self.save_hyperparameters(logger=False) From 03a202d0082ba72a4d8e4662dc692e1beeeeb577 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 23 Feb 2026 09:32:38 +0100 Subject: [PATCH 12/28] FIx the need and remove split_dir parameter --- src/data/base_datamodule.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/data/base_datamodule.py b/src/data/base_datamodule.py index b6dd224..2c94f6e 100644 --- a/src/data/base_datamodule.py +++ b/src/data/base_datamodule.py @@ -34,7 +34,6 @@ def __init__( caption_builder: BaseCaptionBuilder = None, seed: int = 12345, spatial_split_distance_m: int = 1000, - split_dir: str | None = None, ) -> None: """Datamodule class which handles dataset splits and batching. @@ -49,9 +48,8 @@ def __init__( :param save_split: if to save split file :param saved_split_file_name: file name to save split file :param caption_builder: instance of BaseCaptionBuilder for generating textual captions - :param spatial_split_distance_m: minimum distance in metres between clusters - when split_mode is 'spatial_clusters'. Default 1000 m. - :param split_dir: directory to save split indices when save_split is True. + :param spatial_split_distance_m: minimum distance in metres between clusters when + split_mode is 'spatial_clusters'. Default 1000 m. """ super().__init__() self.save_hyperparameters(logger=False) @@ -67,7 +65,7 @@ def __init__( self.caption_builder.sync_with_dataset(self.dataset) self.split_data() - + @property def tabular_dim(self): dataset = self.data_train @@ -75,7 +73,7 @@ def tabular_dim(self): while hasattr(dataset, "dataset"): dataset = dataset.dataset return dataset.tabular_dim - + @property def num_classes(self) -> int: """Number of classes in the dataset.""" @@ -257,19 +255,14 @@ def split_data(self) -> None: def save_split_indices(self, split_indices: dict[str, Any] | dict): """Save split indices into file.""" - assert ( - self.hparams.split_dir is not None - ), "split_dir must be provided when saving a new data split." - assert os.path.exists( - self.hparams.split_dir - ), f"Directory to save split indices does not exist: {self.hparams.split_dir}" - assert isinstance(split_indices, dict), "split_indices must be a dictionary to be saved." + self.split_dir = os.path.join(self.hparams.dataset.data_dir, "splits") + os.makedirs(self.split_dir, exist_ok=True) timestamp = create_timestamp() torch.save( split_indices, os.path.join( - self.hparams.split_dir, + self.split_dir, f"split_indices_{self.hparams.dataset_name}_{timestamp}.pth", ), ) From 2bc0b8e4891a363f14e3dade33db2e91eef18c2d Mon Sep 17 00:00:00 2001 From: bachir Date: Mon, 23 Feb 2026 13:36:51 +0100 Subject: [PATCH 13/28] fix: wire head, trainable modules, F.normalize, use_features param --- configs/data/heat_guatemala.yaml | 3 ++- src/data/base_dataset.py | 5 +++++ src/data/heat_guatemala_dataset.py | 4 +++- src/models/predictive_model_regression.py | 6 +++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/configs/data/heat_guatemala.yaml b/configs/data/heat_guatemala.yaml index 60de6d7..eb42022 100644 --- a/configs/data/heat_guatemala.yaml +++ b/configs/data/heat_guatemala.yaml @@ -6,6 +6,7 @@ dataset: modalities: coords: {} use_target_data: true + use_features: true use_aux_data: false seed: ${seed} cache_dir: ${paths.cache_dir} @@ -20,4 +21,4 @@ saved_split_file_name: "split_indices_heat_guatemala_2026-02-20-1148.pth" train_val_test_split: [0.7, 0.15, 0.15] -seed: ${seed} +seed: ${seed} \ No newline at end of file diff --git a/src/data/base_dataset.py b/src/data/base_dataset.py index b87f467..258fb43 100644 --- a/src/data/base_dataset.py +++ b/src/data/base_dataset.py @@ -23,6 +23,7 @@ def __init__( cache_dir: str = None, implemented_mod: set[str] = None, mock: bool = False, + use_features: bool = True, ) -> None: """Interface for any use case dataset. @@ -45,6 +46,7 @@ def __init__( :param cache_dir: directory to save cached data :param implemented_mod: implemented modalities for each dataset :param mock: whether to mock csv file + :param use_features: if tabular feat_* columns should be included. Default True. """ if mock: @@ -79,6 +81,7 @@ def __init__( self.use_aux_data: bool = use_aux_data self.records: dict[str, Any] = self.get_records() self.pooch_cli = None + self.use_features = use_features @final def get_records(self) -> dict[str, Any]: @@ -127,6 +130,8 @@ def __len__(self) -> int: @final @property def tabular_dim(self) -> int: + if not self.use_features: + return 0 return len(getattr(self, "feat_names", [])) @abstractmethod diff --git a/src/data/heat_guatemala_dataset.py b/src/data/heat_guatemala_dataset.py index ccb0c3b..44e81dc 100644 --- a/src/data/heat_guatemala_dataset.py +++ b/src/data/heat_guatemala_dataset.py @@ -48,6 +48,7 @@ def __init__( seed: int = 12345, cache_dir: str = None, mock: bool = False, + use_features: bool = True, ) -> None: super().__init__( data_dir=data_dir, @@ -59,6 +60,7 @@ def __init__( cache_dir=cache_dir, implemented_mod={"coords"}, mock=mock, + use_features=use_features, ) # ------------------------------------------------------------------ @@ -91,7 +93,7 @@ def __getitem__(self, idx: int) -> Dict[str, Any]: ) # --- Tabular features (always included if present in CSV) --- - if self.feat_names: + if self.use_features and self.feat_names: sample["eo"]["tabular"] = torch.tensor( [row[k] for k in self.feat_names], dtype=torch.float32 ) diff --git a/src/models/predictive_model_regression.py b/src/models/predictive_model_regression.py index 1a41d43..4498284 100644 --- a/src/models/predictive_model_regression.py +++ b/src/models/predictive_model_regression.py @@ -51,6 +51,7 @@ def __init__( and not self.eo_encoder._tabular_ready ): self._wire_head() + self.freezer() # ------------------------------------------------------------------ # Lightning hooks @@ -72,7 +73,7 @@ def setup(self, stage: str) -> None: self.eo_encoder.build_tabular_branch(tabular_dim) self._wire_head() - self.freezer() + self.freezer() # ------------------------------------------------------------------ # Internals @@ -85,6 +86,8 @@ def _wire_head(self) -> None: output_dim=self.num_classes, ) self.prediction_head.configure_nn() + if "prediction_head" not in self.trainable_modules: + self.trainable_modules.append("prediction_head") # ------------------------------------------------------------------ # Forward & step @@ -93,6 +96,7 @@ def _wire_head(self) -> None: @override def forward(self, batch: Dict[str, torch.Tensor]) -> torch.Tensor: feats = self.eo_encoder(batch) + feats = F.normalize(feats, dim=-1) return self.prediction_head(feats) @override From adecb1d640cad6fa2685e0b318d4df61ebb0fbb6 Mon Sep 17 00:00:00 2001 From: bachir Date: Mon, 23 Feb 2026 14:01:01 +0100 Subject: [PATCH 14/28] fix: remove redundant _tabular_ready check in __init__ --- src/models/predictive_model_regression.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/models/predictive_model_regression.py b/src/models/predictive_model_regression.py index 4498284..764f472 100644 --- a/src/models/predictive_model_regression.py +++ b/src/models/predictive_model_regression.py @@ -48,7 +48,6 @@ def __init__( if not ( isinstance(self.eo_encoder, MultiModalEncoder) and self.eo_encoder.use_tabular - and not self.eo_encoder._tabular_ready ): self._wire_head() self.freezer() From d7a2254661f8ebe99e7b53cd7a641531a6ee635a Mon Sep 17 00:00:00 2001 From: gabrieletijunaityte Date: Tue, 24 Feb 2026 08:34:37 +0100 Subject: [PATCH 15/28] Delete split_indices_heat_guatemala_2026-02-20-1148.pth We store these in teams for now. Butterfly UC is an exempion --- ..._indices_heat_guatemala_2026-02-20-1148.pth | Bin 592203 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 data/heat_guatemala/splits/split_indices_heat_guatemala_2026-02-20-1148.pth diff --git a/data/heat_guatemala/splits/split_indices_heat_guatemala_2026-02-20-1148.pth b/data/heat_guatemala/splits/split_indices_heat_guatemala_2026-02-20-1148.pth deleted file mode 100644 index 02a4d66b9c0ef02b8e2f311b8c84b86fd88a83da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592203 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 Date: Tue, 24 Feb 2026 10:47:34 +0100 Subject: [PATCH 16/28] Introduce BaseMetrics and MetricsWrapper classes --- src/models/components/metrics/base_metrics.py | 19 ++++++++++++ .../components/metrics/metrics_wrapper.py | 30 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/models/components/metrics/base_metrics.py create mode 100644 src/models/components/metrics/metrics_wrapper.py diff --git a/src/models/components/metrics/base_metrics.py b/src/models/components/metrics/base_metrics.py new file mode 100644 index 0000000..0e6b96d --- /dev/null +++ b/src/models/components/metrics/base_metrics.py @@ -0,0 +1,19 @@ +from abc import ABC, abstractmethod +from typing import Dict + +import torch +from torch import nn + + +class BaseMetrics(nn.Module, ABC): + def __init__(self) -> None: + super().__init__() + + @abstractmethod + def forward( + self, pred: torch.Tensor, + labels: torch.Tensor, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs + ) -> Dict[str, torch.float]: + pass diff --git a/src/models/components/metrics/metrics_wrapper.py b/src/models/components/metrics/metrics_wrapper.py new file mode 100644 index 0000000..0ceb3eb --- /dev/null +++ b/src/models/components/metrics/metrics_wrapper.py @@ -0,0 +1,30 @@ +from typing import Dict, List + +import torch +from torch import nn + +from src.models.components.loss_fns.base_loss_fn import BaseLossFn +from src.models.components.metrics.base_metrics import BaseMetrics + + +class MetricsWrapper(nn.Module): + def __init__(self, metrics: List[BaseMetrics | BaseLossFn]) -> None: + super().__init__() + self.metrics = metrics + + def forward( + self, + pred: torch.Tensor, + batch: torch.Tensor, + mode='train', + **kwargs + ) -> Dict[str, torch.float]: + """Calculates all metrics and adds all the results into one dictionary for logging""" + compiled_dict = {} + + for metric in self.metrics: + metric_results = metric(pred, batch, return_label=True, **kwargs) + for k, v in metric_results.items(): + compiled_dict[f'{mode}_{k}'] = v + + return compiled_dict From 8661e5e48ce710703adc7c23a896d5493d535305 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 10:47:39 +0100 Subject: [PATCH 17/28] Introduce BaseMetrics and MetricsWrapper classes --- src/models/components/metrics/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/models/components/metrics/__init__.py diff --git a/src/models/components/metrics/__init__.py b/src/models/components/metrics/__init__.py new file mode 100644 index 0000000..e69de29 From 9514a83efd1a9593af73bc6ede208d63de640337 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:19:07 +0100 Subject: [PATCH 18/28] New metrics --- src/models/components/loss_fns/mae_loss.py | 29 ++++++++++++ src/models/components/loss_fns/mse_loss.py | 29 ++++++++++++ src/models/components/loss_fns/rmse_loss.py | 29 ++++++++++++ src/models/components/metrics/base_metrics.py | 8 ++-- .../metrics/contrastive_similarities.py | 47 +++++++++++++++++++ .../components/metrics/metrics_wrapper.py | 14 ++---- src/models/components/metrics/r2.py | 28 +++++++++++ 7 files changed, 170 insertions(+), 14 deletions(-) create mode 100644 src/models/components/loss_fns/mae_loss.py create mode 100644 src/models/components/loss_fns/mse_loss.py create mode 100644 src/models/components/loss_fns/rmse_loss.py create mode 100644 src/models/components/metrics/contrastive_similarities.py create mode 100644 src/models/components/metrics/r2.py diff --git a/src/models/components/loss_fns/mae_loss.py b/src/models/components/loss_fns/mae_loss.py new file mode 100644 index 0000000..a0019e2 --- /dev/null +++ b/src/models/components/loss_fns/mae_loss.py @@ -0,0 +1,29 @@ +from typing import Dict, override + +import torch + +from src.models.components.loss_fns.base_loss_fn import BaseLossFn + + +class MAELoss(BaseLossFn): + def __init__(self) -> None: + super().__init__() + self.criterion = torch.nn.L1Loss() + self.name = "mae_loss" + + @override + def forward( + self, + pred: torch.Tensor, + labels: torch.Tensor | None = None, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs, + ) -> torch.Tensor | Dict[str, torch.Tensor]: + + labels = labels if labels is not None else batch.get("target") + loss = self.criterion(pred, labels) + + if "return_label" in kwargs: + return {self.name: loss} + else: + return loss diff --git a/src/models/components/loss_fns/mse_loss.py b/src/models/components/loss_fns/mse_loss.py new file mode 100644 index 0000000..748fd31 --- /dev/null +++ b/src/models/components/loss_fns/mse_loss.py @@ -0,0 +1,29 @@ +from typing import Dict, override + +import torch + +from src.models.components.loss_fns.base_loss_fn import BaseLossFn + + +class MSELoss(BaseLossFn): + def __init__(self) -> None: + super().__init__() + self.criterion = torch.nn.MSELoss() + self.name = "mse_loss" + + @override + def forward( + self, + pred: torch.Tensor, + labels: torch.Tensor | None = None, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs, + ) -> torch.Tensor | Dict[str, torch.Tensor]: + + labels = labels if labels is not None else batch.get("target") + mse_loss = self.criterion(pred, labels) + + if "return_label" in kwargs: + return {self.name: mse_loss} + else: + return mse_loss diff --git a/src/models/components/loss_fns/rmse_loss.py b/src/models/components/loss_fns/rmse_loss.py new file mode 100644 index 0000000..45e98a2 --- /dev/null +++ b/src/models/components/loss_fns/rmse_loss.py @@ -0,0 +1,29 @@ +from typing import Dict, override + +import torch + +from src.models.components.loss_fns.base_loss_fn import BaseLossFn + + +class RMSELoss(BaseLossFn): + def __init__(self) -> None: + super().__init__() + self.criterion = torch.nn.MSELoss() + self.name = "rmse_loss" + + @override + def forward( + self, + pred: torch.Tensor, + labels: torch.Tensor | None = None, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs, + ) -> torch.Tensor | Dict[str, torch.Tensor]: + + labels = labels if labels is not None else batch.get("target") + loss = torch.sqrt(self.criterion(pred, labels)) + + if "return_label" in kwargs: + return {self.name: loss} + else: + return loss diff --git a/src/models/components/metrics/base_metrics.py b/src/models/components/metrics/base_metrics.py index 0e6b96d..1b373bf 100644 --- a/src/models/components/metrics/base_metrics.py +++ b/src/models/components/metrics/base_metrics.py @@ -11,9 +11,9 @@ def __init__(self) -> None: @abstractmethod def forward( - self, pred: torch.Tensor, - labels: torch.Tensor, - batch: Dict[str, torch.Tensor] | None = None, - **kwargs + self, + pred: torch.Tensor, + batch: Dict[str, torch.Tensor], + **kwargs, ) -> Dict[str, torch.float]: pass diff --git a/src/models/components/metrics/contrastive_similarities.py b/src/models/components/metrics/contrastive_similarities.py new file mode 100644 index 0000000..c3aae7e --- /dev/null +++ b/src/models/components/metrics/contrastive_similarities.py @@ -0,0 +1,47 @@ +from typing import override + +import torch +import torch.nn.functional as F + +from src.models.components.metrics.base_metrics import BaseMetrics + + +class CosineSimilarities(BaseMetrics): + def __init__(self, k_list=None) -> None: + super().__init__() + self.k_list = k_list or [1, 5, 10] + + @override + def forward( + self, + mode: str, + eo_feats: torch.Tensor, + text_feats: torch.Tensor, + local_batch_size: int, + **kwargs, + ): + """Calculate cosine similarity between eo and text embeddings and logs it.""" + + # Similarity matrix + cos_sim_matrix = F.cosine_similarity(eo_feats[:, None, :], text_feats[None, :, :], dim=-1) + + # Average for positive and negative pairs + # TODO change label option if we change what gets treated to be pos/neg + id_matrix = torch.eye(cos_sim_matrix.shape[0], dtype=torch.bool) + pos_sim = cos_sim_matrix[id_matrix] + neg_sim = cos_sim_matrix[~id_matrix] + + # Average + avr_sim = torch.mean(cos_sim_matrix) + sub_neg_sim = neg_sim[ + torch.randperm(len(neg_sim))[: len(pos_sim)] + ] # pick same amount of negatives as positives + balanced_sim = torch.cat([pos_sim, sub_neg_sim], dim=0) + balanced_avr_sim = torch.mean(balanced_sim) + + return { + f"{mode}_avr_sim": avr_sim, + f"{mode}_avr_sim_balanced": balanced_avr_sim, + f"{mode}_pos_sim": torch.mean(pos_sim), + f"{mode}_neg_sim": torch.mean(neg_sim), + } diff --git a/src/models/components/metrics/metrics_wrapper.py b/src/models/components/metrics/metrics_wrapper.py index 0ceb3eb..c15f395 100644 --- a/src/models/components/metrics/metrics_wrapper.py +++ b/src/models/components/metrics/metrics_wrapper.py @@ -12,19 +12,13 @@ def __init__(self, metrics: List[BaseMetrics | BaseLossFn]) -> None: super().__init__() self.metrics = metrics - def forward( - self, - pred: torch.Tensor, - batch: torch.Tensor, - mode='train', - **kwargs - ) -> Dict[str, torch.float]: - """Calculates all metrics and adds all the results into one dictionary for logging""" + def forward(self, mode="train", **kwargs) -> Dict[str, torch.float]: + """Calculates all metrics and adds all the results into one dictionary for logging.""" compiled_dict = {} for metric in self.metrics: - metric_results = metric(pred, batch, return_label=True, **kwargs) + metric_results = metric(mode=mode, return_label=True, **kwargs) for k, v in metric_results.items(): - compiled_dict[f'{mode}_{k}'] = v + compiled_dict[f"{mode}_{k}"] = v return compiled_dict diff --git a/src/models/components/metrics/r2.py b/src/models/components/metrics/r2.py new file mode 100644 index 0000000..cd2d38e --- /dev/null +++ b/src/models/components/metrics/r2.py @@ -0,0 +1,28 @@ +from typing import Dict, override + +import torch + +from src.models.components.metrics.base_metrics import BaseMetrics + + +class RSquared(BaseMetrics): + def __init__(self) -> None: + super().__init__() + self.name = "r2" + + @override + def forward( + self, + pred: torch.Tensor, + labels: torch.Tensor | None = None, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs, + ) -> torch.Tensor | Dict[str, torch.Tensor]: + + labels = labels if labels is not None else batch.get("target") + + ss_res = torch.sum((labels - pred) ** 2) + ss_tot = torch.sum((labels - torch.mean(labels)) ** 2) + 1e-12 + r2 = 1.0 - ss_res / ss_tot + + return {self.name: r2} From 96ab9bb877efc7e36e1746ddfa76956323617037 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:19:46 +0100 Subject: [PATCH 19/28] Adapt metrics, losses for metrics wrapper --- .../components/loss_fns/base_loss_fn.py | 10 ++++++- src/models/components/loss_fns/bce_loss.py | 20 +++++++++++-- src/models/components/loss_fns/clip_loss.py | 12 ++++++-- .../{loss_fns => metrics}/top_k_accuracy.py | 28 ++++++++++--------- 4 files changed, 50 insertions(+), 20 deletions(-) rename src/models/components/{loss_fns => metrics}/top_k_accuracy.py (68%) diff --git a/src/models/components/loss_fns/base_loss_fn.py b/src/models/components/loss_fns/base_loss_fn.py index 2f993f8..c9a07f9 100644 --- a/src/models/components/loss_fns/base_loss_fn.py +++ b/src/models/components/loss_fns/base_loss_fn.py @@ -1,4 +1,5 @@ from abc import ABC, abstractmethod +from typing import Dict import torch from torch import nn @@ -8,7 +9,14 @@ class BaseLossFn(nn.Module, ABC): def __init__(self) -> None: super().__init__() self.criterion: nn.Module | None = None + self.name: str | None = None @abstractmethod - def forward(self, pred: torch.Tensor, labels: torch.Tensor) -> torch.Tensor: + def forward( + self, + pred: torch.Tensor, + labels: torch.Tensor | None = None, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs, + ) -> torch.Tensor: pass diff --git a/src/models/components/loss_fns/bce_loss.py b/src/models/components/loss_fns/bce_loss.py index cd378aa..93ccd07 100644 --- a/src/models/components/loss_fns/bce_loss.py +++ b/src/models/components/loss_fns/bce_loss.py @@ -1,4 +1,4 @@ -from typing import override +from typing import Dict, override import torch from torch import nn @@ -10,10 +10,24 @@ class BCELoss(BaseLossFn): def __init__(self) -> None: super().__init__() self.criterion = nn.BCELoss(reduction="mean") + self.name: str = "bce_loss" @override - def forward(self, pred: torch.Tensor, labels: torch.Tensor) -> torch.Tensor: - return self.criterion(pred, labels) + def forward( + self, + pred: torch.Tensor, + labels: torch.Tensor | None = None, + batch: Dict[str, torch.Tensor] | None = None, + **kwargs, + ) -> torch.Tensor or Dict[str, torch.Tensor]: + + labels = labels if labels is not None else batch.get("target") + loss = self.criterion(pred, labels) + + if "return_label" in kwargs: + return {self.name: loss} + else: + return loss if __name__ == "__main__": diff --git a/src/models/components/loss_fns/clip_loss.py b/src/models/components/loss_fns/clip_loss.py index d451ac5..af958bb 100644 --- a/src/models/components/loss_fns/clip_loss.py +++ b/src/models/components/loss_fns/clip_loss.py @@ -1,4 +1,4 @@ -from typing import override +from typing import Dict, override import torch from torch import nn @@ -14,13 +14,15 @@ def __init__( ) -> None: super().__init__() self.log_temp = nn.Parameter(torch.log(torch.tensor(temperature))) + self.name = "CLIPLoss" @override def forward( self, eo_mod: torch.Tensor, text_mod: torch.Tensor, - ) -> torch.Tensor: + **kwargs, + ) -> torch.Tensor | Dict[str, torch.Tensor]: # Normalise inputs eo_mod = F.normalize(eo_mod, dim=-1) @@ -37,7 +39,11 @@ def forward( loss1 = F.cross_entropy(dot_product, targets) loss2 = F.cross_entropy(dot_product.T, targets) - return (loss1 + loss2) / 2 + loss = (loss1 + loss2) / 2 + if "return_label" in kwargs: + return {self.name: loss} + else: + return loss if __name__ == "__main__": diff --git a/src/models/components/loss_fns/top_k_accuracy.py b/src/models/components/metrics/top_k_accuracy.py similarity index 68% rename from src/models/components/loss_fns/top_k_accuracy.py rename to src/models/components/metrics/top_k_accuracy.py index 0a53e7a..bf9d0d4 100644 --- a/src/models/components/loss_fns/top_k_accuracy.py +++ b/src/models/components/metrics/top_k_accuracy.py @@ -1,18 +1,25 @@ -from typing import override +from typing import Dict, override import torch -import torch.nn.functional as F -from src.models.components.loss_fns.base_loss_fn import BaseLossFn +from src.models.components.metrics.base_metrics import BaseMetrics -class TopKAccuracy(BaseLossFn): - def __init__(self, k_list: list[int] = [1, 5, 10]) -> None: +class TopKAccuracy(BaseMetrics): + def __init__(self, k_list=None) -> None: super().__init__() - self.k_list = k_list + self.k_list = k_list or [1, 5, 10] @override - def forward(self, pred: torch.Tensor, labels: torch.Tensor) -> torch.Tensor: + def forward( + self, + pred: torch.Tensor, + batch: Dict[str, torch.Tensor], + **kwargs, + ) -> Dict[str, torch.float]: + + labels = batch.get("target") + inds_sorted_preds = torch.argsort( pred, dim=1, descending=True ) # dim =1; sort along 2nd dimension (ie per sample) @@ -32,10 +39,5 @@ def forward(self, pred: torch.Tensor, labels: torch.Tensor) -> torch.Tensor: tmp_joint = tmp_pred_greater_th * tmp_label_greater_th n_present = torch.sum(tmp_joint, dim=1) # sum per batch sample top_k_acc = n_present.float() / k # accuracy per batch sample - accs[k] = top_k_acc.mean() - + accs[f"top_{k}_acc"] = top_k_acc.mean() return accs - - -if __name__ == "__main__": - _ = TopKAccuracy() From 14e8cc7df3fac67c1c01a32a02ab56bf9151fec3 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:20:01 +0100 Subject: [PATCH 20/28] Introduce metrics wrapper as config --- configs/train.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/train.yaml b/configs/train.yaml index 58222ff..93b8f02 100644 --- a/configs/train.yaml +++ b/configs/train.yaml @@ -4,7 +4,7 @@ # order of defaults determines the order in which configs override each other defaults: - _self_ - - data: butterfly_coords_text + - data: butterfly_coords - model: predictive_geoclip - callbacks: default - logger: ${oc.env:LOGGER,wandb} @@ -12,6 +12,7 @@ defaults: - paths: ${oc.env:STORAGE_MODE,local} - extras: default - hydra: default + - metrics: butterfly_predictive # experiment configs allow for version control of specific hyperparameters # e.g. best hyperparameters for given model and datamodule From b7f094a4b7e130ead0a49fd3f28296d1cc0df44b Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:21:38 +0100 Subject: [PATCH 21/28] Format hooks --- src/data/heat_guatemala_dataset.py | 6 ++-- .../make_model_ready_heat_guatemala.py | 33 ++++++++++--------- .../pred_heads/mlp_regression_head.py | 3 +- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/data/heat_guatemala_dataset.py b/src/data/heat_guatemala_dataset.py index 44e81dc..5ed42bf 100644 --- a/src/data/heat_guatemala_dataset.py +++ b/src/data/heat_guatemala_dataset.py @@ -1,5 +1,4 @@ -""" -Heat Guatemala LST dataset. +"""Heat Guatemala LST dataset. Location: src/data/heat_guatemala_dataset.py @@ -21,8 +20,7 @@ class HeatGuatemalaDataset(BaseDataset): - """ - Dataset for the urban heat island use case (Guatemala City, LST regression). + """Dataset for the urban heat island use case (Guatemala City, LST regression). CSV layout expected (produced by scripts/make_model_ready_heat_guatemala.py): - name_loc : unique location identifier diff --git a/src/data_preprocessing/make_model_ready_heat_guatemala.py b/src/data_preprocessing/make_model_ready_heat_guatemala.py index cfc1da9..19d595e 100644 --- a/src/data_preprocessing/make_model_ready_heat_guatemala.py +++ b/src/data_preprocessing/make_model_ready_heat_guatemala.py @@ -1,6 +1,5 @@ -""" -Build model-ready CSV for the Heat Guatemala use case (data/heat_guatemala/model_ready_heat_guatemala.csv). -""" +"""Build model-ready CSV for the Heat Guatemala use case +(data/heat_guatemala/model_ready_heat_guatemala.csv).""" import argparse import re @@ -87,19 +86,23 @@ def main(source_csv: str, out_csv: str, drop_zero_lst: bool = True) -> None: # ------------------------------------------------------------------ # # 2. Build output skeleton # # ------------------------------------------------------------------ # - out = pd.DataFrame({ - "name_loc": [f"heat_{i:06d}" for i in range(len(df))], - "lat": df["LAT"].astype(float), - "lon": df["LONG"].astype(float), - "target_lst": df[target_col].astype(float), - }) + out = pd.DataFrame( + { + "name_loc": [f"heat_{i:06d}" for i in range(len(df))], + "lat": df["LAT"].astype(float), + "lon": df["LONG"].astype(float), + "target_lst": df[target_col].astype(float), + } + ) # Verify target is clean assert out["target_lst"].isna().sum() == 0, "BUG: NaN in target after cleaning" - print(f"Target stats: mean={out['target_lst'].mean():.2f} " - f"std={out['target_lst'].std():.2f} " - f"min={out['target_lst'].min():.2f} " - f"max={out['target_lst'].max():.2f}") + print( + f"Target stats: mean={out['target_lst'].mean():.2f} " + f"std={out['target_lst'].std():.2f} " + f"min={out['target_lst'].min():.2f} " + f"max={out['target_lst'].max():.2f}" + ) # ------------------------------------------------------------------ # # 3. Numeric features — impute or drop # @@ -168,7 +171,7 @@ def main(source_csv: str, out_csv: str, drop_zero_lst: bool = True) -> None: if __name__ == "__main__": ap = argparse.ArgumentParser() ap.add_argument("--source_csv", required=True) - ap.add_argument("--out_csv", required=True) + ap.add_argument("--out_csv", required=True) ap.add_argument("--drop_zero_lst", type=lambda x: x.lower() != "false", default=True) args = ap.parse_args() - main(args.source_csv, args.out_csv, args.drop_zero_lst) \ No newline at end of file + main(args.source_csv, args.out_csv, args.drop_zero_lst) diff --git a/src/models/components/pred_heads/mlp_regression_head.py b/src/models/components/pred_heads/mlp_regression_head.py index e835b5a..c52509a 100644 --- a/src/models/components/pred_heads/mlp_regression_head.py +++ b/src/models/components/pred_heads/mlp_regression_head.py @@ -1,5 +1,4 @@ -""" -MLP regression prediction head. +"""MLP regression prediction head. Renamed from: mlp_reg_pred_head.py → mlp_regression_head.py Location: src/models/components/pred_heads/mlp_regression_head.py From 524958a68d8fe789ae73693d498246b3b76b8ab6 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:22:07 +0100 Subject: [PATCH 22/28] Format hooks --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 8cd772d..c560cdf 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,6 @@ We follow the directory structure from the [Hydra-Lightning template](https://gi └── README.md ``` - ## Architecture Overview The diagram below shows how configuration files, datasets, and model components @@ -204,8 +203,6 @@ relate to each other in the AETHER framework. ![Framework Architecture](docs/figures/diagram.png) - - ## Attribution This repo is based on the [Hydra-Lightning template](https://github.com/ashleve/lightning-hydra-template). From a95f0b278829fd6c0eadd839fc3d87edb4386fb3 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:22:28 +0100 Subject: [PATCH 23/28] Format hooks --- .../eo_encoders/multimodal_encoder.py | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/src/models/components/eo_encoders/multimodal_encoder.py b/src/models/components/eo_encoders/multimodal_encoder.py index c8f6603..7dbf61d 100644 --- a/src/models/components/eo_encoders/multimodal_encoder.py +++ b/src/models/components/eo_encoders/multimodal_encoder.py @@ -1,11 +1,8 @@ -""" -Unified multimodal encoder for EO data. - +"""Unified multimodal encoder for EO data. Controlled entirely via constructor flags: - use_coords: encode lat/lon with GeoClip - use_tabular: encode feat_* tabular columns - """ from typing import Dict, override @@ -19,9 +16,9 @@ class MultiModalEncoder(BaseEOEncoder): """ - - coords only (use_coords=True, use_tabular=False) - - tabular only (use_coords=False, use_tabular=True) - - coords + tabular (use_coords=True, use_tabular=True) + - coords only (use_coords=True, use_tabular=False) + - tabular only (use_coords=False, use_tabular=True) + - coords + tabular (use_coords=True, use_tabular=True) """ def __init__( @@ -29,13 +26,11 @@ def __init__( use_coords: bool = True, use_tabular: bool = False, tab_embed_dim: int = 64, - tabular_dim: int = None, + tabular_dim: int = None, ) -> None: super().__init__() - assert use_coords or use_tabular, ( - "At least one of use_coords or use_tabular must be True." - ) + assert use_coords or use_tabular, "At least one of use_coords or use_tabular must be True." self.use_coords = use_coords self.use_tabular = use_tabular @@ -45,7 +40,7 @@ def __init__( coords_dim = 0 if use_coords: self.coords_encoder = GeoClipCoordinateEncoder() - coords_dim = self.coords_encoder.output_dim # 512 + coords_dim = self.coords_encoder.output_dim # 512 self._coords_dim = coords_dim @@ -62,12 +57,10 @@ def __init__( # ------------------------------------------------------------------ def build_tabular_branch(self, tabular_dim: int) -> None: - """ - Build (or rebuild) the tabular projection layer. - """ + """Build (or rebuild) the tabular projection layer.""" if self._tabular_ready and hasattr(self, "_last_tabular_dim"): if self._last_tabular_dim == tabular_dim: - return # already built with correct dim + return # already built with correct dim self.tabular_proj = nn.Sequential( nn.LayerNorm(tabular_dim), @@ -87,14 +80,14 @@ def forward(self, batch: Dict[str, torch.Tensor]) -> torch.Tensor: parts = [] if self.use_coords: - parts.append(self.coords_encoder(batch)) # (B, 512) + parts.append(self.coords_encoder(batch)) # (B, 512) if self.use_tabular: assert self._tabular_ready, ( "Tabular branch not built yet. Call build_tabular_branch(tabular_dim) first, " "or pass tabular_dim to the constructor." ) - tab = batch["eo"]["tabular"].float() # (B, tabular_dim) - parts.append(self.tabular_proj(tab)) # (B, tab_embed_dim) + tab = batch["eo"]["tabular"].float() # (B, tabular_dim) + parts.append(self.tabular_proj(tab)) # (B, tab_embed_dim) return torch.cat(parts, dim=-1) From 3e6967a53ae913c0ff737335deb515124191ef2c Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:22:53 +0100 Subject: [PATCH 24/28] De-duplicate regression predictive model --- src/data/heat_guatemala_dataset.py | 9 -- src/models/base_model.py | 22 ++-- src/models/predictive_model.py | 35 ++++-- src/models/predictive_model_regression.py | 123 ---------------------- src/models/text_alignment_model.py | 119 +++++++-------------- src/train.py | 4 +- 6 files changed, 78 insertions(+), 234 deletions(-) delete mode 100644 src/models/predictive_model_regression.py diff --git a/src/data/heat_guatemala_dataset.py b/src/data/heat_guatemala_dataset.py index 5ed42bf..3099b44 100644 --- a/src/data/heat_guatemala_dataset.py +++ b/src/data/heat_guatemala_dataset.py @@ -61,15 +61,6 @@ def __init__( use_features=use_features, ) - # ------------------------------------------------------------------ - # Properties - # ------------------------------------------------------------------ - - @property - def tabular_dim(self) -> int: - """Number of tabular features (feat_* columns). 0 if none.""" - return len(self.feat_names) - # ------------------------------------------------------------------ # Required overrides # ------------------------------------------------------------------ diff --git a/src/models/base_model.py b/src/models/base_model.py index 3a7da11..407d08a 100644 --- a/src/models/base_model.py +++ b/src/models/base_model.py @@ -5,6 +5,7 @@ from lightning import LightningModule from src.models.components.loss_fns.base_loss_fn import BaseLossFn +from src.models.components.metrics.metrics_wrapper import MetricsWrapper class BaseModel(LightningModule, ABC): @@ -14,26 +15,29 @@ def __init__( optimizer: torch.optim.Optimizer, scheduler: torch.optim.lr_scheduler, loss_fn: BaseLossFn, + metrics: MetricsWrapper, num_classes: int | None = None, + tabular_dim: int | None = None, ) -> None: """Interface for any model. - :param trainable_modules: - :param optimizer: - :param scheduler: - :param loss_fn: - :param num_classes: + :param trainable_modules: which modules to train + :param optimizer: optimizer for the model weight update + :param scheduler: scheduler for the model weight update + :param loss_fn: loss function + :param metrics: metrics to track for model performance estimation + :param num_classes: number of classes to predict """ super().__init__() self.save_hyperparameters( - ignore=["loss_fn", "eo_encoder", "prediction_head", "text_encoder"] + ignore=["loss_fn", "eo_encoder", "prediction_head", "text_encoder", "metrics"] ) self.trainable_modules = trainable_modules - self.num_classes: int = num_classes - - # Loss + self.num_classes = num_classes + self.tabular_dim = tabular_dim self.loss_fn = loss_fn + self.metrics = metrics @final def freezer(self) -> None: diff --git a/src/models/predictive_model.py b/src/models/predictive_model.py index b9b1f5f..f46a4dc 100644 --- a/src/models/predictive_model.py +++ b/src/models/predictive_model.py @@ -5,8 +5,9 @@ from src.models.base_model import BaseModel from src.models.components.eo_encoders.base_eo_encoder import BaseEOEncoder +from src.models.components.eo_encoders.multimodal_encoder import MultiModalEncoder from src.models.components.loss_fns.base_loss_fn import BaseLossFn -from src.models.components.loss_fns.top_k_accuracy import TopKAccuracy +from src.models.components.metrics.metrics_wrapper import MetricsWrapper from src.models.components.pred_heads.linear_pred_head import ( BasePredictionHead, ) @@ -21,7 +22,9 @@ def __init__( optimizer: torch.optim.Optimizer, scheduler: torch.optim.lr_scheduler, loss_fn: BaseLossFn, + metrics: MetricsWrapper, num_classes: int | None = None, + tabular_dim: int | None = None, ) -> None: """Implementation of the predictive model with replaceable EO encoder, and prediction head. @@ -31,12 +34,26 @@ def __init__( :param optimizer: optimizer to use for training :param scheduler: scheduler to use for training :param loss_fn: loss function to use + :param metrics: metrics to use for model performance evaluation :param num_classes: number of target classes + :param tabular_dim: number of tabular features """ - super().__init__(trainable_modules, optimizer, scheduler, loss_fn, num_classes) + + super().__init__( + trainable_modules, optimizer, scheduler, loss_fn, metrics, num_classes, tabular_dim + ) + # EO encoder configuration self.eo_encoder = eo_encoder + # TODO: move to multi-modal eo encoder + if ( + isinstance(self.eo_encoder, MultiModalEncoder) + and self.eo_encoder.use_tabular + and not self.eo_encoder._tabular_ready + ): + self.eo_encoder.build_tabular_branch(tabular_dim) + # Prediction head self.prediction_head = prediction_head self.prediction_head.set_dim(input_dim=self.eo_encoder.output_dim, output_dim=num_classes) @@ -56,15 +73,15 @@ def forward(self, batch: Dict[str, torch.Tensor]) -> torch.Tensor: @override def _step(self, batch: Dict[str, torch.Tensor], mode: str = "train") -> torch.Tensor: feats = self.forward(batch) + + log_kwargs = dict( + on_step=False, on_epoch=True, prog_bar=True, sync_dist=True, batch_size=feats.size(0) + ) loss = self.loss_fn(feats, batch.get("target")) + self.log(f"{mode}_loss", loss, **log_kwargs) - self.log(f"{mode}_loss", loss, on_step=False, on_epoch=True, prog_bar=True) - mse_loss = F.mse_loss(feats, batch.get("target")) - self.log(f"{mode}_mse_loss", mse_loss, on_step=False, on_epoch=True) - top_k_accs = TopKAccuracy(k_list=[1, 5, 10])(feats, batch.get("target")) - for k, acc in top_k_accs.items(): - self.log(f"{mode}_top_{k}_acc", acc, on_step=False, on_epoch=True) - return loss + metrics = self.metrics(pred=feats, batch=batch, mode=mode) + self.log_dict(metrics, **log_kwargs) if __name__ == "__main__": diff --git a/src/models/predictive_model_regression.py b/src/models/predictive_model_regression.py deleted file mode 100644 index 764f472..0000000 --- a/src/models/predictive_model_regression.py +++ /dev/null @@ -1,123 +0,0 @@ -""" -Regression variant of the predictive model (MSE / MAE / RMSE / R²). - -Location: src/models/predictive_model_regression.py - -Key changes vs original: - - setup(stage) injects tabular_dim into MultiModalEncoder automatically, - so tabular_dim never needs to be hardcoded in any config. - - num_classes defaults to 1 (single LST value). - - All regression metrics (MSE, RMSE, MAE, R²) are logged per split. -""" - -from typing import Dict, override - -import torch -import torch.nn.functional as F - -from src.models.base_model import BaseModel -from src.models.components.eo_encoders.multimodal_encoder import MultiModalEncoder - - -class PredictiveRegressionModel(BaseModel): - - def __init__( - self, - eo_encoder, - prediction_head, - trainable_modules, - optimizer, - scheduler, - loss_fn, - num_classes: int = 1, - **kwargs, - ): - super().__init__( - trainable_modules=trainable_modules, - optimizer=optimizer, - scheduler=scheduler, - loss_fn=loss_fn, - num_classes=num_classes, - ) - - self.eo_encoder = eo_encoder - self.prediction_head = prediction_head - - # Prediction head wiring happens AFTER setup() resolves tabular_dim. - # If the encoder does NOT need tabular data, we can wire immediately. - if not ( - isinstance(self.eo_encoder, MultiModalEncoder) - and self.eo_encoder.use_tabular - ): - self._wire_head() - self.freezer() - - # ------------------------------------------------------------------ - # Lightning hooks - # ------------------------------------------------------------------ - - def setup(self, stage: str) -> None: - """ - Called by Lightning after the datamodule is ready. - Injects tabular_dim into the encoder if it needs it, - then wires the prediction head dimensions. - """ - if ( - isinstance(self.eo_encoder, MultiModalEncoder) - and self.eo_encoder.use_tabular - and not self.eo_encoder._tabular_ready - ): - # Pull tabular_dim from the datamodule — no hardcoding needed! - tabular_dim = self.trainer.datamodule.tabular_dim - self.eo_encoder.build_tabular_branch(tabular_dim) - self._wire_head() - - self.freezer() - - # ------------------------------------------------------------------ - # Internals - # ------------------------------------------------------------------ - - def _wire_head(self) -> None: - """Connect encoder output_dim → head input_dim, then build head layers.""" - self.prediction_head.set_dim( - input_dim=self.eo_encoder.output_dim, - output_dim=self.num_classes, - ) - self.prediction_head.configure_nn() - if "prediction_head" not in self.trainable_modules: - self.trainable_modules.append("prediction_head") - - # ------------------------------------------------------------------ - # Forward & step - # ------------------------------------------------------------------ - - @override - def forward(self, batch: Dict[str, torch.Tensor]) -> torch.Tensor: - feats = self.eo_encoder(batch) - feats = F.normalize(feats, dim=-1) - return self.prediction_head(feats) - - @override - def _step(self, batch: Dict[str, torch.Tensor], mode: str = "train") -> torch.Tensor: - y_hat = self.forward(batch) - y = batch["target"] - - loss = self.loss_fn(y_hat, y) - - mse = F.mse_loss(y_hat, y) - rmse = torch.sqrt(mse) - mae = F.l1_loss(y_hat, y) - - ss_res = torch.sum((y - y_hat) ** 2) - ss_tot = torch.sum((y - torch.mean(y)) ** 2) + 1e-12 - r2 = 1.0 - ss_res / ss_tot - - log_kwargs = dict(on_step=False, on_epoch=True) - self.log(f"{mode}_loss", loss, prog_bar=True, **log_kwargs) - self.log(f"{mode}_mse", mse, **log_kwargs) - self.log(f"{mode}_rmse", rmse, **log_kwargs) - self.log(f"{mode}_mae", mae, **log_kwargs) - self.log(f"{mode}_r2", r2, **log_kwargs) - - return loss diff --git a/src/models/text_alignment_model.py b/src/models/text_alignment_model.py index cb2e04e..21b476a 100644 --- a/src/models/text_alignment_model.py +++ b/src/models/text_alignment_model.py @@ -5,7 +5,9 @@ from src.models.base_model import BaseModel from src.models.components.eo_encoders.base_eo_encoder import BaseEOEncoder +from src.models.components.eo_encoders.multimodal_encoder import MultiModalEncoder from src.models.components.loss_fns.base_loss_fn import BaseLossFn +from src.models.components.metrics.metrics_wrapper import MetricsWrapper from src.models.components.pred_heads.linear_pred_head import ( BasePredictionHead, ) @@ -22,9 +24,11 @@ def __init__( optimizer: torch.optim.Optimizer, scheduler: torch.optim.lr_scheduler, loss_fn: BaseLossFn, - trainable_modules: list[str] | None = None, - prediction_head: BasePredictionHead | None = None, + trainable_modules: list[str], + metrics: MetricsWrapper, num_classes: int | None = None, + tabular_dim: int | None = None, + prediction_head: BasePredictionHead | None = None, ) -> None: """Implementation of contrastive text-eo modality alignment model. @@ -34,13 +38,25 @@ def __init__( :param scheduler: scheduler to use for training :param loss_fn: loss function to use (contrastive) :param trainable_modules: list of modules to train (parts/modules or modules, modules) - :param prediction_head: optional prediction head module + :param metrics: metrics to use for model performance evaluation :param num_classes: number of target classes + :param tabular_dim: number of tabular features + :param prediction_head: prediction head """ - super().__init__(trainable_modules, optimizer, scheduler, loss_fn, num_classes) + super().__init__( + trainable_modules, optimizer, scheduler, loss_fn, metrics, num_classes, tabular_dim + ) # Encoders configuration self.eo_encoder = eo_encoder + # TODO: move to multi-modal eo encoder + if ( + isinstance(self.eo_encoder, MultiModalEncoder) + and self.eo_encoder.use_tabular + and not self.eo_encoder._tabular_ready + ): + self.eo_encoder.build_tabular_branch(tabular_dim) + self.text_encoder = text_encoder # TODO: if eo==geoclip_img pass on shared mlp @@ -93,94 +109,31 @@ def _step(self, batch: Dict[str, torch.Tensor], mode: str = "train") -> torch.Te feats = feats.reshape(2, -1, feats.size(-1)) eo_feats, text_feats = feats[0], feats[1] + # Get loss + loss = self.loss_fn(eo_feats, text_feats) + # Get similarities with torch.no_grad(): - _ = self._cos_sim_calc(eo_feats, text_feats, mode) + metrics = self.metrics( + mode=mode, + eo_feats=eo_feats, + text_feats=text_feats, + local_batch_size=local_batch_size, + ) - # Get loss - loss = self.loss_fn(eo_feats, text_feats) - self.log( - f"{mode}_loss", - loss, + # Logging + log_kwargs = dict( on_step=False, on_epoch=True, prog_bar=True, sync_dist=True, batch_size=local_batch_size, ) - if self.loss_fn.__getattr__("log_temp") and mode == "train": - self.log( - "temp", - self.loss_fn.__getattr__("log_temp").exp(), - on_step=False, - on_epoch=True, - prog_bar=True, - sync_dist=True, - batch_size=local_batch_size, - ) + self.log(f"{mode}_loss", loss, **log_kwargs) - return loss - - def _cos_sim_calc(self, eo_feats, text_feats, mode, log=True): - """Calculate cosine similarity between eo and text embeddings and logs it.""" - # Similarity matrix - cos_sim_matrix = F.cosine_similarity(eo_feats[:, None, :], text_feats[None, :, :], dim=-1) - - local_batch_size = eo_feats.size(0) - - # Average for positive and negative pairs - # TODO change label option if we change what gets treated to be pos/neg - id_matrix = torch.eye(cos_sim_matrix.shape[0], dtype=torch.bool) - pos_sim = cos_sim_matrix[id_matrix] - neg_sim = cos_sim_matrix[~id_matrix] - - # Average - avr_sim = torch.mean(cos_sim_matrix) - sub_neg_sim = neg_sim[ - torch.randperm(len(neg_sim))[: len(pos_sim)] - ] # pick same amount of negatives as positives - balanced_sim = torch.cat([pos_sim, sub_neg_sim], dim=0) - balanced_avr_sim = torch.mean(balanced_sim) - - if log: - self.log( - f"{mode}_avr_sim", - avr_sim, - on_step=False, - on_epoch=True, - prog_bar=True, - sync_dist=True, - batch_size=local_batch_size, - ) - self.log( - f"{mode}_avr_sim_balanced", - balanced_avr_sim, - on_step=False, - on_epoch=True, - prog_bar=True, - sync_dist=True, - batch_size=local_batch_size, - ) - self.log( - f"{mode}_pos_sim", - torch.mean(pos_sim), - on_step=False, - on_epoch=True, - prog_bar=True, - sync_dist=True, - batch_size=local_batch_size, - ) - self.log( - f"{mode}_neg_sim", - torch.mean(neg_sim), - on_step=False, - on_epoch=True, - prog_bar=True, - sync_dist=True, - batch_size=local_batch_size, - ) - return avr_sim, pos_sim, neg_sim + if self.loss_fn.__getattr__("log_temp") and mode == "train": + self.log("temp", self.loss_fn.__getattr__("log_temp").exp(), **log_kwargs) + self.log_dict(metrics, **log_kwargs) -if __name__ == "__main__": - _ = TextAlignmentModel(None, None, None, None, None, None, None) + return loss diff --git a/src/train.py b/src/train.py index 4c09a8c..34f4a99 100644 --- a/src/train.py +++ b/src/train.py @@ -51,7 +51,9 @@ def train(cfg: DictConfig) -> Tuple[Dict[str, Any], Dict[str, Any]]: datamodule: BaseDataModule = hydra.utils.instantiate(cfg.data) log.info(f"Instantiating model <{cfg.model._target_}>") - model: LightningModule = hydra.utils.instantiate(cfg.model, num_classes=datamodule.num_classes) + model: LightningModule = hydra.utils.instantiate( + cfg.model, num_classes=datamodule.num_classes, tabular_dim=datamodule.tabular_dim + ) log.info("Instantiating callbacks...") callbacks: List[Callback] = instantiate_callbacks(cfg.get("callbacks")) From f096f2067175eca33b831e764cc223636094fdbd Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:23:21 +0100 Subject: [PATCH 25/28] Metrics as configs, use predictive model instead of predictive regression model --- configs/data/heat_guatemala.yaml | 3 +-- configs/experiment/alignment.yaml | 1 + configs/experiment/alignment_llm2clip.yaml | 1 + configs/experiment/heat_guatemala_coords_reg.yaml | 2 +- configs/experiment/heat_guatemala_fusion_reg.yaml | 2 +- configs/experiment/heat_guatemala_tabular_reg.yaml | 2 +- configs/experiment/prediction.yaml | 1 + configs/metrics/butterfly_predictive.yaml | 6 ++++++ configs/metrics/contrastive_similarities.yaml | 4 ++++ configs/metrics/guatemala_regression.yaml | 7 +++++++ configs/model/geoclip_alignment.yaml | 2 ++ configs/model/geoclip_llm2clip_alignment.yaml | 2 ++ configs/model/heat_fusion_reg.yaml | 6 ++++-- configs/model/heat_geoclip_reg.yaml | 4 +++- configs/model/heat_tabular_reg.yaml | 4 +++- configs/model/predictive_cnn_s2.yaml | 2 ++ configs/model/predictive_geoclip.yaml | 2 ++ 17 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 configs/metrics/butterfly_predictive.yaml create mode 100644 configs/metrics/contrastive_similarities.yaml create mode 100644 configs/metrics/guatemala_regression.yaml diff --git a/configs/data/heat_guatemala.yaml b/configs/data/heat_guatemala.yaml index eb42022..271fd65 100644 --- a/configs/data/heat_guatemala.yaml +++ b/configs/data/heat_guatemala.yaml @@ -19,6 +19,5 @@ split_mode: "from_file" save_split: false saved_split_file_name: "split_indices_heat_guatemala_2026-02-20-1148.pth" - train_val_test_split: [0.7, 0.15, 0.15] -seed: ${seed} \ No newline at end of file +seed: ${seed} diff --git a/configs/experiment/alignment.yaml b/configs/experiment/alignment.yaml index a649ca7..d6281f8 100644 --- a/configs/experiment/alignment.yaml +++ b/configs/experiment/alignment.yaml @@ -6,6 +6,7 @@ defaults: - override /model: geoclip_alignment - override /data: butterfly_coords_text + - override /metrics: contrastive_similarities # all parameters below will be merged with parameters from default configurations set above # this allows you to overwrite only specified parameters diff --git a/configs/experiment/alignment_llm2clip.yaml b/configs/experiment/alignment_llm2clip.yaml index 3311990..2f841ab 100644 --- a/configs/experiment/alignment_llm2clip.yaml +++ b/configs/experiment/alignment_llm2clip.yaml @@ -6,6 +6,7 @@ defaults: - override /model: geoclip_llm2clip_alignment - override /data: butterfly_coords_text + - override /metrics: contrastive_similarities # all parameters below will be merged with parameters from default configurations set above # this allows you to overwrite only specified parameters diff --git a/configs/experiment/heat_guatemala_coords_reg.yaml b/configs/experiment/heat_guatemala_coords_reg.yaml index f335d38..3789370 100644 --- a/configs/experiment/heat_guatemala_coords_reg.yaml +++ b/configs/experiment/heat_guatemala_coords_reg.yaml @@ -2,10 +2,10 @@ # configs/experiment/heat_guatemala_coords_reg.yaml # Variant A: GeoClip coordinates only - defaults: - override /model: heat_geoclip_reg - override /data: heat_guatemala + - override /metrics: guatemala_regression tags: ["heat_island", "guatemala", "coords_only", "regression"] seed: 12345 diff --git a/configs/experiment/heat_guatemala_fusion_reg.yaml b/configs/experiment/heat_guatemala_fusion_reg.yaml index 4ab69f5..1c42ffa 100644 --- a/configs/experiment/heat_guatemala_fusion_reg.yaml +++ b/configs/experiment/heat_guatemala_fusion_reg.yaml @@ -2,10 +2,10 @@ # configs/experiment/heat_guatemala_fusion_reg.yaml # Variant C: GeoClip + tabular fusion - defaults: - override /model: heat_fusion_reg - override /data: heat_guatemala + - override /metrics: guatemala_regression tags: ["heat_island", "guatemala", "fusion", "regression"] seed: 12345 diff --git a/configs/experiment/heat_guatemala_tabular_reg.yaml b/configs/experiment/heat_guatemala_tabular_reg.yaml index 740b125..4c14499 100644 --- a/configs/experiment/heat_guatemala_tabular_reg.yaml +++ b/configs/experiment/heat_guatemala_tabular_reg.yaml @@ -2,10 +2,10 @@ # configs/experiment/heat_guatemala_tabular_reg.yaml # Variant B: tabular features only - defaults: - override /model: heat_tabular_reg - override /data: heat_guatemala + - override /metrics: guatemala_regression tags: ["heat_island", "guatemala", "tabular_only", "regression"] seed: 12345 diff --git a/configs/experiment/prediction.yaml b/configs/experiment/prediction.yaml index 18ccd52..63839ca 100644 --- a/configs/experiment/prediction.yaml +++ b/configs/experiment/prediction.yaml @@ -6,6 +6,7 @@ defaults: - override /model: predictive_geoclip - override /data: butterfly_coords + - override /metrics: butterfly_predictive # all parameters below will be merged with parameters from default configurations set above # this allows you to overwrite only specified parameters diff --git a/configs/metrics/butterfly_predictive.yaml b/configs/metrics/butterfly_predictive.yaml new file mode 100644 index 0000000..5e9d2e4 --- /dev/null +++ b/configs/metrics/butterfly_predictive.yaml @@ -0,0 +1,6 @@ +_target_: src.models.components.metrics.metrics_wrapper.MetricsWrapper + +metrics: + - _target_: src.models.components.loss_fns.mse_loss.MSELoss + - _target_: src.models.components.metrics.top_k_accuracy.TopKAccuracy + k_list: [1, 5, 10] diff --git a/configs/metrics/contrastive_similarities.yaml b/configs/metrics/contrastive_similarities.yaml new file mode 100644 index 0000000..842dda2 --- /dev/null +++ b/configs/metrics/contrastive_similarities.yaml @@ -0,0 +1,4 @@ +_target_: src.models.components.metrics.metrics_wrapper.MetricsWrapper + +metrics: + - _target_: src.models.components.metrics.contrastive_similarities.CosineSimilarities diff --git a/configs/metrics/guatemala_regression.yaml b/configs/metrics/guatemala_regression.yaml new file mode 100644 index 0000000..79c441d --- /dev/null +++ b/configs/metrics/guatemala_regression.yaml @@ -0,0 +1,7 @@ +_target_: src.models.components.metrics.metrics_wrapper.MetricsWrapper + +metrics: + - _target_: src.models.components.loss_fns.mse_loss.MSELoss + - _target_: src.models.components.loss_fns.rmse_loss.RMSELoss + - _target_: src.models.components.loss_fns.mae_loss.MAELoss + - _target_: src.models.components.metrics.r2.RSquared diff --git a/configs/model/geoclip_alignment.yaml b/configs/model/geoclip_alignment.yaml index b021cb2..0753e79 100644 --- a/configs/model/geoclip_alignment.yaml +++ b/configs/model/geoclip_alignment.yaml @@ -9,6 +9,8 @@ text_encoder: trainable_modules: [text_encoder.projector, loss_fn.log_temp] +metrics: ${metrics} + optimizer: _target_: torch.optim.Adam _partial_: true diff --git a/configs/model/geoclip_llm2clip_alignment.yaml b/configs/model/geoclip_llm2clip_alignment.yaml index 45de482..76f8878 100644 --- a/configs/model/geoclip_llm2clip_alignment.yaml +++ b/configs/model/geoclip_llm2clip_alignment.yaml @@ -9,6 +9,8 @@ text_encoder: trainable_modules: [text_encoder.projector, loss_fn.log_temp] +metrics: ${metrics} + optimizer: _target_: torch.optim.Adam _partial_: true diff --git a/configs/model/heat_fusion_reg.yaml b/configs/model/heat_fusion_reg.yaml index 6a554c5..e507dd1 100644 --- a/configs/model/heat_fusion_reg.yaml +++ b/configs/model/heat_fusion_reg.yaml @@ -6,13 +6,13 @@ # Variant: GeoClip (coords) + tabular fusion # Encoder output = GeoClip (512) + tabular projection (64) = 576-dim -_target_: src.models.predictive_model_regression.PredictiveRegressionModel +_target_: src.models.predictive_model.PredictiveModel eo_encoder: _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder use_coords: true use_tabular: true - tab_embed_dim: 64 +# tab_embed_dim: 64 prediction_head: _target_: src.models.components.pred_heads.mlp_regression_head.MLPRegressionPredictionHead @@ -22,6 +22,8 @@ prediction_head: # GeoClip frozen; tabular projection + head are trained. trainable_modules: [eo_encoder, prediction_head] +metrics: ${metrics} + optimizer: _target_: torch.optim.Adam _partial_: true diff --git a/configs/model/heat_geoclip_reg.yaml b/configs/model/heat_geoclip_reg.yaml index eeb5f9e..a33b976 100644 --- a/configs/model/heat_geoclip_reg.yaml +++ b/configs/model/heat_geoclip_reg.yaml @@ -6,7 +6,7 @@ # # Variant: coords only (GeoClip encodes lat/lon → 512-dim embedding) -_target_: src.models.predictive_model_regression.PredictiveRegressionModel +_target_: src.models.predictive_model.PredictiveModel eo_encoder: _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder @@ -21,6 +21,8 @@ prediction_head: # Only the prediction head is trained; GeoClip encoder is frozen. trainable_modules: [prediction_head] +metrics: ${metrics} + optimizer: _target_: torch.optim.Adam _partial_: true diff --git a/configs/model/heat_tabular_reg.yaml b/configs/model/heat_tabular_reg.yaml index edd8dd3..affadab 100644 --- a/configs/model/heat_tabular_reg.yaml +++ b/configs/model/heat_tabular_reg.yaml @@ -12,7 +12,9 @@ # 3. PredictiveRegressionModel.setup() calls # self.eo_encoder.build_tabular_branch(self.trainer.datamodule.tabular_dim) -_target_: src.models.predictive_model_regression.PredictiveRegressionModel +_target_: src.models.predictive_model.PredictiveModel + +metrics: ${metrics} eo_encoder: _target_: src.models.components.eo_encoders.multimodal_encoder.MultiModalEncoder diff --git a/configs/model/predictive_cnn_s2.yaml b/configs/model/predictive_cnn_s2.yaml index df1db6d..628ba66 100644 --- a/configs/model/predictive_cnn_s2.yaml +++ b/configs/model/predictive_cnn_s2.yaml @@ -11,6 +11,8 @@ prediction_head: trainable_modules: [eo_encoder, prediction_head] +metrics: ${metrics} + optimizer: _target_: torch.optim.Adam _partial_: true diff --git a/configs/model/predictive_geoclip.yaml b/configs/model/predictive_geoclip.yaml index f9a2df0..ca7390f 100644 --- a/configs/model/predictive_geoclip.yaml +++ b/configs/model/predictive_geoclip.yaml @@ -8,6 +8,8 @@ prediction_head: trainable_modules: [prediction_head] +metrics: ${metrics} + optimizer: _target_: torch.optim.Adam _partial_: true From 6882407c30f454231ce939e50906488ae73cba59 Mon Sep 17 00:00:00 2001 From: gabriele Date: Tue, 24 Feb 2026 15:23:51 +0100 Subject: [PATCH 26/28] Tabular dimensions introduced earlier to remove need for wiring --- src/data/base_datamodule.py | 6 +----- src/data/base_dataset.py | 25 +++++++++++-------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/data/base_datamodule.py b/src/data/base_datamodule.py index 2c94f6e..3b639ec 100644 --- a/src/data/base_datamodule.py +++ b/src/data/base_datamodule.py @@ -68,11 +68,7 @@ def __init__( @property def tabular_dim(self): - dataset = self.data_train - # Unwrap Subset wrappers (e.g. from random_split) - while hasattr(dataset, "dataset"): - dataset = dataset.dataset - return dataset.tabular_dim + return self.dataset.tabular_dim @property def num_classes(self) -> int: diff --git a/src/data/base_dataset.py b/src/data/base_dataset.py index 258fb43..ae669d2 100644 --- a/src/data/base_dataset.py +++ b/src/data/base_dataset.py @@ -74,15 +74,17 @@ def __init__( self.df: pd.DataFrame = pd.read_csv(path_csv) # Other attributes or placeholders - self.seed = seed + self.pooch_cli = None self.num_classes = None - self.mode: str = mode # 'train', 'val', 'test' + self.tabular_dim = None + self.seed = seed self.use_target_data: bool = use_target_data self.use_aux_data: bool = use_aux_data - self.records: dict[str, Any] = self.get_records() - self.pooch_cli = None self.use_features = use_features + self.mode: str = mode # 'train', 'val', 'test' + self.records: dict[str, Any] = self.get_records() + @final def get_records(self) -> dict[str, Any]: """Gets record dictionary from the dataframe based on what is needed for the model (aux, @@ -115,10 +117,12 @@ def get_records(self) -> dict[str, Any]: if self.use_aux_data: self.aux_names = [c for c in self.df.columns if "aux_" in c] columns.extend(self.aux_names) - + # Include tabular features - self.feat_names = [c for c in self.df.columns if c.startswith("feat_")] - columns.extend(self.feat_names) + if self.use_features: + self.feat_names = [c for c in self.df.columns if c.startswith("feat_")] + columns.extend(self.feat_names) + self.tabular_dim = len(self.feat_names) return self.df.loc[:, columns].to_dict("records") @@ -127,13 +131,6 @@ def __len__(self) -> int: """Returns the length of the dataset.""" return len(self.records) - @final - @property - def tabular_dim(self) -> int: - if not self.use_features: - return 0 - return len(getattr(self, "feat_names", [])) - @abstractmethod def __getitem__(self, idx: int) -> Dict[str, Any]: """Returns a single item from the dataset.""" From 539e6093c47d42afd4e24aa433e3cdba35917b6d Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 2 Mar 2026 14:23:30 +0100 Subject: [PATCH 27/28] Restructure aux handling in the dataset --- configs/data/butterfly_aef.yaml | 2 +- configs/data/butterfly_coords.yaml | 2 +- configs/data/butterfly_coords_text.yaml | 2 +- .../data/butterfly_full_param_example.yaml | 2 +- configs/data/butterfly_s2_rgb.yaml | 2 +- configs/data/heat_guatemala.yaml | 2 +- configs/data/satbird-Kenya_coords.yaml | 2 +- configs/data/satbird_USA-summer_coords.yaml | 2 +- src/data/base_caption_builder.py | 44 ++++++++++---- src/data/base_dataset.py | 42 ++++++++++--- src/data/butterfly_caption_builder.py | 60 +++++++++---------- src/data/butterfly_dataset.py | 13 +++- src/data/collate_fns.py | 53 ++++++++-------- src/data/heat_guatemala_dataset.py | 11 +++- src/data/satbird_dataset.py | 13 +++- tests/conftest.py | 2 +- tests/test_captions.py | 2 +- tests/test_datasets_and_datamodules.py | 5 +- 18 files changed, 164 insertions(+), 97 deletions(-) diff --git a/configs/data/butterfly_aef.yaml b/configs/data/butterfly_aef.yaml index c5aad63..ba9f3087 100644 --- a/configs/data/butterfly_aef.yaml +++ b/configs/data/butterfly_aef.yaml @@ -10,7 +10,7 @@ dataset: size: 256 format: tif use_target_data: true # default true - use_aux_data: false # default false + use_aux_data: none # default false seed: ${seed} cache_dir: ${paths.cache_dir} diff --git a/configs/data/butterfly_coords.yaml b/configs/data/butterfly_coords.yaml index 7bd82e7..f4acb51 100644 --- a/configs/data/butterfly_coords.yaml +++ b/configs/data/butterfly_coords.yaml @@ -7,7 +7,7 @@ dataset: modalities: coords: use_target_data: true - use_aux_data: false + use_aux_data: "none" seed: ${seed} cache_dir: ${paths.cache_dir} diff --git a/configs/data/butterfly_coords_text.yaml b/configs/data/butterfly_coords_text.yaml index c478acf..92b6bd7 100644 --- a/configs/data/butterfly_coords_text.yaml +++ b/configs/data/butterfly_coords_text.yaml @@ -7,7 +7,7 @@ dataset: modalities: coords: use_target_data: false - use_aux_data: true + use_aux_data: "all" seed: ${seed} cache_dir: ${paths.cache_dir} diff --git a/configs/data/butterfly_full_param_example.yaml b/configs/data/butterfly_full_param_example.yaml index 40e327a..541f4c2 100644 --- a/configs/data/butterfly_full_param_example.yaml +++ b/configs/data/butterfly_full_param_example.yaml @@ -16,7 +16,7 @@ dataset: format: npy year: 2019 use_target_data: true - use_aux_data: false + use_aux_data: none seed: ${seed} cache_dir: ${paths.cache_dir} diff --git a/configs/data/butterfly_s2_rgb.yaml b/configs/data/butterfly_s2_rgb.yaml index 47955da..1b4a627 100644 --- a/configs/data/butterfly_s2_rgb.yaml +++ b/configs/data/butterfly_s2_rgb.yaml @@ -12,7 +12,7 @@ dataset: channels: rgb preprocessing: zscored use_target_data: true # default true - use_aux_data: false # default false + use_aux_data: none # default false seed: ${seed} cache_dir: ${paths.cache_dir} diff --git a/configs/data/heat_guatemala.yaml b/configs/data/heat_guatemala.yaml index 271fd65..af8715e 100644 --- a/configs/data/heat_guatemala.yaml +++ b/configs/data/heat_guatemala.yaml @@ -7,7 +7,7 @@ dataset: coords: {} use_target_data: true use_features: true - use_aux_data: false + use_aux_data: none seed: ${seed} cache_dir: ${paths.cache_dir} diff --git a/configs/data/satbird-Kenya_coords.yaml b/configs/data/satbird-Kenya_coords.yaml index c3300a3..9f16ced 100644 --- a/configs/data/satbird-Kenya_coords.yaml +++ b/configs/data/satbird-Kenya_coords.yaml @@ -7,7 +7,7 @@ dataset: modalities: coords: use_target_data: true - use_aux_data: false + use_aux_data: none seed: ${seed} cache_dir: ${paths.cache_dir} study_site: Kenya diff --git a/configs/data/satbird_USA-summer_coords.yaml b/configs/data/satbird_USA-summer_coords.yaml index 683f54a..bf27ec2 100644 --- a/configs/data/satbird_USA-summer_coords.yaml +++ b/configs/data/satbird_USA-summer_coords.yaml @@ -7,7 +7,7 @@ dataset: modalities: coords: use_target_data: true - use_aux_data: false + use_aux_data: none seed: ${seed} cache_dir: ${paths.cache_dir} study_site: USA-summer diff --git a/src/data/base_caption_builder.py b/src/data/base_caption_builder.py index 207c38a..3ca4b77 100644 --- a/src/data/base_caption_builder.py +++ b/src/data/base_caption_builder.py @@ -52,33 +52,53 @@ def _fill(template: str, fillers: Dict[str, str]) -> str: return template @abstractmethod - def _build_from_template(self, template_idx: int, row: List[Any]) -> str: + def _build_from_template( + self, template_idx: int, aux: torch.Tensor, top: List[str] | None = None + ) -> str: """Build caption text from template and row of auxiliary data.""" pass - def random(self, aux_values: List[Any]) -> List[str]: + def random(self, aux_values) -> List[str]: """Return a caption from a randomly sampled template for each data point.""" formatted_rows = [] - template_idx = random.choices( + + batch_size = len(aux_values["aux"]) + + template_ids = random.choices( range(len(self.templates)), - k=len(aux_values), + k=batch_size, ) - for idx, row in zip(template_idx, aux_values): - formatted_rows.append(self._build_from_template(idx, row)) + for ( + i, + template_idx, + ) in enumerate(template_ids): + row_aux = aux_values["aux"][i] + row_top = aux_values.get("top")[i] if aux_values.get("top") else None + formatted_rows.append( + self._build_from_template(template_idx, aux=row_aux, top=row_top) + ) return formatted_rows - def all(self, aux_values: List[Any]) -> List[str]: + def all(self, aux_values) -> List[str]: """Return a list of captions from all available templates.""" formatted_rows = [] - for row in aux_values: + for i in range(0, len(aux_values["aux"])): descriptions = [] + row_aux = aux_values["aux"][i] + row_top = aux_values.get("top")[i] if aux_values.get("top") else None + for template_idx in range(0, len(self)): - descriptions.append(self._build_from_template(template_idx, row)) + descriptions.append( + self._build_from_template(template_idx, aux=row_aux, top=row_top) + ) formatted_rows.append(descriptions) return formatted_rows + def build_concepts(self, aux_values) -> List[str]: + pass + class DummyCaptionBuilder(BaseCaptionBuilder): """Dummy caption builder for testing purposes.""" @@ -89,8 +109,10 @@ def __init__(self, templates_fname: str, data_dir: str, seed: int) -> None: def sync_with_dataset(self, dataset) -> None: pass - def _build_from_template(self, template_idx: int, row: List[Any]) -> str: - first_val = row[0].item() if torch.is_tensor(row) else row[0] + def _build_from_template( + self, template_idx: int, aux: torch.Tensor, top: List[str] | None = None + ) -> str: + first_val = aux[0].item() return f"Location with value {first_val}" diff --git a/src/data/base_dataset.py b/src/data/base_dataset.py index ae669d2..bd727d7 100644 --- a/src/data/base_dataset.py +++ b/src/data/base_dataset.py @@ -1,6 +1,7 @@ import os +import re from abc import ABC, abstractmethod -from typing import Any, Dict, final +from typing import Any, Dict, List, final import numpy as np import pandas as pd @@ -16,7 +17,7 @@ def __init__( data_dir: str, modalities: dict, use_target_data: bool = True, - use_aux_data: bool = False, + use_aux_data: Dict[str, List[str] | str] | str | None = None, dataset_name: str = "BaseDataset", seed: int = 12345, mode: str = "train", @@ -78,10 +79,26 @@ def __init__( self.num_classes = None self.tabular_dim = None self.seed = seed - self.use_target_data: bool = use_target_data - self.use_aux_data: bool = use_aux_data + self.use_target_data = use_target_data self.use_features = use_features + if use_aux_data is None or use_aux_data == "all": + self.use_aux_data = { + "aux": { + "pattern": "^aux_(?!.*top).*", + # 'columns' : [] + }, + "top": { + "pattern": "^aux_.*top.*", + # 'columns' : [] + }, + } + + elif type(use_aux_data) is dict: + self.use_aux_data = use_aux_data + else: + self.use_aux_data = None + self.mode: str = mode # 'train', 'val', 'test' self.records: dict[str, Any] = self.get_records() @@ -107,16 +124,25 @@ def get_records(self) -> dict[str, Any]: ) columns.append(f"{modality}_path") - # Include targets + # Include targets TODO: this could be moved under geo-modalities if self.use_target_data: self.target_names = [c for c in self.df.columns if "target_" in c] columns.extend(self.target_names) self.num_classes = len(self.target_names) # Include aux data - if self.use_aux_data: - self.aux_names = [c for c in self.df.columns if "aux_" in c] - columns.extend(self.aux_names) + if self.use_aux_data is not None: + for k, val in self.use_aux_data.items(): + if val.get("pattern"): + pattern = re.compile(val["pattern"]) + aux_names = [x for x in self.df.columns if pattern.match(x)] + else: + aux_names = val.get( + "columns", + ValueError('use_aux_data should have "pattern" or "columns" defined'), + ) + self.use_aux_data[k] = aux_names + columns.extend(aux_names) # Include tabular features if self.use_features: diff --git a/src/data/butterfly_caption_builder.py b/src/data/butterfly_caption_builder.py index 444b483..66b60a3 100644 --- a/src/data/butterfly_caption_builder.py +++ b/src/data/butterfly_caption_builder.py @@ -1,8 +1,8 @@ -import math import os from typing import Any, List, override import pandas as pd +import torch from src.data.base_caption_builder import ( BaseCaptionBuilder, @@ -27,19 +27,20 @@ def sync_with_dataset(self, dataset: BaseDataset) -> None: corine_columns = self.get_corine_column_keys() humanfootprint_columns = self.get_humanfootprint_column_keys() aux_columns = {**bioclim_columns, **corine_columns, **humanfootprint_columns} - self.column_to_metadata_map = {} + self.column_to_metadata_map = {k: {} for k in dataset.use_aux_data.keys()} - for id, key in enumerate(dataset.aux_names): - if "aux_corine_frac" in key and "top" in key: # to avoid assert statement - description, units = None, None - else: - description, units = aux_columns.get(key) or (None, None) - assert description is not None, f"Key {key} not found in aux columns" - self.column_to_metadata_map[key] = { - "id": id, - "description": description, - "units": units, - } + for aux_cat, cols in dataset.use_aux_data.items(): + for i, c in enumerate(cols): + if "top" in aux_cat: + description, units = None, None + else: + description, units = aux_columns.get(c) or (None, None) + + self.column_to_metadata_map[aux_cat][c] = { + "id": i, + "description": description, + "units": units, + } def get_corine_column_keys(self): """Returns metadata for corine columns.""" @@ -99,7 +100,8 @@ def get_humanfootprint_column_keys(self): def _build_from_template( self, template_idx: int, - row: List[Any], + aux: torch.Tensor, + top: List[str] | None = None, convert_corine_perc: bool = True, ) -> str: """Create caption from template and row of auxiliary data.""" @@ -107,25 +109,19 @@ def _build_from_template( tokens = self.tokens_in_template[template_idx] replacements = {} for token in tokens: - if "aux_corine_frac" in token and "top" in token: - try: - values_dict_top = self.column_to_metadata_map[token] - except KeyError: - raise KeyError( - f"Token {token} not found in column_to_metadata_map {self.column_to_metadata_map}. Check if the token in the template matches the column names in the dataset." - ) - idx_top = values_dict_top["id"] - referral_token = row[ - idx_top - ] # e.g., token 'aux_corine_frac_lowlevel_top_1' might refer to 'corine_frac_211' in this row - referral_token = ( - "aux_" + referral_token if "aux_" not in referral_token else referral_token + init_token = token + if "top" in token: + idx = self.column_to_metadata_map["top"][token]["id"] + token = f"aux_{top[idx]}" + try: + values_dict = self.column_to_metadata_map["aux"][token] + except KeyError: + raise KeyError( + f"Token {token} not found in column_to_metadata_map {self.column_to_metadata_map}. Check if the token in the template matches the column names in the dataset." ) - values_dict = self.column_to_metadata_map[referral_token] - else: - values_dict = self.column_to_metadata_map[token] + idx = values_dict["id"] - value = row[idx] + value = aux[idx].item() formatted_desc = values_dict["description"].lower() or "" units = values_dict["units"] @@ -139,7 +135,7 @@ def _build_from_template( formatted_desc = formatted_desc + f' ({round(value)} {units if units else ""})' else: formatted_desc = formatted_desc + f' of {round(value)} {units if units else ""}' - replacements[token] = formatted_desc + replacements[init_token] = formatted_desc template = self._fill(template, replacements) return template diff --git a/src/data/butterfly_dataset.py b/src/data/butterfly_dataset.py index 4b0344a..422f8c2 100644 --- a/src/data/butterfly_dataset.py +++ b/src/data/butterfly_dataset.py @@ -1,5 +1,5 @@ import os -from typing import Any, Dict, override +from typing import Any, Dict, List, override import numpy as np import pooch @@ -17,7 +17,7 @@ def __init__( data_dir: str, modalities: dict, use_target_data: bool = True, - use_aux_data: bool = False, + use_aux_data: Dict[str, List[str] | str] | None = None, seed: int = 12345, cache_dir: str = None, mock: bool = False, @@ -165,7 +165,14 @@ def __getitem__(self, idx: int) -> Dict[str, Any]: ) if self.use_aux_data: - formatted_row["aux"] = [row[i] for i in self.aux_names] + formatted_row["aux"] = {} + for aux_cat, vals in self.use_aux_data.items(): + if aux_cat == "aux": + formatted_row["aux"][aux_cat] = torch.tensor( + [row[v] for v in vals], dtype=torch.float32 + ) + else: + formatted_row["aux"][aux_cat] = [row[v] for v in vals] return formatted_row diff --git a/src/data/collate_fns.py b/src/data/collate_fns.py index cce80a3..4e37844 100644 --- a/src/data/collate_fns.py +++ b/src/data/collate_fns.py @@ -5,6 +5,15 @@ from src.data.base_caption_builder import BaseCaptionBuilder +def smart_stack(values): + first = values[0] + + if isinstance(first, (torch.Tensor, int, float)): + return torch.stack(values, dim=0) + + return values + + def collate_fn( batch: List[Any], mode: str = "train", @@ -12,32 +21,28 @@ def collate_fn( ) -> Dict[str, torch.Tensor]: """Collates batch into stacked tensors and label lists.""" - # map of all keys present in the batch - keys = batch[0].keys() - eo_keys = batch[0].get("eo", {}).keys() - collected = {k: ([] if k != "eo" else {k_1: [] for k_1 in eo_keys}) for k in keys} - - # fill-in collected items into batch dict - for item in batch: - for k in keys: - if k == "eo": - for k_1 in eo_keys: - collected[k][k_1].append(item[k][k_1]) - else: - collected[k].append(item[k]) - - # stack tensors - for k in keys: - if k == "eo": - for k_1 in eo_keys: - collected[k][k_1] = torch.stack(collected[k][k_1], dim=0) - elif isinstance(collected[k][0], torch.Tensor): - collected[k] = torch.stack(collected[k], dim=0) + batch_collected = {} + + if "eo" in batch[0]: + batch_collected["eo"] = { + k: torch.stack([item["eo"][k] for item in batch]) for k in batch[0]["eo"].keys() + } + + if batch[0].get("aux") is not None: + batch_collected["aux"] = { + k: smart_stack([item["aux"][k] for item in batch]) for k in batch[0]["aux"].keys() + } + + if batch[0].get("target") is not None: + batch_collected["target"] = smart_stack([item["target"] for item in batch]) # convert aux into captions if mode == "train": - collected["text"] = caption_builder.random(collected["aux"]) + batch_collected["text"] = caption_builder.random(batch_collected["aux"]) + elif mode == "val": + batch_collected["text"] = caption_builder.all(batch_collected["aux"]) else: - collected["text"] = caption_builder.all(collected["aux"]) + batch_collected["text"] = caption_builder.all(batch_collected["aux"]) + # batch_collected['concepts'] = caption_builder.build_concepts(batch_collected["aux"]) - return collected + return batch_collected diff --git a/src/data/heat_guatemala_dataset.py b/src/data/heat_guatemala_dataset.py index 3099b44..a31c21c 100644 --- a/src/data/heat_guatemala_dataset.py +++ b/src/data/heat_guatemala_dataset.py @@ -42,7 +42,7 @@ def __init__( data_dir: str, modalities: dict, use_target_data: bool = True, - use_aux_data: bool = False, + use_aux_data: Dict[Any] | str = "all", seed: int = 12345, cache_dir: str = None, mock: bool = False, @@ -95,6 +95,13 @@ def __getitem__(self, idx: int) -> Dict[str, Any]: # --- Auxiliary data --- if self.use_aux_data: - sample["aux"] = [row[k] for k in self.aux_names] + sample["aux"] = {} + for aux_cat, vals in self.use_aux_data.items(): + if aux_cat == "aux": + sample["aux"][aux_cat] = torch.tensor( + [row[v] for v in vals], dtype=torch.float32 + ) + else: + sample["aux"][aux_cat] = [row[v] for v in vals] return sample diff --git a/src/data/satbird_dataset.py b/src/data/satbird_dataset.py index 8f96dfb..0db7d4f 100644 --- a/src/data/satbird_dataset.py +++ b/src/data/satbird_dataset.py @@ -1,5 +1,5 @@ import os -from typing import override +from typing import Any, Dict, override import torch from rasterio import open as ropen @@ -15,8 +15,8 @@ def __init__( data_dir: str, modalities: dict, use_target_data: bool, - use_aux_data: bool, seed: int, + use_aux_data: Dict[Any] | str = "all", study_site: str = "Kenya", cache_dir: str = None, mock: bool = False, @@ -108,7 +108,14 @@ def __getitem__(self, idx): ) if self.use_aux_data: - formatted_row["aux"] = [row[i] for i in self.aux_names] + formatted_row["aux"] = {} + for aux_cat, vals in self.use_aux_data.items(): + if aux_cat == "aux": + formatted_row["aux"][aux_cat] = torch.tensor( + [row[v] for v in vals], dtype=torch.float32 + ) + else: + formatted_row["aux"][aux_cat] = [row[v] for v in vals] return formatted_row diff --git a/tests/conftest.py b/tests/conftest.py index 5e2f1c2..e4e9b2d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -160,7 +160,7 @@ def create_butterfly_dataset(request, sample_csv, tmp_path): cache_dir=str(tmp_path), modalities={"coords": None}, use_target_data=True, - use_aux_data=True, + use_aux_data="all", seed=0, mock=use_mock, ) diff --git a/tests/test_captions.py b/tests/test_captions.py index 0e8c6fa..66b132f 100644 --- a/tests/test_captions.py +++ b/tests/test_captions.py @@ -24,7 +24,7 @@ def test_datamodule_uses_collate_when_aux_data(request, sample_csv, tmp_path): cache_dir=str(tmp_path), modalities={"coords": None}, use_target_data=True, - use_aux_data=True, + use_aux_data="all", seed=0, mock=use_mock, ) diff --git a/tests/test_datasets_and_datamodules.py b/tests/test_datasets_and_datamodules.py index b6d0f29..f77f7b2 100644 --- a/tests/test_datasets_and_datamodules.py +++ b/tests/test_datasets_and_datamodules.py @@ -17,7 +17,7 @@ def test_datasets_generic_properties(request, tmp_path, sample_csv): cache_dir=str(tmp_path), modalities={"coords": None}, use_target_data=True, - use_aux_data=True, + use_aux_data="all", seed=0, mock=use_mock, ) @@ -36,9 +36,6 @@ def test_datasets_generic_properties(request, tmp_path, sample_csv): assert hasattr( dataset, "target_names" ), f"'target_names' attribute missing in {ds_class.__name__}." - assert hasattr( - dataset, "aux_names" - ), f"'aux_names' attribute missing in {ds_class.__name__}." assert hasattr(dataset, "records"), f"'records' attribute missing in {ds_class.__name__}." assert hasattr( dataset, "dataset_name" From 810d45be5a66d8d5d65cb243e4f490334e5eb1c3 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 2 Mar 2026 14:29:39 +0100 Subject: [PATCH 28/28] Fix dataset argument expected types --- src/data/heat_guatemala_dataset.py | 2 +- src/data/satbird_dataset.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/heat_guatemala_dataset.py b/src/data/heat_guatemala_dataset.py index a31c21c..c20b686 100644 --- a/src/data/heat_guatemala_dataset.py +++ b/src/data/heat_guatemala_dataset.py @@ -42,7 +42,7 @@ def __init__( data_dir: str, modalities: dict, use_target_data: bool = True, - use_aux_data: Dict[Any] | str = "all", + use_aux_data: Dict[str, Any] | str = "all", seed: int = 12345, cache_dir: str = None, mock: bool = False, diff --git a/src/data/satbird_dataset.py b/src/data/satbird_dataset.py index 0db7d4f..e26fe51 100644 --- a/src/data/satbird_dataset.py +++ b/src/data/satbird_dataset.py @@ -16,7 +16,7 @@ def __init__( modalities: dict, use_target_data: bool, seed: int, - use_aux_data: Dict[Any] | str = "all", + use_aux_data: Dict[str, Any] | str = "all", study_site: str = "Kenya", cache_dir: str = None, mock: bool = False,