From 1f52e3993867095a2266fad6ed44da25406d2e04 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 11:33:49 +1000 Subject: [PATCH 01/37] set up & model --- .gitignore | 4 ++ README.md | 18 +---- load.py | 135 +++++++++++++++++++++++++++++++++++ model.py | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 346 insertions(+), 17 deletions(-) create mode 100644 .gitignore create mode 100644 load.py create mode 100644 model.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..c81a2c99a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ + +HipMRI_study_complete_release_v1/.DS_Store +.DS_Store +/HipMRI_study_complete_release_v1 diff --git a/README.md b/README.md index 3a10f6515..5a1a60f58 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,3 @@ -# Pattern Analysis -Pattern Analysis of various datasets by COMP3710 students in 2024 at the University of Queensland. +# Generative VQVAE model for MR images of the male pelvis -We create pattern recognition and image processing library for Tensorflow (TF), PyTorch or JAX. -This library is created and maintained by The University of Queensland [COMP3710](https://my.uq.edu.au/programs-courses/course.html?course_code=comp3710) students. - -The library includes the following implemented in Tensorflow: -* fractals -* recognition problems - -In the recognition folder, you will find many recognition problems solved including: -* segmentation -* classification -* graph neural networks -* StyleGAN -* Stable diffusion -* transformers -etc. diff --git a/load.py b/load.py new file mode 100644 index 000000000..fa15e0cd6 --- /dev/null +++ b/load.py @@ -0,0 +1,135 @@ +import numpy as np +import nibabel as nib +from tqdm import tqdm + +def to_channels(arr: np.ndarray, dtype=np.uint8) -> np.ndarray: + channels = np.unique(arr) + res = np.zeros(arr.shape + (len(channels),), dtype=dtype) + for c in channels: + c = int(c) + res[..., c:c+1][arr == c] = 1 + return res + +def load_data_2D(imageNames, normImage=False, categorical=False, dtype=np.float32, + getAffines=False, early_stop=False): + ''' + Load medical image data from names, cases list provided into a list for each. + + This function pre-allocates 4D arrays for conv2d to avoid excessive memory usage. + + normImage: bool (normalise the image 0.0-1.0) + early_stop: Stop loading pre-maturely, leaves arrays mostly empty, for quick loading and testing scripts. + ''' + affines = [] + + # get fixed size + num = len(imageNames) + first_case = nib.load(imageNames[0]).get_fdata(caching='unchanged') + if len(first_case.shape) == 3: + first_case = first_case[:,:,0] # sometimes extra dims, remove + + if categorical: + first_case = to_channels(first_case, dtype=dtype) + rows, cols, channels = first_case.shape + images = np.zeros((num, rows, cols, channels), dtype=dtype) + else: + rows, cols = first_case.shape + images = np.zeros((num, rows, cols), dtype=dtype) + + for i, inName in enumerate(tqdm(imageNames)): + niftiImage = nib.load(inName) + inImage = niftiImage.get_fdata(caching='unchanged') # read disk only + affine = niftiImage.affine + + if len(inImage.shape) == 3: + inImage = inImage[:,:,0] # sometimes extra dims in HipMRI_study data + + inImage = inImage.astype(dtype) + + if normImage: + inImage = (inImage - inImage.mean()) / inImage.std() + + if categorical: + inImage = utils.to_channels(inImage, dtype=dtype) + images[i,:,:,:] = inImage + else: + images[i,:,:] = inImage + + affines.append(affine) + + if i > 20 and early_stop: + break + + if getAffines: + return images, affines + else: + return images + +def load_data_3D(imageNames, normImage=False, categorical=False, dtype=np.float32, + getAffines=False, orient=False, early_stop=False): + ''' + Load medical image data from names, cases list provided into a list for each. + This function pre-allocates 5D arrays for conv3d to avoid excessive memory usage. + + normImage: bool (normalise the image 0.0-1.0) + orient: Apply orientation and resample image? Good for images with large slice thickness or anisotropic resolution + dtype: Type of the data. If dtype=np.uint8, it is assumed that the data is labels + early_stop: Stop loading pre-maturely? Leaves arrays mostly empty, for quick loading and testing scripts. + ''' + affines = [] + interp = 'linear' + + if dtype == np.uint8: # assume labels + interp = 'nearest' + + # get fixed size + num = len(imageNames) + niftiImage = nib.load(imageNames[0]) + + if orient: + niftiImage = im.applyOrientation(niftiImage, interpolation=interp, scale=1) + + first_case = niftiImage.get_fdata(caching='unchanged') + if len(first_case.shape) == 4: + first_case = first_case[:,:,:,0] # sometimes extra dims, remove + + if categorical: + first_case = to_channels(first_case, dtype=dtype) + rows, cols, depth, channels = first_case.shape + images = np.zeros((num, rows, cols, depth, channels), dtype=dtype) + else: + rows, cols, depth = first_case.shape + images = np.zeros((num, rows, cols, depth), dtype=dtype) + + for i, inName in enumerate(tqdm(imageNames)): + niftiImage = nib.load(inName) + if orient: + niftiImage = im.applyOrientation(niftiImage, interpolation=interp, scale=1) + + inImage = niftiImage.get_fdata(caching='unchanged') # read disk only + affine = niftiImage.affine + + if len(inImage.shape) == 4: + inImage = inImage[:,:,:,0] # sometimes extra dims in HipMRI_study data + inImage = inImage[:,:,:depth] # clip slices + + inImage = inImage.astype(dtype) + + if normImage: + inImage = (inImage - inImage.mean()) / inImage.std() + + if categorical: + inImage = utils.to_channels(inImage, dtype=dtype) + images[i,:inImage.shape[0],:inImage.shape[1],:inImage.shape[2],:inImage.shape[3]] = inImage # with pad + else: + images[i,:inImage.shape[0],:inImage.shape[1],:inImage.shape[2]] = inImage # with pad + + affines.append(affine) + + if i > 20 and early_stop: + break + + if getAffines: + return images, affines + else: + return images \ No newline at end of file diff --git a/model.py b/model.py new file mode 100644 index 000000000..69c54ea28 --- /dev/null +++ b/model.py @@ -0,0 +1,206 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.utils.data import DataLoader +import pytorch_lightning as pl +from torchvision import transforms +import numpy as np +from pytorch_msssim import SSIM + +class ResidualBlock(nn.Module): + def __init__(self, in_channels, out_channels): + super().__init__() + self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) + self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1) + self.bn1 = nn.BatchNorm2d(out_channels) + self.bn2 = nn.BatchNorm2d(out_channels) + self.relu = nn.ReLU() + + if in_channels != out_channels: + self.projection = nn.Conv2d(in_channels, out_channels, kernel_size=1) + else: + self.projection = None + + def forward(self, x): + identity = x + + out = self.conv1(x) + out = self.bn1(out) + out = self.relu(out) + + out = self.conv2(out) + out = self.bn2(out) + + if self.projection is not None: + identity = self.projection(x) + + out += identity + out = self.relu(out) + return out + +class VectorQuantizer(nn.Module): + def __init__(self, num_embeddings, embedding_dim, commitment_cost=0.25): + super().__init__() + self.num_embeddings = num_embeddings + self.embedding_dim = embedding_dim + self.commitment_cost = commitment_cost + + self.embedding = nn.Embedding(num_embeddings, embedding_dim) + self.embedding.weight.data.uniform_(-1/num_embeddings, 1/num_embeddings) + + def forward(self, inputs): + # Convert inputs from BCHW -> BHWC + inputs = inputs.permute(0, 2, 3, 1).contiguous() + input_shape = inputs.shape + + # Flatten input + flat_input = inputs.view(-1, self.embedding_dim) + + # Calculate distances + distances = (torch.sum(flat_input**2, dim=1, keepdim=True) + + torch.sum(self.embedding.weight**2, dim=1) + - 2 * torch.matmul(flat_input, self.embedding.weight.t())) + + # Encoding + encoding_indices = torch.argmin(distances, dim=1).unsqueeze(1) + encodings = torch.zeros(encoding_indices.shape[0], self.num_embeddings, device=inputs.device) + encodings.scatter_(1, encoding_indices, 1) + + # Quantize and unflatten + quantized = torch.matmul(encodings, self.embedding.weight).view(input_shape) + + # Loss + e_latent_loss = F.mse_loss(quantized.detach(), inputs) + q_latent_loss = F.mse_loss(quantized, inputs.detach()) + loss = q_latent_loss + self.commitment_cost * e_latent_loss + + quantized = inputs + (quantized - inputs).detach() + avg_probs = torch.mean(encodings, dim=0) + perplexity = torch.exp(-torch.sum(avg_probs * torch.log(avg_probs + 1e-10))) + + # Convert quantized from BHWC -> BCHW + return loss, quantized.permute(0, 3, 1, 2).contiguous(), perplexity, encodings + +class Encoder(nn.Module): + def __init__(self, in_channels, hidden_dims=[32, 64, 128, 256]): + super().__init__() + modules = [] + + for h_dim in hidden_dims: + modules.append( + ResidualBlock(in_channels, h_dim) + ) + modules.append(nn.MaxPool2d(kernel_size=2)) + in_channels = h_dim + + self.encoder = nn.Sequential(*modules) + + def forward(self, x): + return self.encoder(x) + +class Decoder(nn.Module): + def __init__(self, out_channels, hidden_dims=[256, 128, 64, 32]): + super().__init__() + modules = [] + in_channels = hidden_dims[0] + + for h_dim in hidden_dims[1:]: + modules.append(nn.Upsample(scale_factor=2)) + modules.append( + ResidualBlock(in_channels, h_dim) + ) + in_channels = h_dim + + modules.append( + nn.Conv2d(hidden_dims[-1], out_channels, kernel_size=3, padding=1) + ) + + self.decoder = nn.Sequential(*modules) + + def forward(self, x): + return self.decoder(x) + +class VQVAE(pl.LightningModule): + def __init__( + self, + in_channels=1, + hidden_dims=[32, 64, 128, 256], + num_embeddings=512, + embedding_dim=256, + commitment_cost=0.25, + learning_rate=1e-4 + ): + super().__init__() + + self.encoder = Encoder(in_channels, hidden_dims) + self.vq = VectorQuantizer(num_embeddings, embedding_dim, commitment_cost) + self.decoder = Decoder(in_channels, hidden_dims[::-1]) + self.learning_rate = learning_rate + + self.ssim_module = SSIM(data_range=1.0, size_average=True, channel=1) + + def forward(self, x): + encoded = self.encoder(x) + vq_loss, quantized, perplexity, _ = self.vq(encoded) + reconstructed = self.decoder(quantized) + return reconstructed, vq_loss, perplexity + + def training_step(self, batch, batch_idx): + x = batch + reconstructed, vq_loss, perplexity = self(x) + + # Reconstruction loss (MSE) + recon_loss = F.mse_loss(reconstructed, x) + + # SSIM loss + ssim_loss = 1 - self.ssim_module(reconstructed, x) + + # Total loss + total_loss = recon_loss + vq_loss + ssim_loss + + # Calculate SSIM metric + ssim_value = 1 - ssim_loss.item() + + self.log('train_loss', total_loss) + self.log('train_recon_loss', recon_loss) + self.log('train_vq_loss', vq_loss) + self.log('train_perplexity', perplexity) + self.log('train_ssim', ssim_value) + + return total_loss + + def configure_optimizers(self): + optimizer = torch.optim.Adam(self.parameters(), lr=self.learning_rate) + return optimizer + +# Training setup +def train_vqvae(data_path, batch_size=32, num_epochs=100): + # Data preprocessing + transform = transforms.Compose([ + transforms.Grayscale(), + transforms.Resize((256, 256)), + transforms.ToTensor(), + transforms.Normalize(mean=[0.5], std=[0.5]) + ]) + + # Initialize model and trainer + model = VQVAE() + trainer = pl.Trainer( + max_epochs=num_epochs, + accelerator='gpu' if torch.cuda.is_available() else 'cpu', + callbacks=[ + pl.callbacks.ModelCheckpoint( + monitor='train_ssim', + mode='max', + filename='vqvae-{epoch:02d}-{train_ssim:.2f}', + save_top_k=3 + ) + ] + ) + + # Train model + trainer.fit(model, train_dataloader) + + return model + +model = train_vqvae("...") \ No newline at end of file From dfaca846213a50c21fdcec8a2d26bf08d24a50e4 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 13:01:45 +1000 Subject: [PATCH 02/37] extract .gz --- README.md | 2 +- load.py | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5a1a60f58..7cbb61d1b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# Generative VQVAE model for MR images of the male pelvis +# Generative VQVAE model for HipMRI diff --git a/load.py b/load.py index fa15e0cd6..f616a4432 100644 --- a/load.py +++ b/load.py @@ -1,6 +1,8 @@ import numpy as np import nibabel as nib from tqdm import tqdm +import os +# import utils def to_channels(arr: np.ndarray, dtype=np.uint8) -> np.ndarray: channels = np.unique(arr) @@ -119,7 +121,7 @@ def load_data_3D(imageNames, normImage=False, categorical=False, dtype=np.float3 inImage = (inImage - inImage.mean()) / inImage.std() if categorical: - inImage = utils.to_channels(inImage, dtype=dtype) + inImage = to_channels(inImage, dtype=dtype) images[i,:inImage.shape[0],:inImage.shape[1],:inImage.shape[2],:inImage.shape[3]] = inImage # with pad else: images[i,:inImage.shape[0],:inImage.shape[1],:inImage.shape[2]] = inImage # with pad @@ -132,4 +134,17 @@ def load_data_3D(imageNames, normImage=False, categorical=False, dtype=np.float3 if getAffines: return images, affines else: - return images \ No newline at end of file + return images + +# Load semantic label files +semantic_labels_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_labels_anon' +semantic_label_files = [os.path.join(semantic_labels_dir, f) for f in os.listdir(semantic_labels_dir) if f.endswith('.gz')] +semantic_labels, semantic_labels_affines = load_data_3D(semantic_label_files, normImage=False, categorical=True, dtype=np.uint8, getAffines=True) + +# Load semantic MR files +semantic_mrs_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_MRs_anon' +semantic_mr_files = [os.path.join(semantic_mrs_dir, f) for f in os.listdir(semantic_mrs_dir) if f.endswith('.gz')] +semantic_mrs, semantic_mrs_affines = load_data_3D(semantic_mr_files, normImage=False, categorical=False, dtype=np.float32, getAffines=True) + +print(f"Loaded {len(semantic_label_files)} semantic label files") +print(f"Loaded {len(semantic_mr_files)} semantic MR files") From 1211bfb894b56402e556964419be27eb75408fef Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 13:18:47 +1000 Subject: [PATCH 03/37] changed topic as preprocessing wasn't successful :/ --- .gitignore | 1 + README.md | 4 +++- load.py | 59 ++++++++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 52 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index c81a2c99a..7bfdaf171 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ HipMRI_study_complete_release_v1/.DS_Store .DS_Store /HipMRI_study_complete_release_v1 +/AD_NC diff --git a/README.md b/README.md index 7cbb61d1b..e992b5af3 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ -# Generative VQVAE model for HipMRI +# Classify Alzheimer’s disease (normal and AD) of the ADNI brain data using GFNet + + diff --git a/load.py b/load.py index f616a4432..90f366a13 100644 --- a/load.py +++ b/load.py @@ -2,7 +2,8 @@ import nibabel as nib from tqdm import tqdm import os -# import utils +import matplotlib.pyplot as plt +from torchvision.utils import make_grid, save_image def to_channels(arr: np.ndarray, dtype=np.uint8) -> np.ndarray: channels = np.unique(arr) @@ -52,7 +53,7 @@ def load_data_2D(imageNames, normImage=False, categorical=False, dtype=np.float3 inImage = (inImage - inImage.mean()) / inImage.std() if categorical: - inImage = utils.to_channels(inImage, dtype=dtype) + inImage = to_channels(inImage, dtype=dtype) images[i,:,:,:] = inImage else: images[i,:,:] = inImage @@ -136,15 +137,51 @@ def load_data_3D(imageNames, normImage=False, categorical=False, dtype=np.float3 else: return images -# Load semantic label files -semantic_labels_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_labels_anon' -semantic_label_files = [os.path.join(semantic_labels_dir, f) for f in os.listdir(semantic_labels_dir) if f.endswith('.gz')] -semantic_labels, semantic_labels_affines = load_data_3D(semantic_label_files, normImage=False, categorical=True, dtype=np.uint8, getAffines=True) +def get_dataloaders(semantic_labels_dir, semantic_mrs_dir): + """Load the dataset and returns the data loaders.""" + semantic_label_files = [os.path.join(semantic_labels_dir, f) for f in os.listdir(semantic_labels_dir) if f.endswith('.gz')] + semantic_labels, semantic_labels_affines = load_data_3D(semantic_label_files, normImage=False, categorical=True, dtype=np.uint8, getAffines=True) + + semantic_mr_files = [os.path.join(semantic_mrs_dir, f) for f in os.listdir(semantic_mrs_dir) if f.endswith('.gz')] + semantic_mrs, semantic_mrs_affines = load_data_2D(semantic_mr_files, normImage=False, categorical=False, dtype=np.float32, getAffines=True) + + return semantic_labels, semantic_mrs, semantic_labels_affines, semantic_mrs_affines + +def show_batch(semantic_labels, semantic_mrs, filename): + """Plot images grid of single batch.""" + # Combine label and MR images + combined = np.concatenate([semantic_labels, semantic_mrs], axis=-1) + img = make_grid(torch.from_numpy(combined)) + show_images(img, filename) + +def show_images(img, filename): + """Plot images grid of single batch.""" + img = img.cpu().numpy() + img = np.transpose(img, (1, 2, 0)) + plt.imshow(img) + plt.savefig(filename) + plt.clf() -# Load semantic MR files +# # Load semantic label files +# semantic_labels_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_labels_anon' +# semantic_label_files = [os.path.join(semantic_labels_dir, f) for f in os.listdir(semantic_labels_dir) if f.endswith('.gz')] +# semantic_labels, semantic_labels_affines = load_data_3D(semantic_label_files, normImage=False, categorical=True, dtype=np.uint8, getAffines=True) + +# # Load semantic MR files +# semantic_mrs_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_MRs_anon' +# semantic_mr_files = [os.path.join(semantic_mrs_dir, f) for f in os.listdir(semantic_mrs_dir) if f.endswith('.gz')] +# semantic_mrs, semantic_mrs_affines = load_data_3D(semantic_mr_files, normImage=False, categorical=False, dtype=np.float32, getAffines=True) + +# print(f"Loaded {len(semantic_label_files)} semantic label files") +# print(f"Loaded {len(semantic_mr_files)} semantic MR files") + +# Example usage +semantic_labels_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_labels_anon' semantic_mrs_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_MRs_anon' -semantic_mr_files = [os.path.join(semantic_mrs_dir, f) for f in os.listdir(semantic_mrs_dir) if f.endswith('.gz')] -semantic_mrs, semantic_mrs_affines = load_data_3D(semantic_mr_files, normImage=False, categorical=False, dtype=np.float32, getAffines=True) -print(f"Loaded {len(semantic_label_files)} semantic label files") -print(f"Loaded {len(semantic_mr_files)} semantic MR files") +semantic_labels, semantic_mrs, semantic_labels_affines, semantic_mrs_affines = get_dataloaders(semantic_labels_dir, semantic_mrs_dir) + +print(f"Loaded {semantic_labels.shape[0]} semantic label files") +print(f"Loaded {semantic_mrs.shape[0]} semantic MR files") + +show_batch(semantic_labels[0], semantic_mrs[0], 'batch_example.png') From 204f41abf1693cfaefcd34e24a10bc3dbbbe8e87 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 13:44:42 +1000 Subject: [PATCH 04/37] Initial structure --- .gitignore | 1 + README.md | 16 +++- load.py | 187 -------------------------------------- model.py | 206 ------------------------------------------ recognition/README.md | 5 + 5 files changed, 21 insertions(+), 394 deletions(-) delete mode 100644 load.py delete mode 100644 model.py create mode 100644 recognition/README.md diff --git a/.gitignore b/.gitignore index 7bfdaf171..b2450a247 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ HipMRI_study_complete_release_v1/.DS_Store .DS_Store /HipMRI_study_complete_release_v1 /AD_NC +/recognition/AD_NC diff --git a/README.md b/README.md index e992b5af3..7355a2b9f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,19 @@ -# Classify Alzheimer’s disease (normal and AD) of the ADNI brain data using GFNet +# Pattern Analysis +Pattern Analysis of various datasets by COMP3710 students in 2024 at the University of Queensland. +We create pattern recognition and image processing library for Tensorflow (TF), PyTorch or JAX. +This library is created and maintained by The University of Queensland [COMP3710](https://my.uq.edu.au/programs-courses/course.html?course_code=comp3710) students. +The library includes the following implemented in Tensorflow: +* fractals +* recognition problems +In the recognition folder, you will find many recognition problems solved including: +* segmentation +* classification +* graph neural networks +* StyleGAN +* Stable diffusion +* transformers +etc. diff --git a/load.py b/load.py deleted file mode 100644 index 90f366a13..000000000 --- a/load.py +++ /dev/null @@ -1,187 +0,0 @@ -import numpy as np -import nibabel as nib -from tqdm import tqdm -import os -import matplotlib.pyplot as plt -from torchvision.utils import make_grid, save_image - -def to_channels(arr: np.ndarray, dtype=np.uint8) -> np.ndarray: - channels = np.unique(arr) - res = np.zeros(arr.shape + (len(channels),), dtype=dtype) - for c in channels: - c = int(c) - res[..., c:c+1][arr == c] = 1 - return res - -def load_data_2D(imageNames, normImage=False, categorical=False, dtype=np.float32, - getAffines=False, early_stop=False): - ''' - Load medical image data from names, cases list provided into a list for each. - - This function pre-allocates 4D arrays for conv2d to avoid excessive memory usage. - - normImage: bool (normalise the image 0.0-1.0) - early_stop: Stop loading pre-maturely, leaves arrays mostly empty, for quick loading and testing scripts. - ''' - affines = [] - - # get fixed size - num = len(imageNames) - first_case = nib.load(imageNames[0]).get_fdata(caching='unchanged') - if len(first_case.shape) == 3: - first_case = first_case[:,:,0] # sometimes extra dims, remove - - if categorical: - first_case = to_channels(first_case, dtype=dtype) - rows, cols, channels = first_case.shape - images = np.zeros((num, rows, cols, channels), dtype=dtype) - else: - rows, cols = first_case.shape - images = np.zeros((num, rows, cols), dtype=dtype) - - for i, inName in enumerate(tqdm(imageNames)): - niftiImage = nib.load(inName) - inImage = niftiImage.get_fdata(caching='unchanged') # read disk only - affine = niftiImage.affine - - if len(inImage.shape) == 3: - inImage = inImage[:,:,0] # sometimes extra dims in HipMRI_study data - - inImage = inImage.astype(dtype) - - if normImage: - inImage = (inImage - inImage.mean()) / inImage.std() - - if categorical: - inImage = to_channels(inImage, dtype=dtype) - images[i,:,:,:] = inImage - else: - images[i,:,:] = inImage - - affines.append(affine) - - if i > 20 and early_stop: - break - - if getAffines: - return images, affines - else: - return images - -def load_data_3D(imageNames, normImage=False, categorical=False, dtype=np.float32, - getAffines=False, orient=False, early_stop=False): - ''' - Load medical image data from names, cases list provided into a list for each. - This function pre-allocates 5D arrays for conv3d to avoid excessive memory usage. - - normImage: bool (normalise the image 0.0-1.0) - orient: Apply orientation and resample image? Good for images with large slice thickness or anisotropic resolution - dtype: Type of the data. If dtype=np.uint8, it is assumed that the data is labels - early_stop: Stop loading pre-maturely? Leaves arrays mostly empty, for quick loading and testing scripts. - ''' - affines = [] - interp = 'linear' - - if dtype == np.uint8: # assume labels - interp = 'nearest' - - # get fixed size - num = len(imageNames) - niftiImage = nib.load(imageNames[0]) - - if orient: - niftiImage = im.applyOrientation(niftiImage, interpolation=interp, scale=1) - - first_case = niftiImage.get_fdata(caching='unchanged') - if len(first_case.shape) == 4: - first_case = first_case[:,:,:,0] # sometimes extra dims, remove - - if categorical: - first_case = to_channels(first_case, dtype=dtype) - rows, cols, depth, channels = first_case.shape - images = np.zeros((num, rows, cols, depth, channels), dtype=dtype) - else: - rows, cols, depth = first_case.shape - images = np.zeros((num, rows, cols, depth), dtype=dtype) - - for i, inName in enumerate(tqdm(imageNames)): - niftiImage = nib.load(inName) - if orient: - niftiImage = im.applyOrientation(niftiImage, interpolation=interp, scale=1) - - inImage = niftiImage.get_fdata(caching='unchanged') # read disk only - affine = niftiImage.affine - - if len(inImage.shape) == 4: - inImage = inImage[:,:,:,0] # sometimes extra dims in HipMRI_study data - inImage = inImage[:,:,:depth] # clip slices - - inImage = inImage.astype(dtype) - - if normImage: - inImage = (inImage - inImage.mean()) / inImage.std() - - if categorical: - inImage = to_channels(inImage, dtype=dtype) - images[i,:inImage.shape[0],:inImage.shape[1],:inImage.shape[2],:inImage.shape[3]] = inImage # with pad - else: - images[i,:inImage.shape[0],:inImage.shape[1],:inImage.shape[2]] = inImage # with pad - - affines.append(affine) - - if i > 20 and early_stop: - break - - if getAffines: - return images, affines - else: - return images - -def get_dataloaders(semantic_labels_dir, semantic_mrs_dir): - """Load the dataset and returns the data loaders.""" - semantic_label_files = [os.path.join(semantic_labels_dir, f) for f in os.listdir(semantic_labels_dir) if f.endswith('.gz')] - semantic_labels, semantic_labels_affines = load_data_3D(semantic_label_files, normImage=False, categorical=True, dtype=np.uint8, getAffines=True) - - semantic_mr_files = [os.path.join(semantic_mrs_dir, f) for f in os.listdir(semantic_mrs_dir) if f.endswith('.gz')] - semantic_mrs, semantic_mrs_affines = load_data_2D(semantic_mr_files, normImage=False, categorical=False, dtype=np.float32, getAffines=True) - - return semantic_labels, semantic_mrs, semantic_labels_affines, semantic_mrs_affines - -def show_batch(semantic_labels, semantic_mrs, filename): - """Plot images grid of single batch.""" - # Combine label and MR images - combined = np.concatenate([semantic_labels, semantic_mrs], axis=-1) - img = make_grid(torch.from_numpy(combined)) - show_images(img, filename) - -def show_images(img, filename): - """Plot images grid of single batch.""" - img = img.cpu().numpy() - img = np.transpose(img, (1, 2, 0)) - plt.imshow(img) - plt.savefig(filename) - plt.clf() - -# # Load semantic label files -# semantic_labels_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_labels_anon' -# semantic_label_files = [os.path.join(semantic_labels_dir, f) for f in os.listdir(semantic_labels_dir) if f.endswith('.gz')] -# semantic_labels, semantic_labels_affines = load_data_3D(semantic_label_files, normImage=False, categorical=True, dtype=np.uint8, getAffines=True) - -# # Load semantic MR files -# semantic_mrs_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_MRs_anon' -# semantic_mr_files = [os.path.join(semantic_mrs_dir, f) for f in os.listdir(semantic_mrs_dir) if f.endswith('.gz')] -# semantic_mrs, semantic_mrs_affines = load_data_3D(semantic_mr_files, normImage=False, categorical=False, dtype=np.float32, getAffines=True) - -# print(f"Loaded {len(semantic_label_files)} semantic label files") -# print(f"Loaded {len(semantic_mr_files)} semantic MR files") - -# Example usage -semantic_labels_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_labels_anon' -semantic_mrs_dir = '/Users/ella/Documents/UQ/BM_BCs/Y4S2/COMP3710/report/PatternAnalysis-2024/HipMRI_study_complete_release_v1/semantic_MRs_anon' - -semantic_labels, semantic_mrs, semantic_labels_affines, semantic_mrs_affines = get_dataloaders(semantic_labels_dir, semantic_mrs_dir) - -print(f"Loaded {semantic_labels.shape[0]} semantic label files") -print(f"Loaded {semantic_mrs.shape[0]} semantic MR files") - -show_batch(semantic_labels[0], semantic_mrs[0], 'batch_example.png') diff --git a/model.py b/model.py deleted file mode 100644 index 69c54ea28..000000000 --- a/model.py +++ /dev/null @@ -1,206 +0,0 @@ -import torch -import torch.nn as nn -import torch.nn.functional as F -from torch.utils.data import DataLoader -import pytorch_lightning as pl -from torchvision import transforms -import numpy as np -from pytorch_msssim import SSIM - -class ResidualBlock(nn.Module): - def __init__(self, in_channels, out_channels): - super().__init__() - self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) - self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1) - self.bn1 = nn.BatchNorm2d(out_channels) - self.bn2 = nn.BatchNorm2d(out_channels) - self.relu = nn.ReLU() - - if in_channels != out_channels: - self.projection = nn.Conv2d(in_channels, out_channels, kernel_size=1) - else: - self.projection = None - - def forward(self, x): - identity = x - - out = self.conv1(x) - out = self.bn1(out) - out = self.relu(out) - - out = self.conv2(out) - out = self.bn2(out) - - if self.projection is not None: - identity = self.projection(x) - - out += identity - out = self.relu(out) - return out - -class VectorQuantizer(nn.Module): - def __init__(self, num_embeddings, embedding_dim, commitment_cost=0.25): - super().__init__() - self.num_embeddings = num_embeddings - self.embedding_dim = embedding_dim - self.commitment_cost = commitment_cost - - self.embedding = nn.Embedding(num_embeddings, embedding_dim) - self.embedding.weight.data.uniform_(-1/num_embeddings, 1/num_embeddings) - - def forward(self, inputs): - # Convert inputs from BCHW -> BHWC - inputs = inputs.permute(0, 2, 3, 1).contiguous() - input_shape = inputs.shape - - # Flatten input - flat_input = inputs.view(-1, self.embedding_dim) - - # Calculate distances - distances = (torch.sum(flat_input**2, dim=1, keepdim=True) - + torch.sum(self.embedding.weight**2, dim=1) - - 2 * torch.matmul(flat_input, self.embedding.weight.t())) - - # Encoding - encoding_indices = torch.argmin(distances, dim=1).unsqueeze(1) - encodings = torch.zeros(encoding_indices.shape[0], self.num_embeddings, device=inputs.device) - encodings.scatter_(1, encoding_indices, 1) - - # Quantize and unflatten - quantized = torch.matmul(encodings, self.embedding.weight).view(input_shape) - - # Loss - e_latent_loss = F.mse_loss(quantized.detach(), inputs) - q_latent_loss = F.mse_loss(quantized, inputs.detach()) - loss = q_latent_loss + self.commitment_cost * e_latent_loss - - quantized = inputs + (quantized - inputs).detach() - avg_probs = torch.mean(encodings, dim=0) - perplexity = torch.exp(-torch.sum(avg_probs * torch.log(avg_probs + 1e-10))) - - # Convert quantized from BHWC -> BCHW - return loss, quantized.permute(0, 3, 1, 2).contiguous(), perplexity, encodings - -class Encoder(nn.Module): - def __init__(self, in_channels, hidden_dims=[32, 64, 128, 256]): - super().__init__() - modules = [] - - for h_dim in hidden_dims: - modules.append( - ResidualBlock(in_channels, h_dim) - ) - modules.append(nn.MaxPool2d(kernel_size=2)) - in_channels = h_dim - - self.encoder = nn.Sequential(*modules) - - def forward(self, x): - return self.encoder(x) - -class Decoder(nn.Module): - def __init__(self, out_channels, hidden_dims=[256, 128, 64, 32]): - super().__init__() - modules = [] - in_channels = hidden_dims[0] - - for h_dim in hidden_dims[1:]: - modules.append(nn.Upsample(scale_factor=2)) - modules.append( - ResidualBlock(in_channels, h_dim) - ) - in_channels = h_dim - - modules.append( - nn.Conv2d(hidden_dims[-1], out_channels, kernel_size=3, padding=1) - ) - - self.decoder = nn.Sequential(*modules) - - def forward(self, x): - return self.decoder(x) - -class VQVAE(pl.LightningModule): - def __init__( - self, - in_channels=1, - hidden_dims=[32, 64, 128, 256], - num_embeddings=512, - embedding_dim=256, - commitment_cost=0.25, - learning_rate=1e-4 - ): - super().__init__() - - self.encoder = Encoder(in_channels, hidden_dims) - self.vq = VectorQuantizer(num_embeddings, embedding_dim, commitment_cost) - self.decoder = Decoder(in_channels, hidden_dims[::-1]) - self.learning_rate = learning_rate - - self.ssim_module = SSIM(data_range=1.0, size_average=True, channel=1) - - def forward(self, x): - encoded = self.encoder(x) - vq_loss, quantized, perplexity, _ = self.vq(encoded) - reconstructed = self.decoder(quantized) - return reconstructed, vq_loss, perplexity - - def training_step(self, batch, batch_idx): - x = batch - reconstructed, vq_loss, perplexity = self(x) - - # Reconstruction loss (MSE) - recon_loss = F.mse_loss(reconstructed, x) - - # SSIM loss - ssim_loss = 1 - self.ssim_module(reconstructed, x) - - # Total loss - total_loss = recon_loss + vq_loss + ssim_loss - - # Calculate SSIM metric - ssim_value = 1 - ssim_loss.item() - - self.log('train_loss', total_loss) - self.log('train_recon_loss', recon_loss) - self.log('train_vq_loss', vq_loss) - self.log('train_perplexity', perplexity) - self.log('train_ssim', ssim_value) - - return total_loss - - def configure_optimizers(self): - optimizer = torch.optim.Adam(self.parameters(), lr=self.learning_rate) - return optimizer - -# Training setup -def train_vqvae(data_path, batch_size=32, num_epochs=100): - # Data preprocessing - transform = transforms.Compose([ - transforms.Grayscale(), - transforms.Resize((256, 256)), - transforms.ToTensor(), - transforms.Normalize(mean=[0.5], std=[0.5]) - ]) - - # Initialize model and trainer - model = VQVAE() - trainer = pl.Trainer( - max_epochs=num_epochs, - accelerator='gpu' if torch.cuda.is_available() else 'cpu', - callbacks=[ - pl.callbacks.ModelCheckpoint( - monitor='train_ssim', - mode='max', - filename='vqvae-{epoch:02d}-{train_ssim:.2f}', - save_top_k=3 - ) - ] - ) - - # Train model - trainer.fit(model, train_dataloader) - - return model - -model = train_vqvae("...") \ No newline at end of file diff --git a/recognition/README.md b/recognition/README.md new file mode 100644 index 000000000..e992b5af3 --- /dev/null +++ b/recognition/README.md @@ -0,0 +1,5 @@ +# Classify Alzheimer’s disease (normal and AD) of the ADNI brain data using GFNet + + + + From 6815d06844af43e3f195e21b8938d7da7665e97d Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 13:59:10 +1000 Subject: [PATCH 05/37] feat: templates --- recognition/dataset.py | 4 ++++ recognition/modules.py | 4 ++++ recognition/predict.py | 6 ++++++ recognition/train.py | 6 ++++++ 4 files changed, 20 insertions(+) create mode 100644 recognition/dataset.py create mode 100644 recognition/modules.py create mode 100644 recognition/predict.py create mode 100644 recognition/train.py diff --git a/recognition/dataset.py b/recognition/dataset.py new file mode 100644 index 000000000..406efc3ca --- /dev/null +++ b/recognition/dataset.py @@ -0,0 +1,4 @@ +""" +Contains the data loaders for loading and preprocessing the ADNI brain dataset +This module will help prepare training, validation and testing data to be used +""" \ No newline at end of file diff --git a/recognition/modules.py b/recognition/modules.py new file mode 100644 index 000000000..8b5eeb57a --- /dev/null +++ b/recognition/modules.py @@ -0,0 +1,4 @@ +""" +Contains the source code for the components of GFNet classifying the Alzheimer’s disease (normal and AD) of the ADNI brain data +Each component is implementated as a class or a function. +""" \ No newline at end of file diff --git a/recognition/predict.py b/recognition/predict.py new file mode 100644 index 000000000..026365de2 --- /dev/null +++ b/recognition/predict.py @@ -0,0 +1,6 @@ +""" +This module is used to show example usage the trained GFNet model by using the model to predict +on a testing set from the ADNI brain dataset + +Evaluation metrics will be printed and evaluation figures will be saved to the current folder. +""" \ No newline at end of file diff --git a/recognition/train.py b/recognition/train.py new file mode 100644 index 000000000..976f6e665 --- /dev/null +++ b/recognition/train.py @@ -0,0 +1,6 @@ +""" +containing the source code for training, validating, testing and saving the GFnet. + +The model should be imported from “modules.py” and the data loader should be imported from “dataset.py”. +the losses and metrics during training are plotted +""" \ No newline at end of file From 65ea7502a239b569c18c12fff69e2416689decf8 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 14:03:01 +1000 Subject: [PATCH 06/37] feat: GFN copied from git https://github.com/raoyongming/GFNet --- recognition/modules.py | 68 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/recognition/modules.py b/recognition/modules.py index 8b5eeb57a..e610d48a1 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -1,4 +1,70 @@ """ Contains the source code for the components of GFNet classifying the Alzheimer’s disease (normal and AD) of the ADNI brain data Each component is implementated as a class or a function. -""" \ No newline at end of file +""" + +import torch +import torch.nn as nn +import torch.fft + +class GlobalFilter(nn.Module): + def __init__(self, dim, h=14, w=8): + super().__init__() + self.complex_weight = nn.Parameter(torch.randn(h, w, dim, 2, dtype=torch.float32) * 0.02) + + def forward(self, x): + B, H, W, C = x.shape + x = torch.fft.rfft2(x, dim=(1, 2), norm='ortho') + weight = torch.view_as_complex(self.complex_weight) + x = x * weight + x = torch.fft.irfft2(x, s=(H, W), dim=(1, 2), norm='ortho') + return x + +class GlobalFilterNetwork(nn.Module): + def __init__(self, in_channels=1, num_classes=2): + super().__init__() + self.conv1 = nn.Conv2d(in_channels, 64, kernel_size=7, stride=2, padding=3) + self.bn1 = nn.BatchNorm2d(64) + self.relu = nn.ReLU(inplace=True) + self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) + + # Global Filter layers + self.global_filter1 = GlobalFilter(dim=64) + self.global_filter2 = GlobalFilter(dim=128) + + # Additional convolution layers + self.conv2 = nn.Conv2d(64, 128, kernel_size=3, stride=2, padding=1) + self.bn2 = nn.BatchNorm2d(128) + + # Final layers + self.avgpool = nn.AdaptiveAvgPool2d((1, 1)) + self.fc = nn.Linear(128, num_classes) + + def forward(self, x): + # Initial convolution block + x = self.conv1(x) + x = self.bn1(x) + x = self.relu(x) + x = self.maxpool(x) + + # Reshape for GlobalFilter + x = x.permute(0, 2, 3, 1) # [B, C, H, W] -> [B, H, W, C] + x = self.global_filter1(x) + x = x.permute(0, 3, 1, 2) # [B, H, W, C] -> [B, C, H, W] + + # Second conv block + x = self.conv2(x) + x = self.bn2(x) + x = self.relu(x) + + # Second GlobalFilter + x = x.permute(0, 2, 3, 1) + x = self.global_filter2(x) + x = x.permute(0, 3, 1, 2) + + # Final layers + x = self.avgpool(x) + x = torch.flatten(x, 1) + x = self.fc(x) + + return x \ No newline at end of file From b95ce61e9fee59a97f993dd64b3162663dff1e2c Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 14:10:02 +1000 Subject: [PATCH 07/37] feat: Dataset copied from Jupyter notebook --- recognition/dataset.py | 108 ++++++++++++++++++++++++++++++++++++++++- recognition/modules.py | 8 +++ 2 files changed, 115 insertions(+), 1 deletion(-) diff --git a/recognition/dataset.py b/recognition/dataset.py index 406efc3ca..585f4a110 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -1,4 +1,110 @@ """ Contains the data loaders for loading and preprocessing the ADNI brain dataset This module will help prepare training, validation and testing data to be used -""" \ No newline at end of file +""" + +import torch +from torch.utils.data import DataLoader, Dataset +import os +from pathlib import Path +import sys +from PIL import Image +import torchvision.transforms as transforms +import random +import math +import copy + +# ADNI data path +ADNI_PATH = Path('./AD_NC') + +# Training image transforms +TRAIN_TRANSFORM = transforms.Compose([ + transforms.RandomCrop(224), + transforms.RandomHorizontalFlip(), + transforms.ToTensor(), +]) + +# Testing image transforms +TEST_TRANSFORM = transforms.Compose([ + transforms.CenterCrop(224), + transforms.ToTensor(), +]) + +# Rest of the original dataset.py content remains the same +class ADNIDataset(Dataset): + """ + Custom Dataset class for the ADNI dataset. + """ + def __init__(self, root_path, train=True, transform=None): + self.path = Path(root_path, 'train' if train else 'test') + self.transform = transform + self.ad_files = os.listdir(Path(self.path, 'AD')) + self.nc_files = os.listdir(Path(self.path, 'NC')) + + def __len__(self): + return len(self.ad_files) + len(self.nc_files) + + def __getitem__(self, idx): + assert idx >= 0 and idx < self.__len__(), "Index out of range." + # Index in AD range + if idx < len(self.ad_files): + img_filename = self.ad_files[idx] + image = Image.open(Path(self.path, 'AD', img_filename)) + label = 1 + # Index in NC range + else: + img_filename = self.nc_files[idx-len(self.ad_files)] + image = Image.open(Path(self.path, 'NC', img_filename)) + label = 0 + # Apply transform if present + if self.transform: + image = self.transform(image) + + return image, label + +def split_train_val(dataset: ADNIDataset, val_proportion: float, keep_proportion: float): + """ + Function to split the training set into training and validation sets, with a certain proportion of images to be included in the validation set. + + Images to be split on a patient level (i.e. all images with the same patient ID to be included in the same set). + """ + # Get the patient ID's and the number of AD and NC patients + ad_patient_ids = set(filename.split('_')[0] for filename in dataset.ad_files) + num_ad_patients = len(ad_patient_ids) + nc_patient_ids = set(filename.split('_')[0] for filename in dataset.nc_files) + num_nc_patients = len(nc_patient_ids) + + # Keep a certain proportion of the data. Used to cut training time for debugging purposes + ad_patient_ids = random.sample(list(ad_patient_ids), math.floor(num_ad_patients*keep_proportion)) + num_ad_patients = len(ad_patient_ids) + nc_patient_ids = random.sample(list(nc_patient_ids), math.floor(num_nc_patients*keep_proportion)) + num_nc_patients = len(nc_patient_ids) + + # Generate a random sample of patient ID's for the validation set + ad_pids_val = random.sample(ad_patient_ids, math.floor(num_ad_patients*val_proportion)) + nc_pids_val = random.sample(nc_patient_ids, math.floor(num_nc_patients*val_proportion)) + + # Make the validation dataset a deep copy of the training dataset + val_dataset = copy.deepcopy(dataset) + val_dataset.transform = TEST_TRANSFORM + + # Update each dataset's files by patient level split above + dataset.ad_files = [file for file in dataset.ad_files if file.split('_')[0] not in ad_pids_val and file.split('_')[0] in ad_patient_ids] + val_dataset.ad_files = [file for file in val_dataset.ad_files if file.split('_')[0] in ad_pids_val] + dataset.nc_files = [file for file in dataset.nc_files if file.split('_')[0] not in nc_pids_val and file.split('_')[0] in nc_patient_ids] + val_dataset.nc_files = [file for file in val_dataset.nc_files if file.split('_')[0] in nc_pids_val] + + return dataset, val_dataset + + +def get_dataloader(batch_size, train: bool, val_proportion: float = 0.2, keep_proportion: float = 1.0): + """ + Returns data loader for either the training (plus validation) set, or the test set. + """ + train_dataset = ADNIDataset(root_path=ADNI_PATH, train=True, transform=TRAIN_TRANSFORM) + train_dataset, val_dataset = split_train_val(dataset=train_dataset, val_proportion=val_proportion, keep_proportion=keep_proportion) + loader = (DataLoader(train_dataset, batch_size=batch_size, shuffle=True), DataLoader(val_dataset, batch_size=batch_size, shuffle=True)) + if train == False: + dataset = ADNIDataset(root_path=ADNI_PATH, train=False, transform=TEST_TRANSFORM) + loader = DataLoader(dataset, batch_size=batch_size, shuffle=False) + return loader \ No newline at end of file diff --git a/recognition/modules.py b/recognition/modules.py index e610d48a1..67e8d3e8c 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -41,6 +41,14 @@ def __init__(self, in_channels=1, num_classes=2): self.fc = nn.Linear(128, num_classes) def forward(self, x): + """ + - Pass the input through the initial convolutional blocks + - Reshape the feature maps to prepare for the global filtering layers + - Apply the two global filtering layers + - Pass the filtered features through the final classification layers (average pooling and fully connected) + - Return the final classification output + """ + # Initial convolution block x = self.conv1(x) x = self.bn1(x) From 456d0cf7af679abeda8ba7c0e08417606693c37b Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 14:13:19 +1000 Subject: [PATCH 08/37] feat: train.py moved here from Jupyter notebook --- .../__pycache__/dataset.cpython-311.pyc | Bin 0 -> 7868 bytes .../__pycache__/modules.cpython-311.pyc | Bin 0 -> 5068 bytes recognition/modules.py | 15 +- recognition/train.py | 172 +++++++++++++++++- 4 files changed, 178 insertions(+), 9 deletions(-) create mode 100644 recognition/__pycache__/dataset.cpython-311.pyc create mode 100644 recognition/__pycache__/modules.cpython-311.pyc diff --git a/recognition/__pycache__/dataset.cpython-311.pyc b/recognition/__pycache__/dataset.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a1144a8d3ad5251d1f53279ecd51b288967d5cf GIT binary patch literal 7868 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 literal 0 HcmV?d00001 diff --git a/recognition/__pycache__/modules.cpython-311.pyc b/recognition/__pycache__/modules.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5a27fb77d55e60cc14ebf2ac99b0adf6e701e61 GIT binary patch literal 5068 zcmcIoO>7&-72f5)sFiJ6qUFl2ymA{gj9|;65+`k%A6kxOTYr{SH?R<3z203)D=&BH z*`;hL6re+ZQi1^MpulXA15c_AsfCZav@m+=p#?~TfQuKnrd=R)u*UTLYtpf z)RaR0vG{9~msL{{O@)6`H%Lmt0Y&Z4 z{{-Yq_C8~=luyYz&<(d)sOfQ;OuY=tSneq@%uLm8#=?0jW$&D`o~$cWXmvZ7)C|$;kJ|_E6gB0pa7R(6 zrmdLY_L+*7w7s&Lve{{yy<;~C0tJsCm}o8!W%0Wkz1K{In7xXoiM{6yDT8Nk_FfzB zJvSnp8!&sXzdaG}9T*$A(*JJXnO>r#4Py0P5iPJqPw1jHXR79@_?h_I&?gyFU^C#O zH)Y5fO)*cW=SVZmH6N`#<V|aV@KXrOVKVgPwB7pK!-6sj3ub!86A8^UHwS|DTI?Zk-HaWYb^oc)`iK_^)&Cc%Zb%Z2irH z5$?^Z8?ooC1DnBpW85%MH^vPevJb2afpxGOd+7npg@;ayg?FG*WOlP@-wa%}w@xzL zK(fV^bXQp$(7-o@U3)-cFHC_wc*SX{TZgMh4)3!IFXsLchpJq;dEW?h613FKfxdzk zIh^&Z170>JcMYa@6r&Mn4$w*!!s&BkThFTro0-F!~8 zr0G%cmB91f)cb7TRb}{^?IVhov71K3yH^ZDgT7!&yqkt9y?ge7DVo&?Nt)L5eXkvN zw8v3l+>RtR@{N@8}Zs!W`nLS=SfSk)Dg*q)>m^EpnoS=9w;TGV0jrroS(QchG? zOvm5gB>+de=(rpje2+J{#%>How`YC}Wr5=<1~hEcfR$&EOz#nI{V9={gefAM~;FGq|pB;u_gXF zQj89jqC@5A(4GlDDz$c(Tf5N&5I@>cZtr<;q14`AZU-GJ-1gzNwOD?jaIAFrRQd2J zUW0rqBp$$rn7K*(hp=bjBEUBK6BZYWvnWL@C~l5D|sf36r* zFg-wbxi3Lr3hq^}m47YGpjY-Z(CoU^S7>GmuB&~euxi7Hp+EfFMq3pdx3nMuSWX z`2g!5AxR(^00O~EA*l?!qs}Ai0+K-_pCGw}gl6IJ#KYH?PKJO5u?wRo`7sa^r>dmX zGy|PK*2vLUvg#fj(F1T;WOffTEs=YdmoKm0UK&{$fdrU4bnoKw#nthpp_L)0d1?95 zs<_f)UgC>3#`nmIp`H=h)nz$14H$Zm1EX(eCysU4RK@w)zmPHOf z&zNYj{`-tMRIGk?ea$Q^Vn11pul@9EM(S_mlj|uVP;#|C 1 and val_accs[-1] < val_accs[-2]: + down_consec += 1 + else: + down_consec = 0 + # Stop training early if validation accuracy decreases for four epochs in a row + if down_consec >= 4: + stopping_epoch = epoch + 1 + break + if val_accs[-1] == max(val_accs): + # save best model + torch.save(model, "adni_vit.pt") + + print(f"Training & validation took {time.time()-strt:.3f} secs or {(time.time()-strt)/60:.2f} mins in total") + print("") + plot_metric(stopping_epoch, 'loss', train_losses, val_losses) + plot_metric(stopping_epoch, 'accuracy', train_accs, val_accs) + + +def run_testing(device, model, test_loader: DataLoader): + """ + Function to run testing on the trained model. + """ + test_correct = 0 + test_total = 0 + start = time.time() + with torch.no_grad(): + for images, labels in test_loader: + images = images.to(device) + labels = labels.to(device) + # Forward pass + outputs = model(images) + _, predicted = torch.max(outputs, 1) + test_total += labels.size(0) + test_correct += (predicted == labels).sum().item() + + print(f"Test accuracy {(test_correct/test_total)*100:.2f}%, time elapsed {time.time()-start:.3f} secs or {(time.time()-start)/60:.2f} mins in total") + + +def main(): + """ + Main execution function. + """ + # Device configuration + device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + if not torch.cuda.is_available(): + print("Warning CUDA not found. Using CPU") + # Initialise hyperparameters + BATCH_SIZE = 64 + EPOCHS = 20 + LR = 1e-4 + # Initialise data loaders & model + train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) + test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) + # Use GlobalFilterNetwork instead of ViT + model = GlobalFilterNetwork() + model = model.to(device) + # Run training and testing + run_training(device, model, train_loader, val_loader, epochs=EPOCHS, lr=LR) + run_testing(device, model, test_loader) + +if __name__ == "__main__": + main() \ No newline at end of file From f83950802ecf81003730dd7617fc0981f352bb10 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 14:58:36 +1000 Subject: [PATCH 09/37] feat: move to ViT as I can't figure out the dimension for GFnet rip --- .../__pycache__/dataset.cpython-311.pyc | Bin 7868 -> 7868 bytes .../__pycache__/modules.cpython-311.pyc | Bin 5068 -> 3751 bytes recognition/modules.py | 106 ++++----- recognition/train.py | 213 +++++++----------- 4 files changed, 118 insertions(+), 201 deletions(-) diff --git a/recognition/__pycache__/dataset.cpython-311.pyc b/recognition/__pycache__/dataset.cpython-311.pyc index 1a1144a8d3ad5251d1f53279ecd51b288967d5cf..c1c77fb986c1b4f9d02301490c310edc2998a767 100644 GIT binary patch delta 19 ZcmdmEyT_JmIWI340}u#jZ{*q}2LLqn1knHh delta 19 ZcmdmEyT_JmIWI340}won-^jH|4gfig1(N^( diff --git a/recognition/__pycache__/modules.cpython-311.pyc b/recognition/__pycache__/modules.cpython-311.pyc index f5a27fb77d55e60cc14ebf2ac99b0adf6e701e61..83842ecfd5784dde8ad75d402c7414d92be8eb1a 100644 GIT binary patch literal 3751 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 [B, H, W, C] - x = self.global_filter1(x) - x = x.permute(0, 3, 1, 2) # [B, H, W, C] -> [B, C, H, W] - - # Second conv block - x = self.conv2(x) - x = self.bn2(x) - x = self.relu(x) - - # Second GlobalFilter - x = x.permute(0, 2, 3, 1) - x = self.global_filter2(x) - x = x.permute(0, 3, 1, 2) - - # Final layers - x = self.avgpool(x) - x = torch.flatten(x, 1) - x = self.fc(x) + return self.vit(x) - return x \ No newline at end of file diff --git a/recognition/train.py b/recognition/train.py index 0e8623eb8..39ee93f85 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -1,154 +1,99 @@ -""" -containing the source code for training, validating, testing and saving the GFnet. - -The model should be imported from “modules.py” and the data loader should be imported from “dataset.py”. -the losses and metrics during training are plotted -""" - -from dataset import get_dataloader import torch -import time -from modules import GlobalFilterNetwork -import matplotlib.pyplot as plt +import torch.nn as nn from torch.utils.data import DataLoader +from sklearn.model_selection import train_test_split +import matplotlib.pyplot as plt +import time +from dataset import ADNIDataset, get_dataloader +from modules import ViTClassifier - -def plot_metric(stopping_epoch: int, metric_type: str, train_data: list, val_data: list): - """ - Helper function to plot a given metric - """ - plt.figure() - plt.plot(range(1, stopping_epoch+1), train_data, label = f"Training {metric_type}") - plt.plot(range(1, stopping_epoch+1), val_data, label=f"Validation {metric_type}", color='orange') - plt.xlabel('Epoch') - plt.ylabel(metric_type) - plt.legend() - plt.title(f"Training {metric_type} vs validation {metric_type}") - plt.savefig(f"Training_vs_validation_{metric_type}_{int(time.time())}.png") - -def train_val_epoch(device, - model, - train_loader: DataLoader, - val_loader: DataLoader, - criterion: torch.nn.CrossEntropyLoss, - optimizer: torch.optim.Adam, - scheduler: torch.optim.lr_scheduler.StepLR, - epoch, - epochs): - """ - Function to run an epoch of training and validation - """ - # Training metrics - train_correct = 0 - train_total = 0 - tl = [] - strt = time.time() - # Perform training - for images, labels in train_loader: - images = images.to(device) - labels = labels.to(device) - optimizer.zero_grad() - # Forward pass - outputs = model(images) - # Losses - loss = criterion(outputs, labels) - tl.append(loss.item()) - _, predicted = torch.max(outputs, 1) - train_total += labels.size(0) - train_correct += (predicted == labels).sum().item() - # Backward and optimise - loss.backward() - optimizer.step() - - print (f"Training epoch [{epoch+1}/{epochs}]: mean loss {sum(tl)/len(tl):.5f}, accuracy {(train_correct/train_total)*100:.2f}%. Time elapsed {time.time()-strt:.3f}.") - # Validation metrics - val_correct = 0 - val_total = 0 - vl = [] - strt = time.time() - - # Do validation - with torch.no_grad(): - for images, labels in val_loader: - images = images.to(device) - labels = labels.to(device) - # Forward pass - outputs = model(images) - #losses - loss = criterion(outputs, labels) - vl.append(loss.item()) - _, predicted = torch.max(outputs, 1) - val_total += labels.size(0) - val_correct += (predicted == labels).sum().item() - - print (f"Validation epoch [{epoch+1}/{epochs}]: mean loss {sum(vl)/len(vl):.5f}, accuracy {(val_correct/val_total)*100:.2f}%.") - scheduler.step() - return sum(tl)/len(tl), sum(vl)/len(vl), train_correct/train_total, val_correct/val_total - - -def run_training(device, - model, - train_loader: DataLoader, - val_loader: DataLoader, - epochs: int, - lr: float): +def train_model(model, train_loader, val_loader, epochs, lr, device): """ - Function to run training on the dataset. + Train the Vision Transformer model for Alzheimer's classification. """ - # Initialise criterion, optimizer and LR scheduler - criterion = torch.nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=lr) - scheduler = torch.optim.lr_scheduler.StepLR(optimizer, 5, 0.5) - # Metrics tracking + criterion = nn.CrossEntropyLoss() + train_losses = [] val_losses = [] train_accs = [] val_accs = [] stopping_epoch = epochs down_consec = 0 - # Run through epochs - strt = time.time() + for epoch in range(epochs): - tl, vl, ta, va = train_val_epoch(device, model, train_loader, val_loader, criterion, optimizer, scheduler, epoch, epochs) - train_losses.append(tl); val_losses.append(vl); train_accs.append(ta); val_accs.append(va) - # Increase the down consecutively counter if necessary - if epoch + 1 > 1 and val_accs[-1] < val_accs[-2]: + # Training loop + model.train() + train_loss = 0.0 + train_correct = 0 + train_total = 0 + for images, labels in train_loader: + images, labels = images.to(device), labels.to(device) + optimizer.zero_grad() + outputs = model(images) + loss = criterion(outputs, labels) + loss.backward() + optimizer.step() + train_loss += loss.item() + _, predicted = torch.max(outputs, 1) + train_total += labels.size(0) + train_correct += (predicted == labels).sum().item() + train_loss /= len(train_loader) + train_acc = train_correct / train_total + train_losses.append(train_loss) + train_accs.append(train_acc) + + # Validation loop + model.eval() + val_loss = 0.0 + val_correct = 0 + val_total = 0 + with torch.no_grad(): + for images, labels in val_loader: + images, labels = images.to(device), labels.to(device) + outputs = model(images) + loss = criterion(outputs, labels) + val_loss += loss.item() + _, predicted = torch.max(outputs, 1) + val_total += labels.size(0) + val_correct += (predicted == labels).sum().item() + val_loss /= len(val_loader) + val_acc = val_correct / val_total + val_losses.append(val_loss) + val_accs.append(val_acc) + + print(f'Epoch [{epoch+1}/{epochs}], Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.4f}, Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.4f}') + + # Early stopping check + if epoch > 0 and val_acc < val_accs[-2]: down_consec += 1 else: down_consec = 0 - # Stop training early if validation accuracy decreases for four epochs in a row if down_consec >= 4: stopping_epoch = epoch + 1 break - if val_accs[-1] == max(val_accs): - # save best model - torch.save(model, "adni_vit.pt") - print(f"Training & validation took {time.time()-strt:.3f} secs or {(time.time()-strt)/60:.2f} mins in total") - print("") + # Save the best model + torch.save(model, "adni_vit.pt") + + # Plot training and validation metrics plot_metric(stopping_epoch, 'loss', train_losses, val_losses) plot_metric(stopping_epoch, 'accuracy', train_accs, val_accs) + return model -def run_testing(device, model, test_loader: DataLoader): +def plot_metric(stopping_epoch: int, metric_type: str, train_data: list, val_data: list): """ - Function to run testing on the trained model. + Helper function to plot a given metric """ - test_correct = 0 - test_total = 0 - start = time.time() - with torch.no_grad(): - for images, labels in test_loader: - images = images.to(device) - labels = labels.to(device) - # Forward pass - outputs = model(images) - _, predicted = torch.max(outputs, 1) - test_total += labels.size(0) - test_correct += (predicted == labels).sum().item() - - print(f"Test accuracy {(test_correct/test_total)*100:.2f}%, time elapsed {time.time()-start:.3f} secs or {(time.time()-start)/60:.2f} mins in total") - + plt.figure() + plt.plot(range(1, stopping_epoch+1), train_data, label = f"Training {metric_type}") + plt.plot(range(1, stopping_epoch+1), val_data, label=f"Validation {metric_type}", color='orange') + plt.xlabel('Epoch') + plt.ylabel(metric_type) + plt.legend() + plt.title(f"Training {metric_type} vs validation {metric_type}") + plt.savefig(f"Training_vs_validation_{metric_type}_{int(time.time())}.png") def main(): """ @@ -156,21 +101,21 @@ def main(): """ # Device configuration device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - if not torch.cuda.is_available(): - print("Warning CUDA not found. Using CPU") + # Initialise hyperparameters BATCH_SIZE = 64 EPOCHS = 20 LR = 1e-4 - # Initialise data loaders & model + + # Initialise data loaders train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) - # Use GlobalFilterNetwork instead of ViT - model = GlobalFilterNetwork() - model = model.to(device) - # Run training and testing - run_training(device, model, train_loader, val_loader, epochs=EPOCHS, lr=LR) - run_testing(device, model, test_loader) + + # Initialise model + model = ViTClassifier().to(device) + + # Run training + trained_model = train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) if __name__ == "__main__": main() \ No newline at end of file From 08b64e1552af4b8948efc878974e4dbab3d6b4ff Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 15:38:10 +1000 Subject: [PATCH 10/37] some check points --- .../__pycache__/dataset.cpython-311.pyc | Bin 7868 -> 8092 bytes .../__pycache__/modules.cpython-311.pyc | Bin 3751 -> 3751 bytes recognition/dataset.py | 1 + recognition/train.py | 228 +++++++++++++++++- 4 files changed, 218 insertions(+), 11 deletions(-) diff --git a/recognition/__pycache__/dataset.cpython-311.pyc b/recognition/__pycache__/dataset.cpython-311.pyc index c1c77fb986c1b4f9d02301490c310edc2998a767..2c9922df2e66dadede572ef0c975eb10bcfc3c5e 100644 GIT binary patch delta 1420 zcmah}&u<%55PomHyKS#3+q^4aPw4|3sZ%1qK~x0BXBJ7xLp z)J5IuSW;)YtcVq|)Bm!Dm$aFTrA#p+D%SWX} zE{yiP`j}iFQ@p_&I@nd)bW!8)J7g1Is2BSF@(!2Hh4YqKfDW`JaXE2>8e8GFy*It9 zq16+sm)5iSjcmTgwpslXZjAj5dHK6oH8yqD40D&aYQERA`s=WyG5}=cSm}MP? z1{v|ddzAadpI(FaiGyuF@_^vJ=MV2EA4z7Q_8Ef!8K_*KDM~mbW_{;$c@V1K_kExt z&tR~hPl!@*7=xmrEAc~>Y@G(-!O-30i z92bdjAF@w`2l%YG8or9`#ZXf8#-@5lT7DilPWmXp7=lBC%w}uNvd3|A`H;wmQoeG@ zaW7OBs)eHXI#Q5apGM#*5hf&#QSoK8r(O2^G*~>0b?7JQ`2R|nK&SsIp{G^C+eCFr z@*x=hhR3np=J4bg(_%YzI!w35@WD~?qe~2VF&TfZaDr5770wXIjC33DYN3px$le

E()P*&t~h`pC%25t@Z} z%-il91?;$)=wah>zCx(6KfElK{oJ@KhPv)VsS!hgH}L`INbiOt;z?JIC&m8sOTkI9 zzeeyn!K`r8L&b(ZDgVb%L|el*ZZEnvj62f!5B4B2oVC3>MjJRExuL~6Qh`L z;6P%?yAjVATy6Laj~V&H>z$W}qlVZo z=nC5;?+fdepTz5e6x0LANdQgLSi*9Jy_Pjn%YMj{;&>u&VSa#4XaJ+JagB!9 zcWVu4VAZyIq855>ve@m0gO7MhD*?KLM$wKScoHjEMJYRDW~hwLDgCkeLcct=$B+}Uz4j4?df0k9qjR7FP!;n>4|R^uA7@&iX<&UHhEJUgDF!R2f= zP;cekaf#~^dOH#SD|iwD{!y@I424}>4ba_1OU}%fUJQRle)c%n=fio>owOd~4j~$t zC)AW|M-#6?dl0+^&O1yEtP`;K-HKJYne=3SEKgIDnX%banqGjQuEL$rX99PARXm*CT$A_^fk3;D^zj#r)oXw^w)}lJ1Jhwac_N!UrdfH6V kX*j@-CijTFh`m*|Y*MZGMUWKBSHxV^RwaA2Z(Ty^FIoKI-2eap diff --git a/recognition/__pycache__/modules.cpython-311.pyc b/recognition/__pycache__/modules.cpython-311.pyc index 83842ecfd5784dde8ad75d402c7414d92be8eb1a..583d959eba4eb99519e182d58c2c897dc5c0a6e2 100644 GIT binary patch delta 19 ZcmZ23yIhuQIWI340}wpU-pDnV4*)V}1rh)N delta 19 ZcmZ23yIhuQIWI340}yP?+Q>DR4*)SX1m6Gv diff --git a/recognition/dataset.py b/recognition/dataset.py index 585f4a110..4d5e93873 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -22,6 +22,7 @@ transforms.RandomCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), + transforms.Lambda(lambda x: x.repeat(3, 1, 1)) ]) # Testing image transforms diff --git a/recognition/train.py b/recognition/train.py index 39ee93f85..51ee3ae64 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -1,15 +1,144 @@ +""" +containing the source code for training, validating, testing and saving the ViT. + +The model should be imported from “modules.py” and the data loader should be imported from “dataset.py”. +the losses and metrics during training are plotted +""" +# import torch +# import torch.nn as nn +# from torch.utils.data import DataLoader +# from sklearn.model_selection import train_test_split +# import matplotlib.pyplot as plt +# import time +# from dataset import ADNIDataset, get_dataloader +# from modules import ViTClassifier + +# def train_model(model, train_loader, val_loader, epochs, lr, device): +# """ +# Train the Vision Transformer model for Alzheimer's classification. +# """ +# optimizer = torch.optim.Adam(model.parameters(), lr=lr) +# criterion = nn.CrossEntropyLoss() + +# train_losses = [] +# val_losses = [] +# train_accs = [] +# val_accs = [] +# stopping_epoch = epochs +# down_consec = 0 + +# for epoch in range(epochs): +# # Training loop +# model.train() +# train_loss = 0.0 +# train_correct = 0 +# train_total = 0 +# for images, labels in train_loader: +# images, labels = images.to(device), labels.to(device) +# optimizer.zero_grad() +# outputs = model(images) +# loss = criterion(outputs, labels) +# loss.backward() +# optimizer.step() +# train_loss += loss.item() +# _, predicted = torch.max(outputs, 1) +# train_total += labels.size(0) +# train_correct += (predicted == labels).sum().item() +# train_loss /= len(train_loader) +# train_acc = train_correct / train_total +# train_losses.append(train_loss) +# train_accs.append(train_acc) + +# # Validation loop +# model.eval() +# val_loss = 0.0 +# val_correct = 0 +# val_total = 0 +# with torch.no_grad(): +# for images, labels in val_loader: +# images, labels = images.to(device), labels.to(device) +# outputs = model(images) +# loss = criterion(outputs, labels) +# val_loss += loss.item() +# _, predicted = torch.max(outputs, 1) +# val_total += labels.size(0) +# val_correct += (predicted == labels).sum().item() +# val_loss /= len(val_loader) +# val_acc = val_correct / val_total +# val_losses.append(val_loss) +# val_accs.append(val_acc) + +# print(f'Epoch [{epoch+1}/{epochs}], Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.4f}, Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.4f}') + +# # Early stopping check +# if epoch > 0 and val_acc < val_accs[-2]: +# down_consec += 1 +# else: +# down_consec = 0 +# if down_consec >= 4: +# stopping_epoch = epoch + 1 +# break + +# # Save the best model +# torch.save(model, "adni_vit.pt") + +# # Plot training and validation metrics +# plot_metric(stopping_epoch, 'loss', train_losses, val_losses) +# plot_metric(stopping_epoch, 'accuracy', train_accs, val_accs) + +# return model + +# def plot_metric(stopping_epoch: int, metric_type: str, train_data: list, val_data: list): +# """ +# Helper function to plot a given metric +# """ +# plt.figure() +# plt.plot(range(1, stopping_epoch+1), train_data, label = f"Training {metric_type}") +# plt.plot(range(1, stopping_epoch+1), val_data, label=f"Validation {metric_type}", color='orange') +# plt.xlabel('Epoch') +# plt.ylabel(metric_type) +# plt.legend() +# plt.title(f"Training {metric_type} vs validation {metric_type}") +# plt.savefig(f"Training_vs_validation_{metric_type}_{int(time.time())}.png") + +# def main(): +# """ +# Main execution function. +# """ +# # Device configuration +# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + +# # Initialise hyperparameters +# BATCH_SIZE = 64 +# EPOCHS = 20 +# LR = 1e-4 + +# # Initialise data loaders +# train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) +# test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) + +# # Initialise model +# model = ViTClassifier().to(device) +# print("nya") +# # Run training +# trained_model = train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) + +# if __name__ == "__main__": +# main() + import torch import torch.nn as nn from torch.utils.data import DataLoader -from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt import time from dataset import ADNIDataset, get_dataloader from modules import ViTClassifier +from tqdm import tqdm +import sys def train_model(model, train_loader, val_loader, epochs, lr, device): """ - Train the Vision Transformer model for Alzheimer's classification. + Train the Vision Transformer model for Alzheimer's classification with progress tracking. """ optimizer = torch.optim.Adam(model.parameters(), lr=lr) criterion = nn.CrossEntropyLoss() @@ -20,24 +149,45 @@ def train_model(model, train_loader, val_loader, epochs, lr, device): val_accs = [] stopping_epoch = epochs down_consec = 0 + best_val_acc = 0 + + print(f"\nStarting training on device: {device}") + print(f"Total epochs: {epochs}") + print(f"Training batches per epoch: {len(train_loader)}") + print(f"Validation batches per epoch: {len(val_loader)}\n") + + start_time = time.time() for epoch in range(epochs): + epoch_start = time.time() + # Training loop model.train() train_loss = 0.0 train_correct = 0 train_total = 0 - for images, labels in train_loader: + + # Progress bar for training + train_pbar = tqdm(train_loader, desc=f'Epoch {epoch + 1}/{epochs} [Train]', + leave=False, file=sys.stdout) + + for images, labels in train_pbar: images, labels = images.to(device), labels.to(device) optimizer.zero_grad() outputs = model(images) loss = criterion(outputs, labels) loss.backward() optimizer.step() + train_loss += loss.item() - _, predicted = torch.max(outputs, 1) + _, predicted = torch.max(outputs.data, 1) train_total += labels.size(0) train_correct += (predicted == labels).sum().item() + + # Update progress bar + train_pbar.set_postfix({'loss': f'{loss.item():.4f}', + 'acc': f'{(train_correct/train_total)*100:.2f}%'}) + train_loss /= len(train_loader) train_acc = train_correct / train_total train_losses.append(train_loss) @@ -48,33 +198,67 @@ def train_model(model, train_loader, val_loader, epochs, lr, device): val_loss = 0.0 val_correct = 0 val_total = 0 + + # Progress bar for validation + val_pbar = tqdm(val_loader, desc=f'Epoch {epoch + 1}/{epochs} [Val]', + leave=False, file=sys.stdout) + with torch.no_grad(): - for images, labels in val_loader: + for images, labels in val_pbar: images, labels = images.to(device), labels.to(device) outputs = model(images) loss = criterion(outputs, labels) val_loss += loss.item() - _, predicted = torch.max(outputs, 1) + _, predicted = torch.max(outputs.data, 1) val_total += labels.size(0) val_correct += (predicted == labels).sum().item() + + # Update progress bar + val_pbar.set_postfix({'loss': f'{loss.item():.4f}', + 'acc': f'{(val_correct/val_total)*100:.2f}%'}) + val_loss /= len(val_loader) val_acc = val_correct / val_total val_losses.append(val_loss) val_accs.append(val_acc) - print(f'Epoch [{epoch+1}/{epochs}], Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.4f}, Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.4f}') + epoch_time = time.time() - epoch_start + + # Print epoch summary + print(f'\nEpoch [{epoch+1}/{epochs}] - {epoch_time:.1f}s') + print(f'Train Loss: {train_loss:.4f}, Train Acc: {train_acc*100:.2f}%') + print(f'Val Loss: {val_loss:.4f}, Val Acc: {val_acc*100:.2f}%') + + # Save best model + if val_acc > best_val_acc: + best_val_acc = val_acc + print(f'Saving best model with validation accuracy: {val_acc*100:.2f}%') + torch.save({ + 'epoch': epoch, + 'model_state_dict': model.state_dict(), + 'optimizer_state_dict': optimizer.state_dict(), + 'train_loss': train_loss, + 'val_loss': val_loss, + 'train_acc': train_acc, + 'val_acc': val_acc, + }, "adni_vit_best.pt") # Early stopping check if epoch > 0 and val_acc < val_accs[-2]: down_consec += 1 + print(f'Validation accuracy decreased. Counter: {down_consec}/4') else: down_consec = 0 if down_consec >= 4: + print('\nEarly stopping triggered!') stopping_epoch = epoch + 1 break - # Save the best model - torch.save(model, "adni_vit.pt") + print('-' * 60 + '\n') + + total_time = time.time() - start_time + print(f'\nTraining completed in {total_time/60:.1f} minutes') + print(f'Best validation accuracy: {best_val_acc*100:.2f}%') # Plot training and validation metrics plot_metric(stopping_epoch, 'loss', train_losses, val_losses) @@ -102,20 +286,42 @@ def main(): # Device configuration device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + # Print system information + print("\nSystem Information:") + print(f"PyTorch version: {torch.__version__}") + print(f"Device being used: {device}") + print(f"Number of available GPUs: {torch.cuda.device_count() if torch.cuda.is_available() else 0}") + # Initialise hyperparameters - BATCH_SIZE = 64 + BATCH_SIZE = 32 # Reduced batch size to help with memory EPOCHS = 20 LR = 1e-4 + print("\nHyperparameters:") + print(f"Batch size: {BATCH_SIZE}") + print(f"Number of epochs: {EPOCHS}") + print(f"Learning rate: {LR}") + # Initialise data loaders + print("\nLoading data...") train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) + print("Data loaded successfully!") # Initialise model + print("\nInitializing model...") model = ViTClassifier().to(device) + print("Model initialized successfully!") + + # Print model summary + total_params = sum(p.numel() for p in model.parameters()) + trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad) + print(f"\nModel Parameters:") + print(f"Total parameters: {total_params:,}") + print(f"Trainable parameters: {trainable_params:,}") # Run training - trained_model = train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) + train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) if __name__ == "__main__": main() \ No newline at end of file From d98c8f93c0b6fd03814a68a7be97f88f712ccb14 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 15:52:23 +1000 Subject: [PATCH 11/37] feat: load check point --- recognition/train.py | 679 +++++++++++++++++++++++++++++-------------- 1 file changed, 466 insertions(+), 213 deletions(-) diff --git a/recognition/train.py b/recognition/train.py index 51ee3ae64..67b5a02de 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -4,18 +4,394 @@ The model should be imported from “modules.py” and the data loader should be imported from “dataset.py”. the losses and metrics during training are plotted """ +import torch +import torch.nn as nn +from torch.utils.data import DataLoader +import matplotlib.pyplot as plt +import seaborn as sns +import numpy as np +import pandas as pd +import json +import os +import time +from datetime import datetime +from tqdm import tqdm +import sys +from sklearn.metrics import confusion_matrix, classification_report + +from dataset import ADNIDataset, get_dataloader +from modules import ViTClassifier + +class ModelCheckpointing: + def __init__(self, save_dir='checkpoints'): + """Initialize checkpoint manager""" + self.save_dir = save_dir + os.makedirs(save_dir, exist_ok=True) + self.best_val_acc = 0 + self.best_model_path = None + self.history = { + 'train_loss': [], 'val_loss': [], + 'train_acc': [], 'val_acc': [], + 'learning_rate': [], 'epochs': [] + } + + def save_checkpoint(self, model, optimizer, epoch, train_loss, val_loss, + train_acc, val_acc, lr, is_best=False): + """Save model checkpoint""" + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + + checkpoint = { + 'epoch': epoch, + 'model_state_dict': model.state_dict(), + 'optimizer_state_dict': optimizer.state_dict(), + 'train_loss': train_loss, + 'val_loss': val_loss, + 'train_acc': train_acc, + 'val_acc': val_acc, + 'learning_rate': lr + } + + # Update history + for key in ['train_loss', 'val_loss', 'train_acc', 'val_acc']: + self.history[key].append(eval(key)) + self.history['learning_rate'].append(lr) + self.history['epochs'].append(epoch) + + # Save regular checkpoint + checkpoint_path = os.path.join(self.save_dir, f'checkpoint_epoch_{epoch}_{timestamp}.pt') + torch.save(checkpoint, checkpoint_path) + + # Save best model if applicable + if is_best: + self.best_val_acc = val_acc + self.best_model_path = os.path.join(self.save_dir, f'best_model_{timestamp}.pt') + torch.save(checkpoint, self.best_model_path) + + # Save config + config = { + 'timestamp': timestamp, + 'epoch': epoch, + 'best_val_acc': val_acc, + 'final_train_loss': train_loss, + 'final_val_loss': val_loss, + 'learning_rate': lr + } + + with open(os.path.join(self.save_dir, f'model_config_{timestamp}.json'), 'w') as f: + json.dump(config, f, indent=4) + + return checkpoint_path + + def load_checkpoint(self, model, optimizer, checkpoint_path): + """Load model checkpoint""" + if not os.path.exists(checkpoint_path): + raise FileNotFoundError(f"No checkpoint found at {checkpoint_path}") + + checkpoint = torch.load(checkpoint_path) + model.load_state_dict(checkpoint['model_state_dict']) + optimizer.load_state_dict(checkpoint['optimizer_state_dict']) + return model, optimizer, checkpoint + + def load_best_model(self, model, optimizer): + """Load the best model""" + if self.best_model_path is None: + raise ValueError("No best model checkpoint found") + return self.load_checkpoint(model, optimizer, self.best_model_path) + + def save_training_history(self): + """Save training history""" + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + history_path = os.path.join(self.save_dir, f'training_history_{timestamp}.json') + with open(history_path, 'w') as f: + json.dump(self.history, f, indent=4) + return history_path + +class VisualizationUtils: + @staticmethod + def plot_training_history(history): + """Plot training metrics""" + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5)) + + # Plot loss + ax1.plot(history['train_loss'], label='Training Loss') + ax1.plot(history['val_loss'], label='Validation Loss') + ax1.set_title('Loss Over Time') + ax1.set_xlabel('Epoch') + ax1.set_ylabel('Loss') + ax1.legend() + + # Plot accuracy + ax2.plot(history['train_acc'], label='Training Accuracy') + ax2.plot(history['val_acc'], label='Validation Accuracy') + ax2.set_title('Accuracy Over Time') + ax2.set_xlabel('Epoch') + ax2.set_ylabel('Accuracy') + ax2.legend() + + plt.tight_layout() + return fig + + @staticmethod + def plot_attention_maps(model, image, pred_class, true_class=None): + """Plot attention maps""" + with torch.no_grad(): + _ = model(image.unsqueeze(0)) + attention = model.get_attention_weights() + attention = attention.mean(1).squeeze() + + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5)) + + ax1.imshow(image.permute(1, 2, 0).cpu()) + ax1.axis('off') + ax1.set_title('Original Image') + + sns.heatmap(attention.cpu(), ax=ax2, cmap='viridis') + title = f'Attention Map (Pred: {pred_class})' + if true_class is not None: + title += f' (True: {true_class})' + ax2.set_title(title) + + plt.tight_layout() + return fig + + @staticmethod + def plot_confusion_matrix(y_true, y_pred, classes): + """Plot confusion matrix""" + cm = confusion_matrix(y_true, y_pred) + plt.figure(figsize=(10, 8)) + sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', + xticklabels=classes, yticklabels=classes) + plt.title('Confusion Matrix') + plt.ylabel('True Label') + plt.xlabel('Predicted Label') + return plt.gcf() + + @staticmethod + def generate_classification_report(y_true, y_pred, classes): + """Generate classification report""" + report = classification_report(y_true, y_pred, target_names=classes, output_dict=True) + df_report = pd.DataFrame(report).transpose() + + plt.figure(figsize=(10, 6)) + sns.heatmap(df_report.iloc[:-3, :-1].astype(float), annot=True, cmap='Blues', fmt='.2f') + plt.title('Classification Report') + return plt.gcf() + +def train_epoch(model, loader, optimizer, criterion, device): + """Run one training epoch""" + model.train() + running_loss = 0.0 + correct = 0 + total = 0 + + pbar = tqdm(loader, desc='Training', leave=False) + for images, labels in pbar: + images, labels = images.to(device), labels.to(device) + optimizer.zero_grad() + outputs = model(images) + loss = criterion(outputs, labels) + loss.backward() + optimizer.step() + + running_loss += loss.item() + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + + pbar.set_postfix({'loss': f'{loss.item():.4f}', + 'acc': f'{(correct/total)*100:.2f}%'}) + + return running_loss / len(loader), correct / total + +def validate_epoch(model, loader, criterion, device): + """Run one validation epoch""" + model.eval() + running_loss = 0.0 + correct = 0 + total = 0 + + with torch.no_grad(): + pbar = tqdm(loader, desc='Validation', leave=False) + for images, labels in pbar: + images, labels = images.to(device), labels.to(device) + outputs = model(images) + loss = criterion(outputs, labels) + + running_loss += loss.item() + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + + pbar.set_postfix({'loss': f'{loss.item():.4f}', + 'acc': f'{(correct/total)*100:.2f}%'}) + + return running_loss / len(loader), correct / total + +def train_model(model, train_loader, val_loader, epochs, lr, device, early_stopping_patience=4): + """Main training function""" + optimizer = torch.optim.Adam(model.parameters(), lr=lr) + criterion = nn.CrossEntropyLoss() + checkpointer = ModelCheckpointing() + visualizer = VisualizationUtils() + + print(f"\nStarting training on device: {device}") + print(f"Checkpoints will be saved to: {checkpointer.save_dir}") + + start_time = time.time() + stopping_epoch = epochs + down_consec = 0 + + for epoch in range(epochs): + epoch_start = time.time() + + # Training + train_loss, train_acc = train_epoch(model, train_loader, optimizer, criterion, device) + + # Validation + val_loss, val_acc = validate_epoch(model, val_loader, criterion, device) + + # Check if best model + is_best = val_acc > checkpointer.best_val_acc + + # Save checkpoint + checkpoint_path = checkpointer.save_checkpoint( + model, optimizer, epoch, train_loss, val_loss, + train_acc, val_acc, lr, is_best + ) + + epoch_time = time.time() - epoch_start + print(f'\nEpoch [{epoch+1}/{epochs}] - {epoch_time:.1f}s') + print(f'Train Loss: {train_loss:.4f}, Train Acc: {train_acc*100:.2f}%') + print(f'Val Loss: {val_loss:.4f}, Val Acc: {val_acc*100:.2f}%') + print(f'Checkpoint saved: {checkpoint_path}') + + if is_best: + print(f'New best model saved with validation accuracy: {val_acc*100:.2f}%') + + # Early stopping check + if epoch > 0 and val_acc < checkpointer.history['val_acc'][-2]: + down_consec += 1 + print(f'Validation accuracy decreased. Counter: {down_consec}/{early_stopping_patience}') + else: + down_consec = 0 + + if down_consec >= early_stopping_patience: + print('\nEarly stopping triggered!') + stopping_epoch = epoch + 1 + break + + print('-' * 60) + + total_time = time.time() - start_time + print(f'\nTraining completed in {total_time/60:.1f} minutes') + print(f'Best validation accuracy: {checkpointer.best_val_acc*100:.2f}%') + + # Save final history + history_path = checkpointer.save_training_history() + print(f'Training history saved: {history_path}') + + # Plot training curves + visualizer.plot_training_history(checkpointer.history) + plt.savefig(os.path.join(checkpointer.save_dir, 'training_curves.png')) + + return model, checkpointer.history + +def evaluate_model(model, test_loader, device, classes): + """Evaluate model on test set""" + model.eval() + y_true = [] + y_pred = [] + visualizer = VisualizationUtils() + + with torch.no_grad(): + for images, labels in tqdm(test_loader, desc='Evaluating'): + images = images.to(device) + outputs = model(images) + _, preds = torch.max(outputs, 1) + y_true.extend(labels.cpu().numpy()) + y_pred.extend(preds.cpu().numpy()) + + # Generate evaluation plots + cm_fig = visualizer.plot_confusion_matrix(y_true, y_pred, classes) + cm_fig.savefig('confusion_matrix.png') + + report_fig = visualizer.generate_classification_report(y_true, y_pred, classes) + report_fig.savefig('classification_report.png') + + return y_true, y_pred + +def main(): + """Main execution function""" + # Device configuration + device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + + # Print system information + print("\nSystem Information:") + print(f"PyTorch version: {torch.__version__}") + print(f"Device being used: {device}") + print(f"Number of available GPUs: {torch.cuda.device_count() if torch.cuda.is_available() else 0}") + + # Hyperparameters + BATCH_SIZE = 32 + EPOCHS = 20 + LR = 1e-4 + CLASSES = ['CN', 'MCI', 'AD', 'SMC'] + + print("\nHyperparameters:") + print(f"Batch size: {BATCH_SIZE}") + print(f"Number of epochs: {EPOCHS}") + print(f"Learning rate: {LR}") + + # Initialize data loaders + print("\nLoading data...") + train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) + test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) + print("Data loaded successfully!") + + # Initialize model + print("\nInitializing model...") + model = ViTClassifier().to(device) + print("Model initialized successfully!") + + # Print model summary + total_params = sum(p.numel() for p in model.parameters()) + trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad) + print(f"\nModel Parameters:") + print(f"Total parameters: {total_params:,}") + print(f"Trainable parameters: {trainable_params:,}") + + # Train model + model, history = train_model( + model=model, + train_loader=train_loader, + val_loader=val_loader, + epochs=EPOCHS, + lr=LR, + device=device + ) + + # Evaluate model + y_true, y_pred = evaluate_model(model, test_loader, device, CLASSES) + + print("\nTraining and evaluation completed successfully!") + print("Check the output directory for visualization plots and model checkpoints.") + +if __name__ == "__main__": + main() + # import torch # import torch.nn as nn # from torch.utils.data import DataLoader -# from sklearn.model_selection import train_test_split # import matplotlib.pyplot as plt # import time # from dataset import ADNIDataset, get_dataloader # from modules import ViTClassifier +# from tqdm import tqdm +# import sys # def train_model(model, train_loader, val_loader, epochs, lr, device): # """ -# Train the Vision Transformer model for Alzheimer's classification. +# Train the Vision Transformer model for Alzheimer's classification with progress tracking. # """ # optimizer = torch.optim.Adam(model.parameters(), lr=lr) # criterion = nn.CrossEntropyLoss() @@ -26,24 +402,45 @@ # val_accs = [] # stopping_epoch = epochs # down_consec = 0 +# best_val_acc = 0 + +# print(f"\nStarting training on device: {device}") +# print(f"Total epochs: {epochs}") +# print(f"Training batches per epoch: {len(train_loader)}") +# print(f"Validation batches per epoch: {len(val_loader)}\n") + +# start_time = time.time() # for epoch in range(epochs): +# epoch_start = time.time() + # # Training loop # model.train() # train_loss = 0.0 # train_correct = 0 # train_total = 0 -# for images, labels in train_loader: + +# # Progress bar for training +# train_pbar = tqdm(train_loader, desc=f'Epoch {epoch + 1}/{epochs} [Train]', +# leave=False, file=sys.stdout) + +# for images, labels in train_pbar: # images, labels = images.to(device), labels.to(device) # optimizer.zero_grad() # outputs = model(images) # loss = criterion(outputs, labels) # loss.backward() # optimizer.step() + # train_loss += loss.item() -# _, predicted = torch.max(outputs, 1) +# _, predicted = torch.max(outputs.data, 1) # train_total += labels.size(0) # train_correct += (predicted == labels).sum().item() + +# # Update progress bar +# train_pbar.set_postfix({'loss': f'{loss.item():.4f}', +# 'acc': f'{(train_correct/train_total)*100:.2f}%'}) + # train_loss /= len(train_loader) # train_acc = train_correct / train_total # train_losses.append(train_loss) @@ -54,33 +451,67 @@ # val_loss = 0.0 # val_correct = 0 # val_total = 0 + +# # Progress bar for validation +# val_pbar = tqdm(val_loader, desc=f'Epoch {epoch + 1}/{epochs} [Val]', +# leave=False, file=sys.stdout) + # with torch.no_grad(): -# for images, labels in val_loader: +# for images, labels in val_pbar: # images, labels = images.to(device), labels.to(device) # outputs = model(images) # loss = criterion(outputs, labels) # val_loss += loss.item() -# _, predicted = torch.max(outputs, 1) +# _, predicted = torch.max(outputs.data, 1) # val_total += labels.size(0) # val_correct += (predicted == labels).sum().item() + +# # Update progress bar +# val_pbar.set_postfix({'loss': f'{loss.item():.4f}', +# 'acc': f'{(val_correct/val_total)*100:.2f}%'}) + # val_loss /= len(val_loader) # val_acc = val_correct / val_total # val_losses.append(val_loss) # val_accs.append(val_acc) -# print(f'Epoch [{epoch+1}/{epochs}], Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.4f}, Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.4f}') +# epoch_time = time.time() - epoch_start + +# # Print epoch summary +# print(f'\nEpoch [{epoch+1}/{epochs}] - {epoch_time:.1f}s') +# print(f'Train Loss: {train_loss:.4f}, Train Acc: {train_acc*100:.2f}%') +# print(f'Val Loss: {val_loss:.4f}, Val Acc: {val_acc*100:.2f}%') + +# # Save best model +# if val_acc > best_val_acc: +# best_val_acc = val_acc +# print(f'Saving best model with validation accuracy: {val_acc*100:.2f}%') +# torch.save({ +# 'epoch': epoch, +# 'model_state_dict': model.state_dict(), +# 'optimizer_state_dict': optimizer.state_dict(), +# 'train_loss': train_loss, +# 'val_loss': val_loss, +# 'train_acc': train_acc, +# 'val_acc': val_acc, +# }, "adni_vit_best.pt") # # Early stopping check # if epoch > 0 and val_acc < val_accs[-2]: # down_consec += 1 +# print(f'Validation accuracy decreased. Counter: {down_consec}/4') # else: # down_consec = 0 # if down_consec >= 4: +# print('\nEarly stopping triggered!') # stopping_epoch = epoch + 1 # break -# # Save the best model -# torch.save(model, "adni_vit.pt") +# print('-' * 60 + '\n') + +# total_time = time.time() - start_time +# print(f'\nTraining completed in {total_time/60:.1f} minutes') +# print(f'Best validation accuracy: {best_val_acc*100:.2f}%') # # Plot training and validation metrics # plot_metric(stopping_epoch, 'loss', train_losses, val_losses) @@ -108,220 +539,42 @@ # # Device configuration # device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') +# # Print system information +# print("\nSystem Information:") +# print(f"PyTorch version: {torch.__version__}") +# print(f"Device being used: {device}") +# print(f"Number of available GPUs: {torch.cuda.device_count() if torch.cuda.is_available() else 0}") + # # Initialise hyperparameters -# BATCH_SIZE = 64 +# BATCH_SIZE = 32 # Reduced batch size to help with memory # EPOCHS = 20 # LR = 1e-4 +# print("\nHyperparameters:") +# print(f"Batch size: {BATCH_SIZE}") +# print(f"Number of epochs: {EPOCHS}") +# print(f"Learning rate: {LR}") + # # Initialise data loaders +# print("\nLoading data...") # train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) # test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) +# print("Data loaded successfully!") # # Initialise model +# print("\nInitializing model...") # model = ViTClassifier().to(device) -# print("nya") -# # Run training -# trained_model = train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) - -# if __name__ == "__main__": -# main() - -import torch -import torch.nn as nn -from torch.utils.data import DataLoader -import matplotlib.pyplot as plt -import time -from dataset import ADNIDataset, get_dataloader -from modules import ViTClassifier -from tqdm import tqdm -import sys - -def train_model(model, train_loader, val_loader, epochs, lr, device): - """ - Train the Vision Transformer model for Alzheimer's classification with progress tracking. - """ - optimizer = torch.optim.Adam(model.parameters(), lr=lr) - criterion = nn.CrossEntropyLoss() +# print("Model initialized successfully!") - train_losses = [] - val_losses = [] - train_accs = [] - val_accs = [] - stopping_epoch = epochs - down_consec = 0 - best_val_acc = 0 - - print(f"\nStarting training on device: {device}") - print(f"Total epochs: {epochs}") - print(f"Training batches per epoch: {len(train_loader)}") - print(f"Validation batches per epoch: {len(val_loader)}\n") - - start_time = time.time() - - for epoch in range(epochs): - epoch_start = time.time() - - # Training loop - model.train() - train_loss = 0.0 - train_correct = 0 - train_total = 0 - - # Progress bar for training - train_pbar = tqdm(train_loader, desc=f'Epoch {epoch + 1}/{epochs} [Train]', - leave=False, file=sys.stdout) +# # Print model summary +# total_params = sum(p.numel() for p in model.parameters()) +# trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad) +# print(f"\nModel Parameters:") +# print(f"Total parameters: {total_params:,}") +# print(f"Trainable parameters: {trainable_params:,}") - for images, labels in train_pbar: - images, labels = images.to(device), labels.to(device) - optimizer.zero_grad() - outputs = model(images) - loss = criterion(outputs, labels) - loss.backward() - optimizer.step() - - train_loss += loss.item() - _, predicted = torch.max(outputs.data, 1) - train_total += labels.size(0) - train_correct += (predicted == labels).sum().item() - - # Update progress bar - train_pbar.set_postfix({'loss': f'{loss.item():.4f}', - 'acc': f'{(train_correct/train_total)*100:.2f}%'}) - - train_loss /= len(train_loader) - train_acc = train_correct / train_total - train_losses.append(train_loss) - train_accs.append(train_acc) - - # Validation loop - model.eval() - val_loss = 0.0 - val_correct = 0 - val_total = 0 - - # Progress bar for validation - val_pbar = tqdm(val_loader, desc=f'Epoch {epoch + 1}/{epochs} [Val]', - leave=False, file=sys.stdout) - - with torch.no_grad(): - for images, labels in val_pbar: - images, labels = images.to(device), labels.to(device) - outputs = model(images) - loss = criterion(outputs, labels) - val_loss += loss.item() - _, predicted = torch.max(outputs.data, 1) - val_total += labels.size(0) - val_correct += (predicted == labels).sum().item() - - # Update progress bar - val_pbar.set_postfix({'loss': f'{loss.item():.4f}', - 'acc': f'{(val_correct/val_total)*100:.2f}%'}) - - val_loss /= len(val_loader) - val_acc = val_correct / val_total - val_losses.append(val_loss) - val_accs.append(val_acc) - - epoch_time = time.time() - epoch_start - - # Print epoch summary - print(f'\nEpoch [{epoch+1}/{epochs}] - {epoch_time:.1f}s') - print(f'Train Loss: {train_loss:.4f}, Train Acc: {train_acc*100:.2f}%') - print(f'Val Loss: {val_loss:.4f}, Val Acc: {val_acc*100:.2f}%') - - # Save best model - if val_acc > best_val_acc: - best_val_acc = val_acc - print(f'Saving best model with validation accuracy: {val_acc*100:.2f}%') - torch.save({ - 'epoch': epoch, - 'model_state_dict': model.state_dict(), - 'optimizer_state_dict': optimizer.state_dict(), - 'train_loss': train_loss, - 'val_loss': val_loss, - 'train_acc': train_acc, - 'val_acc': val_acc, - }, "adni_vit_best.pt") - - # Early stopping check - if epoch > 0 and val_acc < val_accs[-2]: - down_consec += 1 - print(f'Validation accuracy decreased. Counter: {down_consec}/4') - else: - down_consec = 0 - if down_consec >= 4: - print('\nEarly stopping triggered!') - stopping_epoch = epoch + 1 - break - - print('-' * 60 + '\n') - - total_time = time.time() - start_time - print(f'\nTraining completed in {total_time/60:.1f} minutes') - print(f'Best validation accuracy: {best_val_acc*100:.2f}%') - - # Plot training and validation metrics - plot_metric(stopping_epoch, 'loss', train_losses, val_losses) - plot_metric(stopping_epoch, 'accuracy', train_accs, val_accs) - - return model - -def plot_metric(stopping_epoch: int, metric_type: str, train_data: list, val_data: list): - """ - Helper function to plot a given metric - """ - plt.figure() - plt.plot(range(1, stopping_epoch+1), train_data, label = f"Training {metric_type}") - plt.plot(range(1, stopping_epoch+1), val_data, label=f"Validation {metric_type}", color='orange') - plt.xlabel('Epoch') - plt.ylabel(metric_type) - plt.legend() - plt.title(f"Training {metric_type} vs validation {metric_type}") - plt.savefig(f"Training_vs_validation_{metric_type}_{int(time.time())}.png") - -def main(): - """ - Main execution function. - """ - # Device configuration - device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - - # Print system information - print("\nSystem Information:") - print(f"PyTorch version: {torch.__version__}") - print(f"Device being used: {device}") - print(f"Number of available GPUs: {torch.cuda.device_count() if torch.cuda.is_available() else 0}") - - # Initialise hyperparameters - BATCH_SIZE = 32 # Reduced batch size to help with memory - EPOCHS = 20 - LR = 1e-4 - - print("\nHyperparameters:") - print(f"Batch size: {BATCH_SIZE}") - print(f"Number of epochs: {EPOCHS}") - print(f"Learning rate: {LR}") - - # Initialise data loaders - print("\nLoading data...") - train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) - test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) - print("Data loaded successfully!") - - # Initialise model - print("\nInitializing model...") - model = ViTClassifier().to(device) - print("Model initialized successfully!") - - # Print model summary - total_params = sum(p.numel() for p in model.parameters()) - trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad) - print(f"\nModel Parameters:") - print(f"Total parameters: {total_params:,}") - print(f"Trainable parameters: {trainable_params:,}") - - # Run training - train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) +# # Run training +# train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) -if __name__ == "__main__": - main() \ No newline at end of file +# if __name__ == "__main__": +# main() \ No newline at end of file From 28e80e8cfdde0ba9f80a0b197ef2a4f82a26e0cc Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 16:01:06 +1000 Subject: [PATCH 12/37] training optimiser --- .../__pycache__/dataset.cpython-311.pyc | Bin 8092 -> 8429 bytes recognition/dataset.py | 10 +- recognition/train.py | 552 +++++++++++------- 3 files changed, 341 insertions(+), 221 deletions(-) diff --git a/recognition/__pycache__/dataset.cpython-311.pyc b/recognition/__pycache__/dataset.cpython-311.pyc index 2c9922df2e66dadede572ef0c975eb10bcfc3c5e..9100f6e0937475b215f559a034a9eb76fef39ad6 100644 GIT binary patch delta 451 zcmbPZ|JIRjIWI340}yyuDx|jvPvnzeJhV}L38S)TieRct3Qww33U8`Z8e57`3u}~Y zidc$B3uBaA3R5tHrugP(j7O#FLy{Rm`k{asNQ3a_JRmWhp@yMIr36Vng>enjG9Z67 zT&$K6O`aJ|o~eehhA9nbA(}cCh`M^H#SB0fvHFE*G8PE~MKl?2F_$Ig0C^%{UXdV( zVg}0<#RJ(zVL+l7Dj*faq0vs}3V delta 136 zcmaFsILDrEIWI340}wRkDWoqFn#d=?xND>O5=Lp^6v0%P6rNP66y8*+G`19>7S<@) z6sBMXO_9y-7>`QvX)+Z>0QD6`0trpI$sc7uDeHmw{2+oCNc`fk$<0qG%}KQ@Dg<&F Xfw=hCW^VZdjC>4Sj6xqk1XwiyAxIy` diff --git a/recognition/dataset.py b/recognition/dataset.py index 4d5e93873..81029aacc 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -108,4 +108,12 @@ def get_dataloader(batch_size, train: bool, val_proportion: float = 0.2, keep_pr if train == False: dataset = ADNIDataset(root_path=ADNI_PATH, train=False, transform=TEST_TRANSFORM) loader = DataLoader(dataset, batch_size=batch_size, shuffle=False) - return loader \ No newline at end of file + return loader + +def get_dataset(train=True): + if train: + train_dataset = ADNIDataset(train=True) + val_dataset = ADNIDataset(val=True) + return train_dataset, val_dataset + else: + return ADNIDataset(test=True) \ No newline at end of file diff --git a/recognition/train.py b/recognition/train.py index 67b5a02de..3d7546653 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -6,43 +6,157 @@ """ import torch import torch.nn as nn +import torch.cuda.amp as amp +from torch.nn.parallel import DistributedDataParallel as DDP +import torch.distributed as dist +import numpy as np from torch.utils.data import DataLoader +import torch.multiprocessing as mp +from contextlib import nullcontext import matplotlib.pyplot as plt import seaborn as sns -import numpy as np import pandas as pd import json import os import time from datetime import datetime from tqdm import tqdm -import sys from sklearn.metrics import confusion_matrix, classification_report -from dataset import ADNIDataset, get_dataloader +from dataset import ADNIDataset, get_dataloader, get_dataset from modules import ViTClassifier -class ModelCheckpointing: - def __init__(self, save_dir='checkpoints'): - """Initialize checkpoint manager""" +class OptimizedTrainer: + def __init__(self, model, train_loader, val_loader, device, + mixed_precision=True, distributed=False, num_workers=4, + save_dir='checkpoints'): + """ + Initialize optimized trainer with monitoring capabilities + """ + self.model = model + self.device = device + self.mixed_precision = mixed_precision + self.distributed = distributed + self.num_workers = num_workers self.save_dir = save_dir os.makedirs(save_dir, exist_ok=True) - self.best_val_acc = 0 - self.best_model_path = None + + # Setup mixed precision + self.scaler = amp.GradScaler() if mixed_precision else None + + # Optimize data loading + self.train_loader = self._optimize_dataloader(train_loader) + self.val_loader = self._optimize_dataloader(val_loader) + + # Initialize distributed training if requested + if distributed: + self.model = DDP(model) + + # Initialize training history self.history = { 'train_loss': [], 'val_loss': [], 'train_acc': [], 'val_acc': [], 'learning_rate': [], 'epochs': [] } + self.best_val_acc = 0 + self.best_model_path = None + + def _optimize_dataloader(self, dataloader): + """ + Optimize dataloader for speed + """ + return DataLoader( + dataloader.dataset, + batch_size=dataloader.batch_size, + shuffle=dataloader.dataset.train if hasattr(dataloader.dataset, 'train') else True, + num_workers=self.num_workers, + pin_memory=True, + persistent_workers=True, + prefetch_factor=2 + ) + + def train_epoch(self, optimizer, criterion, scheduler=None): + """ + Run optimized training epoch + """ + self.model.train() + running_loss = 0.0 + correct = 0 + total = 0 + + amp_context = amp.autocast() if self.mixed_precision else nullcontext() + pbar = tqdm(self.train_loader, desc='Training', leave=False) + + for inputs, targets in pbar: + inputs, targets = inputs.to(self.device), targets.to(self.device) + + optimizer.zero_grad(set_to_none=True) + + with amp_context: + outputs = self.model(inputs) + loss = criterion(outputs, targets) + + if self.mixed_precision: + self.scaler.scale(loss).backward() + self.scaler.step(optimizer) + self.scaler.update() + else: + loss.backward() + optimizer.step() + + if scheduler is not None: + scheduler.step() + + running_loss += loss.item() + _, predicted = outputs.max(1) + total += targets.size(0) + correct += predicted.eq(targets).sum().item() + + pbar.set_postfix({'loss': f'{loss.item():.4f}', + 'acc': f'{(correct/total)*100:.2f}%'}) - def save_checkpoint(self, model, optimizer, epoch, train_loss, val_loss, + del outputs, loss + torch.cuda.empty_cache() + + return running_loss / len(self.train_loader), correct / total + + def validate_epoch(self, criterion): + """ + Run validation epoch + """ + self.model.eval() + running_loss = 0.0 + correct = 0 + total = 0 + + with torch.no_grad(): + pbar = tqdm(self.val_loader, desc='Validation', leave=False) + for inputs, targets in pbar: + inputs, targets = inputs.to(self.device), targets.to(self.device) + + outputs = self.model(inputs) + loss = criterion(outputs, targets) + + running_loss += loss.item() + _, predicted = outputs.max(1) + total += targets.size(0) + correct += predicted.eq(targets).sum().item() + + pbar.set_postfix({'loss': f'{loss.item():.4f}', + 'acc': f'{(correct/total)*100:.2f}%'}) + + return running_loss / len(self.val_loader), correct / total + + def save_checkpoint(self, optimizer, epoch, train_loss, val_loss, train_acc, val_acc, lr, is_best=False): - """Save model checkpoint""" + """ + Save model checkpoint + """ timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') checkpoint = { 'epoch': epoch, - 'model_state_dict': model.state_dict(), + 'model_state_dict': self.model.state_dict(), 'optimizer_state_dict': optimizer.state_dict(), 'train_loss': train_loss, 'val_loss': val_loss, @@ -67,62 +181,25 @@ def save_checkpoint(self, model, optimizer, epoch, train_loss, val_loss, self.best_model_path = os.path.join(self.save_dir, f'best_model_{timestamp}.pt') torch.save(checkpoint, self.best_model_path) - # Save config - config = { - 'timestamp': timestamp, - 'epoch': epoch, - 'best_val_acc': val_acc, - 'final_train_loss': train_loss, - 'final_val_loss': val_loss, - 'learning_rate': lr - } - - with open(os.path.join(self.save_dir, f'model_config_{timestamp}.json'), 'w') as f: - json.dump(config, f, indent=4) - return checkpoint_path - def load_checkpoint(self, model, optimizer, checkpoint_path): - """Load model checkpoint""" - if not os.path.exists(checkpoint_path): - raise FileNotFoundError(f"No checkpoint found at {checkpoint_path}") - - checkpoint = torch.load(checkpoint_path) - model.load_state_dict(checkpoint['model_state_dict']) - optimizer.load_state_dict(checkpoint['optimizer_state_dict']) - return model, optimizer, checkpoint - - def load_best_model(self, model, optimizer): - """Load the best model""" - if self.best_model_path is None: - raise ValueError("No best model checkpoint found") - return self.load_checkpoint(model, optimizer, self.best_model_path) - - def save_training_history(self): - """Save training history""" - timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') - history_path = os.path.join(self.save_dir, f'training_history_{timestamp}.json') - with open(history_path, 'w') as f: - json.dump(self.history, f, indent=4) - return history_path - -class VisualizationUtils: - @staticmethod - def plot_training_history(history): - """Plot training metrics""" + def plot_training_history(self): + """ + Plot training metrics + """ fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5)) # Plot loss - ax1.plot(history['train_loss'], label='Training Loss') - ax1.plot(history['val_loss'], label='Validation Loss') + ax1.plot(self.history['train_loss'], label='Training Loss') + ax1.plot(self.history['val_loss'], label='Validation Loss') ax1.set_title('Loss Over Time') ax1.set_xlabel('Epoch') ax1.set_ylabel('Loss') ax1.legend() # Plot accuracy - ax2.plot(history['train_acc'], label='Training Accuracy') - ax2.plot(history['val_acc'], label='Validation Accuracy') + ax2.plot(self.history['train_acc'], label='Training Accuracy') + ax2.plot(self.history['val_acc'], label='Validation Accuracy') ax2.set_title('Accuracy Over Time') ax2.set_xlabel('Epoch') ax2.set_ylabel('Accuracy') @@ -131,32 +208,23 @@ def plot_training_history(history): plt.tight_layout() return fig - @staticmethod - def plot_attention_maps(model, image, pred_class, true_class=None): - """Plot attention maps""" - with torch.no_grad(): - _ = model(image.unsqueeze(0)) - attention = model.get_attention_weights() - attention = attention.mean(1).squeeze() + def evaluate(self, test_loader, classes): + """ + Evaluate model on test set + """ + self.model.eval() + y_true = [] + y_pred = [] - fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5)) - - ax1.imshow(image.permute(1, 2, 0).cpu()) - ax1.axis('off') - ax1.set_title('Original Image') - - sns.heatmap(attention.cpu(), ax=ax2, cmap='viridis') - title = f'Attention Map (Pred: {pred_class})' - if true_class is not None: - title += f' (True: {true_class})' - ax2.set_title(title) - - plt.tight_layout() - return fig - - @staticmethod - def plot_confusion_matrix(y_true, y_pred, classes): - """Plot confusion matrix""" + with torch.no_grad(): + for inputs, targets in tqdm(test_loader, desc='Evaluating'): + inputs = inputs.to(self.device) + outputs = self.model(inputs) + _, preds = torch.max(outputs, 1) + y_true.extend(targets.cpu().numpy()) + y_pred.extend(preds.cpu().numpy()) + + # Generate confusion matrix cm = confusion_matrix(y_true, y_pred) plt.figure(figsize=(10, 8)) sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', @@ -164,188 +232,169 @@ def plot_confusion_matrix(y_true, y_pred, classes): plt.title('Confusion Matrix') plt.ylabel('True Label') plt.xlabel('Predicted Label') - return plt.gcf() - @staticmethod - def generate_classification_report(y_true, y_pred, classes): - """Generate classification report""" + # Generate classification report report = classification_report(y_true, y_pred, target_names=classes, output_dict=True) - df_report = pd.DataFrame(report).transpose() - - plt.figure(figsize=(10, 6)) - sns.heatmap(df_report.iloc[:-3, :-1].astype(float), annot=True, cmap='Blues', fmt='.2f') - plt.title('Classification Report') - return plt.gcf() - -def train_epoch(model, loader, optimizer, criterion, device): - """Run one training epoch""" - model.train() - running_loss = 0.0 - correct = 0 - total = 0 - - pbar = tqdm(loader, desc='Training', leave=False) - for images, labels in pbar: - images, labels = images.to(device), labels.to(device) - optimizer.zero_grad() - outputs = model(images) - loss = criterion(outputs, labels) - loss.backward() - optimizer.step() - - running_loss += loss.item() - _, predicted = torch.max(outputs.data, 1) - total += labels.size(0) - correct += (predicted == labels).sum().item() - - pbar.set_postfix({'loss': f'{loss.item():.4f}', - 'acc': f'{(correct/total)*100:.2f}%'}) - - return running_loss / len(loader), correct / total - -def validate_epoch(model, loader, criterion, device): - """Run one validation epoch""" - model.eval() - running_loss = 0.0 - correct = 0 - total = 0 - - with torch.no_grad(): - pbar = tqdm(loader, desc='Validation', leave=False) - for images, labels in pbar: - images, labels = images.to(device), labels.to(device) - outputs = model(images) - loss = criterion(outputs, labels) - - running_loss += loss.item() - _, predicted = torch.max(outputs.data, 1) - total += labels.size(0) - correct += (predicted == labels).sum().item() + return y_true, y_pred, report + +def train_model_optimized(model, train_dataset, val_dataset, test_dataset=None, + epochs=20, batch_size=32, lr=1e-4, classes=None, + early_stopping_patience=4): + """ + Main training function with optimizations and monitoring + """ + # Setup device and optimization + device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + torch.backends.cudnn.benchmark = True + num_workers = min(mp.cpu_count(), 8) + + # Optimize batch size based on GPU memory + if torch.cuda.is_available(): + gpu_memory = torch.cuda.get_device_properties(0).total_memory + batch_size = min(batch_size, int(gpu_memory / (1024**3) * 4)) + + # Create data loaders + train_loader = DataLoader( + train_dataset, + batch_size=batch_size, + shuffle=True, + num_workers=num_workers, + pin_memory=True, + persistent_workers=True, + prefetch_factor=2 + ) - pbar.set_postfix({'loss': f'{loss.item():.4f}', - 'acc': f'{(correct/total)*100:.2f}%'}) + val_loader = DataLoader( + val_dataset, + batch_size=batch_size * 2, + shuffle=False, + num_workers=num_workers, + pin_memory=True, + persistent_workers=True, + prefetch_factor=2 + ) - return running_loss / len(loader), correct / total + # Initialize optimizer and scheduler + optimizer = torch.optim.AdamW( + model.parameters(), + lr=lr, + betas=(0.9, 0.999), + eps=1e-8, + weight_decay=0.01 + ) -def train_model(model, train_loader, val_loader, epochs, lr, device, early_stopping_patience=4): - """Main training function""" - optimizer = torch.optim.Adam(model.parameters(), lr=lr) - criterion = nn.CrossEntropyLoss() - checkpointer = ModelCheckpointing() - visualizer = VisualizationUtils() + scheduler = torch.optim.lr_scheduler.OneCycleLR( + optimizer, + max_lr=lr * 10, + epochs=epochs, + steps_per_epoch=len(train_loader), + pct_start=0.3, + anneal_strategy='cos' + ) - print(f"\nStarting training on device: {device}") - print(f"Checkpoints will be saved to: {checkpointer.save_dir}") + # Initialize trainer + trainer = OptimizedTrainer( + model=model, + train_loader=train_loader, + val_loader=val_loader, + device=device, + mixed_precision=True, + distributed=(torch.cuda.device_count() > 1) + ) + # Training loop + criterion = nn.CrossEntropyLoss() start_time = time.time() stopping_epoch = epochs down_consec = 0 + print(f"\nStarting training on device: {device}") + print(f"Batch size: {batch_size}, Learning rate: {lr}") + for epoch in range(epochs): epoch_start = time.time() - # Training - train_loss, train_acc = train_epoch(model, train_loader, optimizer, criterion, device) - - # Validation - val_loss, val_acc = validate_epoch(model, val_loader, criterion, device) + # Training and validation + train_loss, train_acc = trainer.train_epoch(optimizer, criterion, scheduler) + val_loss, val_acc = trainer.validate_epoch(criterion) # Check if best model - is_best = val_acc > checkpointer.best_val_acc + is_best = val_acc > trainer.best_val_acc # Save checkpoint - checkpoint_path = checkpointer.save_checkpoint( - model, optimizer, epoch, train_loss, val_loss, + checkpoint_path = trainer.save_checkpoint( + optimizer, epoch, train_loss, val_loss, train_acc, val_acc, lr, is_best ) + # Print epoch results epoch_time = time.time() - epoch_start print(f'\nEpoch [{epoch+1}/{epochs}] - {epoch_time:.1f}s') print(f'Train Loss: {train_loss:.4f}, Train Acc: {train_acc*100:.2f}%') print(f'Val Loss: {val_loss:.4f}, Val Acc: {val_acc*100:.2f}%') - print(f'Checkpoint saved: {checkpoint_path}') - - if is_best: - print(f'New best model saved with validation accuracy: {val_acc*100:.2f}%') # Early stopping check - if epoch > 0 and val_acc < checkpointer.history['val_acc'][-2]: + if epoch > 0 and val_acc < trainer.history['val_acc'][-2]: down_consec += 1 - print(f'Validation accuracy decreased. Counter: {down_consec}/{early_stopping_patience}') + if down_consec >= early_stopping_patience: + print('\nEarly stopping triggered!') + stopping_epoch = epoch + 1 + break else: down_consec = 0 - if down_consec >= early_stopping_patience: - print('\nEarly stopping triggered!') - stopping_epoch = epoch + 1 - break + # Final evaluation + if test_dataset is not None and classes is not None: + test_loader = DataLoader( + test_dataset, + batch_size=batch_size * 2, + shuffle=False, + num_workers=num_workers, + pin_memory=True + ) + y_true, y_pred, report = trainer.evaluate(test_loader, classes) - print('-' * 60) + # Plot and save training curves + trainer.plot_training_history() + plt.savefig(os.path.join(trainer.save_dir, 'training_curves.png')) total_time = time.time() - start_time print(f'\nTraining completed in {total_time/60:.1f} minutes') - print(f'Best validation accuracy: {checkpointer.best_val_acc*100:.2f}%') - - # Save final history - history_path = checkpointer.save_training_history() - print(f'Training history saved: {history_path}') - - # Plot training curves - visualizer.plot_training_history(checkpointer.history) - plt.savefig(os.path.join(checkpointer.save_dir, 'training_curves.png')) - - return model, checkpointer.history - -def evaluate_model(model, test_loader, device, classes): - """Evaluate model on test set""" - model.eval() - y_true = [] - y_pred = [] - visualizer = VisualizationUtils() + print(f'Best validation accuracy: {trainer.best_val_acc*100:.2f}%') - with torch.no_grad(): - for images, labels in tqdm(test_loader, desc='Evaluating'): - images = images.to(device) - outputs = model(images) - _, preds = torch.max(outputs, 1) - y_true.extend(labels.cpu().numpy()) - y_pred.extend(preds.cpu().numpy()) - - # Generate evaluation plots - cm_fig = visualizer.plot_confusion_matrix(y_true, y_pred, classes) - cm_fig.savefig('confusion_matrix.png') - - report_fig = visualizer.generate_classification_report(y_true, y_pred, classes) - report_fig.savefig('classification_report.png') - - return y_true, y_pred + return model, trainer.history def main(): """Main execution function""" - # Device configuration + # Device configuration and system information device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - - # Print system information print("\nSystem Information:") print(f"PyTorch version: {torch.__version__}") print(f"Device being used: {device}") print(f"Number of available GPUs: {torch.cuda.device_count() if torch.cuda.is_available() else 0}") + if torch.cuda.is_available(): + for i in range(torch.cuda.device_count()): + gpu_props = torch.cuda.get_device_properties(i) + print(f"GPU {i}: {gpu_props.name} ({gpu_props.total_memory / 1024**3:.1f} GB)") # Hyperparameters BATCH_SIZE = 32 EPOCHS = 20 LR = 1e-4 CLASSES = ['CN', 'MCI', 'AD', 'SMC'] + EARLY_STOPPING_PATIENCE = 4 print("\nHyperparameters:") print(f"Batch size: {BATCH_SIZE}") print(f"Number of epochs: {EPOCHS}") print(f"Learning rate: {LR}") + print(f"Early stopping patience: {EARLY_STOPPING_PATIENCE}") - # Initialize data loaders + # Initialize data print("\nLoading data...") - train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) - test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) + # Get datasets instead of dataloaders since our framework will create optimized loaders + train_dataset, val_dataset = get_dataset(train=True) # Assuming you modify get_dataloader to return datasets + test_dataset = get_dataset(train=False) print("Data loaded successfully!") # Initialize model @@ -360,24 +409,87 @@ def main(): print(f"Total parameters: {total_params:,}") print(f"Trainable parameters: {trainable_params:,}") - # Train model - model, history = train_model( - model=model, - train_loader=train_loader, - val_loader=val_loader, - epochs=EPOCHS, - lr=LR, - device=device - ) + # Additional optimization information + if torch.cuda.is_available(): + torch.backends.cudnn.benchmark = True + print("\nOptimization Settings:") + print("cuDNN benchmark mode: Enabled") + print(f"Mixed precision training: Enabled") + print(f"Distributed training: {'Enabled' if torch.cuda.device_count() > 1 else 'Disabled'}") + + # Train model using optimized framework + try: + model, history = train_model_optimized( + model=model, + train_dataset=train_dataset, + val_dataset=val_dataset, + test_dataset=test_dataset, + epochs=EPOCHS, + batch_size=BATCH_SIZE, + lr=LR, + classes=CLASSES, + early_stopping_patience=EARLY_STOPPING_PATIENCE + ) - # Evaluate model - y_true, y_pred = evaluate_model(model, test_loader, device, CLASSES) + print("\nTraining completed successfully!") + + # Print final metrics + final_train_acc = history['train_acc'][-1] + final_val_acc = history['val_acc'][-1] + best_val_acc = max(history['val_acc']) + best_epoch = history['val_acc'].index(best_val_acc) + 1 + + print("\nFinal Results:") + print(f"Best validation accuracy: {best_val_acc*100:.2f}% (Epoch {best_epoch})") + print(f"Final training accuracy: {final_train_acc*100:.2f}%") + print(f"Final validation accuracy: {final_val_acc*100:.2f}%") + + # Save complete training results + results = { + 'hyperparameters': { + 'batch_size': BATCH_SIZE, + 'epochs': EPOCHS, + 'learning_rate': LR, + 'early_stopping_patience': EARLY_STOPPING_PATIENCE + }, + 'model_info': { + 'total_parameters': total_params, + 'trainable_parameters': trainable_params + }, + 'training_history': history, + 'final_metrics': { + 'best_val_acc': best_val_acc, + 'best_epoch': best_epoch, + 'final_train_acc': final_train_acc, + 'final_val_acc': final_val_acc + } + } - print("\nTraining and evaluation completed successfully!") - print("Check the output directory for visualization plots and model checkpoints.") + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + with open(f'training_results_{timestamp}.json', 'w') as f: + json.dump(results, f, indent=4) + + print("\nResults have been saved. Check the output directory for:") + print("- Model checkpoints") + print("- Training curves") + print("- Confusion matrix") + print("- Complete training results JSON") + + except Exception as e: + print(f"\nError during training: {str(e)}") + raise + + return model, history if __name__ == "__main__": - main() + try: + main() + except KeyboardInterrupt: + print("\nTraining interrupted by user") + except Exception as e: + print(f"\nAn error occurred: {str(e)}") + raise + # import torch # import torch.nn as nn From 289833ff803056770fa5ecb5ea8f13537d66e5e2 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 16:19:29 +1000 Subject: [PATCH 13/37] feat: update module to adapt to pretrained model & greyscale img --- recognition/modules.py | 86 +++++++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index da77194e8..a232f12db 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -6,44 +6,88 @@ import torch import torch.nn as nn from torchvision.models import vit_b_16, ViT_B_16_Weights -from torch.utils.data import DataLoader +from torch.utils.data import DataLoader, Dataset from sklearn.model_selection import train_test_split +import torchvision +from torchvision import transforms -class ADNIDataset(torch.utils.data.Dataset): + +class ADNIDataset(Dataset): """ - PyTorch dataset class for the ADNI brain imaging data. + Modified Dataset class to handle grayscale images """ - def __init__(self, data_dir, transform=None): - self.data_dir = data_dir + def __init__(self, root_path, train=True, transform=None): + self.path = Path(root_path, 'train' if train else 'test') self.transform = transform - self.image_paths = [] + + # Initialize lists for each class + self.files = [] self.labels = [] - # Load data and labels - for label in ['normal', 'ad']: - label_dir = os.path.join(data_dir, label) - for filename in os.listdir(label_dir): - self.image_paths.append(os.path.join(label_dir, filename)) - self.labels.append(0 if label == 'normal' else 1) + # Define class mapping + self.class_to_idx = { + 'CN': 0, # Cognitively Normal + 'MCI': 1, # Mild Cognitive Impairment + 'AD': 2, # Alzheimer's Disease + 'SMC': 3 # Subjective Memory Concern + } + + # Load files for each class + for class_name in self.class_to_idx.keys(): + class_path = Path(self.path, class_name) + if class_path.exists(): + class_files = list(class_path.glob('*.jpg')) + list(class_path.glob('*.png')) + self.files.extend(class_files) + self.labels.extend([self.class_to_idx[class_name]] * len(class_files)) def __len__(self): - return len(self.image_paths) + return len(self.files) def __getitem__(self, idx): - image = Image.open(self.image_paths[idx]) + img_path = self.files[idx] + label = self.labels[idx] + + # Load as grayscale directly + image = Image.open(img_path).convert('L') # 'L' mode for grayscale + if self.transform: image = self.transform(image) - return image, self.labels[idx] + + return image, label class ViTClassifier(nn.Module): """ - Vision Transformer model for Alzheimer's classification. + Modified Vision Transformer for grayscale images """ - def __init__(self, num_classes=2): + def __init__(self, num_classes=4): super(ViTClassifier, self).__init__() - self.vit = vit_b_16(weights=ViT_B_16_Weights.IMAGENET1K_V1) - self.vit.heads.head = nn.Linear(self.vit.heads.head.in_features, num_classes) - def forward(self, x): - return self.vit(x) + # Load the pre-trained ViT model + self.vit = torchvision.models.vit_b_16(pretrained=True) + + # Modify the first layer to accept grayscale input + # Create new patch embedding layer with 1 input channel instead of 3 + new_patch_embed = nn.Conv2d( + in_channels=1, # Changed from 3 to 1 for grayscale + out_channels=768, + kernel_size=16, + stride=16 + ) + + # Initialize the weights of the new layer + # Average the weights across the RGB channels + with torch.no_grad(): + new_patch_embed.weight = nn.Parameter( + self.vit.conv_proj.weight.sum(dim=1, keepdim=True) / 3.0 + ) + new_patch_embed.bias = nn.Parameter(self.vit.conv_proj.bias) + # Replace the patch embedding layer + self.vit.conv_proj = new_patch_embed + + # Modify the classifier head for our number of classes + num_features = self.vit.heads.head.in_features + self.vit.heads.head = nn.Linear(num_features, num_classes) + + def forward(self, x): + return self.vit(x) \ No newline at end of file From f11f1975bbf76c920aba9f32ec89b32b7a365f84 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 16:48:42 +1000 Subject: [PATCH 14/37] improvement: double the batch size to train faster --- recognition/train.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/recognition/train.py b/recognition/train.py index 3d7546653..5d9f628dd 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -378,7 +378,7 @@ def main(): print(f"GPU {i}: {gpu_props.name} ({gpu_props.total_memory / 1024**3:.1f} GB)") # Hyperparameters - BATCH_SIZE = 32 + BATCH_SIZE = 64 EPOCHS = 20 LR = 1e-4 CLASSES = ['CN', 'MCI', 'AD', 'SMC'] @@ -390,16 +390,19 @@ def main(): print(f"Learning rate: {LR}") print(f"Early stopping patience: {EARLY_STOPPING_PATIENCE}") - # Initialize data + # Initialize data with specific proportions print("\nLoading data...") - # Get datasets instead of dataloaders since our framework will create optimized loaders - train_dataset, val_dataset = get_dataset(train=True) # Assuming you modify get_dataloader to return datasets + train_dataset, val_dataset = get_dataset( + train=True, + val_proportion=0.2, # 20% validation split + keep_proportion=1.0 # Use full dataset + ) test_dataset = get_dataset(train=False) print("Data loaded successfully!") # Initialize model print("\nInitializing model...") - model = ViTClassifier().to(device) + model = ViTClassifier(num_classes=4).to(device) print("Model initialized successfully!") # Print model summary From ecad71cfb6b533c9edd992a1fd59511e1423bc0a Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 17:22:03 +1000 Subject: [PATCH 15/37] improvement: update dataset to match the grayscale/ save-load --- recognition/dataset.py | 44 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/recognition/dataset.py b/recognition/dataset.py index 81029aacc..b82796481 100644 --- a/recognition/dataset.py +++ b/recognition/dataset.py @@ -21,14 +21,18 @@ TRAIN_TRANSFORM = transforms.Compose([ transforms.RandomCrop(224), transforms.RandomHorizontalFlip(), + transforms.RandomRotation(10), transforms.ToTensor(), - transforms.Lambda(lambda x: x.repeat(3, 1, 1)) + # Normalize with grayscale statistics + transforms.Normalize(mean=[0.485], std=[0.229]) ]) # Testing image transforms TEST_TRANSFORM = transforms.Compose([ transforms.CenterCrop(224), transforms.ToTensor(), + # Normalize with grayscale statistics + transforms.Normalize(mean=[0.485], std=[0.229]) ]) # Rest of the original dataset.py content remains the same @@ -110,10 +114,40 @@ def get_dataloader(batch_size, train: bool, val_proportion: float = 0.2, keep_pr loader = DataLoader(dataset, batch_size=batch_size, shuffle=False) return loader -def get_dataset(train=True): +def get_dataset(train=True, val_proportion: float = 0.2, keep_proportion: float = 1.0): + """ + Returns datasets for either training/validation or testing. + + Args: + train (bool): If True, returns training and validation datasets. If False, returns test dataset. + val_proportion (float): Proportion of training data to use for validation (only used if train=True) + keep_proportion (float): Proportion of total data to keep (for debugging purposes) + + Returns: + If train=True: tuple (train_dataset, val_dataset) + If train=False: test_dataset + """ if train: - train_dataset = ADNIDataset(train=True) - val_dataset = ADNIDataset(val=True) + # Initialize training dataset with proper transforms + train_dataset = ADNIDataset( + root_path=ADNI_PATH, + train=True, + transform=TRAIN_TRANSFORM + ) + + # Split into training and validation sets + train_dataset, val_dataset = split_train_val( + dataset=train_dataset, + val_proportion=val_proportion, + keep_proportion=keep_proportion + ) + return train_dataset, val_dataset else: - return ADNIDataset(test=True) \ No newline at end of file + # Return test dataset + test_dataset = ADNIDataset( + root_path=ADNI_PATH, + train=False, + transform=TEST_TRANSFORM + ) + return test_dataset \ No newline at end of file From aa2ab7e40b0d788a435aac306d51fb86e6cd5ff9 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 17:23:05 +1000 Subject: [PATCH 16/37] GITIGNORE: ignore trained models --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b2450a247..9da730100 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ HipMRI_study_complete_release_v1/.DS_Store /HipMRI_study_complete_release_v1 /AD_NC /recognition/AD_NC +*.pt From 1340bdad59ad75e889159fec48a404b4fe53cfda Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 18:22:28 +1000 Subject: [PATCH 17/37] feat: move testing to predict.py --- recognition/predict.py | 206 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 204 insertions(+), 2 deletions(-) diff --git a/recognition/predict.py b/recognition/predict.py index 026365de2..a7d3d57d4 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -1,6 +1,208 @@ """ -This module is used to show example usage the trained GFNet model by using the model to predict +This module is used to show example usage the trained ViT model by using the model to predict on a testing set from the ADNI brain dataset Evaluation metrics will be printed and evaluation figures will be saved to the current folder. -""" \ No newline at end of file +""" + +import torch +import torch.nn as nn +from torch.utils.data import DataLoader +import matplotlib.pyplot as plt +import seaborn as sns +import numpy as np +from tqdm import tqdm +from sklearn.metrics import confusion_matrix, classification_report, roc_curve, auc +import pandas as pd +from pathlib import Path +import json +from datetime import datetime + +from dataset import get_dataset +from modules import ViTClassifier + +def load_trained_model(model_path, device): + """ + Load a trained model from checkpoint + """ + # Initialize model architecture + model = ViTClassifier(num_classes=4).to(device) + + # Load checkpoint + checkpoint = torch.load(model_path, map_location=device) + + # Handle different checkpoint formats + if 'model_state_dict' in checkpoint: + model.load_state_dict(checkpoint['model_state_dict']) + else: + model.load_state_dict(checkpoint) + + return model + +def evaluate_model(model, test_loader, device, classes): + """ + Evaluate model performance on test set + """ + model.eval() + + # Initialize lists to store predictions and true labels + all_preds = [] + all_labels = [] + all_probs = [] + + # Testing loop + with torch.no_grad(): + for images, labels in tqdm(test_loader, desc="Evaluating"): + images = images.to(device) + outputs = model(images) + probabilities = torch.nn.functional.softmax(outputs, dim=1) + _, predicted = torch.max(outputs.data, 1) + + all_preds.extend(predicted.cpu().numpy()) + all_labels.extend(labels.numpy()) + all_probs.extend(probabilities.cpu().numpy()) + + return np.array(all_preds), np.array(all_labels), np.array(all_probs) + +def plot_confusion_matrix(y_true, y_pred, classes, save_path): + """ + Plot and save confusion matrix + """ + # Get unique classes actually present in the data + present_classes = np.unique(np.concatenate([y_true, y_pred])) + present_class_names = [classes[i] for i in present_classes] + + cm = confusion_matrix(y_true, y_pred) + plt.figure(figsize=(10, 8)) + sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', + xticklabels=present_class_names, + yticklabels=present_class_names) + plt.title('Confusion Matrix') + plt.ylabel('True Label') + plt.xlabel('Predicted Label') + plt.tight_layout() + plt.savefig(save_path / 'confusion_matrix.png') + plt.close() + + # Calculate per-class accuracy + per_class_accuracy = cm.diagonal() / cm.sum(axis=1) + return per_class_accuracy, present_class_names + +def evaluate_model(model, test_loader, device, classes): + """ + Evaluate model performance on test set + """ + model.eval() + + # Initialize lists to store predictions and true labels + all_preds = [] + all_labels = [] + all_probs = [] + + # Testing loop + with torch.no_grad(): + for images, labels in tqdm(test_loader, desc="Evaluating"): + images = images.to(device) + outputs = model(images) + probabilities = torch.nn.functional.softmax(outputs, dim=1) + _, predicted = torch.max(outputs.data, 1) + + all_preds.extend(predicted.cpu().numpy()) + all_labels.extend(labels.numpy()) + all_probs.extend(probabilities.cpu().numpy()) + + return np.array(all_preds), np.array(all_labels), np.array(all_probs) + +def main(): + # Configuration + BATCH_SIZE = 32 + CLASSES = ['CN', 'MCI', 'AD', 'SMC'] + device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + + # Create results directory + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + results_dir = Path(f'evaluation_results_{timestamp}') + results_dir.mkdir(exist_ok=True) + + print(f"\nEvaluation Results will be saved to: {results_dir}") + + # Load test dataset + print("\nLoading test dataset...") + test_dataset = get_dataset(train=False) + test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) + print(f"Test set size: {len(test_dataset)} images") + + # Load model + model_path = "./checkpoints/best_model_20241029_170413.pt" + print(f"Loading model from {model_path}...") + model = load_trained_model(model_path, device) + model.eval() + + # Evaluate model + print("\nEvaluating model...") + predictions, true_labels, probabilities = evaluate_model(model, test_loader, device, CLASSES) + + # Get unique classes present in the data + present_classes = np.unique(true_labels) + present_class_names = [CLASSES[i] for i in present_classes] + + print("\nCalculating metrics...") + + # Classification report with only present classes + report = classification_report( + true_labels, + predictions, + labels=present_classes, + target_names=present_class_names, + output_dict=True + ) + + # Per-class accuracy from confusion matrix + per_class_accuracy, matrix_classes = plot_confusion_matrix( + true_labels, predictions, CLASSES, results_dir + ) + + # Plot ROC curves only for present classes + if len(present_classes) > 1: # Only plot ROC curves if there are multiple classes + plot_roc_curves(true_labels, probabilities[:, present_classes], + present_class_names, results_dir) + + # Compile metrics + metrics = { + 'classification_report': report, + 'per_class_accuracy': { + class_name: acc for class_name, acc in zip(matrix_classes, per_class_accuracy) + }, + 'overall_accuracy': (predictions == true_labels).mean(), + 'model_path': model_path, + 'evaluation_date': timestamp, + 'test_set_size': len(test_dataset), + 'classes_present': present_class_names + } + + # Save metrics + save_metrics(metrics, results_dir) + + # Print summary + print("\nEvaluation Results Summary:") + print(f"Classes present in test set: {', '.join(present_class_names)}") + print(f"Overall Accuracy: {metrics['overall_accuracy']*100:.2f}%") + print("\nPer-class Accuracy:") + for class_name, acc in metrics['per_class_accuracy'].items(): + print(f"{class_name}: {acc*100:.2f}%") + + print(f"\nDetailed results have been saved to {results_dir}") + print("Files generated:") + print("- confusion_matrix.png") + if len(present_classes) > 1: + print("- roc_curves.png") + print("- evaluation_metrics.json") + +if __name__ == "__main__": + try: + main() + except KeyboardInterrupt: + print("\nEvaluation interrupted by user") + except Exception as e: + print(f"\nAn error occurred: {str(e)}") + raise \ No newline at end of file From dac6d29356e9c8ea78db690fcbbe74b1babcf4d6 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 19:10:00 +1000 Subject: [PATCH 18/37] feat: plot_roc_curves & save_metrics --- .../confusion_matrix.png | Bin 0 -> 25499 bytes recognition/predict.py | 90 ++++++++++++------ 2 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 recognition/evaluation_results_20241029_182005/confusion_matrix.png diff --git a/recognition/evaluation_results_20241029_182005/confusion_matrix.png b/recognition/evaluation_results_20241029_182005/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..52c9d309921461190a0324c09fc82534be5df7a9 GIT binary patch literal 25499 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 literal 0 HcmV?d00001 diff --git a/recognition/predict.py b/recognition/predict.py index a7d3d57d4..c321acf83 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -39,31 +39,6 @@ def load_trained_model(model_path, device): return model -def evaluate_model(model, test_loader, device, classes): - """ - Evaluate model performance on test set - """ - model.eval() - - # Initialize lists to store predictions and true labels - all_preds = [] - all_labels = [] - all_probs = [] - - # Testing loop - with torch.no_grad(): - for images, labels in tqdm(test_loader, desc="Evaluating"): - images = images.to(device) - outputs = model(images) - probabilities = torch.nn.functional.softmax(outputs, dim=1) - _, predicted = torch.max(outputs.data, 1) - - all_preds.extend(predicted.cpu().numpy()) - all_labels.extend(labels.numpy()) - all_probs.extend(probabilities.cpu().numpy()) - - return np.array(all_preds), np.array(all_labels), np.array(all_probs) - def plot_confusion_matrix(y_true, y_pred, classes, save_path): """ Plot and save confusion matrix @@ -74,7 +49,7 @@ def plot_confusion_matrix(y_true, y_pred, classes, save_path): cm = confusion_matrix(y_true, y_pred) plt.figure(figsize=(10, 8)) - sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', + sns.heatmap(cm, annot=True, fmt='d', cmap='magma', xticklabels=present_class_names, yticklabels=present_class_names) plt.title('Confusion Matrix') @@ -88,6 +63,36 @@ def plot_confusion_matrix(y_true, y_pred, classes, save_path): per_class_accuracy = cm.diagonal() / cm.sum(axis=1) return per_class_accuracy, present_class_names +def plot_roc_curves(y_true, y_prob, classes, save_path): + """ + Plot ROC curves for each class + """ + plt.figure(figsize=(10, 8)) + colors = ["orange", "darkcyan"] + + # Convert true labels to one-hot encoding for present classes only + n_classes = len(classes) + y_true_onehot = np.zeros((len(y_true), n_classes)) + for i in range(n_classes): + y_true_onehot[:, i] = (y_true == i) + + # Calculate ROC curve and AUC for each class + for i in range(n_classes): + fpr, tpr, _ = roc_curve(y_true_onehot[:, i], y_prob[:, i]) + roc_auc = auc(fpr, tpr) + plt.plot(fpr, tpr, label=f'{classes[i]} (AUC = {roc_auc:.2f})', color=colors[i]) + + plt.plot([0, 1], [0, 1], 'k--') + plt.xlim([0.0, 1.0]) + plt.ylim([0.0, 1.05]) + plt.xlabel('False Positive Rate') + plt.ylabel('True Positive Rate') + plt.title('Receiver Operating Characteristic (ROC) Curves') + plt.legend(loc="lower right") + plt.tight_layout() + plt.savefig(save_path / 'roc_curves.png') + plt.close() + def evaluate_model(model, test_loader, device, classes): """ Evaluate model performance on test set @@ -113,9 +118,36 @@ def evaluate_model(model, test_loader, device, classes): return np.array(all_preds), np.array(all_labels), np.array(all_probs) +def save_metrics(metrics, save_path): + """ + Save evaluation metrics to a JSON file. + + Args: + metrics (dict): Dictionary containing evaluation metrics + save_path (Path): Directory path where metrics should be saved + """ + # Convert numpy values to Python native types for JSON serialization + def convert_numpy(obj): + if isinstance(obj, np.integer): + return int(obj) + elif isinstance(obj, np.floating): + return float(obj) + elif isinstance(obj, np.ndarray): + return obj.tolist() + return obj + + # Convert all numpy values in the metrics dictionary + metrics_json = {k: convert_numpy(v) if isinstance(v, (dict, np.generic, np.ndarray)) + else v for k, v in metrics.items()} + + # Save to JSON file + metrics_file = save_path / 'evaluation_metrics.json' + with open(metrics_file, 'w') as f: + json.dump(metrics_json, f, indent=4, sort_keys=True, default=convert_numpy) + def main(): # Configuration - BATCH_SIZE = 32 + BATCH_SIZE = 64 CLASSES = ['CN', 'MCI', 'AD', 'SMC'] device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') @@ -133,7 +165,7 @@ def main(): print(f"Test set size: {len(test_dataset)} images") # Load model - model_path = "./checkpoints/best_model_20241029_170413.pt" + model_path = "./checkpoints/best_model_20241029_175957.pt" print(f"Loading model from {model_path}...") model = load_trained_model(model_path, device) model.eval() @@ -180,6 +212,8 @@ def main(): 'classes_present': present_class_names } + print(metrics) + # Save metrics save_metrics(metrics, results_dir) From c41cb961e30c278a691bde5b7a645c63d5fb68ed Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 22:29:17 +1000 Subject: [PATCH 19/37] feat: EnhancedViTClassifier --- .gitignore | 1 + .../confusion_matrix.png | Bin 25499 -> 0 bytes recognition/modules.py | 149 ++++++++++++------ recognition/predict.py | 2 +- recognition/train.py | 2 +- 5 files changed, 101 insertions(+), 53 deletions(-) delete mode 100644 recognition/evaluation_results_20241029_182005/confusion_matrix.png diff --git a/.gitignore b/.gitignore index 9da730100..f96df4567 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ HipMRI_study_complete_release_v1/.DS_Store /AD_NC /recognition/AD_NC *.pt +/recognition diff --git a/recognition/evaluation_results_20241029_182005/confusion_matrix.png b/recognition/evaluation_results_20241029_182005/confusion_matrix.png deleted file mode 100644 index 52c9d309921461190a0324c09fc82534be5df7a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25499 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 diff --git a/recognition/modules.py b/recognition/modules.py index a232f12db..b901df1ab 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -5,55 +5,8 @@ import torch import torch.nn as nn -from torchvision.models import vit_b_16, ViT_B_16_Weights -from torch.utils.data import DataLoader, Dataset -from sklearn.model_selection import train_test_split -import torchvision -from torchvision import transforms - - -class ADNIDataset(Dataset): - """ - Modified Dataset class to handle grayscale images - """ - def __init__(self, root_path, train=True, transform=None): - self.path = Path(root_path, 'train' if train else 'test') - self.transform = transform - - # Initialize lists for each class - self.files = [] - self.labels = [] - - # Define class mapping - self.class_to_idx = { - 'CN': 0, # Cognitively Normal - 'MCI': 1, # Mild Cognitive Impairment - 'AD': 2, # Alzheimer's Disease - 'SMC': 3 # Subjective Memory Concern - } - - # Load files for each class - for class_name in self.class_to_idx.keys(): - class_path = Path(self.path, class_name) - if class_path.exists(): - class_files = list(class_path.glob('*.jpg')) + list(class_path.glob('*.png')) - self.files.extend(class_files) - self.labels.extend([self.class_to_idx[class_name]] * len(class_files)) - - def __len__(self): - return len(self.files) - - def __getitem__(self, idx): - img_path = self.files[idx] - label = self.labels[idx] - - # Load as grayscale directly - image = Image.open(img_path).convert('L') # 'L' mode for grayscale - - if self.transform: - image = self.transform(image) - - return image, label +from torchvision.models import vit_b_16 +import torch.nn.functional as F class ViTClassifier(nn.Module): """ @@ -63,7 +16,7 @@ def __init__(self, num_classes=4): super(ViTClassifier, self).__init__() # Load the pre-trained ViT model - self.vit = torchvision.models.vit_b_16(pretrained=True) + self.vit = vit_b_16(pretrained=True) # Modify the first layer to accept grayscale input # Create new patch embedding layer with 1 input channel instead of 3 @@ -90,4 +43,98 @@ def __init__(self, num_classes=4): self.vit.heads.head = nn.Linear(num_features, num_classes) def forward(self, x): - return self.vit(x) \ No newline at end of file + return self.vit(x) + +class EnhancedViTClassifier(nn.Module): + """ + Enhanced Vision Transformer for grayscale medical images with: + - Data normalization + - Dropout for regularization + - Feature augmentation + - Residual connections + - Label smoothing support + """ + def __init__(self, num_classes=4, dropout_rate=0.2, feature_dropout=0.1): + super(EnhancedViTClassifier, self).__init__() + + # Load the pre-trained ViT model + self.vit = vit_b_16(pretrained=True) + + # Modify first layer for grayscale input with careful initialization + new_patch_embed = nn.Conv2d( + in_channels=1, + out_channels=768, + kernel_size=16, + stride=16 + ) + + # Initialize weights with scaled averaging + with torch.no_grad(): + rgb_weights = self.vit.conv_proj.weight + # Use sophisticated weight initialization for grayscale + grayscale_weights = (0.2989 * rgb_weights[:, 0:1, :, :] + + 0.5870 * rgb_weights[:, 1:2, :, :] + + 0.1140 * rgb_weights[:, 2:3, :, :]) + new_patch_embed.weight = nn.Parameter(grayscale_weights) + new_patch_embed.bias = nn.Parameter(self.vit.conv_proj.bias) + + self.vit.conv_proj = new_patch_embed + + # Feature extraction layers + num_features = self.vit.heads.head.in_features + self.feature_dropout = nn.Dropout(feature_dropout) + + # Additional layers for better feature representation + self.feature_enhancement = nn.Sequential( + nn.Linear(num_features, num_features), + nn.LayerNorm(num_features), + nn.GELU(), + nn.Dropout(dropout_rate) + ) + + # Final classification layers with dropout + self.classifier = nn.Sequential( + nn.Linear(num_features, num_features // 2), + nn.LayerNorm(num_features // 2), + nn.GELU(), + nn.Dropout(dropout_rate), + nn.Linear(num_features // 2, num_classes) + ) + + # Initialize new layers + self._initialize_weights() + + # Batch normalization for input + self.input_norm = nn.BatchNorm2d(1) + + def _initialize_weights(self): + """Initialize the weights using He initialization""" + for m in self.modules(): + if isinstance(m, nn.Linear): + nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') + if m.bias is not None: + nn.init.constant_(m.bias, 0) + + def forward(self, x, label_smoothing=0.1): + # Input normalization + x = self.input_norm(x) + + # Get ViT features + features = self.vit.encoder(self.vit._process_input(x)) + features = self.vit.heads.head_drop(features[:, 0]) + + # Feature enhancement with residual connection + enhanced_features = self.feature_enhancement(features) + features = features + enhanced_features # Residual connection + + # Apply feature dropout + features = self.feature_dropout(features) + + # Final classification + logits = self.classifier(features) + + return logits + + def get_attention_weights(self): + """Extract attention weights for visualization""" + return self.vit.encoder.layers[-1].self_attention.attention_probs \ No newline at end of file diff --git a/recognition/predict.py b/recognition/predict.py index c321acf83..3b320fa50 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -165,7 +165,7 @@ def main(): print(f"Test set size: {len(test_dataset)} images") # Load model - model_path = "./checkpoints/best_model_20241029_175957.pt" + model_path = "./checkpoints/0/checkpoint_epoch_1_20241029_175957.pt" print(f"Loading model from {model_path}...") model = load_trained_model(model_path, device) model.eval() diff --git a/recognition/train.py b/recognition/train.py index 5d9f628dd..e9b0170fd 100644 --- a/recognition/train.py +++ b/recognition/train.py @@ -382,7 +382,7 @@ def main(): EPOCHS = 20 LR = 1e-4 CLASSES = ['CN', 'MCI', 'AD', 'SMC'] - EARLY_STOPPING_PATIENCE = 4 + EARLY_STOPPING_PATIENCE = 2 print("\nHyperparameters:") print(f"Batch size: {BATCH_SIZE}") From d089c3005b56c6e97bc44fc142f48ca2874ddfe5 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 22:41:17 +1000 Subject: [PATCH 20/37] debug: Modify first layer for grayscale input --- recognition/modules.py | 87 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index b901df1ab..6e6a8e9a7 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -53,25 +53,54 @@ class EnhancedViTClassifier(nn.Module): - Feature augmentation - Residual connections - Label smoothing support + - Proper image size handling """ - def __init__(self, num_classes=4, dropout_rate=0.2, feature_dropout=0.1): + def __init__(self, num_classes=4, dropout_rate=0.2, feature_dropout=0.1, image_size=224): super(EnhancedViTClassifier, self).__init__() + self.image_size = image_size # Load the pre-trained ViT model self.vit = vit_b_16(pretrained=True) - # Modify first layer for grayscale input with careful initialization + # Calculate number of patches + self.patch_size = 16 + self.num_patches = (image_size // self.patch_size) ** 2 + + # Modify position embedding for our sequence length + old_pos_embed = self.vit.encoder.pos_embedding + new_pos_embed = nn.Parameter( + torch.zeros(1, self.num_patches + 1, old_pos_embed.shape[2]) + ) + + # Initialize new position embeddings + # Copy the class token position embedding + new_pos_embed.data[:, 0] = old_pos_embed.data[:, 0] + + # Resize patch position embeddings + pos_tokens = old_pos_embed.data[:, 1:] + pos_tokens = pos_tokens.reshape(-1, 14, 14, old_pos_embed.shape[2]) + pos_tokens = F.interpolate( + pos_tokens.permute(0, 3, 1, 2), + size=(image_size // self.patch_size, image_size // self.patch_size), + mode='bicubic', + align_corners=False + ) + pos_tokens = pos_tokens.permute(0, 2, 3, 1).flatten(1, 2) + new_pos_embed.data[:, 1:] = pos_tokens + + self.vit.encoder.pos_embedding = new_pos_embed + + # Modify first layer for grayscale input new_patch_embed = nn.Conv2d( in_channels=1, out_channels=768, - kernel_size=16, - stride=16 + kernel_size=self.patch_size, + stride=self.patch_size ) - # Initialize weights with scaled averaging + # Initialize weights with scaled averaging of RGB weights with torch.no_grad(): rgb_weights = self.vit.conv_proj.weight - # Use sophisticated weight initialization for grayscale grayscale_weights = (0.2989 * rgb_weights[:, 0:1, :, :] + 0.5870 * rgb_weights[:, 1:2, :, :] + 0.1140 * rgb_weights[:, 2:3, :, :]) @@ -107,6 +136,14 @@ def __init__(self, num_classes=4, dropout_rate=0.2, feature_dropout=0.1): # Batch normalization for input self.input_norm = nn.BatchNorm2d(1) + # Image preprocessing + self.register_buffer( + 'mean', torch.tensor([0.5]).view(1, 1, 1, 1) + ) + self.register_buffer( + 'std', torch.tensor([0.5]).view(1, 1, 1, 1) + ) + def _initialize_weights(self): """Initialize the weights using He initialization""" for m in self.modules(): @@ -115,24 +152,54 @@ def _initialize_weights(self): if m.bias is not None: nn.init.constant_(m.bias, 0) + def preprocess(self, x): + """Preprocess input images""" + # Ensure correct size + if x.shape[-1] != self.image_size or x.shape[-2] != self.image_size: + x = F.interpolate(x, size=(self.image_size, self.image_size), + mode='bilinear', align_corners=False) + + # Normalize + x = (x - self.mean) / self.std + return x + def forward(self, x, label_smoothing=0.1): + # Preprocess input + x = self.preprocess(x) + # Input normalization x = self.input_norm(x) # Get ViT features - features = self.vit.encoder(self.vit._process_input(x)) - features = self.vit.heads.head_drop(features[:, 0]) + x = self.vit.conv_proj(x) + x = self.vit.encoder.pos_drop(x) + + # Reshape to sequence + batch_size = x.shape[0] + x = x.reshape(batch_size, self.num_patches, -1) + + # Add class token + class_token = self.vit.encoder.class_token.expand(batch_size, -1, -1) + x = torch.cat((class_token, x), dim=1) + + # Add position embeddings + x = x + self.vit.encoder.pos_embedding + + # Pass through encoder + x = self.vit.encoder.layers(x) + + # Get class token output + features = x[:, 0] # Feature enhancement with residual connection enhanced_features = self.feature_enhancement(features) - features = features + enhanced_features # Residual connection + features = features + enhanced_features # Apply feature dropout features = self.feature_dropout(features) # Final classification logits = self.classifier(features) - return logits def get_attention_weights(self): From 186db937dd310b5bf9290efeac98a966ec667f1a Mon Sep 17 00:00:00 2001 From: Ei3 Date: Tue, 29 Oct 2024 22:50:02 +1000 Subject: [PATCH 21/37] debug: fix Encoder token --- recognition/modules.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/recognition/modules.py b/recognition/modules.py index 6e6a8e9a7..0930a767c 100644 --- a/recognition/modules.py +++ b/recognition/modules.py @@ -62,6 +62,13 @@ def __init__(self, num_classes=4, dropout_rate=0.2, feature_dropout=0.1, image_s # Load the pre-trained ViT model self.vit = vit_b_16(pretrained=True) + # Add positional dropout separately + self.pos_dropout = nn.Dropout(0.1) + + # Create our own class token + self.class_token = nn.Parameter(torch.zeros(1, 1, 768)) + nn.init.normal_(self.class_token, std=0.02) # Initialize following ViT paper + # Calculate number of patches self.patch_size = 16 self.num_patches = (image_size // self.patch_size) ** 2 @@ -172,18 +179,18 @@ def forward(self, x, label_smoothing=0.1): # Get ViT features x = self.vit.conv_proj(x) - x = self.vit.encoder.pos_drop(x) # Reshape to sequence batch_size = x.shape[0] x = x.reshape(batch_size, self.num_patches, -1) # Add class token - class_token = self.vit.encoder.class_token.expand(batch_size, -1, -1) - x = torch.cat((class_token, x), dim=1) + class_tokens = self.class_token.expand(batch_size, -1, -1) + x = torch.cat((class_tokens, x), dim=1) - # Add position embeddings + # Add position embeddings and apply dropout x = x + self.vit.encoder.pos_embedding + x = self.pos_dropout(x) # Pass through encoder x = self.vit.encoder.layers(x) From 4961a54ddcba7c05d4acfd2f0fbf17951e9422a0 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 06:27:37 +1000 Subject: [PATCH 22/37] CR --- recognition/predict.py | 319 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 292 insertions(+), 27 deletions(-) diff --git a/recognition/predict.py b/recognition/predict.py index 3b320fa50..decfc9bbb 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -5,6 +5,249 @@ Evaluation metrics will be printed and evaluation figures will be saved to the current folder. """ +# import torch +# import torch.nn as nn +# from torch.utils.data import DataLoader +# import matplotlib.pyplot as plt +# import seaborn as sns +# import numpy as np +# from tqdm import tqdm +# from sklearn.metrics import confusion_matrix, classification_report, roc_curve, auc +# import pandas as pd +# from pathlib import Path +# import json +# from datetime import datetime + +# from dataset import get_dataset +# from modules import ViTClassifier + +# def load_trained_model(model_path, device): +# """ +# Load a trained model from checkpoint +# """ +# # Initialize model architecture +# model = ViTClassifier(num_classes=4).to(device) + +# # Load checkpoint +# checkpoint = torch.load(model_path, map_location=device) + +# # Handle different checkpoint formats +# if 'model_state_dict' in checkpoint: +# model.load_state_dict(checkpoint['model_state_dict']) +# else: +# model.load_state_dict(checkpoint) + +# return model + +# def plot_confusion_matrix(y_true, y_pred, classes, save_path): +# """ +# Plot and save confusion matrix +# """ +# # Get unique classes actually present in the data +# present_classes = np.unique(np.concatenate([y_true, y_pred])) +# present_class_names = [classes[i] for i in present_classes] + +# cm = confusion_matrix(y_true, y_pred) +# plt.figure(figsize=(10, 8)) +# sns.heatmap(cm, annot=True, fmt='d', cmap='magma', +# xticklabels=present_class_names, +# yticklabels=present_class_names) +# plt.title('Confusion Matrix') +# plt.ylabel('True Label') +# plt.xlabel('Predicted Label') +# plt.tight_layout() +# plt.savefig(save_path / 'confusion_matrix.png') +# plt.close() + +# # Calculate per-class accuracy +# per_class_accuracy = cm.diagonal() / cm.sum(axis=1) +# return per_class_accuracy, present_class_names + +# def plot_roc_curves(y_true, y_prob, classes, save_path): +# """ +# Plot ROC curves for each class +# """ +# plt.figure(figsize=(10, 8)) +# colors = ["orange", "darkcyan"] + +# # Convert true labels to one-hot encoding for present classes only +# n_classes = len(classes) +# y_true_onehot = np.zeros((len(y_true), n_classes)) +# for i in range(n_classes): +# y_true_onehot[:, i] = (y_true == i) + +# # Calculate ROC curve and AUC for each class +# for i in range(n_classes): +# fpr, tpr, _ = roc_curve(y_true_onehot[:, i], y_prob[:, i]) +# roc_auc = auc(fpr, tpr) +# plt.plot(fpr, tpr, label=f'{classes[i]} (AUC = {roc_auc:.2f})', color=colors[i]) + +# plt.plot([0, 1], [0, 1], 'k--') +# plt.xlim([0.0, 1.0]) +# plt.ylim([0.0, 1.05]) +# plt.xlabel('False Positive Rate') +# plt.ylabel('True Positive Rate') +# plt.title('Receiver Operating Characteristic (ROC) Curves') +# plt.legend(loc="lower right") +# plt.tight_layout() +# plt.savefig(save_path / 'roc_curves.png') +# plt.close() + +# def evaluate_model(model, test_loader, device, classes): +# """ +# Evaluate model performance on test set +# """ +# model.eval() + +# # Initialize lists to store predictions and true labels +# all_preds = [] +# all_labels = [] +# all_probs = [] + +# # Testing loop +# with torch.no_grad(): +# for images, labels in tqdm(test_loader, desc="Evaluating"): +# images = images.to(device) +# outputs = model(images) +# probabilities = torch.nn.functional.softmax(outputs, dim=1) +# _, predicted = torch.max(outputs.data, 1) + +# all_preds.extend(predicted.cpu().numpy()) +# all_labels.extend(labels.numpy()) +# all_probs.extend(probabilities.cpu().numpy()) + +# return np.array(all_preds), np.array(all_labels), np.array(all_probs) + +# def save_metrics(metrics, save_path): +# """ +# Save evaluation metrics to a JSON file. + +# Args: +# metrics (dict): Dictionary containing evaluation metrics +# save_path (Path): Directory path where metrics should be saved +# """ +# # Convert numpy values to Python native types for JSON serialization +# def convert_numpy(obj): +# if isinstance(obj, np.integer): +# return int(obj) +# elif isinstance(obj, np.floating): +# return float(obj) +# elif isinstance(obj, np.ndarray): +# return obj.tolist() +# return obj + +# # Convert all numpy values in the metrics dictionary +# metrics_json = {k: convert_numpy(v) if isinstance(v, (dict, np.generic, np.ndarray)) +# else v for k, v in metrics.items()} + +# # Save to JSON file +# metrics_file = save_path / 'evaluation_metrics.json' +# with open(metrics_file, 'w') as f: +# json.dump(metrics_json, f, indent=4, sort_keys=True, default=convert_numpy) + +# def main(): +# # Configuration +# BATCH_SIZE = 64 +# CLASSES = ['CN', 'MCI', 'AD', 'SMC'] +# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + +# # Create results directory +# timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') +# results_dir = Path(f'evaluation_results_{timestamp}') +# results_dir.mkdir(exist_ok=True) + +# print(f"\nEvaluation Results will be saved to: {results_dir}") + +# # Load test dataset +# print("\nLoading test dataset...") +# test_dataset = get_dataset(train=False) +# test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) +# print(f"Test set size: {len(test_dataset)} images") + +# # Load model +# model_path = "./checkpoints/best_model_20241029_224507.pt" +# print(f"Loading model from {model_path}...") +# model = load_trained_model(model_path, device) +# model.eval() + +# # Evaluate model +# print("\nEvaluating model...") +# predictions, true_labels, probabilities = evaluate_model(model, test_loader, device, CLASSES) + +# # Get unique classes present in the data +# present_classes = np.unique(true_labels) +# present_class_names = [CLASSES[i] for i in present_classes] + +# print("\nCalculating metrics...") + +# # Classification report with only present classes +# report = classification_report( +# true_labels, +# predictions, +# labels=present_classes, +# target_names=present_class_names, +# output_dict=True +# ) + +# # Per-class accuracy from confusion matrix +# per_class_accuracy, matrix_classes = plot_confusion_matrix( +# true_labels, predictions, CLASSES, results_dir +# ) + +# # Plot ROC curves only for present classes +# if len(present_classes) > 1: # Only plot ROC curves if there are multiple classes +# plot_roc_curves(true_labels, probabilities[:, present_classes], +# present_class_names, results_dir) + +# # Compile metrics +# metrics = { +# 'classification_report': report, +# 'per_class_accuracy': { +# class_name: acc for class_name, acc in zip(matrix_classes, per_class_accuracy) +# }, +# 'overall_accuracy': (predictions == true_labels).mean(), +# 'model_path': model_path, +# 'evaluation_date': timestamp, +# 'test_set_size': len(test_dataset), +# 'classes_present': present_class_names +# } + +# print(metrics) + +# # Save metrics +# save_metrics(metrics, results_dir) + +# # Print summary +# print("\nEvaluation Results Summary:") +# print(f"Classes present in test set: {', '.join(present_class_names)}") +# print(f"Overall Accuracy: {metrics['overall_accuracy']*100:.2f}%") +# print("\nPer-class Accuracy:") +# for class_name, acc in metrics['per_class_accuracy'].items(): +# print(f"{class_name}: {acc*100:.2f}%") + +# print(f"\nDetailed results have been saved to {results_dir}") +# print("Files generated:") +# print("- confusion_matrix.png") +# if len(present_classes) > 1: +# print("- roc_curves.png") +# print("- evaluation_metrics.json") + +# if __name__ == "__main__": +# try: +# main() +# except KeyboardInterrupt: +# print("\nEvaluation interrupted by user") +# except Exception as e: +# print(f"\nAn error occurred: {str(e)}") +# raise + + + +""" +This module is used to cross-validate two pre-trained ViT models on the ADNI brain dataset. +The evaluation metrics and figures will be saved to the current folder. +""" + import torch import torch.nn as nn from torch.utils.data import DataLoader @@ -39,6 +282,32 @@ def load_trained_model(model_path, device): return model +def cross_validate_models(model1_path, model2_path, test_loader, device, classes): + """ + Perform cross-validation between two pre-trained models. + """ + model1 = load_trained_model(model1_path, device) + model2 = load_trained_model(model2_path, device) + + # Evaluate both models on the test set + print("Evaluating Model 1...") + preds1, labels1, probs1 = evaluate_model(model1, test_loader, device, classes) + print("Evaluating Model 2...") + preds2, labels2, probs2 = evaluate_model(model2, test_loader, device, classes) + + # Compare predictions with true labels + correct1 = (preds1 == labels1) + correct2 = (preds2 == labels2) + + # Choose predictions from the model that was correct for each sample + all_preds = np.where(correct1 | correct2, + np.where(correct1, preds1, preds2), + preds1) # If both wrong, use model1's prediction + all_labels = labels1 # Both models use same test set + all_probs = np.mean([probs1, probs2], axis=0) # Average the probabilities + + return all_preds, all_labels, all_probs + def plot_confusion_matrix(y_true, y_pred, classes, save_path): """ Plot and save confusion matrix @@ -153,10 +422,10 @@ def main(): # Create results directory timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') - results_dir = Path(f'evaluation_results_{timestamp}') + results_dir = Path(f'cross_validation_results_{timestamp}') results_dir.mkdir(exist_ok=True) - print(f"\nEvaluation Results will be saved to: {results_dir}") + print(f"\nCross-validation Results will be saved to: {results_dir}") # Load test dataset print("\nLoading test dataset...") @@ -164,26 +433,28 @@ def main(): test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) print(f"Test set size: {len(test_dataset)} images") - # Load model - model_path = "./checkpoints/0/checkpoint_epoch_1_20241029_175957.pt" - print(f"Loading model from {model_path}...") - model = load_trained_model(model_path, device) - model.eval() + # Load model 1 + model1_path = "./checkpoints/checkpoint_epoch_0_20241029_224507.pt" + print(f"Loading model 1 from {model1_path}...") + + # Load model 2 + model2_path = "./checkpoints/checkpoint_epoch_1_20241029_234652.pt" + print(f"Loading model 2 from {model2_path}...") - # Evaluate model - print("\nEvaluating model...") - predictions, true_labels, probabilities = evaluate_model(model, test_loader, device, CLASSES) + # Cross-validate the models + print("\nPerforming cross-validation...") + all_preds, all_labels, all_probs = cross_validate_models(model1_path, model2_path, test_loader, device, CLASSES) # Get unique classes present in the data - present_classes = np.unique(true_labels) + present_classes = np.unique(all_labels) present_class_names = [CLASSES[i] for i in present_classes] print("\nCalculating metrics...") # Classification report with only present classes report = classification_report( - true_labels, - predictions, + all_labels, + all_preds, labels=present_classes, target_names=present_class_names, output_dict=True @@ -191,13 +462,12 @@ def main(): # Per-class accuracy from confusion matrix per_class_accuracy, matrix_classes = plot_confusion_matrix( - true_labels, predictions, CLASSES, results_dir + all_labels, all_preds, CLASSES, results_dir ) # Plot ROC curves only for present classes if len(present_classes) > 1: # Only plot ROC curves if there are multiple classes - plot_roc_curves(true_labels, probabilities[:, present_classes], - present_class_names, results_dir) + plot_roc_curves(all_labels, all_probs.mean(axis=1), present_class_names, results_dir) # Compile metrics metrics = { @@ -205,8 +475,9 @@ def main(): 'per_class_accuracy': { class_name: acc for class_name, acc in zip(matrix_classes, per_class_accuracy) }, - 'overall_accuracy': (predictions == true_labels).mean(), - 'model_path': model_path, + 'overall_accuracy': (all_preds == all_labels).mean(), + 'model1_path': model1_path, + 'model2_path': model2_path, 'evaluation_date': timestamp, 'test_set_size': len(test_dataset), 'classes_present': present_class_names @@ -218,7 +489,7 @@ def main(): save_metrics(metrics, results_dir) # Print summary - print("\nEvaluation Results Summary:") + print("\nCross-validation Results Summary:") print(f"Classes present in test set: {', '.join(present_class_names)}") print(f"Overall Accuracy: {metrics['overall_accuracy']*100:.2f}%") print("\nPer-class Accuracy:") @@ -232,11 +503,5 @@ def main(): print("- roc_curves.png") print("- evaluation_metrics.json") -if __name__ == "__main__": - try: - main() - except KeyboardInterrupt: - print("\nEvaluation interrupted by user") - except Exception as e: - print(f"\nAn error occurred: {str(e)}") - raise \ No newline at end of file +if __name__ == '__main__': + main() \ No newline at end of file From 76b79be47ee696f05a7cefedf72500a7a342c536 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 06:28:25 +1000 Subject: [PATCH 23/37] Revert "CR" This reverts commit 4961a54ddcba7c05d4acfd2f0fbf17951e9422a0. --- recognition/predict.py | 319 ++++------------------------------------- 1 file changed, 27 insertions(+), 292 deletions(-) diff --git a/recognition/predict.py b/recognition/predict.py index decfc9bbb..3b320fa50 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -5,249 +5,6 @@ Evaluation metrics will be printed and evaluation figures will be saved to the current folder. """ -# import torch -# import torch.nn as nn -# from torch.utils.data import DataLoader -# import matplotlib.pyplot as plt -# import seaborn as sns -# import numpy as np -# from tqdm import tqdm -# from sklearn.metrics import confusion_matrix, classification_report, roc_curve, auc -# import pandas as pd -# from pathlib import Path -# import json -# from datetime import datetime - -# from dataset import get_dataset -# from modules import ViTClassifier - -# def load_trained_model(model_path, device): -# """ -# Load a trained model from checkpoint -# """ -# # Initialize model architecture -# model = ViTClassifier(num_classes=4).to(device) - -# # Load checkpoint -# checkpoint = torch.load(model_path, map_location=device) - -# # Handle different checkpoint formats -# if 'model_state_dict' in checkpoint: -# model.load_state_dict(checkpoint['model_state_dict']) -# else: -# model.load_state_dict(checkpoint) - -# return model - -# def plot_confusion_matrix(y_true, y_pred, classes, save_path): -# """ -# Plot and save confusion matrix -# """ -# # Get unique classes actually present in the data -# present_classes = np.unique(np.concatenate([y_true, y_pred])) -# present_class_names = [classes[i] for i in present_classes] - -# cm = confusion_matrix(y_true, y_pred) -# plt.figure(figsize=(10, 8)) -# sns.heatmap(cm, annot=True, fmt='d', cmap='magma', -# xticklabels=present_class_names, -# yticklabels=present_class_names) -# plt.title('Confusion Matrix') -# plt.ylabel('True Label') -# plt.xlabel('Predicted Label') -# plt.tight_layout() -# plt.savefig(save_path / 'confusion_matrix.png') -# plt.close() - -# # Calculate per-class accuracy -# per_class_accuracy = cm.diagonal() / cm.sum(axis=1) -# return per_class_accuracy, present_class_names - -# def plot_roc_curves(y_true, y_prob, classes, save_path): -# """ -# Plot ROC curves for each class -# """ -# plt.figure(figsize=(10, 8)) -# colors = ["orange", "darkcyan"] - -# # Convert true labels to one-hot encoding for present classes only -# n_classes = len(classes) -# y_true_onehot = np.zeros((len(y_true), n_classes)) -# for i in range(n_classes): -# y_true_onehot[:, i] = (y_true == i) - -# # Calculate ROC curve and AUC for each class -# for i in range(n_classes): -# fpr, tpr, _ = roc_curve(y_true_onehot[:, i], y_prob[:, i]) -# roc_auc = auc(fpr, tpr) -# plt.plot(fpr, tpr, label=f'{classes[i]} (AUC = {roc_auc:.2f})', color=colors[i]) - -# plt.plot([0, 1], [0, 1], 'k--') -# plt.xlim([0.0, 1.0]) -# plt.ylim([0.0, 1.05]) -# plt.xlabel('False Positive Rate') -# plt.ylabel('True Positive Rate') -# plt.title('Receiver Operating Characteristic (ROC) Curves') -# plt.legend(loc="lower right") -# plt.tight_layout() -# plt.savefig(save_path / 'roc_curves.png') -# plt.close() - -# def evaluate_model(model, test_loader, device, classes): -# """ -# Evaluate model performance on test set -# """ -# model.eval() - -# # Initialize lists to store predictions and true labels -# all_preds = [] -# all_labels = [] -# all_probs = [] - -# # Testing loop -# with torch.no_grad(): -# for images, labels in tqdm(test_loader, desc="Evaluating"): -# images = images.to(device) -# outputs = model(images) -# probabilities = torch.nn.functional.softmax(outputs, dim=1) -# _, predicted = torch.max(outputs.data, 1) - -# all_preds.extend(predicted.cpu().numpy()) -# all_labels.extend(labels.numpy()) -# all_probs.extend(probabilities.cpu().numpy()) - -# return np.array(all_preds), np.array(all_labels), np.array(all_probs) - -# def save_metrics(metrics, save_path): -# """ -# Save evaluation metrics to a JSON file. - -# Args: -# metrics (dict): Dictionary containing evaluation metrics -# save_path (Path): Directory path where metrics should be saved -# """ -# # Convert numpy values to Python native types for JSON serialization -# def convert_numpy(obj): -# if isinstance(obj, np.integer): -# return int(obj) -# elif isinstance(obj, np.floating): -# return float(obj) -# elif isinstance(obj, np.ndarray): -# return obj.tolist() -# return obj - -# # Convert all numpy values in the metrics dictionary -# metrics_json = {k: convert_numpy(v) if isinstance(v, (dict, np.generic, np.ndarray)) -# else v for k, v in metrics.items()} - -# # Save to JSON file -# metrics_file = save_path / 'evaluation_metrics.json' -# with open(metrics_file, 'w') as f: -# json.dump(metrics_json, f, indent=4, sort_keys=True, default=convert_numpy) - -# def main(): -# # Configuration -# BATCH_SIZE = 64 -# CLASSES = ['CN', 'MCI', 'AD', 'SMC'] -# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - -# # Create results directory -# timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') -# results_dir = Path(f'evaluation_results_{timestamp}') -# results_dir.mkdir(exist_ok=True) - -# print(f"\nEvaluation Results will be saved to: {results_dir}") - -# # Load test dataset -# print("\nLoading test dataset...") -# test_dataset = get_dataset(train=False) -# test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) -# print(f"Test set size: {len(test_dataset)} images") - -# # Load model -# model_path = "./checkpoints/best_model_20241029_224507.pt" -# print(f"Loading model from {model_path}...") -# model = load_trained_model(model_path, device) -# model.eval() - -# # Evaluate model -# print("\nEvaluating model...") -# predictions, true_labels, probabilities = evaluate_model(model, test_loader, device, CLASSES) - -# # Get unique classes present in the data -# present_classes = np.unique(true_labels) -# present_class_names = [CLASSES[i] for i in present_classes] - -# print("\nCalculating metrics...") - -# # Classification report with only present classes -# report = classification_report( -# true_labels, -# predictions, -# labels=present_classes, -# target_names=present_class_names, -# output_dict=True -# ) - -# # Per-class accuracy from confusion matrix -# per_class_accuracy, matrix_classes = plot_confusion_matrix( -# true_labels, predictions, CLASSES, results_dir -# ) - -# # Plot ROC curves only for present classes -# if len(present_classes) > 1: # Only plot ROC curves if there are multiple classes -# plot_roc_curves(true_labels, probabilities[:, present_classes], -# present_class_names, results_dir) - -# # Compile metrics -# metrics = { -# 'classification_report': report, -# 'per_class_accuracy': { -# class_name: acc for class_name, acc in zip(matrix_classes, per_class_accuracy) -# }, -# 'overall_accuracy': (predictions == true_labels).mean(), -# 'model_path': model_path, -# 'evaluation_date': timestamp, -# 'test_set_size': len(test_dataset), -# 'classes_present': present_class_names -# } - -# print(metrics) - -# # Save metrics -# save_metrics(metrics, results_dir) - -# # Print summary -# print("\nEvaluation Results Summary:") -# print(f"Classes present in test set: {', '.join(present_class_names)}") -# print(f"Overall Accuracy: {metrics['overall_accuracy']*100:.2f}%") -# print("\nPer-class Accuracy:") -# for class_name, acc in metrics['per_class_accuracy'].items(): -# print(f"{class_name}: {acc*100:.2f}%") - -# print(f"\nDetailed results have been saved to {results_dir}") -# print("Files generated:") -# print("- confusion_matrix.png") -# if len(present_classes) > 1: -# print("- roc_curves.png") -# print("- evaluation_metrics.json") - -# if __name__ == "__main__": -# try: -# main() -# except KeyboardInterrupt: -# print("\nEvaluation interrupted by user") -# except Exception as e: -# print(f"\nAn error occurred: {str(e)}") -# raise - - - -""" -This module is used to cross-validate two pre-trained ViT models on the ADNI brain dataset. -The evaluation metrics and figures will be saved to the current folder. -""" - import torch import torch.nn as nn from torch.utils.data import DataLoader @@ -282,32 +39,6 @@ def load_trained_model(model_path, device): return model -def cross_validate_models(model1_path, model2_path, test_loader, device, classes): - """ - Perform cross-validation between two pre-trained models. - """ - model1 = load_trained_model(model1_path, device) - model2 = load_trained_model(model2_path, device) - - # Evaluate both models on the test set - print("Evaluating Model 1...") - preds1, labels1, probs1 = evaluate_model(model1, test_loader, device, classes) - print("Evaluating Model 2...") - preds2, labels2, probs2 = evaluate_model(model2, test_loader, device, classes) - - # Compare predictions with true labels - correct1 = (preds1 == labels1) - correct2 = (preds2 == labels2) - - # Choose predictions from the model that was correct for each sample - all_preds = np.where(correct1 | correct2, - np.where(correct1, preds1, preds2), - preds1) # If both wrong, use model1's prediction - all_labels = labels1 # Both models use same test set - all_probs = np.mean([probs1, probs2], axis=0) # Average the probabilities - - return all_preds, all_labels, all_probs - def plot_confusion_matrix(y_true, y_pred, classes, save_path): """ Plot and save confusion matrix @@ -422,10 +153,10 @@ def main(): # Create results directory timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') - results_dir = Path(f'cross_validation_results_{timestamp}') + results_dir = Path(f'evaluation_results_{timestamp}') results_dir.mkdir(exist_ok=True) - print(f"\nCross-validation Results will be saved to: {results_dir}") + print(f"\nEvaluation Results will be saved to: {results_dir}") # Load test dataset print("\nLoading test dataset...") @@ -433,28 +164,26 @@ def main(): test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) print(f"Test set size: {len(test_dataset)} images") - # Load model 1 - model1_path = "./checkpoints/checkpoint_epoch_0_20241029_224507.pt" - print(f"Loading model 1 from {model1_path}...") - - # Load model 2 - model2_path = "./checkpoints/checkpoint_epoch_1_20241029_234652.pt" - print(f"Loading model 2 from {model2_path}...") + # Load model + model_path = "./checkpoints/0/checkpoint_epoch_1_20241029_175957.pt" + print(f"Loading model from {model_path}...") + model = load_trained_model(model_path, device) + model.eval() - # Cross-validate the models - print("\nPerforming cross-validation...") - all_preds, all_labels, all_probs = cross_validate_models(model1_path, model2_path, test_loader, device, CLASSES) + # Evaluate model + print("\nEvaluating model...") + predictions, true_labels, probabilities = evaluate_model(model, test_loader, device, CLASSES) # Get unique classes present in the data - present_classes = np.unique(all_labels) + present_classes = np.unique(true_labels) present_class_names = [CLASSES[i] for i in present_classes] print("\nCalculating metrics...") # Classification report with only present classes report = classification_report( - all_labels, - all_preds, + true_labels, + predictions, labels=present_classes, target_names=present_class_names, output_dict=True @@ -462,12 +191,13 @@ def main(): # Per-class accuracy from confusion matrix per_class_accuracy, matrix_classes = plot_confusion_matrix( - all_labels, all_preds, CLASSES, results_dir + true_labels, predictions, CLASSES, results_dir ) # Plot ROC curves only for present classes if len(present_classes) > 1: # Only plot ROC curves if there are multiple classes - plot_roc_curves(all_labels, all_probs.mean(axis=1), present_class_names, results_dir) + plot_roc_curves(true_labels, probabilities[:, present_classes], + present_class_names, results_dir) # Compile metrics metrics = { @@ -475,9 +205,8 @@ def main(): 'per_class_accuracy': { class_name: acc for class_name, acc in zip(matrix_classes, per_class_accuracy) }, - 'overall_accuracy': (all_preds == all_labels).mean(), - 'model1_path': model1_path, - 'model2_path': model2_path, + 'overall_accuracy': (predictions == true_labels).mean(), + 'model_path': model_path, 'evaluation_date': timestamp, 'test_set_size': len(test_dataset), 'classes_present': present_class_names @@ -489,7 +218,7 @@ def main(): save_metrics(metrics, results_dir) # Print summary - print("\nCross-validation Results Summary:") + print("\nEvaluation Results Summary:") print(f"Classes present in test set: {', '.join(present_class_names)}") print(f"Overall Accuracy: {metrics['overall_accuracy']*100:.2f}%") print("\nPer-class Accuracy:") @@ -503,5 +232,11 @@ def main(): print("- roc_curves.png") print("- evaluation_metrics.json") -if __name__ == '__main__': - main() \ No newline at end of file +if __name__ == "__main__": + try: + main() + except KeyboardInterrupt: + print("\nEvaluation interrupted by user") + except Exception as e: + print(f"\nAn error occurred: {str(e)}") + raise \ No newline at end of file From 074f1d88fcad78b90c827d3e2f4463777757d6ef Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 07:30:13 +1000 Subject: [PATCH 24/37] feat: CR in predicting --- recognition/predict.py | 142 ++++++++++++++++++++++++++--------------- 1 file changed, 90 insertions(+), 52 deletions(-) diff --git a/recognition/predict.py b/recognition/predict.py index 3b320fa50..b5bb95e29 100644 --- a/recognition/predict.py +++ b/recognition/predict.py @@ -1,10 +1,3 @@ -""" -This module is used to show example usage the trained ViT model by using the model to predict -on a testing set from the ADNI brain dataset - -Evaluation metrics will be printed and evaluation figures will be saved to the current folder. -""" - import torch import torch.nn as nn from torch.utils.data import DataLoader @@ -21,6 +14,81 @@ from dataset import get_dataset from modules import ViTClassifier + +def cross_validate_models(model1_path, model2_path, test_loader, device, classes): + """ + Combine the strengths of two models by taking the better prediction for each class. + """ + model1 = load_trained_model(model1_path, device) + model2 = load_trained_model(model2_path, device) + + # Evaluate both models on the test set + print("Evaluating Model 1...") + preds1, labels1, probs1 = evaluate_model(model1, test_loader, device, classes) + print("Evaluating Model 2...") + preds2, labels2, probs2 = evaluate_model(model2, test_loader, device, classes) + + # Calculate accuracy per class for each model + accuracy_per_class1 = {} + accuracy_per_class2 = {} + + for class_idx in range(len(classes)): + mask = (labels1 == class_idx) + if np.any(mask): # only calculate if class exists in test set + accuracy_per_class1[class_idx] = np.mean(preds1[mask] == labels1[mask]) + accuracy_per_class2[class_idx] = np.mean(preds2[mask] == labels2[mask]) + + # Choose predictions based on which model performs better for each class + all_preds = np.zeros_like(preds1) + all_probs = np.zeros_like(probs1) + + for class_idx in range(len(classes)): + if class_idx in accuracy_per_class1: + # Use predictions from the model with higher accuracy for this class + if accuracy_per_class1[class_idx] >= accuracy_per_class2[class_idx]: + mask = (labels1 == class_idx) + all_preds[mask] = preds1[mask] + all_probs[mask] = probs1[mask] + else: + mask = (labels1 == class_idx) + all_preds[mask] = preds2[mask] + all_probs[mask] = probs2[mask] + + return all_preds, labels1, all_probs + +def plot_roc_curves(y_true, y_prob, classes, save_path): + """ + Plot ROC curve for the combined model predictions + """ + plt.figure(figsize=(10, 8)) + colors = plt.cm.tab10(np.linspace(0, 1, len(classes))) + + # Convert true labels to one-hot encoding for present classes only + present_classes = np.unique(y_true) + y_true_onehot = np.zeros((len(y_true), len(present_classes))) + + for i, class_idx in enumerate(present_classes): + y_true_onehot[:, i] = (y_true == class_idx) + fpr, tpr, _ = roc_curve(y_true_onehot[:, i], y_prob[:, class_idx]) + roc_auc = auc(fpr, tpr) + class_name = classes[class_idx] + plt.plot(fpr, tpr, + label=f'{class_name} (AUC = {roc_auc:.2f})', + color=colors[i]) + + plt.plot([0, 1], [0, 1], 'k--', label='Random') + plt.xlim([0.0, 1.0]) + plt.ylim([0.0, 1.05]) + plt.xlabel('False Positive Rate') + plt.ylabel('True Positive Rate') + plt.title('Receiver Operating Characteristic (ROC) Curve') + plt.legend(loc="lower right") + plt.grid(True, alpha=0.3) + plt.tight_layout() + plt.savefig(save_path / 'roc_curves.png', dpi=300) + plt.close() + + def load_trained_model(model_path, device): """ Load a trained model from checkpoint @@ -63,36 +131,6 @@ def plot_confusion_matrix(y_true, y_pred, classes, save_path): per_class_accuracy = cm.diagonal() / cm.sum(axis=1) return per_class_accuracy, present_class_names -def plot_roc_curves(y_true, y_prob, classes, save_path): - """ - Plot ROC curves for each class - """ - plt.figure(figsize=(10, 8)) - colors = ["orange", "darkcyan"] - - # Convert true labels to one-hot encoding for present classes only - n_classes = len(classes) - y_true_onehot = np.zeros((len(y_true), n_classes)) - for i in range(n_classes): - y_true_onehot[:, i] = (y_true == i) - - # Calculate ROC curve and AUC for each class - for i in range(n_classes): - fpr, tpr, _ = roc_curve(y_true_onehot[:, i], y_prob[:, i]) - roc_auc = auc(fpr, tpr) - plt.plot(fpr, tpr, label=f'{classes[i]} (AUC = {roc_auc:.2f})', color=colors[i]) - - plt.plot([0, 1], [0, 1], 'k--') - plt.xlim([0.0, 1.0]) - plt.ylim([0.0, 1.05]) - plt.xlabel('False Positive Rate') - plt.ylabel('True Positive Rate') - plt.title('Receiver Operating Characteristic (ROC) Curves') - plt.legend(loc="lower right") - plt.tight_layout() - plt.savefig(save_path / 'roc_curves.png') - plt.close() - def evaluate_model(model, test_loader, device, classes): """ Evaluate model performance on test set @@ -153,10 +191,10 @@ def main(): # Create results directory timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') - results_dir = Path(f'evaluation_results_{timestamp}') + results_dir = Path(f'cross_validation_results_{timestamp}') results_dir.mkdir(exist_ok=True) - print(f"\nEvaluation Results will be saved to: {results_dir}") + print(f"\nCross-validation Results will be saved to: {results_dir}") # Load test dataset print("\nLoading test dataset...") @@ -164,15 +202,16 @@ def main(): test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) print(f"Test set size: {len(test_dataset)} images") - # Load model - model_path = "./checkpoints/0/checkpoint_epoch_1_20241029_175957.pt" - print(f"Loading model from {model_path}...") - model = load_trained_model(model_path, device) - model.eval() + # Define paths for both models + model1_path = "./checkpoints/best_model_20241029_234652.pt" + model2_path = "./checkpoints/best_model_20241029_224507.pt" + print(f"Loading models from:\nModel 1: {model1_path}\nModel 2: {model2_path}") - # Evaluate model - print("\nEvaluating model...") - predictions, true_labels, probabilities = evaluate_model(model, test_loader, device, CLASSES) + # Perform cross-validation + print("\nPerforming cross-validation...") + predictions, true_labels, probabilities = cross_validate_models( + model1_path, model2_path, test_loader, device, CLASSES + ) # Get unique classes present in the data present_classes = np.unique(true_labels) @@ -206,19 +245,18 @@ def main(): class_name: acc for class_name, acc in zip(matrix_classes, per_class_accuracy) }, 'overall_accuracy': (predictions == true_labels).mean(), - 'model_path': model_path, + 'model1_path': model1_path, + 'model2_path': model2_path, 'evaluation_date': timestamp, 'test_set_size': len(test_dataset), 'classes_present': present_class_names } - print(metrics) - # Save metrics save_metrics(metrics, results_dir) # Print summary - print("\nEvaluation Results Summary:") + print("\nCross-validation Results Summary:") print(f"Classes present in test set: {', '.join(present_class_names)}") print(f"Overall Accuracy: {metrics['overall_accuracy']*100:.2f}%") print("\nPer-class Accuracy:") @@ -236,7 +274,7 @@ def main(): try: main() except KeyboardInterrupt: - print("\nEvaluation interrupted by user") + print("\nCross-validation interrupted by user") except Exception as e: print(f"\nAn error occurred: {str(e)}") raise \ No newline at end of file From 2f2c8c167c185f8ae169a26b31e2e06d6fd8975c Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 07:34:47 +1000 Subject: [PATCH 25/37] fd structure change --- .gitignore | 5 ++++- recognition/{ => 46822394_ViT_ADNC}/README.md | 3 ++- recognition/{ => 46822394_ViT_ADNC}/dataset.py | 0 recognition/{ => 46822394_ViT_ADNC}/modules.py | 0 recognition/{ => 46822394_ViT_ADNC}/predict.py | 0 recognition/{ => 46822394_ViT_ADNC}/train.py | 0 recognition/__pycache__/dataset.cpython-311.pyc | Bin 8429 -> 0 bytes recognition/__pycache__/modules.cpython-311.pyc | Bin 3751 -> 0 bytes 8 files changed, 6 insertions(+), 2 deletions(-) rename recognition/{ => 46822394_ViT_ADNC}/README.md (77%) rename recognition/{ => 46822394_ViT_ADNC}/dataset.py (100%) rename recognition/{ => 46822394_ViT_ADNC}/modules.py (100%) rename recognition/{ => 46822394_ViT_ADNC}/predict.py (100%) rename recognition/{ => 46822394_ViT_ADNC}/train.py (100%) delete mode 100644 recognition/__pycache__/dataset.cpython-311.pyc delete mode 100644 recognition/__pycache__/modules.cpython-311.pyc diff --git a/.gitignore b/.gitignore index f96df4567..5f84b9306 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ HipMRI_study_complete_release_v1/.DS_Store /AD_NC /recognition/AD_NC *.pt -/recognition +/recognition/46822394_ViT_ADNC/AD_NC +/recognition/46822394_ViT_ADNC/result +recognition/46822394_ViT_ADNC/train3.py +recognition/46822394_ViT_ADNC/predict_old.py diff --git a/recognition/README.md b/recognition/46822394_ViT_ADNC/README.md similarity index 77% rename from recognition/README.md rename to recognition/46822394_ViT_ADNC/README.md index e992b5af3..49bee2945 100644 --- a/recognition/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -1,4 +1,5 @@ -# Classify Alzheimer’s disease (normal and AD) of the ADNI brain data using GFNet +# Classify Alzheimer’s disease (normal and AD) of the ADNI brain data using ViT + diff --git a/recognition/dataset.py b/recognition/46822394_ViT_ADNC/dataset.py similarity index 100% rename from recognition/dataset.py rename to recognition/46822394_ViT_ADNC/dataset.py diff --git a/recognition/modules.py b/recognition/46822394_ViT_ADNC/modules.py similarity index 100% rename from recognition/modules.py rename to recognition/46822394_ViT_ADNC/modules.py diff --git a/recognition/predict.py b/recognition/46822394_ViT_ADNC/predict.py similarity index 100% rename from recognition/predict.py rename to recognition/46822394_ViT_ADNC/predict.py diff --git a/recognition/train.py b/recognition/46822394_ViT_ADNC/train.py similarity index 100% rename from recognition/train.py rename to recognition/46822394_ViT_ADNC/train.py diff --git a/recognition/__pycache__/dataset.cpython-311.pyc b/recognition/__pycache__/dataset.cpython-311.pyc deleted file mode 100644 index 9100f6e0937475b215f559a034a9eb76fef39ad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8429 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 LN@N2-*Z#i&j)_Lm diff --git a/recognition/__pycache__/modules.cpython-311.pyc b/recognition/__pycache__/modules.cpython-311.pyc deleted file mode 100644 index 583d959eba4eb99519e182d58c2c897dc5c0a6e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3751 zcmahMOKcm*b#}Q+uBabt$&O+jz+ckG2t-M?+ zGfT%-Xg~)8RSOjn0vB?O03mu%o!Uin?4>{tJ@iN#TbNkDm-ghF0_9NT)c0n!E7DTi z(ell_nR)Zxym>$UzOyq;p#AHnzQB^uBN8=rcd)YsgH2+QJh3E8cBH%{dbya$CnTIp zI7(5?tHoqKDR9L}6}7x3#;Vg+Oy|=Qk;z43CGQa{MWvXzx5=?i9I5m@eW(QU5V#bt*Ufu-qDOE^WlsM#j&my|C!(DOWnJY247+w)(cP|hrwMhqd(Of`1;>Hm{I$MZe6ok;=hxpDd2_>pX6=DDywu%fG z%!h4(02bYV2rNFylBUS@Pwyr?Ja4xxMRrT7VA1;<@JejKd5_~W?<&po)zp3(LMqA@ zNc1?C3i!T%SFMnx_>^js40|UupZtF%Qz~k!WUV|U(8N-F_k;OW5|(^Z$i!qT;Y!v^ za!X|W`uanQfUl@%WXaH+1KG3~h60APFYub#wm`$@Gc210ZD3z6hlef(?fACTST?;y z9wZ&}26cEKmw2GyRG=)CY&S?bHusP)X)Z5Q*UBaXg;Qsqp_8*N0D&q~{jaSlzSh?`(g$e!c9I-9u}ze=2`PkY7oPVW z{Ver)$HR{5&mWcRedqkXb8FMjj}3f2^Khnmr+#eIKQ_8e*)J>7tMO9nE$%{`+4CoMxI(J2cf}-ln!Jw=DN!oX znmNov7GeW1omB&M8a*XYO5g!POTzFO8dNqR^c5s*>vo_DkK)K1EI!m;yJ0L)&-Q2$ zH26xZ2IB=CDEK=7K#Q5fo9R!|561ldQ;#P7{xkK=sGk{KQycBw>u+rnsqJK=w{LUy zliBLIdT-Y6&8}T&boXvp_it8T_m7;Yb)TqdCxq%l@l)s*=!}LDqzxnV7Z`UK#s_87 z*d zuqj)a5LxV+%^`Z|b5S&;Ob5+SM-&!u!7#+5V!|$%VOGaj_5yACV8d3xjDIV&x}VqN z0u|Dl7^+Qc@m^rZi$ok(A_FsAf_h?v^y5sq&(4{bos;I_lGb3y}v$i)gQQui|bv!)?X9f{&F23>mSv$qe4zd1S5EOiVZ=>h7n{DpsvCf{2`2j&RumEAg>z+ zP<;<(Mf!L<)Vp|b1Q<{F`v5@6(O+}eNT}B!Z2V7{mehU>A^#nO(F56Kza>NsR1YiN zKoi}F>#{Le3=RqOmWTo)!t*)Xv&c-ix$M~vAHmv*VJ#ZG!f!fYkZwp|KpjLyt&jh4 zK^-Kv2MX>FQd0n-vKH|&NL~_EN@)G3U~?!YM%8b$AA}+KE%pwem<4$az;;5Cq-{AN zDWDSoX(Dy5cHm!w9Imx~4RXGA(AOYCwbrje#%itKw$dj-9NrH$-nf6tKQ!ncI{6i@ be!aJ4EG@wU><1eY_ou(Y`L7RH6gU14r6omK From 3a2787a492ab4df0a50ce3421d33190419e589f9 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 07:46:02 +1000 Subject: [PATCH 26/37] Create .gitignore --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..729227f7c --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ + +/recognition/46822394_ViT_ADNC/AD_NC +/recognition/46822394_ViT_ADNC/result +/recognition/46822394_ViT_ADNC/checkpoints +.DS_Store +recognition/46822394_ViT_ADNC/predict_old.py +recognition/46822394_ViT_ADNC/train3.py From c2499fffb5194decfbca453e7854246c8c4abafa Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 08:58:56 +1000 Subject: [PATCH 27/37] README --- recognition/46822394_ViT_ADNC/README.md | 175 ++++++++++++++++++- recognition/46822394_ViT_ADNC/modules.py | 2 +- recognition/46822394_ViT_ADNC/predict.py | 7 + recognition/46822394_ViT_ADNC/train.py | 203 +---------------------- 4 files changed, 183 insertions(+), 204 deletions(-) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index 49bee2945..5350a3ac4 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -1,6 +1,179 @@ -# Classify Alzheimer’s disease (normal and AD) of the ADNI brain data using ViT +# ADNI Brain Classification with Vision Transformer +This project implements a Vision Transformer (ViT) based classification system for analyzing brain images from the ADNI (Alzheimer's Disease Neuroimaging Initiative) dataset. The model classifies brain images into different categories: Cognitive Normal (CN), Mild Cognitive Impairment (MCI), Alzheimer's Disease (AD), and Subjective Memory Complaints (SMC). +## Features + +- Custom-designed Vision Transformer for grayscale medical images +- Enhanced model architecture with: + - Data normalization + - Dropout regularization + - Feature augmentation + - Residual connections + - Label smoothing support + - Proper image size handling +- Cross-validation support with model ensemble capabilities +- Comprehensive evaluation metrics and visualization +- Dataset handling with proper train/validation/test splits + +## Project Structure + +``` +. +├── dataset.py # Data loading and preprocessing +├── modules.py # Model architecture definitions +├── predict.py # Evaluation and prediction scripts +└── AD_NC/ # ADNI dataset directory + ├── train/ + │ ├── AD/ + │ └── NC/ + └── test/ + ├── AD/ + └── NC/ +``` + +## Requirements + +- PyTorch +- torchvision +- PIL (Python Imaging Library) +- numpy +- matplotlib +- seaborn +- scikit-learn +- pandas +- tqdm + +## Installation + +1. Clone the repository: +```bash +git clone +cd +``` + +2. Install dependencies: +```bash +pip install torch torchvision pillow numpy matplotlib seaborn scikit-learn pandas tqdm +``` + +3. Prepare the ADNI dataset in the following structure: +``` +AD_NC/ +├── train/ +│ ├── AD/ +│ └── NC/ +└── test/ + ├── AD/ + └── NC/ +``` + +## Usage + +### Training Data Preparation + +The dataset module (`dataset.py`) provides functionality for loading and preprocessing ADNI brain images. It includes: + +```python +from dataset import get_dataset, get_dataloader + +# Get training and validation datasets +train_dataset, val_dataset = get_dataset(train=True, val_proportion=0.2) + +# Get test dataset +test_dataset = get_dataset(train=False) + +# Alternatively, get dataloaders directly +train_loader, val_loader = get_dataloader(batch_size=64, train=True) +test_loader = get_dataloader(batch_size=64, train=False) +``` + +### Model Architecture + +Two main model architectures are provided in `modules.py`: + +1. `ViTClassifier`: Basic Vision Transformer adapted for grayscale images +2. `EnhancedViTClassifier`: Advanced version with additional features + +```python +from modules import ViTClassifier, EnhancedViTClassifier + +# Initialize basic model +model = ViTClassifier(num_classes=4) + +# Initialize enhanced model +enhanced_model = EnhancedViTClassifier( + num_classes=4, + dropout_rate=0.2, + feature_dropout=0.1, + image_size=224 +) +``` + +### Evaluation and Prediction + +The `predict.py` script provides comprehensive evaluation functionality: + +```bash +python predict.py +``` + +This will: +1. Load trained models +2. Perform cross-validation +3. Generate evaluation metrics including: + - Confusion matrix + - ROC curves + - Classification report + - Per-class accuracy +4. Save results to a timestamped directory + +### Output + +The evaluation script generates the following outputs in a timestamped directory: +- `confusion_matrix.png`: Visualization of model predictions +- `roc_curves.png`: ROC curves for each class +- `evaluation_metrics.json`: Detailed performance metrics + +## Model Performance + +The system evaluates models using multiple metrics: +- Overall accuracy +- Per-class accuracy +- ROC curves with AUC scores +- Confusion matrix +- Detailed classification report including precision, recall, and F1-score + +## Cross-Validation + +The system supports model ensemble through cross-validation: +```python +predictions, true_labels, probabilities = cross_validate_models( + model1_path="./checkpoints/model1.pt", + model2_path="./checkpoints/model2.pt", + test_loader=test_loader, + device=device, + classes=CLASSES +) +``` + +## Contributing + +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/AmazingFeature`) +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +## License + +[Add your license information here] + +## Acknowledgments + +- ADNI for providing the dataset +- Vision Transformer (ViT) original implementation +- [Add any other acknowledgments] diff --git a/recognition/46822394_ViT_ADNC/modules.py b/recognition/46822394_ViT_ADNC/modules.py index 0930a767c..c80bf15b1 100644 --- a/recognition/46822394_ViT_ADNC/modules.py +++ b/recognition/46822394_ViT_ADNC/modules.py @@ -1,5 +1,5 @@ """ -Contains the source code for the components of GFNet classifying the Alzheimer’s disease (normal and AD) of the ADNI brain data +Contains the source code for the components of ViT classifying the Alzheimer’s disease (normal and AD) of the ADNI brain data Each component is implementated as a class or a function. """ diff --git a/recognition/46822394_ViT_ADNC/predict.py b/recognition/46822394_ViT_ADNC/predict.py index b5bb95e29..85d157b89 100644 --- a/recognition/46822394_ViT_ADNC/predict.py +++ b/recognition/46822394_ViT_ADNC/predict.py @@ -1,3 +1,10 @@ +""" +This module is used to show example usage the trained ViT model by using the model to predict +on a testing set from the ADNI brain dataset + +Evaluation metrics will be printed and evaluation figures will be saved to the current folder. +""" + import torch import torch.nn as nn from torch.utils.data import DataLoader diff --git a/recognition/46822394_ViT_ADNC/train.py b/recognition/46822394_ViT_ADNC/train.py index e9b0170fd..f7a93c9ab 100644 --- a/recognition/46822394_ViT_ADNC/train.py +++ b/recognition/46822394_ViT_ADNC/train.py @@ -491,205 +491,4 @@ def main(): print("\nTraining interrupted by user") except Exception as e: print(f"\nAn error occurred: {str(e)}") - raise - - -# import torch -# import torch.nn as nn -# from torch.utils.data import DataLoader -# import matplotlib.pyplot as plt -# import time -# from dataset import ADNIDataset, get_dataloader -# from modules import ViTClassifier -# from tqdm import tqdm -# import sys - -# def train_model(model, train_loader, val_loader, epochs, lr, device): -# """ -# Train the Vision Transformer model for Alzheimer's classification with progress tracking. -# """ -# optimizer = torch.optim.Adam(model.parameters(), lr=lr) -# criterion = nn.CrossEntropyLoss() - -# train_losses = [] -# val_losses = [] -# train_accs = [] -# val_accs = [] -# stopping_epoch = epochs -# down_consec = 0 -# best_val_acc = 0 - -# print(f"\nStarting training on device: {device}") -# print(f"Total epochs: {epochs}") -# print(f"Training batches per epoch: {len(train_loader)}") -# print(f"Validation batches per epoch: {len(val_loader)}\n") - -# start_time = time.time() - -# for epoch in range(epochs): -# epoch_start = time.time() - -# # Training loop -# model.train() -# train_loss = 0.0 -# train_correct = 0 -# train_total = 0 - -# # Progress bar for training -# train_pbar = tqdm(train_loader, desc=f'Epoch {epoch + 1}/{epochs} [Train]', -# leave=False, file=sys.stdout) - -# for images, labels in train_pbar: -# images, labels = images.to(device), labels.to(device) -# optimizer.zero_grad() -# outputs = model(images) -# loss = criterion(outputs, labels) -# loss.backward() -# optimizer.step() - -# train_loss += loss.item() -# _, predicted = torch.max(outputs.data, 1) -# train_total += labels.size(0) -# train_correct += (predicted == labels).sum().item() - -# # Update progress bar -# train_pbar.set_postfix({'loss': f'{loss.item():.4f}', -# 'acc': f'{(train_correct/train_total)*100:.2f}%'}) - -# train_loss /= len(train_loader) -# train_acc = train_correct / train_total -# train_losses.append(train_loss) -# train_accs.append(train_acc) - -# # Validation loop -# model.eval() -# val_loss = 0.0 -# val_correct = 0 -# val_total = 0 - -# # Progress bar for validation -# val_pbar = tqdm(val_loader, desc=f'Epoch {epoch + 1}/{epochs} [Val]', -# leave=False, file=sys.stdout) - -# with torch.no_grad(): -# for images, labels in val_pbar: -# images, labels = images.to(device), labels.to(device) -# outputs = model(images) -# loss = criterion(outputs, labels) -# val_loss += loss.item() -# _, predicted = torch.max(outputs.data, 1) -# val_total += labels.size(0) -# val_correct += (predicted == labels).sum().item() - -# # Update progress bar -# val_pbar.set_postfix({'loss': f'{loss.item():.4f}', -# 'acc': f'{(val_correct/val_total)*100:.2f}%'}) - -# val_loss /= len(val_loader) -# val_acc = val_correct / val_total -# val_losses.append(val_loss) -# val_accs.append(val_acc) - -# epoch_time = time.time() - epoch_start - -# # Print epoch summary -# print(f'\nEpoch [{epoch+1}/{epochs}] - {epoch_time:.1f}s') -# print(f'Train Loss: {train_loss:.4f}, Train Acc: {train_acc*100:.2f}%') -# print(f'Val Loss: {val_loss:.4f}, Val Acc: {val_acc*100:.2f}%') - -# # Save best model -# if val_acc > best_val_acc: -# best_val_acc = val_acc -# print(f'Saving best model with validation accuracy: {val_acc*100:.2f}%') -# torch.save({ -# 'epoch': epoch, -# 'model_state_dict': model.state_dict(), -# 'optimizer_state_dict': optimizer.state_dict(), -# 'train_loss': train_loss, -# 'val_loss': val_loss, -# 'train_acc': train_acc, -# 'val_acc': val_acc, -# }, "adni_vit_best.pt") - -# # Early stopping check -# if epoch > 0 and val_acc < val_accs[-2]: -# down_consec += 1 -# print(f'Validation accuracy decreased. Counter: {down_consec}/4') -# else: -# down_consec = 0 -# if down_consec >= 4: -# print('\nEarly stopping triggered!') -# stopping_epoch = epoch + 1 -# break - -# print('-' * 60 + '\n') - -# total_time = time.time() - start_time -# print(f'\nTraining completed in {total_time/60:.1f} minutes') -# print(f'Best validation accuracy: {best_val_acc*100:.2f}%') - -# # Plot training and validation metrics -# plot_metric(stopping_epoch, 'loss', train_losses, val_losses) -# plot_metric(stopping_epoch, 'accuracy', train_accs, val_accs) - -# return model - -# def plot_metric(stopping_epoch: int, metric_type: str, train_data: list, val_data: list): -# """ -# Helper function to plot a given metric -# """ -# plt.figure() -# plt.plot(range(1, stopping_epoch+1), train_data, label = f"Training {metric_type}") -# plt.plot(range(1, stopping_epoch+1), val_data, label=f"Validation {metric_type}", color='orange') -# plt.xlabel('Epoch') -# plt.ylabel(metric_type) -# plt.legend() -# plt.title(f"Training {metric_type} vs validation {metric_type}") -# plt.savefig(f"Training_vs_validation_{metric_type}_{int(time.time())}.png") - -# def main(): -# """ -# Main execution function. -# """ -# # Device configuration -# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - -# # Print system information -# print("\nSystem Information:") -# print(f"PyTorch version: {torch.__version__}") -# print(f"Device being used: {device}") -# print(f"Number of available GPUs: {torch.cuda.device_count() if torch.cuda.is_available() else 0}") - -# # Initialise hyperparameters -# BATCH_SIZE = 32 # Reduced batch size to help with memory -# EPOCHS = 20 -# LR = 1e-4 - -# print("\nHyperparameters:") -# print(f"Batch size: {BATCH_SIZE}") -# print(f"Number of epochs: {EPOCHS}") -# print(f"Learning rate: {LR}") - -# # Initialise data loaders -# print("\nLoading data...") -# train_loader, val_loader = get_dataloader(batch_size=BATCH_SIZE, train=True) -# test_loader = get_dataloader(batch_size=BATCH_SIZE, train=False) -# print("Data loaded successfully!") - -# # Initialise model -# print("\nInitializing model...") -# model = ViTClassifier().to(device) -# print("Model initialized successfully!") - -# # Print model summary -# total_params = sum(p.numel() for p in model.parameters()) -# trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad) -# print(f"\nModel Parameters:") -# print(f"Total parameters: {total_params:,}") -# print(f"Trainable parameters: {trainable_params:,}") - -# # Run training -# train_model(model, train_loader, val_loader, epochs=EPOCHS, lr=LR, device=device) - -# if __name__ == "__main__": -# main() \ No newline at end of file + raise \ No newline at end of file From 5f7fa7fb597449afb0a2255625a2a5ce54fa6513 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 09:04:51 +1000 Subject: [PATCH 28/37] added training --- recognition/46822394_ViT_ADNC/README.md | 82 ++++++++++++++++++------- 1 file changed, 61 insertions(+), 21 deletions(-) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index 5350a3ac4..6b0aef5dc 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -1,19 +1,19 @@ # ADNI Brain Classification with Vision Transformer -This project implements a Vision Transformer (ViT) based classification system for analyzing brain images from the ADNI (Alzheimer's Disease Neuroimaging Initiative) dataset. The model classifies brain images into different categories: Cognitive Normal (CN), Mild Cognitive Impairment (MCI), Alzheimer's Disease (AD), and Subjective Memory Complaints (SMC). +This project implements a Vision Transformer (ViT) based classification system for analysing brain images from the ADNI (Alzheimer's Disease Neuroimaging Initiative) dataset. The model classifies brain images into different categories: Cognitive Normal (CN), Mild Cognitive Impairment (MCI), Alzheimer's Disease (AD), and Subjective Memory Complaints (SMC). ## Features - Custom-designed Vision Transformer for grayscale medical images - Enhanced model architecture with: - - Data normalization - - Dropout regularization + - Data normalisation + - Dropout regularisation - Feature augmentation - Residual connections - Label smoothing support - Proper image size handling - Cross-validation support with model ensemble capabilities -- Comprehensive evaluation metrics and visualization +- Comprehensive evaluation metrics and visualisation - Dataset handling with proper train/validation/test splits ## Project Structure @@ -22,7 +22,8 @@ This project implements a Vision Transformer (ViT) based classification system f . ├── dataset.py # Data loading and preprocessing ├── modules.py # Model architecture definitions -├── predict.py # Evaluation and prediction scripts +├── train.py # Training and optimisation scripts +├── predict.py # Evaluation and prediction scripts └── AD_NC/ # ADNI dataset directory ├── train/ │ ├── AD/ @@ -98,10 +99,10 @@ Two main model architectures are provided in `modules.py`: ```python from modules import ViTClassifier, EnhancedViTClassifier -# Initialize basic model +# Initialise basic model model = ViTClassifier(num_classes=4) -# Initialize enhanced model +# Initialise enhanced model enhanced_model = EnhancedViTClassifier( num_classes=4, dropout_rate=0.2, @@ -110,6 +111,56 @@ enhanced_model = EnhancedViTClassifier( ) ``` +### Training the Model + +The training process is handled by the `OptimizedTrainer` class in `train.py`. The system supports various training optimisations including: + +- Mixed precision training +- Distributed training support +- Automatic batch size optimization +- Learning rate scheduling +- Early stopping +- Checkpoint management +- Comprehensive metrics tracking + +To train the model: + +```python +from train import train_model_optimized + +# Initialise training with default parameters +model, history = train_model_optimized( + model=model, + train_dataset=train_dataset, + val_dataset=val_dataset, + test_dataset=test_dataset, + epochs=20, + batch_size=64, + lr=1e-4, + classes=['CN', 'MCI', 'AD', 'SMC'], + early_stopping_patience=4 +) +``` + +Alternatively, use the command line interface: + +```bash +python train.py +``` + +The training script will: +1. Automatically detect and configure available hardware +2. Optimise training parameters based on system capabilities +3. Save checkpoints and training curves +4. Generate comprehensive training reports +5. Implement early stopping if validation metrics plateau + +Training outputs include: +- Model checkpoints (regular intervals and best model) +- Training/validation curves +- Confusion matrix visualisations +- Complete training results in JSON format + ### Evaluation and Prediction The `predict.py` script provides comprehensive evaluation functionality: @@ -131,9 +182,10 @@ This will: ### Output The evaluation script generates the following outputs in a timestamped directory: -- `confusion_matrix.png`: Visualization of model predictions +- `confusion_matrix.png`: Visualisation of model predictions - `roc_curves.png`: ROC curves for each class - `evaluation_metrics.json`: Detailed performance metrics +- `training_curves.png`: Training and validation metrics over time ## Model Performance @@ -157,23 +209,11 @@ predictions, true_labels, probabilities = cross_validate_models( ) ``` -## Contributing - -1. Fork the repository -2. Create your feature branch (`git checkout -b feature/AmazingFeature`) -3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) -4. Push to the branch (`git push origin feature/AmazingFeature`) -5. Open a Pull Request - ## License -[Add your license information here] +Apache License - Version 2.0, January 2004 (http://www.apache.org/licenses/) ## Acknowledgments - ADNI for providing the dataset - Vision Transformer (ViT) original implementation -- [Add any other acknowledgments] - - - From f54f2bb31245e709f1846150f49d3add84684ba5 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 09:42:28 +1000 Subject: [PATCH 29/37] analysing result --- recognition/46822394_ViT_ADNC/README.md | 45 ++++++++++++++---- .../img/confusion_matrix.png | Bin 0 -> 25622 bytes .../46822394_ViT_ADNC/img/roc_curves.png | Bin 0 -> 214742 bytes 3 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 recognition/46822394_ViT_ADNC/img/confusion_matrix.png create mode 100644 recognition/46822394_ViT_ADNC/img/roc_curves.png diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index 6b0aef5dc..e25f3d571 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -20,17 +20,19 @@ This project implements a Vision Transformer (ViT) based classification system f ``` . +├── README.md ├── dataset.py # Data loading and preprocessing ├── modules.py # Model architecture definitions ├── train.py # Training and optimisation scripts ├── predict.py # Evaluation and prediction scripts -└── AD_NC/ # ADNI dataset directory - ├── train/ - │ ├── AD/ - │ └── NC/ - └── test/ - ├── AD/ - └── NC/ +├── AD_NC/ # ADNI dataset directory +│ ├── train/ +│ │ ├── AD/ +│ │ └── NC/ +│ └── test/ +│ ├── AD/ +│ └── NC/ +└── checkpoints # Trained models ``` ## Requirements @@ -188,7 +190,6 @@ The evaluation script generates the following outputs in a timestamped directory - `training_curves.png`: Training and validation metrics over time ## Model Performance - The system evaluates models using multiple metrics: - Overall accuracy - Per-class accuracy @@ -196,6 +197,34 @@ The system evaluates models using multiple metrics: - Confusion matrix - Detailed classification report including precision, recall, and F1-score +**Classes & Overall Metrics** +| Metric | Value | +|--------|--------| +| Classes Present | CN, MCI | +| Test Set Size | 9000 | +| Overall Accuracy | 0.847 | +| Evaluation Date | 2024-10-30 07:05:15 | + +**Per-Class Performance Metrics** +| Class | Precision | Recall | F1-Score | Support | +|-------|-----------|---------|-----------|----------| +| CN | 0.786 | 0.957 | 0.863 | 4540 | +| MCI | 0.944 | 0.734 | 0.826 | 4460 | + +**Aggregate Metrics** +| Category | Precision | Recall | F1-Score | Support | +|----------|-----------|---------|-----------|----------| +| Macro Avg | 0.865 | 0.846 | 0.844 | 9000 | +| Weighted Avg | 0.864 | 0.847 | 0.845 | 9000 | + +**Model Paths** +| Model | Path | +|-------|------| +| Model 1 | ./checkpoints/best_model_20241029_234652.pt | +| Model 2 | ./checkpoints/best_model_20241029_224507.pt | + + + ## Cross-Validation The system supports model ensemble through cross-validation: diff --git a/recognition/46822394_ViT_ADNC/img/confusion_matrix.png b/recognition/46822394_ViT_ADNC/img/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..6ccc361607fa1268b1a1737b07d97b78819eb86e GIT binary patch literal 25622 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 literal 0 HcmV?d00001 diff --git a/recognition/46822394_ViT_ADNC/img/roc_curves.png b/recognition/46822394_ViT_ADNC/img/roc_curves.png new file mode 100644 index 0000000000000000000000000000000000000000..e443b99e95233942b4b6343ba3af3e6b2ea62fbb GIT binary patch literal 214742 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 <*HOAv3|2mZoJ1C%GCq&~5z&okYKVxT zkNFl!hoWa>#+nlDOokwdMFSW7;-n8!kOZllLB2qmH3kXFePt$d@RoRP_iQWQ}p4O2PvMx9cc>4M23t^16bxcqVMma2ARK@-!y!UbnU8 zBPkW-v7qKd>q#f#s+s;fNBQ}CjcsabVIjduK4jROZAijJon}C2i z@Ng4Jf)&KnsujscDZB!Pszw$!QKW zZra824h~slv5@f-@_|TLPx!ye0zw@JYE!@;IU<2(La2vUJ(v$S#v*V>mGfcQ8LWe) zo~KToB5jT+Ngn?kzCt9}-!~mMfw}kgJ^w6)#q0*5NqP`!S?;LO9n>Ut)i-Y)gt>QL z!BC$fiVi~Z87Hjs2!BNs^(Bxv>$!7vU%6#vWufKNI`qCNgL6d=b9i2j(v*U48o@bB z>B|xf&{67FKMLX5Q}`^&{_q)u_=N~>Z%hsyHwhIMSKRb=H6sO42xp%mP+RCNan_ zhCoDQZs>nxFvH0@o^#L9iyuz>zz_V2y_KbEj73TLpzrQWFQ^O^rvcipwOk2KkZ~Mo zxWwCSbC1kM!GK}K5mn%z7~Kmw2xkccL8e$5SXG-!;SE-`aRDMMqtT~=)*g1DDmEcN z)%-^H3U%bu706o(i2ny;%m{6cs8;HEHoAABBXQ$n#MQHFosSj5!4)LSL`J|d7);Da zvyO~cQ$=$!L~}-Pi)gf%*-FLlXTd2(&E=@>30N#$%{s80selt>3Gq=GOynRAvPv<{ zaS3Zf9`qEPG!>dC2s#;@h6nhZybH)(?Lpr(0=3;Ixk+k~X0;!OSRfvkPw=ecXrma^ z+gf)~6;uiQQuU8Z{7}G&{~8m@1A)pcjNT1EhIpdnG#T*TFnS{Rl5p9?RE-wq|{OGG}xMM|xUX1p7{0tgdIs{FdcX1TGAnH|*7dZe0L7PN$4VvgU zkPV`Py8*isA*9D`JcZ1CAj<$tkWAlO_LXR1S!J^FdmxoVrdimk$vIpkWk?P%z{Fu%3Z5qsbo%1;c_qGG9(=YK%)RTi3qXx@85@5Le9LAC$kN3C&)G+g|GhZ zv>6D=3c~U8;M9oOiKCJ!Vdb{Gxbzbl?uV|8Xo)KLp8;F(fQORl7c5M6@@aVKidZqTB~Sl7 z_=p@6myKT)f4hDOSOx(=5Q(PeNn99Wro};c4VXig8ZH5Z*CG%TFQ5feeB{*wNmsfD zHU{^PVfh?%J)n3A$BVoMqN>p=wZaKED2_N0ZXHQ}L8aF>FM%OEdi1Cf6eSB4y~t&} zB`F?qCFgYc6=yCSyyY{VksTkww{nncH2Q2PV#q2004)&DW~=wSZ-6Y6fIz1@qI~j1 z9meh4_x5H%6~pUoBr6cAt7T6?3+1fscl({r;Cli8pN9lg=;aDJPiZO?LPy3FzTF*1 zkTgR@gf$iGKb3;qwoz2=5g08!cx_Cqq5G%I|epO{x6 zM*@K6Aa*qCIp%G3Q#{F9_K`FB?&x(=lRP-QsuFSKd_QpHqiCtloyHj;=;erH`4n4X zY61g<<+!);25QNhQtU@WbrDiiAHD-9aukZ$HY;&-GCu?)^cL-BzKX?RmP5vUAE>~@ zUn$=Yo5Ae73pw0(%a%M%B%6p$=aYd<)(Gj3Z)8X%1)l>vd##$;3(ET%pIk7R(`BJf zbbcVdsFKYMcM{_LB4X(ghUNDxAqTs+N4QZ$byHaQq)m z!OLs+aB*`RgO}Nc{hNwHawsW<9E_A+!JvQvv-EzuY(fCYgf0r6X7XeLmLmzrVnazH zkM5*?8^y5|k3#X4 zs4s*ARkyXZrMjWYx8V0%h5g>94UsdS;AU4h?Y_-oxZKu&HaDQXXPT~K;Sh#E?)Ma6 zPVZOh*QkDakVh?~s4o%K5Y$y6IR`1F<|Gvka$Xi5RQ7oLIZHxZfG&uWsZxxbfC&md z#60Gh$_bTXH%E3dr*T$YQ@PaB11IxoV@Q+DX*Ukyi^GW0OF|KETOkO;WJeG5S{p5@ z11<5z6%SP$@evR0%@hh&B9?J_C;HNPVdf9?xK~y-wq#XH4F8NEjN67nt~+Nt-)WvU z3flZ;b!E_k#1vD{M!CGxa|M&N;xwPdp#UkkNuLZ7H^sp-Jh^h&W=bdn>ac8H!EhR~ zVZ&6`F@9Ken7IQ1;_t2t#(7}#7-j!{-V+SKN7QC!33B=*c?t9)w^hlpBl*23RL1Gu z&?yK4D0}oO4*`uB{M8sa!VLY^r$reJb%UDbH3~q3{TnE)Pv*(V(QxD(%KT{Jb0E-K z#xNb^jjKc$JM(QDqwByEJuimSq?uvGHbbA4uE;1R)?c#P;P;yPEOlDv*7wzIa{zJE zW1^l#32TIeAi8&liixn7#Fs>MaRWRc_%D2A*Up{tI531DRC>(cLa}bcX-Il1A2Afr z45rS76wUu(@2#V%YP;@XjN3pE15i*bKpG^KMv(5777-~)2|)=96cqGGDBX47Al;xM zBHbKmkZz!&^`Js-&_QJjH7D4^=L$?h4+ zO&2)7Tfu_P9;g`j#V*|5W81PLq}c$6Og+=+>u|b56;}$p=h6I;a3+li6f;BeoCsvL zIlv=GTq?f^R749H(m=MNj*2M&)7&!WL96BAfC6jdP|M->;| zVO^}!DC&ln;Q%(U#Q-;=r$Ob`kVgg4u>|HoWM&2qyTHx8(RUf6-FA|K`VtrjI9U*N z0F0X}@-?%E5AccYf`z1&WjygSnFh>)OhMg-@;VgAfN231Y$17CA0|$ zg(^Qg=cce!6!M`Zj0%B4tE>U4AoR1SA(Po;Gs~F2a-;pIulss z$ZQEg_G7CWuTaVk8)*~F+EzGvk*kAR8eDd@-hC4(@Ac3K!ypdW5XI4gKmu|3fDUrG zESRF41_~Q^T2qn5sqg6|WMv1)MeanwcaVKURyhHH5sH_%!LAskg%IS}ROVp;6Dw~7 zo*q8nymk8}BG;coL146}3O^HhHS(xnUPohmEIj6_qid z9T0Tnq^lcw5P^ZT)Gy0+Kmx3z%5XxuN$+Q>>ekOp0Y8J_KEO~LfTc`^?4Z+LVQFDO z4Woxx)s)!d>Y5h!>A`2#{7Jv<0N z0gl2~RE`geyno?ZHx#X-eH|qJ>hP0L)j|sP&hX}uFD=>!(oL#rdV67sBN_#4*HG>T z!gW;uf>Ck}`#XZCuRqtv?=HK9?9U)IQv(}RP}->ixC4}e8pt$I9W{if_SLt_F~F+E z!>SwyJ56LN4Jv)uaG`)95kiCs&r?=Pu&4Me+CN#JJ9`)Y%Gv!51O9~&U?3w!q);R( zQv!_-GEsv~o1d1q@Eo{;L3~>{S4RbCK5#&4upOX(hYU1t>P`zNN>M#A5@rL!SXEXg z2GTS5_i$jyUF8K{_G!O?dxDA>KyyX{&?%3cqYuS!fM%l&)Cy?pgRqYQoC|?XhXtSv z)@sQ41>*0~;J3BH;D!m&M++?7c^p|#+Hp9;9mj|dEJ6JbthXk(FtVZp|20@8Nl1+j z+RD@6=^aN=s*f%J{|dG9P{lwG_5=_IXuu|F4_=yA7PSZDV9IrXx*bA2P*Ni2g(?VA z05C!~0_SiGz*!cdx z1PlqTXb7eMu&v=2t_wpHkF@YWu!7s483d0^baaxiPQ3x-gdGRMA0ocl*9zSrbY4A}%y#g@G6rkUSSTvJV#E}ERvX(}~c_`_`C@uRy4y51R{1gJd# z_JhD}$FzdMF*$lYsMBwNZE7wM^1%U>`!3t7iNGcd>#j|)^LK&|>O-)dWM5zU@k1F> z2VGKPf)CyB?nWW*%cZ{$b@Jr``uH5k^R#GkL7l5w=0)OUcy0T)BeP!h9scz>^xUXS z2PDLxDTR#}^5lH_3*fgL35yXqdG^dfu7kv<1(z=PX8}g9#jFV8dO%@Vy-}kI0s{Yw zf7>iLYJsX9tl*=7aS53K=P{I*-{v;oGGi#$=l z6E(<24aQ9x4o6f=rRnwX7%5oILyA_&w{4G2&?g#>`~5}kf`5?EE0T_P%Lz53@HzyH$r+c5X{H_)H2{=V8j-_ASu zcRKy~rq%z&T{~tS9SA%M5p@6%LqM)BaC8AsHvJTq|Nr>vGY5Dl3f{mF3+NG*VYr?2 zL^LUmbv=9lzZeHeY-g+C|M(3!Zz)k7;V9@f>>N&N5-a|lvVVTi<9ChPpYOoSm%mrY z2m1v;C$%@7p==hN#Xiw+LwFxh!hz4pAWIOG6G7qf_Il8rIOz_*u6ct9BnUF627oy3 zBZOl^3G&+c!1{Y2H^H}hdVg6nkp-;aX>dx*vB>C+z(SOS8`YwVlwQMeB$ zL9^t~^W`ku4H@VMnRhoRa_Jt4~47rj!tJI|Tq&OOVPRv=Yz+1q;V+T;X(qEC`|5?2CaoMPjjF zP7_}Q$spGZ{|o=eXIY^twaHwlC)ogA!78Nd3`D7r=7(T9A<4l4)r$q29#kTJ&l0FO zWE=wJNwS=3|Kpb6|5!cQyKEr`z!_Go0pRUq$N`60*1(bjfgCSiB17$8zTD%8?2@t< z2D%*)0p73vUr`W2-Yyh)SD+*nLS&@nK)5!7vLJ;+e3u@1GoZq8P{=sKvIambq&PoAkgJ9Ynq!0sm`g!?IrttSOKL|RL7ZY|N9Rh$B z)X>QX3(i0~ke*fP9EO{dWh+*@RSdZ&znX+p~sH@ z^MmNG9@zZ{r)>xUEdj2~Cj%yThi)l=-Q?9ki}@R#RCvDan)=UgeQ1Rk{E9djl7s)k zeBd4c6aixonZSeHIOONf)iAX|AKr^Zc7w+Mu$Pp))7Fn ztwQ{Lp$`sr09U+evghLNZjBsd>$bJKUcv@rXb4!gfh4 zWY3Pd%D_|j>|I{B+*Zi$e3l2c>~)KMs-L2UodQmF;1Z21mFv|6&J5D&2^Nwdi9MR2 zbjsJHv37CMe}x-R6m_)1W!P<6yWcV%VWg(hJcAMN&eySXE%wI4=iv#;F8Sx!ln971 zGN~!L}S&Qwz$K4@E(WW z={lWbNElVeG4-6msxWmvF< zFM+=y?}(=s+E`G9a`>q0mPmzdYrAf85ZrLJ0M7x7?J6A}BC(zxBK$4_kxIjLSc@_t zh9|vcs?}=9N_YKCFs_6yADpgdr0ScJV~GNOEaZ(3+ig&@hh5{^9_22PwoSo;h2Efm z`_nII7?$s3`A`=W{O}-S?d()HnVn={BmD#1Btu@LpnFRQtEXB%Acz`L;9h~B|Yy8VFG{8J7r3~ zhIxE11VWChE}Ge=IMO9lzvsj~IbCtApxf0GnsdUB+KxS7+l||&e?~lQ&j*$76*F(T z^hH<72^C%oQwTzR;WW=2-d5t#eJJ|^(9^rs6Xf4e(dJDB7EmI}MMay|8p7af^5q=d z%V(HlI6+>|C{7A3M>=c%&X4}~FL@tmD~~M+Poc5GU-a9H_alBuVD0?H`0IqOb|cds z{BugfO-$^QEasmnfGqHs-)A}JSpFqaV%?Az9N}|CZ_n2sS`t=29amrWN&u5F_J7TfQvG#)0+aBg#0Rc1sRVwuK=!>@$*uFk1eQ}N=_-k;7)U+as*j|2q-#O3AX6@d(HPM{p% zn=A4lVBmrlfyfLx05!vz0P+y|wMyBr?K{@hPYPJC5^{0~T&g!J0;Y`=Kw*d`zNrZ_ zGRgo<<6MpW1pqF1{&@#lf}|aw8!r{kEZXzp@5E`ihEIA5@lwQOQfMVlkLXO6D8`$R z7ZQKa^Iv3cSGz2RiQ%oF*ed-VNqBy4DUU-zEP*wi@gjqmKJ96Dvr9BnykULgm%Inx zg|gK9P^jQSXxU6o(cIZh8+r461Xhfm{RD>7|BZ!dLu#u!C-b?qBA3Kct0b!U8^UWU z90CGY4x!UtGX^n`05gFf3I-XoLL(>A4J<)b#2dQW2B zy}@#O8PQhu4-Ql(1MJ zAAp*Hk9)_-il9#$V|0@5b)ez==iIUU{8eh6t8`5qLndWJ<@uQ5(BkVw=N@7|PzRK? zFtlubp4T?6PQ2<7A$C0b)~yj!ofg`#693yydOEbR#$!IMk^uom^cin6hvQ9#M(^G6 zesf`uM>H&xmfCF5)>OmTU^Rvj8-D%pGv-R{Qf@-}3NN;CM4RFj0FsfRFo2ewS#H1& z9+b3qMeDm6I3+|+I9DTeA7HtOA3l5#oj^5jpj06@2J>*uKQT>Srfyk7$siZ)tr61M z0{h;&n7GqqN)Pgds8c4sk_l zhJLuhl(nWxW$o~b3B}CF43{-eb3%t7DcM5dXOc%J1{&l>aIeAxVtC#JGW0yWwvckV zjP~HhGW!(F5?YP zhYu9Hiv)%?wzk}P82BagF`Me#y7jFu)I5kUYpmS6N6N?fbCK~fzTx3rX>Y|16N&kh zP~F;2%G6PxBtqiZR`16rbWfk})7MsGGZ^G+{9#sbo&)r0y0yde3gDs!id={*_v|6- z8^Mydijf}cn=svG6$uE+IiQ3Bbu@#RC4=4o3|lS}it{0)mc@WKP8^V*qsW~b6bdlQ*`#Hpr5lm349H^! zrircFS!2+v1d4CQTYd#CN_LoxyZ+%JI(-wiTJ73rf@0s+Fgqvrea^j8)^MV+?Tu`` zF$Xn=jDg@5$J3H<3n|HF4ttY(&JKqUF*>^Uz?Mcanbu)kt;?MmR_IeRscR`rk@n_< z>LFc|@o^)*V{df(CO!nXTuvPvKN5O@okf-<*(=d#!v^#>_gs?Q%Fq3D;a_H;)kIQ6 zU0vNCJ17N*-ha!tcXkbrY6#1>+pj?#G^0(}!Q&Sb0is75TLuY7SL%-&jEhkBz`)3u z{B;qEVbQwQakYf9{9q^od_(=FWMfGO35Oxe3R+OaY=HFvY8sXVdK5T8Km(xa;!+@9 zj6!^=9T#MR_ll0VC~C8@D)y98H+D{)G%DWIJq%-Qnjg5aMY%!2djlODPAWKEq?XNn zx;NSSnlm@a;a8=^nXzJg4(#gHOA(qXF8zuE^tgBKk_>Rje01xHAKZGvW#wT@COKVp zX>-dV?rQnD>@=N^QEtV>0Kck|hNb)mW9s}xFjS9}PAB&NX{Brr8bnr~vlTq-U_CBCo z`t{W@U&1&RI($Q=Pf}GSOP>|Fbi#Ml>|4FgL&KEh&r9#}gfYK7!a@^hbD2}@@8wRZr&di1O%0qmCfrciB-q9XAA=6g;`aGp(LPqUG(2oTr-m{xJE9Oq)Havj25c8SOvc;Z{1uV!BAsUD2SIm&!PL=fCHz33blR+5ykXr-M<6g zxLAm>$H7pz1q!ONcPve$Fc9`aE7Qx{u*<@rZRz%V>sx)J{`Ey=P`RXw-Rh8<`a(T@-g!mI^M6U@QE!kS`O=5qyRYS9J=cQD@n)_t8(>*ogo-aS{-{#<~ zjHP?haDPT#qZ|hd}K2);kpAjq84fjpU!04Un659;Pp)TQtm++C!~JNlC_981Nk{9H8Nn z#Yn5ECGJ&vo+d3;$CMt%sthr|?vuRhSjO@4mbMC8hup-?NWSf zlhM~H?%g>Cw+-{%x?ZOi9m}N|8z81wWyzFc^^!lIeNRlp@Mq%|)n?2i4yQ1?XxsPN zv0Ej*i58-H3NvB!&0O3WvPB9Lt(fLtO)5Mte&9kyIEtt!fsqNjd94!|L<=~!Aa+&r zXzDkm-?7Ich}7y-)rbn+@^5u#U~E0n{dI=D9cBkt z=a1dw%9k&?Ia&0i{gs*vQE>*dxDE$lfW8t=ogx3Duf3F+@%;Vy{l0bPueBw;s226L z-QGz!Sx23?NUZwy@nzih?16T_diwg|z}?0pGqBb=eVdQ}A;KC|4kKGP5|0T}?IfWh zZ#2Fyjt4zb3AhJU6N?fOxE#`;q?$|q6Y)nT4w>XWYg?q!VeE38%rJdKea+Ut^;BH6 zT`tDG2kRx=acq*_v~ORwUs5Z>YIZ=dPI7k%Z-y^a68|`Z3Il;s4!O& zWyVaEveg7*7*qp>KeDkYJkz+ZIU1!EBF@LksQWltm#w;!e1iMQ>PheF?t*(#{9%_PxrJADc3pyo zbI`pSJYy04h{5YDT66(`)C$rZ=*jS&AWlqP$!3Q^7l|3*kxON!ZySGfO#Nj1@N^}S zW9&XUp3m_Dewrh+*CyH&Qd^h=7T(V#bxwh&NL^Igz`%fUZl_-kDJ8ofzG1nO#I&qL z^c_cl!FU_C+DR6pdpJafi6QMWZP<4`KCCrXTljLG*b7hlXRYkLwHFxpYFJIarVGdY zx>EwmM?hulfy)!e0wow!7{Zh>TwmXXoiCF7u&yVR52v^4+tlW z)1~$33{m=b`jHM~Fn#*DRz3Wmu@zaseJ;am`xi|qj()x+X?|j&=^3l7H_^~bhF|k= z)&KxYv_B??9wa7iMfK)PxV%S-@pmHstd6Tp^OP=ZOp2E+Qwvf$mBP9&tR{M07%32> zq@==e4#Xt$acN;%7;2IN6=YK6wG?ch@|ciTT_SNSHZ&*^(v66EA~kZ94d-4uC355# zkM2f?M5Qr_GOUXNIthBS>ucIuBGD#TDF<(-ACGs01q1}9gQ!6aa;X3v!Ikk1IASM| zn=Q!scZU*XU){0YB_Oz}KKjGl*ezYA=!+rVorSsek?Tj6IfXk^Y@N!hxcJy3KH?^y zC6lldqX}`jhaA32XysgGV0N+?!s!kLs_o_X7Vu08a+7MrO=1{Fa;Dh`m7)s{rfb`4 zrv-WwW=<6CN+mlnec)RU)xamRsqZg=H{Sm8C_@&;sK^n*N0LGzsJ%vYDNqeVqQcQa z`k&LzkFDsXS75!Ij7M9u?$BNly|tzIgTMF_)hsh>h$mJZ0pUh+Yx)V7yc~nn&E;;USWWvU;tUlC^Iv}3d}K!!cy=@XS+t$s z7lB*>sprA*OSXnyn?FUApH_8y;!byK=^eYkm12}qko}^sm-^S;i999;v;d-FR0axN z%wB_5_~@im;(x!VzkH}+uy(jXiWA4Y+Az1;DEorCmEn7%pIx@f{Z%RU6HOZF1^Gry zPgkO&NJ=jesg@d(Gi1Iml9&(SBwYNKQ2LWseV)DOZYZOGCt-D0!7WpM2WyI`118V* zIXzQ;SweNB}SoqJt^bIb0VnnmDW(rDT;i? z%S0P0*C{{PKXkIanWFI0r{yV&(cpXS$5i{dXP1Iq3lDG~u!gwQR&2%H&?z)^;nuPz|3RsxJA* z)Ow*={gUx!_XVp z+TYN;h*&z*9-x#RG<9A$L>2K(Wi^A#^h)1>a(O#zbdIt-Ns1+Np*vAQxBS8fYl?{&L?@lK5SVp(-Tx9-w@b{iA zqK<6fA)C<#0f}T6@+yJo<_aj^pScJtA(ltYzWG3ex5xkRLy2EU2iHL|&+~rHE0uU>tF)4OCKZ=_9ZBp% zYi8DFy7vDb9vr2njxOVdSWn@_OSS0cGm}?ddRADN8o5Nx$uRoy&X)(uZDesurW%Q2 z_3Ed%vl(geK}Szz`Tk(d_Qh@DhpuP%Fp-^|ZutC~itM)VJ&eqYYTT}=o96a*01@we znHE6f08}jvicn2(nAS1@MVz>KJErVzFvqX`F|zTJyeb8mm3nZzoa(AjnpFK%ZPRpy zQBYur_gXT&o3j{XvrKOIc#U-jW^GqLh zeBlz(a#4RPHThIL>FvzX6!J#%341Bb9r7f-M6tHpDyF?bn#rFy{AenTPOjPyxW(NH z`Z|=jN{dzGxt*BRbn4l&ml75CGy~kN?r8WxNZiS{=}EvzD&g6>n{>wbpHdXImRksj=U_eIuX|6Z;*3aG6?_wP;~;|KtC{-rdEn zoU=vhV@Ymis+PA;GJm1;?2FM1t&nbp$+bC|Y?jQ?_ZFR;K8tO^t{owo$#$3N(lke& z;C@IJPjkyr(I+>Qi*=Z<&mQ*nv)Om$x8{~Wq?;KUy#YmxhbRaediTod)e7Ows0myl zu6-kv`1fdeHKP|}UJwj%++(EZ-S#%f zZ%&@)JAYA>C7IW_h++O7ajGIyL*NV1jpf_~SozMqlS)^$TF;(;PW`ka)n)XP+j!?i zZ62(+-my={xmsBFZ68eZLL*-Tp^0*sMeyoU*SBtsXz7INOw`Z=3{Gu4nxdl2N`#;9 zjH(biUGz1=OX^uL%`OW!tzP4?euqib3Il}?P3e6KHFx&E>EhcNb09=swc`s@+nHz{ zg~C;dCzVxZM<5I`b#i=O(&;D?7jVY1lD-MAllh3Mnoe{|a#M?2KIxOuSBjgh3yopM z%8Ty%KAq-yIo>7;ae8)LA5l6(jUje%oABD6g)g603^W2vfdv-7sG}WFD^yse2{LN} zOjOkGLm<(X9Op>SY>A z!)+C(I2J6-!v%VJdv)JGF!5bF5xAdStNSHIlY$uEm(#Z07kpN8o~xAR>{pc8Id9=+ zJho7=ulv@fI(ZlBxB$(X^xS?9W!M~0&y@VtT;g{8*MU~WpXH3R>zj@4WS&VQ%eNUa zn^Kpee2s)cv^A10q#b?smV0jghwH7}>;9t$`k&$`(STW+mk4#d!uhqCB);!DJ}D(+ zyZM19m?!zoYVJ#oXH%mQ7q*83{l}y4-r#G=g)$OhQ{YG>yC%RV5@Op{a6dl>)BW17 zTiI8~Rm(U7@uLNyY&Pz_T8~l9$@rv%UX^ zarLk}Xg?<;Zj4yXO16vdno=*#X$-c1ASr&u`Q3IW8FT}YQFd2OBadWM%mlR)VtCL& z$e`jRyL{cNa=>mzAf}jr;0TR=bIZf3GR6A3Wc!KgP|=~n;wszw3y!z-Uo~;xDO8{o z$={$SDr>3o*WGx(;n6f-y)ctKhH~?_-HxLX)m{60z1hufNfJ*Vi8)@7bH!fx^KIoT z#t!Ji(U-@?1SnBLo)ivaaY2lLpq5Ej-tW>uS1kDMY5%>CLuQhQG{x}?xuEjilmLmQ-KbwgZ27f7=gI0286BCb- z@govjwQt^x92&zMVU3R?LDGGf)XOeiWY>`7H|k!m--5hN zTP#}F{M7gXn+(rtE_v7_NAWEWHtr6cAq%=sdctimt-i{?>s;(w_j}*;xs&nQ*RCvn zc*3l_(YUj!G}4Dd)C1gCGT*4GB!yzCJWK?G zl?v4_hc${(7k;+5QD~}l@9_?1gKi;NNkbzZwLnE149yro6-`i_!fiMB^&Fj;s>se_ zYPhrU6F&tZ?y<>}ZtRyhCKK`U(uFci_HNZDyIa_msmekh61QDD>6sMaG%`MAuw*8t z9hGy7RD*Y`!tVYh2l)f|>;(H}+pzB~=X=N|ub>NWf0^Dw_7VVoLjCDx1GisA4EV#1 zK?n(TPIrzpM=?b1Bp{~8=DN>VvZY=bc5UWb?0>l1l9^RCr8^$>+!MDZ`UhRZy_Gio9?cKmV51MX1H z42$@ug4Yr%B+cyaJb{zcH}8byNaxZG4tZ6bj}T$JKx z(k|k9;{yJpH9tH4ie`!>jmR#!?5S3&WU;;(uMtL&fSwyH#8}ubs8+HcvMdSu>^TrPYse)H#Crdpk)wP>c1&mkJ9V zcURx|rfOi3X_}sWqxi#vo)>*~+PXwuWt^w%(9?*rw)62HSsH!Ul2SH(Iriq-Ay@vf z!EXl?bglOiR&{BwY_M(wYS9D@EQ{tD%A8G+C6S5eub++^y|iYCKNcg#9ep=c_wc6N zpUa=S0)ZEDZ$W4_lvGu@-NpUYk=NW8a;#JUY!n zBOT9Rd_r?HbTgIvy(`Fc&VNeMPrYEAt-U+&&*?{yn6$qBKo1fdFyhEf4uevqyNh67 zf{LkjNqG)?>9)loUE`GAvsq^q&``+_Z zH@S-L7O|dfm42=qwX1u(iOTjgoDG0la4qmK0lqECjuq;Q!3d@e@FZqzD`lj;>ET}x z$?oXS6RlyLOJlVg&L4d*NE2pibCoz03B)I5YG0ek%9GM!4vp`=P8wLKKD{J^$(dqn zn+t27ql^#SEYkeXc-mv=Z3vf=$+AVNQX$KY`+xU?%^Sh-$oU-nSSqJ*t0q<;)58@09Yc1n|yUR0jBuW=54bw+oKGfq9;9E~zX36+!75BC0 z+aw!3K7L_$_wwe&scNP}+P-h@)0lpYjUw&%^R^peLH=a{rJShDGC8bx5F?ufHDF*i zw<3Hpn06=1_t36(x^Lf~#=oE=?W}Z{$lKmbrgKHiAlLpIHwT|?|9OAEQ;e`TGdO_sztE`Tw0;mj%@i||VM;%E8<$OY%#TLhdD zt8jXWpRL>87y^!O{T-9N&c*turAYylpWQks5s-=610WwCaQWCrPZi9$Gb{~6kVR6( zk;$;6`O{FuC%GFB16cM>n|DgGX6u#aYOj>B7N>J$x77~^6a;9FFNq}=@Fz(=0;E`ZIq)@KzR9Btp+#JO=7-1d7}y83 zK^?HcR2Nu!aDfd6R4K0rlb-u^LwD3pdb(AyHIkiDRhtxCDxAp;(%5^c^=jJEM9P-z zv%@PTwR+0=I{YO5rx$y2YA$sDXj>(qoAW#K{Aj^MXb)u%@AUiQJ2mv^J$VdIf>#b6 zg(oHcbC22a5H8Ivh z#l_60tAOSHW*baeb}5@TM(O@tSz2j?&HWrHHb2_$&-s}#*U-GXXT8sJA?A$>%~#+< z#Gj5Ux*l_InfZLSIZ*oN@YM2E(N0PFhcyG30S0D|EWVS%4t!!it zb7t|yoaZEtFD^nB0sEl2n0Co#wo8Oid!7O2R=QL?#h{Ilefje+GOF8Yc3-&S9McUc zTT`EYr#_w0NuTi>{UIPInGGsk7w>&A{}Q>yfz%VBEFXQJ-1gns8}~{*$77c>=D4jD z104g@_wxJJXOTFJdgrjv=i*gtpGxv)cpIOIODdtpUe7Jf-h5ln<8OCAP2;tC5AZIk zPdKk}DvU=T80lxbn)Uo(bAxX>VRq*_#dgPv?O_n%PSL<312VD`ClLSp(Ra_zne9;k zF=88efVryeyUotaZq(G06FyZf=UdKKZ`DjQq!CGc);^f6J;)>PT>Cg~k^OnPWX)U5 zs`wMLTXK1)$$gl~eWFF_>G3V$p~qOX(r2zfkpPOjXL>#T%O!zEBV&d=!_eZKi<)~3ILhn_byE4=IuvsIQ;YZR{11Q<5BcJ;L}za@VD-xL5(H%5hvA^|i9- zPwIU?#ua}kBW?!B57!H#LsfA4Us=GAvP z7E6Q4DRVb?1!E%R(zdcBd3?khagP%y)$)if>*$HJzd)y>hPP3c0VgRKrN=usMB!Aw zTK#urY{xT9X+_cC`H`G5IT|4+1de!Nc2x{~6DgUyLk}mO3f=}DgJW;{X_CxTHDJx! zKl-Y~S#;2u-VC|t;GnEYr&)#`3;yu zm0~|Cq(G2480VH?2=0J!#ljM?e z(PQg$$~~|-vtXsLDt3$gt3>ebiSK#3S;j1^W*zk=cG~;E`tPfL8Dth53=Yax`9tLD z8X6kBonV`_y)B2|yXn!itK{k$IzB>khcK}DcyY(s)dIlbY#mFo z&55eI^#y+pISOud*F_GmEIY(-CA!KfasIuK>4UksIs0-l%~7Z;NOfF-8W22si(qd< zK(pt84>{tbJtWR&r-%Z`pl{>x$%@)#X_bpq-FUpFA+WzB*9CI?N@#Wv-B7A;uII?O( zj4Tw1B!^~pPNDvu_Tal;bu(R!_Yjxb4y?u{1z-aZ$btn-V!~wpEA~^*QwLhx7w;<< zyC#a!eUYH&`Rw?axp(&RoqSppjhL3#olfo5jKsSqua<`vJacF_PQUK2V>dgn@rA@X z%`qJ(wj6d|gLvvB7SLc{`ad{746W-gW*g|(z>0w+yBu&{kWo+o!=*9^&u2+?Vgbs~ z6U$T$f}PC|3U0^NCTp%awatzmXlFQo*+tPcU+->d*Dzj?ue@-fr{*{uF3S@_f5+a2 z3)wD!=>c*~(%=sPX$SNaqvzw}Bd8?U+5x^IuYPs7pJg+%tG4^iShItok59`dw=hyG z{yBR`t}~_a!((li@s(DYH94B1B ztQ2{K2t}Qi-?u|p?CNKiOJ!qieOT2i%u&k~r`eRTs2A=|SUp2D9)J8M^?C-+gEEV^ zjCbz?w2lrjT4@~)?}h0!Gaw|$j^EbQP!<=-kP|A2Q5fwIO<0n7#rfp&->j41fIu1^ zi=0|W1Q%Wrl_lEcfHUZ}?_a6=7D3#e-H&(9&r)`IRsL$mEP576wn_dY4aLHz+Qjxy z^FHLi4pZ6q#M$Dv(@ViJ+V7(~zPrR#%v$6Nwpg`V1d*TsGxXNqr;fZTB`=S>dXiak z!DDF%wJAWN;>cSfeLDwc-(6b$G$PgDY|DtAx|;dwGnQeF(wOrMF`rV88(pw>6wPw+ z@-j2cl2yRAvaNmpMpULYH(p#YA4UwjR%-i+Wqe*g)g!9En-am{=KQ-RC}|27aGq11 z0lC-&a)^R5uRWne2Tt!ym42*mL1i67FDs=(oS;Z{$a0D)$cTjrJbNNSv#f<$rZ1mg60>hVrdn#IL#n|TwQUp@W|W2ZZ}P`eTbW%ck3kTRDX@U z{r89`FgOI}mEfgN$2Y-@dhr$jANiQ-;DM7n!!|xymhwQpH>=E6Kx-3=2AVn;CK1iwXm_@i@U`pi(N4p6 z549BQb&e{sM7vUvaVw3nXE|Dza1d4YX^6n10`$4%lJUq42y>ldU@%toC z?O4112+ik}JMwDv1KhV{T<$LF*KXdzdRGam*ICOkEsSll$x$Zvq{jHV)KlD4ucp_3 z@pp6^7FhI)u7e$6HrU||*<4uwZ=^S6r5;8**ptXw6;n1gOB9pETzXw`s&b*S;PC~$ z;O>~PPj@sNoOq3gLhhC_q%P1GCeAhB>s@ojWHqLUwZp@ozg~qig>?A+e=Ps3gS|S^ z($A4C4SFtMmccoa5A+z^5VoAVxQCK;`;Cfl2CDbBc?^ZDXDn5wzjn!XH+kBg;-+)W{#N-Du72s&X6Q%@sn6fSN%^E&0T<@kCgSKtx(Z-+@LSSAH`owY*9HP}k{s`L)H(0(%H>T5x-4 zKl;YpUCnLUb7DbNG?w$5@;_I*3cMd%$x1YOs(_%NvkvhoDRQ8#1#})eXqUe`^vIuU zUVDdccvP$fNl35teSvmt@t17h<<8aG0JGqZR~nIrhFK1o`*zlkCmq_K{hB8K^m*?? zPJ6k3i~Qi4TwIXT6hL~DWk1$rZqk`;kpR|!n7r%W=n zNw7gM4MvtQVcdmrboo{QMCQkeCu;fLM;+4P`})Zb^n5(p-tsFxg61*ZH@h7!Rw zA_G_X(L^(S!ok!9EZ4;{u7If}Q)O*mMq;tUSak~@nT?DQ;r;f?Kynv6;U&A7y<+S) zTx0RpWhsQp<-3pNuJ)NYhBABe`oN62`%swn`)l!La6D?h(hWU->m0$ZOE!?X z@gQC35p?05DBScKsD@7E#*a_c2$W76WlHJK_X)f67bUnn_4?^hI(&gUL9H})c&z-a zlbMra65p4z>u>Yr$DX?Nu0?3RP)h7h)@Y0}KT%!L`FFi|up!?XFne(UPeOoeMx%X@ zPdo!FD=R^z$Cn*!u;JOdrDlOa^%ULbYon=G^^CJ^l5^R}{0q2eKi2!@P5a$kYaZBd zVOnur8Y8Z9Q!VjMXw%=-Pau^0;HMq%^a`MaO|`4*w?VyzkR+CQUEoY2`S!US`TCo_ z3T|ZS%xrbXfOa|9hotkd^E9zdTn5pHdAslFjXY|ddiUIB>ovKPjaRApD$LY!$syxk z==>+n@OTUYVq`*w;CcPD+^Tk{0$_k%Jz}0j2bK6Df9!1LT)Ruj1IH)1J0FxxU#?hG zn|XFABCYeZ+P$I~Hx8A~JM&zWso!?%)`!bp@M~|KL-}rm6NZvKTPaw7n zG6ORb^*UHSV_-Pm2#$HT(yv3XX3A%pg=W=N%*>LhmRovLb$4)3a8iwopLSljq&j^P4u0)i^bd~zMwZ4iwlK4$G)qHQ@JNV+x#!D68 zLR=gXkT5gvy=Z9_Ww&*=$;rW2-6{=R@3k1&rLXwz=}^Zz^^~8z(=C4d85<=A087l& zpN?Zac+{=;pJ!BZNB+~up9mRdOLqA@dxlJgxC}o%IY+Z6_{`4bSkzB?;yQ~Y&z_+_ z;7D5Bl=kMdhQccD5CEB=rz%*DDBXLf9wnC$6^yPwv_uM^8{65`w4j^J=i46tX zv7w=%VtA+`P60>?D!c`sjd{dB-HsiV4#k@#4>(OcrV`W4R&03E_G6sl4CN&KOHt5g zR$R)WjZqSwsZ+Jhmz*zY?++>l_P6PW-ggpLOTd*Q^`2>wbPz z=fnqXk7%Tk?B|U8x-D;5-8s5F!Q>reaEBt?64VDY+>`l5I6s)yY1pi*pJ5Z!n`w<1NYavaNgZN-2;PdXNYROsdKOyP`>Fx~Fp%iHhKBQ}-R*yWxH5@Ij32ZLs^ELzt~k7+(Q znTwb<+gml^{o}LBZPWs4&v|^nP5E$bc|}E)Rqh(ItSUl|O-RSzrR7d!%D;2#wz!vY zh2<@mT6%v`A6tHMJ!BFkz@C-u4jV&xn?w`x%D7|JG z>bUXNU^3H{RpEs?@IhfAM^bUP21?-($3oY@C`Kyf-awIR27bl)t=oR0Xzj!f7nw5hkXm zS6#!lWgbXJf7t^r41%ad)cW7w#U~Lqpw)s_I*J&m4$I}La19$!Bw~@2v9kLWwXOb zQzyry@04=d*~_aAej$7p&F|UgNnG<{68JofFAfHxAsawS zSSwM>ZSnhW)u)$rj1}#&Bt0>$q03$*b{7?*xvHED746|h_9Darrm$Qlj5~cqF}v1QdM1htWi@Z!@j=sa&lzN z)bfTEUrb@$WV1}Mj-=hEe@-$kBk+VM0LyrAv)#aUwBN1cl>{Pbm(+iK*SABy$i_}3 zwPXvP8DN`@O3MmzSj{P7WOd4ujNXc2TABnN)V$tH%)N=7ZGxB8_P{t|1-Gb^*jrRofl7_OI2{2C$Y^|buwCCf_?0l(VuJzP& zD=SW+-cy?-d{ocstv9So?asYgG%vkhHvC{enqm9hDb-)yCELxQ1eB!QYt5-0Z&b&Z z1tSXYJOf!Kl5raoX`p9OsBcUy zol0H2n;PawOEQ^!ra#I}s&zsAUXgYto#L8ZHH~!XbZs+6J$uVF5ep2zMvp^*D1FvH z5xehsetsRW9cu+FQEh4x7+GXI%n0rZTOSEp4(z--LQr#dc3s$brI|uPGRTx&l%Y}I z+n%2-Q6X-6Bi5(6-6E=MDxlLs3gc)JWWN3>LQS{-ps6R&j1E&t-S$>nZ5diWi~qUm z=}s_$jRXrjCKi^|D&BgGS+lr*6@5kJ6Jo}`JD(iiz>EL+~ah;SP~s5XvTgzMmcT>WRQrDnZJ!s>gJ7e zv8dG-T&u0~m=?6XwZHqW)!C;V&U^k@1d&##do{SX0%uy1?C1!7@Mr}<$H=ZI+2zi*J#?+vE+fPs7vAP|^dF+ES6v`jXx8u~I6xmUl^36%Cb1^^Hgk52U z#V80R#=NH5?Rf8abu%R`jK{!wYtMDneY-Rq$RN}eg^wrJ?B!9eUHvzBJaW<`%pnk( zl|WNaN2)se|3j<2J~+9*aVa%phWAwM4=H5oXL9Kqnal@IiWU zE_ZEq&myq$h@^!QQy!@?f)=vvWw2LHLOf2tBPi85$?HUVZeWX5SmF_^+nILBM#oLQ z!r3*w)y@i?^@0izHI4z@PQp)CqIc)*P2Iz#)Bl_aA`Z~AC?5G&LjTfvLp%a+U~xl! ztfa~H2wra=r+%});pS#GgR1Z_nZ>77BX`p4mV%9$#b0uLEpigFHSZOAw6-zF z-NMg>?aFRo=!wf*&1teUS@iF|z4&hmK+u8*ck)EkGU4ol*@wtZ2YDhK-tU#O>*daa zwNxjs-xLfBj$^w^xKV=Fd0a65`I}VfO!F&wcgt+IZ{bt(4rhzrr*%{m0I?tXDeS>- zUk5Z9O$Fen0!=g-G6Wt8y{qtkfFO}Bm=qe=4btkTr ze+#KMFd!~#Q8lo_OP*?K<={{QIpGE-cxK*}T;WW-@S^m>&jR%EzrI=|wY1)WM`;># z0&Fn_Yr=3l{)TH@5uQi_InILpl!|Y@yRb670Xb!Jlpq&<71^ueN0pc4iZdSg33a}L z!V;N)`$Wd%`6S)Ffm*sF*;@j6Q-%g1@eH~677zzJJixE;rTz1sJWB8M6d|z!GN?xA zzr$1q_qW#sdyj0-2DR!-^75T;qZKm`Z4}hMq#_BY=>dF*!B*M4-!#}=k6T_9_FjCI zUViY}5RbYGQ3S5{BA?of{$&~9PlWVN{C+a{(;fKTw35|iI5Cr&npC90+W`Z<+7}a= zDF*EccE_3Vc*0Nhsh-#>*haq}=oOYnSKQBO-pYQa@uGNatF;B{RHT?1{+kc{Y3cVX z5^>Y{T_%Gr*{cPtMfYBzBY#+BW^w9d0f6sMApZ)7=)(iaDx5eks zmqmF-7&L=O?d|aKzY}|}Ps-g+ zUu`IB{iM3w6=I2VHNI(|W9)cYEwIXUDCD!5de`IAEh$wo?#lqp6p+nB3R^?^$pxvx zxFjp#Ox9w@wO>N@4?sB3#A|46SBFk6^=hPZ-w1=ASd$vH`{_Y1oRS;(b@N;neb1|~ zoov)R_a;5%hJzPAyK3O3qb$UUPWc7;)+sHlkE+;`)Y+U4d$x_|T_MN?91C;AHpDzw z$nuM(j*(3RK@7_QRZM`ql;Ajade-^6ZHDw|$l|zK(bO z@z3@ik0i0pXG)5G&~1U#=i|Z-kBp-i5Bf|`JY0S>rtZ44j6^6H6G$RN1ND}6xZyF^ z#M51wi&i#&zZP?M2zsz!7}Tx+g{&(ubS=_1HD1dA{#1!d~x*{c9H3nuGeq&zB|7)R_!rQ`Gjm@tZ(d2XZ`%t<36`>{JPYQdJ*dknyg4Hk;XWyg%S2!rniB-` zN1*ToBdbvViK%gCS!I1@!W)REZb^B{rbOW7v_0IJa9bVb#B|qZ6h-PDXId^FBsoHt zQE2s0)JxYa<(os}tXYH(tBCPGbWJ!Z7k@&5>lVyBkW*4hv*m*ERcNp^=oBA?G9daW zI?6{WT-JD?!@gZk&G^tGy>kk~B`FCr+KaP_DfZ_3L~}b%UykhyL=?p7lJbRRq2;fOx`YW8Pc7lA?fMtJ7EOKh^$Oce%nL;vUULY|aZR4(xlVj> z=p&(=D&DVBgvNX{ZpXTC{#|Pej8cTbRW93h4|WS+D5ruhC3zeEph@3cN-dY{AnTW* zo-c>6*#CO*qW>#{*3lLFq=W8w`MT?l2Lf|R1p~l*FE>jcDzDRP$W(v3Ta_xvsm<|# zngCQdGIr4mDEI3+JLiPEjR`7*@STzceZ^WlyaT{UbPn>e}msl&SBr4ew0#3od=q#f}}PAjQR%$H3iRs^ge`YNpR%v zY~2)DM+rJ=y@3eC$=ol;p4L#w=?0BzONE2P-o<#m_|M~ubI@DX8m#%Q=9~#JYWKNC z`_VqyoHfuq`CHbL@S3A~~kCEV2#3BR`BJ__L{u?#HZS(eH{bE;pf z4b*iVj?IH=%?#97nH)u7lmd6bbU?{7+I?Vq>DE(@-%d%$H8(rGB}LE*W?VYsk>jWn zxBNcs_(co41N)-dgz&1#1vX1Tr<306LJ226veM)G3|6by)v}neXms(%3~Qow=t(UO zU;G@^Rg;KBefMYxEVxc?SvoQI9Ms?e&54@@X}uq&+GM=}BNLM2zq`-8wWQ-w;jC1y zXr)pcIp%d z$7PUF5rWZa_A`x|Bx|q5Q2Jdm?+w?PZlJ`a8(In{%RiToIs^@EscVEjmfL~yyON|l zj(_UQ(k3yT_7>5<$YkA~mX>{!Sb!T|*E01&oU9r8T6yOvx;NNCwa@OsV4yY+Khr!DPLUgchAkYN~nW=UW@SqPM^4tNiHd z%%uM**PoxOJi7)9NYb~iEgmWwr+Pz)E19?ISs;$o2t8-r1SH?Uj=Rn+_@@h$iw1BRP?7yWx;ErD7r#gYvZRFO;j=b?@g@6-;QL^>z4*hy-w`~9I z^=+CFkvX>?T?qLaN@WQ!TTXy?0jzo$O)!9H>BKPN*diqlApM^GI*j3y^37xbOI7iO`~Z2kv*k`=Ug?5YG`X}rzVjOdwh~U|A=2Q@l@|ee(LRIRSM+aHDaNHGG^ZU(Ewqe= zzTcn2)RAEKZS$sN6^M{P>&2yEF(@bqWMRI+6#E0Tw6xv!nBOg1p0m=@epW4c_@){x zJx%{3z7?ZG@80ES$cbA(*)@-;Qbc9BO={6zf$H?$Mk|PBvSqhfy=>E)`RE8DerUuC zjQ86Io+9MeRrL(e8&)YYI!u}#={q|iBpzjRAn!_sygf0@+9PkE_+A@vLVk0(F>cOY zkNV+nVJrv;btph#K_8ciW{c^2&Km(hwDAb7_rQI07`&NA(r%mAPAWLKI_i(_%6qH+ zd3hl1?WY**=BGv>n~Tm~Mu1a$oSTSe8D=MGf1Kh3mlg+{(7(U)6A#+q=1X%EataF6 z#RV4e`pw-mludAt{LgToq?{FHF_J_e0yl5t+*k(gV1j?mg+%Mqo z5_Xbq5En)I%>w-rWuon>Gs3}1`)<4_Jk)fh;P@x^z)B}*+7+65G9IX}JeJ8H0UR8f zU1p@rnZMrztyedVjnT{$GyyFM3j>7m!@X8qK%t(pcF!mmX{U?A71B2O85hN<@b;Hl z<1?ui%@v~e`)9^iNA=Ai0R8rS-Y%xNroI!RV z?1zX0AP>a{lr-Qe{N_K#-x0yf$eKHudDv(bG;0gJ_fdRe{(9V4v4*?;5viU+@9EO) ze#zfeIN%IMa_}XN`a71LMHmrt2*n3RA;v+O9t+bbzJe}$8aQB-j)X{Qt~nzDuxuLK zu+vvImA6WCRpmQ)MXijNF}Y`VHnKW3e!o82z3PEX41)Jo6o zB(*~;o@Ta^a#+ESB^(LAEG0xLBX&K}3rYgAqxkMyNxN){isakO(oZ&6CH(_&bZ-XD z*`(}tG3TGxP!IsMvUPGBF*0TX3Xoa?3pKTWwuo#R=d;i7fH98kOY2X?(_Jsrb;oTN zdxLk>#(r*HJh_Kz>9^c3TI%OU(z4j?mH*;J%x1@T&8D-})hP~! zagyS!iMcgrN1N5t(gdd+G*liaH5Cj5rV8P`%x5h3G5f^+z{*h@Tr(CP9u=6y(iE{W z%?d3z()4@ZA}kfDxjE;57CncQU3Tf4nCmJY|$rKNpODJsMR7CSQ6 z*0L>KYdP<4F90~uFz5@_13HU8;7dq2s>}+%S$Hpo{vpLkz0I1G!)BS8~MB*rBWO7+gC=dwemd6(%9I@bC&+62?{!l3*tp7 z)a$Sm2aVaFgN!B=&wM@Z-!Md5K8m5EbnZsB0IdiWH!IpN1i9=K#gip)HTT<+T@#%i zVW7e4ZLkIrKq}7;!=A6ZTz}s6^z5MW-k7;kxR_`vLxuBCs+W!2QX+ibYvDZXSH1JyT6+0Wr(52r0m(gkz|v$^;20wMB3ki<(X$bw z)W7h*&wL7KT0EM^qo%L#IkW)0b5tP!&10d*!)w38Qgd1XH=jNBVB)}Wx5cdXaILGU z9xkzy&I$!ZTzY_lLdIAz%0JWp>T<;BOA*7j()LftEv{7O|HvE)t$|64s*y7773JmM zfSxo1G^GmT-dbUd?>=N8YWrpkvJ*Z%=5D{IeQ_5}mtxN_NeI0ew6l_a3l)>7R&;kOADWniG`2;Jbo;pmlGQb3*cYaTZ#BHJj z9-t=^tdo&tA(IWKb*3YG{Y-1xI|MMW_>R2&ew)CN@paFQonH&7S55#-9U4#P0Y)1% zg4`#HQBxvJOgiihU&Zw6t0tkKT9P6>TY8(JVk^%cXjusY%E|DAiV*kFg?KvfK zS1VYl4_}Z@!R<~HS6Oal6s1OiOkF*fCS(xb7&xX$6kY%f49pt{G5=M|#w=0bPt(1- z)beH~3oU>bsMTv?3^q_6Y#`%}B**Od_LRl0u4KGd!op!`FX!c_Kj=C{k9JenRK2@@ zx)y|px@7~qQOu>Flg-2prUpVy6$NUie_%e;P!6_q6*S#C$b{&(2kRvb>W_D6d6}s! z-x^xnUd}&Rmqw&Z(?ER$m4#0NPCTkgypHX$m#f+Epf!oRo9cLbzq<~=F@>-Ogdj5$ z(D{l7q?#R6dx7Y9Qn7dqzzEUxcO{)Bq3f?7aX+BogT@oLGySru5v)d1apUCbNT3K z4+OEz(3QvECcRw0k!^xbJ5L;6Qe)5+6+1T6uI)(rXg$(2TGjm0!0L*e;}gfhzy)Tz zqHL9b6ZL_!{XxUknQph*f9~?6F7aXb6dCvgp0!&{Ewb;2JdD6O1zV&rs~cnDOR4f2Szot-6yS= zIv{qL73a6BF;tTwZPtb>B9#j0#Do-r5&=-Pt5vP68Y8YTfyNy4H$XWS<@HCLDVwy( z{M&-w!m+sb)ivS`2{=ZVei{$;TXUxy#{*2BA;=2&g;YDj=K-0S>V*pzf;N(2xFZ`- zP5{u~dF>2l3xymI`SH7senPsr)5+N6j81a}?yO*nZPdSmn(W^L3;>*D^w1wqmwSyPCUxMk#Ih zCGNy4T%@_1RBN)W zHfP9uNt*Uc4Fdm4GaiqPR^6J7M6#$fu`aGZ}MPj_IA((*O zN`NL4{t$l{KnEin4Wp{7<3dwQBEt z@Pfm)+^swTZxu7e6Q>G+g6ZM@*_2sQh?KvkwT50&!T~C8C`Cq1!T=*bO0|Yjgy%Z! zU+TleB zYDyhM-U)(nfQWklaw4gYvj9vq!nD%^3=9llv1;ciM@fu4p1cI%_UwN4KKxznai0D; zzkjk>i4PuNT0>4>zx%De9yB+Eu&%^}I26W+y!RUv{Lij z7teY+Ly=ZLLP&)At}CC@Pt)`lnS6|TeQ6)6^joCq7a%*mZv7@?r}-F=5%pFw(#YxO z@%QKo&^%g7w9rai5gUJvkl+UE~ziy`F($6#AcCN3hYugYy z@?cIgKa5B;Gugc3P$X*NBQ~<5*SbYv{1HcoMc;%F+=|L~WR?q>D@x(a5uGiBFC&Kj zXjlWaqzF0Mifx1$kPNuqYU(sVPVUqGZAPuCl?pwz5EvlbE7pzzwpN z<)Z;NyTZI0NY(~+`J1wQUUZcFlRq4pvp5?X?%cB#>$Ngp8YT#MBamiQ9frR_vmqwZ zB~lhv-z=rl9L|60wlt2h&q~%2t`}HiMO^(JIzEe`>S%-3$3W0}R>H%0ca`xD=zw0B zC}o0$_l}?}eEfmWe2w#qGdS0hd5?kX25E%x%TkY8JZPzX=!ZDu{t+8)0YYkKS*WeJ zg59%+S-G18X)%13^ueIXZq`5BHQQv?IWLvRQ8FHfw_a^)`S%#y8@w%mJ_OAlhEecf z@;Lh)FEyq>x05c zXx`L0dQ^>T-I4!HU&HaHb8|P6!|_(9@$L`Mww26X4yy342lu`5d!FO3Go;K3gFT<~QqWq`#2bj0JCWU$_Kx|>?cokMy6GRNmpTAs(S$Vt_*+vd_o<)iQ3PV#DN&OgI_@c7=$t2FvfcqNSnR`l=Re|*4hL8MXGbg%gK6$3Pg z7x3h}fjcm_Igm~GuxFu@+!Ez=mNNivcmJmFtifT9;zz-4t77kpfI9K0Ym)katFdx( zD*-(t9WlnCgNxCot9JsisORVB@9f@;5qS6f8nTl+EAT}|WskSK!0YAYGaNUYuDsaM zM$9?i(I|LSS0&0(oRu0@h;OA91`UQ`u>kXt!tAQIDxU!_Mv2ibIt~Vz^^kS?X@joz znphmX<&Kwp@aX#zL^6N>B3&O|AA(P9hN2i}TC+~SMRTeiqIN)-2CdhaNEY<0+REh| zQ5~p_ChZ7T?~)2p#m8%lu3C)$AM0ET@ir13UVv~r5zBDSD(oP~)yVkx)|nF+%nHiF zyp79GUv|hP8PdKunkaHqB|wYB-+8E3Dz13Sm+|jgVYZ|~0ZSTsmC!KSq_FKf|A=5- zIOxMHF${hQ#qi$7W%Bu$ zQd?VKEc`I)*8(|w3}9lv*eF$!;cYPx$eLZW(ZYs%rFfa(c00t|y}ok&Y?6OH^}%Rp zhXa-j9`U5GFrhpbhEs4}eJ=r@yajEc2Xcs!Z>|Qs(228MY;&x zqihFwcOGz=_)V(Az_|aV!-8?g6r#3RZx)Ws_qv(|h0?%FOj=6L#<`v?qf0D`sMU*d z42}5q&nxN5$vp){ojCO*4Rv9+<(Xy@9F5@m;T-@OdUI1=Y3l+rzY#aPGq z1($Ay_SimcxwGcJ5k8!=#5Uf|C+lvJ4gdBZ0lb%&3qExQfI7rn6d^7nYzq{FK}O-q zwR`I@?ui2_=K!rZng8A@t^M;pGhHkEel@n~Og>8yr!D_n@7ilx90yTQZ`PdJv4;$P zVwcD2G8wFH~UNbJkth*Mt8(rhBqE|!Rly7$qyBp(!yr9xIQKYc-#4E1214OIvT zeEvKVkOxUGP}?%X+r4MP@NGQ$5xGnvH+0ax)L+&*yjil5n42nSwS2qzO~$_`)c4C1 z*6{evjLs6!oED2j4nh561AuEE9#M|wV@_>s;^r&lB!Q-*jT!A?EL_@Cio+*-9{km- zgP$_h9m}6m1QG|SR(1^I{f-i(`aXx&(HvVsAsc(p4F-PCvG)6>ptWOfru%j!O^WZI zW%a!=h|Y+hLJcuagYT(YSd<@cg<#=`aT-~i~IW*d43+;Bmd2> z&oA~n%7zFzB!Y1Lz1Q0?ztrYTPap-o>1I!jM~}pk8ts&rS%?8Emdk-_^Gwi_A{`-S z2T~YP1%Q@t(t9@-7Z(&F0%74f9PhinC|vUWPY#fA_ktz7WY=csJU`7BqAX{rFa1)Gvrqx;!J zV|?3}4bAz+myYQLJ6g)-QoA|6Ltvzl93UW$s+PG0GX9L(xwf&X5EVix0{Vo)(8*no z2!&j2$?He;_&rMkbfPjBP9%D@nToSeXCd*qKszu8M&bg@r%%EbfG?f~uKB577|d@n z0$t=S(v?7>V>9thrna#_2ib82%cB7xa3ALz zTru9slnby6e>6rSV&GsC@eN2NyWY5YPVmB<(mzk(0u?0GjA9b*VhoWknB`&6$ZZ0r zt_Uk|ed=_qxe@UBiCz(n$7ZbExd zCF^MOz_ayb+;AxDb8cHJu7RIHXMuG;)l(!GAY4NYLR`V5c(M}IZ&UOLufX&~mY}nX z5qBLf-H*i9K?}a^j8Fe9CN8Cj*L336tMlHDowj-ONAp>CQaz9FGOExcNfQTR!^LJ` z3c}>XSY-Vi38KzF;Ny0o1Y+q3&>B87%@g07cfN|^XTv{Q(m2vqxK~T$U8+#-_J1r_ zZ8xG0!4N>)K~C+rK$9Z^&fE+E9PP+eXkDcg)x~B3YwegBd-yr^jYgTMKw+!Ns5#8x zNrg6o1W}y@5o%_fx3~y&or3C}>rm7q7@VDS4FXg?RTTOCe8EZk09tPzK(nPx`&71n zd>!2?Ctlb>qr*j!+jm6O;}mre^T7Zx_WcYDdND1?yX)rE);s}?c}nTc{RsZ8>b`?3 z_6@d#xGVQXM3YvfYvvUmhSQ2)+ugURFy#unf#g3yF3soDNZAGanmnWb;N!*Br9p8AARQt7BosTFQs~;Z zcN8CB#Qq%8WaAK@49$+=!D^_7eaq8ud*;_4L!f$1iQACCAX@aoT(5sp7!1fH*|*+` zLt}7InZVQ!dEDFkp?j#yBcjo?=`iWJoAZSfa!#&c^h23P%?nf#92ktj{L11u|MgEB zKtByYW_zI-#FPUYzZ=DGc2dZ;#|*ifG>%_d;Z_>l;^HdVY&M$I%4{mvc92Lv@Vxj& zf;=^P=j}QHOfisqw1`w@&tIYcO_7LD#rcz@#7c4JU2kElHTYDOyfoxmY`m=;Rr2;LIrz%!f1cst>wc1 zb*!$iz<<>gBv~?OK(P7fVxIX`duN7y)Mu}u%Ot|%o$O1N;SYB}7&%v$t13d=0OpmV zgafk+<$|V7`41C>p)nfo)uP#J5}j9iGVY+8NJC0WfOhFAwl5ls-qdd>*6m1e0P=&` z>!VmALF+T9;N#OQ~yCeP1>wk&fD| zd|-vJ0ddn)uBJz~wg7mmjnutAefoqfuJ>_darxwL%^NK&vg$ye?=+qGRBdBvBcyl1 z)hYINaT+sEsMCh-eeho4NM*Lazh9k#N+9uKKqhVhDuKCekBmW;ob>rO)n3MLKvCFi zrv0Agj>gebjln;}4}H@sm3q|7Pi+dkmDJSKhCs5q7L`&*M{G(N;(+Cy2#x{aCK8S4 z=!N(uf3n4{_>Ze;52rNR;r*B*g=a_89LGX?p+LETsfIfAziSPnM}LWk5oVfnP^I(h zkJ}rLKr33~F9UyP5>y#*YK1gY6mglKV?H;si)4xYbA8bY!CI!{V!}A#+yjl2bToFSRxDK4(r_Wv*IPIl8X7gJX)73aHfSwG zEyZxUVb%oBdEy4va{<&zH)14$D0`Em@ea~ z^+F(`gLCqQ#ZIca7SBo-Jkl!(`!@W78s;CTI)a*M3;Bk{(gmy#M= zfh7#xzVGv-|9KHye!hq=Ew40cdqfO?MooiTaB0!vc-Q<|_CgKl+)BnbGfjCW#Vaq* z1z$OEBa?{B8qrR{x=vyQlk>%?QHKrH2);leaf{s?YeSdYc!3b89rD2xf+Ni9F(1gL zL+dah&p;#0SMU7=kFn*;F0o^V)gB&gW!usjmXxj)5{#J|`3oJw93v$EiJdn1T|b00 zW6-0HmyfO%h{LZKnKX}ii$fZ62H|FWTcMXYa&u99U2=uZPjN5EeCh(98CE0JoNssZ z4w&Q1jML{%u>LuEP!~|RNrh~LA!ZFy&jhkLzXXJ2Ke>^$l1>3p(n9h%v$Dhj{*VY4 zGyKKXC247^piBeC=1lz-s^?*dJs`8)2<)7|7d9jJ7Ehc)G-UDREGQ3vG6@DVhk#Ux z7)QHFZI7%dqV>Q^Gc+YI%d$`UIFPJMxr)g?Tauj4Qa#eU6$-g1WC3Bc-DMQ-0qx`n z>K*SAN8V%04$4cC(v|Q{iS3>h5w7uHxH|Iq)qRo#3zoy~4=t4Zv+LdJ~T zJFvT-uqcHmkBp444Z`R>#C|o0k#xxQN_1090~?6-giOs_yBZpq`3`s$F77D4FWj&~ zaQL>6sARdCw)>HNaD{P-(q-!JHp}g>>VUFDx6-)#a+> zh%p5G@1`F;h9Vu!UeRi$$93;b#R{p>+qq_lV<`SaH#eiT1!U$F?FK4UOifLZZ~9Lc znSb9;M%*iEy|#;$R|vz|nXYmHP={B){+i!)ta9!o=SXux>K^LLXx4}5mj^U;qn4JI z*ao9xVrC!#BSE2h*JYSZNQW_h56cf@TtKHV`*@smX7CQnIGvU0MHw4QF0QmXJ1;BR z7^(Gn4X3DsRSAW_;9zr@;X%i1d>IlbXoo?%Xb42E+QkY!g)V<;aQSLX?x|9zhV?YF z!XvGpJT@nKSQS6+B#ziNojOdlloARB042FX;UNi2==BpuW2Gv9>VtgB&h5XR7HzA9 z<29L4XjrD17M;d{fyq891+ssPQ*V+$ziUu-`R|Mbc(k|oAwU7Sa{B@dJFV-YABe5Y z87?o6d&L3ZZkmm9h}uZnhg$v1c8mBXP>MCb^yvHNR4?a92__R7`YAzZY}uTLn~{~K zdQI<;_g6V!Mn)8Ha${f&*5@&-`(&ARzH@qOc5DrRA)S=xc0;q?=o=}}>6t;`Z)sTQ z>F9gm1r}fT0Mr0YV)5mopzG5l{LekN1R+jSU`=h?D(EbhQhcKh4ptnLY@Z^yrDp@& z$@M)GbPLx!@~jl~HDl(dHf4zo6hN<0qPydb&^c`*>MQg!=*QWSs%QOlyESypzb~=4;z$-MUj4QM`kIYCHOAe)nkD3?!b70ib zs`-m8T!NC2weJAuK}tI1cNajCBPTnrzDXo>b|?=HGUetJjhrQ^jB{3Siw)R8BYpf- zIQ0v8fyYJ$p~G`=6ht{-uw)z*WADNMVsB|Ai*Y0pn#~)r;|&Ghxnv_c`LqkP8J4GK z`<}J4MTqi`4b@Ozjs^`XRsTn+NO_j-ti@{>xk&c~tRbI1x^e3=y9rp=>6a-EuCuGq z-Ilda*xY&0(2GwqwJip8KNzQ0x-SKfXvkw{se`#W1K>#1&rS5=oW?spr$UJdm<+P; z&t3wqsVdaH+Cr!~eTp>Y(M}%WDmbq9;)eCQ4Q}Hdrq2q<0f%%r>b~>5I>i5^?)#qY z*JPh@mUM34l3Z}~h-x4ULw5CQ@i)k7ms>wf(H}&#d-p#xKfst!+!Um%65ADa0~ND8N)xS5LWZ0<|8S zIw_iB5W@|-Erf|*g$20u#W037tzo60bmvoS^SE|Q$0U)MGgQ%@R^&p^U=Lbb&~7h; zXxdcrlzy425s$EQ0(OXso*o0#khY#!@BI+eQoQqZR8^uxsy`;UW$buf~jG_4%Xjm7Nn@C-7+r^_DLSGbWpmD{PW&(i)99-{GK*i)!4yJsU%Y2?*r}~Gz+xvFX^R>hoSmYp4SW`;c_79?tTAx zm;6a6-&sgK0Kn}tzqPDXHI|`ibm^tR>YaoZuR9|7ZlyzAO>xn`H^V!GotxVq{;%A# zP+$q`p9Pu4;AI4v84u@98iE4q~X97TI zwtLkE$AWZ{lT#f^g(9|aBya=XMFj_9yQ&lF#>`SQM@hK{)ijL4mfdRelBQdKue?OB zikjN~7-`?~Tr#0+nJYDavfLEF%Ks%`A}1(M>G4f7Zh(-vZ>~yXSpPudaE{d{C)&Zo zIIDEIv^Ba7A0sg9eZd(@wq>)goL%73%lqQBG8HlRnQ0{wmVPVnLn1ZkJ!-zvjds{f zfB0@wz?Ed5MqsJ=DnROb*Uwh47FyNLO^>#n1Ee6eKNa$rY87p5I>LCN+d9>C61{J` zcYR>fQr4hd>{>9cF6hl3W9VId?=+IGf>+NofHRs@7#?Dy{~}dCwt3AY(ZyZdC3r$n zcr@$rW9Y$r3dyPvkk{vjpqKj2OL(ZN>JT6>)~p@kY+_*|=SbByI%Gfg*{*nvF>>0l zT}HM4NTGI0``YtN-K~Hu`kL>SsxDAe(qW`IjnFO(pBw~xOD7r|hlkuIG6l(=MKzmj zzBziBj~2#xEGRV1+ax(9;@s9u#*Bfwx;l(7YBt4##PM9CKsf?qrZ_XA2>9UxGGASke6FrR1qX&d|ozg0&mCz>ZZc z1?xvoqh}9CLhZ}-M+^r+4&({6_s|H@VV>UuX!xs{td#oFlC^b;eeQCyUel9IN3A%G z%*vGHa)HCMnT0slH6I%334%(-BQTP{rqg8*EFmBvmtUVgswg(!2S#V3;$}=AU>Fh_ zMP5CWA{*gK6sorDeIAVecQ4Y4&SQ@!ao_7|PK z+74O$MySsv?*P}F;c7A67u331|8cqJ9M0W#F_5`Gz5Z)WZ<3S|dzf`Yo=Zyb@Y*F@ zh)GOjg9#h-FtO9{@|!cvy`3#45e!VgA-G$H@eWd_oCyWk&K%;fk|t4bUup-T$!8#T z>R|Et*xno0)g4N((aLMJPwx^WS!L6pB2!$!T@+?VetvP+6W|}7c)krYmjL$RYSi@@ zmg47l)+SSOVedH~Y!fLUm_E+^43BxP=&@*-DHfMpD5z2Xl<^32w3)7xDTUdynPWJM zmNQm_(QJX)?}qyzc3)D1qsGAs+r_-PBtWX}@~1oGX4TG_Cdk6c==!JT=0F6WGOC>Q{n4GG+1d*>68C3ZW z!=yMTdMFBPg|yTR#WnH@uX9iTx|o|f+DaH?c2}DFWe|zqyTP-M<>$A!re8OYNd4{I zyh|cs*d$l}&rfqx5vyT#P5{}WuN?yYr~kpuw!Q-sqAJs|tY3|d^DIyZ+)vZbU)nV8 z`O3jle?0Y1v8?vev%}}Oc7f{kAqe!VJAk8h4wZjQVV}`++`*t7Id<$|pn6H5pikzQ zyXQ=}3pd`&Kx5C9a<+`IrEDjBzVYu>!w?@rU|I^rq`gyvH8pw7>4v3;&fL6&t_S+g zN#-I>DGc#JBGEqVc2|6|Fq3||8=tjm7@6Z@Ty>>TSIm{ROR=ghe?qwZO~BfrgX!M%f}@anY^u=@Yeh^}0J7A7Fv>mCu|;GbO;+9xXG0PZbh&Z7w{e2$1ELv4og zC-GwxG^AA20&{y_$;I}Ni&j0r{Il1=RDcaoc$)`vTl=+2Tlt{BUwD|q;KO^KugLVn z_Cie_y)ntc^^PMnRT)b?Yqdc>`Zi0vo~}cqI(r!E)kj7)2MWJ2pyKl5CPqT+*4F>= z*+yK(20L^{8ND=ZxBZ#L~qtRGIEx{__c{(`>fBtx)AC+_00zsEiXpfyG~NkGMs2UA|JD9{ofJ?o%&5B?d)r-Nnz*(w&T&1VGCwOV9_t_M|k9NP5R6_pXRW&`VgXefj zf#JO-&dKn#6y;J0sIL469V32>qOJ|5UU4uZ$nF>h1Vh;DF_>+GUyjC{sSbIypIOza zrhgLW`lS;KrgtrDQ)1QJTR?dmv40E#T z;CMj~Ui#3|OvAG&OW`cV6KkI9xj|!Nqs`}?=e~fh9}S3KDC7f>X#y{9LGE~riC0L>u(-}iw;&up61Y@KWCCMgN- zJH}6l4NfHCe}E(qk8O1FmL4F{ZtsbA>#WF|`dOwU>GN)$^Og9l-WY6=WW+&*sgSkB z{pz2Xn3&V^l>G+G`+Nda5u^4{F%MT=P@vt)0#C~bxByi^!LCZ}LxiPaT(WR8eU6Pq zfks^Z0QjSchG&8>7iFxGUo}BZKl9hF1LwsW3LiF5At-^UA;gY+f1l!GWbIa?Fy5}f zhl$*i3z4MV7=5l(TE4Nf*Vw1;PL-PA{p)ZSb-%~yP(5iJ=4|;u9w-DN6K@>SfbcN^ z_f6DKh!}q#Fpe3ZQc4`3_(16T;uE1zlQ%WBB03pzeKKGYR?VQrqTqX^gHQe+*;X@6 z@Tj`BWy}*W0*z;fEAg3C{Zx@kI*@- z?d#Z;b1iPDCEZBhc1c-x@3@U_IG`ibV?(&8#^Pp#g;zRY%gA#0Tp!8~KFr^jx@`B_c| ztZi_-9>B#ILY|_uIE`VFW0Gd+OR%@z+87&(dZ%FQRbz zHuVj;b?PK6SIl;tR{Wl=6#h+e2UaLa+O0Rc?Syvl{z1;Qqpa-42vDE^O!2(&@$N<~ zvXBFDKLqx^;4#>v!1i4Ps!OfJT}{38hf~2}qo77D@|cjZvISl-&b0GH?uGgL#r?D<7`i|a8aB2@^{P6 zsZUG)EXYTeg% zgAEK#a!1Nm=dZ0qfA3x9=B*B;iH(*@uhIN{h$TFnp!it|AGiOo#ryLpuHO0h;Zce8 zXQ%I1?IUP{#j;8ZH0H$1NG7-BYh8Hq`*3*&@jxXp2aKzEeuP{sT5#>b4Nl&!$b_4ohxeMTn$JOU%{KO@B27syE{E!G*jgpoMj zkDf8oz4iIjx5-t)+!i8q~|x17DFAa}cY78E9}Tol*tOM{w&g9DOQKq*QoL>h

@f+mk#+~TaiiiU44(#skuwdI8;u_Ly>DQ#_E3!}hzgy4;((O#|%in=;(dLdfMrw82{K-Xwa1Dbdh5SNB4DCQ_>d3L{i9Ns3njXjpXb=i!daD%Kk zI(c}lBO(3;92!BGYQhBCZcEz+QM3&VO2Msh|HD8y6(5X@L61p2Z?%70p3^Zwzm?k; zsSWFR*{aCjzGF;1J_JO2wR=!_Dz*kqUQtVJ%>9B+TqE_I#m#{ZIB-NwrR( z&Ft*K!(T!;1IpGuF!?*wJ}4Wf5+mK;E;?1o+Y1)jkk5Qzd~u!kCosnGGMy1~7n|n2 zsyoGA(2J|7m2^+kpQ&EVp042feK_}j12Nl!tXO;1N{A#$s8OyL-pObEE`cL&u3<2O z6x+maM?T!!i=4JV(L}drx<3A_OU*=ivP=5MP^Q6UvEL8-P_C14Q#K5G25q1KI>>>y z#x-g{x}OMmK?7=_nE8-1JZ1QkH^Qi6xGPhy(=MOK&69rR$6T_ohmJtO8ewbO4{!?p zoY~)xSrskMh7nNMm=CE=9n1mW0RE^!R~EAB=Pgcl!CxQ)E9o*=6dD}U#_A06S4{B^ zmhdnse9d*b);#M{wYFLu)@sA$cEIS!)-ukfM`{OU^fZ9cxG(oYsGiL_ehb#Sp*-WwsYWA4>7X z-J<(D2u@0XZ+$3dMP-{J>(Eu##n-qD5=Adgq^5r-B6CTsvsb+{`7xG^oeusv?g8lj9V{4q-mXp%Y^G z(03`jgmBTXi^E@bCBh|0U29N5HQ`Xva?OoQ$G;K9B_O#Ngh5AzJQF}$oe0Ab9(jN9 z$Axv6t1!A=vbnQ09*GWw4}-0soXC5u@VhOwUF1X%$aDT^cwl!dm*8B8)&hm zP_U%g%wVsK?1hS2-}v-8?**ucMeaJ8mh2a?I+`+P(V8Dd@DIyVw`d|~Q+Kk)k>=I6^fXGV!TLFyXCc}1&EkWnE3=t=YF zzEJY;>#Mn>KrGw(>Jz4-$BS!9 z@|huNCbztGv$v|}xT97fOv;qqn7anB@M*wt;&J}j{T)CML*Ur#*~0^4s|0{xdkm{c zBfx->@C4Jm|HF{A=i`FaNoill(4hUrRgY$CtRr_wS8M&3$!1IQ^Y=a3OShjpQUx zsj&qqL$#aoXF7-aw}zV24Dvy~o7M?6-y>-1ZUP1qKmk{L%Lu(D#nul&;$@7zsDo$0 z-YjTP@=bw|n|{-LHACBpz_kUZ%Puc3&w)g+2W-8My%5&H2~LE6wq+X&dNUXFW^ee+ zRp=cD3H+@EtM{w6YopN5rZ^`-%PCdM#P|NU->(G-@~v-g1psa69mU&u9bUQ>hdl`0 zW>-KT_Sl`97|a8ZXMO%WX3Ql`8s>qWJLz~8Zx>#FQ$q{u$FIM5gjBt!Ls)wJpu#@6 zwYS?@|NqA@PSQglxuH@=bRyc%Pif|bu1(EHgcLRD-pAv~k#eiI^#?<+KTBN$cil z7OZ^i_tQ)d0soplF5K0O-gEAUV8tlPtOH-YVgu@huf~tVL71JoM(PetE=k4?y%l_8 zOODb_^JV7tPp>aGJ=I_?-pc&DOya#T4m2NMfG{M5 zZba#%y^-tOmXj)rCzcmxE}fP&o?=Vtd72hy+>vWG+IT!jjyZ5GSRocc5X#{vI{W=< zmZ?fp0Z>dz0D(9JBsTL4Wk9gwg8FQq3cOy}>AvM>Qx`Wk`YP#)iyA66&DSa{{2{1( zkkf{=A_f>8q-tR4(EUPcFstIQ@FIDGRa>;yNwuddgS#RQAL)p;W7#G9&=_(~xrfMT~Y zuU+kju;b3uI zawI+Ta&epK|Gu}2*HAkq>y)?VAofd6p^3IwENUR;p zcmtr;?*SOX8h9;?D*F2RfV5zCK7|aOQx>p-d8etKA7qyPcD*$7&<%Sz$Llxx7?Q|h zNp)k-6&Csg*9u1s;%No5+6b~4gicO-91HJVmSS{Q&6&E9V7qVOWAg6U- zJA>ooD^$|Egv*yN4AG4#ND!X&saC*tu6eFiu=od%mq&pr4-k4|n;}meaE6Y|ZO~&B zc^&ff_>Jd^ej4R3&m@Pr1&`yeTi}|^ww}<|mvRv5e3N;aRLxCrd_3+*WRlv*wx$#y zp$F;;4G6sf_$2i)kx1+xK%lHUEaFB$h--f$WC%A1MK3>S1Sx^JN$5Na*$@2(|H#t< z(($@{m#Mq`Kw?vT289Tg%dh`KTLDiph3=;0^b)%C7UNJUIJVnf?KG>92ZSS+cchPV zy9QJ?=E#+~f=;R0CNmoXejj{^68G-S@r^mB7d3|DuHji zJ24`lt%lX38$HC>2+xvX0-2rO`hf9W_@(WLz_pl4w)H_rw- zCM0E_crhn(`O#>hzSAa)$R!$&csfl4gK9rM>nzR`yJR(JlkG7^%KfVwQL zkc<2eTjd-b9INr1&7{E05^PYhON*~vH#ZEvswY0i@9Fy8BBu=j+edhS4GeWH0adU= zpaSdKX$SOLcDRiZ0z;AadV)0d%d}w?4hcJ2gh6v{djBh(k{p}f$?)A~ZM3_MR>sGR z#zd`@`A%`Q>x>z&8i`+DnW<{_Ppt|$5x9m860?DBRx;aWZ4hI-2+f^)AnMXjhJql} zpE0I$``bwguonWrRO*GsEbReT8yg#_EwG|o4A?6=#%H0@^Br)!9^lNB>7+s*Z87Lm zFxH4Ij@V{`TwN*f73tP*-t`RTS8$$V5_Pp70py>@rsqq3|Gie^dLAeh)d*N?tM2!Y zD0CRf_iWy9g>yW$>`f61=dl~uS5--DsCliQOnw4>D*QxJ%GQBKk@n8FF+uP?|r~K_Gu4 zp|=32BB9AnAwo=a1EU6a+nY9NNAU=5Bd}Sc& zth#y}Z?)W0)w*=``VIBTR{@c*@i{{?K^|)0>RlrM(%pmBku%w?W=RN=0Dx~6Uj&-O z&c}g{{t^WhB{Cli81sHSJbVN4XL%-=S~hC~>Ws$i1|Bnwy>Jlp2U<~S5Nh*@jk-Xa zvj@@yrw8-^4dy^RYbQ1iBiWzqJp29H8*?Sm8MPGSdl#I?Mn<7BJ{E*0q^9~IJN(96 zQ`bfcg8Jl|Hs}Yu0o5>_1!s8K38Xh;n9w_?n05b`E)y!@@?Lf0{>Z(lf~z?sN3ure=t{o zW}@A%5D5pPXeoI&f3fuSsRw?~RiG3j{A@{tq*!z|SN#6krPx^ojWqNyg4d-Teo>1I zF`+JS0VkkszZgW#!YY!ZfpX!YZXiiN`DW1SKBlcehAHp{)m{7c?z zr<89$w5mKs2sx=5*&d{p4PmUrx|2E0yb%z-obf-`e*1Hf>xw_wYsod~MwbU!Z-8$O ztQ83)zXOFLeg7oSMTiw>WGpvJ(dg|*(!MCHf~*jRe|vuhdt}<337?C=36}pPT(TZLBc-M##57lec zgdp~WY_mo-l6h((XuBgzW(Ypf57CfNtObG11Tcq6AeDME;et?WU0|f8S8x#;%)*iR zen!iyK@A zI)A;ybu|qQY4q>=uft51)i7Zsj?U3;z+BQ!jSxrYV+c&x2-Hs@?6Q}{cxz7-iF>`D z1b6v@DYy<4Lkqv9!H^Q4Lt!G42Int zCRaW1Q~rNceR*7s`TPEvG5BCGmQa=q$yO+BifR~4D23v*qJ5LnqS7*qkyfIjMah;H zY2S;{rk(bkQqekT-+$MAIyK+l`RDU_jm~qP=l#6j_j29Wech29s0j!sXubE;-XLmR zWByFz3EJWE_p7H~?cJfRd>3*;*$AE1f>?X02(`9MoMVm*c(994+(evFa!;t}la@>s zzHlj8GbpP6J==md1$TsM2{7nDQrwMN`rkLsZRuGpSf zxmijwDlK)t?L&*hc%)A~-hGEcoD#cb`g!tQSd4` zsQIM#*T`%QSm`iU+vqJ}oNm&X{sD$vto4Cr6D+SAC0v^(8!Jz3Kz=HKol2w$rG2Fo zV!=85d+dO2U81S!n;+)GBS3WhoUw4$d2eB(g0HSIb3{AVZpnIYZ~yg{b6#RwOpjnu zq(+LZc~_ah+us@C;aDXUTaI&Ebyj_-yfTMj-O{#{5%kOW&p$HC2=Q36|LSFe@9)aJ z@KN6lPyie507)=OIWQQv4I9(#9&au)v{w#0YOi`k134;EIBom?6>Gy2Fg30ysya*z z^kSY4pB=IV3B>bt%MKrY=#q}3PsEpdyt2;d1KhZ2QbS=9f8l}xiKW+G67Wbi{}z2L zQbAR99kivHEqp>hZ{AwqeyIEE*5*_olOKYuV}4pOAyq6J=x1SXRQw9><2;d>c2Bf< zdM=l`fy#K>f6wBLj(hL}*DXWvJG!t9UDw+FRt?rvhvrLb#oujQFg4c39iFP?u|~(s zyuD2Sp`b0|>=RH9c&1Ls7WQ%Z_aO&@Pa$KJToCv6#(Z7=gsDip9-W8vXiV9a4tK5m zeqLP5WWrWfJ;tai&G?|cw?%1Y&)y;tlgb@$XCRC_4sf6+P<7s|nKY3xIa2J<9t8du zM&1wn;j)UK6;QU;z^*E_3)`pSo;xDVUO73TbiW6{UsAs*JnF@K{)F(}KDc>K00}Ci zVj$zdcQbcZpGWQMMf1sGhh=HIZFqM%e81;Ewst_zM>n+r~1s z=Vjc4?BE6}KT<9&0Bzmy6o_Iufi1inp5`GOKf~Y#%xPcq!BIr6$)}2^p!N`*-f$AV zaDQoUfc}u}!_rp6V3>c}>H2;0|MOFyI5B&P-1AT@!YKRRh@VFp~d3!s=2* zJtV#aAyC~6f$9@bvtWz_eNr!G<-ZVqf98?n!OcyS2DeAH#RrD?`i9%2rmQ1c+7aao zdTf>TT}fD+TOiE+_!@N23szPr8%ESP&68rLtdceB4sVQ*y=GCU9>wf&U%)f!AgPfk zCgLy@<8Rw_-1*7rQm-kInTE8GMd^^-t1`>yZ^nBmPO?R~o{eOD17fIS)Gh+>{)ctl+Cc?)zJduCo-ndCeI|?$Agd9z8LECY@0n?+>jHM zCKn|MQfjzufP|Gh2{oA3TT~vt$D6b?dJf1m$n9e4H z#8{X`8?G&PUE}VV9dQLyX0XuU*75fZqoL0ULMb|Sa=&LnHjd-Q{G|xHh^mNmD}O{a z*9S!2($-zf&z-?(6&?iQj}3Gz+p@r?_T>20gKmTNl`m|^pZkDUHvJjMM}?;u?WrD` z?)!LG?NWVUVFg?13Ru1h?3NYaS4%I)etRqzAf5$1jMRd-#))n#*1iC8<)a>k6b1fj zQ#{zW55!EHKC-GOu(**GSJW=Qo%;b?uV)^m-^|z9c1D?^WhQ59;I-(wNu>BqpnbYh z=?pzyKI$gb(b^R9$30rAl$~?BRoma&hf6v|g0sc(6xD2aJ+nAF$xc9xh_|qgI9zj2b5vf}$ z&S|>Ai4hj{0F`R9NFo!%QeN&yUui|(+q}fD+}t|;UMp8W7n`j9ha+&?R7SQ@+y!%k z_6TSaR`^Xok3;R^6!bORA-kaOWq*b(Jb^6 z^|L$*+EwqZ2UHStacU9iZ!*Pzi#Q06{n-@y()o8JdM}W5&E5jHuD;xAUS3MQVSCXvEo3 zi_(2^E=4GViI@V1$|2?}B~t|5J(mmMBIpjs2*8jFEnCoUH^?cDzaRRuM#ReW@O}kx z;pXvAe;V>U&|z|vKb-P2I(y3h{7mU5*8`8uPX!<1n{M6|jCtb%*M|QkW3|X1-N8?{ zC5mnY)?^tDcFaxpD1Tr|S=f$ezpjzrJn`z9WXE`2eWmQS_tELQ!<;nkyYI|RW5drI zWzMQuC{o?+1NcOV2;!cAWpfiP`O?=>lAUw_yU_2-3)_@c3wW6783|I`bM0ons=sB+ zmR@+yBYq;rn+RkEth#{8u8s$f1Juo#y0&3#yrnSQHZmYXQ}9pwFQdJsX5IIPZ?fBp z9mV0+c2G`#75I|jxIYR|RHzU-g%UhhT1NW*U6X@(l}s!5s*8nR|<^%_7Q{#GxqK*Op1BAPBBS$r4C92z4Dtq3tAj^8pCglx(vTH&%D`zcb;}E~{kX zBk$XiCTMG4F;c&FKxW$vT%t9IYqSEQb;pa)qb(@``yX-6Fe2_dH}<$q*q);+ z=B%tj@ikYxQKzdsSTW|G)WdShs@@ipdKqyS<9-a_Tgo=#Q^Fu96TA)jO6RRai_R(m zs<2=MHK@`QQVcq!(6P$>eawoH8(S~kmG^8pu*X6vyBd8eE?wgBGJ9q!4t$2aOC4w+TVkN(jYmxq_KFW9H&s6QwrgJIB zJANwV>-cwRj&8uvr4K@nX99zN9X@_DuXC81=nd1D*a78``xXgcclAOmEF1BsH-))e z%ja4JeE`8LxT^c_v*1u)EG=JgEG89)sKUDP`IZl{(p&S{w^wo%;$0i5`vts=`DWeS z;0e>kj!30Ii2r3sDA*ZH8HMoDIEzOsvVl{bvt^5?v+?6w$(!!-_Z z`bx`JcPFW%N-biqz^t%lRi|fQ#e5q7PPnvkt1>daCcya4h(83uPdr0y&qBZB2;C4i z{B7{#u*3Rv>*6)G)r5w8_t(oJTT!1|ELb$uUH0mHHG8ve^g5OW6lr~$?U1{Z6TB=7 zOF)Uy9UU)>pb9VA5t4k{!d(Bnp;3_B*AYti2Y$DXARjKgz`aa(Mr}5Fx0?anG8X*_YrsUqip>F@V z%(lwNlp_aa*mt1E2amdnplKo<3!r^P3=;l}*28Fchpt_G(otDZSHU`Uu*Ef8Vz+y(V2up>-n^ZWd})Kk6o$U#haaE+$Z(tj zm#IxRq3V1u0a&kP$wI? z(JY6~e=4K=0BHA3G_3kO?ZJP(yT+8)COGkrS)SMQ-g{X$!FX?_MJeDaV z1K|?Q|v1X^o* z*)$ABuI!EFAw$m#)z+z~jhR&hGHReW&#UFdHcUYgrS;V`f z=E}|PVw-f6>J<7Zar>~dWjI3?KDAfPf(c6ZaBL5986WZzZ%$&vmZ^B8PZ^`< zrnpW-L_JOIM}4!k;@UcO652Z1BOHc9f6V%@fojx}o2ah{@pVgGJ(Z>ZoWH>dp(s(? z8A|Zd@+S3z?Ul^76_K@DAM+%+sl@W^8aBgwm^4=5oq_coM~wh8Qf@Si3QBZ02ax?w zZ*Me1DbERc66@ANd++U(-(9G3>aN9PW@Nm~Hkrb8LYAsU0ZnIi%#vQptPp~`+YP?A z|Ef~_=s+`a0T-8D$$x-O>}Zp9GEzFN|82q*!6GHYa-q>7qrh|CsyjkUd+n^XD*}8( zRdzoXVlS4^PjqgO9bdi~gIyp6C_&TDxV_>t4!-;fSmLxZ>dXMs!54={w>;oU01Lq1 zt|7tJs4DsJEMr3Nf9N}1wfTsv6A~`Iw2D~$QYt~OqxzFM=1x0)!=%a=i2T~0!Ea_) z#~WH5+aqHMhWO{U;z{~a#L60eFX+o-_JX%Z%BF<9A?K3+RKfyoz zTgtNMvd=&d8BZDMEsi?fR8*N0dHIFDjKckul>x=wod-tq!~0Y!H1_^yi+@M?NRLl7 zagY5-zQz$8?M3V1Y?U73&Fvh7djg#ox#*Q){Nb*%MSl1Gsc%D|3oTn_@uFcv?}zJI%(h75bo*IT z9I}*xS%d^GC^BXPwK+wGT>cjJBQs6DB7vx&{W;_C}ahv{Y5;l4mCeeRAp zgGaMwpgo$fORyl9pVhFlz>Oz@Ua5%^*G(v~FmBT#$8xXoKHBIK7|}bapfZrB>FaCT zKgNAgUE3miM8?ouZgyK+R8yJ?w9o~rE_UDIP;sGpye2Bvb0Me0c+a|8<5Wj8S5JfG zm*-Iq85^umoZjma8rm!xD4UlYlU@pu3D$=z4QZVinglherURs(Uo>#fg@gWPdE0>& zFS>(syzmKXg$zNWtJLLy9Sw4@{?C%ooK#s^bVO|wE@w)ZN8UZYzq@L^!(50v5<2)sfqq`iI*=_q!B>^?FyOz{Z4?*%P2cQ zXSp=?>9%9e9TltP&tQjr-@2l?Yu_Tl?$~h6hwS&58%c#33{>wRK&7ajU<2wS0a@Yb zV9bt$r5__OI7Tg*;4r<=BXp3AM&N-(x z?$|6CeA5i5W-DKU&;9$Ei$&{xA-x`YsBlNT^EUsnKlCfC+e8XI7kIv_bIucM>obYz z?nlzGq`N}k@$c-{zVah%KI+vQINPYcOtgn0bRTTnaSEr&k)!vXpnO|u|44s$-vNrD@_@iU%qJ5-%BYK- zA#}px1^+@Jo7MXVFJRy0Hifodb!Z57?c3+2xZwHBmjlT}Q_E>5ItW-jc3;32>ROA~ z&w_5Cw@J5AH^9n3O;qkkhVe(dpn4@kzgdRy_ixl516t5_wvGk0+@PepIXF5xy5s{w ztGCGT+W*?ZQGN1&Muv*t*P3|igZj~9&6z#XMY~l%LX=@IX08t?s5^)YMRYpB%0`U! zB@}fL$=-5F!sN+a9qV|=Y;%w@IDb$k+VAYcG^eTR__asJc(?o)iN<^R_~cNP6+}OW zf=35zZ%S0EUXdjN^a8*!j@f7!3|S%RyMK3cXSe3O!##2lcr(=`>=0lz+e#jiK;sOm zbo`77HY`f^0k;ZOuVa)v3hnZJARQp@C5P(#hXl>*xRuu-e9fJY+-$e5o;lFUq)e9y zfN@=4tF~ki|E6F-WC8$ft8fyjf1KgwLRKMCwvYFw`!CCu9fyY@4y=DqS(Nd0efFY+ zET%?P^eOOD6EvbzLf-^C9GQgoHdj_L18+x-U} zpy%cPgASrFz<`$mO|BQz2jJv%^;-XzgGX}>Qidd5B3F5#HmKLs#op#Y=|GN5p{$uG-Tw#mU}(#16fDe83@rA}W$0R0nfUd$2`U(I90A&>{avccNHEPI4EEaCW`!td$l5_#H+4y+w=2R~kV zCTzBMM%av=EL(rjCKQysC)TDS#28p3Vsy?Zq27}C%8W@=Ddgqb4vhX*G4fC%GCJEk5W;KVU1BAgF8OHexuy_F# zO4CwV(Jat2UZOdNF&9wM$^t_TOrXgab#z;P%(J@Sd!B2|W}EO;+h@dL9mS1rEEaJB z(?Ga66}3si@3Qu_`8W4C{=f)Yf`+e!I-O7VG20BS^zWUx^Rv$VvzdJ{tr3^w)oxWR zc)>OkpI*=?TVhlycaK8bd>wFqH=tVKjF$|UZ!lgLKBuO-!S`MOV6?2U{36yJ_gwpm zWc_9V8AnAx8chgdTr4V>TQ_Z@2%4%=)H3@4dBu+}W|n(voPpA*k}-$0M81yH)A#;q zWjopPEr_#u$*X+@B;&enpP<}2F^7w$9|=Di0oYx_f1nPC!p-_10nb zBeY*P7guWzwxJ$f$PA%-NZ5Gnl7BZVelzzU%SzyE>qs!zpb~2mFdKX-eL=0_ zB>DiC(9Y$OI!dy8?IKc9bH;O>dUW6*qN{CY^Xc=4ckI~FWR)?d)(I1Y5}!#X#T5sS zBFZ;Li- zO`EKkZF6d3UEOM9Pi&ikO_wdh{3aKahlDZFKG1^t&|F}|rHG_U1USaX^a&EumTQgt z%dlFg`edmGa?VMi-Z9s{rZbr_b1G%_!1K{Zx;dWMsKi!w+U%aoywnJMGdMQ(481?D z|G}GVw4b=#8tGnZ@eVQO?csW#doe|UT(9MjxX*@CLYD%e^+kj{QygdA`s2?|nWA?$ z8}cISh{R8(&+*#M?dFi_c_?Wjb8TeeI@r=m>#R?RwGJ%2)A zk@@!m(hy&@yJ$S()3Rk$dSG$=*vUFW21jc7Q1@Te%(e)>twR-OyyS8c4{LL_RYs&7 z5#s-@y?XjF86!d{V^ha7RqUYOf);=*GR#QR$GSdY9Ry=V{>)r#YjP@^%G<$A8Pki* zqH(?}-f=1-E}Lz6Y<>4nUrJhYFVLDQ;G9q~azR^LjbWr4SRJHD&fwaEK8xG7y5r%l zF{_K}CExNan;M?Hqh)N_BP=;WBa1$%=(kkC_`@^VzRd5}G?eaIq(jha_AKeC5`Ie(F5qPDZ|kOt0bYUz(rW=~ z5|VyQbgPo9`-dBz4qs{jnG~6%>>kkvG5)A8d zAfx16%)h?wY~Dji}z#^*domcdV>e~{X}2}PqWea$R(V*Bk~FX?%TCF zcKWN8yif^dvY&-3xF=&uQrxP0-C<_B+L*%x=*)$L4Fsi!RGTbggnjKYjS(z5wV>4r zta_6R*-RI%$&E_ld~ss7NE<-}$J zWxX}La{g;b9c8@N!$H+10)<4E@u1zx%vY&!XCU?@6$NaM0I~tmHM1Q zUTn4-`?cT(XugsANd?}PUkGW>b=aTR085Zu2BUp5_V+Ty@|~0KoCo>+c)fqck@yy9 zf6ufb;c!f5H2e9>tp2~08k5HSOnY9wc;rl0;4STLJ0(y|rJFBzWk~Hd|Lei)#Qo2` z6}9|}UxuHUK{KQ$22d)={`JyB6Ms5|&9oR=7I&}G=akpJq`cYsLo^LlY1l#3%-=63OKgxN2yE!*eP{92;1 zP)y^@qq>*h4m~eGB{S$`!tC)XlOmU~LQd>gcZ?!JkV+Xem?v{62s!@@9>{vH&c~%u z`GM;2UH`<}Eq`w|^o3Kv2moteBt#s1S6Lrt-_^Oh5NX_onqCaWPJj!MN<%$#8Ra-| z+nXPoV{Hx*{Z{&&#d|3!_bd)Y6nm>fts1V}hn`?hhOei^i)~&*YuGD2Acv$2?P5FW zte!)wb45K=PIE9&g{3+r_!$;_p3K|zxh_dAJDXzk`=Yy5?cQYH*5VYmP$~*g%F3E` zmLXDjPitTJn;j!&1|mFw`NY07M`JR}A{|nq5bs?qPtJRwVq+8Gwz#SCPyHBo)eX&_ znLBz^PwAcR5R-|BZauW|ij!;6YK^2xvyz~T7U)D%oy9%vS zK2a6j0E;F>)NTYrA&y)~@S5JwIPb~>?W;>;iu^>kJ8$S(q`}7>SN``+clHy>Z#704 z$`mumc3tU0M&=4kC&%%JISVPN)WcjWeEnOQHM0%q&Qa2OLX+Is#ag!~x_!^*7S3G6 zCjj|DRHeEtRO0xXz!-5O&L%XdP7}>qdh_e?A(&?>_ zzc(gT@a`D<7RpvrdkU$2WRHQ(r9_fv%h6q4<_zRBhxzXK-XbgYjN@h(HZ?WwZR53( zn*N?+awkSY+(uJC4)U!v*d@Ek#yh&wgZDO2cp>Y2dcl_4!`D8e&BpxVcJ}WrjD+__ zNhq}np$ds72$(dak{kxSdMf4h45dGiM|1S~oY4yCNs}4+-R#V>(x~R#-GW6a!p5F6 zecp}-*P_N{ggObOF8o*Q0NYa6<7!Hzr7eLlL|kog`NpZ6b@*jfhK9%QX4m#OC{&Et ztJQ3s(VPjoLq#|0R01`|;AWrH#J7`lUU(p`&e$kA*Xq2N?BoT7{bL^>h^R4jp$7@U zZLJZbx1QmBzjY~ZnZ3?0tUlL3dmEB&q6Z33AvK7D$YB@;a&On4(=K-SZkJtc5aG-F zfM-*HwxwL;tJ^K?CHbQU^w14xQP3VoA0fzoBvcBXJq@cBy}z>14GQz~&c29at00E=beBaS}<7dK*cKf^lvi2rNp~G2F8GVkxa}+*X`e zE^xuLdST>{{@qTQ@9dk9IrsYfZ!8WQz6el`v>9pG6w7v4_+FQIeXQGF^ICzL>RnUG z*JpDwqe&dd!B6Nw)EImMeO7*iV%eG-^ASabJ}t&rFRFoiu}~olcA)Z~=)5)K z1-htv4|Lo;@9PACRB-)Yhl(d{WL*jr~Hi@ZFgasJAwa^QTd6dDy|RtkMi zcwzUOlY?VhC5yy+YMwI>%52i{I-9LRTAHFezu&}GppW!~DA@X}kR6MXpOgXzn?q%~ z0C5Wzn^L-~WcVlhXb1NIPmA>Yd1@<;Ef>(rD?lqrrP}7lJkwWUj0l*0$)(-Gwyv;< zy$~Q~=`#fWwII0`HjRvu5zGqf;X>5#-t0Zi#rwifcRV-Eb~oJW-QsL|I;JScDDA>5 zx@FKvQUhr0L@F|ciYO;CXlR5YU=W^b^=a$K)%H5qn2dEI8xi+F>kHy+N&5Hx^RVf{ z73VfnQ#C^7LfC;_kM)Mk0wo%b%cBKKBG_GVIH|qk1-P*2{A*3_Gw9 zEk5?U#+((^*zFu3&wf`zzwoQXyOLmOTTuY31p$XduUY50_cZAsvMS-I zGN#sblKL$Ir4Yhj810xIbpDyE{~n3wMQYLi0A)V$w`{{GPe-b@sY2|w?}O|Vri}mH zt)(7pDc+cWMm)D1Z=(DP;U6z3fuIC$qfFKwfkjkr%hc_gEsAps1yI3mD{^07^ZUKv z{{#}uRM6_cdK|>>Ep=Up9r?fnQjRn5LMtN_2y&L?NW0ZR5DyUD3!_HSo_$3luOIecN^(De5iQ;O)#St>bv9`V2R!wzb~ zXF-yX zkouAmsn)tj93w_Z25U>y@=m=L>$vu0!^qf@6dBa5siR4jj4SIVUlVH-=MhdyIU&q@V`J6>8_8?zTd6@VppxQAtA3PU+a z%InbzJi5>ll6ouCaF8&QZcw+a3yywpn(1ZQ5L{Ku{?R+!n6l(b+77Rh+d~f?#h3KV zg?|4t{NuO&g^_`29pWFtpNg3bMTEQpu)_3PWt}2A{gWkEC#csE^QJRVJy?t00eA3U zUY6X&KXY*)dk#}r;jqp8uNKvqqIPVWnO~H*_2y$Pr-^y%%u9Zw#y+QEhxymnL!Yk~ zQNn5w1hznPeqE^5-_>~-YH9~FI%^)6u<<~s2m-WoMLWt4D)_bN5Y>9!l>z~UfM%5t z+yco9?N4gB#WZ`=j&P4ws!2LngU#N>msTSprHGjwxQLeT)0EVi>#03yAHDsUB+*=D6jNyCU3(hM$)LFX z-{xeLx4_kZW0towtT}f6QC)vglT#~S?!RBKd)&;-Z4fMj%276p+wt$+KqiPom@!gl zLfv>wE5tS%mLBMrCshHKP1=ZT^xU7d8WZ9jN>6)>gKW??Y#$Tn?C(QR-t z{X&m&#?0P$?Y7~7xJbQuDNux_rlv#`;hF*evLdBzzre}n>wkz9YwoPrJnwe}h0uzg zq{L+0Td-t()BQ(k!7>}V*=VxR31Ezq-+eMN@t(MWA~3B`1}tQSZm@2wr#pX`qMhiW z?E1d%$yqO*Li?R{r?_5Q8huE&Q150>MiDvznyowHe91>hY5h|OCr93Y-~*y(s;0B$ z!UuA;*qYq&DXopEex|8HCXhbopOLofhYW`)JP#$p8dIZ{S5a(cd6)M8(F2V@GK)j~ zWJ^@-qi_9#r)@2Z8f9@=d>rSs5hO%11z7$ z7b*7nrp@ubfz7ngdre}nB)D7=Kx{R(`ab5h!zATjH5m`j?5XbQI=MV!E9=J?C41sf zTsh*pW*IsX)Gk$k>Xr!jw+Y#WD;1?T!mTip0087a5Z5)$W(LYd7);oM7_+(d&))UE z*jWeIxBa*A8^<4}^F3qgY=zcc)`G46zo2uLIP8pENQQ+(@sGYz>WJKT!4!PzBM~ZP z|9!p3b#IXqJ@uwdBvej{RWuY~t{h@Q>0KmkQ??ZOqF#OYV56Y=BVkl>p9+f~zI$)Q z^piLS5O(qKFVz!|ap!VpGOFm*VVCPJc6K zatG!X;C{=mX22%1q|^pn5i9KJDN=i2(cQ^@ub(og`33&Vn2rkaSq)aro?#6zd1b+I z3QY!#8iZ=RSI$=XL&E+~7P|v2PHS$hGy8)N0s$pav?g;9!*T9*kUS7&yBO!Ixihm| z;_!}^pRK0vOs{}t{h%DlPF|>B`vj4zPse(icT{ec4EeWo?OY75s- zzYxZ@AZqN1ue#`xhz`xOVo1ztn~`H37o*f`1a(BdxTnE8nvEKooRu>)O#hx!W1FC- z+%d$4UE8S=MI9(jfXxb$t?5ni9&(w$e$6RA{wq(Uw zQuoM--H`=iJ>~yEu9fvESwqT;v^lRL_qo#D4S78(?o%f_b!;-W-6yf5_P_H&+t10z zH+>xW^+rWVxviT@Dx&hUE;?~D2u)Bor?9~pb`%AP?n`J4Bq<>pWyIk60S02(vfk?0 z5l&s)%NX;)YMr8dF^QD3mC9*sPb{B6lsM?sH2t$^w<`#3;VHxlC#iF^4cuid?m~nD zPEJlYTXssOK@3N_cn~Y&ARBnk)bb;joa*#LIsR<`pvM$eBa6D~uMANa6I`@JO@c|_ z)Oq|-8E2d=-`gx;6yE zf<+Jx-b&`1K7TY|?8h(U2fb4oFd&t9VC24_7pmq+XRB-rf`i|Ge=4YIQXMOH>g9=2 zFVTeP9nIkmeyidv*#v-~?j#a#0nVj1N-(TD#d0KF#){>Fb^*GL9<5jJ*lHPBSQB@w zQ=RqO4C(Lxhf10WgU_}3sJkm`0>40z1>-pINF1KDH2`ge=#*k3)AfFqPc zN;*`HWR+3m=j-455qQ68Mey(4d$qn7aHyMj$=_wSPlc%A+>$m^PG@zD;rKe1qY^Z| zF7XSf#wWf=K55)D|5HoX5&$WA| z@$b313|cm1jDbNs0x{moyqUmj9Aga>h*rsxY{VE{pN9cZweLkma5WMASfvgjGsW_6 z!%br&DB@cg#^en>IIX}rB>Vo_v1`9)F76mmZJEJRM+TsklFcGu0|QyuhTwojwnPp< za&9OuAa`=Bo6~cmK&+$mr6LN#is?Blg3wZR-GOtJGgd%e7ld3^zJ&1x#Ol_nR|7nE z4J*ci^nxBMT)uUryS^7=G{8vK*ok{$dRf?i#_Ky3$TXB){Xp^ralVi0MQe z4H~tOm!BWg{R*sfmW71o^t6RM1c%{Pb@X&A4&Q6pz|=;EINpZqjNz%Ol%74?^RGC3 z8Z!Fx<}=Z#Keui2{@<~mvgBO1WG!EzpdX*P;tB7*+x%Q^{HubaG#6BC3z6Zw&Gls7 z&q~s78}v`zZ>aSi8oDJl^oN$^p8)~Y0Tb6=x#U|nj#>A#rL?{N%W$xD`k=S_0g2Bd zb`@bLZiX3C6FoT)b>+Yu+Tw#0aB|(at~#G#ru+7L|5pCaMC*LMnKEGe4T!gG!NVkQ z-D1_bS&f{~2>zQ)Ztk`@-EV9bf34nLIg>f?y~L;{GN)k3tu1|VGSU*v)k|xsi+j9j zb%qldMbG}iPYSI%oP^NiWS5Fi;kn2cZM)x}+daLi8)G1-wVK!sptyx*$K|ZMa-t3n z=R>kZ2Om`pg9HFb{44xScH!Qdp1?jIomjR_xkEUi8)oEGiq)x~I<*|EBo!F7n#&Tn zvPIs4?h+@ve@CMIyQLhAt>uQMH-uyMB@l>-iDyvR-&wtv$gIQJqUm>^QJNv7BZpnN zL&kH>WdD3-b=bDJ$+3E0;rDry(>MEO6cv^XXG%+qCkPvW&;S=9l^YFzPCT^PVl+fX z-*9Jzl9qYocddz`DJ#Ds&U*GvtP-0$cdjW2xS4Q0QAHEr2-Ep!LM4It!t01o6(k^t z?IV9!d-=)KeOq_h7HX(Gim!+c*|T%Ti1$OlW(|SkD_33wIdS zx!=K%9xPN(4XqjNIy9zRvDA8q2utcAn9*!T9YBsp@*J_w zjSc!SuKi3!1L~8TBZK3|ku4OqU4Z9Ym z{l8w z68jQBl_yIiuc4pOsY1QaAnjavKy`Hy{~xUM{<0sdl1Q21aQGJ2{^;pAf zx3#OO^>Ec`JolUD0(gl4UzU4h2uP$~d6#HViT-jOqvDfiBMWEt{dqMR&rERG!7mte zB7K{hIFcfu(Ed0@N#{#BTErRhL!Lah7j3YW*l^Y2NL9+k<;rlH&YfFBDvtXH%1*ORzTO_-jBall8y~1O`@ZV((={*te7fz7 ziix`38#2Q9h#c|cF@#rkKry) zd}Z?YNs|nnnl^pIqvi(pKCt)b#zxFV-!l_H8mijTbPKH16Sb6r$)72Oi+;N-?@pUs zlGQ~w!+3*QK70F;LFONQHy^9S7T2)7b4f`WXsuDmL(0YK8o(_{L;%uc;xOj-nGzK) zzO9LeHjEj)Z@+3h8f;LhI`K}eS>=Gl;jvY+d*ge8qrV$;*v9TEtYTm8P9(^{)BtFT zkoqVnGjWD2L;w&Mv4fd}XfZ6_IZAwqI=MO`Jl;O1#3Vbxs)nz5Y|?P@W4~>8s;toV ze?PMgr+fei=h^VX`Np8z8rf-AZYfE;2d#HR z()q$Mr~6Khq>AU{PeYc^9!kmBWrqrz<`j&48{*sL8vLWltLZZ@ZGovAET}}tFn;pg z6MB&k(ECAia+qYJ0CmtZDHS?@tXSA_zU10Jo*d;B^J5LYdf8d>MsAR{9bQH(9gpHfkl~Yq|M$;OrM0{6|Zf0A0YE6G@s1k3)xmx|| zf2#HxERCbb>E!164zyw`@1VWU;a~q2L@#Ub$blTcmPOf?y z!NKuVFu8JsyXcro?c-RU^bgV2M~0>kzT@9tNFSftWP#W*EqZ_#dh9I{+kA_xZIC_I z*}DCnb$)4ujd4Bi6Wg>XBkh`+*ZeiQ=4=nHx6OOE#)hr_mk%N@Fi(3C*ND0et50@5 zYbQ_AB@DhSI*m(MUV8W;&H41VlYeo?Yu|G1rdNT_;#~5 zvOy)$=&GScS*V6b=|LFC@*mnebL7cKwiYr|#f>AhWlWC@+1P)Gj*a`xFQND=`@G8s z@?&0=dZ3%>jO6K=~x?vYo#W#V_?OG{b%(nnG9x*9M%~m> zPFa0fG2b6je{e7RkY+7&WN>;zJC5p++AD?AQj@(NT$Kd8^uCaq*iMX%p|`kF&<{Iv zEf^bZljBV`ygW1ddC09de@OR?N``gLF3xK97H@w736I0j3Nc)F$pl}myVh4o4b5vQ z7;;>E{>}RDB~6Nkm9|rk8`kgr=pe(i-Y;Mx6K81unpx}G$$sqvGBBj1D8nlJ!C8l? zk#HlGxTw7{zv?#%%I@?yo2_T$hR@Bf%-nf;RmHar3D?9UYet6;SoP0idmrmI6xm&% zx|M_dbGEsL{vVp^mZOAPz>0Zux#!jWTI}CfDcTV`6$-gC`_Z=YSKmH{>j&uIH}G*Z z3PUUl!o3*jBp6f*L!ps`;ZUxBaOg4q;QWe}U&I-An3__5I3(MQt%~E`?_l}%qd~{+ z!4Bq3k`R=>ecLuCM8s!PbZE>IsonzLJI{LAB6qQo_jVogdm7Qz_(U^eY-%__U*FK! zd7)-X>z23%wkvLbLh~SrYJ~6$ByMVj?nDWO$+BD{S&kAyo6_PhoepbjRF99Y8Qq+M zX-y8ShhT*C?1JATq1@0{DscuJRD-F*^N=*vI&?rY9LMo;xNdiNbg6~4qa|>obe}L+{Z(Wsx zb;)vr)34NV^f`P#ONS0F?FqDOlL%g9SZ86IA61Hoa4OgKviNA5mxoBvqoeNC>=%uw zkC`hFx$C^hp8Avome~xMgSY09+W&sszti@xM+B-dEm|h*Cw0Swsw~0;q{crl)xqtS6so^IIAVRWOC z&8`rSquEa+b+V3FD-5IrkN)uFkyJ~Z{I%c7X_c%?yH;ayg?G6O+uw#Pf*7m|;fJ@k zK3cQ$?5lBQ=p$_cXC#r@_Lh94XTb`b+&}d>H8#$~(pV*|!6iShv|>c}DIf}HW@~LH1oK}-)&=&P>eSS@`z3@b_T;}PkWm?9`pC_$g$2Ki zC(Tiy_CQzE-(N#;8C)JxF(%d`D~MpEhibDD@<{LIc&Yv>v5!_j z%U2%IP>-5SU$(5#sC>Wk!c%eWOQ)CUp%RAifTLzix_%^=-c>`AKGa=9PRE#BVpA;4$ z;A{$8win6ApP}I=nt}|cPIvkKbNx(bid~L!S4?>DCgX_M67FB8pYDq~nNiF?A|+ohbM}+|9&qpQ{m`(ulRKE6S85|bXbOz>wo0!CP!Q*f}bY7uCU7s zte#SvE$f#VZ~oRpPdLdlv{(2+JpeL`qKbV1`-(&KS4iI78eYtN6@gbOG4{u@!me4=Mff{PWj(GfPcg1 zyq(f3RZglKQ+0k5&G1-D*swe0v5e|ZIIDXP4Yn(HY`}?~vj11VW>itaNO8v5owp-d zW1`51{*9x;iu56=x@7v>7ZC)U*l{YZySK7vv6xZTqQ8V?3xd_4EF8$?mU)C)BFulLt_;~M9<07&i_46u4 zD91GjgT?7VMmV1$Pe-Gjc{qp76QiF++rzCqc?2$ebB-O@n`|B$lQw-Lde_Litr5F? z{u(Ne<*#<~@wqNpFFtKL@9d;a!iS$(4d4)v0QS$q=vr1>Og-az*sz^OK z{z6av-0S!39gj94oHA1y>;;)=<>nfyP7-9VS6TGi2|QBCng?fY&TAc6+V%`DQgL~$ z1z-J_hAH*eu{EQE&$js0u?@?nP3kCrLjl_gK_^IEx52=WM040OR>o1{L_7DnY)n&Z z+?Ye%?o%(zc!wlg0`$u(mg?1--Lsuu;F3f|bj~WCRpTISA5ci1)WlJX0QHMfp}wNM zjU1WuyVDd;>%{VHcZSwe)t5F6CS^s3(&Am@WJ{N_3ry1DggBA2Lj^^xxdyvN1bJD! z9`v%N?aF}L3i!J5_Sypm1LJq^Nxq6t*N}KYh!H-odr_rbf$GgG7!(wP&~xWb!b&Ve zNqVym_R0f~)>l(c2d-b2ozlyWTI8doBK1P0O_p8umTrbj-!d9+ajiq8(RtsM)-x%V z7;x&mU0>tf8&>n-gfe1rG0}%OjYnx_`7MGE2vi= zdWw81@!>VX)Z9#Mi1QY6-Dd%j(ud^lbifL!B!}`D8&^gso0v6vUhjX`I~8M*Bg?M8 zOE;Gx9bJP_2N(`?F>L^TBxlw{4s*doZnbQMk)mKP!;dR2@s|V-L~!9- z$Y)Xa(-&&$X2=%<@;K5RYxUwqL>yoLuWTE7tsdCilfy2H$AmrsD$YUe`gG21{JrC~ z3pN~FcQOF7J(*BCdqzp6r#y5vuMPT)^4u6r((OglMvFM1fOl>oB%9OQTc_QdU9g3- zYhP1o58~$lIg6nMiXuv?$C7d2Q%e@Aq*Aoweog$Q)6uQZq|)qU zt+S2{AqafsJIbsX^*Rt=^Ysz_2A?l4NQx&NMYC+MNYpHP(3g6fy7xSJ-mC4wA8hQQ z6L>LiyhY!zUi|(g^Ng2a6-p}HiPkA@-3wUPkhYicVaB+nhg-L(b#E^dhOHLX7=XS2C%0e(^jW ztdekvNh}M-7YQtj#9khSTKKMAvB_e8r-)@^!|Nzd^{jD|ub>Dtj72Wn>7#f5F= zj@P*N_%~d^G5d|9#A|n*xpQZrS?MKw0AfkMdw8sIO1-&;d;HV<=_EDY*pC%rNo!v8 z?^ zXjRYWBE$L?Blj7!tcMY*aMQ>%G)~39%s~br6%F>L5KTY4!z=I9LDu!RlRtU4zqi8Q zb->0{Vf2Tg?!x1O@$8*CPzelf6{4Km_}}>KIC4$I-$jrg!-_ie3IL-ne&a0M!r7HT zL7Z`=ccEZ1JIx;`Mh?4{ZQ&qXMdGK#h0111s<`yT#!Hb`-|&{X zUYtVO^pfbEgC$x?bSJkCRt!eyL!s|TKiT_@DXgbhTx@qg-tv60+}d)(@6rA5z8{uj zCnULs)Q0dRXyb&(Z9>85bpu!|WEE!atbkMf;X%eV*&1cj&)IfsJ^c6WHjdEf_~_O? zokL2$Gb0`_)L;`El!>)Rz%*2HboNm`^Ja>|^f&F%d9DM#(Sj4N#{~jvwT-x^Z@m2l zYXQVQIa+j2Pyq_4yg;&5&m%v1`hzJAN?yxtO^QCo#x;*#O8YR;pqjqJI6^i`icNj| zu6E(V1(qZT5H+;=I8l|KTH#c42tsi}cqY zvbTno0P(eH$j+sbQE(?x+=+F_FiNGO-A7yPyz5sDD?DQdjB8BlUUnQ0-S;-_Y?#j4 z@@WLjakLpy7q-R8y2L@UTvP?U>BA-SK)r49A9|lWNw__D&2Ycl$ z`83k^gF(VYXkNH#k{}f}d{oV3Ua^jtksuzvm`7%LhV6KO*!c6+VQL9#IR%TKCh+k& zc^-5C%aA@oJd}{qEnxR16iqDCg4pueri0EB5q0L1$zT}dI7*al&R6ouYUC{pHLX`jG3HD$ zsuo{#oBkDrsgu;sA~pKKqe)k4j0x<6w=0=uUQocnM=%H@*Oek;X!gHcWT+aW;v-^O z{vqYksj2y`d{s}|SXW`>ru8=G!mW z;v8r`@I>ZAw!`p0Yx9+|^Igsw9pjt6j#)@_v>=W z&MFx&+OxB{=PWLJxKv6dzG1A;d6A)T-Q)-7^70B>Z#Y@@=`3?YuZ|?VfnxJzTR=R` z1eZb$t%P+vOFq#PHN8w|%?wn3kldh*dWcAp2~&Idn7czpjqr_ly@Z))H8&iL8gd60 z!D*W=sdhsQK)`-{SPYe;&0gP=$eu{QJ4^8)6~r>EzeI?CJD~r~*`Q-A-gsH#x2orI zYzqGQW&nU&$?jkx(o54WXi~DoAff!C^(&P>r7htzZ9X+y=WBk*i;f-Oz3Df3VbNZt z$cT7JgUT+EBzAuOun&`oa_;08%L=4elfs4ef7&C^}YS2!a! z(|&M=mor6>@wMF@f$cPCC=*Fw(=Dm-3rh&CW@rV%`pj1f-yRv$;8CQes>{xRa$S)* zu_nDDO?a6+MB=A38M6v3fGeyhVPguJj>{bm&$a#^Tkio@)w#8cu5AD4-Z5y1ErN)_ zE+SD86jaC#LX3)yB0Ui+2#98Zf|TfvAtHh(HbjUOsVahi6ipB-VxdS83?(WE1e7B6 zzVA1e`@i>|ljk|lIcJBgGS{5r8{=)mw;@O!^&G@oSX1s;nr^>ZK6r82tfIw*F%I-gm#EUAAfKEI7S>v?4ys zNDc~^-cy>7se>=MzM-}DuEHggKrO6Ooe&pT|NHFEjo-K+1~1 zEd`qgo&MdA&-$lH+2V0QQO=3-FPppz-(kZ$I6q`ZEcTyd@)%O zi(env=(FjUVtKKIDU5Rjm^O!C1fE{7EKW#^XxXFQGj7mDzC&vS>dS=_!;79@ds*pf z``=HzYa8|=+ycw(AcwAW<88WWm>sok6eqHAAy7FO&3F)@r_EM_O92_m$iW5SE6jd3 zMM}nYwGflqx98$OC#7ZEUpXn2%YYyE4pkq^746K&4k1BT;vqhY%^8)g{!nLBpKwY1 zmAZ_qHV{HdUN?F{F9zdGH_aWT{>={9vx+vGsr)iw@!FokpVJTUW&^}B1*nI~*Eje2 zo_2!+y$7bU_!?vW8)M@w&kS^xDt3Q7xEh0rAEpvR(O}{Mov>I#qj+cJLv}2bC1IyR z9-22*>O^$c9(s9Rd(H6%#fTaFgv*U6M1{FSQSdsocN)G}h!bAyI0S^=Q#Q^gYyz-b z=Qr5MZb~P+y}TD|J=V>i99&?VeB^9`yy4OO4?_&UMK#T)BtH4_JVmD4y&C4lZ&iON zbL`gTVH4QLvV_DnrC^;f`O2o&cay*YPj;N2Lc#1~kD#>CQ3A z;=h-F?Ly1_TBQ<1&()M1&-U(O7%b z1V2551V_C2A3m7THaiXK^wC!Zc2=A3#q&BBSJLHqGO}?jl16FSm^b+8I0RWGF0(C9 zGQDlnp&hsMNwMeV$J1>_jwtq)#?yeVdZy(QB!XkZp)q69vJ<(Kim(oxK}d?EVKI`o zdfxCw=BKhUZoaj^`-1U@g&7-B+F~7&)*S5n&z6|GLF(EuPy0r^epz0#Z>(+6YejFF zz6v}G7a_iZlYb_*G&q-dHdiiiz^XK!y6}XqpDON-IhdpaGOp};-x^!usJ1jI7$c8G z)(kDJ{BM`5T)6laC$MYjdFzDkp;5Y%T^l13dMl*{tF?emb1`F|+Ijx}GGhk>AG|i8 z30lV_?<}A<``?|!inF2yg1ToX2g8GM1jX&OO?ODn$@GjZSsey?QxoNi>e}@e{4~Mj zj`1eALKM?*t0bnO-K&M?vHl{auoz7$wE_cCH?SM{^0vBrHf=um(YcPtqU3poJkG*U z<(hx?TQCCGw%80u1C!EJ75{y2RasPmeg6vs@w*#+!?jAI?6!W*V0R!E^s94UDZwWt zfqE7??KF6i4Wo$(x;xxz_=nj%g|Su8b6T`zfLFo%U|Sxjv+DknlZj)MAE$itR{weT zr6CCoAI_OnCczBBA(@5{WuVp0B^*Q!aInEDqQlbcu_ZQBZEG`>4d8n()aS>Ov4Gy> z^5QHm$)Wo%cHm!wKKX(RXZbyzUn5K!c+?ij#{;c9;n;}|Y zhb-?~SOU7DF@rmLVpg6JJnLWi4ein54w!WYbYlGz91KD_Vr60W7jT6= zEh?NsH8en~oJ2C(@dGE6xi^r)B>n-=y;YO0um zgBC+XuBEN(2tbxjlzo2kNo#wR-ImarZuv!dNQhNwx7<;hVgd}xk+ zj9NYYEJyTlt6RNq_+lR%V>3jZMM0tCoLN}hg?5=HlI}Nf)z)w|3qqKuP~VCop`pQT zM$fSJBw5*i&jPNCVO$n~`Rqz>_6-OS4&>isYjJ4ZkID%245qRcmu@YjFq=y#-{%k6 zd3U+r=T+|?dR-ZHX>4hRYvb}E>2*)jM}I3}2rCTXJoH<+X3d($3wl@uXc)p(0Vi}_ zPe>!gx_>*UAB{xX9M{;iHwZ%?YY{Zzsx%Dw;o={;(5P^*0GwiOfW<*?ZD~SX~)$sZw3-oju6`JRk z9L)m@Fp{T)=Rf}XZq>C$(|qe=sj0r3o0hjq1wSSj#xBhnIX$gy#bv3ksxWqMBA_UB zd@3=S3va@-K_r_xXK_-(XM#er2y_n$Cbbhq8F*45L~O7#H7@Ex-ikh?FaE|z^iS@a z6Tcj@9sy2jgyc=5MvgQAVsjdVA9n^Z6vx69bEHtg6Q5&ZY~){>xTh!^g*K=s#ipS+ z!3ocQ2q!5{3D{c8s-U00I;!VwWI=s=M`p_UqT=gEbS{1%p03o}N3+Q3>-NhXwWov z{QAVZFgfSwR`eP6zcs`Q?>{zc{dY^@=ck{Fe0=fFVeWPJ!aW|$yd6Kg(_s`(Yh1^m zeftDR!eRx^@~HlW#}R{TfN=wsTzb@~!<((EW|%5?=8xP(sZ-g>J+7 zmrVF1#bUMOhx(fBz|E&mN+?CImEC?hh-V6eC>ts?A+I@eKz|ykN(NmmjnLK7&|onj zzfVR%9@dP&%k8{9ElLCw2QY&E_Czn=ufP79k3Us*xG@WuHzE&<%bt=Hv(&ac!}YCx zc}K36!GD|AEew7l3k>tmFkmEGg)C1N`epEj8@)>yl}!;Aq-f~Q#6lx%<_&}f!W2u4 zxc7%6CT)gTJ@`_;$=e>C$>lAjS7IAbCA2B+ z?wozXl|&N&>?`#kf{Qtpm|~fpUYaS$>DebPW{-Y*6S|N|i{u@@ePaLJiT{4?rE9Wx z?IdYIUz?H*4&&|;4-Ni6R}vm8rTI^V2N31yM7w!QS1hn8j>P~>(TJg=v1r^brX~of zgQ@Z|&gESIBxD~Yn4|N(Xpw=_BrcH&mF|UGeX=76=awz@@w)$EeC(=2YZ1r=%It_R zw6wKiqh1Q{|#Ywi;ZQ9Jx^Pl|t z>jZCcsbuT!6BL59F0QMz$X^xtTuae&r{WfTGmw4exC@_bQ;SZVIC}nL{l#Iij_Ius zNhNI0f`G!c@NIuqUru*X9{7af^d?{z#>SkoIY1D+VGbyrIS6I_mEQLQ^Zq)PhNo^V zYR>5UE2C02JDf~S{cUo~h1sq}Wi|_>s}-umIgi`taU7lUOhYlpJ?{afDc*m zNrJa6e2Zw3+o;rI*lclaFYSo?YcD1}>2-Tkn!Y~4C+Bi}m;Z!Ezb&rxzs~CbP^toV zIMW%qkgGVYoj_UzoNLyC9X0X|>zJHY^0S>%enFI>f8^5|ghHOdiOmmX_`3(%=h1g{ z*WWuVzmkIO!j-^8p5gzL7*zCCaW6bdgX`4`TTd>G_DS$DH-CHgAA?fdM|`~VU5F&i z2-wT5t@vSmpvJEx$vbnc@qC2wb9#UCA2AYCZaw>Upv~pAi;5c1r`ApQgBFH#x5~`- zCPT}Q9ywxJzJ0Y8*6T(#pmVJ1uI!+XUAbjZG5y-myyXzJBhf|@n@svzTwaR;dwG!s z$%j0Eat9CEk+TOE%+I++JA;5pHrW{;wE%t5FN3xhm+_Un& z4y0hs|7A0Iy((-8-f|Hfida^ZUK@s(pm@(lyt!Dyh!uSItCk~i>+i8xBs{n%|HoAj zA*sHC0y)V$GVYK@pU)Sd`q!QD>FL<&XRnl|ZF6-Bk0@njtj_y22dekS=pp3ApN^h2 zVMf}E-3-^RM#CPT;a_aM@fO4X7I?plktY&Foq>InHf?M0Y~o8t7h7v+j7+fW4}Fiz z2JunV%jpiyy$2Ry>F=Ka;0DU-9RQM%ov+7}FlAb6i5wX)o!x_Ep-Q|aY>R+cKx(Sq z`^pr7=~gThd49SBWG@zcCL1@Z&nNLn@M@6wN;jD$!&WL#+iX&EY4S$1ZSm-iBO5SR zZTT?-zi8t2-lC^ZUB*9;?qQS4_30&h%X6-R8qY;1Itt@PV#YQ6%AF7$gdVhOyIXA` z@74~8vQEwTYmvBLW!9}Y9d2LCZcBi5D+2MsT;jm^JjZUGwfqy6sDb?j%G&r9lx)0E zSM$)FU%KggXu_}InpSx@=W0Ms*uHdJg&TgMs_N|Vecie3c$VCL44LCnY>vC>T*GXF zy*PVP3Otckmx$4R?w|h|7Tbiw+SdctKL5tt_j}*eZC-+w=Yq@Ap#=q+NquJ)N`-pX zMcf#P*bTggm{Kcbo}%u zEKty=E1kLL3EO}?Y;HND-n;3{srLXwY7iR`pWy~7gw6-cc^VphUwLjTD@%>I7Si4r z*Z+&`^{(vH>Dh*Te}HxS?!>wYhO!mc;QuRm@8b$Od)NF)vK1G4dI!j22G8E`An?m? z_U0l_1DbLEzsQ^_RLIenTg8oz3VB!lpMm*R#kxk*!edpouYf^*lUU1}<=f&kc(zf+5*DUtfuACzk~;DzVx16@I@2@8Kgy zy8T^p&-CK)-s9MCVyau}x&(7{8(65)4G_}2Y z>~zMP2Sj-4=o$(2Dqx})ErPw(B-8rRhOUW4 z02g9XHah=}0&SHkE!$&w(-&A&Lsry;#juV?JCDOX`{!eTKT1uuD^`4V?%X-1*t{xB zX)uWlbFiYpn363FzE;m8aJ+c`a{uXZ{NMT|3w+uie49!X8%u*f$E=wE(W^yVaD7Wv zgNyfot6#p~^17ZpvS(>+wtAA?YFFRePr_bRX1<=Jz}}yU5P0T2NOjf!-&5R%Mag?giZ|ko?Ka-%#ZwgwFx+WRls}%=>|*U;BCRTsa-Gntj>c{ew&}5m)=}{|7p~x>dG@SN<7=D z)i+9Y;(ha8RkuK-CC=liByYOrQZj?ShR({4>`@qn<_Ra0(Kjnmx~K~VX;LzC)_I63 z8tif){6Zgca^Ci}AVe)nAQWdt(E2H*qb6_PRRqu^du2fZs#RnI2Fnut)xI<3H^D0$ znHbU6ymVUJ`>X|t?gh`{H@AEcK|T9|Nxckq#qVG#cW2MZ1sK^KSt)CqlvvOEUw=Y(Q|^J8#zRezt?7G$6(ddC4_05RXk zp#9>#9NWNUJ3vYFUX^0`bK-Vi0JH06*^GgQbmgj6|8I)0onZqL-&EhdL5RaJ{A!i@ z9Ydf-Seh4iw4IF9yT*##yR=iGGj%%&;g|?QKX=qYWznLDzQw8h7dmDGD^!o|-o2Z} zwK$!T5+ytKb@L>s$qSClaD#4)@jRpREzxgr!SKt<^+)Yfzb%Y7?ddKnad7Cv>(gKDVl&r!4ePwKmod%FR4-Fu&K}LdLfr=Q&G9t-L7` zgWnv5y~pS|o}X2;5&&_!n&fLk1(dAtXOjglvU#ZC;6hh7TD4d6D6kKaHGpqT`V|1e zNZ=BQ8Q9=Gnxp?apvX8dE#>|}TB(7|JC%pIVv+Vfc(XP}`Y?a?B!sw#ehom%kJ)&bAwEDE}dGJU<4M6_+qT!1696Nszmr2@DjDRWz{=1+gb< zwTEnE-BU)>;-K@Q{&6P4ve%?RD$Xj>P5*&jt`lCX##PPPH>~1iL6o|w zn%w*iVMf$M?ud1|wQt1133n&;-%G*m#+5oX5aimw^n;*$>G4?;(V@Ic`Li7l^KB^D zMgzO@irherEJF%te3v&(Ui>+?_(DV(@0HdI&^v_k0;UpNcz?yU`s%w2knij6bN^ag z>*$|o?pX_~c6ZsAqamq?WYF3T%(u(^iD3}%JIs>Linx9V|{V-B@sV?i#i zsZ;_+6>n#IFg4ZZXsWd$Kl_p&2a&cStN)jk9a*#_PbH*IPd!+W4vSlU3+u6RN zD&zPehOq-5MsJ5~7lA%vQB?C2E8}XPX21}00R=V8o%4Rf`xC8gmF}y|yWMk^7#_E8 z7%Of&qngzKg>%5FRNGc{S)zBq5xbulI0FtOaH=pJ7q-@UHYrD<*pyDyT-2X1NT%G zYPC~>M>m*Wc1y72sENLOzx<;PJUPb3#;yH>eEr{@QMb6h@ZyGXX~^vHxcTuYb9=`h zA1@mH?YB-VEid;~+17=psQx?0r?}^8%KP;VhI6EEx2d8J3_JIvuSJxiqmkKG!DSkEF1+m-sjQf(W%P%bQN4ROkxzI5p;u$XKM0Hqy2cv8nqHmJt)PDa!?cn7KgiN+N!)^kw|lwKuHh-_6kQ@@ zmhYH}V=~4BSFsr_GAK<|FC2yr%_qSAq&Vlp=ium?!zUd@#eB}(3VhN}&rfvBcetYO z+Nf&l*46ymq@qtRH5Z+~HK{{EpPAy^$2n$5lEE{dUVXF_LHHdM?B>~{V9&0*xTc1n+yudGOLee0Fl{?%bTh5z&(J6K|_P;%0F{!&upyh-Idi5F=CX7#}9wy z^bTn*oK&+wx}bYqcv|E1=y2&UzzI)M)(%fFH=yhhx~5BhV7e;t1z7ou+Pcg(8NzYM zyAsR~1c%HA!Q+~gd>&{eX@7#fMK^YVpnrqHFYo^N(TjZhBYp4M2l#l#A6np}qkU1K z7D5(2*9GFMTFA2igx;>bd#DE2^ZpM4k6e?3$37%*E@+-O2SdHxS%U@7l-D?PgK-$>;}OJfse>Ia>abF;*_aPVzlJI0Kn<)S zYZs#FI5vOhHe+L466KW^<>&~wL-Kz6(SM(M|4>iAr2f6tk@!0bRao>)4$M#@n5!$DCn6slI}_kI-v&5tL~NRSRC(ZzDVLQ^RYSu)2TSr3H(_c+k$r zAo3V@M7*z3?S-)suDH2Mj*9FP3Ig092xuYk(1QHRxn!x7yz_*h5QKVVPEcENRBwFV z9L)OmnRtk4sow#plYI)Br?JY8nU70w?{j0oNrWg>c8-6!H*?+`h0G>k%!&V1p?^+b z_U@s{rWed2B}=Mo*6&x_`x)(nX>bGAydIpen8+3`Ct4R%fc}X!Ux$CZ9%6fYq`4?C z>TwbH_w>a)T-g1FBw=76Od+{EHle?GH(M|ot-HO_i%BQ_GDPh(-nsIhXDc^59P8_- z{m9jJgW@+1)#8!|bYQb6sjyVK=KmTE=mDzX<_VQN#GT%%D#waOgg0dM|B+v2a^d_f zYcmOHEKH$B*}J1jjavZ9<}hlj8rq(RYsLK;qdKrc?+Gxwv6%bw<)5lt#H(EHYiSSs z!yx7EhT$yjvgiXJ2sR=dySiQ@41o$$9hc(iOYVxlXc`Wo%{L+<5wpTb;K~o>!&NTZ zJM1#}aFwTvP8{SW6XXliJfVc*548#7hGc7D>Vm@_M5NCZt3|pSwFd?PKZ3Bl#$3mw zdAj3>`+d9Xv+!qtjA@FRzXR{zzGU?Ss5Tu0-7pI9Xe=li5=&nN;lWO{uQ|HU zkhC!zt2KC%wYJ@`(prNMp425l$OaOeWWc~JsEQu&i``E1sDaCsw>;RC45m{kE|h0o zen2-)k#fpi$YdxhH=J}Pqj*f$)usn|*}){p2}D7knHOT zv8++0%ijZ(=z{cqrnl~4>Z%bVX&oqP8yKh`<%oDOd3L0x({niHVVag{+6Do%?EEy;H8!sxh}x@A#Mz`rg8QqkS3(zt|Y+tKyjK6 zQh67EL8PyP3F}2$z0pL}kga6+yrZoTsWq&mW$1A*c|>TD=s*E3Q}njCyCVd!Lmqgf z&^<{5VFkDg^xZ-0!~Pwm#SDrEh>u)@Dy)D5ZOM#T;U`1dGQtatTzl}|2LfaCf9l1o zV%LljjPk=g#GAwwA4Rf65p|d-b8{-pvI^tJ^kS ze}8{U%wLcsCDC8^L5-^WH6C;nhS`jT$BrccM@(Pj^j|wyph~rtdlp{VMZr!IgqPVj z3taKs06KwmV)Xt0DK$U*-S(@JPG?0k#GEhmlcr^S zU}3-d->yZmMFR~>a7fA%uVHA}|Cdy=qCLI~n?Ok;fZx*SHvW#-I#S|FU$1PF5h*v_ zun8BvBV%tZE`|#GuJM>Px36zM@|PmnDs&MSB5_YN7nR@5E(sT@s-B~yEcCl)w@mI{okup zecZ}te7La7{>A~uGl4WooJS-41=X9*&T|9(b5g&q62{{W zJH2b}X(q+De07$X9i@+XnB9*_lu4*RYYHB(@DHd^?L{Pn3jYs-_<~&^wkYhxDfI;o zqWdBaMRvy#Zzc{)Q1ZXCy`bf1y3N&?GC7>o`ykXAPX>3oNU{j%u>>3}{jADCmCr?UwX;C5ocl!$b|HM6}=wdt&$0_}Ba3xbJQ702T^U=QzLqnr0P8^y1PJrTX zjG6m?2GF(Rb=U;N>L&pEl+s4_e$SVo5n9q21wfKH^;gITz9MubcSn&AqA=0}+L}dB zlnr?*2EQ8U^riRj%YpVfm&==!l_}jIkv>HKRkX+tK}Y<@Ohw}I-y`Tnvai< zd9X$j+HG1&E>r+YK)sokRVRG3vK0ehP#HAIKVz;_7WTKCy6hm{;?XfmahZsA3$5zs z%E|=Kc~Td6h)y$FAC})gijQ0{boIR(dnLHZ>w#(%vZKzfQhhFw^{q@u<=}Q1oLn9N z-MFSC`|G*`0WZPhc>f1R=EfiS_Zm&6DKdV^6{#CBfyu?P5 zh!B<`UoT7f01EMhm7c8|c~fBdyrT!FnwD#V&xMgNJ8s^&sI1J-)z-~io1as5#}rff z0jj}34Ir)#EmY@pIHUU?5PqF#zP)Ia0tXoXlt^>m<%ax|%%yu*YvpI0S zeQDM2=M5g2i9M9mNl%|l*W!#S<=foR$8jA6Rhz0V9t#-5MUM%5@4nnv<&sbAysX}5 z3sNgz`Kc$YIh1N?7h3kpPkhkOp~P)=51tW-Su-Oqg>o3e(ActYP`GN*!OS`FQ3uvj zi_B!eIU%6Ml2*gxj4>R=VN+JYDI|(;J^*Hg=hF#PoBY(#y|3H*mqL8(a=l&kdD7Xh zdO!2IUTyNWQM%L?=;uaKkIwrKO&T|HQkf4Ovq<=q$!7hwa_JpEbky7f!U>o2t@6df zQG5Pybg7D z>9k?Gwvz4B>UUMEpx{+~-duM}v)HHq(U1f^g=JUAoT+PUUHtyuqfV)Ygx@GC;ihPc zMbXr@L^ki5%(5>}LQ!Keyp6MV)cvE{RWH8mNXq_K7aVIPiyc}^l7=>2eq8Xt*4A>+ zV)2_r|L`8O_-Qaue87=5L)jozS=Zd2D{!xv!8;ec@Z+{SOlE85-0-8}g7EW3B%+gC zB@>|3L=*%K+TEAMSQ7M+nj;o6wS~4Dr4z>Hr=FLG^BN z{X7Ow%8qk!;nmQPNpLv$o6J*TSx}B4`vV|y2XhE8Z*Do{O&T-uP$dU}{p%*=#7~WT zuqLS}9LD9U;&Y?Rr5aG5OtJ{8zD}lQLxXh-YAj_TY882%h!zDP)Ccv^t^K2CYb?(G z;`40imtEv*P4RdTK(Q#H5IA9WnBzUoX*J2`;${~&_m#djocJOl;nOs6=02KBLm8LK z$%km{3q&%r2mIlA)b>6s*vhXNuvZJ1VNTb|a3(P98KNIkyZ{}!ZJRd~w<%4gemi~h zs`t11z%ve1+0kzJqK_}O6^jcrPF)G>UC7-?0<}}PkyuX7AbR~5F>(hiy7DKmZD5>3l3n_h;@&&jhYalxr&^ZjY_D=2eDB`u55;L8)4?H}e8y9W zST55%8@}Z`8>!s^YK%$FD$5N7l8N^W>nmsL<**;jdUB{|rNi;F32o)6&rRBFEFBJ} zwj zr%lJ%mRE&W)}1L!mW`17!~9;6fjiOMpU>%<8~PV3$YD2Jqz{62Y=I?P`;(G>&m?e8xm(Mv2}Mm zd96y2pfa7$391}2)1OLZF6GA`v}%$QTUP&5=7MTI87s}rheKeEIgYecO1&3GYKtri zIvCBF68z7GIl^&zJ;nLdIcZc2-O0{K^vS^9@K{9U8el&TS363SU-Uv=Wt`fk@PR-! zPuxGPdY?r3c{8AnQyU2i+*Nq8*3Z@IiSpT?{jIIRCHwoE>d#n-;=U<>wm9@|`w3mc z7I)dKk&#bJw6k#2G1O!f)NFl zfD`j0VOmO8iHZaRPrdGCAfCB`-6|ghH!i_od(#Wbww9;*#;++KIqCzlSy)NQHL<}S zM7PCy+5?QGg?GtC-X8&7)0!`==Nez;S1gTMxIiO&?!jKB(>{ze5N1f_m2)!tFpw@x zgvOh;q#B0aTtH+5n%pW8h_caf@cX1$i>uFsH$c}>P<-wKY8H_QF%gv%X~-3g9WwsA zjf`@kjrq%O`1VG9L({x4Nm5!YWMLGQsaQtM-e^Yuv_%63uC8bIld|u2)pb4hEZ5@d z+D#Cs6z2?7*&FWiBq}rew@L?O1GqM)YB@hw=Zng&{D8j@13m?%NPdB`LnOc8nU*Yq z2;jp!H%>JbHH~(@YGi~3V_ppGT)VaRe!t)Qh9!0FB;<@MPc3tfOT(EiZg57wQGWY>N}%;Fq$ICA zk}zYr?UFDhb&viZ+sdw{Xe~jC1mD!CR|l{dAuFez&K9%>*wHR_O+ogkXb)6QnCQLe zv!JpR2Y;RZz@1HhJJ@ddyR2&Y@#M4uKJ{~az0rz8!k zxPSltcD0XmpKWe7OFDmIotAW>71jdI+fNm8pz?TUJ0JA6xx7svHFA+)L79?0v@8&b z{3Z4rLB6$J?c>Jh1BWM zqq??$Zh8@^UEteN%tEm-$by&pBX{Lro3v|%Yww_ll>Akaxh1BQf5Mtw)Ij{Nm*ok6|{(A?-&w!a9r*D5LY%SWE zfB*Zyp(n@e4SU}@H{`s^us#wd-s8qz?w6-dn65r$W$O9`AOIEPSCB<*KPhgeO)=!P zSqQ-j84UdNixu*Jv>)wX2K)tCVT2)32Mj@3jfGBQGogxKe%-v^t@lTVva;pZn!YHX zqkVU+lyLNHE9YSL#|N;|m`y27Z3^B-XDfOx3^8xXSdbf@iJOz9=rjn)hLiPUTW($I z=2lB88GnQYjxbmn4ss{xP1E-eZHaL8-K8nMS*ewS1LA_&LhV4`N|Hf-OdQRdrt{0h z@hR)fclV>5$bl`i(6oTS?N0fj106ll60uSk7cusuoiUnPpOo~wK06=t)xN>26!p@` z300Md$9~YDc?dq=E+R=}oBpE$pxTN{<`|Z94CPUP)3}r8TkRYC?BtJKVZ<^a!#$>?Bo z?O3Rn$8aYcM6PEbD(bT!w>-OG{%j`i(%ee#*kvH>R!Y}Rcg=hSfPd++ufF_cv3S&E zv(6xNlhgx#qXB~PjEmxw10`wQIDr;ES~Gg9V+cPJx9W7FTW4mW!3tAq-r=1|ASd*wr4?8L=rP)*kf@S4=+)^UZdFC+ z5Gy4CG4GPO-csJB?2D~Qt*9Nsrwj?5(Jn-rD=S;Lzd66^Vr4woQh3j7=Yr%enOOexgOS_s) z9!?ttu4Uwn0gK+`gjUz)cAA8(Q@|Ad;uC3t*m^G_AT~Ag_LyP(n)roY>PrPsItuv^?!d1YXMYqB z8i&Fl?d-Yx_Nm+o*~cF*VBm!2s+6T+6HtU}%B%W3KSf?BE9NE)CsMQq2sv}~hP1gB z4M`)r-Ult=?Q0P5OIbX~+T*tZRl>W2Y#|Q>yW7%LiCGO<%1)+XQuUKm1c|%*Eee|q zXNy0mPeEhrkE3Cm+D|5HABI_cNS1gE5{pymJJ8*P-<6fQf#dGPqq*p!RiS~NXC~_G ziY%Z30lWTwb=LaBf2yp^TsrP&7_YGwqxF6=<7nL7MHZKA(`T(+$i_Uf{I7&>ZC$Ka z^95+MG8k1-{jf%h#2{F%D3kbWx46;bk~H;S-)C@53CU1 zBBqohI}Ux-%szPHE=yo)^i8B)$zu>wQ&jA@CUg3d#o~e46oavX+X%Qup74*9FeQsN zL!82m^UQ83NjE#Uii>v&(`KxG(m1F;p~TWPHX$ct$D%TuL(XPDi%JpgaSY1|`I8aX z2@DkH4EeM-AOyrl5jYX`RBDCeox3o@CP0UB!TQw@agcc&lVTDE;r(^(mWO zs@$rkDd^D{ZF+6EL=&j5`Sm7*>oA#3m+KM~O_Y(R&Yh1s5L3PWN4462%U{;NDLuca zc$>J$D-7p@ZlYI+*C?d{F(BNxB{@$6GR+y#SfW;RahXC$8aff^D4k1rQfiP7diH8u z#vs@L)=9*)k>{K{NU5nhw<=v~xQ%o<83D^rWBek(Ln;~Pl-LbJ^|k(%0eiAg2mrnu zFv-mEm;&C{`HD(d$|NrDXsJe(KmZg{0Y?)F_T(ZkaOx}2XZ9lv`l9!9KvYnlwoU4= zflG=km_-Tdfn&mzgNFB}O>=6wcg5~D{~KBKPivAlEaOqhJs!nrsc=Kg1U5)Ds-l0b zb-?SYV;>8m0pJg&G6l=4wroqHu#M_RfOh87V2zj^c5rWV{&8rZK3P>Nt(P|H{r~KB z33eg8ej7rEv822tRwAJ5OBAK?8W_%0wiOs_ce)2zo<-8)OD)?EQ)gQ#D)DF7732(? zab}sEM?J>Z$>cFNNG1TIUP-*Z`j5s-Q-@Uiwz{mW{@y*slB01}jJ%~#7~Aq<^8Re+ zU_NR2sV#~p`)aG-jjS18oY?qH%H~sjPEO6I<`^pOr#ss$ ze7VTdRtkH;EaP;;cR&L4ZS`^pJGUMC&)(Bl7yppb=5-|LJ6p}xkSXFyx8_kA@C+dD z(_#ZGyT`!2h0av~8HXj4wyZ7WqYkBa*y0702S7&C?ohoGBhU7?H>`LwNciGp?@uHB zftt-J(|fvZPQmE4m2d$bm(V@y#M_A1xU}wW7)j{y)j=WuY{Y1AVA#s2ct{!^``PMh z9XLEpDnG6F(DbXZDK3&D0M8D58RM;Q!K-`Z55>zZ*<(0Kkay8?9BS_1?*^+@=q(Nd zD6*d7X2J;cS6R45p?7(9toE`?U)v8R-AWai_9jv&$vW`{5qVA8XB-5XD_P+{1Ur>@ihQ}A}WGmBYF_d~Y96lY$sz=HtN-ih)|mI{C{Sl!BVT@dpCQCKdR# zCy((B*U_o!&HHP!%dn&I-`Z+Uy%XfVgl`{^$>?z_d$|R5Y63by$G4pemteQlrYOfX z7;Ifu2ihY%OH`Z%a({p+k`Hy$-0_vLz{~_TBSx88_!>S5xK?PR%JkCs#&@ zow`ql+C&TAzM(zGwcbq{_espS6Kg&XcXr>TGf5?Q(m%ewJn+_m3C7EozWE|}fv3(m z4K3&WQ!S@&nm*+pp21m54qmx*ihz^fZ~xIBkm_*>|6kJU*x?fZ!@y|yNq zEn3vr6t7g({>Ep!OPinAT?&t90k;FvOe7-p9-5KD!weurJ;?4X-)X<~myGr&zr2mL zbE!=G>cg=zm?&BeVEF?K5jH5{Hdr_&x&ByzjfX~k@??lCeaoUbQJ+7GTT-s5J<+-x z>Z$2Nj!*pMib|MyXoMCEEs<*YlUl`Z2d=u=ob(j8uB`Yb`e=2mx(fs!rZQ zM_aQ{M5(bqHgEfe;AEj-qwX0ZCIy1CX$RhNY)g)P;dtj6mp9HjZljq|@>kZKp~*{* zoKq7|UO?Mc2A(dS963B_ly;)08$yD)#vm8_CqorOfYNHSkrgPp1^0IQxIVaZTyoSZ-SUSE z{`}7ayc>a<1(6XgddLU^o59SzwLOa_@L1PdB<_vYuw3xhB$Iv19kk} zzlkrRGMB$-x$6`C55MS7WH;H5f^!2EEf!m2qL{4Seds}6f&2@G&VrU~4pm1~cZZXonhrcgLO5tey)bAFx$m8v(8CsuWD_Knb7 z3w2IVgj>c`;2i)Z?j>=)1qsctUj|idXfcRh7}5FrZN)`?p^7G?211ixd1Z<1a&PH` z#bKV)#bqe|x5KE4W{d&%!n)YE&|$l+oqx~76ht50U1w=?f88wT5_h376UYZ7WRZVO z(%aQzQ55yhNAdry2Oxd4t6}C3B(c=$+XHs)7D8KAiCtH+8)bLOcXv}tjd=(!t8wUV zE{w^m>fR8#L)J{}^egbtpnUm=)(f*dqok%SX=dyP3>8|XUAi&1_YIEgYblN1c}7u6 zHa+9!9uN;|)tENy*EbSphA3L=XLIodbpA<|6TYEddzF9xF*t&q zH*%(;nCZ!rSi^9kb_nPi?>@MRI8|K@_F@}DkQR3mzkttp4g6{}sghvOOz=XI+zhzK z?p^7js|8zMcB-A7r2g*N)n#Q&vqPL*CH$ykXmwpOBmHb^Z+9%on((MXF+Ujf9=Y~$ zN7CR|$Cpl`{iUt~_eeDtf-jvk4F4My37GHV9<()-xSx9qS8hz(1M#{>`6BxTDH>w) znr9+{r)K`}`+r!#Ph$>{La>mE$X^W`M>W;2VHCfYPC*Uo{4_7G_dwAy%hKVAH39CR z8Da=%-RAD%rr4MtOrz^FQ+90DlGbT%`T{pA#hDCsxNYU=Ytguc9u3Io{<{(nUAJzn z>&@N>b<+%lVNH7pytv3 z{?K-rsl@MO)aL{I%n6`Ikl^)82?mImy|qDF3XV9S%pA{s#uM0A13Mib_hPV$+1A8k zI4}^Gj9GMav(K}|Zj|?PtwWw)zw3M9fX_v{Ck2Y}eS-l|7oFny`Hmzhc0yR#-7|0sjwYJx|$=dr8>ysL6z9*;;{| zt*~lMeUXiLHageUmHW$Qb`u$aJ=8q00C`(zVXG`g7K2I_qPp-79~jHdApGFUr#ZOM zitTr7D{GIqn&{bkapy#fMAzq;i(MtOyeN&pOSpt%;)48h057_cFbv?I=xv4;pw(J^Q zdkl86>#ZS^Vy|pnv@_i0x$T^|Mga}U=Aq-})LuiJj!(DJY>lS&lo@G`D|Y{Z$lf*gotol-^x- zJSMxs;gFK*doLk&)3L+V)`iQ)dE+Oad?JifMBjBQcho2vmvOeO881%VT~|%?huki_ zi{HH*-*;`;0~1x(;f$j>gH;3;l^f~&L|L|U*r@kK{lBYHwVoajw{U0%MfnWYi1$nY zP$_f`oH(XTpZ;K*km1R${5GXgCQrZ%%|wES@cszbCwiRA7^Yao-T>VpF!1dAJxZ}z zx0!6EywW<%ur~CY`uTcF%Wrx&^@*V*bSO}C#@{ePjFR8F_XHBDCdJ^oe5R!Sl4~^& zZgMmL%2xx`rsD+{ccf==U*)tAqypI6UKXD{z`bH^@;9jHOAw24; zR2Tc4zxueNjXn)U-8R~@4bdKX9J85R#WiA^r8{lhlHtKjfrFpi{Ny&Rq2X3^vw9gVPIehpqWAB~V zTgD7gB)zy3#h3U06gYN29T}A@nL2lL6B`L_GqTz{;d(r z4>>R%72(_2W-%9R;Lx#emU%koAH9DBz1*n@ik56e$3nd5T&Tfn@KeXlw}SbPa(~{w zaK9g0t1m8S{TVcL>+Yjys!$3=Gl1YM;B3QbH7y5sZnD^1iNl!z0_1a_^o_hTAn3kk ztX+Agb&cXMjNY>r{#;{1y z4a9r)MYw?Z0Nu%MhO=?}`tyIjzUEP`xaRTK>h2%CO&nV+D1cP$UOJVEu)yZ5lR_zF z>CwDtA-L|g?ZN-NAN|q2>aLQB9gyUpnjWjxfE@fE+^H{N{se`48QWRg}xcvBtFODUiofFjF}^M zZ(BEG%Sf-|evU8lr2}mF{1)RM(FM0UAd${W?cAiQ@ct_G@5F1@?m?$B*%L{kWVoD9 z_R=E3gk$0lgYSyJxnr@@c54(iCQ&v4`3g>Aa=ftVdPg=Dk-7$dGtJ9`woMANb!(m& z?eFi2Q`{GY`(TM%_epBGp+atKoMs+h@ae&?67jxS}K?>gv|p%leCg6Z+yAk1!Kn3p9fO5dBcN*v)_BixHW$lJP`8~o>Y=+8iBves z@>fYUpmi~NmP&L?=!qkmuxsE4h`=2>y1N!SmLoi;q`|K?ab|(vn!2*{t`U~$?IG50 zl#UC3c5eIgiF3)dXO|X*yG+h*|2o`7S0eE0lezeb#^-4zgTbpjS)$E|{;zb) z?(7{aE?fL{^!Ls1{_!_NZ-qgnhdH&V6iH9BxR8})d_J43Hz4U!Mud-<<+ai}++~n! z)y!E%Iz>UT*5#=?iwttae0Meh<l;;TUvS?+U45FoUgyGj7VAa!2WT2%WgI+ibgs zhX<(~yd$1rv8$7!9^^(O6!{VuqhB4B*2LHt=mOyi^eyJ2F5mqjr{aulN<;AA*coZf zrK#%`9Z!q}i!ZbC5vz(`no$rGDW5wmN@u{XLum5?MKY$!9A{)dp;ijt6q3;Balu>0 zWu@XK<)O-4N|+A^gd1$vb1t01P$>NZv!>Ea`?vCprjz*wCZHH>B){5%7D z4_)12qC^tzX0hr6;ncNly0y4}gPF=l!cMx-^w)`~UjFyAg>J!g`WVDI4PZneAoWz` zR1buh;o+KI0U@1LO^w(GYRwGo=kEJ6uUNdDq?lFLj7Q&N609-;xgCCFej9~fTUPs9 z<_su%uvAxvFUU0<>sO-3BE(9-ss(LrVmq=eH8iFLwLs1dHC7F%=>jvMZIs>F&C~#% zZaBvZRPwL6mKP^V(IbV&dGh^1L#k++AfpdAxZ-c`8Pe%^ytg4K$v64aoW~}rx1g3# zCzV~CEN&Ac`<>*Pp^y#aic*TV&Pzf9nTiR5IIAZczF(Y)d5<1HhR2_Yj{ZJ;l}~QJ z_VrOfRX}un!8O<7Pab_e=-gomL2|aDKa1Kk3d?~CDx*;CBU_BS`^f=;-WUzA!U(g) z8DsRxt-t?E?6AdvR>M$Zq;P&kp(Xz-h~jexs&4rV%n*~}8O8YYfKdI)QtIJ!3+AIm z;a2!VgdQvqW@6C8-$^Ao`lk^UITtaYa8x;`@NQiB3)Rz$u?;ifP$)_S9OHk07=~Zh z)2I!45+2_Zl{r1F072$tDJi5tev<~IKckq0xdq~i&8FfS2E^MUoRQfA!J3I_r}IjQ z?g)Tk(jf&6B3onaFrwl%0;@1J${9C;Mt52R2N3Zga3^wW+9&^#AnWT4>7~bMKDwSc z4^J`P3c85J>7u&~C>(wk1|#}mnVHEA`jFnB{XxkdsH(!3ZH1HvwC>0MzS&>1N%~UNO-Ht(Cdb%3992;OIuu8-x3O`Z>G?#rj&|ha z&d6Y#09J&UTkjL}B}iKgV7G;;2`N4j^tcwO-3$R#pnfu!aTf+RfluRh)Sc(n`T(vH z$PjB3Xlce|Qt*_9{@#genlCXi4 zOH_D(GCFSVfoa6%weQ=aQhYQg`c1JDNx>q@;?qyg5cJ-!f&GmY4mf1V$7}()XYp_p zoU2H#8Oy}KX-VB((s201M7B*h^5EB%Rl$cbI0B!56d38n&$ zvHnhis9m)2gD@Lq7iaW2*>0eVtY7Z{T#$0)UzRV=eO%-}K>*D+%9slEsrthCxN&S6 zD}V%l_5m$5xG65!_X}!&yy*)kT6hSUw9LE`Ums6wxK0`IFH4tunPKQ;W?6qKK3{Ec zux{BD+GD4cF!L7v;Sf@gmoaB;P;}Ap*YW+eZBwVuI^LhM2a4v5yplP%-!)FRmH{X# z@|)Ya_hZd_adzdutxr}o|E+h)0C5qX)x0Xi5t2KiesSfB(5E@#2m`a)lBj!j%bC1e ziju$WS-6$MXdv?6)U{A8#8?;LJ@al!;N2y+;T2yl@^ODOOM-xn4!AryyBJ!NnXD&- zc51-2{i>wSEVYWT)m^}91 z#31)C-y;}~=%4NcvBO3bkz@Q*x$@=WlCDMn{v%~m>AqqU;8VPC?*Ii8xDr7du3Fg5J#hZ*ib6#>#V;n`>5C|Y=U*~=|8<+ zpV?`V*qBwcx8cVErJ%Rf?o0WG0d0R{5+BbotLO+8p#t|i?U>_7t*wHF3iX}$Jkb|t z=hFj516rHjECT3Lk+FE>A@OVx(4Koag4X{=#W{q+7^T1|xo%RhX>R-DV zSM_9Ho~c3|Sh(@fq-Fb2{M{fq{W?&UQ9{*L#4}kWvPwh>AD6Dc0z(v z!!YR%QD$h`8)VXQ=Q??^GBM@iDY~s`k+$f;S^rl*|(V|7G>TIlWKe;T=*Sxr`F+N|< zAxZpzM!l(^MEDGgATtk7f?bsS1pj_F&%ewLX?Z0Nkx1N}H->T3;JfGv% z6KrIC6|%3FFvX0a%?l^)Yz6le-N&c(f|{N?X8-i{nrmO&Z?@RE>~`KQ`Dk$&zkN)A z*(seHLg1MBaP@Con*z)47u}^5&Ly{-A8ASYp@1z04e`n3RBRhGIe?yF6fSppdIXcp#Y7 zh}{N-KdlDbV8!C@KoS|0Y4ZQ3-@)A^{x z7L6NB*nsv|Cz64~%;w%yG_aQjqCy7wr7!N@WMO{HQ?z&AtA!suibH6n`PB{XNl_Rg zBr*#RQ;c@EAY}0n6ytExTP5QwSy9iQ)xU#a5nhE{0FNUOS!J{$#;MAvS!S0w8F1VBDf7Kz6pbLD8G zp@IH;7=Rq#;?`A$hq1I{@Y7T^+k_u`qTUC^o^-V^U*mFIJTPS>PUhl1s|Em*;E_sf z>-!rY$n}7|XKoI!;Ey!-_1QxLGUn0&OPhjqv6VmjFbW$c8_ba4!bDUAqUZ|k*KGUl zP<8l{1}{HduaxbLL8=czRQYDLX9>2T{-_JXb262TwAf%^JglgokG7%>9;ZsHiMY5p zjvV6Fc9(F51NgfiLdrjX|Jef`|3VA%Z4Z7}V34#eF=n6ts_jRTVrq2wE;lkxz+8_s zw`4rx3~qotCj_hBR!NPvtlp?{R7F3~w_FILM#J5gG~WtR6e?~hijEszX|?gtGF@Rg zZ0*E z02tl}@-i19zcI&`o^N$Q*TIuC7q^-!*46C~oKt?QmkSU@U=Y;)iBBtPFKkB?q13Yd zt(270=S@tQ{>cBuUVvuYJ|E$BLV>+J`l_z&$P*?%z?C#zLj&l%fV4sQ%QH&g&RY3? z2bx>4FaR0lD>dhB{-SK;sPhu9AK34@ZWd%pTnWexDMb(6u0A%Qx2^N$P(OvwR`%#p zUE`1@3g~d2TQ*hr{r<1X@!QieQeLm>b%VPlzO@s2gqYxCwZHwWIqiuA=bQhAP0(B! z2qbeC<`inVkY9FDGJ?yj4+Aje=&<*ch-%xTiys769ZF zzvbJi%7cztq^Ek+m?+@wT~9gi&;gM$n=0(JKui>pmeA9Hg+TJ8wR$WwXpO%J8Lj0) zH{fvz6^HgZbst%#K;M-tF%~=FDWgW#qL^F)Grb5QRCWtCCg5&+|x0~iHBf}_Sa z_~sx&=Qd=9!;dfBaIX806VJ{r_88t*l_TcNacWF=Vh)RDBo<=W(g8w6_Pq{&(O3q& z1JUV=Gd_OTd?fl)Q;eU2z&YR{q|qoV6Ju}7P*=L|6_JpkIh>DNs4wN400Iz-4-!yh zyI>@}Ao3z*vQC@IkrfabsR6V}sPNc`(3S>y4#(=&7C0}Szj}7L##=J42fP8DFK7g& zI>Kp0u>0zG@zG>ep}0{v69N3jR1CA98|W8|pI!RT8%_t!*av2KQ7+tDGhq@e+b_EM z8{WjPshA6XX^W^i3~aF#1hDq-(W8t(VnNW%ha(ge#f@qI4`bf} z7S*|ReR6YSt|ppTutp`=01G!36tIkn4cmwmQ51tHD%eo5bprWxW{A<1EoEh^y-~asoJkR%hxydkd=A8H4@7`;#wRX9g8U7Qr zJ~ZTF_V0E{w8PFFAu=g^7{{)Dd)=Yj1IvXH8VcSmgw=#3<+)CIaa;cQXqd~HAQSJ1+D>X%%|J*3qC@HjAL@KytLP;L26L23OZ)R@ z^mSGE|cWE^GHsL(&OZ0^e9NK{@AWQw5 zFbXQcS!D0*gwvl5pRq>6EF`UqIg&F%U5pCl{3O-Ix-d#E?BP~ji7riD#r`4 zsQt~&&9ju#)U=4L<@O_PHk_%!))~9K>sUJhJC?3T;h#>95K#)mZh&wU50Pl7#_nrd zUKJH1YA5aXxYg`N>GRpyRb@4KVr9DgiOrFMhj%pM4gIu0MbXL?wXTj??2`GMq?ms) zdJaBdz#113GS$b|5UOE*MI-}&*{#tlasE!0dx#= z8~27-dq+mg4SfA47ay&82hu`(PCnGOy{Utuh+-vDzwdCCQrtHUM2@6pA$6u{GW}&( z0>n%<8n}k3vO=AS)}1&caA``CE)}|jfItR8k-tz`BK>JZ$0tlm=t2t%+P2>OGizYi zdLN>=1U1f#fAG}`>)Yh*9T0(LU>QT8yL^A)x8MfkLo!7m&5WR zd^-kz+#3C>KM{HHrDU+O_j7Zz`0o{w#08l6_JODKJu*Gf##avun?d+vqC(avezHrj zAv>mv{7`yvodiN+rqskYY*>v4bpa14%+FGMuBoeeO6*#a+WMoXy=nZYLCIa+Pb!&* zHkRbjSTHZ?8%xLh&M^@fZZ|wVFs*`d z5}e77xG6@=f;b8!d%BI#ut_04O^WlcB5Vu4w=T)R-ujo>dtE9{pKkaB>( z9A&y?;d4sX1mb&V<-!e#5Onyn8^TE-3fWZho6M8y8eoAFWAeM=B%^l(1s2ngrpkS* z?AkLZD}8J%QY%(OOmyyFlVADf;b;7rx-N*OqiD^JtP!9i2m{SgU3kBL`pbYn6s8l< zu*K(B;YNj>Iu;wu4vfo5I^Rx%mi1A@hWFz)JDtfp3)4-p2d+v8x#qlQoQ|*|k@}kT zt?jIB{VRV}suN9ri{W;fRWBFEqrpSv6bblr{D=$>dVA#LfXJEdcZZSfr7M0x*IUlz z?Q()G6&PzZNBbjAX<5gOc@{9~VeFFcJ(|H-`Fox<%sVq-)zpwlQo2{qCWEbS{a4O* zYt1uHtcs7;8Cd2J8Kw1EK0~%`EPfkMGd*eI&9`4z>F$PP3n&x zF9RSUKhn08=^E$~r!opj<`%9kz}ppVyp-jQPkMqgPht7_<$z4X$$dP&o$Op;f1=M|vmHe7g@l&Ypv)y{aE`?JW%xX?t*WwTzFSjd0RgDKLA&YpQf~Odx6;#)tQA3@?Pv@ z_JLr6I?}GuvM%6pE&g-M@oD^IO_GXd5aaP#xj|WIA*0dUenKu3q7ImS*zK>8$b`)` zeRgwK@OGv6JMseXMEaB!RVGZ7-4|Z&MZY!`KbdNR&w%$XDuvE%_aN3`$L;iN`K+)g z(z#hNWzDiBT-*`rNtv2b99x#kyo4x8lksv~inhcGLH0T|+%MY#cl|wjHyg;af;2VE zze~$s&lDvqC2##3=qP$ZNJ4P)0;tk169IEi5v4YI=Z8W?o{G*E7V4(J*I;9Q!w7@J zor$9_`a=t#lFdXl)sTwR?9K*iQEAtc0LiG_N92P)>85CzkhayvWN zoqNmY*ST$53Ink^!}2H?&d!8KP%sWEl0;3KOIL1DrKFfc-46QXN ze3qSgzP0wIN%`NK1VC*w8ykVmPE9?b{HNB%4S9l%>2; zM8@;;r@u(T4sdxZ@|~>3Dx}bB8+(C*%Yn15vkZeuFUE{{0^(w?rZ@561g9{8?dhh5K zUm+{ff3gc&8B(kWZ{+oPN2gb|{PExwLq17&bMM^-z09+n&TPB*e%^xj51i!a_ zE_?I^h-mk~dx-Ww2DXAwtHUV6@=lsu0A-ofdmOj%=i2#4voq6ojOsFWi}Q^8-8?p5 z771Z#JRjUda0#nM!8pp3g+G*|T_WW_j+%^MpmWbX=(eD&l6ILAi23 zhNh-QtOBkz zP>8eA;fv^J*1wZCr@I_#wKV zACSg}>|%dHahry0Bxe%h!)5;}-~q|BpHd&W9S8la5B=28J`cvJ6PwTBU&2aHeg$xR2W`_W~*q*Z<#@qvk{8-3E^yCPpeLt-g(0%KY!C zm1SAo(wiV=26E7S0Jao;t)#6rIna9QD&PQI7(dpjjE{AYYe!8#+Il=dWCpefB#;Il z91(OvIRnr2F8#Z~W72lYz5plZkm#MLP=CA4pKSEKop0478q(b&$39{<- z)N3kTM5$#*T0x;D)AUy2?utiiLM)Nzi6ECQzIfF7~31Hbx zu5xFCbN>0yXeV!vIGfN|PMh>UAjuIwKw}N`k5n(_5Hiq%_Yox|u}X!}rG|1?(0q#f zAjVyJ;^D?~#O!I>LUSQ%hwZ+LW;ab_br=K7IFG^x6lzNX5Dc*$jk+;tF)V*wt1Wfg1t? z$)keLrsEj-lQnY^eiUm)`{WF=DN;Y3NuuB^!lhXEj-%A~jh7FyiX^xVU>WwKqONm< z6&w=Dd_cPFC=XkJjj8(9NDlf1m!LUCv}mQ}=8*fAWBVvtamADL$C^aSkMnL3f%XTm zPUm3i+??s%cTgvZb&Q9iE|sXx%3V5x^N1r0XbX=aJ2C%z)~Y{dAs?zQ2K^&jMTz__ z1D)_`I5%>XKrSU1;8%{3#7@qgFxSf5T)1FBas92Vd%_G4ug{lE7`yt7*BCh!_H%&^ zHa;i=^c8gIqHh*5JhIB9s!%;*LgpYtYy+3XZB9-H1hLVy(`7)^lnT?N#wWZVaVMl5 zoR6q(I@7KqHGFyT+L0wDM~5dgCvnC!lfDOBmB^x@{1#)gXt1Yb(N`sKK9)z#ee$wR z%+Be;9!+zM2pw6zh@~rpQ)!hiQc>X{0s8e&kRKffi3KBFgH}z-a{bgcSw03eXS%Ph zdEdOx{HbK!^~!k(%R+7v4pmc8a;*ml78S$eC#Ul>T&{tOP7Y>L526*Q)@*R%>J68t zJQTM-v2m&JK#esUGzXA}>0>aaZ}o+&g1+*_=m$E=%P!#{v^bO@#Q4=v7sV|^USAUh z9MgIzyTWZT=3`~TjmOMvAK*6%I>c;>gNu>#!juxIjag z?TPh&2~sn>12}x*_hz;R47*h7dyvpX-cn zR6KgTnM9bbyyZ03tRS&^aaiI{!ruSUApd@=*HowQJX2mszcD0R{Jk z*_Wz3>^N@%y`4WiW$Bpo?1wcgHXgxBCwCcXG~jvUjRnvE>_?lDEyu7tn$j>eyNA;M z@{Ai{Tyn$=ZtSLTLAUr7Cn>=F;T{tISpRO&3!^V(0+epL+NTMzYEr!L2C4NNYIpWp zDhJK7FN@-G3RyK6sBx5gdKxs~N5d_;cBNr*It0fFt!>zdL_yBk&4Ga=rRMdB4nA-) zsiG+##xrzcxyZ!@z#BZ)-ye}>BTcv1Jrg!$$~JwrcFl?gJJIN(HnDTWDLl0jum*y_ zCw1Q48F7p2h%g8Z5X;^WQm1>GZ+c8mB$-R0h{Ul44IcYDGy460^7W#cYnJ)DcYD0Z zoX@ka^heIo<1|BbDu^#ZdP40nJO;=&RuN>)*>Ur)3}kl$qBEy96m>7a^k-+AJE-e; zc)Qpx;aER3=^u3|Ie{DPvjCn8E^R#UqzSS__gg)A!mo&l{QdedIO@ADe_7drvq1ch zLHqtUP0gcSZ2V%Tga*>ofw&%ggmX%;a~cb{?@s*x})rUWW|(#7$8vusJ~ts!5Zj zW95ymdr{JRj19;<@?fYoOCTwF2@Z3wlP~dPJs!R$%#-frdyuiKo7USfWcrs@rP|Du8%MNp-{yXM2BK z;ylM-X7NfIbG~0DU6MMto(FKjXYq#<YLRa^z}C^T8Qsa$Yec@GiD<^P&qU);h-HaLc`&Xiabk zQTA+h2|EcK_4?>aVn-ezXd6yB>O*;7OK*UD&rFDaPYogtu%mtZL%h5n_Ekx5zws%7qI>-p-BR>%MC6{SNvSw;RH&YrLsCEs*~&MsPd59j{$q3bXwo+cz+}QUw(2$ec-|{GwNyJ~CVjYck)nJdkYgBO zF?pln12=t?9SN&cMuL3V78%V*JGsb_>W3h{zInN^3alufRh!U;hIIag=qZvzxha-+ z2Q;*pTWM#PO+9~Y=Pz6=jxR|F#9~?WxOmxy`_PsakRDC=z251InsNu!qhM`nuRnXmi*!81VjS(#iWowt3pX8U^Zt#=+ZS{A2W{ zjjzvBFFeOB zOSkk{h^6%RB~MA$%Xz|t32#zh-xf0+S3Q66xesa1(IiL2I?bT61^i8)n8#wC@FMqCWlwMdt&SY@?z3j@U!$iy z`N_MyC2O7Ee?RcV!3~MwjLvs!)q;J>^iS82gxCh$zfdJfJhu~v)wkTmsI7b>7kWI| zdG_GherdonW0xF*A_m8ASSC$;(XB4Y$JfMNTLoj?jbV8UUzD^6NPLqa_i9^4k>kAl zMTH4^7*_#L*8_D)b>TL&xH%+xBxt6xEek6rX0ExG9GB+9SBclkUl6H$<9Ql8uqz4lb; zO48CRH-{u)-Xdz&6iYhkoUJ*q0iSaHj}3w@bvp$y{3fDA?2 zmS=Yzqjg$f0#VjPkKV|iX<*iQ6HkA_Xl0-*Lk_?kA6gg0aBe~xdpK+qX8}+Q?z8F^WdZ0T zZ)~0aP}n2Yzf9MbpBj$|M6HXa!~V7(%=vfDp1{#aF9j5)`uvPnI5)cRy?1y2 z$l8@t{c@hwWs2+?O z58hVMzTM4k;Cu7}vR#T#J6(&Gd(4_oyMygVVx5>%Coq_=pnPFHz){qOXOuMTe7|84 zbRUE;FlNzXrjmq8se&a0%g$+oet%zOK(O?N?QTmJ5g=T8*(?aKm^J0arZKRy5($Rp z>s*@i7(}9WmW?T-8qMHn0uFyNI`Sn_ivuN zPDJfASy)Ze2t9bj^YKFl=5}~FC1#hmNS{Jtky;Qn6*E4ensuzIHa}ihmk1pUww9|+KDvWC@!AdY7_v%{|r|B%5PtHE;W1B5UPM`Eb(QMsn7U zH3?^ND46p$lGuc;6jPdOZ|EUKO)>3A$1Bi`w0OV5F*{e0H1kh0+>It1TJ=8Gw>QS! z5E@e+#5ok9N;RvJ7Vl#<9lWLe2!Wbk)e-Nf=?+^! z*EY&ME@^RggU4|V{-!ir_d;-$L6tt8vDzNUmC}2MuWKdR2X{}kN?LEVH9_wF*{}h| zVLTJiN$^d$*pZw1fT949D(c&%{BHZ;^uX(K`Drr)6lYq45JzHX)y#~<5Bj1ghEPyP z{32s=H{#J#YzMBvA-WH_*m{5j_TlY|VB{MI6vB^G(M*OWqhQHGza37qs^%;(|NCsD z(B%4(60P+CGE$+ljiZy`z;ebx@>1o}VN{@uN$Z<3E#gd6+AEJQsT}xu z>n6zegK)ko;~7!rZ3Jb4pR75y0?!{}$Tnyl2ZNCeb1cp(_E6%VQc0zF||RV9akk@618uBwuhO54cyZo=oJ))6fraNg1zbeX4gyfThM2c)$`MRoly zGq8ew1VR68vOJ*gCkak%AW(Y3#BFMQ$W1ayzagJzC3+=bwgU)Z^4td}OS`QXy)3@v z_2M^LD_1fYH;==&P&wx2w1%L#`nNBvF5vLl6RAK$A#K%<$9vM5=cCsHGz5h@8MhR< z<9y2U6J-q^$0~W7#5JXJ4y^C~wk$`V?;XdC!r;_gF_n`{$I9r`xruKtjtvmJ+_GwV z?Xe;0o0RKfAseWpodlV+xah1Qf{O#C;yN%1zYBou@Q@<*mY%JVm+<>NJisqT|LMyz z4*ncdN|uQ~mh>}}PK@sDUFMI(+o`(lb#|!wJZEp0KcxO`ETH|~S9Xh=!Ga%}msw)K zBKB&X5ds_6)j9f4BMO)m0|pRQ;(#(juk)E;5&gbj!0wtK|EBMU5S$}!TlxskM%1}u zzBQ3Au&1wl=X$~?;(`adkyOW?20GxJ69H{ES zi3HhM17h-e*ji;hpW7KH!~4tr0w_nL!Tbqx=OLu7|Hh^}JjV_xpse&_ee2@yTlbs; zIhV+zL0|jpXO4x1InchFsk8&+VS)DRE5!?4k|wnBpa09^tI?a&>NBjr^}>{}^}qdA zQEU1ENm(%b7Y3?7wBkExu13C_d+S?4eLHsoqVrB1W1M@8=Mc=pTG0rFD6JY$bxCO9 z_{`c`f2VvfPT0UA4l(TbwN(6$OmIiJZ%nf$y(mJSzpl50UMP%4|{tWkW^!- zX0ZFC(r6{0BRI79(oUkNmkyh}nK1O*<}ZX`h%jAcoLU>p8ixJ`5LCPGe?y9=N>h+I z+abZg^~LYHYRdWA@d)ObV*{RTWz4_1Kzxs+v&FN1bobyUZ<(_6>^90sZoBUwcW1l^ z$Ff(qomBBFv~7_=aYEI0Bl06zx|piAJB`>9+CO6rdnCU}@%LTNjEfcvYBAJXQ`XUh z3~STn6kDhn5b1=MIms8JNk)rc;_|eeYu>eKb^H(E9-h?}JAo4w;TkkeI92DsO2L)0 zQdEJq6hh)XY}zi3zA66-znp($K;U#DTriGu@E)WL z!_>9g@@x6{sBj1UiAoNFeRQ=u67hlFqm1E#`gYMPAymj!QQv(f6yY65h~8T1ulU_& zREV$|-;hWP(&9zeM-%^4TRl=mD{hfJCWqOwI=6E zWZB?G(tk33{x3-(JuPK+Rq1-VJy3W%d`m^`1SZV^Y~s^#PUXr=6`kiyp74c9Oe^Qq zyaVSR`{4#W9Zk1_d#J{u{bvB|W$aZ6V^TwI!b3Y7y~`nBNtmwm=cC6?T5`gYa}EnB zhDx@Y$p%-$j%F3boCn4}g6#(WM7R79nzloaIXiT`^&_*f#be! zGULeYTkHt7Ou$;Sor{Ht3BqWJqQ6|b4kKH;8`khD(Wv_TGm#o-W0+x_g@S4rTpkT+ z=Z$IpqJK0shD2nr=~|4~5?$R(%_cOXu{`l*=O!+LhGaju(#-DcA@-!ATBQ|fb}K>D zrxGU`TZ8E&-ZvC;qTyq4P|-snJChH!8!QnQ-~o!k4nS7I%D2PniX9!0bRvJ1vv|YX zoqT{Dk`adX@gKAE??8>yrz~`Qg5hI_$sZfdP9s>!>2ye(cjkplQX*#vA#f=M=vd6L zauA%5j^c@Sb^=I(&z4J7C1(z?wMqGgBK0u7|01ctNd73nl&Qe z5M&R!FKE^@O`HoyKF+vRy8Dv0ll(JVMk$k4_5p4rOypvBiexunF>MF`{3R^CwnqMh z=ZlwS@OUMSNO(f57kOZJGLl<*Zvp~C{s7R`rYb8*>ggrl^ZI|FW6*>%WKjgW+T{a8 zOaVSk|7q2DQ_}C18{VR}$I3{^@Oy`7)0P=A7x73X;z(u+g+lWZfE~F45a{jA-ogG6 z@L=hw0GtH-o_@+!86G&#G7oDX?6o&ewJUqCIUa1ypylmNB#3x;ynJCqQk(3{L zmI7~`?;s1}=#ueD2Vd&Bh{4<4(LHos*{ol1OLPu`##jhvM1 zAWFmNyhpKVZFsye`(QZ4*ytgO>I2HNop|@&13UL@+hS5y_yuG0oe!uy(woV`;Xc10N3N-kdyg54|RpASU_AY!gjC7dS4mB}e8I zC-MT9!~9F?&+ieb`)F54Nr#j~DEc;_uacg^$GEqJ>;CqPVnM06pGW8u-QVHg1GmwoZ_nh}QO`h*4>E82rGF=yF{`U_= zd2U1?%jrwyB$BGb{>QMR>4io8#b(2!C`66ogS8tr(qu%_h4`zG6E|TM3y-4Q9I{C{ z=l9Ns$4e3wwV`Bs%6CM4AJdCam7vjGNu7%6yee=$iHkU;25{aTK{+*-F71Vrd~Di- z0&9^JmKqAU*hQR%%MdF{4v-^8C3B2x0!P7w0I^)uP#8>A{~B!O~D5rq4q;GXXIK%JB$unikFcknd{B1eJ2<;aRq)m zKXBqU5OlE1$$O$5QP~^P0BT^8cTl0xO8NjfY(@>?s8KO02}Jq}NbX$SYFAg@T6Q{r z;q3u6<>iZR20IQ9oO!?Z_5}|^Lt2gq>}YrW;7?{Fe>+e)vg5m*9X4M*n7%ySG-&v@ zhksxHy?Z;iK~b}E1Nx^8IQFQ*&ijT<*YcIO%NOQ+2sm}Q%KAzEqc?BDGY8B)v83PiH+o8FDM6I%1M7{2)Pod_1d5jT~PT4619B*G&heq)I+^|Q#-k)_dT@8wlxnM zwwCF9YUYjZQxkepVnFGaYLw1ulR82Gky$ec{ZrA(26bg6$;IF_27;Y1L!Nhr!|G+c z*gsQST?Qu*XIxO%6Rw9HJCKLUZLA_@Qjko5j0>Y@FHrk+h`@c%f?;gty{qS}M&LQk z{ky8DH|9tGtk#cShl&q~738%Q9ey&oI3}mFe=-O*blHnSXQhrp)sVafv=U`<@>S*s zICavu6@k7_5+=uQ7$UvzXP+%8XcX`xXgiv<$)G!=pp+Lw8t@%WZ7`>|#`-pri9SGU z+J!y)+(9fmNf)zu*CHvaPOFxA!)+Px>jLhXw~tqXCF<#Y1(-LP6#IwPU#%WX1x-Q8 z`K(@r%dN_Y$t&?UW%)R{$-t{dscd573XY)|<%elpEmYi7+rO-RYbjx%WyI~uTXUT| zd;hmC{&I&C0zCzTn|oZ|)q4}>Nf>@msDvLh#>T>qKR-JWOe5evGvhCwB9#La&;95? zv`{#7lD5A^%J2RuOJgT*-H4CXSR8eXbXebZK>ykK$IetoLrF>*VLC^I&CWei_n@+Y z%{_2#*%jPEI;j1QBQ&a!Rmi3rW&;KcAZNyFFutCz(822RsRM><5M~GppR%ydu49zJ zSCS^xOVs+>@5!>jQa!P>233lS!XK8*hlulBvo;ZpSb^z-Q%>IOffD&Uq^D^jtxRjA@$}UKvokawU@L z77ArvI(Jasfn|=i5tO~zL1NLGDaB?ne}bhr6{dzQICZ?=R*`yZuVF6jp+2M!fd;%V zJ`w59L>iru=J58sayQJk)PIbB)TDODTFkn1sdIAil%(0YEJjdPjZ@1*{d$?=pS`wz zE9(o8A?^nj#0lSK-eSfQnz7BuM`keSprls%KFZT9n1XU`6;GXmVa0HJD2-8Z!C#rOURc=gK;hWB!v<27|sv`1Qhw(!|FK=`OF zUtQz<$L@ZUjMtqgVoa7Ts5pyxWT4+LuF{v>C;FSgOUYY}M^e#X<-MGx6JPccNB_6< zZp2#5)+%Y3ltUnZxSZB`4+p`WukfpqUmgZrW&W#ifhIB4Dd$d4h&n2J4 zl+I~ryTqeGE1Hp5<0BM6Q<|!TZ8z>wwgZQtk>0L%e%gKIv1j?)$btIxfQO50IlO{` z=o7Dd;OI8|3iD3y^F8nf`cV_mrVdBDhg840y*$nh~_{fVpc+`TowB;`^#YF4q0>5{l0yL%!9I?{dTqy&j5y}DzY`gmXcO-3*r5>Ni z_(ba>noAiLu|7IZtRVBnAWsIPm*#n?3Px+eGlRp%5XCdR!ao)OMY8K$Ovr z=s)$GjxAm~(EVWeurK7OZC@XvfB<+e!qo*0FX8G!28^ZavGDl{lTymIRo;w;)R`GE zfTvNV<>jO{ZBdV6&9*Fg&xN$M_AU4t+wtbULLybPWy)SB-)_l#p09}KL7`&~acUwv z%;~TZ+@g31NE#bCwe-znnnj*3PNfXeiO`-IWh;w9aLxl0#Ye`CXuI<1KqAFhH)++r zFzX;8?B9wSRnqR3SJ2u6*B_Es^9`nDRfC3Cd#{E}08YjELERUj;MCzG&kf~n;Kd+0oN{ok`SZNtL54bm<4rQcrp%gz=w-qa@G zTxkhB>;ICsX^$`kIeu(>XK`_p=3qfA05c&S?2y(xnl>l0KrNwpC4nACi?ob-_!W5R zu7xpobIJ8{92c`CtsTD2Ydic3I?^%%%^WL#VLFCpERu+!hKy3T#?CjfB>_0iwl@^` z_FM6i(lsP*IP^r~hL*n}ag%BX4{nBU%T9%0cPLGW&|1JrjE3Cve{6zva(u~-=leiO z#aXQ=x;lHyV?vkyVqZyLx;h|!|g)XG{lqB`7 zOE3~+CU!w4dUv6PYS4_UD^`&BphiZ43TOp879(m|fXjo;BkUg{WnZkL9Ok;!%#QIg?Lj#PgOivO0HJ{)Wjkk8AP`J9v^e?) zBLnfRUWpUj@Egn%Meb$#MI?3uKLFz+*~0Ir_7Wur*-XZ32M9bvk-CwRun7V40u`2c zj$>_Qg{LI>_7*WA%Z#cl!o8eYy1|=%UbyM60lyheW2s0601`Av&45~TQc|;YtH;e? zYvCQS*ah43-*UQurEpOML|u0}rVAvA{sr8KGs>ydqynp|Toj#lU3Xs;mz%e5 zZ^ov==7oUAgiAYbl_4L}Z8;=v&-AMxp^4G9V9C8kjS&?7;YIA~)+~@HrNTtb?kaXK zIZT-=E=>2^S+oyWAAlsDR8Yv&3*MglF%`%V%B9GWBJO905PYY04(;v1n-@a!7f8=| z9E-DjL=yndv23WEAn5{;CTC(Fw`NpDI)&{ufW&kfEEvLiS&+y-L*k(6wxw?|z*}?w zWI%gF5bQB>+PI>-%U96|_OJ&i_VGj+KO~131zANLn)0(+(rNB1DWc^*KIIPE-5bH} z(-T)g?`}jql>;J~zmnI^CqjJPqWgh@R5I$2CN^Z#y^f>$KoXSqu>*;1w<7TsUH1et z75G#X60Q64WK=xqHOhO@r(Xw`DEql{A6q@<>Ui_!4F@!KGVIbVaxb~A4XXR{0lrH7yo`Tn@_V>4qd7phCTX{%F{u_S{8y4PP&IbbIqo zojS1@z%v~^Spz&z?W$$$0bL8)T7+jVLZ(BwZRcL8B$keyTe_5IE3I zy&W#1e$h4J@K4Hv2~Nj@k;`@Fqcc-VRxHlW+`^`rb) zD?b;pT>0h6^3Cv#gpFtqU<|Z@#2JP}g*Dw$$TGUCXPA@#OHurZ?_Sn8U^{a9X*Hy< zDD8LMdEb%OPDtqE8b?>TO^#k!b&u<{J_*6}_^zXIvfAKtU z)Vba%C?WKo9Mk|ZW4iz>3A6IqdC@J{86z9^GQ9Kx(m=gq!P!pRIxUU(34cpyA5pj9ce|bysGB0PwSa`%^zYGS1 z#^oM$&7{{q$0uW#VLT>B6d2G#sl)K|t&{&;op)^aA{_qupO6eJVMgOwPD@SP)lF#B zdz&i63CZaj;2#_Ok2%`#$kx>L0Z|CG>&nDehzOhx{~di8xao`$GaWEdk$J5D29dQy z>Z$ucj#YE-G@!%Hd-k+NYkQRO8@|Lh)UUYj5|nLo_`o#$sK`=0;SG#ZW@f;W+yQQp zXallBzeZ~DB9&o{`2KjhwJ)Y<=$=Jm+femQvGO!{!ZVl8x_o)G;WPvXu zbji&?qCD)W#!0Ub5&4|{0~B{1XVgH#dNO^FVup>>;}3BH=-o#ix=tQOI$gX$$evA! z?6rrBuEq07;H4Wa&J}&}L@;dGqg{YfE)yO9c4qf*Ty13aVJMOmI6>R(GG>U;Iu3xt zd#lGx3CViw-d0I`By$+g;={`vxD&yy`x7ZIhd5c=poG}TV9VhHhNMxque2kur$0}w zS#+%-uL%ORwgQNUPg^s)BD9o-A39T{9QqnJ&mVCcSNS-NCL;E99@Q4~B*M}`NuJ61 zrGO0A<3|`PvA7OM<612$jF}?7p*D#K931EF5zohIeKxC5m~%oE0NLP1C(E$CKZzTJ z+;xkV0= zQcAZrF9bLeBn*2OKiam}Oa1)hZ0u6Jd^aFTp!9Sf?EI0A?!q0$^EE!yF5e6I%B>_A zHbQvd7jR>OBFOq~X*KikwT`QF`7(&m)-Zc|)AgZP}s( zbq6FP#P3k1yZEM_0jD2p-%xr=ZVrr%y6#=W9MYlYcCRd^?tqO}(wSQfmzA){`s;{1 zDEl-U;dl-wE}jxO97Y$@Yi>VsxE6+85!zmPGirl$ARGbl7ta77;-;g``ye#{>b3}m zk;bI}b{Euv!ufOS*2ZjMu@{PJ*Z>nqp`kK_dv2R8z#S^pHgP5yx){3_DeM)*5fQXP zqVOyE^vrrMxl|Kqi^9-R5iCkl`wpE%W#i<|(-Lc!G~JLzO_WEc|5EH8(-LecAR7Jt z#3SH%v0@17C>1e498z6@^6lkEnpC7&)~ zs8|(^PH<15<+cxgm2^}y6M8rf(iTU;$9qcS7AhZo+1o|#hJpzGG5+z1Fz1+CjI(ka zNDu~SM6IYhyX&^`ndkgnU32(TeTNaExQYcEX8z z4n6jbhSTop7b3Cn-HtHUmkAaUvw87}6a~;|fJz|))TxW!DqnCy{)KgoOMu9(!?Hn1 zhCl!|Zzpo@v$SfqW!g$Ct+>%lp?JOV3(+Oq$dN^`8+3ZRS6M&0=xy@GOSleHqa_)3 zy;tl(4oC7RJJ^aVkt9vB7x#FMBT7Ijf}LU}zG$|D79AX_&hCHK?A60?F_YQ?^-UQI+{T_^&Ct-&KLW)NXMVI9EN1Y`F4vQCd9+J&UGCP$b zC1joP>CbU28bX?s%p)w127OHb0l1m&7n?XrqP-wRuE=`q(sQPunxiMx5S&KF6YH+rQ!pHTbqD%t{FS9a6D^fg9G*q>ClTXt3|1 zRZgp(GrtBnF|inF`Q}}Znk`of7->2<4p<2`i-?@Ss=9aow%AuZvgnDi=CHC4)vIja z95b;OJ$3NNHjsfzG@}6U!B%CUHE^i*X@PPelM_ux2Ec%cM=RmP&Oao?QdzLiFqzVP0cTpELHZ+b^(Wo8KM|R}I7hV+Smic~Y#D01G;mPW@WKE#>*?aYtLWHiXc2*?w z)?&*|zsl+oh}w5p&7*I}PCC(z6C==UylenZb=O3I(*BH(`c{ZHI1Ce!s_FkCdLmyA7l7fUG4b8sB z!6DYTh=>0yR>r@CupEUA>`0GirD6y)6gchfg^nL{(GVkarSdM)o4K7?zStdy`~t8T zproG%{~_=*UDZaE6!l*bp}Ln6!U9(<10YLqL~A%soJKlDVbAsewY<`GHKbjz%~B0sh*AhjTp+l;riP`JQ^d_p7>F$CBTZ9n!Sz!{o|k~Uer&J=3sLErh% z@rj?G-#u85GJ!C(ge4OYl(1;(l$MrK^|pH4)H}@8u#^|j@hs9ItdSy6$AY&ONP*XI z0IJhap>5v!e8B1^kMPS@Vy*p&EAdi%FYy2x%H6=I;nWIIRb5Swmvx?^dx@cd z9GnUvPaFyuRG;)HGgKB**+?0u%TDi&bV_0?|kyl{=Wl>R##&__qYv1Lul< zv~b>pip)iqFa!U+8eVGO5mrPLrq3nX{|0ifr2n@7V4qr%Ar8g&M(_li*{!(PVY?tx zV{2a4sEL#AnLtJFt{x3qF7%yH>$ZD*+Y)wGtvS0@YA~i`9>n} zk3-1(GcFFz+Lt(nGuSaidwBllg@>IikDY#&O=>v@pBWNb$#R=~5VfC9@e$aauhAU| z4lja;U--}9-+Xixzlu}VGMd!^x`5+LM}c2KD?}&5DVPPW1Y-MdM}YH_mwm)FwkG&g zczC#QhGJdbbLLgk9|W+*^1>dFQQ3`>^;3UF@Qgv1%6|AvJS{SdgHS})T6<1jG2BrbS5 zm|xYKIA@U@aLj8B3fOO z`_H=7N$C9afg;%xN9mB9URd?mVvU(J%}@bwNn0UbMkqNvXypWj+dwSXZomM8(hg~o z$knpLiG9&I&?DUSh?51ohMf57iS%}~ftn#j3W=8aR&wS0K za|K(Hv~6as#iE?-P z=a=JC^r7NN@fwASg>-pLf=)@_QwY4zcq=UhQ^-`nxO^HktHCXhhFvL57f7_W zg34NK+YO+ecQ7-9Z*dYGWE!b7D>V8=UKP5NC^Xd&yt6B@UDiIPg%9~720TSF4;H)0 zkuY@zRZ@gf;I`~hJP%nJ7dEu+4yGz7Ax#(MkMJxQa%~{JH^YqxcTa z*&9$u_A?$*=3mKNEw5joE$NI{vDM5QQ0s~2cK*Jces0X)G|NQs5I2O=T&SC{Ua=Y) zVf%o9vj!|gDjLOrU0{Yoap?Ny4LMI^?{gw@NZ^`ME=X7Wx{>NW(f1X|SMme^iZmMD zylWRIJ3!Hbs7ps_(5@3MUwsY*{gpd5678T8?7NNBfb)BBvX3?{^D@zCjmxF(4gUR+ zj&KZN_8X}>_CD)1p}=vRW)o#^$o>H=bhB6cY@L(F6`!wmqhW zS%pZnGQ({a?nBAd!f-uO?N|}8bk};I7f0vr)9Bp-4nSK>IBNZa03Zd3n3)Y&YPscd zOfbT4?Cf`pL``55nK*5KHKv(yvt&Y;Lmo0OG5Zo^0oF12NN@oRoOemvkw=%t<{1(( zb_QvwgDXHhp%oFQ${05~>h`S-G#B5X***Z2JBuhprC$bjBbw7zxm`%4?2Ck}no3^qgIWWdyIDyERCCC) zH=&sBgJ~HaVY9oT+v5vD&jP@>8Q^*ZMa)42q+FUC)>u30Vy3O~Z#oI*KYM{Z|1ZO7 zvgXj!zd5LbO&~(;ho{d%eMmL~O<9+M^BC0S#4vl#y`V^fzm`)X*Dtc2Y*|QZF4GjC z1><~E`=P7LLy+cX#v_Ofh(srxQLyB(0rzgwgVX4Z5u0Hh0xVXpX*(+uXHf@44SFOQ}S*Iu147pjT-4a@r@oOGfr>CTW)Cqazvxg6!rVIGEPc zR)EJ*l+$5HWA)u45RaSJ0Bce{ZBFd3(XlRXOeP+oYcs$>b zNQZiS+w8MIj52xNQN9IWHXY;_Pp%pS(abF!Mlx-uv8&13KRA07LND`NcQmL*V+C7E<%UR%=h+g83zGKuU>yQKMRbJA$kg zWh1$l+Z~dTJ!O_&+*(3473fd>xn#jd?$&cWf((&-{;CGH5A=hU;M(R8)OJevL<)7K zDJ0I+l&fxY=gws-o3f@T1U%#6J@t`!iuYc!(qM>owmOx`JnGqb{sH*zP0ZY{7LsF% z>$Z#^<$T0R7(y~ZWWk6wwC8~F#I9*+fXb!S6-a;@u~)RN>|aupm;%j4SRm;NcA_MP zVMJ-^(lUjEESavDdCF@Cg7H!$fnP-2g11I`(`1P{Z!jqZTRNJD?uSz~W1(UWTK2 z9Z-R}e|oQYQQ`dH4Qev0^Ik=dJ%V2~Z0ND-h4Y{hSnazJ`{!2s;v~AqO#t8}bc(6^ zktBG#-6x}YZ#h!dlLb{(wYKkKnNL-JpN&)HafI3Dd~2M8Kxk1gODw z5BsPe6#{Euw~hk_q+MNzZJ+!)kqevDj*{nyQYG`?kY2Y#k^dJ>yO{s&jy&b3Er2oV zllnp&ldFG1(rjn!xI&MA0r?g${UErObl zx5FpW@Y_HgS}?Oa4IM+PE3B*8Hz8lhuxd3Av75|rX+bD2k6bOJGRpZ*^^@l`>px+a z|B{t8qu1IT8sc>dts|M*fd819(Mw<5q3{wjmfmv#x*ONzCi%5H>WDv zJ=KqS!K4?hf!(dxTaL75uYJOtqny>OdnL8^D z-ob?QTBsCd&<#kLOD;}pdcK_*)Lsn_JIy|NmJ4)9fOki>ogafQGsv5s$v7?cUkJ!R zE&nyjwGx+A_eqJmZ*{#P;Jl(79N)E9*e~KT=1giC%;tR5bmSNJR{dKtZ^$2v2iIhI z9m#yo?SYbR)bpB8r1pP#+!;`?91pnk&ZP$k5k(bGqEInyzO%zZJVCJZuMRlJmXC5WaBsD=8`k5lEm_+>Ql;_erxHqaFEAq9w6)lf7HMHKE1?>y7%OsR>aqe~N2P>3?VHyQ79mcLRHIh`-8`G(Z2 zn)VLM_QYE|T=MwRCEJp*u|JWQsN7CIR^-A9v10~V{gv*P>NkD!9k-oCgO&n(L^MMk zPnXWHn^%g7`oPD^BK}FMt0@DWj=86bhugg7<9L=HizeF%-fBt_tajV7m#=>HRw4CoeX#(xIL)67i_f=5`wU|SL#T^ zvtcAaxie>xFj8$!ZCYjD+_Z!otlCyTOx}Z}JCEDPa8No#|DeKKBBdKdzhp&Xt7yMX)ag zdpoW=8n_xfr<#A(4F?z5$t7??xKnzI7#PTTf^YV_0jSmcUhkRH9cw=b3Wj+rcO#2I z#XKjtza9E%gRbyCj2K$<0D0~D@nie-qA;Pl5`G6f@+D~z-F`5dUq1s320h^5ZAeS4_53pBnlRkUr?wkQcUDE9NK6W=Fp+F827@3mEHcc zS6vn%-57?SXWc&ynlzRWbNmAk&8gEL}l z9EV;O8(qw~`Cm4O;~0@*`^$e-rEAj;k}GR@SM%Xga`ByJt<9K&4?Vz@xekw zt4*|kM|SGa^NOfUaF~A)5d+*4P4eW?ceal?G}5f8q*-?ppeGycOv-5&&I28d#;}&^ zS35W`NLbt0*a#&K5|ernL}z&BgZA)YNa`6ZgldF_AvpDV{MrN(52B|+rwoglZ#fJZ zupj-`J1R!me1Il+fT(DasQzIV0G9BH!c=g&G8mb$lkd>5r^O|#i7AMRohcI|P`>v$ zk9H8aw$@e2K2n($g=Iki6*j_42A+29SRG(^#K342r)d8)uB~oc+mIXxV6SstygGRO zVb|UGf+`n`bMpF;6&%UFbOY`9~p6 zLg;H}#BC)@VGL%;8KZRECeo9h(*`CLyl9#l8fQ>M^W{mj)jTrap5Hd=l%-kc(`_H@w+NDk36T}^MUc=)f3&S9f<0T7Vs zhJL>kcSc4PC(VX_MD)5r-wKY1L8Xp9i~X35Y1iwjcd>Ag_}r(I2*Mm_8c+$4Rt}Hv zL`fjCHzQ$0GXE~m?O&4iAVQ8MVMz9Y&{?1&{2!eK(~)FOX=jMRR}ec;P##AldIQ_mjF#BSBj-7gKvfEwJ$di7mr))49?Y zg}*0rNG#NkKl!HITC8Q6NS$w!Npr7Uytod`hVP*6cQ!6(^I>dOm@c3a5|}Q}O6KH4 za*#3nmpm2#TNky45N0}_>uLB66i4@PzHUU&JW^1|GlK0HmiR^lOxhu{!z`1r*fT&* zLTgdM1L#C&Y`e?yFwH(B4c~AI9*SPyX8|B7Yy=`>M{Ll>W{QWpS@eCcfBi39F(KZ* zD4f#z3;?-@n~F0B+Z#B5QdUpy)a;*x>`R_v3j~7$b5Pf(6kf*CmtUGUa%=JR0D;~h zjb$TkD8iMIz9o4Haa!bT+#FUgU3X$B%tpR?HWa0y@|y09)6R5P<&-1`0JEk?X?GWo z^BX;)9$QqSOwel4GAyW9>vn26-_==k!g1>Jd3!PeK^UN6uz}hEyVG`D z1q_B;?N`iKicjRQ@7mX!YO^#d;Xopt@b{(_+SQq0r)zff0BM|qe?2kj4XYiF;xr1r zfGl*65tG$elU3{$Y;BjzS}n8%p#V5q*dv9Y*!l62wBYyeR~i?xegb2eZy4twGysi@ zLbIUok&%vKdI~8$KoGo*Z5yeui#XA|eu29KjX1cc1gh!{@_Rnbd+5>n5da7J9Cp*AI1quBb9m2<`SnOYDL`;x+%Y3RM&{^nFz#}D-eX~ zYjjoAEEsXe0`4bA!_q4QDN~Ymg@N46`wBYCP;4056N|~WNL;oWXpXAwf!?V(RpGy z8fS9JBJk}!pGF$G`zMFdS=nW=VA zZDY{YVKSieqsIdCvUGA)FTUfL2T<2S{xY;+q%?BBwPRwSHRV8UcCpy`+Z6%z{5VPs zc6_0B(xtc-BFoX2et5OIb_qdkdg)hIB3)_P`_`iI23Zys<7ob(@MRblBbZX~eE?G` z_h>V=2^f`)ykbdvTr?B4-Cd5kw_ukD^oKJAek&-Y{0G}Z%5EZl)m<2Q`FsONo}Eb( zo9*EB!izc>2H+Xcn1945kS28$Tgmqnwi5ZYZ2!B&PMKWli4~^Z^d_cg;_(UL4o6tGV1h}>32UT2vnAA~F*nQ6^el1hL>j%6~TpGI>r|u$Tt(V5VvW8R`HfJ2O%sG(zf? zWrkdT0|4)NFVFtZtjwUn!7d)a`_`ogV5HYofD?kBBiFw`LLrV*qf80vp+IJ7270eF^&N91uf2DG*epOgGYlDT3C-O(!?l53Wr#5a(^bht zh2+b`6?jJhT=aNou5Mwe1Ek70PI%04yAQLCxV`Vq$2~|Xv@`Ew=qKvXK^kckaBqS$ zKEl}Q)MStw5TeIfrAj`?dK_YJPZY^&^_!8u83KpYovbL+Z`p7nTXO+Y)uy%{APsVH zV>#|Huz@6<7k_N~yBxm49R-Pq^|D&%VJ<*n75dSR5*pDgJ&ILf5=?^+!Bs580dS!y zVw(KY4sO;{7ZeOc8CM)3CWiCiUkC_{m|j~pPz2lFB{EdrG1o{a^AWt@NBfS}BgAZ-|Ou z^lcg*vE{cEON@Qd7Gu=rj1EzABlMlhE8ay%kRx1@d@k<2V53`3!hyS9~c(&(u#WKclijwcyNB2zna{WWP9F=pO^ac96h zt%mN)GFb(xBwtyc5jvfoDtsJNZ*{F%Z)75zOXi9zSg)j9lvy#<_5*w7SA$L!hXzCU z-8%#rXpKUW4mG`)T28_x=L|r0UH6dTi_L{~Pfa=?yGs z4&*O*AIm}#Xptunvt1D&TKagxgtCR|6^PFJ0>00LY{Ppbflz_~&@?!F4%@Rh(LO#q z;>CM!qWEvbE>~ZGhjO9LAuhn47|)egWP5QKjG%Q8Y64E=F2O~2^YiE2B`S6iyCRG! zjby@crrN)vA*tgGEcUbG6WM0rN@>}1X2?gUfypFf*ubJKz-MXzK@7@tU`uRqVXRGp z@gZn_W-aRUAC@(cAiM^BzqwCdw1uBP+lw4wMknBpE<%{Cn4CkebssI@u_&M`0-Tc$ zbi55P?kfh4rzF)d%?Iz|I-Wr@gb?}$F~frK^E6~wA8n<&bonwr!4Xa(;{{h3tTA|Y z&{LI&hY>W9;w%_=%krpdwXqqJ_W1o@U#$-O=Qaxc1UFifnv3=@4dr_;b46yw8dJFC z;&Q)Kz2jgI#8OS?7Xxkbf@>o>nb^Lotx2o3B7DS-3OMx!Nvk9UaBQo2K2#k7kw?G_ z45Wh;n}*~d{A6g%Nl%4EhNQh&kr&g7;eeqPUC|xJgiW$$bj)%fFCBR35M%)WCDFOs zfP(pW=y=>b`4!hsWNmRtlz0%4-jDdq^53Y$k+g&OJEEU~NI|3kOVy6#P)N}~BA7`X zC@{*ZhiAMFm{dAF*I;f}xRg*Rz58~#s|0gAII_{S_eFXI*9S|Qu8qF^3L-;V}=$f%85ugm|!u(P0Xh7OTkG2b7 zH}CjpDTfmDf^QKTq~YK@u!`{XhWUt~&vW3|r^b^xD^w(f=u&i2wi8h=A@P9Ajj_7Y z`DNi~GW`zwiFb=lGeoZBtU`|dNRg*yeN-xG4iW|tW6P-BWS`B`o5NC;!m*NGq?QJ= z9*7i0hNnsI0j!=88@LJ@PZwaOb`Md=V15bDWrSm1bxaQgY%?CN|euqJFHOgA$5tL$6}swhgh3-=!}@W<>)V_8>)O_0gsm z>P;_qRx%`9pd8)c4fTu%{fbC1LaB7#z_FFuqx_bJUx)>Ph8;O@nt_8>!_PYt|F_4; zmiR!@q{rExpG_|W%` z%SvT20YP$iV@aj+rJ;v!JcuS49L(q)zF;W&^a)vo6nB7C(j1p2>7k5V#!uDx z@nIH3WBp`cLAHYHZx{b$1S%eHOpQNEA$8BpS*~abd%^^P(;u;zq4i(^Spq(sky0;B zJ;f*6WD6{lvO>Nk6^eB!jO_qxu?>o3^&gwsn|GSin}V=P>`++zUz{az!6pNFKIszv zQslQdBuSv5Y!54-g>hF)4x!v6_V%nm$xv%z^PE%mDD}dIxMVPXyIbr1!83j=H{a(Hrn}j zo8|K?Li#^xdp2iNr^OxTIG){;G@d^l}b@;nN@aYErRu}1mW(zH!!n#ei z&CP%J;?W^+(5@ScJF(=lta~D?NFyBAHR^DDX|<B#|5dOQVx|mU$nP+|{tsVg0+w^yzW-+4!D~j$42JCco?Rr-ScXbP3o6QzC6%p( zvgDm5!&p*;Hllr{MT#`0K_StqP?nTRWhkkn|L4jqn%{B!JLZ_p^Ynb5@Atm1<-E@G zynpSpj&0YkuNrJ0SlSWniuDlv6Sw_wI_WRdkw0JUI-&=KacU6!2I}I0Ke@PQxe?&~ z*zm*q_rG%cpU~d&hIvW?FBMOyt1imJ+GUWlv-3}T_VhHnf5|b1V;Tpl{jGlc@caAO z$X9Yb)JxsTkX@QbVleOlu=~vB!G&?{{z=>|uU_7}^CDYoqYqygLa081QE_|nFAEnBccUeERkX!z%!_Hp8I(>u1rv zy?gJ{=W<}p>S|i~em#$;uaWh{L?&@pQ{psrbs2jnBqkQ9_2~2H!-Ctnckf}$ydFb@%W~CV?7tfse zebSjn&9>3fl)EM(aw;c`N;=N;E-fz)rH9d?&wHBv;ar@SUw8H{+S#t1JFn_)yJ?f_ zv17*|5*NRCF{)j=+h4a)=r=}t{(QrwOTB+fN$J|BPvq~v&%S9jZrr%U9re-7kk(%R z@ol%3`@0f0T`n+4mN!6)A`Mjt`$YAhWW$O)^y818fm(FGwsh%ILmsZG>Rq!o3L3k3 zdIR+I^o|Z&I1>@3k+pUBv$&ss{_o&HgHrF_y?d~If6Zx&{;QxddQp&WZ-k}I+O@S% zMu$zDc%-rnBwADm&5vMsZ&&Dl;LZZpR=hl6i- zzsBS2+P!-)CqsuV@SExIm%**v7Dw~Uto!QIrWHSVvNC8QDMb1XMy z^lphmonF3rl?lPRmezMYhGC(`F@Yb)Ar0TPDqcrjU6*&a-MTg2fMLIDmYeS*UsuL?DBkz+k+E=}q zE3#nK7Z6sN(H~`=GP3vd9ZL`nCVqVF@>^U-w(RMSCeapq@iXv8)4t>ym|GCNO8&UN z3F;p{FyTKf_jEVr(3XJSJZxQv699RBir{PX%Ws=k#A$$x>f1Fl9V zXu93Yy(R3GWzFRqtNttF?0)c*M8@d7`PR9#b=m%!ogpd@OHW|SX5!WG?9s2up8xDJ z`II&v?yqZK*6njFS~3x2X8ANSL|F%YoZ8v2<6j1=e_m9-x+lj`tVQ1g!z5Hcwez~) zyLazeSdi-}>?Zz$)3m(4U(1RdFY$B7>jO}){U~{epDoTIGHTVIzg+&| zIz!kZO!o+yTkPzznI^yJ-CjclV})a+S^gs2Z{2?V+dj`)qH}RO)GWD__%&3ufogTY zl{rkLf|w+fd{lJviwzhsoIx^M&UqJ~cj~lw<;v4LcI+sA`t%Hgf)J899~ZmzRCLmF#m7#MC-NI2MfrxtL*4%<2r-x5EYv znoWPWaQ5sU3FJn=`iSO@_z>4ahYlI#)$_~ZmS6ewVY0J1bk8&I-@VpTM;4avrc~b& zt1L1P_EyUd((CJ^zFj5V@%HW87El)}7p3@+xf0+>my&6;G5hmcbfUA5aF z3YY_woCbN@L1rgzelk1d9*blmx1__eF{4J!rzaf0|3rF8hf?i=PFwg@^$iULJA8n^ zjQ;n(|CwBLh+s=(dYdw|R7c3uW9;(X%+NQhPMLD=lKHnWj<45n2B9v42CYBrIX$_) zvC)biN~xjrm=XschD}GUSot8qfZZ|tw&mT^KQW~|gYC$Wtj57ZhOB42kUwT#njcKsekoY-dJE>EwcL1@USg)0#L)#L_3@j94 zgGr*DWny}zo88lEippk}max$m&``!wnDm0MD> z9YtIWhP9&lw+>Qvxm0I59+}o)$HVK_=Te(2W>{_noa?x4+aRybq-2=ndQb<> zIW`l4O=y1O9GB?|K+?5WFY6G9nLZ&EHW0zCUMs)=%?hOGM54onu~eFIHuo2CD5~}w z&mVsHLF>pcKfZ4;h}{U&^Wp3)_jI+L4Y6$S0MU)L`?^$JLOlJDMfV9O=8rJHd`Ut& z5wWM)FZ=enB_}8EqFS_0r+Nxt2?boxL&=g8YiS_TkNoz}F)lL1Qa7`5nN}J(0BFs& zvM}lX*sABxgXJ(PK6yQU5jT#F+4wqca0rj8obz7;`pnq1!&9eGLtpCUzSwv0U@luYKxD^O zGjFG=A1$InDuX~jZa-rq+o=vOj#KzaBUV9Bh3oeNCJY--xD!>S)EPBu)ct6wi3?)Z z9$F!sO;IcS_SF99agacbqZ*;_#sIREpY`4^2h;m_AN=upnI{XZ(x0!BssfX8_I123Yt*KJ_5ldj(h?ubF&MfSdo5<^BBh58eFmXrg1 zlo3}?6r`BJ%dp}|hm^5W7upnEUPfv-lAP?kPv>}m19p|{qaYdU$&z* z#U&CIo0NNeNq>G>2&v8G55T_prsu5}LKYmg>Z`B5>VY!yyv6+so6o@0T-hB1#b_y7 zxXV4SX|qo-+k6i9cD(naW}t@WJmE!^-Fo&6BN~nvFyOcGDs2ABqGa<=KKWz>Nj-WJ zXlnVrb7y4zA+<}(%gYN*;zW!{HkWZZRr!rj``sVH0|4mBU=YyZmsPgCT>jIKKXxxX z^-)c-`;zjsX-nU~f4}d*fw=ugVUZH+^))nh>$H0$3Q6P=@h%;dRvNf)-;6IG+`IQ& zeQ}95w)=KB^CBZ7%R!n0BjfGL^ykc-Yg$f?9)jW^(&(W%qe=c5Ox<4*xWD zIR}|(9npf>aX?PqW_$Y_uxb|d6~jj3&!c%@J#?2xEsF5O@7J@u$av$%jcwYt?V+n> z9=q=F!9MDq&+<9J!*N$&De`$y7xIg49^y^ zAbsq9@8*%=XQ%-n!J8R(9cM21r=KXSvTQOL$)A7M)TC@r#sWjVI4ZrXl2QoVwyd!# zki^4s5B5^k@6)G`hZ6y-Y}dXkM2{NkG~;rhZE^Wg8FYRb49E_(6m8M=Gm87RKnLGm zzI>TQBrFWoCkFw_hh3``6S2lFiJ8Zg)J=xzj zw72ouw55wkW)UW){`0rIfyC0fe}< z!_d=Xh|=vk_ByNWafEd@#-#yVKP|hK4^^!FVQBn}xAxS&!Yc_$+LB4Fqi9b{MT}aj z7Lb+sd zcj1kx->Rx3i%*TirR%+8AznrRe98|o9un4u6hT%!10!GvCu^^}{nRS)m$ z*HzwMJj6Xszw~I^I$G-p^W?&@Dt6Bo@O_Hp2;*QVKC5d@xJJPm(koV9V<{`zvm9+q z%)^(Ao8?o}`IA0&<=MlL=iSoJLoa)M*B+MX?FHi6H22M%!tbQIX*Q=t5ZYth#v(JK zY4p~=MHGA+*Dq$znPUm4;c^b7``+;M8G;zivaJ9Fmty7m?B*$~9{$WimYrKjMH6Mr zROk1X0;IAK=tX;(-^?~GYo+guT}!FEGqQbESCGuL=FJHrdnif$2FC(T; zFC6QUf35NsJx(U-OPlUJC#>1;llkr>S-xjE^!_#FPJcy}w30!+zv$56mV6mPu1g|r ziX(_EKAFWEJNcT7)&!%8x7?XouNierNmI`{*`d-?r^5aAA@C{~WcuD-u~%e-KHe)G zO+%DnfL7N7N)x_=vYH9H--Y&`v||bBrGfcDHV9(vi+lrwBj<(}CDXuGxZKLJ0xB+-&TWj$W^4Id>#K_A=YTr66}mO)QG6`~}tdF#-;x={o4?XdQS$xYqfj zE(_}y#W=t(H12cKebw)WCLy&)$DebRVA$pqtut=V#55A+B1{Zn^oB1%PCX%2{GAb+Xm9~a{!u{B>#feIN4Fl&ZrR?I+=!q8w>b%(=jwVQL>ZV7# zrNdlr+n5a9X=s~v?MnY1eMr1>y+6q2yV3goKkxkBe>ot~tJ>PQY&C}$cc^M#c$9)n zxPUKYDqYUyUlr{&G&DkO-7kCC*=%t4st$QKC}7P-Q@uA^w{F#|^Hh5F_^}`2so%!F z!6n$FM`6}@vMqh?ke>19uQU~{u@!)u{!@k&rW=z2$kU z`gF!~T5u1bjSWSYm0LCs0aB`Ai*?QTf>(zeK^1K-Mpfslg?>6J$xJKhTRul+SxQb$ z&H|F^41*JHPJGcghe{LeBoJk>>Lm6Yb2qr5d|CXWQOtWku?l&n9r4FbxJ^#5vh{bQ zTa32^BIi)@Oc)f)mCPCZNI~^^*Ae~~Mi16>?l!1t*(ZbM5cyC2`rl5S@(^DLL&~mn zI_@c-cj!<&@RU5%KYxZjlBrQJr(nN0GH5lb{7X`xBOTOoBNPNlHO_8S^?gQx?=rQl zEH9T|F)^EB7vO2W{bjN^Y%xD7SZz1rk+d^OO#74yW?X#sX8VW`!J{2tJL=9Wi+ywN z-V!g}&4fqII?od#Uhw|6Yr==V`c+hj~itkrgQ$&!) z&KjIz?9%JL6#6I&zdH2AYBi`_^nWtLNyX}WKKvo#zN2-kx91E2({#Z$d` zQj~#iZuv(e0>~dVva&KT;!NLjTlatJ7aQ-jtS$;b-VbksJ0u7rXwYhdwQgICF9S-= z1st$Z>N#WACF;GQYuA?cx_LM@L523O#0srh(SpYMdMS_>MF76|`KeB42wr5KU`18oGFi3q4lPa!3?VJWLiv9ooNN)Gi%XQLE(8p-eck7UDKt zp;oA3#c&@7uJ?pr+qxs3^#*D>7g_Nx4U&krJlhBHtiM-XdVAJsF0Mip0^Gl#f>S;V zIXh(R#0ym5x)ikWPEBOy4)&RQI!Bv8*ptCF>7X1qQl@*LfO4abDx2oMTyTv7UD1ke zZZzWJE>T`J)qZIf`rM3&+eb6)2_`o7KQz+8bg-w)3IF@H4F&@Ra>y1}&>w&NabhXo z%m~92mqXA0R)DZ=wz&oc1qpig=+W|<_b7jJE^ghZ7O0gE?e8?fuxB~qNz;cvdK%N? zxlB#^p}o7wd~VzC`oD{=7dpX4Zmzg&amh-W@(a>5&JX7F^UAHw0`Z{wT@0s zfm7lMsszu8HRr?4l1x~QF^)yvX933rguY*=L?$Aj9}AGPm;+Td7Fvh6tNavHiX&%Q zfbH3HeN28hAvUaU$-J`8pHG_>?wmT(@`vpv zMcw*oc5K;kixQk_LpjuDxYW@Aymb|MdJr{QA;Aj%VeCW~CrTG7r+hN~$-oXyuu4YN zQt;M7lPJFT9sqQ5HWhx1WfM6+X6ym`y!i#|tgQZ1lPnIU!63HB%O9{;Do_|q-cR+W zHmh-f4V}J=6V=F~r~`)%O`dkoEwlE8B^%Hs5wtGkwhcqp=yN<@lcdF&?WQmrdsbO# zlVidcqeCz)ha41&^lee~f$#S+HPW~&a&Gq8^mJ9~GikfQp4VkvfAMz^6b3|vFi&WB zN7>Jxzh6+p>$5`|p*VG@WxmuE8~TCU*{k;!3{_t-RhiPLAbRyL0dHz*4B4#2TODV> zxV6vQ*9*95U2FqD?^nnSJ?BK0Ngh`;u~Y=qE>pqSc+BZ{3gtGrdlPxeY`#ff%`FFxWsOrWbMsUWE+fjxgZj{zm-R~!DkI!iw>|+WyoB?TAuJ81n z1urM)RrotTG8cH^)d2wM5Q1*VWi#k9AermI9Tz2E`FI__{Ns1pTj5PnG#pqj8qi z{uBf?jn&C(%X?@t0l8h$PI3IJwbBZBn!14~N42CRW`p3a#&M+k1eb;@jW-H$PU_r( zgzes~kdTlNkT9fd=tB6hzm+$+6&8X0$2-|%mb|Tbzd_;ambmykC_It)@R>8KqVrrj z_6}vmhJbdr9!|bWq-zwIPk-p3LDGz>_~^esb>YGk#h(TK zeG~dyHozK>YIipRK<2Aj*bWraA$EE250saj{dH_Ep{>K(=MOK&`+-xL^Ss_PQZw4uzgn$b`Rv(XXXj?SJjpf;w_K7a@X9(&PA~`irG3vPXikWoo~+fd z=>}}!4eL7Ur5zqPm%>e7yYkVaQ%t%M%8Bi5D@T&XUv^FS(ON+p;RRyr3`Sm zEV7aROLZ_JWeGy3@Y@&p2D2Xe&1x5xclyz3;2GB_#x0pI7n%w+fco?lNd4;PA!Z-# z7zND{)cWw=*01}L{&gR*B?xDjE1Md&IT4P+88%4XQHh9I1Zc0Q_~h~9$5X*YP5F*pnQ&KRO2mviKDTn{!@8r3I$Ss~iDfb}jp8<={2~9$n z)Qv9r+SoVLXQ2$}%OaVhgvhq-&MNbg@`U&t_U71o$9pR&_CihLBVj^rtWEr0P74iP z;P-vNbZ{~>04K_elEB%8aC7e5IgfK7!6x=+1EZp%=o+785V*3I*#e(XHU>2xcz&|+ z3{l9%T4oO9xU6NSOmtF``hX!*{DJ_OhD0Wil8}F|N|mJQrMsz!vDz~$b8~ZAhU?{V z!!AhYS*(W9mj}Lyr|8TCT1oT0@i#x68=d+yJVi@E0JH9rv?92!P)a>dkTC`h$DR}j zKF+?BK|a<8Q7}%`Ok)l*L*yqvajuro*i!aB*VNmktC>0E5%KBf)vJS3l!QXVK^98a zGN)eMiP+nvAzP*@zgH zcUPk)l*xA=b*FV;FT;JG`|>Uzl=Y}>L(P&B!Lv_OT$(0r{1&RnX)4?YV^vmN>p+Cl z#&u}y{$^03^;v-j_*CUpq~pvV+jovuE<$h-hK8t&3?!o--rFI{D_vZOwaJ7AJYxIC zH#Rq|XqNRHn*E=NGz+@hs9Fk38BQS~E4cG}A80!autKQyZQkK??CxD>y(Te zNsrvMCGJWK&KAE*PU2>-VersEuUY)~aepS)+pm9A?<>@&BJeC`C?XRbfY$MSzW(|& z2!p0RFq_fo+3g*-Z?B+tl+ic0`Ph?Mtz)BolvOE?LfLup5c9V*WnV~0kfB}+@GJG@ zKI{)`XTKKG1QT+XbKz5Nodwc&sosgkp#i##)s+7=n}aS(0YThszwFYsg_$#gPG`WX zk{*zs8(8*@88e1lQ9*EUaemV*2Uso&U(z2go>%m30tux~F4&B&=vhBe zAQ*Dt(r7SSNF?LqdE*xTRfBoHz239ckl*jJlxxXmCf5W{!TmBAYQuWds~*;K z@`moYjIN)<95#T25k0AhP$9^78O%#}`aQ6zL7@Bs3{emcpI&^2cA3+o=K*Gx@6_@b z6~YOS_Al<;eYN}=i6)0x19$OeUfyCiJ1}XBx(jE{h$mD4{q~ZiBADRog8%dBr{QM5 ze1AZic*oz!s*E_-hm|(IeS4=B2{L*P7)zXU^DcV;@vC_oA0`H{XNOOjvIGMet#b)U zOU|tnOzXULzMGAzxIJC0(c|=}2d^aggG%fBTwHnebFO_!IVemyT8wl%7gB{%k0ipD zAE=W5)MV;I;0GfXqkGafOmo>5VtP823DUmwO4h2uym>z}XtuOn#6X_GlUU9HLzzYA zb?)5R9)B~)fEu(tz@$5P2bgRwJ0zUO?^a2NHdhdXpCP*UxJG&L=ZJBr)rPv4FYic1 zX3rH{%!lD-vdg)b>Xt#qwin&q-O(bcOj6jk87y+!vlx&QL0o0tZa-#xPjW?0rTgJ=s)p(F5`Ov>?Elqwb@X6-5=M*h$T;EpNZBsmaFU)c(=0pX_9`hZp{hmttpp@vg)5 z2jw`@&*flLW%sIB)2ljyoWnEyRlgbLMB2KgT{MQgPCmKz6Ad@FTwaEb6XNI#G15t2gNz_0Vp`_?A z9K4J(FZpzn;R)SSOh6%X=^iT9l)LADIdH&;B`aJa((-Tyi|pw|65>d4lq!a!N9X4m zeABmYlu(U?FGRfiz!&l-VTaD%`!!Q`_o%3i=POSZExWMkTTuQy`nE2;dq+^^hcU5r zg6RJYLdsJ|RyDK6PzKBu{28&(l?^Xc241!Le$zJuZ@HaQ?dDN;yD~SFKLbmIXt!p| zrqp}J1zbfge5j$Cl4?5ko$fu-xp{To_Wz--SK3u7kP4MpTK1$bzAoJRiNcluDpy&l zY124;f-fTz1f1-4ldHR`I4D zJ9SwWZYNKkeE06%i)iOv;PMH*RQ(>BKrW=d(r1fpu`>r@7?qqc2I!B~Vq8vr`RqoC zL$R6C_HZbm)?d@ilUUZFw@mZA-&{*0A~r#)-hUm`+Oq4;zoi)&Wj@CA{CtK`=T`Ml zP+d)($uRloAYs3NwK?eic*&(@^PXcvOtQ?Jjm_9RTVE(5>`9MVAs=sF*RPP8{0PZl zlqMs+Jf3Ey_kT4UF7ikbbFT?utgEd$R@0Zjv8$`UXBaAvAcJaVvLx)-JZeKfb@h?Mttm3J-58z(GPA#Rd#`IZRbi2zT7D4} zPs(xn#vrviAuUmJ8C}};N3T|_!QHo*knKBt=1gVp|7dhPF>aL$M{usF?w_Aiz-y-UmS9U`tCz%khUykNXT`DqWqc59M$qR-Y0I%rB9P^{ts7r`50-c zwq#TMOx*NHBf>al$ioEA)w=T{KgP&^-r*OW{#K=bxWO-Ow?K()uG9A5<#TL)&z%g_g@_e%)XR!65CLIddoBsmbJJ*5B?HAFkc? zzHmxYzoLj|cZ3es6cXWr1+I7&n1UJJSN+=-=)>z%m0Jqs|1z!>S~9^`X4Z0;Z0l6S zcRRLOn9~}C9>@ZT4-OXCN%BW}U5n(2%{$D%q^2yZmNR9Csi>%=CxH88NfiQnYf9?? zz;A!|vjm~>t;nnKv=lIa`rUi~{QX#-d0F6R8&CpDmc#>Rk%1MJ)m6*Y~i*A_=(9 zxwSf5H_!nKO_buZv=ynAH!pDA1j)L~CTazOyg4HQ$h*>j5h`Z>JG7*JLzvL`1j_fR zKb~H%KxqAey)RbJ49l#TDZu+x{ri07mWy+xwK1fz0>|Mmc5Zs%VUD5XAhjj$FCQCY zZYH46)l0BP)9( z*d|2{R4O^h$PiFSb?VdtwKa+FIq0Vh%+SrBdVL+2=%9NfzW7*UzsV%zJK(-{@7`|a z7u*Eop#?Ccqmkj@#Wlacv*C{^3j+xZH?Lgz7Q19u(jd&xChPnOBSvUR@ZwHLr>5zK zu0y8Pg#S?5h(*h;7ZsTc+DcaoPTfZAahRmcJa6$`m9VM0XfRpfSpbyTL)R3UA|1&>f~W|kc(mE2 z<0VUpd?aua!lsZ}Gu0K&Q8P%j8StJpN|gV#!?W020)B@B5p)hmV`6Mwq8Ri}m4;<( zE;1>R`lRH|ciLzTsfIc`<4#<3`C4zEx=-Fau6rc?C~*x~+C2%jw;ZJiY->gUOTTNq zr&Hftn8N}DGku(TRTZGP$GDY0Vv*ieRdw~{quW3cgi$5*q$e3q&4F!<_H^uBgJoDK zO-RUXIGnJe4+*VBlaktfB7q{TXYt`W)q7;rU#H`5J&SH)^wm5%`cwZWXuBTdbW@9M zHp`bU_jopi!-Vh+R)rvF4wGFcQ77F^ocUxpL1tKRV*F}p>jDbCv>GE6VHlYsH3dHb z;BXJAK;SbY{~k4}!H#YH$J~gj`*y?EUAo9~E(c@Mi#u_j!hybLebMD46sEl)NcT#6 z1Kb-17Z@srv1fCKl;3`vxbpY^PTE+wl)CKZ%UuA2Ml7T3^ERd|*AeL@4w}+U@F_vm z#{SzY0gz1K%pI-Cu&fa)Wf$84)soykAIA7knoO{@$@_(wR*+yD1XpoI&_}WkG$PkQ z>M0I~d*#VkYm@%gHBu0VnkQctr;R5SY!)dh8F+_+L!_mo49xciBoag%xI)Ln;>PDR zaxi4GM%A)?CfFC$aGNDs4emMFE8V!^?EjLA^VmklC=|IIuLic}sm`J?8S;)1s$itkL5dwo;MuO3HN_pUIcbL+uk{4k6*ZV={kA=e07bQxNb!-5H`K6_`*mXJiym2FRpAew>CJ9d=8 zjWCC0Y{&#!RA?(6g8fhM9vmjBpO}eX)3;es-=0V;B;D$(=S-b2^pDcE_4U(JmHCPR z0#EixCRDn{z7^bACuZo1tGKUuY$=-fktus$33UZYf{fFd?U`PK z3LQ>GZkkjIW6h6N%cPvxQ^p+=k_EB+h_#IM0ka|{-SPj+fw+wt1>`bM-sRCC$PhY@ z9M!{Hg@s(dV9Ao>j}@()U@QAR>G?%V`up>5{^8Ee?>(Y2yj52j*w#qa0XgmxwK{?= zhYn(-ic0SIMYQx_yqd&pm%!W_{Cai%V$9ked=bsG;o*hNDf+CR*Q_!wDbBW3SDOrC zm4q3Bi>h$G3sU;LYTW5++KZ-=No8C%R11g-M_|3|d#y9XUGz}wtMu^>ga$c)+}PKK z2kzqDc$1+d>kGm3@SI7+>$Ivm+V!GP-xzYXB~6h>BKuFs*o;Bf7@4`JS!AV*==6S9 z2e=h9Lcms+eqk4;t`(XI^C*j?k$0$qbV7ur0M$q zCBv$iYc~X~*h;r9b5@t!wQ*1h3tz<{Ka4hrwyAwoR_WH|%P&viKBz@FjNeb_oKHD% zGkdzKa&l3-1UWz92vBbbv57FdJ|N*5{H*+0U9cEPdu5Grw>yg2+B~BRn;t_j;P6I) znggc8co*QTDv@z@%B#Iyftx*{%ubs&&3e8~5*1l6@y(;*N|9n}GWGlJ9Rnx^IB{|z zTxU3)lRgM#?-p`Y$3H)>1~d4qt-PP7&zS;C5f7F{Qetp?rE5SHD1zru<)C7=si*q( z^DC@5W>KikI(eF!e4z ztc3!wX4^?`kD}@y9*F6>OF@A_RZ~+FtSrlrSuv;#)% z+qd_a8WR-XOdd_#^!WRLD$Wsw5;3UB)~)deH{TjxuV;0Q{o<$asC0d&S%#>qt1AvY z3GZYnDTmI?!uUMvUuOOK7um1ephZy|@0|LdpKd|w$!vz|iuRewGxDFocr|XCFuSEB zD_()t4e^%{f9;807E$JOo|FhvgdtnS8sf=Q2ZN`+^s zm(TX4m+N;(^l@mV87ZBeIHOQ%OqWA(A5TU#avfiO_J;f=+KiCfNgyJOj!r%?v4T(e z4+nOK&jV`;HIJxYx(q)}I$rbEgb`N*k3>0+YPV(j;!Rs@d|8*ZDE(|ESE(mu^G#dF4iT{iEsI;pG|D4M zgMhj>{908+ZM4~)jM4`;Wi3r)dTv;{3w+F@t)cL#R>jHOHRSEvZ7EBj23ud&-C&Ov zYF1|(1dZeElYlj7J&W|~p5L9tG{Hr+lkfA<##_HmPLgFfS(Rnzx9jZPf*zWsLzB$b zbWt|RUce(zyBb)Vz4W4ka{iL_idF0?7Z@Qo-27Q8!4y9|rfoaRjgMl@jZjfp1PXYE zj%Jc=$$a(Kw$=F0h1S}p+HyGuo z0If~TDT`I63T< zdN8|2(o#Sn$WY|v(!;9KrS{p3-Mx(VU{UC9-9W)LiTGxr_xz)&*Y5Dm!-p(NcL>~Z zLpgfUre91#A60q2pRFbz6>z1AWJ4d+2)?!UcnsPffZEivLk6P!Tpf(iroa2}y6Fnb z!w6x}C%yLe6$ZMSd3i}GPM>9ZjfK3@=!c6S63ms{4-9SE)ohRNz%0m*?L}ziQSydW zG`wFw4R|E9#@RBM!k=v&&%t97nMLXpfe8RGOBe+m zR$f}f?UOS$22a>>qbV8b*~Va4Ene$8Z{s;VE3R=~+ZIsRkV{f3RJ+)+RWu7;R#KH` zIc?oqXBTxsNz?fl1#ebpNi}3v@l#H_7Gbk#hTU^l2x5aY#UTRXv@~dGG}IZ>Uhfy) zw-n2Q2P)RBMKvYu$J@7W?IuhgR#yGJfAUDzWPvq`SHh+CoU-{t(=lie+GX-P>dO$= zO-EYo5QTnCS-%#b97yNPS2y8aad?p?9lG0l)pPY=Kxc1N=Y$Eb-HVpP9={c`HzO5c$gKOL%8L(qvjnmH7R&Mt2Au@M|9UGQ?>_=R~MW@`rlD?vk8ono~2o33aPa@9kK|$q>}BB@2E!gK=c;C^M*pBD?(t1()J zb3zDUroKJVmWLLmG+|9JJOfqNR-n8lFDlA>w2PNRXWa-M?>J zC>%F_P+7__XbCD2&2>j!$3~t|Dl9A%aGUSBMoH%HP=dl}AHvAz(v<@_*fab=&$S+= zjK_Z#lbu#h@llW4qosf2MRBn|WokgdgZEJ+#!#wm7d@lnc$w=cRxxLGnHpd8I<;2| z7&oYnD?mCl=3$8gq-175^TVZuUH0mME}9SfLnU%wMRsQ zYILn#&zFNmG@+tC%Jpthn^Z5!g-Zuvw$XRT%m1~^(i64}PEP;>Sjfl=eyMj==f6$= zs8RFp&MF|8lQ(uia zv%P*S#9~m8H6fip@SVNtGTPTSO;6QvQ*pTOv}IdnJ$19O)Axzo*kjkIQw!jSGpxF3eHhetp=N{Odin?{g4AM=_dCwN?R(GJ)=h;8jEg{?49S zB%G5W>N3F&9ynltj5y_pdxN}mWjB?)?`F@wx8nfNl#=H@vWQH-pM!*yMecmrWmnnB ztU4N3pOPL!hprmAhM~Hm-Ax*dlYZPIH# zvb4)6kb+#Gyl_fREhzz(PqDv1zb6Krfo~|1e)9JA?$WpKMx`$l71JjlNT*+(oGlPd zeGeIJix5{Rk>ih)f@%r1699uPsRv9=M|X}YLj zJj`M!fLt1=#8o2nrp_o!X>ZKh+R{K^uSLaQPGu_WSw=aANUM&HF)!S-FEQU*_syfZ z6lnUFHbj`D^(|+-5*u}d)uy7hb;$ch=3AYhOA6tIuqp11KM(%`m6}>s-fhJlJ9jF^MFg!r zscQQj07TkvvzsU0y5ABUb2?NXt(jes-9v)gS)xvd85YZb0Zt$o>7e-WS1bb*J&#JN z?W-3XHaX*1r0y?=ujJ$jCh#`)2e=-AQKBsiI$mzQtrvardnt{ta806{DMt0UnM_y_%MgEa#X$yy8mLauJKrUzfk(Q z;6uID)?_ub5FJax_xnR@>z}{kXeTYF5y=sXcbX;1WB9Y8yLQ;#$un5Ydzk?Hb!^{$ zoVWK$p$G(^ej-R6@T&qK3$^9wSdSOkcBW8n8x-cATX{9yY(NSe{h#CeO({n%0HvQsXGcLp0-R;2E54DGJ^mT?%!4$T}<*?G_Jaz3z zn~h8l3`I>+OSv3jW~JgKo*F6l80$)#@cuP!QpS-|0gACjNY#BvYO{P|{qjvT^H@n{ z>}ef)&W+{lSsAwjig`?>gQp9RUvC53wMAPBTEdPzF)HKuLO7M-|K#uiTb2FG8K&eMF00*icTv zHpHY{<~-b%O*hUdGa(YXiCDH99~t|Uq2TghT)I}~B(gwfRf1Nw+p|AT6WP-;;4BX( z8d?^p$v)dKqp(0Bq+b&Ot=Ai3R89*=A3RWd>#~;T%L2J+G2XbG6(hmhGE(Hz!Yu8s z-JtP(5|L;Y2VZ-xkfR*SB8jU$f~ALKz(0IZy-Z6+j4v8!zoN(6yej%c(|K;cW`W_i zXe?iT3VlsDj7Za_*~34|K?<+ne@QE*^nTjCUS3`I(L58FZsh0Zk9T->qbo(BE`+Qf zV29-7$wUT&m(%dW?#GV4I8A6ks8qAb#PheNv(DUnz9eo|cUTLXdECUi*REf$kg0?H zd-U!dYT=9p0|c7JwkL>DtOxbj*g$W872qq|{9@OWd4;|eY)6bEPe5&Is|JC78G$qz&E~{Xg z$|v6&+hQevh1J`9v-iZ~a}&)d0*EqmB>Efbq00LS$qltf|JVNJ{%1*O;OD(1kmb>}^SX!vTx#pwh;AkZj9v+lD0ffPYLW!GXE;3)CNpNwB zPdRNq;qkXWhIfHENxdj8QR2Gxxcawb833^SX9MVGvS5^-(lqBVo3*Jm8nNcpyGG8qR zm0g!oJ(i%%A%LosSCJ|23QdGQ6K!5FMTIzy@HJ>baxC&T+1nejmxSA8ko(Sw7Fli% zWkF8-M)RBP>v%AE0}o9*jqpg)fMll8OE0*-`0O30=;)xqy_LHIfve!NOcTJ${0RY} z+x~d6@0VY)C~x#H6~Pw`r?P)ozUH-a6Xm=Jex4b=0eU~secVhbz6or_Bz-0uB5q2{ zMY|zW`WUAu2*S|3uIRV>?6Z4Ex;l1-T%+*~u!|?`9HF^}Cp4LJ@MyCbSe1NabIOe` zo(u4iBYa)9e;4y)`w9={D}hkH*ccTkCubNLf5bQ4odjc-K1 z2#6N|M})mTBt1baj9OE1Qmd(}*cl^`m@Vd@!f0{ow#(b*D=$5|$c0cMbV2?_2`9x%!4?zxY;_l)!-ng{(4ykdYzk-s$bwU3X_Bn(F2mn@*G zm^iU4=yyi>?C?xvMRp)6aqI35FmQZ*f2V6t;k^i;4RV+DPE{O;gkH(`8C_ZQBm?}b zC+>K=NwQqJBiKOs9lsxhyeV|lvci*=!{H^1f7r&$_1__K)3o;m#^j0ug_MeZQl;`M z#O^H&ImUr$H*bziIdORF@mrdGyMFTd1suwh3LkWVJsC05Fi-DLUd*Zy#cjY0VX?&T zc%ikPQd~^AShEB2-8~WXj07@ch!vYnaCqu0#@7FT@?;vbo$KR2%`c-tK&WsElRwV2GqA-ga= zlm<-Z;5*UcG#odS?>S?^9G#I9WYD%xYQv z{P+4;iw^|JkQFH|9u2fhV!0Iy91-S%AVO|6(woHPncXz#&t>K@7X`4ZsX8o)9ENRn1{ zKO$c+y*7XI$!7Q`aXZujeMW8EFt_UJ-77eYg7hwc2v7^(A@Kf#!ZUL_vG|X*re^)B zMP%}T06(aVXeiA67tj}Vmr!*hcigF(wn_u_3%QMx99}HZR^RpRtzD61%Z=p}1few# za%5HuyYH17z~eBW%nyVglBlCF_Wm!sPvbqtpW#3z_to0&?v;roQOrXM$1R`Bm*0I< zV00K>L|o-`M}QvB={pnKcIfW;zv~%oxH^;&tiKL+js^ zCyln!T9;iA&ZyqW(J}enC6|twIcbuzTd1$Y{>A6hcs~CgSkFjd#bsx1xM=mPBRAD zKASBv6{>$)q19@E9}jqVdFqUo*PgYLh0r!DgDQyTg48&68{ zO~@L&y%Hs6Hr6yR{yFmP&kGk(+~@zLW}*pik;o7|_t}CUKEu`S=bwM>_0K^gf4)O= zi*PJcH!vy?>0m5%oLwokqXEPM)&KMRH8CjNy~Bo$3@KbYKH*`0zA>>Tha3Iu=~MUC z05hNPQXDmlwFQ($tjhO0L!BF_8qcQ`T;6#RDM5d@oU_`0+(7X**CS$jqOs^Ank$y{ zDdwY-9wxA0C4*78`TXbKi^}yI-A(OWqpTql5D*Z!G6J=P+e|WT-x}WJ*Czy2&wKReKQx?L_V4%#LNmTocL05}e1K~;cH-sm zfBAa6>uekOpjbN15C9TH%}$=LrK~}LQx33~(Ry4bZ#XK$3XSiQIIg*cjGtb~vcE(7 zV2Pn}tDn?otajJ6T}LmS@=#TZ2$|-A@)v6iX!SY_aN5dMgyR~hEzJ8rCV{vr(<*?| zxO;h-b{zV#cL49z_>KtBFJsH5O?Q}Ziq*8zHLpolfs&Q**o-mwn6Jml?+}OR|19b! za4Wz zyoD0F`A=hHGABf44i#C#L|_r!(UxI@p@H?~+inSf|B%MwL~yw%-I?bT^RWXjE9^Yh z$@F}4W!+<8A(o)RR}_Y^Fqb9YzB!1^ab&63O1oxrWLh>8JxLjF4z>zB76okL9N2(F z@rQ*A*-W*N*EJ$n&~^eo2)>!<+2?NV+(Dc zI7=Grh@k3dz&mx4<0}g>{v&2(&d{l%d<9IsH5WW1Yd@?^v>><`$o%M!NCfhHUZ8CilDZOrPsTVFbF|C4VfEgFhvL#RDc z1w*`XgI(%TB_@R6%xH3K1=(fm8%3F^g7UPE&6kW`S{*ODZf<**zRjHgF%3pN`$-bwG^&Q&VxD_dF zVMMCrBryGeNO=bcTcmkmjn-{D_6i1Z(%$*O+P0iP(*p|)=F0)W!NC?4^b_KoBnW}f zJJv@zLwQ?A#n<8<00}XHP>;B*} zN=4yEu;o^FH>c=@dCl3qM^@Ti93-m3L(^XUj0p7bW4`n;3DI-KW@Dzq zG8OAV;%zHe5F*%4Fofm7+DAtmEqV9+`E!d^jBFRs{fM*{Zgsz_Sy>QNLdb*|2j4B( zPh0H7nKd00YlU;o1yi9Y(yl*o|J?@J7Ko1t1Z-xbBlr%!kNg#H^yj(DT4X zGQO0iIlbsQaXSb27V%~GYhPejge##q7}D{KyYvkmBG9-IN7_)hepE`^3 zj(#e7k-&6q&JBecZm-wWz!Onqsyyz@OXPn-?1$;k7^)@z_&VtF^Euu zcJJP8VJl9zLK9$1Bd9#C;~WKuEm0Hmh?`4fvr}nX3_Y(lb!sSZhA`r}^ZqbavtAXD zvxFgo3d%HYBTtq1FP2}REGqdG^a$Ak!!p4ERhi}H&u%FbJ_87zlt9=NeTyV-TsXo2 z0ik6H-(=5l+Jl=vfzCKD%6u_6X84VE3XWe<4n$uiL<@vSN*nwz0dnSD09WNsoes6u z=D5}h(bpz#I!kg{8(61ZJ@)FQUjYzU4Z=`Z z@eXd9R_-ltLt>pxfn1LSezR?l+h{h|RK3G0MBo6Oyb}afqGBguB~L=fA;M9&*o{Tg zm$AZHSRL=#^Q+&M)?+>7fA7KjQ&bL8e8W>cH?@(?B{h(CC6;mYg-E2GT|t)M@rO{P z%cRuJAHust1Oef5whQK*>uY{@3C$LgvIcCV)Y*0C~&;Tp3j)R#F7)i zzOI+=Ac0Jg1oCbzvt#j8K@mhRE=tFVYj5{zE$wp+dI5?^ULE^ROku>NLrQg4p@&56 zbyXWEb70FJQFa7=R3ueQi0=HHJM8o10n(@s4vW+ll6Q?9 zNqPpft4k&=){kEEmg^4%*er{D{pO7Xr4Fk)`A#|M3#hyfti9~^cFvD{2G2161xy{; zW>p2m@9yPnVH2ND3ar`MB9pw+V;GH3A`Z>%;0 zpblDIT(;yu(6R8s>o;%SeA$GJ496b)9vVk6d*10}3sbda0W1Rm%-Q~FiyBcO`UtjC za$XUQ1Fkkb&7?+^VIzdP{NaC}yeSXDHAVz%K#c1Mu1;u1Bh0q40g}ilX}Uw=bLnub zJx|73sw=|}acL-W&v2j0{`HHbU(q??=DXC_lg!rRgW2t&K_qkyrr>eexxQ{@SVDx= z&2t)XDbC70QoFKLQK7yKpnmEW`qGw}Om{125A6K8t+Ak2Kk@BuSgZ7Wk6+?CEC$4_ zw1eVP)@}}l5LUGzk5J?MBAxwX)I1#4bI$TI4W&yRz{l`|Lv5nX2kE0)cNO9zG2k-y>Pu{P%BpaazvA=n%ezVu#Lv~c~1KFi^L4W z=(WJCr2MtoE|3aRLmhd73+?Re&Re8@A%=*eo&oijdde3ukqnD)+1Sw7*jT~LFHKj& z`3_^m9B@dnTe!wBkoXXY{X+;@Nqi3w(s+b_JC%xp1(5E$arA%SxkI6LPt9`A%@`iB zGkn>xTu;DcuP6?;=^@nyZLlUZrcCis$(lRzV^E`b4g!NW2bbFq+~E*?{;SLVh8aiu z3l|1T;)kT=_~lBODR4r4XoZNXQpzd_NCq+};#`9&Uz|%{Ux`_e8Tbd)Pk!ulbRnUR z0vg`I^SaCErT0p#I3UAC@Pkw}1pKl1|AdtS# zxU7DCz0JqBT%pZjMDm>Iw!FJ3L`BJQ)>R}EMSDge;f1B}z-}%1)mk>^tR!xhSFWjA z5!yp;Lv%I*#2jjeh{B;bCSd2`QIM9V2~c@%`Y?rl+CX^yjMxT7M2uRF!x@h7a{R8h zFIPyj?=Zg=gjd{KOdqAY4|)3JNexo?Azqv!gtK)}LeN!fl?u#=)0d`N-$Ak?k-wb6 z;5lW?q6laap2!8QYRxFqCuCy|6Yo?h0$m1#rsdpmIRL4=R$+HImY=)3fM?N$e}^Tl z)*rPPG^{7yskZVTS4iE?Iv11blzS*DMT?bk4_b~za5I}JEV7xDMg_C;#Es*_8n^1&{&R^}%-tl}&r%0gC8zg)Xb(RgVA6YqH5qA9^%n}MPArPC94sa+ zqKt#9uGj1USpim0ZH;$n6pCe$$l*Mu(p^dOwnA5qd>HDBCPSYksP{TiA`G_F2f`J- zetQ4)IZVPb60>EQfv(D$&UF5Q@O(n>GZoSeOx4LblNj4!u^$94(OQZ5 zZY;-_T4fb}xMK>xFwF_2>JmFqP6Inu@__2n3QtS1F8SzKQI@kt;nB?DRcH}pusJG@ zur6XTZ69>OA|RuNWWuWwu1-S$roCD+4t3fH_Bf+ikEEj6ZSmgHrzAU<4dfyWM9#OV zwHSI2jAWo^c7_P=dQCy%cRF z<~lk$8kheGD~Yn03O5_2yHJSOI(g#Z1aL+hxc>dS`Voe~3l8oab6!p$7P}F#Ko{|G z2>DP19}-b1)xwzD%kY?8i{orK+viQk&fLm^+E{!_>B}T$Q`-CCtsaT@ znm)GhW5XdGT*A9BghYi8=# zclmtI&v_olaUSPcOy)tARPVR{`fC~D6iOvVv&^`C4kA}1!77KW8oqwTm;Vew?k~W# ztf?71B0&120YssYkVe%=t6GL1h@t`|-{2RoX>?OeDM8{@=aK#yLi`3&T0H-^F2rZ4 zf-XsZPAtA#*YNnH!73*{i|oA?MWINEJ)UtONUaX2aR(r;O*pQik4Z;vfmT@8Y+&Uv zt;@(=%0sZ&3?}*b?A*DtG#?@dOTQGPxl4clAc(z|rV6n-o$N~LL(e+Htn4nBF9hbq%wu8cr^1;XCPNlE*pUgG~qZ0{L;15N$bkN$E1EVJ!gH( zv`i`?D9J4J#zEbRUawtXH&%71Y_ED#e=IQCoPxm?zS%_9y z8qs*{!6VbJToFX$4wgbA7%1+(LT2l+x#m1(A%Mc>cx`11ZAg04j(L>r;#+WoBl}-` z*#kI7O6Y}Cz)_e_<+Hf+#uszRG|616l7!3(a-(VpN3P;P`e<{rG%ilQ60ZW)XAlKSYZ z>p&hQlMz(M2=7c|#bXLSL#JvKBSNaC6cp&R@c!U!vuuf;%@c_br#61tf|TBTS(?V& z^Jl;b`n$O`b^Yg1JjEJ+`^)D}hm@dpGN?9hue8O=DnhtNYP{l)jUSZmHz`V;%30@s zS}0B4H%H3QD6U(^HGc4MF92Xt{u0@SV7uO)o%+u)S=co^!&fj7)nFDK6m6mN!tSVU|YVxdM+T=Idjhx^-WONLzM#N)*Gi$H28Hl{Ms zFj-B}e{}8IrYjx}pL8FrWWP&{#$eSZL0=*(!cHlJWavYFE&1QD2VLYKBoJyJlYm94 zrh!f1Aio!`pH#BxzU{OHxs}*gN;58C3D?~cCiK~2FdO{zFOvGx_1*5k3yY@ zq^NW>zb_3T$n%o-E|A6W=coCRG@=w)PA{ei^V@z9LR8l_uC&KX=H1L%{eZy0Wwz;?WVNU!zt5hes^X>k zJ>vjU!|9tIp>y5-Irl+HxgUR4k`#Kblrj3_+@=uBm3lLI9GY8og075Sef&73@A=|! zL}kaB0Er4Q9gM;W{5C_R=vkkj#k_6SheH)kmlV2?UoT?J(Rh<{B&}c!%_*P4H zyB#cys?+<4iQ<7bIa)vXxaWI*{&IaWfx6zUs=#^fjC+ku&t87A%dG2{9mf7N{PE$D zzH|D_GC4c_Y}Y$yZbe?0Gw)`f&5`DNN3M=a@Z4AW)1B12=T4UT=pQ~@+Pv#n)2>F% z#+SMm_0Somr}gNQwr7H}YM$MH_VjGs92>W`OMm+0;6+EltC^OTn))MFs1u3f#vHsL zEz_4dmz0*OqvwXUoQ`8~uM>#Cmghx>!BblFUsWr!_hc>#TV6;Q%i|vhFw-xT&(Hc) z&K+qXdHVEevmGvL*IK{$CcL&PSbb-Ty`A0QuF^Fo|B=OLe={upEewMgzamjM&I7s`2PInoF0EriVi;~E)POimsC{PtYjW?#;5H@i}j7hpg|eA8wf`rBq!(E%VfCW zE3y}O1_lJYC~9h)MG=XzVSg0T&v}9@ZNORyAAGYskxG-A_)WI0^W(vz%bLa4WpT&b zDy3yY2Lhsl&qoR;B_mC_Dme$y6K0+Ve_8js#J^Ql(RsVYA{y|BrmoOn2zhm^j8^kl zi-3}Ol`cUIPcBrPULQ-kTH%;}qfl%ed7XbS>dV;C(Q%jS<~Ch|k!Xfc#dPrb01xD; zDE{g-@?vWlJQ0n!EM-xI^2pOb6Bl?cVRrWRkqNI$yToBTnEVw`j@e>*`XFF}vh8qT z^1+@(lZ%J}3##0=Uq^^;ak^wlY_F8*)4&oxa<0QrMyacQye&Dl$Y1vW)=He8-XrS%~FP(pQ+Ja@cN35p5L_<|DypxgqkH=clYC{79wU~U+ z^p!Q)@v*$Tv;iY?Cg=K2mcqUe;*1#6G3O=Ml|{n2`bPg4Q=@;(p;r8*F}1SQ9PsPZ z&!^*Le^PyYy*g`1WvP{wIvsffBv3sTwqy;M$C{y6A?gN1?~FgZq;cJtyrkBd6#3gK z%OE49seuVw1i>~Q)-p32 zREy}_d*2ZVE{_p-M+}H92~0{)55MZ*Gt0I_28Swqy3k_M&Ji2=!5J#w7aFhP8>qCx z34yhKB`L}FYts*pBwg7aaQ58uwB0X9N2~70mxT|m-QIKSufO(-PA_V#)4IsuJ#m{Q z_8IPF>0fU04-5=rVa-`gA_BlLbI}BhBrhy(;Mi0D)P{=Q=+!uxppG z!CuoTJn^2+trF(VoohIH^U0GoyBz%d%pBg(NesMjZbEQ0xJq$RnoA2^+J>81nO zN;61OG_*a{uLMPY?Ot{J&Yd=P1eM97H=_saId$@64U?&ELmX`7R{!xCV`*S$7+R?u zs?56G86S6;h2*!^D?Vm~>dmPY%?JO7Ux~2WqXA87xAJZYNO^`CF&*Oom}NZ1WbKAH`=#YAk|S?rmqb{Zgy_Wr$yTA2|f z(~VD?CFXBvv!fEZJDJGoydIQ!x`|0x1e=cyQ{~;|A1_hp2Qbk(XILHF|DdbX zJ!h6K7ng>f(gQ$FGQaYCaq$w6!NYSMK7O(bHb@+zEL6eODTr;b>{|81MriVK+Q6a{ zVUUD0o#)W1ZCi%52A+B*1tRe7q9i%vcy^hu$RB306z2Ws?;b0<2yW`sGYZvOD%=ja zdMNY7d^U(e&CVn6eyc?hvs+t4S1LD=$E!S)la|$}dd_WZEOzJ@vui%MdHx|}1NZ+k zIbAIx3YA=upL-%-fM<+}F5wWQbw-8<%ez_mlEA^lSknQq(kunr8J%cmW+oHrOVa{R zlBd|X7#eN^7(T+0pst~DBe#$e5*O&RbN|bWTVTt>GL{>{B~VvCPo&?%W{~pn{_bOI5*1Osd6MKM6|sH?180aI9khTqW8a7b6;;Q_&XIhA~E zY()wRA_UN6uJ1Bu&OR}H?c8~p>I(m(#OY;HEaB1>Tl(={xg5XT)UlbW4i?Aa7bW5< z5m2F5=#ZUGiUhwQ`7{AQy;qDNk$}=-LB&iafGdjydQ3SGr7UTc3BggLSIon^I1AE~ zHux&HRN|@mFW#T^DLq1v<-2&H@@Ks8@$9Xor4R{Fz_yV`&H+s#|zX8+MA zc+AF+vn-{{%BslQKl=P%US!Y&;;|2<*l{uPgtJf^I@Clw5$Nn;5cVucCeu0dIsGwB z%HpUYU=K7v_^=V>+)4KHjYScrb2#u0Ri;LNemy1SHfAKsUwsusuBb*1EoC#Sl90HD zTr2svjTPpfD21e?MmKUB_YUS{^#Jgd!Gh4G9e}eaKfq!{?WI+)dN;A?$`gH7%g?D7 zKIaU*%?6cunA9h1^5h#gCL`Y#q8~nC_Oe(GxX0z;b2l4q)DD$CKwA6?r-LDEOwt)W zdKmJfDKrWe78Z8!n>BN$pKN|CRa6HIIDJ`{?-5Bw<~{6NBp^Psx6v*PLKqhAZsew*9j^1z@cG!D|YSM7b zosyiKfk^f=*=Y7%v1yi>w9>_xw%0(IOMrMO6Zh9U(TXgE9Sq&vw7opd$RT%BdVT-B zzEi;(e-R5lj1V0X6l54Z9w+8lTyLc`X3c`&+KC472#fdWxHu*_%329(=JS|@2;e(l)TfnF>~cOS|*G_=Q#AMfHtC-rnxki)OFg%Ursz{>oWxtBJ~`6Jm_ijzqSaBB7i2a zJ>fgB7ZCm*Qy0I<8@Nmvka2`F#3=CS&O#)ZK*!PpE6*0 zO!;2dhG&%RUAE0ao2f@LA0JG%z3#*oMCtyPXK!$BLaoGw{Cf z^A{1bi>Dj0U%(sof?}Qk5E)N@#UCz|{xUzJMDjV+9)u*{z-DVgv=+2*GVRP76dy6~ z-Mhn9K8dgK;xIQ|(1c#Ez%HqqhlaJ3r4YzDIx)ywLP%liZdToa$31N%R_=p;0YOLW}`bmRc1tXIpq<9L}*D2 zw7(8o=yQNw1y3fzS`g2us=Z4O&?n()T6|vmIhc7f{2ZFqxZBm|I7gnpacJR$vAWnv z6SAfg-(;XETj-nRBQ(~vaC&Uynf+V088pTWZLN0~f^8m&k9|;sTppZLe#UT@x)s1L z**Y;|1o`E(eZx*&{R`15Vdr{bBc$$g^9Hj?MPN$FtKy?BN8k0^=E%iqoPPjOs&|#BK^j;TQ$20 z#x!qk{(!9yDd2xhIc2kxBB1lOJVI$W5KTwzYGj>vrf3x`u{Ov4Op%;gI^dM1fk?x^ zz##X+nv-ZlgAfEwq7v{8R9O?^Y;@mCy=ULP6T$fhotqLkDk^)?X?mv~b1ml*!E@@# zPb>H3Q67b@w;65a;QZBl&$*ZDMHQhBqr=f3K-DRai7l zCxxus(4DW2NR9toEcJSdBnFZ0wr*vlg(RMrGaPAjj+2}&C74HtyaV(&Hs$yU{hR4? z)4w#@0)SNk$Detgj!qetGG(y{aP{Ny>d?08BSvx_YiULsUS(8D!#5RXm)y!gS)N^n zhL1I@NVKRoyv@^9SNodl*cp1haSx&jb}5d~=mgQ&%<5T26I*-^qO~d?j8UMb{va~jd+G45dATDVSRa4b)ve1yxR`Y+s2&ePIbLWQb zPb#gdV3?qM^_bcT-Ih}w9Wfk%QmLnyecoK`>gw9zn{TW=hYlUufppqG9#KUtW;1@H zXj-_?`5_&c8d_Re10)-X99p4rw4b87r5)|hXBOSK77@JfzJ2Nj0{e=IioFgqUC!tY z4cB|#Xs3l%(3VolJ;kzAa}u4Dt)G$itmxi_6}JTu=!zXaT$?7>_M7TY6Metz(7|%c zFF*fmI81j{Q+$oD94)mw&U=d_^NFL$_%HtTubse~no|u7q<2YC)v~xwk4?!eQxSqY7H^5_cw{rnlr8tibA2h{vcWf~rr6kiUp z0dn^A;K@q2woHdy3~t{1v(HqKIWYX=IMTo4!UB(C791zC_`b`JY3UKooX|7Lf%&2#qF}VNvYL}8O|V!;$CdEop?x14wVHV(@@u7S z4jiXfs@jtt7{2{SK|sWVD_7?$77fqs=s795h-BuArA}nc z`tJEkN$I@tj5%(Ovtl?a}8_#E7B4@uqw37JD14>>LL2f)%>?zpVKEA$| z-!!3K%hBx1M%6LiJZDhL{DteZIxaNu2H)Je%E|Rn*pZg|{sQvC-yMX!D;3f!j212?H~HYm=lpCQmniBuW6*gQFf%Ue(QNzS~>p!376_PNd4Vv5RB<()}5P z;_4)Lmh@axdPI@i9Xoc+EJ@+X&J#R9b97uWPd+6r)n=!j3@2k_&Sa&)lMEA8GR20t zGI22`f1GE#N^&a5@VpuV^1V(hLI(gh_lL!lCLwSLi-~%{z)0*`szym*oXwk1uG>5tRhbAb z&=aXWU5mz4roZE!o003cYu9fVc;H{lUY|f&Ba}VrX$_F~)7g#0uG=WOSJP2hK{rZ- zi!N_|U8uUvk!=$;YX3O!$vssPYB0O+zdw>Za`KH-#ri+dwkf>~42S9ExljsGHxbE* zUYFxfeHahLXf!7y49+1|Q?3eZmpKQ2RNh;@`{7>a2IK6}(yJl-UGZ#ok6_0h(R4e^ z+OAjKOv$L596-m(-xcj#xJj>Rb4yrN)CZ%O!zBzJm=Fn(A&n-ckddbrW1SufcW)w0 zhRsyPJ+!nrl0u38BWk8AUzS~*bFHJZ+rqt0X}1;d@1Yf;SDI>&xZWc~g+*Ljbc?h$ znCkD+IDxXFWmQle3(>5Jxpg>;d!au!Kc9HNP0gv(rp=6i%T`PyqKuVQJ9GkD{Q4eY4~){(h*l&%v(UzVeUgA*3|HnC*8bb6MoUEs)-A* zK_h_SeWW?H%b|5c-sFZv0!iGt@n*v0DN|-pHEk`O1czdub~{CTT47E0VFeVc_>27o zWs^Z@9??>kA^K!|?-Z<<#R(m@%+G_I=|b!A=)qf_!OfhSm| zO-^are(UyIBX6f)FDd{B-s>b|Tw=q~16|9Y!)63O7nYw+_(@4TRk4Hhr{ZY5pLz5B zI!=zTaL(#s;acnaU@c(RjQ~ZGcJ{PhFKOj}?Pw5&f^BPQa-QDc!4av>?<==rXsdhh zucsn#Mzp=u;J7~tk^4!YhRhLKTC>P5&P^6HXWikpQ41vVNq%Fs9UA7=D>^*CE7J&b zXVfmE&mU0_ivnV_E?V3ZCr)H$gAB?5GDR5@NEx!pjG++{k@fTB9OaStSIAW~m_{i$ zi2BqEjXxosjalq6VZsDf-Lz?1S6P3SX&l(uoB0NLDI?(B&g8}Sr`}w?rKUOrg6gO5 zIaUcDq5lRT==_j`Hg9yDwC~dTsp)8MFXN=WdyVo7kUI7kcZfB+cY^E{q(RvG}@(dO=wv8o_ zUN4PseuJ>O!SVVRa<60+TDfNy{vuJ}RdX46dXmsKr)}GQuK~*pQ_nYw(6<+wJbSq zu?q*zyGv~h(Z3m9?BBVW?;$b;Os`}pMlS=Lh@~YKAYxm$H}v*=^APu#Y|R+Hyn-Pm zXA&hZLU=N}vfVVwA?ApVS0KogW}LVyixTD$8V&*2hONYz2cXF^q1!l4nAcn)s-hrH zZ{M}~6oGB*cz%YOa^725&2@Ww0{1ku3C5gay~<^gG8W}74cLp4uo;!H78#l7R^v*k zTMg5x_2@&^Ur!&h#A(qGE?ZB4At_jDeRfShC8bvthudoEMLYc9d!NdPAlW6C*14IL z_u^!zfj}uXmDD#RtlS)somdE{0Ef?GI;^T=J{7NzxA!7XnoAsQyHI~$=g|1hK)kk4 z|Atd1*yOQ>P6LM}Bg(2SW7U+TS1MrahCR*=52~wAQzNS6lE&HI$tKUa^JUSRta*r} zBg|!gtpM?%>&X}WN$Zu6S?8SJk|6o)+O^QLAU}UKeQAAbvKEL!=h@Y-J)(gjujl2(CD+XE*YQdg^2}{F`#%|I03|-JDm&sxMq~35+lql; zhGVV`sZi-f@r!_922U$03?fU`-Mm%J+p<^y4~U0{>W9?SFGg?S(dsoi&ZEM0BoCHx z*CHR#&(jExpI!;Y`0m@DGuP$Ejs~>`3~LbGW7IVT9*$2i;Bb|x0DybN?J}o5^$iy z)&$mK>>fLzi9@wGoJ9YQqiUC2F*J}V>(cfb)WAu$u5|Cx7cwL{7h2&ohO|Bk;Ozx3 zZZDSEoX|F&4h{|-fO!RBA-jHEe~`jKK*@E;;1W-&Cn=kf}0CScAb4VbhsnT-E5|B?uG>}1>_3IeOK+;YF<|bz) zVKK(3Dr050-6RH>o?<_9p7<^Ede~Sxw%hWYh+nirm6-<%XE~0Hd+0gTi{ej={aETt z{V7CaVB>ZBH-xBdm#%vrm`KHfbo%$7!mB_Ym-;g3HZ~iWK1I!O4dL;3+v_akbZFm9 zS>=bx6d%wcOw?20GL2S?09&u1`XkAbJa8tn%#q z!b4*}Wdr#M`ed{SSlW%_G6hurmP{qKFEK=JemY}=4As$gJO!j$b>Yoy<7Um83C}{l zGmRFnO?5SJlLQ+vK}BRdYtp;e5dXQ9BVQ}R$*t7*MiTl=PB^R?JignWLs?`SS2dhJ zK9fbJbFGT!_X%KAK8U4s(4*H4W0ff9>7ix3b9~w?B%f5dv#L2w+#hcpbysgTn1zFe z_7{ixF&pFrX{0)Z9+|k*@wOMr`;bphp&aw|n>BT+mq4llYEb&z?h$hW$Ttv0-oO?u zP7nM<>5w`Q2hfVCg@Vr;Ka|9l?|R>|#o`mYG`dA60dwwVF3m9oG?hpIN82jhLlOnN zy}f-<8UWu*Cn8c-Q(OVm`vZa*=`{FO7zsxH(Pz)N+WrOq<=>jB{jcTW{#THN|1&PK zQ3kiF6a5-URm?4q|66?#8c&a`G|9wk*CRMK2L1F4J0|Z%JQF)*2s8kyj9-=6VCuTM36Xb_EKCcvhbq@$RyF{lo7qgp zfEPzQ4xE4L?%lg7Q;98#&)-b#p?;B(k*i-nx0Km2=$fSeO@=+oU^1iuzJc?P-EaxI zOlzWscJE1sQ>G}oS!m}Kv7qo{K>pu12>y!-(DL}w%Qob(@_A(w^fwi)eFJ7iicG>f zvr?kbUahc4F)NlP5MuspMGfsgiEB4wO?7QTjN%jGCEbzynxFNL?7I}TF4;GT@6V$E zv>v0z%f;zHdg)Y=rLC)^sp&BVYu%HgfefhF_G8psMu!_wDW5u1LlqJBd)kbG7f^+u z7|B@&0s>Cq#jvt4-c0xkf=O*Qf9M5lj|~#m4tv$#U&Exsf89yScuH=1ly;;{{nRm& z++ZA*TiJ`nkWdgu{jqgqbDAUoa%UZO_FTZ@Ir5!F4A5Q{O)$f#*f7FK%uN6tg0h)P zFZAgx!`|QQs6PJ*QyrnFR@!zDmJ&bb$|FuzkdQkbx# zzrO#ix6o}QONx(sH@IqRjFCN}u@?{-hOf_8M$!_F_98i>POK)T4}br|jVa5Oi-1ZL zAEO-60gHh|JCr7v-7eTL&9y=y;>p00w0grCqzAe2=h^R!MP7Se(c^N0l z@cO(*sSp|xqAJq;-o1t1#%%3Qpi`k5sxfU{l{cV>f}}0XsuSZ5a=-Cj3^6kXOpyK< zTsSP3F1>+bf>Lt^X&A)1X>hz)Ptwm2sOu^~s|jz8M^nsD3JUXbKXco`4KFiOflE2$ z29N+VM`}K*bLj!3`jX=TWnYe3#}mkZg)%wyjJ;V4{7{ycb5T{iC^(a3_BXC-KzLYv zPUgZzK_fD;?kD``knV_~lsL{pS4d?*>9Ph!p9ZUt$U7u4@@e$`d!Kz>Pih`T%_ZJH zWIW*DD}r46b6AqZ%g7^SQL0(rHh4{D%H6vN8p>~W95V)1rY1jyw6 zCeTa0Q1nHu1WQe-q=Ba z%CM_sI|1Z`zDL-j3g*U~P+eV>p;o`r_xvrg-1a3ijLC?fM?va^puQjPr41?$&KwL$ zWGvMW$l84CBGCWGLM=iTSX6ErS+~ATiCC4~WH2L8?|@-Nu&CC=Q^|a2xY+(@ICgIs zfwbt|tHVQsuL*Xkj-7}p$oO5?s&4lfA4}qJOP(5}TuAosHMbdX8DSe+(vjAQ>|log z@<-{wp|W1FuL-T25#l*berMeFyxt;Qp)>s!qK{B1xJut@%qc9$Y^8CyfwzLWTq~N` zE@eD)G=P84q%Ta2R{2*&!Ci+886t55z53B?{<{zyFkfN@$>7_()osuIt4$lttAam1 z>#EoE_N*xN>AEplVkgQm#FK}$tIz8b;zZ(K|L8jpVO!xw9I(fX z{$_fd!ywKd1Ba?b$`21{hBE3FBG(wh*Sc5P#Jzg`ARU$>B2IlNg$R%;j!CD0n`bQW zd-w1zTXfO>Q*q?}1u}**o0Aro5@=~22>j1KV|_cI==6Qbu>shl>>f=RIU;-2j@@i> zAi-f4pPT|x=ja0?>Q9o6iIXv!HDgGht)*^sI1j^tV|^7073T8DtOU{Ka4?$h5OE#F zp+N9RH7D1ePnm3GWtFg~mY({OikFNbDo1;e_Ob#0S)(yy+@U;HQ`jL3Fx$Z&`U6Wq zlX2sIhE|`uq`TmjFhp_dt5}Cjy@+73_;O|tltAlaKiiS9UZ#`aks}v)yT_AFfR2+$ zsfVZUa+>uteteAd@j@UUY+>{(BKZ*L ze~<0o9M#+QiosQ)3i;oD||n+v7=9;Sz^ zoUV4YL7O>I%Ar}J6G`(kaB>@FmHG|zQE`P^`R(2^UqXhD;Y4QqyhUIV-djFgJAm*q z;Qh=x>U0}g|2BEWp@W>fMwcqD4c_8SFWs8@8c1U%a+zabUOB^bsqEnX&m~IWr9^90 zxgQY^714XjU#fh*(qmqcgT4JZhUJP2EacU$UZ4icLA`OCFxuEj*VGTVsLMlOq4iGR zscu0!M4SIf!MB)G8%Gnm-;-whMJ#J}c7iw^N*`zWjwe^PeDyt@U-R!zeMY#Guf!e5 z<6#|{5)I!5;v5pRvk6Ep3l6+C*CyQT$&#N)`s8lJm7w+_P@jAbt)Fe*>OxVkcmISm zj9u8FOBWkY_Mc>7xuX+!vmVWEP_X|&CzCIj`IJZPu#*-Y0vPk|USeX2$cvFko1Qof zK{3LvzNxYbdt+(G%Nj_Jg3%xqEV#JSymR{NIlZa#%>Fo?1iV+DSJW5`!C~N5`SvXs zR>wK#8je$Qg@CspZ`=JM$*Y*Q$l-36R@f2a){ifbZZy0IG$u%qCMoDl(h=N~!)oB< zXHN9$8d0~5ypJmnCY$XvVkxXY`(bH+Z@;4;_u{3U>AXsexyAb^^A%=}cV!TPNh8u5 z9KGaRZ#7z1gh;k!K)y_4?RREX;giMI)*&4S%(XV@?j||~+Hh?>Te){1*Gi&X^>v--;m`GAVd7^!$s`Bglpi6Z;G&qXy3smhQSxWk7p7A5pro#n%Dit!MOfS%kUx?-XUf(LJs|) zYgOLEFvx-ueKGMXM?3!U?nM_T4&FN|Nl8gv95urGAsJkUU40w*QKk;-e^t*KZGBA! z*NgQvU%^59oReWlW!nu8e&00C>H4K-&NWY;W-vxzQO%;MAfxxu0y3>2&D8W1?N@c0!IEsdnkPv`Uin6&d9h zo>{0b?9??ca@P|#xi+!df|SD`=|*n!g5Q4j?mc&$s1arMh$mJoQ8Z(Iw>|HeUZDeq zzEKYzdU6#i3De#`#L69iscS>}kVy0)p|Xibe-oGbrffjDoA6CH;x9GS?GFk$Pq-1! zjGK>SQnXZGZg)uV^-!_ss7$wbGhl(MD39y)li|rbz?`m3TS$oYD7Y_kezKc4P2(9+INTv5 ztkj)2V>qXh{$RJlz?@dkkt}p^EE%vo<_)S>^QL*iqs;T^X+XRiR{T=hrL5N*&=(MK zIc`Ght|N@3u)|oP^^^UaIWo}==+!*7l*#KR6_+r{p|mcs*Us`xHv=am*$Hp&`2^g! z=YS_=t=~P2S0|B{ynik!zwz7jwb<0mA~R?iC}ObpZWPcBlOYsOQsOl4Xl}t&i&53k zw~o&JVhSAhbEI2(&f+wJGmuF+mOOx6*7Q?N9-ZVFcfbO>HukM$%Jl;T^eD?49qAj* z$k;&c!=#YwD$K_y)^HzaNLJXo=p@2@Ak%>sm+<1u`%(}4V6ma|@$p$w6C3&+!l(v% z_G1$1Q)#}z&35(Tui~#QQhTvzJKdtf^{FtYG39CDnN2Jciu>HS2f2#^;_4Sr1J zppVZ{nI}iK6hbi;P8_~oP;l{bdT6}Us54n*Gv?EQUyl-PsV9Vj#lyJH#TVm#-g{u^ zyN7gW)ZgX!kB_-m5%fu~oS2)6enL<~DmP0@%MRLw^EaiEY)X$~o0YIbqDsWYOuA}i ze)a`MMQ$y~pNE#)!fO~o44jduvJt;1>bPi}w7ii&Vy%=45DHw*ueGElGaSv&gq{H*7a%J-QX z5JE6{ytVIv3;*xvELtPY%t(B2TYXe3)$neuk+g*^BSt`(*z3GtRo*~udewRF zCJH1bt@P|a`^*>)%rrLXFYq7MfB5_Q9z(-#wwNU*uXt0Mc?XNL%}?Mi3#=#B`4S;S zdwQv{c3{ObQAP2Gbp$*6PN$ zuh+XWFYXxUh-B)S097^JoE#j6UZt4ci2!Zya~pnmZ{n=axEB2YP?3itpL?l=ep7%i z0q8?0_54xD!euNKp@&744F{@UL>GSp!+kPoT@(LgX4mC?Kp;a3@tDgNA>ig{+b{$#Md4?N z_a#nI(q%`Jmc_&T)WdW(knY}PefKty^(C(0Sbp0aWN<_0#D9BubR4;~Fl&Xa?df@r zwOYT(;g7xTZCL3(20~QA^vqi__!R(In`ii69cJc8-s%Lsbd$p8x=Y!f_ew{;2g*WE z9*#->Gdh_Hv?p@KNAe4E^EaRwzLNH&154OS{F&jIKJTWxem1Dr+3q5|p^B{WL@Rfq zXF|l~3!_>g?pHKDKkMq8R2+DxBd~!0m*knjoYpohIFETTS}3#-jkHg<>BwFdJ8I3e z)YM_hOZxWdvz${ba|Glj1&gYE8X;H3ao7$|&l&XPGfjE{vD^&tNt1c{Ku%d!0 zLf?Cb;(3Lx1s0RnclXG7XOywN{k**^9Zp8ENqJNuJxSiM$Q?n6Ii{$Y~0yBX0` z-Rm3BH?)p0dp>X#9^%r>r0K=qhAqAMX!q{jQOp>&nR{eH8^HaDA4kGlO2Y@RgCGmk-KBB7Zxc!<+(fP%1DvV0NF_3-O?8)^)r9h*Wu9I6Xi1iUuUDj<>=)h>wvfE&BE#BMWAl$4>=*(P8ZUj`L`Z7QD z{^_{tAy>gu&pB6;@KS|aNyo1$dabx(%NsQ_r-Q3_jL_7KN_EH$MM5NC!znvpVvc2X z12L;^?Yb(z>Y^$Izvk8P9o%PWvc&cwMhaR9rb)5BZezo$xABp+XAQj*-aelU43(FE z=~Q@7e0mOuo#8N~>+%_M?H}nyabm&l-g!@t5h2JvIb`+ojuV*I*Vp2pFuT(5 zFals31A-N?WmcaHX4LZlWjZIwtjhD8Au=P(BbxPp+txYfdAzTwIH!64 z3EkaBQ`rWy;;P&kpr7ZKCG8$ZZ-@bi;s8UpVFyMp8sa_KwEdYj8_0On=!(?7qeR2Pv2W~@pD9RI?0I(K< zg$*I0cZztTs*GA~y*1JFGnUWA7q=%XB!P!6zjR|Ahc&U!?}|>OIG<6tnWTYBO?tld zOsQ9qFd`bpYFWv)GFRZ&o*6#|Hx?& z6m=5;0=&}fjSXT}L9YCJMjh||@hZ1B`$e2f&aPIphjd%?MNrk5$XGe6kJIO(Pt>(c?@p@`k3(2ORvI7y@u^Mf|c8_7h_74PO43xR=BDSZvNCk{9FM@n0R0E-+W(nBj$ zz=B=&H0Oek1qogO@{(CcQX(_CEL}sqj}ku2n{Z+ZWA)hZt@TLDa1rkVrvjGO3hGHF~Sq4WuEiRjB3yWpg|ehLgAf3ZE-4z5?gX$ff+JK zBeVc_E+3aZ^c_AHmK^{<8_o}w+Juw9%lHliU@u;*4n$&lIdE@ZQXJ_ANKP8fR4#F* z=QY0eLX~kNFV7ro(+EmRXfg8S^$lYA4iDMM`G7a>f9FJ=Xnpo&_+35Lj-)WJyT@Sr z$sM4v4xyUq-KS4!7j0DNppvl}u|%!FRTI~OS>Qb-^}Wm{AjU`<0#2*1$F>saR1^{$ z9k~5}@auyq z815O`^Z4Bz$0A2F!SWCgL7pHVU~8 z`=y_Soy`1%b1WUVJ#X?6$P{vSyM(OOQIMmkE@I#lJxYgG^t$3{7gUkmRqvKgE8SiXtb*X#QJW|2RT@TX;U@78Ult7pON zd|kM3N|QrZUuQqkl*lBt8TdE4SC7RA@kPomX}Sz$=b&jme|-ix*7Sq#^$G4P|0X5A zmNFXk)^U)iOBuQX<74xC6dcor1G&WS29BgBFqg97>xXwJUI*vR|C0fU3pbbIQG92j zz{(g5!cql$u_8ghpiasits^_qwRrO z*r$Vk8i{{Zb@lueO{fb0Ae=}`IVQdS?R7pkmzfXJsUuatkha3zJbkKK=NwJ?-NLi$ z$RQRk0s}!qPER){hm#RZGW1ottoILy{1@pqC(SY9^1gL_pTagT69}b$ca9kTVF%VqqL>Vxpd|GAv=JY zaA=Sr`u$LMnv{S5zs)NHp<`Z?tt{l&0&LeP*xTb_F0bm-o=2+7A^mi_rgzf=e!RRfB(yiI2Ho^G+Px7y~_ Date: Wed, 30 Oct 2024 10:00:16 +1000 Subject: [PATCH 30/37] include imgs --- recognition/46822394_ViT_ADNC/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index e25f3d571..b15f62940 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -223,6 +223,9 @@ The system evaluates models using multiple metrics: | Model 1 | ./checkpoints/best_model_20241029_234652.pt | | Model 2 | ./checkpoints/best_model_20241029_224507.pt | +![confusion matrix](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/confusion_matrix.png) + +![ROC curve](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/roc_curves.png) ## Cross-Validation From 70caf1ef1f2bf3a3b96097be7e8457f500d3b4d6 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 10:35:05 +1000 Subject: [PATCH 31/37] result breakdown --- recognition/46822394_ViT_ADNC/README.md | 93 +++++++++++++++++++++---- 1 file changed, 79 insertions(+), 14 deletions(-) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index b15f62940..357baee21 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -181,6 +181,19 @@ This will: - Per-class accuracy 4. Save results to a timestamped directory +#### Cross-Validation + +The system supports model ensemble through cross-validation: +```python +predictions, true_labels, probabilities = cross_validate_models( + model1_path="./checkpoints/model1.pt", + model2_path="./checkpoints/model2.pt", + test_loader=test_loader, + device=device, + classes=CLASSES +) +``` + ### Output The evaluation script generates the following outputs in a timestamped directory: @@ -223,23 +236,75 @@ The system evaluates models using multiple metrics: | Model 1 | ./checkpoints/best_model_20241029_234652.pt | | Model 2 | ./checkpoints/best_model_20241029_224507.pt | -![confusion matrix](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/confusion_matrix.png) -![ROC curve](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/roc_curves.png) +## Visual Analysis of Results + +### Confusion Matrix Insights +![Confusion Matrix](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/confusion_matrix.png) + +The confusion matrix reveals several key patterns: + +1. **CN Classification (Top Row)** + - Strong true negative rate: 4,344 correct CN identifications + - Relatively low false positives: 196 MCI cases wrongly classified as CN + - Shows model's strength in identifying normal cases + +2. **MCI Classification (Bottom Row)** + - Notable true positive rate: 3,275 correct MCI identifications + - Higher false negatives: 1,185 CN cases misclassified as MCI + - Indicates more conservative MCI detection + +### ROC Curve Analysis +![ROC Curve](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/roc_curves.png) + +The ROC curves provide compelling evidence of model performance: + +1. **Overall Performance** + - Both classes achieve AUC = 0.96, significantly above random classification (dashed line) + - Curves show similar performance for both CN and MCI classification + - Sharp initial rise indicates excellent discrimination at high confidence thresholds + +2. **Curve Characteristics** + - Nearly identical curves for CN and MCI suggest balanced performance + - Strong early climb (0.0-0.2 FPR range) indicates high confidence predictions are very reliable + - Plateaus around 0.95 TPR, showing diminishing returns in sensitivity gains + +## Quantitative Performance Breakdown + +### Class-Specific Metrics +| Class | Key Strengths | Areas for Improvement | +|-------|---------------|----------------------| +| CN | 95.7% Recall | 78.6% Precision | +| MCI | 94.4% Precision | 73.4% Recall | + +### Overall Performance Metrics +- **Accuracy**: 84.7% +- **Macro Average F1**: 0.844 +- **Weighted Average F1**: 0.845 + +## Clinical Implications + +1. **Screening Utility** + - High CN recall (95.7%) makes it reliable for ruling out cognitive impairment + - High MCI precision (94.4%) suggests confident positive predictions are trustworthy + +2. **Risk Assessment** + - False negative rate for MCI (26.6%) suggests need for additional verification of CN predictions + - Could serve as an effective initial screening tool, with positive cases requiring clinical confirmation + +## Recommendations + +1. **Model Application** + - Best suited for initial screening where high sensitivity to CN cases is desired + - Consider threshold adjustments to balance precision/recall based on clinical priorities + +2. **Future Improvements** + - Focus on reducing CN false positives without sacrificing MCI detection if possible + - Consider additional features or data augmentation to improve MCI recall + - Investigate cases in the overlap region to identify potential distinguishing features -## Cross-Validation -The system supports model ensemble through cross-validation: -```python -predictions, true_labels, probabilities = cross_validate_models( - model1_path="./checkpoints/model1.pt", - model2_path="./checkpoints/model2.pt", - test_loader=test_loader, - device=device, - classes=CLASSES -) -``` ## License @@ -247,5 +312,5 @@ Apache License - Version 2.0, January 2004 (http://www.apache.org/licenses/) ## Acknowledgments -- ADNI for providing the dataset +- ADNI for providing the dataset https://adni.loni.usc.edu/ - Vision Transformer (ViT) original implementation From 3727846064380f9a92d91138c4dd3daa564d9550 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 10:48:02 +1000 Subject: [PATCH 32/37] specify versions --- recognition/46822394_ViT_ADNC/README.md | 31 ++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index 357baee21..3043d08bc 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -36,16 +36,16 @@ This project implements a Vision Transformer (ViT) based classification system f ``` ## Requirements - -- PyTorch -- torchvision +- python (3.11.2) +- PyTorch (2.0.0) +- torchvision (0.15.1) - PIL (Python Imaging Library) -- numpy -- matplotlib -- seaborn -- scikit-learn -- pandas -- tqdm +- numpy (1.26.4) +- matplotlib (3.7.1) +- seaborn (0.12.2) +- scikit-learn (1.2.1) +- pandas (1.5.3) +- tqdm (4.66.2) ## Installation @@ -57,7 +57,15 @@ cd 2. Install dependencies: ```bash -pip install torch torchvision pillow numpy matplotlib seaborn scikit-learn pandas tqdm +pip install torch==2.0.0 \ + torchvision==0.15.1 \ + pillow \ + numpy==1.26.4 \ + matplotlib==3.7.1 \ + seaborn==0.12.2 \ + scikit-learn==1.2.1 \ + pandas==1.5.3 \ + tqdm==4.66.2 ``` 3. Prepare the ADNI dataset in the following structure: @@ -303,9 +311,6 @@ The ROC curves provide compelling evidence of model performance: - Consider additional features or data augmentation to improve MCI recall - Investigate cases in the overlap region to identify potential distinguishing features - - - ## License Apache License - Version 2.0, January 2004 (http://www.apache.org/licenses/) From 0e2c57e5ef296c1f8c19ee142b2249b60e862377 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Wed, 30 Oct 2024 10:51:51 +1000 Subject: [PATCH 33/37] finalise document --- recognition/46822394_ViT_ADNC/README.md | 5 ++++- recognition/46822394_ViT_ADNC/dataset.py | 2 ++ recognition/46822394_ViT_ADNC/modules.py | 2 ++ recognition/46822394_ViT_ADNC/predict.py | 2 ++ recognition/46822394_ViT_ADNC/train.py | 2 ++ 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index 3043d08bc..960e0b352 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -49,6 +49,8 @@ This project implements a Vision Transformer (ViT) based classification system f ## Installation +0. Install `python 3.11.2` + 1. Clone the repository: ```bash git clone @@ -69,6 +71,7 @@ pip install torch==2.0.0 \ ``` 3. Prepare the ADNI dataset in the following structure: +Download from https://filesender.aarnet.edu.au/?s=download&token=a2baeb2d-4b19-45cc-b0fb-ab8df33a1a24 ``` AD_NC/ ├── train/ @@ -104,7 +107,7 @@ test_loader = get_dataloader(batch_size=64, train=False) Two main model architectures are provided in `modules.py`: 1. `ViTClassifier`: Basic Vision Transformer adapted for grayscale images -2. `EnhancedViTClassifier`: Advanced version with additional features +2. `EnhancedViTClassifier`: Advanced version with additional features, but the performance seems worse ```python from modules import ViTClassifier, EnhancedViTClassifier diff --git a/recognition/46822394_ViT_ADNC/dataset.py b/recognition/46822394_ViT_ADNC/dataset.py index b82796481..05555b75f 100644 --- a/recognition/46822394_ViT_ADNC/dataset.py +++ b/recognition/46822394_ViT_ADNC/dataset.py @@ -1,4 +1,6 @@ """ +Author: Ella WANG + Contains the data loaders for loading and preprocessing the ADNI brain dataset This module will help prepare training, validation and testing data to be used """ diff --git a/recognition/46822394_ViT_ADNC/modules.py b/recognition/46822394_ViT_ADNC/modules.py index c80bf15b1..0661b1a9b 100644 --- a/recognition/46822394_ViT_ADNC/modules.py +++ b/recognition/46822394_ViT_ADNC/modules.py @@ -1,4 +1,6 @@ """ +Author: Ella WANG + Contains the source code for the components of ViT classifying the Alzheimer’s disease (normal and AD) of the ADNI brain data Each component is implementated as a class or a function. """ diff --git a/recognition/46822394_ViT_ADNC/predict.py b/recognition/46822394_ViT_ADNC/predict.py index 85d157b89..ca7206c6d 100644 --- a/recognition/46822394_ViT_ADNC/predict.py +++ b/recognition/46822394_ViT_ADNC/predict.py @@ -1,4 +1,6 @@ """ +Author: Ella WANG + This module is used to show example usage the trained ViT model by using the model to predict on a testing set from the ADNI brain dataset diff --git a/recognition/46822394_ViT_ADNC/train.py b/recognition/46822394_ViT_ADNC/train.py index f7a93c9ab..86585356e 100644 --- a/recognition/46822394_ViT_ADNC/train.py +++ b/recognition/46822394_ViT_ADNC/train.py @@ -1,4 +1,6 @@ """ +Author: Ella WANG + containing the source code for training, validating, testing and saving the ViT. The model should be imported from “modules.py” and the data loader should be imported from “dataset.py”. From c851ee194ea00205bb739ce2131149f42449db10 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Sun, 10 Nov 2024 01:11:16 +1000 Subject: [PATCH 34/37] feat: save images of examples --- .gitignore | 4 + recognition/46822394_ViT_ADNC/predict.py | 157 +++++++++++++++++++---- 2 files changed, 134 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 481e0c77c..049c20bff 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,7 @@ recognition/46822394_ViT_ADNC/predict_old.py recognition/46822394_ViT_ADNC/train3.py +recognition/46822394_ViT_ADNC/ADNI/meta_data_with_label.json +*.pyc +*.pdf +*.typ diff --git a/recognition/46822394_ViT_ADNC/predict.py b/recognition/46822394_ViT_ADNC/predict.py index ca7206c6d..0bbbdba8d 100644 --- a/recognition/46822394_ViT_ADNC/predict.py +++ b/recognition/46822394_ViT_ADNC/predict.py @@ -140,30 +140,6 @@ def plot_confusion_matrix(y_true, y_pred, classes, save_path): per_class_accuracy = cm.diagonal() / cm.sum(axis=1) return per_class_accuracy, present_class_names -def evaluate_model(model, test_loader, device, classes): - """ - Evaluate model performance on test set - """ - model.eval() - - # Initialize lists to store predictions and true labels - all_preds = [] - all_labels = [] - all_probs = [] - - # Testing loop - with torch.no_grad(): - for images, labels in tqdm(test_loader, desc="Evaluating"): - images = images.to(device) - outputs = model(images) - probabilities = torch.nn.functional.softmax(outputs, dim=1) - _, predicted = torch.max(outputs.data, 1) - - all_preds.extend(predicted.cpu().numpy()) - all_labels.extend(labels.numpy()) - all_probs.extend(probabilities.cpu().numpy()) - - return np.array(all_preds), np.array(all_labels), np.array(all_probs) def save_metrics(metrics, save_path): """ @@ -192,6 +168,116 @@ def convert_numpy(obj): with open(metrics_file, 'w') as f: json.dump(metrics_json, f, indent=4, sort_keys=True, default=convert_numpy) +def save_sample_images(images, predictions, true_labels, classes, save_path, probabilities): + """ + Save sample images for all classes (CN, MCI, AD, SMC) and false positives + + Args: + images: Tensor of input images + predictions: Model predictions + true_labels: True labels + classes: List of class names + save_path: Directory to save images + probabilities: Model prediction probabilities + """ + def save_grid(img_list, title, filename): + if len(img_list) == 0: + return + + # Take up to 5 images + img_list = img_list[:5] + + # Create a grid of images + grid = vutils.make_grid(img_list, nrow=len(img_list), padding=2, normalize=True) + plt.figure(figsize=(15, 3)) + plt.axis('off') + plt.title(title) + plt.imshow(grid.permute(1, 2, 0).cpu()) + plt.savefig(save_path / filename, bbox_inches='tight', dpi=300) + plt.close() + + # Lists to store sample images for each class + correct_samples = {class_name: [] for class_name in classes} + correct_probs = {class_name: [] for class_name in classes} + + # Dictionary to store false positives for each misclassification type + false_positive_samples = { + f"{true_class}->{pred_class}": [] + for true_class in classes + for pred_class in classes + if true_class != pred_class + } + false_positive_probs = { + f"{true_class}->{pred_class}": [] + for true_class in classes + for pred_class in classes + if true_class != pred_class + } + + # Collect samples + for img, pred, true_label, prob in zip(images, predictions, true_labels, probabilities): + pred_class = classes[pred] + true_class = classes[true_label] + + if pred == true_label: + if len(correct_samples[true_class]) < 5: + correct_samples[true_class].append(img) + correct_probs[true_class].append(prob[pred]) + else: + key = f"{true_class}->{pred_class}" + if len(false_positive_samples[key]) < 5: + false_positive_samples[key].append(img) + false_positive_probs[key].append(prob[pred]) + + # Save correct classifications + for class_name in classes: + if correct_samples[class_name]: + save_grid( + correct_samples[class_name], + f"Correct {class_name} Samples\nConfidence: {[f'{p:.2f}' for p in correct_probs[class_name]]}", + f'{class_name.lower()}_correct_samples.png' + ) + + # Save false positives grouped by misclassification type + for misclass_type, samples in false_positive_samples.items(): + if samples: + true_class, pred_class = misclass_type.split('->') + save_grid( + samples, + f"False Positives: {misclass_type}\n" + \ + f"True: {true_class}, Predicted: {pred_class}\n" + \ + f"Confidence: {[f'{p:.2f}' for p in false_positive_probs[misclass_type]]}", + f'false_positive_{true_class.lower()}_to_{pred_class.lower()}.png' + ) + +def evaluate_model(model, test_loader, device, classes): + """ + Evaluate model performance on test set + """ + model.eval() + + # Initialise lists to store predictions, true labels, and images + all_preds = [] + all_labels = [] + all_probs = [] + all_images = [] + + # Testing loop + with torch.no_grad(): + for images, labels in tqdm(test_loader, desc="Evaluating"): + images = images.to(device) + outputs = model(images) + probabilities = torch.nn.functional.softmax(outputs, dim=1) + _, predicted = torch.max(outputs.data, 1) + + all_preds.extend(predicted.cpu().numpy()) + all_labels.extend(labels.numpy()) + all_probs.extend(probabilities.cpu().numpy()) + all_images.extend(images.cpu()) + + return (np.array(all_preds), np.array(all_labels), + np.array(all_probs), torch.stack(all_images)) + def main(): # Configuration BATCH_SIZE = 64 @@ -212,8 +298,8 @@ def main(): print(f"Test set size: {len(test_dataset)} images") # Define paths for both models - model1_path = "./checkpoints/best_model_20241029_234652.pt" - model2_path = "./checkpoints/best_model_20241029_224507.pt" + model1_path = "./checkpoints/best_model_20241109_190825.pt" + model2_path = "./checkpoints/checkpoint_epoch_1_20241109_195852.pt" print(f"Loading models from:\nModel 1: {model1_path}\nModel 2: {model2_path}") # Perform cross-validation @@ -222,6 +308,10 @@ def main(): model1_path, model2_path, test_loader, device, CLASSES ) + # Save sample images + print("\nSaving sample images...") + save_sample_images(images, predictions, true_labels, CLASSES, results_dir, probabilities) + # Get unique classes present in the data present_classes = np.unique(true_labels) present_class_names = [CLASSES[i] for i in present_classes] @@ -243,7 +333,7 @@ def main(): ) # Plot ROC curves only for present classes - if len(present_classes) > 1: # Only plot ROC curves if there are multiple classes + if len(present_classes) > 1: plot_roc_curves(true_labels, probabilities[:, present_classes], present_class_names, results_dir) @@ -275,10 +365,23 @@ def main(): print(f"\nDetailed results have been saved to {results_dir}") print("Files generated:") print("- confusion_matrix.png") + print("- cn_correct_samples.png") + print("- mci_correct_samples.png") + print("- ad_correct_samples.png") + print("- smc_correct_samples.png") + + # List false positive files that were actually generated + generated_fp_files = list(results_dir.glob('false_positive_*.png')) + if generated_fp_files: + print("\nFalse positive analysis files:") + for fp_file in generated_fp_files: + print(f"- {fp_file.name}") + if len(present_classes) > 1: print("- roc_curves.png") print("- evaluation_metrics.json") + if __name__ == "__main__": try: main() From 76ac360a75479e21a9ffeff1bfc201282009abcc Mon Sep 17 00:00:00 2001 From: Ei3 Date: Sun, 10 Nov 2024 02:50:20 +1000 Subject: [PATCH 35/37] debug: extract samples after cross validation --- recognition/46822394_ViT_ADNC/predict.py | 52 ++++++++++++++++-------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/recognition/46822394_ViT_ADNC/predict.py b/recognition/46822394_ViT_ADNC/predict.py index 0bbbdba8d..3f83e60c1 100644 --- a/recognition/46822394_ViT_ADNC/predict.py +++ b/recognition/46822394_ViT_ADNC/predict.py @@ -50,20 +50,21 @@ def cross_validate_models(model1_path, model2_path, test_loader, device, classes # Choose predictions based on which model performs better for each class all_preds = np.zeros_like(preds1) all_probs = np.zeros_like(probs1) - + model_choices = {} # Track which model was chosen for each class + for class_idx in range(len(classes)): if class_idx in accuracy_per_class1: - # Use predictions from the model with higher accuracy for this class + mask = (labels1 == class_idx) if accuracy_per_class1[class_idx] >= accuracy_per_class2[class_idx]: - mask = (labels1 == class_idx) all_preds[mask] = preds1[mask] all_probs[mask] = probs1[mask] + model_choices[class_idx] = 1 else: - mask = (labels1 == class_idx) all_preds[mask] = preds2[mask] all_probs[mask] = probs2[mask] + model_choices[class_idx] = 2 - return all_preds, labels1, all_probs + return all_preds, labels1, all_probs, model_choices def plot_roc_curves(y_true, y_prob, classes, save_path): """ @@ -168,17 +169,18 @@ def convert_numpy(obj): with open(metrics_file, 'w') as f: json.dump(metrics_json, f, indent=4, sort_keys=True, default=convert_numpy) -def save_sample_images(images, predictions, true_labels, classes, save_path, probabilities): +def save_sample_images(images, predictions, true_labels, classes, save_path, probabilities, model_choices): """ - Save sample images for all classes (CN, MCI, AD, SMC) and false positives + Save sample images for all classes and false positives after cross-validation - Args: + Args: images: Tensor of input images predictions: Model predictions true_labels: True labels classes: List of class names save_path: Directory to save images probabilities: Model prediction probabilities + model_choices: Models """ def save_grid(img_list, title, filename): if len(img_list) == 0: @@ -187,7 +189,6 @@ def save_grid(img_list, title, filename): # Take up to 5 images img_list = img_list[:5] - # Create a grid of images grid = vutils.make_grid(img_list, nrow=len(img_list), padding=2, normalize=True) plt.figure(figsize=(15, 3)) plt.axis('off') @@ -218,6 +219,7 @@ def save_grid(img_list, title, filename): for img, pred, true_label, prob in zip(images, predictions, true_labels, probabilities): pred_class = classes[pred] true_class = classes[true_label] + used_model = model_choices.get(true_label, "unknown") if pred == true_label: if len(correct_samples[true_class]) < 5: @@ -231,10 +233,12 @@ def save_grid(img_list, title, filename): # Save correct classifications for class_name in classes: + class_idx = classes.index(class_name) if correct_samples[class_name]: save_grid( correct_samples[class_name], - f"Correct {class_name} Samples\nConfidence: {[f'{p:.2f}' for p in correct_probs[class_name]]}", + f"Correct {class_name} Samples (Using Model {model_choices[class_idx]})\n" + \ + f"Confidence: {[f'{p:.2f}' for p in correct_probs[class_name]]}", f'{class_name.lower()}_correct_samples.png' ) @@ -249,7 +253,6 @@ def save_grid(img_list, title, filename): f"Confidence: {[f'{p:.2f}' for p in false_positive_probs[misclass_type]]}", f'false_positive_{true_class.lower()}_to_{pred_class.lower()}.png' ) - def evaluate_model(model, test_loader, device, classes): """ Evaluate model performance on test set @@ -260,7 +263,6 @@ def evaluate_model(model, test_loader, device, classes): all_preds = [] all_labels = [] all_probs = [] - all_images = [] # Testing loop with torch.no_grad(): @@ -273,13 +275,11 @@ def evaluate_model(model, test_loader, device, classes): all_preds.extend(predicted.cpu().numpy()) all_labels.extend(labels.numpy()) all_probs.extend(probabilities.cpu().numpy()) - all_images.extend(images.cpu()) - return (np.array(all_preds), np.array(all_labels), - np.array(all_probs), torch.stack(all_images)) + return np.array(all_preds), np.array(all_labels), np.array(all_probs) def main(): - # Configuration + # Configuration BATCH_SIZE = 64 CLASSES = ['CN', 'MCI', 'AD', 'SMC'] device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') @@ -304,13 +304,29 @@ def main(): # Perform cross-validation print("\nPerforming cross-validation...") - predictions, true_labels, probabilities = cross_validate_models( + predictions, true_labels, probabilities, model_choices = cross_validate_models( model1_path, model2_path, test_loader, device, CLASSES ) + # Save model choice information + model_choice_info = { + CLASSES[class_idx]: f"Model {model_num}" + for class_idx, model_num in model_choices.items() + } + with open(results_dir / 'model_choices.json', 'w') as f: + json.dump(model_choice_info, f, indent=4) + + # Get all images for visualization + all_images = [] + test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4) + for images, _ in tqdm(test_loader, desc="Collecting images for visualization"): + all_images.extend(images) + all_images = torch.stack(all_images) + # Save sample images print("\nSaving sample images...") - save_sample_images(images, predictions, true_labels, CLASSES, results_dir, probabilities) + save_sample_images(all_images, predictions, true_labels, CLASSES, results_dir, + probabilities, model_choices) # Get unique classes present in the data present_classes = np.unique(true_labels) From bb95cce6ffbf9cb2a521edbd429b4d7965b8c05a Mon Sep 17 00:00:00 2001 From: Ei3 Date: Sun, 10 Nov 2024 09:53:13 +1000 Subject: [PATCH 36/37] add sample images --- .gitignore | 1 + recognition/46822394_ViT_ADNC/README.md | 2 ++ .../img/cn_correct_samples.png | Bin 0 -> 259047 bytes .../img/false_positive_cn_to_mci.png | Bin 0 -> 274784 bytes .../img/false_positive_mci_to_cn.png | Bin 0 -> 268634 bytes .../img/mci_correct_samples.png | Bin 0 -> 259443 bytes recognition/46822394_ViT_ADNC/predict.py | 15 ++++++++++----- 7 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 recognition/46822394_ViT_ADNC/img/cn_correct_samples.png create mode 100644 recognition/46822394_ViT_ADNC/img/false_positive_cn_to_mci.png create mode 100644 recognition/46822394_ViT_ADNC/img/false_positive_mci_to_cn.png create mode 100644 recognition/46822394_ViT_ADNC/img/mci_correct_samples.png diff --git a/.gitignore b/.gitignore index 049c20bff..29cb564f6 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ recognition/46822394_ViT_ADNC/ADNI/meta_data_with_label.json *.pyc *.pdf *.typ +/recognition/46822394_ViT_ADNC/cross_validation_results_20241110_030810 diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index 960e0b352..c9c5c727f 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -247,6 +247,8 @@ The system evaluates models using multiple metrics: | Model 1 | ./checkpoints/best_model_20241029_234652.pt | | Model 2 | ./checkpoints/best_model_20241029_224507.pt | +## Sample Predictions + ## Visual Analysis of Results diff --git a/recognition/46822394_ViT_ADNC/img/cn_correct_samples.png b/recognition/46822394_ViT_ADNC/img/cn_correct_samples.png new file mode 100644 index 0000000000000000000000000000000000000000..6d5630493fe94a0c0dbe5900535dbc55ff6312e5 GIT binary patch literal 259047 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 P@aw&)zwG?Q>woy)2DxO` literal 0 HcmV?d00001 diff --git a/recognition/46822394_ViT_ADNC/img/false_positive_cn_to_mci.png b/recognition/46822394_ViT_ADNC/img/false_positive_cn_to_mci.png new file mode 100644 index 0000000000000000000000000000000000000000..759dc73a47b7d66229193f34e79cbb1cb0c612ce GIT binary patch literal 274784 zcmeFaXH?eL*DXpCjZvc}3aBVnstPDg={Arm(tDBKk>0^*jM6NCQ~{;;-m47}1rddcSk~59)i~_l$AA+%NZB$H<5xJkRghd+oL6nsctL=cS7mwrrx=L_tBZMNIU( zEdG~5LGerEZ@=Oz5z+c*@IM|~VP#u6O9NYn%hvi7QkQM7m|5DI8S5Od*SEGYwzS}2 zJ;{3F*a0J3+bcG_Y;5M=zJb-!+K{b%({DHNA{(!Ws@PCaupTD={p1)cWKZ!E1%=r8 zGxClPMminjDGhg4PVE0pS?0{8krv%?F6t46Ksu9myIeR!<1(M03~bRANg-{@X9JYuC8`+ZQP)u1a0XAWQYX{>s?6sp)_H8u>H# znI|;=!`B}(Fe(4?KYYDq-Fnmi;mZ_Z54E@a4`0{b@&7;k|E(+k_}3S{dl)xt*bu$p zuIBVm6w{4iG5vNT_R3X_yVib_mIh;WprWu{zr;H=cT#Ki{ZSnSFciZmbxh2 z*)J4G_vuZznuUeMt4N{pB*oOE2Rt@yJaUhNpJ>0mv3aNMU_E_jfz`P?`vmI!8KplC z4IMdo@?>Fgaq`(4o9vG=teuJjvEM^GCIl}}byTrB&PFj!U8VBQ{`|oQqFT<=L$P>8 zhGFFk7cLYQ6&+DZQ-2k9GM&6B4VOuRMzQ^uFJHtzN&Xa*=e?87WUxL~HQyrq;)7F< zT3TAp-*LEdJ_ zyM9-!osIf3IVsos!gohUWPS68LSb*}#0z)!Z5%6io;LCFt~_+;P>%H{@l?%H)s>Z% zO`A7MSo_?(dDEmhEp;m`Z^F5oTdP>hIA=?yM_T1JQy(>52VfLvt z+YmqAFg@ICH~0DS@|V|aL*3=&n|89Moa}Nu7k@E4%fV}RD4uce-n~8h@|Y-p^6Pz< zD2I0ne-*$SZPoi?aG)+)j5=9tmGZA}K8K4!t4rBflNg-}ufgH;@+K_3Y(VYm%4|8M z?@jaSu#>e6lhxsT%?y*lJNE5Ms})?7#L_CJYnJ9%bQbARC5zQBFV5y#^@>anHeAru z)EugdzL}<8=x0*+^S{rnee`=4xw=zRQqpH-u6J8wg3P&wIH_z0UJ5^EUS8GJ#qL%4 zToZ*D-#EFK-|^B>#S~E)R?$L*WW~V`&u%h@_I~;F zx~9dhp`SBJbBehymaJH zgS1d17K+oLIygs^>gxToXV1RNGgljJ&1QU}tLZ#Q&t+VH{>COMKWuVGM+fEZ-H9%< zV}nm`Y;Maoyz}M(k1qSz!t`(`k4+q}?SQtOd$fpe{T|DbgN%&spG??rSenMmSJT{= z7gPi)m*yws)PFO6gKgxp{`hiTzrBr(T(&`te4d$#le6=yh6cG`ub+AJ=uwgLbkf%S zf+=o`GtBJl^+xKpwmAlG9wZ(-_s`4r_VzxfwThs(?cXP;uym=vp+sv4^kIM{q`{pK9)CqKKyKf(!g ziN9)lgpTg~mOb3>1{>m~X2^2x_gKnYm>o~Yhi2qaI(_;oHJfJ2e)qXE4&z<9Dz|sC zX}+r!T1}bl_UJaSIb@8yAkz7&uO`gU?gQ!e^bzz)W?W@nVmi9Sw7q4LQYCaNl8lR zNr}K?G(6TZw`uv}h8mOAxGvn>O6!yN%P+r7Pd96+aqUcz%g{cPYgG4?iQBS^Ke^9K zXe>3qOE&PBO3Itjk=E>mf#^GuJy_qmu2PrA0xR9*evA4T&)a)>qHroz1U9TKt?`ZT zIOg-y#gG2d0c=`={&QFZ{hMYKbRQAE2E}rAV;w3&D|6AU7M_7e6p{kS=RMi&+R&4U zl~u%v@YT_Bo4!BRSsc_;Qm=}qo$7KK*MIr6Q_yW;mpPkij_8RKC#Y-w+`Bi$Zn%k_ zH$9dFS3&~Q*C4SUX*p_sV46Urs`PNpL8_g}9gmqp>M58=_A=RQBu(a{OuGFANa z^4>Xe!1MF-#e-N`7#Z7_IXtwrAKu<4ko553fzDzF>DmYZ|M>WLWT<#vyP=nzot*}z zt>>`9Q$xw=CM!$xA`|%Rs+_gGm3QpkKmMt+%uVggnKQ^!e&omcYLb%_l9MhyI-4h{ zR##WY>oSvaF;Xyf!?t|`$bHtRQB5f-_xT(wsF-EXS9tHt7dyC4mI0{>izkamxpwW^ z)W@nFPL7UDmR%)DD%o*g`fDw-b4TnVMK?#f&4h@3kooK9^_-?n$HLP5=_RP$K0nz& zeP{CX=eM6fJmYen8Yob9bSz+y41S1Y)D_4aSM>h9HmPAk%TxYdJK54u020;mEy#YB z%1Ou;+mC+y@Zr(o?6|~2zknH%JIanmR=;wIV`hY)8%@4OqAYzf-?$h#ggK_otp0N; zD%tW6PydwM&()9c%NlfD+pHGV7Ykdc*8Ws=Wp%|ZRV7=bJY?o`&C{D{~FONdcqRD|w z#bHqWwk_AxZfVYH_wT=ESMu=kCgJc5wdbcVObs43G&J;X7T@;j{!zp2n>TF|Z)yR^ z7zomGuX_{DH~q27f8CvMuEDmKv;Iy`PdBKINJVTS_p(>@3h?vG$6ut) zHEq6VSu*htKR^F=fik6ZP1S-cmpkn1qJ*jb_(OX}dBcXA>-r~VXQgddZSc2TYV!S~ zqp7CNX%*(P{{aKXdB%`ak6e0q_1g98y*l@gDm5WF`>XSvkc+?Ac^U$40a|=|dR_0IT%UfnO=tig(ke63V@2iqhHZ+T+v!JwL#D|w*tmni2x%`#F8+3r z-EbVfjnRoMb0>Zgn6xlfJl>--*;kXDpl#k&;v~|}JetPswqWb8jGBz<6;D~S`QIHq zEfO$OZnc&~4p7;Rwkga{_BR)gmnDCC9mJTN(2EaEDiDrN%qFTM1JxlM#&-vWa3BR2 zM>rHxlx47oqKakpLg8ihqiwM=(ISb+Ow_5n_v}f=dnGwe^w6BNcz_HTsGS)~C*U$8 zd2`$TrmH{wA|EHYdwy|IEl1P&-cco1e`O;hqbOaHDiH$s(Ti4^e- zp{W3%yw`Ircdo(;pG_%QG1ZUD9;xn#Ow`~1Y^6;?ou*e!VOX}Ya9tRTCtn4KHI|7m zc8dHwIq84>`t`cQsl0P6>IH8F* zHO&c~^L`boed?vo3V;kJ2POUg{QJg@kmuIOvhOE6R_5brIE@|x>#CGA;gPwtA5(0h z;S@!hlxPaRd-o3j4hxKyx5W;Y{w=5+sS%cVd|r>05}6dd4*er zO-qxlbjt6`$Es*jXta-$EMDX|5k+tVqH`A&)s34slO=*!kye6%=pUHOldT^K8Ws=` zXw1@=AVI%=6D3LeR47+ik3rOSUYkCjnbG!mte|(33%V{>S6ADq0U3WcgzY8Z1qFNv zv{A3Cs>Ei;yPF@KyP0F$z_5P(`U={`5^YAUGFOw%qTEkH1>wQN5BdiOjc1g#w6t=~ z+ndZLbnhQgAjsCq#pS4JQ%aFd|LvvaWk3jz5Zi;HCv^YO(bb(^p6zA~>ArjLoDc5` zzfzH{F&9e8*j_|>_S0w2sAy=CHt%E|m>O*0z4HEalHKVf^+M~8NH&e4m|M4Q6%e$M ztXJhH_U1!Rk6#ZzY0^+pcG)SY71<`1Eesvy;p0=|*IF7g@tcn-@BsP>(ezlhGjGeO z($hlBzsoU}Q%F@+*tc)rD?fT~;Khf!mA8$Nh>F~oojWoCj&)!7+yfK`q9{GzEIGXR zcPYQ~lqlf+3D1+p_0PAq(y_?JNrtlPd$r|T?%#=?ZlQa1#W1fy(fJ*TGyt#4+q4aS z^b$E{t?Ve&?IW3&FJBJjFudJY9TJT$V`wzLTXA-*a~j=7tX0zsR1saZWa~f_lCSZNqZU08ioMn&J%eA0kqeMo{wd~d;A&PSra8xOc zu2Q|&Uh1%j&+&zyU9Mcoz()}{mB4`SY#6e%Zj#D#OIht%wTToL;^X zI?{8C!0Q<0RIK>IOuJ=ciV6qMsZ+tUI}tzQWs4WFFf!;8Vmvl+6giBi0p}3FQKi}) z5fv4c<1}gD@7S26Af@x<$&;b3(qgep)q978IbCMVP*Gp$Rb$U>C;Ozf>^gpW&q)i; zwppa11gFV9=h58e?bYMRJ}7sOWUA4k*z~_qK=t0S+)BrM=+IffhDIC%zmY!-5-7REMEaFRpRyupo*>kY7IRDozG?e*nr1oo-cO@7x@fQo+ zGL*tF%4Dh|@}k|YlfKx!$oDq;ckGB>znR+T^ZO@2=y$w5mL@8bG>Y>8rvl%H8oNbi z1Oak|jfyBIE3)wE`SX(kJ=Bz%jD%cK0Vw$hO>x7B+o4imf+P};Y-Mw2%gV}Bv-CXC z`I_e)jh(7>=>rbna{8i28d=~yr65*~fRmP8oNv^J+H#Xgf(JT9o6WHQ)Rof&2VAMf zQ~UDzP#;si#G;lbDYLI{)02kD!f!><#3sjKt!bucsV67Zr141U#EU&uM-=^I5N3p` zAXQDq73d0S(e;Sld~MJW&XOMG;z)MwR25?+oyy;bmgRE300f)PjImNbwcNF z6byYzG~dB^J%6J=#UGu$k%O~^tXZR{RqnnF^c?cO1%Is4KEA6$F-7@aiVoLcqd3qIH_Ne@B_x2dIu)>SRVk)K1x%&iNjVL9OirdQE7A3tZ$sVAl3?mau z=3IJ-j+Y zaGAHs<8wA(XL5BaHkGa{413y(@}mqQsAAB*CgE`xaB8=gHn*ydbrep&*kie?0u5-; zKyaZ=Kh0PCb^CVHYTFW^2wRke$8WE6*+ z;RG8S8=sy|2$nRMGBDzl)mikNnQ|g|_s~w*jkL(1X4GK^rYCEKlJO85sZUlue{O`$ zavo02CynCtSf?7F{fMal)6%bv-s;NY_(tlQ_3PHXY;JC53Y5<@ktNY5d*ztE&*aX3 z)8*B7-y7q{X<*lEd!BDh-uL0d2kx4RCr{4cEl+xlc9pirnexvL)E)L$HnH2@R$vuP zs29pb09Bu&So&t9FVKuM`LtA2v4AY`r!J^@gEYd{keY`_Yd5QVj$$cUq*D{ZaY05# zMkI4(c`;f1{*fxpc7!LwlGD>;b$NE) zpr9MsYF0WdOc|4^#l(%Q0WOrUby%=D*Hj5L_7&3%);L&zn`L}QElGwrM*=_p{Ijf` z)L`Uo-wBn;rM71PKaykgq;muM(24gkdtFl_MQ8-DH-s(&bPc8aw9<~Ql5jKR1b~Qa zjE{6r!qJIWb+2u9Vm)?D5>7 z>8u}K^$0I-Ti(Ry`S+tBbynEEUGhFp;X3ANst@W7W-j()3-zy;nhOmXv&UL-NCmrsK<^e~t}LFZtpnbL^2R z6V`9WAnmZCIIlrmEL!hm(03x4=%)tJCT7TqB*tI)@RStyc+%4&gMa<~Az?2%$0dXS z){K+DED(&1peLgF9L8EW8F8=(0sfUL@$Zcga51n>zttUHL$lG&<~374+uE8X{`HLu zdAym0pI<$U+q@o)Ph<3jZMhbms(`zfP&lip`AIV-(i_R|;~(Fx9#K4 zFd5yc0&w~c4;S4M!eMAT@b(d1CC%@@64c40SmHQAxA|1B);RzGIj|OfA(@FEHP4|r z$;h7*{<~i2hUo5!xrtt>H=b4gjOA}{#3S*%!>2`Kd%(lPqZG%?+QvrW^Bjt;DPH@C zdO=3n%7STFUp?S`^khYCZEXz4`#ke@TLf`|xssAn_N=i)2%kf&kKM{z9n?0xICF7r zfj@UQCCEg}55Beg`0`J;`AX zt;WAM?vO9E*3YhdAmpL>=bwLyWP&PJE;T@#BBcZTt*|&VD%FEpE)P1#mv`GT=)ohJ zB?VpXi{>Q#p+yPG&dzR}FA*i01P&-o1**UH49{vlTBbn+D1!~XqVjh1ta$4^6==~y zqD-0G59%QP(dS5McIOmH$810q;qtuk&p&Z)hZK*|yDOsY8vpf{t?%t|c8-!jAF z(+Ih{cAS_fP9szu8Y78`w!SwSgOQUb(IGHL>|aa0KDT}da(WQ=APJBHvZqE`Il`(# zRB5dVW=99rkl;uUFpA>T1l$8^o`IlrR9yuuUn8^?Di+muQCt>XCC1w~|NeW9adQFq zrLda&vRk)qwYIZU0OdeR1o{_YaMYKusR2SBE9WaikCq%&%S&l21Tbb*F%?~<^|l8?K;AJ8(luX|EskpFsA@pGB!5G zkm)0z!5|jtzL4lX|7mA*^APxp2Es=HU&I-WozQ(@1Po8@yZgBI)n9+#bvMe6XgYxay;VtJODzzv~+wKDvMZ{;)U3X%x)RIuvUS(}It=8>V`g;`<48@6hem9Mcd+ zC*Z!M+@5cF=jh8Twzl#}4%2;MmPyF4_7^O5?ds~?EA`VoJ>LglZf zPNo7{2me_{)&OvH5V&X4mMsc6PvD~Jo;5e0l(I=fpFp@-97+1*_e=*4oF?5!l2Upa zQpF&Wq~|`%Vb)7*S;!e7&$A3`Ev8-jUWBUkb{E-?CIRRTqlXSkPBx9I6a-I&#i zaQP^fKxpanbrNU@feXmZvgA1P*ckXbZ6C4@2+h)e9fyz{MvOqdXoe_BQi48GL!A}E zO9>B@i&DMr&WV$iP$Px>&z1%VYOd?s^t{@RSAx|>*Z;^_{}twpC6I2EyLKgj%lt}$ zA*&*bD}0>voXv-G_QsGOObt1tuVZG!Z6?;~$t z+9QCn_9Ys2rO#h16P+SOx1sqvf}H9<_vHG9(YwCWAe2(Tg6^sS??FP9Pd|W{RkI`k zZD=x-N! z5@gtO_O@@W;8hlxZ#EFegDGnH7ol=-djUI15nb)Ug9m;BcLa*(Pn|lI0M--SR}|r8 zK7Tkz%WM0!71nf{R>;1=EFCG>$TwaR4XHOYyy4liXLNyeywtH&V0;Phnb0^HvS)Z~ zEMjB=C8iPU@CZm?2oZ}IZv>CVWj~_an5Ln2`*vJ;Um>nWKuw2frgRrGmXhNW#Ss!G58mjy)`NlpSa~V6MwGxKsc0v4 zrymf-yWltLjsh#@B{3h+c_uG>c9Vu3%1SCxtdS=-?i>H~DHgjhj7Z^iTgVYyo@&su z`%Ti52>MXXtl9z3(LjdPogiQkmDRAp&dt?TQU@4L-pnjTs(FoHIS~Eb?eh6-OOai2 zU0zsNnBc;|VekGz>rY;(vf?Kg85v1qPm0@rNK^s5p){f4>#R^l7a(+1zqvdnF%OAD z;=U^fue7wZe+%UK)QEAU3vSPlqweBqdwHxAu&|_MCo~_jr1A4xe=-Ow;aoND)N;K% z&AVF+^sz#Tqg8YZa+Bn37tN7L%L(t!?LDC4>gSINXq?MKz1fKa!QlxMd>UJtdyc!w z#@3dgEvX)enEB_pnJ3ZbEJL|8Y0Zk=M13sb%=KUC+jx$t<(UyW0xDk$RL3Dw>5#J< zj_Wp<0=%?)j^*C~0t@Y6#94_(ac*^GSwmawKY#ZevHcB#XO}rXtlFD5Z>VdtExQHP zV)blztUq2_U0Jpxgd-~#v?)%ft#pZ?^B6QrXT~}uns;)LUBo)q%B}yAD#Z%$dg64(ImSsPb)?1qDx2*cP!PDLTrF@*ne{o1u0^!$AKdZkKQZjCX+O%O4s z0SH^@_e+qx0K7R=AL~t|IbdTGRELdamZzWrVXp{d1$`-3uWCCXxjvQ!D57!%zF+i! zrqLKDwI?iHB}Vj5bPDh2R(kIUwf*lF3@qFp^GddQ@v*(&j`GBr8$Z4dk_H{fMFiYe zbbSK@MqlU`K7YPq-kL?<_~ms1Rv`uw#O?~Dp?LI`%3P6!hr)nVRJfFM2zid3qN!lj zDocUWrQH>(BV+XF)TOzWWF%fqgresThG7$QyLmtTLs3tk&XI=j zB9)dceUTt89q@MwaOy~UxsN_+XlVEtF{cjpQ))~%?+bue*mFGTOeFJxHPg=f?(e3Z zl0QfR%%Ls6%EIG5_hEyuuyE^r!4>Z>SDRFv|!-uGY zXc#W&*2bg=P8&K=?NG;d-KzP!+tbq0MA}LFuk}n8_7raBS7?=-)F0L0Ncqh0@bD1- z1$FA>F`5O4uarA>=&EEHA4`3+Sq&)IPwY$`R%-gmhW#zJ;Ry)|^5gCV9Rb1DG1DvmArP@N|1J_XxTtzy*b$4t4@)1NiaPDZ7yK88vHTb&Pahs98Sy z{`%`LV&6(i;{)sLKYJIohY%YlEjmOemPmEOV!s24BH*^bSuwem;_s^d7;iW_+Bvjv zFQH5`nwmlJCvnXv9T6j9Vn9+V7!g^NhzebRZYkbhh#HLKWN^p9+M0b){rCNX>M(ZX zIWG4jr6q%EQ56srz&c*S!~5t!Ap_Vxm&N;W*YCd)seq7VUi~#;O2GaSS5Ve^Z6WU` zTbH5rLZ_rlNxGK@;o+&FY$qnXAH!;!v#FT?L~OJ^3|2%eM0VLly|f` z0@a}d_(2hrF+**nff=V!*ac1`MLYrNP3%3u$wf^5s~SFo+oxw*PG@SM&IIg=m@9f4 z$anr=QVknRP$xtAow5Loq7GlU9m83p#|!}<(P>Co3_Y-@z+(IGThgu()f{{tA@Bgj z&O+6ZynTCjZ}V#sMPI(KJ1eUunD`OCoD~bd?T_!;_ERQy_<9iKtug{5jnz3$&iZ+XJ+CNbD8BNK)T?2llNoQ}@FC zV=A(sp_)J=`E!k74~eY}(!U<1CG2=GzHHx1_%#2s;laVXh$un8ko|^CQuxrB$%XUU zO%YZc`%*;{bPtN4FmwV=FO4EwF}CuhEF`VK_XS98gM=@DaY<@sd11{SN1>8^<5&-fJ+?O!#%VOscI*A zcvM!0Gs(7h6xtB!!l%dG-QA=m;}NkSp?fDi2WW{`5MIxoJ4dyBdlYhr8u{GF&MafW zfq{SkPeB^Pglf_d=Zo@Vn8OC1@?QcGj0+E!MTauFHLv1}Pyk6|g|{~)8a!lXjd3-Y zNg6<#b6$SBuK3g4U=XJR|0#e-9e%cU8~~XOKQ+V4&e7h45?uk--re%&Lc( z6Wt<3r8_!1KaG#4V(?BEJ9-s)g=Zc$b8d~@>&kn=X{u>9k@Iw;k{mOK958^C)nBI(5jnb*TTAEr!m9QW zuUJhupAxLoiW5B*ayjl;-f0Lo@kY0&Mo8rbI#Gxg+2UQ)^c#*2g%9}d5^6x-$lGFtAt=F)hF=^`whji9~WTUz$(t;D%4lOlK=AYGF@aB+?3eox18jz_|;m1X|deWSNO^*U8 zo~&8wteCnAU49r*LBwTEr%zPyt23BFDg49QE~g84bw7Z90?(U!f>6t=T3cI3$^z__ywi~!dEJ)^pkAgUZM^R6 z6j13U9zb}MiQ$MiLkI^-@aIV849F-(Qow*JKqvDMA`gO)3?RMV-u{6B(!33V@@fXY zwfpdNeJP58wY9bQ^%URf@op^`S41c6E^DE=e2eWT76Sr^AQ};;s6Q8)*%DIvaS~%5 zKR#U(A)tl;760V31}#K+He3g=b=ba^QepxL$p(}LE=~6Q`M>cI(}3_2A&wpa2Uyy` zu^q-z1oRMij3STKGE^P<<%W<-_(1{G6_EDiVw1&T04FvvwDHWRPANk~xeLIE;QG|p z7l)S`j1AHh&)D(KLl|#C`hAp;0enQ~g{efOJh%fi2?dV$%4=06lqTYx)V8;8FX1O% zB06|%`s8t#6f$*$0e09`XglsMfMz6v6gbdF@uuJ|o#BANn-c5ieI}W+cs?nsAbOWB z#`-YiGJq6u0DA>EK!F~Qi9v($2fML}lIbCk07LPCouWtKxoSXqgA(+0XIJv@!*Cj38vXrL*nsHp=#?%K9(8zB|}(J!H-1%U3*Oa0W}ACJ!y*4YeElE{!z z9joRjF~oZ$Lqsa@q(O}~aqA`0N5KIxk-47xM}r8%guh7!=QkO|l)cS4S0CJ#uI zi1;H!7Sn)q$`DD#aPdI`AO&4PxAyTEM_*#5h9{)~v=ZsTplzJ0I)R=*9;XO?2t&Bw z6hVrMHL3PR@#r5UHjKbb>5rrNo?GD*OG*#4f#y^lp@E)y>>2ymluTZ)z^`0&upvMFmmfbqsMv@splB?t&n z>ZO21MOA1L*}ax!?#?_I`8KfezWg;b2Si<-kt96mpuEf|U&FjC9(c^Sjz4hUohfs` z6=Hxzc5Gb+n}Ko|0(ImlXjn27qkWtSk}!6n5h4S;bb`QZG``;O^FSBn(tG(wGT$ju zTnQ3Ji>%PAMd_&#Pew_g!|pi7$#4Df7J?!U#>@mb;u1p`uG;pYn!%}59D35yVtOwz zI$su9bwo1$b?e>)xXuqgA@BxbJ_l)3BO)RQMS$Z384pboJwdUEbXn+ibp>Gkq=Ju= z&CYk~T06Kg>wh>%a`45|3b}Vgogg3|VJ$;i8)A;r(0O@D1%Vjlk`6OMAU*nPQ(D2Tw0Y*g8Q$E@2d^jA(#U!Q^eV_q^Gvbl*+ z6qsaNo5#Vx5+V>wLljJ@8AwP8VEt(XT?>fX@=+bLNF?^i@DN-Us^1x|LC@&#Q&$uj zO>h80Vf$1YsRa+vTcjHWn91n88|jz{ZT(-zVz^&Vf^1WT>{Zj}B0~xv8JfZwk_T1i zk6jz@cUrgd3))+goMkj-bS;0KV8&x{4MnJ+H9_I!5}qebiCJbFiE3~kMu6F0optD^ zhQl4Y>L4)^;uz%*F}`+E?(X~UiKbwW0nITKeMgYpGYG?GU=_IrpBs9jlN)$>?=ajn z!3w>Quh@`rqFdlqAXKB>#Z`I?#{G-@5xJQ3*^h$N=c|dZy9)*p}$ z6O$;A51C&;ll=)J5;&Z%s+fCMLbX9(g8&H(1CUZuQW6_w5_t6_&C()JFb0#;W`pyS`%nk*J;RW!fNW)fTgg*H z^(5aqbFtx=OQ$p&n0z#(1K3W&AzAlTClbjQR1je=YMLc1i7EHb!y?b^;z&Y*J0uay zL+^4MZ3T^aIhGfiNMs`qnFB3yozIdv2FX!1$LL;7`aImDZMNSkRK4trWhu_JL_>}F z0y3`Zs{>`?%f!UJDd~wS(nZBe1YwZxxt=S|mZX+4y zmyjgXg|}!4dvw6=5{i(^pn4adL7){Si>f@R3MIg28Ga_Fmmgc+6};#zhWrvI9hrs> zA34Eh-S0`}cPTO2jZl(~QG`lATx36FvtfIRR^sgwCE>lWk=V z)f-vVO0fpiHZK@`X{1#$i96K-5+eatH8QwLnBpv<6@l4qu)KjOk&E5^=VeE%gt&J7 zPL8Jg(!>Q?0q1ukCom>TCT%!P-Z5p@Hh3TUm)L7c)7Y~UbYlcjf%SYn0Q}(_Fryr9 zh`-Y~4}O?%hYS-~PC}I`)~;E9AAA3Je}J|naZ7^;CDS;;EP7SH5qlq*6b8wF?UjkD zpz;H`dl=G=Dq)pSRw!v`OeR91(qk~}xbxinyvpn^%I^WDNW~Ic!cvJ&=dzG4m>G?+ zNM?H3!Yi{URMoG6pTw%`C%Iyq9YOmM8G}?WjPKcz5g1AgM?hjoL?TU+jr9V%VLlOB z+l=Fr4pB1&Mrn>GI$UDdjQ}8&SiIjb5Q$={p#+u}>UpT9%P1FKfxC(rf}@_I!6AY* z&8aKeG5q#A4 z75e|I%J?aoa;V~%xtKz~%?y~-GXY@%Lub>3weWrc+>wNc4CQl36QzhKT~kt)OV#X*1`GI&nht5H@!#q!YAQpa9}bd}<`gLe07FGGKd zK0God6BvY}Z4BTTh5(GCfY)Xq4z&b)xbHsY$KJ0NJnns)wYpB+4{;a6Y4XG2#vpVb zxL>@kpTEC9yjY39Y}m@g&);!7grORIE1@gI4*H_aCHf<_I8ixM2Om8jPJBD`<(Q)) zILZ zg1L^tN?N*B&sTboYaeJwa=ww)85Y5gJ|vv3>--n1^|n}y2AIXk+6p*NF^#q0cqc+r zZ7X&l){zCBtF=0!R#d!EgE&020G=PtF&=Bwf&0VHx0(j7$W4eWdr$a|cTydL^=S zEFQp_;51@r%SwkhM}$@YRx(#grbo#mB7N?1Fo!5F3C>yCI^5?aT*P4ZnxV4o{+c*2 z4}N!mXb{FwrA0F5I@^xvkCn!QA!80*Qwp!{R9IN5`KHqwzxQSb2%Dxvkt2C->15kk9sW#K5R`$Ug$>Es(epex~| zzHnJADwiip=j*K@bkeYfbHW8e*dJCL7`+uE>AfXbug6MoMgj$19M>b$#f{OV;8S> zYYdT8gjIN9z7skExfO!ds&&?#*YUG9bjD7mKq8GLwpLqzy*g4&RqQ{Nnf`4Q!Z-7~&_cHdg! z8L9f=A{cG9+VW~a@OZHPvp+dYEk>L%sE)`vWa7Pj1=G z{+vz_tUK}7Zlrz$@!S}-Mis+YkUHqZynK8lZCTU+j@Z@IiM?;MyIkmNb|14MITje2 z(|u{~ohZkdnW9K=pbZJ1FD}Gy?!Z84h|z`P==)hTisX@I0s`{V?NnXBn#qIXEEsKR zQTFdYRt92fk9mAfF;0Io8DREzboLlu1LKc1zk}VSc!a0~aoUwOWVDcJ8TehJTVRui zAl$51`{Dijhd>iyw&5YXc1cp!l3VaLUc<`MmdNh*FB#^MH6?ka;dmf}BlfSD++ahM zhs_jOM#J9?5_Pr_t7+N<0%(t&tzQga+AxUKpzGJqW%UnYJZWKO)RZzz(5)y!&@J?R zFxFE6IY1;6hn;xQB%4BEdU^-joqu?Asw7S()LM2gE~B@nakk|kRj@>)gF4O=XAzqz ziF5}vFwjMGi8U3WJP<}BXoR05X>PqC98#j6m0_xe+{J9cN17vSzE@K@6y?_c{qm3< zwCcRY?gu=*+dSx)O1+sZWUv-N$qBrCntpiHPN)>5G8WyC68e0oSbW}d*xi)fECewkZEnqWQfZf&G>S0yP>LhC6H+io z{;h~`0)rrx%PA|IjQ~%itl+c8Q$F@Mv#`45&$ZK<7z3%0C}@ZvWi%j|Rnn#;lcS9{ z9B^)us+RC^@_EbOVZzCnI|8H_=bPue#Hb)P0+WT5L&d?w57=OWjan}N6b4|thV-VG z)O!mRPx8f1*heurm67l)B)54E6~i|#4906vWGei3=%`rLmA}sG%+Jq<2+V+BAk@9D z4nVgYW>Jr+a*(}-yeh0K`?R}T3pjz(i!ka^#W5i<|#%eI~ zP(A>Fa-h+#y+cDu02eeBJv-yX>WQl(t$VJsHRbYHDPwfW_}U6+Z~M*ztz^p14 zx$^$1SY-rCQtQw>G%BewM~{(~6UqG&QX8r4RaDLUm|1B^czk7N*FKF(DA=d5^X$M9KWdZ!wnWtucJG2;_ z+bl22Gnh8y~QT`tgd<@mo1oUk4FP8hAK5WkMY zCdERh$vCkQ@NnE3hfkeqiJNTo!Zj+bjv_~t$)yDVK97)MD=RQwG=(fh#w6{ltKEsU z6-ea>%-=^eigJi~85NfZrPg4qoHb3;tZbT_(SzCczSxpHd5i7Q@G!Iuk@kxhFOu1H z1yjA6Pz79`Q3q&~N@M8>WhUC(($W%KK-@x6o_6h`@lta!Oc#pj6W|q91h@~ABnoUt zl`jBAr{G#H^x2q|gJufUgi20IN(6qlhwciWtEL+a4h49Pw=$wtm zDO3EYEA-%0ODy|`3j&={p4!EwYavq>zz<|FSY`w~hZ5#00P5X*X}J6_mA81y%c~ye z)b(EDRbwNUaOWccN&RVM34X`VkB!=EYFMP2a&JscImdsT z7Ef+&>%s#k;Om zZ-!MVWP>oQk6>j)CNOH(Vy1z;$qs+V-sZB# zX;b`onG1U`c#Y8K&;r7=XOEcfBQA?Q~ek+1(_f=%ZmfZCT8L7wYR>vc0aPD8QCyVdf%S?{Q0=20Cq-k zFvbP#3_~XB!Vzw6?oofSzfjBmQ}2+gOh;NW?O*-o=a!z1FYhrI!WcNN^c$K7!zmjq z12?LFr4ip@yT2r*(;dV$({r3t8?J+o*&S{J>`;#Z5}(_Hu+yrmtD6<2p}G)Pv+de_ zJrtUh-;=2}J#G<+Hka638?kxo*1Ul^G%z90(a0M#w(XXI0R9Q6m9qHX5*P22GK(6R z1k1ZfCXVMY&MzKxrlbrP!Itk@rULO1(m#BMc6U(+l0Y3B1jC zXmX)cbo4~}+xnpeLW+rvfErb-0oOOdIn1jJX(W0SVQbu7=4PB_FWx%oPO~~)29gIV zNNVWown@5Z@stCpxNeG+)tcrMI0{io^#5xVaDPvI8M1(xzIo~Dg*p>^i6;<1n1u%S zWat9C?yew3-R@?-&j8%I+@5I0rGO{I7xiQlK;IJIj*J;XkF;mu> zSb23l_3*Bt<2R7NG2D0F$)8l!OtN+2PB!kDBqx}_P`LiO~kFV;X3L&vAr40 z#)>#_iII*5AtTv?ZD~g7lhv16%USF{WbO=ER0*FvHk3`^Z|^>3H~}!zdW^=O!|RgX&NgC6&y6L*gJv=%KZ7SnT;fFulh@`!OBBiy>zgxz~SGQ^mn1p<-FSY@d|cis?lv zHq8zuYK*f11FJ1*Mg#yiw#9w-Wd?qS?~lbNijTwdXM{>uwQoN)bsW%xYVHgS{!%*d z#AheHRukcZ>+`Fpm83t|#)iN!F-NSTk0e|>@v?!Ij&m$~j@#%|k<{6}pm|(?Krhv3 zcex9rSVr|{te_w&I+SNU$K5YJglj*>s<{N0k{w{aTHO5vxZwr~qwfU|sXS@MLGjD# z*UYWAhLEvow8aOV`c zDCi#XYA#`coj=`IN)gQq! zz>zP7#xK`|$f=2_@FJPG=mY3R949E({6^Pg~yY)o2B?VB*VCC=<-n5C~J(zo0*~spYfII!j+7~+bS!6 zz5p#1ac6k$YXIf%uTzLmJ_Hai-b4fE+6fod*gUANAsU5gNQdX*bC5VepI8VS?`SO3#5zv?BhnxhSDK>m{I zK>_f?#frqr4aC5Z{95jRvPnL8h$EIvE+8pl*v{=bcLkZFnu!|bV`A>bof{Te>Hg%> zNz@wR7b9~zICDqqdSPygMO=qHhvD9hbfmZmjGd1a4sMY8GQfq zIwFwAyfw!0A%qXC*xa~rqau73uUiky zYaY(JwhhK_s=i-=d-ooZH_^Pvn3L<0~Kf!oa3khVau9)Z-0EJ%F8 zWH5OBh7Ivco*B`^Q;Pnd%$D^=H21@X7=w7Mf~5yjW^xeTpzIvP3yTqU3Vvf^hc-e{ zB3G9Rxc_|$+GP`rWPd7MS+{6qZC#J_2%DV%pam38 zN!yJ{6T)x`hyTg~8jTORO&oi|?zNxKUJ{+V5=3=eZ@C#pZ4pS#?7My^6I(c)}+W*~jpMLlrBs9rW9}kDpwAI*72hUl3ahBvIP$DC+Ld zKof7lAxIYegq?ojc3I#c;88OUH+-H^l&R&g5!wyBJp-opc-ziD|9k{OQ-aWTjgy9y z*idi;HCszZ(a;3%(ySNHym;+FryQz&Ch+lZ9IXzPBr*$LGV2?!-Pyo?P zE;WsI!>||bExNjO@2R^-Oo>^KIA?K5%wV2JG?Pyy1Pg*gh9?3 zNAUpCQjO{bqaB57<}PIfzJRr58Yl*+%9*%6i0EUD+gTl^fS*=ZeKuI)d%Si;O`_*|366D>{^b(zH+-M2Z zz-e4h*9iwRkc1M_0J+pg&lg8I9Tg)Uts*l{7odkC?8dS@x^l?t4cHT`CI)SY+83=1 zv7J~qDQlOtdO>cY@-mY_TimNjCJa+_7%;g`T!blkF!_iCU!Z*D9`PnvdcUxBT>7mb4 zQ}3`(>6j-R0M|wC((}_OQG|bqTs%N7j3Mz{u~Q2-W(wTrSeqa_V8;Xb^m?iP+Mc}^ z-VVqJyEn&V{A4fK0q7L%h$|6hC{N zGVtR?ycA}`zyelKmWeO_Qp(!)QcxWD@#g!_*IF^}(-CQdL<8X5eqzt}7hI+PULGh) zv{A2mSNNf^;G)x(|N4F8wtnq#y6->w{dc?f(|()#|Nhng&)=ud{t&F3+eF1qB5sp; zAtcnQx;hz55?I|qrtLJUCbvt@@SQppWBg`DbHC^g2uzqP60T9KsDRFp(0FgmQBiFI*~DlRy_K(G9l6f} zB>$S32iHz~st%E>@S>8#;UwV6CH}WPp3ol&Z-Pb&=<+CpKjPHJWC!sLK`w6NtI+er ztrTD?2|G`2ya#F}q$Q|HW)N-nSv6Ggn%RS)>Ws$2-k}Tsrx^ROwPy3~A-tYyp>-^7vtt1u0i>trc>xp(L{7{k@1P`O6*#uA zyPcRCZk8rqM+X{;?H|wGSAts8stX109VWN7(DKRy+UJ_ks^RWNGD(D@>#VqY%gltobC#PL{ayfc*@KhZG?yIi*be%+U0SYJ^KB68N3ID3@re zYBA=OoQ$Os5)y*b;*>=(@WZCxe#))k29QWC}+afpNqH3$j3? z(3<`}$D27|ZQVR&7BsOaxCJ0kj#L|lM�z<5~?R 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

>4EUy(fILqf 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%0DRr4_KK-zh=m9XSWn)1cDOW8 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

KNH^DRZ=N6p;y6_iCA?RzZd6#G{qAPf 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 M$ZKKl+wX1tU!_#kU;qFB literal 0 HcmV?d00001 diff --git a/recognition/46822394_ViT_ADNC/img/mci_correct_samples.png b/recognition/46822394_ViT_ADNC/img/mci_correct_samples.png new file mode 100644 index 0000000000000000000000000000000000000000..ea57fe98ecc8f34d88ef6f347266968a686779b6 GIT binary patch literal 259443 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
^tBkufEq$! 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 Fe*)8tlK=n! literal 0 HcmV?d00001 diff --git a/recognition/46822394_ViT_ADNC/predict.py b/recognition/46822394_ViT_ADNC/predict.py index 3f83e60c1..90a91cf68 100644 --- a/recognition/46822394_ViT_ADNC/predict.py +++ b/recognition/46822394_ViT_ADNC/predict.py @@ -7,19 +7,24 @@ Evaluation metrics will be printed and evaluation figures will be saved to the current folder. """ +# Standard library imports +import json +from datetime import datetime +from pathlib import Path + +# Third-party imports +import numpy as np +import pandas as pd import torch import torch.nn as nn from torch.utils.data import DataLoader +import torchvision.utils as vutils import matplotlib.pyplot as plt import seaborn as sns -import numpy as np from tqdm import tqdm from sklearn.metrics import confusion_matrix, classification_report, roc_curve, auc -import pandas as pd -from pathlib import Path -import json -from datetime import datetime +# Local imports from dataset import get_dataset from modules import ViTClassifier From 034167a5f01bef980d1c8a439cf7053139999606 Mon Sep 17 00:00:00 2001 From: Ei3 Date: Sun, 10 Nov 2024 09:59:37 +1000 Subject: [PATCH 37/37] update README to include sample predictions --- recognition/46822394_ViT_ADNC/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recognition/46822394_ViT_ADNC/README.md b/recognition/46822394_ViT_ADNC/README.md index c9c5c727f..af56f1ec0 100644 --- a/recognition/46822394_ViT_ADNC/README.md +++ b/recognition/46822394_ViT_ADNC/README.md @@ -248,6 +248,10 @@ The system evaluates models using multiple metrics: | Model 2 | ./checkpoints/best_model_20241029_224507.pt | ## Sample Predictions +![Correct CN Samples](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/cn_correct_samples.png) +![False Positives: MCI->CN](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/false_positive_mci_to_cn.png) +![False Positives: CN->MCI](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/false_positive_cn_to_mci.png) +![Correct MCI Samples](https://github.com/Ei3-kw/PatternAnalysis-2024/blob/topic-recognition/recognition/46822394_ViT_ADNC/img/mci_correct_samples.png) ## Visual Analysis of Results