From baa27f6868952ca02567ce48dddbe4c5bfef046b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 00:14:44 +0000 Subject: [PATCH] Deployed 1763a2c with MkDocs version: 1.5.3 --- .nojekyll | 0 404.html | 709 ++ api_docs/fmcib/callbacks/index.html | 76 + .../fmcib/callbacks/prediction_saver.html | 437 ++ api_docs/fmcib/callbacks/utils.html | 205 + api_docs/fmcib/datasets/index.html | 356 + .../fmcib/datasets/ssl_radiomics_dataset.html | 619 ++ api_docs/fmcib/datasets/utils.html | 254 + api_docs/fmcib/index.html | 111 + api_docs/fmcib/models/autoencoder.html | 397 + api_docs/fmcib/models/index.html | 169 + api_docs/fmcib/models/load_model.html | 512 ++ api_docs/fmcib/models/models_genesis.html | 1427 ++++ api_docs/fmcib/models/resnet50.html | 185 + api_docs/fmcib/optimizers/index.html | 75 + api_docs/fmcib/optimizers/lars.html | 607 ++ api_docs/fmcib/preprocessing/index.html | 213 + .../fmcib/preprocessing/seed_based_crop.html | 452 ++ api_docs/fmcib/run.html | 212 + api_docs/fmcib/ssl/index.html | 70 + api_docs/fmcib/ssl/losses/index.html | 95 + .../ssl/losses/neg_mining_info_nce_loss.html | 708 ++ api_docs/fmcib/ssl/losses/nnclr_loss.html | 206 + api_docs/fmcib/ssl/losses/ntxent_loss.html | 210 + .../fmcib/ssl/losses/ntxent_mined_loss.html | 447 ++ api_docs/fmcib/ssl/losses/swav_loss.html | 247 + api_docs/fmcib/ssl/models/exneg_simclr.html | 210 + api_docs/fmcib/ssl/models/index.html | 77 + .../ssl/models/load_pretrained_resnet.html | 327 + api_docs/fmcib/ssl/modules/exneg_simclr.html | 275 + api_docs/fmcib/ssl/modules/index.html | 89 + api_docs/fmcib/ssl/modules/nnclr.html | 340 + api_docs/fmcib/ssl/modules/simclr.html | 272 + api_docs/fmcib/ssl/modules/swav.html | 561 ++ api_docs/fmcib/ssl/optimizers/index.html | 75 + api_docs/fmcib/ssl/optimizers/lars.html | 509 ++ api_docs/fmcib/ssl/transforms/duplicate.html | 153 + api_docs/fmcib/ssl/transforms/index.html | 77 + .../ssl/transforms/random_resized_crop.html | 165 + api_docs/fmcib/transforms/duplicate.html | 159 + api_docs/fmcib/transforms/index.html | 89 + api_docs/fmcib/transforms/med3d.html | 205 + api_docs/fmcib/transforms/multicrop.html | 158 + .../fmcib/transforms/random_resized_crop.html | 188 + api_docs/fmcib/utils/download_utils.html | 132 + api_docs/fmcib/utils/idc_helper.html | 731 ++ api_docs/fmcib/utils/index.html | 77 + api_docs/fmcib/visualization/index.html | 71 + api_docs/fmcib/visualization/verify_io.html | 244 + assets/Header.png | Bin 0 -> 376734 bytes assets/analysis_1.png | Bin 0 -> 39463 bytes assets/analysis_2.png | Bin 0 -> 21857 bytes assets/analysis_3.png | Bin 0 -> 49728 bytes assets/analysis_4.png | Bin 0 -> 219383 bytes assets/analysis_5.png | Bin 0 -> 30214 bytes assets/extra.css | 21 + assets/favicon.svg | 1 + assets/images/coverage.svg | 21 + assets/images/favicon.png | Bin 0 -> 1870 bytes assets/images/implementation1.png | Bin 0 -> 63289 bytes assets/images/implementation2.png | Bin 0 -> 74991 bytes assets/images/implementation3.png | Bin 0 -> 77607 bytes assets/images/linear_model.png | Bin 0 -> 59975 bytes assets/images/overview_v5.png | Bin 0 -> 970458 bytes assets/images/ssl_pretraining.png | Bin 0 -> 297077 bytes assets/javascripts/bundle.8fd75fb4.min.js | 29 + assets/javascripts/bundle.8fd75fb4.min.js.map | 7 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.el.min.js | 1 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.he.min.js | 1 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.b8dbb3d2.min.js | 42 + .../workers/search.b8dbb3d2.min.js.map | 7 + assets/stylesheets/main.f2e4d321.min.css | 1 + assets/stylesheets/main.f2e4d321.min.css.map | 1 + assets/stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + getting-started/cloud-quick-start/index.html | 804 ++ getting-started/installation/index.html | 908 +++ getting-started/quick-start/index.html | 980 +++ .../repository-structure/index.html | 762 ++ index.html | 949 +++ search/search_index.json | 1 + sitemap.xml | 3 + sitemap.xml.gz | Bin 0 -> 127 bytes user-guide/analysis/index.html | 874 +++ user-guide/data/index.html | 1103 +++ user-guide/download_models/index.html | 820 ++ user-guide/fm_adaptation/index.html | 884 +++ user-guide/inference/index.html | 889 +++ user-guide/reproduce_baselines/index.html | 777 ++ user-guide/reproduce_fm/index.html | 901 +++ 122 files changed, 32171 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 api_docs/fmcib/callbacks/index.html create mode 100644 api_docs/fmcib/callbacks/prediction_saver.html create mode 100644 api_docs/fmcib/callbacks/utils.html create mode 100644 api_docs/fmcib/datasets/index.html create mode 100644 api_docs/fmcib/datasets/ssl_radiomics_dataset.html create mode 100644 api_docs/fmcib/datasets/utils.html create mode 100644 api_docs/fmcib/index.html create mode 100644 api_docs/fmcib/models/autoencoder.html create mode 100644 api_docs/fmcib/models/index.html create mode 100644 api_docs/fmcib/models/load_model.html create mode 100644 api_docs/fmcib/models/models_genesis.html create mode 100644 api_docs/fmcib/models/resnet50.html create mode 100644 api_docs/fmcib/optimizers/index.html create mode 100644 api_docs/fmcib/optimizers/lars.html create mode 100644 api_docs/fmcib/preprocessing/index.html create mode 100644 api_docs/fmcib/preprocessing/seed_based_crop.html create mode 100644 api_docs/fmcib/run.html create mode 100644 api_docs/fmcib/ssl/index.html create mode 100644 api_docs/fmcib/ssl/losses/index.html create mode 100644 api_docs/fmcib/ssl/losses/neg_mining_info_nce_loss.html create mode 100644 api_docs/fmcib/ssl/losses/nnclr_loss.html create mode 100644 api_docs/fmcib/ssl/losses/ntxent_loss.html create mode 100644 api_docs/fmcib/ssl/losses/ntxent_mined_loss.html create mode 100644 api_docs/fmcib/ssl/losses/swav_loss.html create mode 100644 api_docs/fmcib/ssl/models/exneg_simclr.html create mode 100644 api_docs/fmcib/ssl/models/index.html create mode 100644 api_docs/fmcib/ssl/models/load_pretrained_resnet.html create mode 100644 api_docs/fmcib/ssl/modules/exneg_simclr.html create mode 100644 api_docs/fmcib/ssl/modules/index.html create mode 100644 api_docs/fmcib/ssl/modules/nnclr.html create mode 100644 api_docs/fmcib/ssl/modules/simclr.html create mode 100644 api_docs/fmcib/ssl/modules/swav.html create mode 100644 api_docs/fmcib/ssl/optimizers/index.html create mode 100644 api_docs/fmcib/ssl/optimizers/lars.html create mode 100644 api_docs/fmcib/ssl/transforms/duplicate.html create mode 100644 api_docs/fmcib/ssl/transforms/index.html create mode 100644 api_docs/fmcib/ssl/transforms/random_resized_crop.html create mode 100644 api_docs/fmcib/transforms/duplicate.html create mode 100644 api_docs/fmcib/transforms/index.html create mode 100644 api_docs/fmcib/transforms/med3d.html create mode 100644 api_docs/fmcib/transforms/multicrop.html create mode 100644 api_docs/fmcib/transforms/random_resized_crop.html create mode 100644 api_docs/fmcib/utils/download_utils.html create mode 100644 api_docs/fmcib/utils/idc_helper.html create mode 100644 api_docs/fmcib/utils/index.html create mode 100644 api_docs/fmcib/visualization/index.html create mode 100644 api_docs/fmcib/visualization/verify_io.html create mode 100644 assets/Header.png create mode 100644 assets/analysis_1.png create mode 100644 assets/analysis_2.png create mode 100644 assets/analysis_3.png create mode 100644 assets/analysis_4.png create mode 100644 assets/analysis_5.png create mode 100644 assets/extra.css create mode 100644 assets/favicon.svg create mode 100644 assets/images/coverage.svg create mode 100644 assets/images/favicon.png create mode 100644 assets/images/implementation1.png create mode 100644 assets/images/implementation2.png create mode 100644 assets/images/implementation3.png create mode 100644 assets/images/linear_model.png create mode 100644 assets/images/overview_v5.png create mode 100644 assets/images/ssl_pretraining.png create mode 100644 assets/javascripts/bundle.8fd75fb4.min.js create mode 100644 assets/javascripts/bundle.8fd75fb4.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.b8dbb3d2.min.js create mode 100644 assets/javascripts/workers/search.b8dbb3d2.min.js.map create mode 100644 assets/stylesheets/main.f2e4d321.min.css create mode 100644 assets/stylesheets/main.f2e4d321.min.css.map create mode 100644 assets/stylesheets/palette.06af60db.min.css create mode 100644 assets/stylesheets/palette.06af60db.min.css.map create mode 100644 getting-started/cloud-quick-start/index.html create mode 100644 getting-started/installation/index.html create mode 100644 getting-started/quick-start/index.html create mode 100644 getting-started/repository-structure/index.html create mode 100644 index.html create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz create mode 100644 user-guide/analysis/index.html create mode 100644 user-guide/data/index.html create mode 100644 user-guide/download_models/index.html create mode 100644 user-guide/fm_adaptation/index.html create mode 100644 user-guide/inference/index.html create mode 100644 user-guide/reproduce_baselines/index.html create mode 100644 user-guide/reproduce_fm/index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..72cc384 --- /dev/null +++ b/404.html @@ -0,0 +1,709 @@ + + + + + + + + + + + + + + + + + + + Foundation Model for Cancer Imaging Biomarkers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/api_docs/fmcib/callbacks/index.html b/api_docs/fmcib/callbacks/index.html new file mode 100644 index 0000000..fa6bad3 --- /dev/null +++ b/api_docs/fmcib/callbacks/index.html @@ -0,0 +1,76 @@ + + + + + + +fmcib.callbacks API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.callbacks

+
+
+
+ +Expand source code + +
from .prediction_saver import SavePredictions
+
+
+
+

Sub-modules

+
+
fmcib.callbacks.prediction_saver
+
+
+
+
fmcib.callbacks.utils
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/callbacks/prediction_saver.html b/api_docs/fmcib/callbacks/prediction_saver.html new file mode 100644 index 0000000..6e8811f --- /dev/null +++ b/api_docs/fmcib/callbacks/prediction_saver.html @@ -0,0 +1,437 @@ + + + + + + +fmcib.callbacks.prediction_saver API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.callbacks.prediction_saver

+
+
+
+ +Expand source code + +
from typing import Any, List
+
+from pathlib import Path
+
+import pandas as pd
+import torchvision
+from loguru import logger
+from pytorch_lightning.callbacks import BasePredictionWriter
+
+from .utils import decollate, handle_image
+
+
+class SavePredictions(BasePredictionWriter):
+    """
+    A class that saves model predictions.
+
+    Attributes:
+        path (str): The path to save the output CSV file.
+        save_preview_samples (bool): If True, save preview images.
+        keys (List[str]): A list of keys.
+    """
+
+    def __init__(self, path: str, save_preview_samples: bool = False, keys: List[str] = None):
+        """
+        Initialize an instance of the class.
+
+        Args:
+            path (str): The path to save the output CSV file.
+            save_preview_samples (bool, optional): A flag indicating whether to save preview samples. Defaults to False.
+            keys (List[str], optional): A list of keys. Defaults to None.
+
+        Raises:
+            None
+
+        Returns:
+            None
+        """
+        super().__init__("epoch")
+        self.output_csv = Path(path)
+        self.keys = keys
+        self.save_preview_samples = save_preview_samples
+        self.output_csv.parent.mkdir(parents=True, exist_ok=True)
+
+    def save_preview_image(self, data, tag):
+        """
+        Save a preview image to a specified directory.
+
+        Args:
+            self (object): The object calling the function. (self in Python)
+            data (tuple): A tuple containing the image data and its corresponding tag.
+            tag (str): The tag for the image.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        self.output_dir = self.output_csv.parent / f"previews_{self.output_csv.stem}"
+        self.output_dir.mkdir(parents=True, exist_ok=True)
+        image, _ = data
+        image = handle_image(image)
+        fp = self.output_dir / f"{tag}.png"
+        torchvision.utils.save_image(image, fp)
+
+    def write_on_epoch_end(
+        self,
+        trainer,
+        pl_module: "LightningModule",
+        predictions: List[Any],
+        batch_indices: List[Any],
+    ):
+        """
+        Write predictions on epoch end.
+
+        Args:
+            self: The instance of the class.
+            trainer: The trainer object.
+            pl_module (LightningModule): The Lightning module.
+            predictions (List[Any]): A list of prediction values.
+            batch_indices (List[Any]): A list of batch indices.
+
+        Raises:
+            AssertionError: If 'predict' is not present in pl_module.datasets.
+            AssertionError: If 'data' is not defined in pl_module.datasets.
+
+        Returns:
+            None
+        """
+        rows = []
+        assert "predict" in pl_module.datasets, "`data` not defined"
+        dataset = pl_module.datasets["predict"]
+        predictions = [pred for batch_pred in predictions for pred in batch_pred["pred"]]
+
+        for idx, (row, pred) in enumerate(zip(dataset.get_rows(), predictions)):
+            for i, v in enumerate(pred):
+                row[f"pred_{i}"] = v.item()
+
+            rows.append(row)
+
+            # Save image previews
+            if idx <= self.save_preview_samples:
+                input = dataset[idx]
+                self.save_preview_image(input, idx)
+
+        df = pd.DataFrame(rows)
+        df.to_csv(self.output_csv)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class SavePredictions +(path: str, save_preview_samples: bool = False, keys: List[str] = None) +
+
+

A class that saves model predictions.

+

Attributes

+
+
path : str
+
The path to save the output CSV file.
+
save_preview_samples : bool
+
If True, save preview images.
+
keys : List[str]
+
A list of keys.
+
+

Initialize an instance of the class.

+

Args

+
+
path : str
+
The path to save the output CSV file.
+
save_preview_samples : bool, optional
+
A flag indicating whether to save preview samples. Defaults to False.
+
keys : List[str], optional
+
A list of keys. Defaults to None.
+
+

Raises

+

None

+

Returns

+

None

+
+ +Expand source code + +
class SavePredictions(BasePredictionWriter):
+    """
+    A class that saves model predictions.
+
+    Attributes:
+        path (str): The path to save the output CSV file.
+        save_preview_samples (bool): If True, save preview images.
+        keys (List[str]): A list of keys.
+    """
+
+    def __init__(self, path: str, save_preview_samples: bool = False, keys: List[str] = None):
+        """
+        Initialize an instance of the class.
+
+        Args:
+            path (str): The path to save the output CSV file.
+            save_preview_samples (bool, optional): A flag indicating whether to save preview samples. Defaults to False.
+            keys (List[str], optional): A list of keys. Defaults to None.
+
+        Raises:
+            None
+
+        Returns:
+            None
+        """
+        super().__init__("epoch")
+        self.output_csv = Path(path)
+        self.keys = keys
+        self.save_preview_samples = save_preview_samples
+        self.output_csv.parent.mkdir(parents=True, exist_ok=True)
+
+    def save_preview_image(self, data, tag):
+        """
+        Save a preview image to a specified directory.
+
+        Args:
+            self (object): The object calling the function. (self in Python)
+            data (tuple): A tuple containing the image data and its corresponding tag.
+            tag (str): The tag for the image.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        self.output_dir = self.output_csv.parent / f"previews_{self.output_csv.stem}"
+        self.output_dir.mkdir(parents=True, exist_ok=True)
+        image, _ = data
+        image = handle_image(image)
+        fp = self.output_dir / f"{tag}.png"
+        torchvision.utils.save_image(image, fp)
+
+    def write_on_epoch_end(
+        self,
+        trainer,
+        pl_module: "LightningModule",
+        predictions: List[Any],
+        batch_indices: List[Any],
+    ):
+        """
+        Write predictions on epoch end.
+
+        Args:
+            self: The instance of the class.
+            trainer: The trainer object.
+            pl_module (LightningModule): The Lightning module.
+            predictions (List[Any]): A list of prediction values.
+            batch_indices (List[Any]): A list of batch indices.
+
+        Raises:
+            AssertionError: If 'predict' is not present in pl_module.datasets.
+            AssertionError: If 'data' is not defined in pl_module.datasets.
+
+        Returns:
+            None
+        """
+        rows = []
+        assert "predict" in pl_module.datasets, "`data` not defined"
+        dataset = pl_module.datasets["predict"]
+        predictions = [pred for batch_pred in predictions for pred in batch_pred["pred"]]
+
+        for idx, (row, pred) in enumerate(zip(dataset.get_rows(), predictions)):
+            for i, v in enumerate(pred):
+                row[f"pred_{i}"] = v.item()
+
+            rows.append(row)
+
+            # Save image previews
+            if idx <= self.save_preview_samples:
+                input = dataset[idx]
+                self.save_preview_image(input, idx)
+
+        df = pd.DataFrame(rows)
+        df.to_csv(self.output_csv)
+
+

Ancestors

+
    +
  • pytorch_lightning.callbacks.prediction_writer.BasePredictionWriter
  • +
  • pytorch_lightning.callbacks.callback.Callback
  • +
+

Methods

+
+
+def save_preview_image(self, data, tag) +
+
+

Save a preview image to a specified directory.

+

Args

+
+
self : object
+
The object calling the function. (self in Python)
+
data : tuple
+
A tuple containing the image data and its corresponding tag.
+
tag : str
+
The tag for the image.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
def save_preview_image(self, data, tag):
+    """
+    Save a preview image to a specified directory.
+
+    Args:
+        self (object): The object calling the function. (self in Python)
+        data (tuple): A tuple containing the image data and its corresponding tag.
+        tag (str): The tag for the image.
+
+    Returns:
+        None
+
+    Raises:
+        None
+    """
+    self.output_dir = self.output_csv.parent / f"previews_{self.output_csv.stem}"
+    self.output_dir.mkdir(parents=True, exist_ok=True)
+    image, _ = data
+    image = handle_image(image)
+    fp = self.output_dir / f"{tag}.png"
+    torchvision.utils.save_image(image, fp)
+
+
+
+def write_on_epoch_end(self, trainer, pl_module: LightningModule, predictions: List[Any], batch_indices: List[Any]) +
+
+

Write predictions on epoch end.

+

Args

+
+
self
+
The instance of the class.
+
trainer
+
The trainer object.
+
pl_module : LightningModule
+
The Lightning module.
+
predictions : List[Any]
+
A list of prediction values.
+
batch_indices : List[Any]
+
A list of batch indices.
+
+

Raises

+
+
AssertionError
+
If 'predict' is not present in pl_module.datasets.
+
AssertionError
+
If 'data' is not defined in pl_module.datasets.
+
+

Returns

+

None

+
+ +Expand source code + +
def write_on_epoch_end(
+    self,
+    trainer,
+    pl_module: "LightningModule",
+    predictions: List[Any],
+    batch_indices: List[Any],
+):
+    """
+    Write predictions on epoch end.
+
+    Args:
+        self: The instance of the class.
+        trainer: The trainer object.
+        pl_module (LightningModule): The Lightning module.
+        predictions (List[Any]): A list of prediction values.
+        batch_indices (List[Any]): A list of batch indices.
+
+    Raises:
+        AssertionError: If 'predict' is not present in pl_module.datasets.
+        AssertionError: If 'data' is not defined in pl_module.datasets.
+
+    Returns:
+        None
+    """
+    rows = []
+    assert "predict" in pl_module.datasets, "`data` not defined"
+    dataset = pl_module.datasets["predict"]
+    predictions = [pred for batch_pred in predictions for pred in batch_pred["pred"]]
+
+    for idx, (row, pred) in enumerate(zip(dataset.get_rows(), predictions)):
+        for i, v in enumerate(pred):
+            row[f"pred_{i}"] = v.item()
+
+        rows.append(row)
+
+        # Save image previews
+        if idx <= self.save_preview_samples:
+            input = dataset[idx]
+            self.save_preview_image(input, idx)
+
+    df = pd.DataFrame(rows)
+    df.to_csv(self.output_csv)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/callbacks/utils.html b/api_docs/fmcib/callbacks/utils.html new file mode 100644 index 0000000..89bf7f1 --- /dev/null +++ b/api_docs/fmcib/callbacks/utils.html @@ -0,0 +1,205 @@ + + + + + + +fmcib.callbacks.utils API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.callbacks.utils

+
+
+
+ +Expand source code + +
from typing import List
+
+import torch
+
+
+def decollate(data: List[torch.Tensor]):
+    """
+    Decollate a list of tensors into a list of values.
+
+    Args:
+        data (list): A list of batch tensors.
+
+    Returns:
+        list: A list of values from the input tensors.
+
+    Raises:
+        AssertionError: If the input is not a list of tensors.
+    """
+    assert isinstance(data, list), "Decollate only implemented for list of `batch` tensors"
+
+    out = []
+    for d in data:
+        # Handles both cases: multiple elements and single element
+        # https://pytorch.org/docs/stable/generated/torch.Tensor.tolist.html
+        d = d.tolist()
+
+        out += d
+    return out
+
+
+def handle_image(image):
+    """
+    Handle image according to specific requirements.
+
+    Args:
+        image (tensor): An image tensor.
+
+    Returns:
+        tensor: The processed image tensor, based on the input conditions.
+
+    Raises:
+        None.
+    """
+    image = image.squeeze()
+    if image.dim() == 3:
+        return image[image.shape[0] // 2]
+    else:
+        return image
+
+
+
+
+
+
+
+

Functions

+
+
+def decollate(data: List[torch.Tensor]) +
+
+

Decollate a list of tensors into a list of values.

+

Args

+
+
data : list
+
A list of batch tensors.
+
+

Returns

+
+
list
+
A list of values from the input tensors.
+
+

Raises

+
+
AssertionError
+
If the input is not a list of tensors.
+
+
+ +Expand source code + +
def decollate(data: List[torch.Tensor]):
+    """
+    Decollate a list of tensors into a list of values.
+
+    Args:
+        data (list): A list of batch tensors.
+
+    Returns:
+        list: A list of values from the input tensors.
+
+    Raises:
+        AssertionError: If the input is not a list of tensors.
+    """
+    assert isinstance(data, list), "Decollate only implemented for list of `batch` tensors"
+
+    out = []
+    for d in data:
+        # Handles both cases: multiple elements and single element
+        # https://pytorch.org/docs/stable/generated/torch.Tensor.tolist.html
+        d = d.tolist()
+
+        out += d
+    return out
+
+
+
+def handle_image(image) +
+
+

Handle image according to specific requirements.

+

Args

+
+
image : tensor
+
An image tensor.
+
+

Returns

+
+
tensor
+
The processed image tensor, based on the input conditions.
+
+

Raises

+

None.

+
+ +Expand source code + +
def handle_image(image):
+    """
+    Handle image according to specific requirements.
+
+    Args:
+        image (tensor): An image tensor.
+
+    Returns:
+        tensor: The processed image tensor, based on the input conditions.
+
+    Raises:
+        None.
+    """
+    image = image.squeeze()
+    if image.dim() == 3:
+        return image[image.shape[0] // 2]
+    else:
+        return image
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/datasets/index.html b/api_docs/fmcib/datasets/index.html new file mode 100644 index 0000000..ebe683b --- /dev/null +++ b/api_docs/fmcib/datasets/index.html @@ -0,0 +1,356 @@ + + + + + + +fmcib.datasets API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.datasets

+
+
+
+ +Expand source code + +
import os
+import random
+from pathlib import Path
+
+import monai
+import numpy as np
+import pandas as pd
+import SimpleITK as sitk
+import wget
+from loguru import logger
+
+from .ssl_radiomics_dataset import SSLRadiomicsDataset
+
+
+def get_lung1_clinical_data():
+    wget.download(
+        "https://www.dropbox.com/s/ulp8t21eunep21y/NSCLC%20Radiomics%20Lung1.clinical-version3-Oct%202019.csv?dl=1",
+        out="/tmp/lung1_clinical.csv",
+    )
+    return pd.read_csv("/tmp/lung1_clinical.csv")
+
+
+def get_radio_clinical_data():
+    wget.download(
+        "https://www.dropbox.com/s/mtpynjof550ulfo/NSCLCR01Radiogenomic_DATA_LABELS_2018-05-22_1500-shifted.csv?dl=1",
+        out=f"/tmp/radio_clinical.csv",
+    )
+    return pd.read_csv("/tmp/radio_clinical.csv")
+
+
+def get_lung1_foundation_features():
+    wget.download(
+        "https://www.dropbox.com/s/ypbb2iogq3bsq5v/lung1.csv?dl=1",
+        out=f"/tmp/lung1_foundation_features.csv",
+    )
+    df = pd.read_csv("/tmp/lung1_foundation_features.csv")
+    filtered_df = df.filter(like="pred")
+    filtered_df = filtered_df.reset_index()  # reset the index
+    filtered_df["PatientID"] = df["PatientID"]
+    return filtered_df
+
+
+def get_radio_foundation_features():
+    wget.download(
+        "https://www.dropbox.com/s/pwl4rdlvp9jirar/radio.csv?dl=1",
+        out=f"/tmp/radio_foundation_features.csv",
+    )
+
+    df = pd.read_csv("/tmp/radio_foundation_features.csv")
+    filtered_df = df.filter(like="pred")
+    filtered_df = filtered_df.reset_index()  # reset the index
+    filtered_df["PatientID"] = df["Case ID"]
+    return filtered_df
+
+
+def generate_dummy_data(dir_path, size=10):
+    path = Path(dir_path).resolve()
+    path.mkdir(exist_ok=True, parents=True)
+
+    row_list = []
+    for i in range(size):
+        row = create_dummy_row((32, 128, 128), str(path / f"dummy_{i}.nii.gz"))
+        row_list.append(row)
+
+    df = pd.DataFrame(row_list)
+    df.to_csv(path / "dummy.csv", index=False)
+
+    logger.info(f"Generated dummy data at {path}/dummy.csv")
+
+
+def create_dummy_row(size, output_filename):
+    """
+    Function to create a dummy row with path to an image and seed point corresponding to the image
+    """
+
+    # Create a np array initialized with random values between -1024 and 2048
+    np_image = np.random.randint(-1024, 2048, size, dtype=np.int16)
+
+    # Create an itk image from the numpy array
+    itk_image = sitk.GetImageFromArray(np_image)
+
+    # Save itk image to file with the given output filename
+    sitk.WriteImage(itk_image, output_filename)
+
+    x, y, z = generate_random_seed_point(itk_image.GetSize())
+
+    # Convert to global coordinates
+    x, y, z = itk_image.TransformContinuousIndexToPhysicalPoint((x, y, z))
+
+    return {
+        "image_path": output_filename,
+        "PatientID": random.randint(0, 100000),
+        "coordX": x,
+        "coordY": y,
+        "coordZ": z,
+        "label": random.randint(0, 1),
+    }
+
+
+def generate_random_seed_point(image_size):
+    """
+    Function to generate a random x, y, z coordinate within the image
+    """
+    x = random.randint(0, image_size[0] - 1)
+    y = random.randint(0, image_size[1] - 1)
+    z = random.randint(0, image_size[2] - 1)
+
+    return (x, y, z)
+
+
+
+

Sub-modules

+
+
fmcib.datasets.ssl_radiomics_dataset
+
+
+
+
fmcib.datasets.utils
+
+
+
+
+
+
+
+
+

Functions

+
+
+def create_dummy_row(size, output_filename) +
+
+

Function to create a dummy row with path to an image and seed point corresponding to the image

+
+ +Expand source code + +
def create_dummy_row(size, output_filename):
+    """
+    Function to create a dummy row with path to an image and seed point corresponding to the image
+    """
+
+    # Create a np array initialized with random values between -1024 and 2048
+    np_image = np.random.randint(-1024, 2048, size, dtype=np.int16)
+
+    # Create an itk image from the numpy array
+    itk_image = sitk.GetImageFromArray(np_image)
+
+    # Save itk image to file with the given output filename
+    sitk.WriteImage(itk_image, output_filename)
+
+    x, y, z = generate_random_seed_point(itk_image.GetSize())
+
+    # Convert to global coordinates
+    x, y, z = itk_image.TransformContinuousIndexToPhysicalPoint((x, y, z))
+
+    return {
+        "image_path": output_filename,
+        "PatientID": random.randint(0, 100000),
+        "coordX": x,
+        "coordY": y,
+        "coordZ": z,
+        "label": random.randint(0, 1),
+    }
+
+
+
+def generate_dummy_data(dir_path, size=10) +
+
+
+
+ +Expand source code + +
def generate_dummy_data(dir_path, size=10):
+    path = Path(dir_path).resolve()
+    path.mkdir(exist_ok=True, parents=True)
+
+    row_list = []
+    for i in range(size):
+        row = create_dummy_row((32, 128, 128), str(path / f"dummy_{i}.nii.gz"))
+        row_list.append(row)
+
+    df = pd.DataFrame(row_list)
+    df.to_csv(path / "dummy.csv", index=False)
+
+    logger.info(f"Generated dummy data at {path}/dummy.csv")
+
+
+
+def generate_random_seed_point(image_size) +
+
+

Function to generate a random x, y, z coordinate within the image

+
+ +Expand source code + +
def generate_random_seed_point(image_size):
+    """
+    Function to generate a random x, y, z coordinate within the image
+    """
+    x = random.randint(0, image_size[0] - 1)
+    y = random.randint(0, image_size[1] - 1)
+    z = random.randint(0, image_size[2] - 1)
+
+    return (x, y, z)
+
+
+
+def get_lung1_clinical_data() +
+
+
+
+ +Expand source code + +
def get_lung1_clinical_data():
+    wget.download(
+        "https://www.dropbox.com/s/ulp8t21eunep21y/NSCLC%20Radiomics%20Lung1.clinical-version3-Oct%202019.csv?dl=1",
+        out="/tmp/lung1_clinical.csv",
+    )
+    return pd.read_csv("/tmp/lung1_clinical.csv")
+
+
+
+def get_lung1_foundation_features() +
+
+
+
+ +Expand source code + +
def get_lung1_foundation_features():
+    wget.download(
+        "https://www.dropbox.com/s/ypbb2iogq3bsq5v/lung1.csv?dl=1",
+        out=f"/tmp/lung1_foundation_features.csv",
+    )
+    df = pd.read_csv("/tmp/lung1_foundation_features.csv")
+    filtered_df = df.filter(like="pred")
+    filtered_df = filtered_df.reset_index()  # reset the index
+    filtered_df["PatientID"] = df["PatientID"]
+    return filtered_df
+
+
+
+def get_radio_clinical_data() +
+
+
+
+ +Expand source code + +
def get_radio_clinical_data():
+    wget.download(
+        "https://www.dropbox.com/s/mtpynjof550ulfo/NSCLCR01Radiogenomic_DATA_LABELS_2018-05-22_1500-shifted.csv?dl=1",
+        out=f"/tmp/radio_clinical.csv",
+    )
+    return pd.read_csv("/tmp/radio_clinical.csv")
+
+
+
+def get_radio_foundation_features() +
+
+
+
+ +Expand source code + +
def get_radio_foundation_features():
+    wget.download(
+        "https://www.dropbox.com/s/pwl4rdlvp9jirar/radio.csv?dl=1",
+        out=f"/tmp/radio_foundation_features.csv",
+    )
+
+    df = pd.read_csv("/tmp/radio_foundation_features.csv")
+    filtered_df = df.filter(like="pred")
+    filtered_df = filtered_df.reset_index()  # reset the index
+    filtered_df["PatientID"] = df["Case ID"]
+    return filtered_df
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/datasets/ssl_radiomics_dataset.html b/api_docs/fmcib/datasets/ssl_radiomics_dataset.html new file mode 100644 index 0000000..691fcc3 --- /dev/null +++ b/api_docs/fmcib/datasets/ssl_radiomics_dataset.html @@ -0,0 +1,619 @@ + + + + + + +fmcib.datasets.ssl_radiomics_dataset API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.datasets.ssl_radiomics_dataset

+
+
+
+ +Expand source code + +
from pathlib import Path
+
+import monai
+import numpy as np
+import pandas as pd
+import SimpleITK as sitk
+from loguru import logger
+from torch.utils.data import Dataset
+
+from .utils import resample_image_to_spacing, slice_image
+
+
+class SSLRadiomicsDataset(Dataset):
+    """
+    Dataset class for SSL Radiomics dataset.
+
+    Args:
+        path (str): The path to the dataset.
+        label (str, optional): The label column name in the dataset annotations. Default is None.
+        radius (int, optional): The radius around the centroid for positive patch extraction. Default is 25.
+        orient (bool, optional): Whether to orient the images to LPI orientation. Default is False.
+        resample_spacing (float or tuple, optional): The desired spacing for resampling the images. Default is None.
+        enable_negatives (bool, optional): Whether to include negative samples. Default is True.
+        transform (callable, optional): A function/transform to apply on the images. Default is None.
+    """
+
+    def __init__(
+        self,
+        path,
+        label=None,
+        radius=25,
+        orient=False,
+        resample_spacing=None,
+        enable_negatives=True,
+        transform=None,
+        orient_patch=True,
+        input_is_target=False,
+    ):
+        """
+        Creates an instance of the SSLRadiomicsDataset class with the given parameters.
+
+        Args:
+            path (str): The path to the dataset.
+            label (Optional[str]): The label to use for the dataset. Defaults to None.
+            radius (int): The radius parameter. Defaults to 25.
+            orient (bool): True if the dataset should be oriented, False otherwise. Defaults to False.
+            resample_spacing (Optional[...]): The resample spacing parameter. Defaults to None.
+            enable_negatives (bool): True if negatives are enabled, False otherwise. Defaults to True.
+            transform: The transformation to apply to the dataset. Defaults to None.
+            orient_patch (bool): True if the patch should be oriented, False otherwise. Defaults to True.
+            input_is_target (bool): True if the input is the target, False otherwise. Defaults to False.
+
+        Raises:
+            None.
+
+        Returns:
+            None.
+        """
+        monai.data.set_track_meta(False)
+        sitk.ProcessObject.SetGlobalDefaultNumberOfThreads(1)
+        super(SSLRadiomicsDataset, self).__init__()
+        self._path = Path(path)
+
+        self.radius = radius
+        self.orient = orient
+        self.resample_spacing = resample_spacing
+        self.label = label
+        self.enable_negatives = enable_negatives
+        self.transform = transform
+        self.orient_patch = orient_patch
+        self.input_is_target = input_is_target
+        self.annotations = pd.read_csv(self._path)
+        self._num_samples = len(self.annotations)  # set the length of the dataset
+
+    def get_rows(self):
+        """
+        Get the rows of the annotations as a list of dictionaries.
+
+        Returns:
+            list of dict: The rows of the annotations as dictionaries.
+        """
+        return self.annotations.to_dict(orient="records")
+
+    def get_labels(self):
+        """
+        Function to get labels for when they are available in the dataset.
+
+        Args:
+            None
+
+        Returns:
+            None
+        """
+
+        labels = self.annotations[self.label].values
+        assert not np.any(labels == -1), "All labels must be specified"
+        return labels
+
+    def __len__(self):
+        """
+        Size of the dataset.
+        """
+        return self._num_samples
+
+    def get_negative_sample(self, image):
+        """
+        Extract a negative sample from the image background with no overlap to the positive sample.
+
+        Parameters:
+            image: Image to extract sample
+            positive_patch_idx: Index of the positive patch in [(xmin, xmax), (ymin, ymax), (zmin, zmax)]
+        """
+        positive_patch_size = [self.radius * 2] * 3
+        valid_patch_size = monai.data.utils.get_valid_patch_size(image.GetSize(), positive_patch_size)
+
+        def get_random_patch():
+            """
+            Get a random patch from an image.
+
+            Returns:
+                list: A list containing the start and end indices of the random patch.
+            """
+            random_patch_idx = [
+                [x.start, x.stop] for x in monai.data.utils.get_random_patch(image.GetSize(), valid_patch_size)
+            ]
+            return random_patch_idx
+
+        random_patch_idx = get_random_patch()
+
+        # escape_count = 0
+        # while is_overlapping(positive_patch_idx, random_patch_idx):
+        #     if escape_count >= 3:
+        #         logger.warning("Random patch has overlap with positive patch")
+        #         return None
+
+        #     random_patch_idx = get_random_patch()
+        #     escape_count += 1
+
+        random_patch = slice_image(image, random_patch_idx)
+        random_patch = sitk.DICOMOrient(random_patch, "LPS") if self.orient_patch else random_patch
+        negative_array = sitk.GetArrayFromImage(random_patch)
+
+        negative_tensor = negative_array if self.transform is None else self.transform(negative_array)
+        return negative_tensor
+
+    def __getitem__(self, idx: int):
+        """
+        Implement how to load the data corresponding to the idx element in the dataset from your data source.
+        """
+
+        # Get a row from the CSV file
+        row = self.annotations.iloc[idx]
+        image_path = row["image_path"]
+        image = sitk.ReadImage(str(image_path))
+        image = resample_image_to_spacing(image, self.resample_spacing, -1024) if self.resample_spacing is not None else image
+
+        centroid = (row["coordX"], row["coordY"], row["coordZ"])
+        centroid = image.TransformPhysicalPointToContinuousIndex(centroid)
+        centroid = [int(d) for d in centroid]
+
+        # Orient all images to LPI orientation
+        image = sitk.DICOMOrient(image, "LPI") if self.orient else image
+
+        # Extract positive with a specified radius around centroid
+        patch_idx = [(c - self.radius, c + self.radius) for c in centroid]
+        patch_image = slice_image(image, patch_idx)
+
+        patch_image = sitk.DICOMOrient(patch_image, "LPS") if self.orient_patch else patch_image
+
+        array = sitk.GetArrayFromImage(patch_image)
+        tensor = array if self.transform is None else self.transform(array)
+
+        if self.label is not None:
+            target = int(row[self.label])
+        elif self.input_is_target:
+            target = tensor.clone()
+        else:
+            target = None
+
+        if self.enable_negatives:
+            return {"positive": tensor, "negative": self.get_negative_sample(image)}, target
+
+        return tensor, target
+
+
+if __name__ == "__main__":
+    from pathlib import Path
+
+    # Test pytorch dataset
+    print("Test pytorch dataset")
+    dataset = SSLRadiomicsDataset(
+        "/home/suraj/Repositories/cancer-imaging-ssl/src/pretraining/data_csv/deeplesion/train.csv",
+        orient=True,
+        resample_spacing=[1, 1, 1],
+    )
+
+    # Visualize item from dataset
+    item = dataset[0]
+
+    positive = sitk.GetImageFromArray(item[0][0])
+    negative = sitk.GetImageFromArray(item[0][1])
+    current_dir = Path(__file__).parent.resolve()
+
+    sitk.WriteImage(positive, f"{str(current_dir)}/tests/positive.nrrd")
+    sitk.WriteImage(negative, f"{str(current_dir)}/tests/negative.nrrd")
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class SSLRadiomicsDataset +(path, label=None, radius=25, orient=False, resample_spacing=None, enable_negatives=True, transform=None, orient_patch=True, input_is_target=False) +
+
+

Dataset class for SSL Radiomics dataset.

+

Args

+
+
path : str
+
The path to the dataset.
+
label : str, optional
+
The label column name in the dataset annotations. Default is None.
+
radius : int, optional
+
The radius around the centroid for positive patch extraction. Default is 25.
+
orient : bool, optional
+
Whether to orient the images to LPI orientation. Default is False.
+
resample_spacing : float or tuple, optional
+
The desired spacing for resampling the images. Default is None.
+
enable_negatives : bool, optional
+
Whether to include negative samples. Default is True.
+
transform : callable, optional
+
A function/transform to apply on the images. Default is None.
+
+

Creates an instance of the SSLRadiomicsDataset class with the given parameters.

+

Args

+
+
path : str
+
The path to the dataset.
+
label : Optional[str]
+
The label to use for the dataset. Defaults to None.
+
radius : int
+
The radius parameter. Defaults to 25.
+
orient : bool
+
True if the dataset should be oriented, False otherwise. Defaults to False.
+
resample_spacing : Optional[…]
+
The resample spacing parameter. Defaults to None.
+
enable_negatives : bool
+
True if negatives are enabled, False otherwise. Defaults to True.
+
transform
+
The transformation to apply to the dataset. Defaults to None.
+
orient_patch : bool
+
True if the patch should be oriented, False otherwise. Defaults to True.
+
input_is_target : bool
+
True if the input is the target, False otherwise. Defaults to False.
+
+

Raises

+

None.

+

Returns

+

None.

+
+ +Expand source code + +
class SSLRadiomicsDataset(Dataset):
+    """
+    Dataset class for SSL Radiomics dataset.
+
+    Args:
+        path (str): The path to the dataset.
+        label (str, optional): The label column name in the dataset annotations. Default is None.
+        radius (int, optional): The radius around the centroid for positive patch extraction. Default is 25.
+        orient (bool, optional): Whether to orient the images to LPI orientation. Default is False.
+        resample_spacing (float or tuple, optional): The desired spacing for resampling the images. Default is None.
+        enable_negatives (bool, optional): Whether to include negative samples. Default is True.
+        transform (callable, optional): A function/transform to apply on the images. Default is None.
+    """
+
+    def __init__(
+        self,
+        path,
+        label=None,
+        radius=25,
+        orient=False,
+        resample_spacing=None,
+        enable_negatives=True,
+        transform=None,
+        orient_patch=True,
+        input_is_target=False,
+    ):
+        """
+        Creates an instance of the SSLRadiomicsDataset class with the given parameters.
+
+        Args:
+            path (str): The path to the dataset.
+            label (Optional[str]): The label to use for the dataset. Defaults to None.
+            radius (int): The radius parameter. Defaults to 25.
+            orient (bool): True if the dataset should be oriented, False otherwise. Defaults to False.
+            resample_spacing (Optional[...]): The resample spacing parameter. Defaults to None.
+            enable_negatives (bool): True if negatives are enabled, False otherwise. Defaults to True.
+            transform: The transformation to apply to the dataset. Defaults to None.
+            orient_patch (bool): True if the patch should be oriented, False otherwise. Defaults to True.
+            input_is_target (bool): True if the input is the target, False otherwise. Defaults to False.
+
+        Raises:
+            None.
+
+        Returns:
+            None.
+        """
+        monai.data.set_track_meta(False)
+        sitk.ProcessObject.SetGlobalDefaultNumberOfThreads(1)
+        super(SSLRadiomicsDataset, self).__init__()
+        self._path = Path(path)
+
+        self.radius = radius
+        self.orient = orient
+        self.resample_spacing = resample_spacing
+        self.label = label
+        self.enable_negatives = enable_negatives
+        self.transform = transform
+        self.orient_patch = orient_patch
+        self.input_is_target = input_is_target
+        self.annotations = pd.read_csv(self._path)
+        self._num_samples = len(self.annotations)  # set the length of the dataset
+
+    def get_rows(self):
+        """
+        Get the rows of the annotations as a list of dictionaries.
+
+        Returns:
+            list of dict: The rows of the annotations as dictionaries.
+        """
+        return self.annotations.to_dict(orient="records")
+
+    def get_labels(self):
+        """
+        Function to get labels for when they are available in the dataset.
+
+        Args:
+            None
+
+        Returns:
+            None
+        """
+
+        labels = self.annotations[self.label].values
+        assert not np.any(labels == -1), "All labels must be specified"
+        return labels
+
+    def __len__(self):
+        """
+        Size of the dataset.
+        """
+        return self._num_samples
+
+    def get_negative_sample(self, image):
+        """
+        Extract a negative sample from the image background with no overlap to the positive sample.
+
+        Parameters:
+            image: Image to extract sample
+            positive_patch_idx: Index of the positive patch in [(xmin, xmax), (ymin, ymax), (zmin, zmax)]
+        """
+        positive_patch_size = [self.radius * 2] * 3
+        valid_patch_size = monai.data.utils.get_valid_patch_size(image.GetSize(), positive_patch_size)
+
+        def get_random_patch():
+            """
+            Get a random patch from an image.
+
+            Returns:
+                list: A list containing the start and end indices of the random patch.
+            """
+            random_patch_idx = [
+                [x.start, x.stop] for x in monai.data.utils.get_random_patch(image.GetSize(), valid_patch_size)
+            ]
+            return random_patch_idx
+
+        random_patch_idx = get_random_patch()
+
+        # escape_count = 0
+        # while is_overlapping(positive_patch_idx, random_patch_idx):
+        #     if escape_count >= 3:
+        #         logger.warning("Random patch has overlap with positive patch")
+        #         return None
+
+        #     random_patch_idx = get_random_patch()
+        #     escape_count += 1
+
+        random_patch = slice_image(image, random_patch_idx)
+        random_patch = sitk.DICOMOrient(random_patch, "LPS") if self.orient_patch else random_patch
+        negative_array = sitk.GetArrayFromImage(random_patch)
+
+        negative_tensor = negative_array if self.transform is None else self.transform(negative_array)
+        return negative_tensor
+
+    def __getitem__(self, idx: int):
+        """
+        Implement how to load the data corresponding to the idx element in the dataset from your data source.
+        """
+
+        # Get a row from the CSV file
+        row = self.annotations.iloc[idx]
+        image_path = row["image_path"]
+        image = sitk.ReadImage(str(image_path))
+        image = resample_image_to_spacing(image, self.resample_spacing, -1024) if self.resample_spacing is not None else image
+
+        centroid = (row["coordX"], row["coordY"], row["coordZ"])
+        centroid = image.TransformPhysicalPointToContinuousIndex(centroid)
+        centroid = [int(d) for d in centroid]
+
+        # Orient all images to LPI orientation
+        image = sitk.DICOMOrient(image, "LPI") if self.orient else image
+
+        # Extract positive with a specified radius around centroid
+        patch_idx = [(c - self.radius, c + self.radius) for c in centroid]
+        patch_image = slice_image(image, patch_idx)
+
+        patch_image = sitk.DICOMOrient(patch_image, "LPS") if self.orient_patch else patch_image
+
+        array = sitk.GetArrayFromImage(patch_image)
+        tensor = array if self.transform is None else self.transform(array)
+
+        if self.label is not None:
+            target = int(row[self.label])
+        elif self.input_is_target:
+            target = tensor.clone()
+        else:
+            target = None
+
+        if self.enable_negatives:
+            return {"positive": tensor, "negative": self.get_negative_sample(image)}, target
+
+        return tensor, target
+
+

Ancestors

+
    +
  • torch.utils.data.dataset.Dataset
  • +
  • typing.Generic
  • +
+

Methods

+
+
+def get_labels(self) +
+
+

Function to get labels for when they are available in the dataset.

+

Args

+

None

+

Returns

+

None

+
+ +Expand source code + +
def get_labels(self):
+    """
+    Function to get labels for when they are available in the dataset.
+
+    Args:
+        None
+
+    Returns:
+        None
+    """
+
+    labels = self.annotations[self.label].values
+    assert not np.any(labels == -1), "All labels must be specified"
+    return labels
+
+
+
+def get_negative_sample(self, image) +
+
+

Extract a negative sample from the image background with no overlap to the positive sample.

+

Parameters

+

image: Image to extract sample +positive_patch_idx: Index of the positive patch in [(xmin, xmax), (ymin, ymax), (zmin, zmax)]

+
+ +Expand source code + +
def get_negative_sample(self, image):
+    """
+    Extract a negative sample from the image background with no overlap to the positive sample.
+
+    Parameters:
+        image: Image to extract sample
+        positive_patch_idx: Index of the positive patch in [(xmin, xmax), (ymin, ymax), (zmin, zmax)]
+    """
+    positive_patch_size = [self.radius * 2] * 3
+    valid_patch_size = monai.data.utils.get_valid_patch_size(image.GetSize(), positive_patch_size)
+
+    def get_random_patch():
+        """
+        Get a random patch from an image.
+
+        Returns:
+            list: A list containing the start and end indices of the random patch.
+        """
+        random_patch_idx = [
+            [x.start, x.stop] for x in monai.data.utils.get_random_patch(image.GetSize(), valid_patch_size)
+        ]
+        return random_patch_idx
+
+    random_patch_idx = get_random_patch()
+
+    # escape_count = 0
+    # while is_overlapping(positive_patch_idx, random_patch_idx):
+    #     if escape_count >= 3:
+    #         logger.warning("Random patch has overlap with positive patch")
+    #         return None
+
+    #     random_patch_idx = get_random_patch()
+    #     escape_count += 1
+
+    random_patch = slice_image(image, random_patch_idx)
+    random_patch = sitk.DICOMOrient(random_patch, "LPS") if self.orient_patch else random_patch
+    negative_array = sitk.GetArrayFromImage(random_patch)
+
+    negative_tensor = negative_array if self.transform is None else self.transform(negative_array)
+    return negative_tensor
+
+
+
+def get_rows(self) +
+
+

Get the rows of the annotations as a list of dictionaries.

+

Returns

+
+
list of dict
+
The rows of the annotations as dictionaries.
+
+
+ +Expand source code + +
def get_rows(self):
+    """
+    Get the rows of the annotations as a list of dictionaries.
+
+    Returns:
+        list of dict: The rows of the annotations as dictionaries.
+    """
+    return self.annotations.to_dict(orient="records")
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/datasets/utils.html b/api_docs/fmcib/datasets/utils.html new file mode 100644 index 0000000..0943a94 --- /dev/null +++ b/api_docs/fmcib/datasets/utils.html @@ -0,0 +1,254 @@ + + + + + + +fmcib.datasets.utils API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.datasets.utils

+
+
+
+ +Expand source code + +
from pathlib import Path
+
+import numpy as np
+import SimpleITK as sitk
+
+# https://github.com/SimpleITK/SlicerSimpleFilters/blob/master/SimpleFilters/SimpleFilters.py
+SITK_INTERPOLATOR_DICT = {
+    "nearest": sitk.sitkNearestNeighbor,
+    "linear": sitk.sitkLinear,
+    "gaussian": sitk.sitkGaussian,
+    "label_gaussian": sitk.sitkLabelGaussian,
+    "bspline": sitk.sitkBSpline,
+    "hamming_sinc": sitk.sitkHammingWindowedSinc,
+    "cosine_windowed_sinc": sitk.sitkCosineWindowedSinc,
+    "welch_windowed_sinc": sitk.sitkWelchWindowedSinc,
+    "lanczos_windowed_sinc": sitk.sitkLanczosWindowedSinc,
+}
+
+
+def resample_image_to_spacing(image, new_spacing, default_value, interpolator="linear"):
+    """
+    Resample an image to a new spacing.
+    """
+    assert interpolator in SITK_INTERPOLATOR_DICT, (
+        f"Interpolator '{interpolator}' not part of SimpleITK. "
+        f"Please choose one of the following {list(SITK_INTERPOLATOR_DICT.keys())}."
+    )
+
+    assert image.GetDimension() == len(new_spacing), (
+        f"Input is {image.GetDimension()}-dimensional while " f"the new spacing is {len(new_spacing)}-dimensional."
+    )
+
+    interpolator = SITK_INTERPOLATOR_DICT[interpolator]
+    spacing = image.GetSpacing()
+    size = image.GetSize()
+    new_size = [int(round(siz * spac / n_spac)) for siz, spac, n_spac in zip(size, spacing, new_spacing)]
+    return sitk.Resample(
+        image,
+        new_size,  # size
+        sitk.Transform(),  # transform
+        interpolator,  # interpolator
+        image.GetOrigin(),  # outputOrigin
+        new_spacing,  # outputSpacing
+        image.GetDirection(),  # outputDirection
+        default_value,  # defaultPixelValue
+        image.GetPixelID(),
+    )  # outputPixelType
+
+
+def slice_image(image, patch_idx):
+    """
+    Slice an image.
+    """
+
+    start, stop = zip(*patch_idx)
+    slice_filter = sitk.SliceImageFilter()
+    slice_filter.SetStart(start)
+    slice_filter.SetStop(stop)
+    return slice_filter.Execute(image)
+
+
+def is_overlapping(patch1, patch2):
+    """
+    Check if two patches are overlapping.
+
+    Args:
+        patch1 (list of tuples): A list of tuples representing the ranges of each axis in patch1.
+        patch2 (list of tuples): A list of tuples representing the ranges of each axis in patch2.
+
+    Returns:
+        bool: True if the two patches overlap, False otherwise.
+
+    Note:
+        This function assumes that each patch is represented by a list of tuples, where each tuple represents the range of an axis in the patch.
+        The range of an axis is represented by a tuple (start, end), where start is the start value of the range and end is the end value of the range.
+        The patches are considered overlapping if there is any overlap in the ranges of their axes.
+    """
+    overlap_by_axis = [max(axis1[0], axis2[0]) < min(axis1[1], axis2[1]) for axis1, axis2 in zip(patch1, patch2)]
+
+    return np.all(overlap_by_axis)
+
+
+
+
+
+
+
+

Functions

+
+
+def is_overlapping(patch1, patch2) +
+
+

Check if two patches are overlapping.

+

Args

+
+
patch1 : list of tuples
+
A list of tuples representing the ranges of each axis in patch1.
+
patch2 : list of tuples
+
A list of tuples representing the ranges of each axis in patch2.
+
+

Returns

+
+
bool
+
True if the two patches overlap, False otherwise.
+
+

Note

+

This function assumes that each patch is represented by a list of tuples, where each tuple represents the range of an axis in the patch. +The range of an axis is represented by a tuple (start, end), where start is the start value of the range and end is the end value of the range. +The patches are considered overlapping if there is any overlap in the ranges of their axes.

+
+ +Expand source code + +
def is_overlapping(patch1, patch2):
+    """
+    Check if two patches are overlapping.
+
+    Args:
+        patch1 (list of tuples): A list of tuples representing the ranges of each axis in patch1.
+        patch2 (list of tuples): A list of tuples representing the ranges of each axis in patch2.
+
+    Returns:
+        bool: True if the two patches overlap, False otherwise.
+
+    Note:
+        This function assumes that each patch is represented by a list of tuples, where each tuple represents the range of an axis in the patch.
+        The range of an axis is represented by a tuple (start, end), where start is the start value of the range and end is the end value of the range.
+        The patches are considered overlapping if there is any overlap in the ranges of their axes.
+    """
+    overlap_by_axis = [max(axis1[0], axis2[0]) < min(axis1[1], axis2[1]) for axis1, axis2 in zip(patch1, patch2)]
+
+    return np.all(overlap_by_axis)
+
+
+
+def resample_image_to_spacing(image, new_spacing, default_value, interpolator='linear') +
+
+

Resample an image to a new spacing.

+
+ +Expand source code + +
def resample_image_to_spacing(image, new_spacing, default_value, interpolator="linear"):
+    """
+    Resample an image to a new spacing.
+    """
+    assert interpolator in SITK_INTERPOLATOR_DICT, (
+        f"Interpolator '{interpolator}' not part of SimpleITK. "
+        f"Please choose one of the following {list(SITK_INTERPOLATOR_DICT.keys())}."
+    )
+
+    assert image.GetDimension() == len(new_spacing), (
+        f"Input is {image.GetDimension()}-dimensional while " f"the new spacing is {len(new_spacing)}-dimensional."
+    )
+
+    interpolator = SITK_INTERPOLATOR_DICT[interpolator]
+    spacing = image.GetSpacing()
+    size = image.GetSize()
+    new_size = [int(round(siz * spac / n_spac)) for siz, spac, n_spac in zip(size, spacing, new_spacing)]
+    return sitk.Resample(
+        image,
+        new_size,  # size
+        sitk.Transform(),  # transform
+        interpolator,  # interpolator
+        image.GetOrigin(),  # outputOrigin
+        new_spacing,  # outputSpacing
+        image.GetDirection(),  # outputDirection
+        default_value,  # defaultPixelValue
+        image.GetPixelID(),
+    )  # outputPixelType
+
+
+
+def slice_image(image, patch_idx) +
+
+

Slice an image.

+
+ +Expand source code + +
def slice_image(image, patch_idx):
+    """
+    Slice an image.
+    """
+
+    start, stop = zip(*patch_idx)
+    slice_filter = sitk.SliceImageFilter()
+    slice_filter.SetStart(start)
+    slice_filter.SetStop(stop)
+    return slice_filter.Execute(image)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/index.html b/api_docs/fmcib/index.html new file mode 100644 index 0000000..df7aa8b --- /dev/null +++ b/api_docs/fmcib/index.html @@ -0,0 +1,111 @@ + + + + + + +fmcib API documentation + + + + + + + + + + + +
+
+
+

Package fmcib

+
+
+
+ +Expand source code + +
__version__ = "0.0.1a22"
+
+
+
+

Sub-modules

+
+
fmcib.callbacks
+
+
+
+
fmcib.datasets
+
+
+
+
fmcib.models
+
+
+
+
fmcib.optimizers
+
+
+
+
fmcib.preprocessing
+
+
+
+
fmcib.run
+
+
+
+
fmcib.ssl
+
+
+
+
fmcib.transforms
+
+
+
+
fmcib.utils
+
+
+
+
fmcib.visualization
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/models/autoencoder.html b/api_docs/fmcib/models/autoencoder.html new file mode 100644 index 0000000..9f5f44f --- /dev/null +++ b/api_docs/fmcib/models/autoencoder.html @@ -0,0 +1,397 @@ + + + + + + +fmcib.models.autoencoder API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.models.autoencoder

+
+
+
+ +Expand source code + +
import torch
+import torch.nn as nn
+from monai.networks.blocks import Convolution, ResidualUnit
+from monai.networks.nets import AutoEncoder
+
+
+class CustomAE(AutoEncoder):
+    """
+    A custom AutoEncoder class.
+
+    Inherits from AutoEncoder.
+
+    Attributes:
+        padding (int): The padding size for the convolutional layers.
+        decoder (bool, optional): Determines if the decoder part of the network is included.
+        kwargs: Additional keyword arguments passed to the parent class.
+
+    Methods:
+        _get_encode_layer(in_channels, out_channels, strides, is_last): Returns a single layer of the encoder part of the network.
+        _get_decode_layer(in_channels, out_channels, strides, is_last): Returns a single layer of the decoder part of the network.
+    """
+
+    def __init__(self, padding, decoder=True, **kwargs):
+        """
+        Initialize the object.
+
+        Args:
+            padding (int): Padding value.
+            decoder (bool, optional): If True, use a decoder. Defaults to True.
+            **kwargs: Additional keyword arguments.
+
+        Attributes:
+            padding (int): Padding value.
+
+        Raises:
+            None
+        """
+        self.padding = padding
+        super().__init__(**kwargs)
+        if not decoder:
+            self.decode = nn.Sequential(nn.AvgPool3d(3), nn.Flatten())
+
+    def _get_encode_layer(self, in_channels: int, out_channels: int, strides: int, is_last: bool) -> nn.Module:
+        """
+        Returns a single layer of the encoder part of the network.
+        """
+        mod: nn.Module
+        if self.num_res_units > 0:
+            mod = ResidualUnit(
+                spatial_dims=self.dimensions,
+                in_channels=in_channels,
+                out_channels=out_channels,
+                strides=strides,
+                kernel_size=self.kernel_size,
+                padding=self.padding,
+                subunits=self.num_res_units,
+                act=self.act,
+                norm=self.norm,
+                dropout=self.dropout,
+                bias=self.bias,
+                last_conv_only=is_last,
+            )
+            return mod
+        mod = Convolution(
+            spatial_dims=self.dimensions,
+            in_channels=in_channels,
+            out_channels=out_channels,
+            strides=strides,
+            kernel_size=self.kernel_size,
+            padding=self.padding,
+            act=self.act,
+            norm=self.norm,
+            dropout=self.dropout,
+            bias=self.bias,
+            conv_only=is_last,
+        )
+        return mod
+
+    def _get_decode_layer(self, in_channels: int, out_channels: int, strides: int, is_last: bool) -> nn.Sequential:
+        """
+        Returns a single layer of the decoder part of the network.
+        """
+        decode = nn.Sequential()
+
+        conv = Convolution(
+            spatial_dims=self.dimensions,
+            in_channels=in_channels,
+            out_channels=out_channels,
+            strides=strides,
+            kernel_size=self.up_kernel_size,
+            padding=self.padding,
+            act=self.act,
+            norm=self.norm,
+            dropout=self.dropout,
+            bias=self.bias,
+            conv_only=is_last and self.num_res_units == 0,
+            is_transposed=True,
+        )
+
+        decode.add_module("conv", conv)
+
+        if self.num_res_units > 0:
+            ru = ResidualUnit(
+                spatial_dims=self.dimensions,
+                in_channels=out_channels,
+                out_channels=out_channels,
+                padding=self.padding,
+                strides=strides,
+                kernel_size=self.kernel_size,
+                subunits=1,
+                act=self.act,
+                norm=self.norm,
+                dropout=self.dropout,
+                bias=self.bias,
+                last_conv_only=is_last,
+            )
+
+            decode.add_module("resunit", ru)
+
+        return decode
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class CustomAE +(padding, decoder=True, **kwargs) +
+
+

A custom AutoEncoder class.

+

Inherits from AutoEncoder.

+

Attributes

+
+
padding : int
+
The padding size for the convolutional layers.
+
decoder : bool, optional
+
Determines if the decoder part of the network is included.
+
kwargs
+
Additional keyword arguments passed to the parent class.
+
+

Methods

+

_get_encode_layer(in_channels, out_channels, strides, is_last): Returns a single layer of the encoder part of the network. +_get_decode_layer(in_channels, out_channels, strides, is_last): Returns a single layer of the decoder part of the network.

+

Initialize the object.

+

Args

+
+
padding : int
+
Padding value.
+
decoder : bool, optional
+
If True, use a decoder. Defaults to True.
+
**kwargs
+
Additional keyword arguments.
+
+

Attributes

+
+
padding : int
+
Padding value.
+
+

Raises

+

None

+
+ +Expand source code + +
class CustomAE(AutoEncoder):
+    """
+    A custom AutoEncoder class.
+
+    Inherits from AutoEncoder.
+
+    Attributes:
+        padding (int): The padding size for the convolutional layers.
+        decoder (bool, optional): Determines if the decoder part of the network is included.
+        kwargs: Additional keyword arguments passed to the parent class.
+
+    Methods:
+        _get_encode_layer(in_channels, out_channels, strides, is_last): Returns a single layer of the encoder part of the network.
+        _get_decode_layer(in_channels, out_channels, strides, is_last): Returns a single layer of the decoder part of the network.
+    """
+
+    def __init__(self, padding, decoder=True, **kwargs):
+        """
+        Initialize the object.
+
+        Args:
+            padding (int): Padding value.
+            decoder (bool, optional): If True, use a decoder. Defaults to True.
+            **kwargs: Additional keyword arguments.
+
+        Attributes:
+            padding (int): Padding value.
+
+        Raises:
+            None
+        """
+        self.padding = padding
+        super().__init__(**kwargs)
+        if not decoder:
+            self.decode = nn.Sequential(nn.AvgPool3d(3), nn.Flatten())
+
+    def _get_encode_layer(self, in_channels: int, out_channels: int, strides: int, is_last: bool) -> nn.Module:
+        """
+        Returns a single layer of the encoder part of the network.
+        """
+        mod: nn.Module
+        if self.num_res_units > 0:
+            mod = ResidualUnit(
+                spatial_dims=self.dimensions,
+                in_channels=in_channels,
+                out_channels=out_channels,
+                strides=strides,
+                kernel_size=self.kernel_size,
+                padding=self.padding,
+                subunits=self.num_res_units,
+                act=self.act,
+                norm=self.norm,
+                dropout=self.dropout,
+                bias=self.bias,
+                last_conv_only=is_last,
+            )
+            return mod
+        mod = Convolution(
+            spatial_dims=self.dimensions,
+            in_channels=in_channels,
+            out_channels=out_channels,
+            strides=strides,
+            kernel_size=self.kernel_size,
+            padding=self.padding,
+            act=self.act,
+            norm=self.norm,
+            dropout=self.dropout,
+            bias=self.bias,
+            conv_only=is_last,
+        )
+        return mod
+
+    def _get_decode_layer(self, in_channels: int, out_channels: int, strides: int, is_last: bool) -> nn.Sequential:
+        """
+        Returns a single layer of the decoder part of the network.
+        """
+        decode = nn.Sequential()
+
+        conv = Convolution(
+            spatial_dims=self.dimensions,
+            in_channels=in_channels,
+            out_channels=out_channels,
+            strides=strides,
+            kernel_size=self.up_kernel_size,
+            padding=self.padding,
+            act=self.act,
+            norm=self.norm,
+            dropout=self.dropout,
+            bias=self.bias,
+            conv_only=is_last and self.num_res_units == 0,
+            is_transposed=True,
+        )
+
+        decode.add_module("conv", conv)
+
+        if self.num_res_units > 0:
+            ru = ResidualUnit(
+                spatial_dims=self.dimensions,
+                in_channels=out_channels,
+                out_channels=out_channels,
+                padding=self.padding,
+                strides=strides,
+                kernel_size=self.kernel_size,
+                subunits=1,
+                act=self.act,
+                norm=self.norm,
+                dropout=self.dropout,
+                bias=self.bias,
+                last_conv_only=is_last,
+            )
+
+            decode.add_module("resunit", ru)
+
+        return decode
+
+

Ancestors

+
    +
  • monai.networks.nets.autoencoder.AutoEncoder
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x: torch.Tensor) ‑> Any +
+
+

Define the computation performed at every call.

+

Should be overridden by all subclasses.

+
+

Note

+

Although the recipe for forward pass needs to be defined within +this function, one should call the :class:Module instance afterwards +instead of this since the former takes care of running the +registered hooks while the latter silently ignores them.

+
+
+ +Expand source code + +
def forward(self, x: torch.Tensor) -> Any:
+    x = self.encode(x)
+    x = self.intermediate(x)
+    x = self.decode(x)
+    return x
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/models/index.html b/api_docs/fmcib/models/index.html new file mode 100644 index 0000000..5f2270a --- /dev/null +++ b/api_docs/fmcib/models/index.html @@ -0,0 +1,169 @@ + + + + + + +fmcib.models API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.models

+
+
+
+ +Expand source code + +
import os
+import pickle
+from pathlib import Path
+
+import wget
+from monai.networks.nets import resnet50
+
+from fmcib.utils.download_utils import bar_progress
+
+from .autoencoder import CustomAE as AutoEncoder
+from .load_model import LoadModel
+from .models_genesis import UNet3D as ModelsGenesisUNet3D
+
+
+def get_linear_classifier(weights_path=None, download_url="https://www.dropbox.com/s/77zg2av5c6edjfu/task3.pkl?dl=1"):
+    if weights_path is None:
+        weights_path = "/tmp/linear_model.pkl"
+        wget.download(download_url, out=weights_path)
+
+    return pickle.load(open(weights_path, "rb"))
+
+
+def fmcib_model():
+    trunk = resnet50(
+        pretrained=False,
+        n_input_channels=1,
+        widen_factor=2,
+        conv1_t_stride=2,
+        feed_forward=False,
+        bias_downsample=True,
+    )
+    weights_url = "https://zenodo.org/records/10528450/files/model_weights.torch?download=1"
+    current_path = Path(os.getcwd())
+    if not (current_path / "model_weights.torch").exists():
+        wget.download(weights_url, bar=bar_progress)
+    model = LoadModel(trunk=trunk, weights_path=current_path / "model_weights.torch", heads=[])
+    return model
+
+
+
+

Sub-modules

+
+
fmcib.models.autoencoder
+
+
+
+
fmcib.models.load_model
+
+
+
+
fmcib.models.models_genesis
+
+
+
+
+
+
+
+
+

Functions

+
+
+def fmcib_model() +
+
+
+
+ +Expand source code + +
def fmcib_model():
+    trunk = resnet50(
+        pretrained=False,
+        n_input_channels=1,
+        widen_factor=2,
+        conv1_t_stride=2,
+        feed_forward=False,
+        bias_downsample=True,
+    )
+    weights_url = "https://zenodo.org/records/10528450/files/model_weights.torch?download=1"
+    current_path = Path(os.getcwd())
+    if not (current_path / "model_weights.torch").exists():
+        wget.download(weights_url, bar=bar_progress)
+    model = LoadModel(trunk=trunk, weights_path=current_path / "model_weights.torch", heads=[])
+    return model
+
+
+
+def get_linear_classifier(weights_path=None, download_url='https://www.dropbox.com/s/77zg2av5c6edjfu/task3.pkl?dl=1') +
+
+
+
+ +Expand source code + +
def get_linear_classifier(weights_path=None, download_url="https://www.dropbox.com/s/77zg2av5c6edjfu/task3.pkl?dl=1"):
+    if weights_path is None:
+        weights_path = "/tmp/linear_model.pkl"
+        wget.download(download_url, out=weights_path)
+
+    return pickle.load(open(weights_path, "rb"))
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/models/load_model.html b/api_docs/fmcib/models/load_model.html new file mode 100644 index 0000000..f6773a9 --- /dev/null +++ b/api_docs/fmcib/models/load_model.html @@ -0,0 +1,512 @@ + + + + + + +fmcib.models.load_model API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.models.load_model

+
+
+
+ +Expand source code + +
from collections import OrderedDict
+
+import torch
+from loguru import logger
+from torch import nn
+
+
+class LoadModel(nn.Module):
+    """
+    A class representing a loaded model.
+
+    Args:
+        trunk (nn.Module, optional): The trunk of the model. Defaults to None.
+        weights_path (str, optional): The path to the weights file. Defaults to None.
+        heads (list, optional): The list of head layers in the model. Defaults to [].
+
+    Attributes:
+        trunk (nn.Module): The trunk of the model.
+        heads (nn.Sequential): The concatenated head layers of the model.
+
+    Methods:
+        forward(x: torch.Tensor) -> torch.Tensor: Forward pass through the model.
+        load(weights): Load the pretrained model weights.
+    """
+
+    def __init__(self, trunk=None, weights_path=None, heads=[]) -> None:
+        """
+        Initialize the model.
+
+        Args:
+            trunk (optional): The trunk of the model.
+            weights_path (optional): The path to the weights file.
+            heads (list, optional): A list of layer sizes for the heads of the model.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__()
+        self.trunk = trunk
+        head_layers = []
+        for idx in range(len(heads) - 1):
+            current_layers = []
+            current_layers.append(nn.Linear(heads[idx], heads[idx + 1], bias=True))
+
+            if idx != (len(heads) - 2):
+                current_layers.append(nn.ReLU(inplace=True))
+
+            head_layers.append(nn.Sequential(*current_layers))
+
+        if len(head_layers):
+            self.heads = nn.Sequential(*head_layers)
+        else:
+            self.heads = nn.Identity()
+
+        if weights_path is not None:
+            self.load(weights_path)
+
+    def forward(self, x: torch.Tensor):
+        """
+        Forward pass of the neural network.
+
+        Args:
+            x (torch.Tensor): The input tensor.
+
+        Returns:
+            torch.Tensor: The output tensor.
+        """
+        out = self.trunk(x)
+        out = self.heads(out)
+        return out
+
+    def load(self, weights):
+        """
+        Load pretrained model weights from a file.
+
+        Args:
+            weights (str): The path to the file containing the pretrained model weights.
+
+        Raises:
+            KeyError: If the input weights file does not contain the expected keys.
+            Exception: If there is an error when loading the pretrained heads.
+
+        Returns:
+            None.
+
+        Note:
+            This function assumes that the pretrained model weights file is in the format expected by the model architecture.
+
+        Warnings:
+            - Missing keys: This warning message indicates the keys in the pretrained model weights file that are missing from the current model.
+            - Unexpected keys: This warning message indicates the keys in the pretrained model weights file that are not expected by the current model.
+
+        Raises the appropriate warnings and logs informational messages.
+        """
+        pretrained_model = torch.load(weights)
+
+        if "trunk_state_dict" in pretrained_model:  # Loading ViSSL pretrained model
+            trained_trunk = pretrained_model["trunk_state_dict"]
+            msg = self.trunk.load_state_dict(trained_trunk, strict=False)
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        if "state_dict" in pretrained_model:  # Loading Med3D pretrained model
+            trained_model = pretrained_model["state_dict"]
+
+            # match the keys (https://github.com/Project-MONAI/MONAI/issues/6811)
+            weights = {key.replace("module.", ""): value for key, value in trained_model.items()}
+            weights = {key.replace("model.trunk.", ""): value for key, value in trained_model.items()}
+            msg = self.trunk.load_state_dict(weights, strict=False)
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+            weights = {key.replace("model.heads.", ""): value for key, value in trained_model.items()}
+            msg = self.heads.load_state_dict(weights, strict=False)
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        # Load trained heads
+        if "head_state_dict" in pretrained_model:
+            trained_heads = pretrained_model["head_state_dict"]
+
+            try:
+                msg = self.heads.load_state_dict(trained_heads, strict=False)
+            except Exception as e:
+                logger.error(f"Failed to load trained heads with error {e}. This is expected if the models do not match!")
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        logger.info(f"Loaded pretrained model weights \n")
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class LoadModel +(trunk=None, weights_path=None, heads=[]) +
+
+

A class representing a loaded model.

+

Args

+
+
trunk : nn.Module, optional
+
The trunk of the model. Defaults to None.
+
weights_path : str, optional
+
The path to the weights file. Defaults to None.
+
heads : list, optional
+
The list of head layers in the model. Defaults to [].
+
+

Attributes

+
+
trunk : nn.Module
+
The trunk of the model.
+
heads : nn.Sequential
+
The concatenated head layers of the model.
+
+

Methods

+

forward(x: torch.Tensor) -> torch.Tensor: Forward pass through the model. +load(weights): Load the pretrained model weights.

+

Initialize the model.

+

Args

+
+
trunk : optional
+
The trunk of the model.
+
weights_path : optional
+
The path to the weights file.
+
heads : list, optional
+
A list of layer sizes for the heads of the model.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
class LoadModel(nn.Module):
+    """
+    A class representing a loaded model.
+
+    Args:
+        trunk (nn.Module, optional): The trunk of the model. Defaults to None.
+        weights_path (str, optional): The path to the weights file. Defaults to None.
+        heads (list, optional): The list of head layers in the model. Defaults to [].
+
+    Attributes:
+        trunk (nn.Module): The trunk of the model.
+        heads (nn.Sequential): The concatenated head layers of the model.
+
+    Methods:
+        forward(x: torch.Tensor) -> torch.Tensor: Forward pass through the model.
+        load(weights): Load the pretrained model weights.
+    """
+
+    def __init__(self, trunk=None, weights_path=None, heads=[]) -> None:
+        """
+        Initialize the model.
+
+        Args:
+            trunk (optional): The trunk of the model.
+            weights_path (optional): The path to the weights file.
+            heads (list, optional): A list of layer sizes for the heads of the model.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__()
+        self.trunk = trunk
+        head_layers = []
+        for idx in range(len(heads) - 1):
+            current_layers = []
+            current_layers.append(nn.Linear(heads[idx], heads[idx + 1], bias=True))
+
+            if idx != (len(heads) - 2):
+                current_layers.append(nn.ReLU(inplace=True))
+
+            head_layers.append(nn.Sequential(*current_layers))
+
+        if len(head_layers):
+            self.heads = nn.Sequential(*head_layers)
+        else:
+            self.heads = nn.Identity()
+
+        if weights_path is not None:
+            self.load(weights_path)
+
+    def forward(self, x: torch.Tensor):
+        """
+        Forward pass of the neural network.
+
+        Args:
+            x (torch.Tensor): The input tensor.
+
+        Returns:
+            torch.Tensor: The output tensor.
+        """
+        out = self.trunk(x)
+        out = self.heads(out)
+        return out
+
+    def load(self, weights):
+        """
+        Load pretrained model weights from a file.
+
+        Args:
+            weights (str): The path to the file containing the pretrained model weights.
+
+        Raises:
+            KeyError: If the input weights file does not contain the expected keys.
+            Exception: If there is an error when loading the pretrained heads.
+
+        Returns:
+            None.
+
+        Note:
+            This function assumes that the pretrained model weights file is in the format expected by the model architecture.
+
+        Warnings:
+            - Missing keys: This warning message indicates the keys in the pretrained model weights file that are missing from the current model.
+            - Unexpected keys: This warning message indicates the keys in the pretrained model weights file that are not expected by the current model.
+
+        Raises the appropriate warnings and logs informational messages.
+        """
+        pretrained_model = torch.load(weights)
+
+        if "trunk_state_dict" in pretrained_model:  # Loading ViSSL pretrained model
+            trained_trunk = pretrained_model["trunk_state_dict"]
+            msg = self.trunk.load_state_dict(trained_trunk, strict=False)
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        if "state_dict" in pretrained_model:  # Loading Med3D pretrained model
+            trained_model = pretrained_model["state_dict"]
+
+            # match the keys (https://github.com/Project-MONAI/MONAI/issues/6811)
+            weights = {key.replace("module.", ""): value for key, value in trained_model.items()}
+            weights = {key.replace("model.trunk.", ""): value for key, value in trained_model.items()}
+            msg = self.trunk.load_state_dict(weights, strict=False)
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+            weights = {key.replace("model.heads.", ""): value for key, value in trained_model.items()}
+            msg = self.heads.load_state_dict(weights, strict=False)
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        # Load trained heads
+        if "head_state_dict" in pretrained_model:
+            trained_heads = pretrained_model["head_state_dict"]
+
+            try:
+                msg = self.heads.load_state_dict(trained_heads, strict=False)
+            except Exception as e:
+                logger.error(f"Failed to load trained heads with error {e}. This is expected if the models do not match!")
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        logger.info(f"Loaded pretrained model weights \n")
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x: torch.Tensor) ‑> Callable[..., Any] +
+
+

Forward pass of the neural network.

+

Args

+
+
x : torch.Tensor
+
The input tensor.
+
+

Returns

+
+
torch.Tensor
+
The output tensor.
+
+
+ +Expand source code + +
def forward(self, x: torch.Tensor):
+    """
+    Forward pass of the neural network.
+
+    Args:
+        x (torch.Tensor): The input tensor.
+
+    Returns:
+        torch.Tensor: The output tensor.
+    """
+    out = self.trunk(x)
+    out = self.heads(out)
+    return out
+
+
+
+def load(self, weights) +
+
+

Load pretrained model weights from a file.

+

Args

+
+
weights : str
+
The path to the file containing the pretrained model weights.
+
+

Raises

+
+
KeyError
+
If the input weights file does not contain the expected keys.
+
Exception
+
If there is an error when loading the pretrained heads.
+
+

Returns

+

None.

+

Note

+

This function assumes that the pretrained model weights file is in the format expected by the model architecture.

+

Warnings

+
    +
  • Missing keys: This warning message indicates the keys in the pretrained model weights file that are missing from the current model.
  • +
  • Unexpected keys: This warning message indicates the keys in the pretrained model weights file that are not expected by the current model.
  • +
+

Raises the appropriate warnings and logs informational messages.

+
+ +Expand source code + +
def load(self, weights):
+    """
+    Load pretrained model weights from a file.
+
+    Args:
+        weights (str): The path to the file containing the pretrained model weights.
+
+    Raises:
+        KeyError: If the input weights file does not contain the expected keys.
+        Exception: If there is an error when loading the pretrained heads.
+
+    Returns:
+        None.
+
+    Note:
+        This function assumes that the pretrained model weights file is in the format expected by the model architecture.
+
+    Warnings:
+        - Missing keys: This warning message indicates the keys in the pretrained model weights file that are missing from the current model.
+        - Unexpected keys: This warning message indicates the keys in the pretrained model weights file that are not expected by the current model.
+
+    Raises the appropriate warnings and logs informational messages.
+    """
+    pretrained_model = torch.load(weights)
+
+    if "trunk_state_dict" in pretrained_model:  # Loading ViSSL pretrained model
+        trained_trunk = pretrained_model["trunk_state_dict"]
+        msg = self.trunk.load_state_dict(trained_trunk, strict=False)
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+    if "state_dict" in pretrained_model:  # Loading Med3D pretrained model
+        trained_model = pretrained_model["state_dict"]
+
+        # match the keys (https://github.com/Project-MONAI/MONAI/issues/6811)
+        weights = {key.replace("module.", ""): value for key, value in trained_model.items()}
+        weights = {key.replace("model.trunk.", ""): value for key, value in trained_model.items()}
+        msg = self.trunk.load_state_dict(weights, strict=False)
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        weights = {key.replace("model.heads.", ""): value for key, value in trained_model.items()}
+        msg = self.heads.load_state_dict(weights, strict=False)
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+    # Load trained heads
+    if "head_state_dict" in pretrained_model:
+        trained_heads = pretrained_model["head_state_dict"]
+
+        try:
+            msg = self.heads.load_state_dict(trained_heads, strict=False)
+        except Exception as e:
+            logger.error(f"Failed to load trained heads with error {e}. This is expected if the models do not match!")
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+    logger.info(f"Loaded pretrained model weights \n")
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/models/models_genesis.html b/api_docs/fmcib/models/models_genesis.html new file mode 100644 index 0000000..0560823 --- /dev/null +++ b/api_docs/fmcib/models/models_genesis.html @@ -0,0 +1,1427 @@ + + + + + + +fmcib.models.models_genesis API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.models.models_genesis

+
+
+
+ +Expand source code + +
import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+class ContBatchNorm3d(nn.modules.batchnorm._BatchNorm):
+    """
+    A class representing a 3D contextual batch normalization layer.
+
+    Attributes:
+        running_mean (torch.Tensor): The running mean of the batch normalization.
+        running_var (torch.Tensor): The running variance of the batch normalization.
+        weight (torch.Tensor): The learnable weights of the batch normalization.
+        bias (torch.Tensor): The learnable bias of the batch normalization.
+        momentum (float): The momentum for updating the running statistics.
+        eps (float): Small value added to the denominator for numerical stability.
+    """
+
+    def _check_input_dim(self, input):
+        """
+        Check if the input tensor is 5-dimensional.
+
+        Args:
+            input (torch.Tensor): Input tensor to check the dimensionality.
+
+        Raises:
+            ValueError: If the input tensor is not 5-dimensional.
+        """
+        if input.dim() != 5:
+            raise ValueError("expected 5D input (got {}D input)".format(input.dim()))
+        # super(ContBatchNorm3d, self)._check_input_dim(input)
+
+    def forward(self, input):
+        """
+        Apply forward pass for the input through batch normalization layer.
+
+        Args:
+            input (Tensor): Input tensor to be normalized.
+
+        Returns:
+            Tensor: Normalized output tensor.
+
+        Raises:
+            ValueError: If the dimensions of the input tensor do not match the expected input dimensions.
+        """
+        self._check_input_dim(input)
+        return F.batch_norm(input, self.running_mean, self.running_var, self.weight, self.bias, True, self.momentum, self.eps)
+
+
+class LUConv(nn.Module):
+    """
+    A class representing a LUConv module.
+
+    This module performs a convolution operation on the input data with a specified number of input channels and output channels.
+    The convolution is followed by batch normalization and an activation function.
+
+    Attributes:
+        in_chan (int): The number of input channels.
+        out_chan (int): The number of output channels.
+        act (str): The activation function to be applied. Can be one of 'relu', 'prelu', or 'elu'.
+    """
+
+    def __init__(self, in_chan, out_chan, act):
+        """
+        Initialize a LUConv layer.
+
+        Args:
+            in_chan (int): Number of input channels.
+            out_chan (int): Number of output channels.
+            act (str): Activation function. Options: 'relu', 'prelu', 'elu'.
+
+        Returns:
+            None
+
+        Raises:
+            TypeError: If the activation function is not one of the specified options.
+        """
+        super(LUConv, self).__init__()
+        self.conv1 = nn.Conv3d(in_chan, out_chan, kernel_size=3, padding=1)
+        self.bn1 = ContBatchNorm3d(out_chan)
+
+        if act == "relu":
+            self.activation = nn.ReLU(out_chan)
+        elif act == "prelu":
+            self.activation = nn.PReLU(out_chan)
+        elif act == "elu":
+            self.activation = nn.ELU(inplace=True)
+        else:
+            raise
+
+    def forward(self, x):
+        """
+        Apply forward pass through the neural network.
+
+        Args:
+            x (Tensor): Input tensor to the network.
+
+        Returns:
+            Tensor: Output tensor after passing through the network.
+        """
+        out = self.activation(self.bn1(self.conv1(x)))
+        return out
+
+
+def _make_nConv(in_channel, depth, act, double_chnnel=False):
+    """
+    Make a two-layer convolutional neural network module.
+
+    Args:
+        in_channel (int): The number of input channels.
+        depth (int): The depth of the network.
+        act: Activation function to be used in the network.
+        double_channel (bool, optional): If True, double the number of channels in the network. Defaults to False.
+
+    Returns:
+        nn.Sequential: A sequential module representing the two-layer convolutional network.
+
+    Note:
+        - If double_channel is True, the first layer will have 32 * 2 ** (depth + 1) channels and the second layer will have the same number of channels.
+        - If double_channel is False, the first layer will have 32 * 2 ** depth channels and the second layer will have 32 * 2 ** depth * 2 channels.
+    """
+    if double_chnnel:
+        layer1 = LUConv(in_channel, 32 * (2 ** (depth + 1)), act)
+        layer2 = LUConv(32 * (2 ** (depth + 1)), 32 * (2 ** (depth + 1)), act)
+    else:
+        layer1 = LUConv(in_channel, 32 * (2**depth), act)
+        layer2 = LUConv(32 * (2**depth), 32 * (2**depth) * 2, act)
+
+    return nn.Sequential(layer1, layer2)
+
+
+# class InputTransition(nn.Module):
+#     def __init__(self, outChans, elu):
+#         super(InputTransition, self).__init__()
+#         self.conv1 = nn.Conv3d(1, 16, kernel_size=5, padding=2)
+#         self.bn1 = ContBatchNorm3d(16)
+#         self.relu1 = ELUCons(elu, 16)
+#
+#     def forward(self, x):
+#         # do we want a PRELU here as well?
+#         out = self.bn1(self.conv1(x))
+#         # split input in to 16 channels
+#         x16 = torch.cat((x, x, x, x, x, x, x, x,
+#                          x, x, x, x, x, x, x, x), 1)
+#         out = self.relu1(torch.add(out, x16))
+#         return out
+
+
+class DownTransition(nn.Module):
+    """
+    A class representing a down transition module in a neural network.
+
+    Attributes:
+        in_channel (int): The number of input channels.
+        depth (int): The depth of the down transition module.
+        act (nn.Module): The activation function used in the module.
+    """
+
+    def __init__(self, in_channel, depth, act):
+        """
+        Initialize a DownTransition object.
+
+        Args:
+            in_channel (int): The number of channels in the input.
+            depth (int): The depth of the DownTransition.
+            act (function): The activation function.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super(DownTransition, self).__init__()
+        self.ops = _make_nConv(in_channel, depth, act)
+        self.maxpool = nn.MaxPool3d(2)
+        self.current_depth = depth
+
+    def forward(self, x):
+        """
+        Perform a forward pass through the neural network.
+
+        Args:
+            x (Tensor): The input tensor.
+
+        Returns:
+            tuple: A tuple containing two tensors. The first tensor is the output of the forward pass. The second tensor is the output before applying the max pooling operation.
+
+        Raises:
+            None
+        """
+        if self.current_depth == 3:
+            out = self.ops(x)
+            out_before_pool = out
+        else:
+            out_before_pool = self.ops(x)
+            out = self.maxpool(out_before_pool)
+        return out, out_before_pool
+
+
+class UpTransition(nn.Module):
+    """
+    A class representing an up transition layer in a neural network.
+
+    Attributes:
+        inChans (int): The number of input channels.
+        outChans (int): The number of output channels.
+        depth (int): The depth of the layer.
+        act (str): The activation function to be applied.
+    """
+
+    def __init__(self, inChans, outChans, depth, act):
+        """
+        Initialize the UpTransition module.
+
+        Args:
+            inChans (int): The number of input channels.
+            outChans (int): The number of output channels.
+            depth (int): The depth of the module.
+            act (nn.Module): The activation function to be used.
+
+        Returns:
+            None.
+
+        Raises:
+            None.
+        """
+        super(UpTransition, self).__init__()
+        self.depth = depth
+        self.up_conv = nn.ConvTranspose3d(inChans, outChans, kernel_size=2, stride=2)
+        self.ops = _make_nConv(inChans + outChans // 2, depth, act, double_chnnel=True)
+
+    def forward(self, x, skip_x):
+        """
+        Forward pass of the neural network.
+
+        Args:
+            x (torch.Tensor): Input tensor.
+            skip_x (torch.Tensor): Tensor to be concatenated with the upsampled convolution output.
+
+        Returns:
+            torch.Tensor: The output tensor after passing through the network.
+        """
+        out_up_conv = self.up_conv(x)
+        concat = torch.cat((out_up_conv, skip_x), 1)
+        out = self.ops(concat)
+        return out
+
+
+class OutputTransition(nn.Module):
+    """
+    A class representing the output transition in a neural network.
+
+    Attributes:
+        inChans (int): The number of input channels.
+        n_labels (int): The number of output labels.
+    """
+
+    def __init__(self, inChans, n_labels):
+        """
+        Initialize the OutputTransition class.
+
+        Args:
+            inChans (int): Number of input channels.
+            n_labels (int): Number of output labels.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super(OutputTransition, self).__init__()
+        self.final_conv = nn.Conv3d(inChans, n_labels, kernel_size=1)
+        self.sigmoid = nn.Sigmoid()
+
+    def forward(self, x):
+        """
+        Forward pass through a neural network model.
+
+        Args:
+            x (Tensor): The input tensor.
+
+        Returns:
+            Tensor: The output tensor after passing through the model.
+        """
+        out = self.sigmoid(self.final_conv(x))
+        return out
+
+
+class UNet3D(nn.Module):
+    # the number of convolutions in each layer corresponds
+    # to what is in the actual prototxt, not the intent
+    """
+    A class representing a 3D UNet model for segmentation.
+
+    Attributes:
+        n_class (int): The number of classes for segmentation.
+        act (str): The activation function type used in the model.
+        decoder (bool): Whether to include the decoder part in the model.
+
+    Methods:
+        forward(x): Forward pass of the model.
+    """
+
+    def __init__(self, n_class=1, act="relu", decoder=True):
+        """
+        Initialize a 3D UNet neural network model.
+
+        Args:
+            n_class (int): The number of output classes. Defaults to 1.
+            act (str): The activation function to use. Defaults to 'relu'.
+            decoder (bool): Whether to include the decoder layers. Defaults to True.
+
+        Attributes:
+            decoder (bool): Whether the model includes decoder layers.
+            down_tr64 (DownTransition): The first down transition layer.
+            down_tr128 (DownTransition): The second down transition layer.
+            down_tr256 (DownTransition): The third down transition layer.
+            down_tr512 (DownTransition): The fourth down transition layer.
+            up_tr256 (UpTransition): The first up transition layer. (Only exists if `decoder` is True)
+            up_tr128 (UpTransition): The second up transition layer. (Only exists if `decoder` is True)
+            up_tr64 (UpTransition): The third up transition layer. (Only exists if `decoder` is True)
+            out_tr (OutputTransition): The output transition layer. (Only exists if `decoder` is True)
+            avg_pool (nn.AvgPool3d): The average pooling layer. (Only exists if `decoder` is False)
+            flatten (nn.Flatten): The flattening layer. (Only exists if `decoder` is False)
+        """
+        super(UNet3D, self).__init__()
+
+        self.decoder = decoder
+
+        self.down_tr64 = DownTransition(1, 0, act)
+        self.down_tr128 = DownTransition(64, 1, act)
+        self.down_tr256 = DownTransition(128, 2, act)
+        self.down_tr512 = DownTransition(256, 3, act)
+
+        if self.decoder:
+            self.up_tr256 = UpTransition(512, 512, 2, act)
+            self.up_tr128 = UpTransition(256, 256, 1, act)
+            self.up_tr64 = UpTransition(128, 128, 0, act)
+            self.out_tr = OutputTransition(64, n_class)
+        else:
+            self.avg_pool = nn.AvgPool3d(3, stride=2)
+            self.flatten = nn.Flatten()
+
+    def forward(self, x):
+        """
+        Perform forward pass through the neural network.
+
+        Args:
+            x (Tensor): Input tensor to the network.
+
+        Returns:
+            Tensor: Output tensor from the network.
+
+        Note: This function performs a series of operations to downsample the input tensor, followed by upsampling if the 'decoder' flag is set. If the 'decoder' flag is not set, the output tensor goes through average pooling and flattening.
+
+        Raises:
+            None.
+        """
+        self.out64, self.skip_out64 = self.down_tr64(x)
+        self.out128, self.skip_out128 = self.down_tr128(self.out64)
+        self.out256, self.skip_out256 = self.down_tr256(self.out128)
+        self.out512, self.skip_out512 = self.down_tr512(self.out256)
+
+        if self.decoder:
+            self.out_up_256 = self.up_tr256(self.out512, self.skip_out256)
+            self.out_up_128 = self.up_tr128(self.out_up_256, self.skip_out128)
+            self.out_up_64 = self.up_tr64(self.out_up_128, self.skip_out64)
+            self.out = self.out_tr(self.out_up_64)
+        else:
+            self.out = self.avg_pool(self.out512)
+            self.out = self.flatten(self.out)
+
+        return self.out
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class ContBatchNorm3d +(num_features: int, eps: float = 1e-05, momentum: float = 0.1, affine: bool = True, track_running_stats: bool = True, device=None, dtype=None) +
+
+

A class representing a 3D contextual batch normalization layer.

+

Attributes

+
+
running_mean : torch.Tensor
+
The running mean of the batch normalization.
+
running_var : torch.Tensor
+
The running variance of the batch normalization.
+
weight : torch.Tensor
+
The learnable weights of the batch normalization.
+
bias : torch.Tensor
+
The learnable bias of the batch normalization.
+
momentum : float
+
The momentum for updating the running statistics.
+
eps : float
+
Small value added to the denominator for numerical stability.
+
+

Initialize internal Module state, shared by both nn.Module and ScriptModule.

+
+ +Expand source code + +
class ContBatchNorm3d(nn.modules.batchnorm._BatchNorm):
+    """
+    A class representing a 3D contextual batch normalization layer.
+
+    Attributes:
+        running_mean (torch.Tensor): The running mean of the batch normalization.
+        running_var (torch.Tensor): The running variance of the batch normalization.
+        weight (torch.Tensor): The learnable weights of the batch normalization.
+        bias (torch.Tensor): The learnable bias of the batch normalization.
+        momentum (float): The momentum for updating the running statistics.
+        eps (float): Small value added to the denominator for numerical stability.
+    """
+
+    def _check_input_dim(self, input):
+        """
+        Check if the input tensor is 5-dimensional.
+
+        Args:
+            input (torch.Tensor): Input tensor to check the dimensionality.
+
+        Raises:
+            ValueError: If the input tensor is not 5-dimensional.
+        """
+        if input.dim() != 5:
+            raise ValueError("expected 5D input (got {}D input)".format(input.dim()))
+        # super(ContBatchNorm3d, self)._check_input_dim(input)
+
+    def forward(self, input):
+        """
+        Apply forward pass for the input through batch normalization layer.
+
+        Args:
+            input (Tensor): Input tensor to be normalized.
+
+        Returns:
+            Tensor: Normalized output tensor.
+
+        Raises:
+            ValueError: If the dimensions of the input tensor do not match the expected input dimensions.
+        """
+        self._check_input_dim(input)
+        return F.batch_norm(input, self.running_mean, self.running_var, self.weight, self.bias, True, self.momentum, self.eps)
+
+

Ancestors

+
    +
  • torch.nn.modules.batchnorm._BatchNorm
  • +
  • torch.nn.modules.batchnorm._NormBase
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var affine : bool
+
+
+
+
var eps : float
+
+
+
+
var momentum : float
+
+
+
+
var num_features : int
+
+
+
+
var track_running_stats : bool
+
+
+
+
+

Methods

+
+
+def forward(self, input) ‑> Callable[..., Any] +
+
+

Apply forward pass for the input through batch normalization layer.

+

Args

+
+
input : Tensor
+
Input tensor to be normalized.
+
+

Returns

+
+
Tensor
+
Normalized output tensor.
+
+

Raises

+
+
ValueError
+
If the dimensions of the input tensor do not match the expected input dimensions.
+
+
+ +Expand source code + +
def forward(self, input):
+    """
+    Apply forward pass for the input through batch normalization layer.
+
+    Args:
+        input (Tensor): Input tensor to be normalized.
+
+    Returns:
+        Tensor: Normalized output tensor.
+
+    Raises:
+        ValueError: If the dimensions of the input tensor do not match the expected input dimensions.
+    """
+    self._check_input_dim(input)
+    return F.batch_norm(input, self.running_mean, self.running_var, self.weight, self.bias, True, self.momentum, self.eps)
+
+
+
+
+
+class DownTransition +(in_channel, depth, act) +
+
+

A class representing a down transition module in a neural network.

+

Attributes

+
+
in_channel : int
+
The number of input channels.
+
depth : int
+
The depth of the down transition module.
+
act : nn.Module
+
The activation function used in the module.
+
+

Initialize a DownTransition object.

+

Args

+
+
in_channel : int
+
The number of channels in the input.
+
depth : int
+
The depth of the DownTransition.
+
act : function
+
The activation function.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
class DownTransition(nn.Module):
+    """
+    A class representing a down transition module in a neural network.
+
+    Attributes:
+        in_channel (int): The number of input channels.
+        depth (int): The depth of the down transition module.
+        act (nn.Module): The activation function used in the module.
+    """
+
+    def __init__(self, in_channel, depth, act):
+        """
+        Initialize a DownTransition object.
+
+        Args:
+            in_channel (int): The number of channels in the input.
+            depth (int): The depth of the DownTransition.
+            act (function): The activation function.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super(DownTransition, self).__init__()
+        self.ops = _make_nConv(in_channel, depth, act)
+        self.maxpool = nn.MaxPool3d(2)
+        self.current_depth = depth
+
+    def forward(self, x):
+        """
+        Perform a forward pass through the neural network.
+
+        Args:
+            x (Tensor): The input tensor.
+
+        Returns:
+            tuple: A tuple containing two tensors. The first tensor is the output of the forward pass. The second tensor is the output before applying the max pooling operation.
+
+        Raises:
+            None
+        """
+        if self.current_depth == 3:
+            out = self.ops(x)
+            out_before_pool = out
+        else:
+            out_before_pool = self.ops(x)
+            out = self.maxpool(out_before_pool)
+        return out, out_before_pool
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x) ‑> Callable[..., Any] +
+
+

Perform a forward pass through the neural network.

+

Args

+
+
x : Tensor
+
The input tensor.
+
+

Returns

+
+
tuple
+
A tuple containing two tensors. The first tensor is the output of the forward pass. The second tensor is the output before applying the max pooling operation.
+
+

Raises

+

None

+
+ +Expand source code + +
def forward(self, x):
+    """
+    Perform a forward pass through the neural network.
+
+    Args:
+        x (Tensor): The input tensor.
+
+    Returns:
+        tuple: A tuple containing two tensors. The first tensor is the output of the forward pass. The second tensor is the output before applying the max pooling operation.
+
+    Raises:
+        None
+    """
+    if self.current_depth == 3:
+        out = self.ops(x)
+        out_before_pool = out
+    else:
+        out_before_pool = self.ops(x)
+        out = self.maxpool(out_before_pool)
+    return out, out_before_pool
+
+
+
+
+
+class LUConv +(in_chan, out_chan, act) +
+
+

A class representing a LUConv module.

+

This module performs a convolution operation on the input data with a specified number of input channels and output channels. +The convolution is followed by batch normalization and an activation function.

+

Attributes

+
+
in_chan : int
+
The number of input channels.
+
out_chan : int
+
The number of output channels.
+
act : str
+
The activation function to be applied. Can be one of 'relu', 'prelu', or 'elu'.
+
+

Initialize a LUConv layer.

+

Args

+
+
in_chan : int
+
Number of input channels.
+
out_chan : int
+
Number of output channels.
+
act : str
+
Activation function. Options: 'relu', 'prelu', 'elu'.
+
+

Returns

+

None

+

Raises

+
+
TypeError
+
If the activation function is not one of the specified options.
+
+
+ +Expand source code + +
class LUConv(nn.Module):
+    """
+    A class representing a LUConv module.
+
+    This module performs a convolution operation on the input data with a specified number of input channels and output channels.
+    The convolution is followed by batch normalization and an activation function.
+
+    Attributes:
+        in_chan (int): The number of input channels.
+        out_chan (int): The number of output channels.
+        act (str): The activation function to be applied. Can be one of 'relu', 'prelu', or 'elu'.
+    """
+
+    def __init__(self, in_chan, out_chan, act):
+        """
+        Initialize a LUConv layer.
+
+        Args:
+            in_chan (int): Number of input channels.
+            out_chan (int): Number of output channels.
+            act (str): Activation function. Options: 'relu', 'prelu', 'elu'.
+
+        Returns:
+            None
+
+        Raises:
+            TypeError: If the activation function is not one of the specified options.
+        """
+        super(LUConv, self).__init__()
+        self.conv1 = nn.Conv3d(in_chan, out_chan, kernel_size=3, padding=1)
+        self.bn1 = ContBatchNorm3d(out_chan)
+
+        if act == "relu":
+            self.activation = nn.ReLU(out_chan)
+        elif act == "prelu":
+            self.activation = nn.PReLU(out_chan)
+        elif act == "elu":
+            self.activation = nn.ELU(inplace=True)
+        else:
+            raise
+
+    def forward(self, x):
+        """
+        Apply forward pass through the neural network.
+
+        Args:
+            x (Tensor): Input tensor to the network.
+
+        Returns:
+            Tensor: Output tensor after passing through the network.
+        """
+        out = self.activation(self.bn1(self.conv1(x)))
+        return out
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x) ‑> Callable[..., Any] +
+
+

Apply forward pass through the neural network.

+

Args

+
+
x : Tensor
+
Input tensor to the network.
+
+

Returns

+
+
Tensor
+
Output tensor after passing through the network.
+
+
+ +Expand source code + +
def forward(self, x):
+    """
+    Apply forward pass through the neural network.
+
+    Args:
+        x (Tensor): Input tensor to the network.
+
+    Returns:
+        Tensor: Output tensor after passing through the network.
+    """
+    out = self.activation(self.bn1(self.conv1(x)))
+    return out
+
+
+
+
+
+class OutputTransition +(inChans, n_labels) +
+
+

A class representing the output transition in a neural network.

+

Attributes

+
+
inChans : int
+
The number of input channels.
+
n_labels : int
+
The number of output labels.
+
+

Initialize the OutputTransition class.

+

Args

+
+
inChans : int
+
Number of input channels.
+
n_labels : int
+
Number of output labels.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
class OutputTransition(nn.Module):
+    """
+    A class representing the output transition in a neural network.
+
+    Attributes:
+        inChans (int): The number of input channels.
+        n_labels (int): The number of output labels.
+    """
+
+    def __init__(self, inChans, n_labels):
+        """
+        Initialize the OutputTransition class.
+
+        Args:
+            inChans (int): Number of input channels.
+            n_labels (int): Number of output labels.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super(OutputTransition, self).__init__()
+        self.final_conv = nn.Conv3d(inChans, n_labels, kernel_size=1)
+        self.sigmoid = nn.Sigmoid()
+
+    def forward(self, x):
+        """
+        Forward pass through a neural network model.
+
+        Args:
+            x (Tensor): The input tensor.
+
+        Returns:
+            Tensor: The output tensor after passing through the model.
+        """
+        out = self.sigmoid(self.final_conv(x))
+        return out
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x) ‑> Callable[..., Any] +
+
+

Forward pass through a neural network model.

+

Args

+
+
x : Tensor
+
The input tensor.
+
+

Returns

+
+
Tensor
+
The output tensor after passing through the model.
+
+
+ +Expand source code + +
def forward(self, x):
+    """
+    Forward pass through a neural network model.
+
+    Args:
+        x (Tensor): The input tensor.
+
+    Returns:
+        Tensor: The output tensor after passing through the model.
+    """
+    out = self.sigmoid(self.final_conv(x))
+    return out
+
+
+
+
+
+class UNet3D +(n_class=1, act='relu', decoder=True) +
+
+

A class representing a 3D UNet model for segmentation.

+

Attributes

+
+
n_class : int
+
The number of classes for segmentation.
+
act : str
+
The activation function type used in the model.
+
decoder : bool
+
Whether to include the decoder part in the model.
+
+

Methods

+

forward(x): Forward pass of the model.

+

Initialize a 3D UNet neural network model.

+

Args

+
+
n_class : int
+
The number of output classes. Defaults to 1.
+
act : str
+
The activation function to use. Defaults to 'relu'.
+
decoder : bool
+
Whether to include the decoder layers. Defaults to True.
+
+

Attributes

+
+
decoder : bool
+
Whether the model includes decoder layers.
+
down_tr64 : DownTransition
+
The first down transition layer.
+
down_tr128 : DownTransition
+
The second down transition layer.
+
down_tr256 : DownTransition
+
The third down transition layer.
+
down_tr512 : DownTransition
+
The fourth down transition layer.
+
up_tr256 : UpTransition
+
The first up transition layer. (Only exists if decoder is True)
+
up_tr128 : UpTransition
+
The second up transition layer. (Only exists if decoder is True)
+
up_tr64 : UpTransition
+
The third up transition layer. (Only exists if decoder is True)
+
out_tr : OutputTransition
+
The output transition layer. (Only exists if decoder is True)
+
avg_pool : nn.AvgPool3d
+
The average pooling layer. (Only exists if decoder is False)
+
flatten : nn.Flatten
+
The flattening layer. (Only exists if decoder is False)
+
+
+ +Expand source code + +
class UNet3D(nn.Module):
+    # the number of convolutions in each layer corresponds
+    # to what is in the actual prototxt, not the intent
+    """
+    A class representing a 3D UNet model for segmentation.
+
+    Attributes:
+        n_class (int): The number of classes for segmentation.
+        act (str): The activation function type used in the model.
+        decoder (bool): Whether to include the decoder part in the model.
+
+    Methods:
+        forward(x): Forward pass of the model.
+    """
+
+    def __init__(self, n_class=1, act="relu", decoder=True):
+        """
+        Initialize a 3D UNet neural network model.
+
+        Args:
+            n_class (int): The number of output classes. Defaults to 1.
+            act (str): The activation function to use. Defaults to 'relu'.
+            decoder (bool): Whether to include the decoder layers. Defaults to True.
+
+        Attributes:
+            decoder (bool): Whether the model includes decoder layers.
+            down_tr64 (DownTransition): The first down transition layer.
+            down_tr128 (DownTransition): The second down transition layer.
+            down_tr256 (DownTransition): The third down transition layer.
+            down_tr512 (DownTransition): The fourth down transition layer.
+            up_tr256 (UpTransition): The first up transition layer. (Only exists if `decoder` is True)
+            up_tr128 (UpTransition): The second up transition layer. (Only exists if `decoder` is True)
+            up_tr64 (UpTransition): The third up transition layer. (Only exists if `decoder` is True)
+            out_tr (OutputTransition): The output transition layer. (Only exists if `decoder` is True)
+            avg_pool (nn.AvgPool3d): The average pooling layer. (Only exists if `decoder` is False)
+            flatten (nn.Flatten): The flattening layer. (Only exists if `decoder` is False)
+        """
+        super(UNet3D, self).__init__()
+
+        self.decoder = decoder
+
+        self.down_tr64 = DownTransition(1, 0, act)
+        self.down_tr128 = DownTransition(64, 1, act)
+        self.down_tr256 = DownTransition(128, 2, act)
+        self.down_tr512 = DownTransition(256, 3, act)
+
+        if self.decoder:
+            self.up_tr256 = UpTransition(512, 512, 2, act)
+            self.up_tr128 = UpTransition(256, 256, 1, act)
+            self.up_tr64 = UpTransition(128, 128, 0, act)
+            self.out_tr = OutputTransition(64, n_class)
+        else:
+            self.avg_pool = nn.AvgPool3d(3, stride=2)
+            self.flatten = nn.Flatten()
+
+    def forward(self, x):
+        """
+        Perform forward pass through the neural network.
+
+        Args:
+            x (Tensor): Input tensor to the network.
+
+        Returns:
+            Tensor: Output tensor from the network.
+
+        Note: This function performs a series of operations to downsample the input tensor, followed by upsampling if the 'decoder' flag is set. If the 'decoder' flag is not set, the output tensor goes through average pooling and flattening.
+
+        Raises:
+            None.
+        """
+        self.out64, self.skip_out64 = self.down_tr64(x)
+        self.out128, self.skip_out128 = self.down_tr128(self.out64)
+        self.out256, self.skip_out256 = self.down_tr256(self.out128)
+        self.out512, self.skip_out512 = self.down_tr512(self.out256)
+
+        if self.decoder:
+            self.out_up_256 = self.up_tr256(self.out512, self.skip_out256)
+            self.out_up_128 = self.up_tr128(self.out_up_256, self.skip_out128)
+            self.out_up_64 = self.up_tr64(self.out_up_128, self.skip_out64)
+            self.out = self.out_tr(self.out_up_64)
+        else:
+            self.out = self.avg_pool(self.out512)
+            self.out = self.flatten(self.out)
+
+        return self.out
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x) ‑> Callable[..., Any] +
+
+

Perform forward pass through the neural network.

+

Args

+
+
x : Tensor
+
Input tensor to the network.
+
+

Returns

+
+
Tensor
+
Output tensor from the network.
+
+

Note: This function performs a series of operations to downsample the input tensor, followed by upsampling if the 'decoder' flag is set. If the 'decoder' flag is not set, the output tensor goes through average pooling and flattening.

+

Raises

+

None.

+
+ +Expand source code + +
def forward(self, x):
+    """
+    Perform forward pass through the neural network.
+
+    Args:
+        x (Tensor): Input tensor to the network.
+
+    Returns:
+        Tensor: Output tensor from the network.
+
+    Note: This function performs a series of operations to downsample the input tensor, followed by upsampling if the 'decoder' flag is set. If the 'decoder' flag is not set, the output tensor goes through average pooling and flattening.
+
+    Raises:
+        None.
+    """
+    self.out64, self.skip_out64 = self.down_tr64(x)
+    self.out128, self.skip_out128 = self.down_tr128(self.out64)
+    self.out256, self.skip_out256 = self.down_tr256(self.out128)
+    self.out512, self.skip_out512 = self.down_tr512(self.out256)
+
+    if self.decoder:
+        self.out_up_256 = self.up_tr256(self.out512, self.skip_out256)
+        self.out_up_128 = self.up_tr128(self.out_up_256, self.skip_out128)
+        self.out_up_64 = self.up_tr64(self.out_up_128, self.skip_out64)
+        self.out = self.out_tr(self.out_up_64)
+    else:
+        self.out = self.avg_pool(self.out512)
+        self.out = self.flatten(self.out)
+
+    return self.out
+
+
+
+
+
+class UpTransition +(inChans, outChans, depth, act) +
+
+

A class representing an up transition layer in a neural network.

+

Attributes

+
+
inChans : int
+
The number of input channels.
+
outChans : int
+
The number of output channels.
+
depth : int
+
The depth of the layer.
+
act : str
+
The activation function to be applied.
+
+

Initialize the UpTransition module.

+

Args

+
+
inChans : int
+
The number of input channels.
+
outChans : int
+
The number of output channels.
+
depth : int
+
The depth of the module.
+
act : nn.Module
+
The activation function to be used.
+
+

Returns

+

None.

+

Raises

+

None.

+
+ +Expand source code + +
class UpTransition(nn.Module):
+    """
+    A class representing an up transition layer in a neural network.
+
+    Attributes:
+        inChans (int): The number of input channels.
+        outChans (int): The number of output channels.
+        depth (int): The depth of the layer.
+        act (str): The activation function to be applied.
+    """
+
+    def __init__(self, inChans, outChans, depth, act):
+        """
+        Initialize the UpTransition module.
+
+        Args:
+            inChans (int): The number of input channels.
+            outChans (int): The number of output channels.
+            depth (int): The depth of the module.
+            act (nn.Module): The activation function to be used.
+
+        Returns:
+            None.
+
+        Raises:
+            None.
+        """
+        super(UpTransition, self).__init__()
+        self.depth = depth
+        self.up_conv = nn.ConvTranspose3d(inChans, outChans, kernel_size=2, stride=2)
+        self.ops = _make_nConv(inChans + outChans // 2, depth, act, double_chnnel=True)
+
+    def forward(self, x, skip_x):
+        """
+        Forward pass of the neural network.
+
+        Args:
+            x (torch.Tensor): Input tensor.
+            skip_x (torch.Tensor): Tensor to be concatenated with the upsampled convolution output.
+
+        Returns:
+            torch.Tensor: The output tensor after passing through the network.
+        """
+        out_up_conv = self.up_conv(x)
+        concat = torch.cat((out_up_conv, skip_x), 1)
+        out = self.ops(concat)
+        return out
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x, skip_x) ‑> Callable[..., Any] +
+
+

Forward pass of the neural network.

+

Args

+
+
x : torch.Tensor
+
Input tensor.
+
skip_x : torch.Tensor
+
Tensor to be concatenated with the upsampled convolution output.
+
+

Returns

+
+
torch.Tensor
+
The output tensor after passing through the network.
+
+
+ +Expand source code + +
def forward(self, x, skip_x):
+    """
+    Forward pass of the neural network.
+
+    Args:
+        x (torch.Tensor): Input tensor.
+        skip_x (torch.Tensor): Tensor to be concatenated with the upsampled convolution output.
+
+    Returns:
+        torch.Tensor: The output tensor after passing through the network.
+    """
+    out_up_conv = self.up_conv(x)
+    concat = torch.cat((out_up_conv, skip_x), 1)
+    out = self.ops(concat)
+    return out
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/models/resnet50.html b/api_docs/fmcib/models/resnet50.html new file mode 100644 index 0000000..36fe011 --- /dev/null +++ b/api_docs/fmcib/models/resnet50.html @@ -0,0 +1,185 @@ + + + + + + +fmcib.models.resnet50 API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.models.resnet50

+
+
+
+ +Expand source code + +
import os
+from pathlib import Path
+
+import torch
+import tqdm
+import wget
+from loguru import logger
+from monai.networks.nets import resnet50 as resnet50_monai
+
+from fmcib.utils.download_utils import bar_progress
+
+
+def resnet50(
+    pretrained=True,
+    device="cuda",
+    weights_path=None,
+    download_url="https://www.dropbox.com/s/bd7azdsvx1jhalp/fmcib.torch?dl=1",
+):
+    """
+    Constructs a ResNet-50 model for image classification.
+
+    Args:
+        pretrained (bool, optional): If True, loads the pretrained weights. Default is True.
+        device (str, optional): The device to load the model on. Default is "cuda".
+        weights_path (str or Path, optional): The path to the pretrained weights file. If None, the weights will be downloaded. Default is None.
+        download_url (str, optional): The URL to download the pretrained weights. Default is "https://www.dropbox.com/s/bd7azdsvx1jhalp/fmcib.torch?dl=1".
+
+    Returns:
+        torch.nn.Module: The ResNet-50 model.
+    """
+    logger.info(f"Loading pretrained foundation model (Resnet50) on {device}...")
+
+    model = resnet50_monai(pretrained=False, n_input_channels=1, widen_factor=2, conv1_t_stride=2, feed_forward=False)
+    model = model.to(device)
+    if pretrained:
+        if weights_path is None:
+            current_path = Path(os.getcwd())
+            if not (current_path / "fmcib.torch").exists():
+                wget.download(download_url, bar=bar_progress)
+            weights_path = current_path / "fmcib.torch"
+
+        checkpoint = torch.load(weights_path, map_location=device)
+
+        if "trunk_state_dict" in checkpoint:
+            model_state_dict = checkpoint["trunk_state_dict"]
+        elif "state_dict" in checkpoint:
+            model_state_dict = checkpoint["state_dict"]
+            model_state_dict = {key.replace("model.backbone.", ""): value for key, value in model_state_dict.items()}
+
+        model.load_state_dict(model_state_dict, strict=False)
+
+    return model
+
+
+
+
+
+
+
+

Functions

+
+
+def resnet50(pretrained=True, device='cuda', weights_path=None, download_url='https://www.dropbox.com/s/bd7azdsvx1jhalp/fmcib.torch?dl=1') +
+
+

Constructs a ResNet-50 model for image classification.

+

Args

+
+
pretrained : bool, optional
+
If True, loads the pretrained weights. Default is True.
+
device : str, optional
+
The device to load the model on. Default is "cuda".
+
weights_path : str or Path, optional
+
The path to the pretrained weights file. If None, the weights will be downloaded. Default is None.
+
download_url : str, optional
+
The URL to download the pretrained weights. Default is "https://www.dropbox.com/s/bd7azdsvx1jhalp/fmcib.torch?dl=1".
+
+

Returns

+
+
torch.nn.Module
+
The ResNet-50 model.
+
+
+ +Expand source code + +
def resnet50(
+    pretrained=True,
+    device="cuda",
+    weights_path=None,
+    download_url="https://www.dropbox.com/s/bd7azdsvx1jhalp/fmcib.torch?dl=1",
+):
+    """
+    Constructs a ResNet-50 model for image classification.
+
+    Args:
+        pretrained (bool, optional): If True, loads the pretrained weights. Default is True.
+        device (str, optional): The device to load the model on. Default is "cuda".
+        weights_path (str or Path, optional): The path to the pretrained weights file. If None, the weights will be downloaded. Default is None.
+        download_url (str, optional): The URL to download the pretrained weights. Default is "https://www.dropbox.com/s/bd7azdsvx1jhalp/fmcib.torch?dl=1".
+
+    Returns:
+        torch.nn.Module: The ResNet-50 model.
+    """
+    logger.info(f"Loading pretrained foundation model (Resnet50) on {device}...")
+
+    model = resnet50_monai(pretrained=False, n_input_channels=1, widen_factor=2, conv1_t_stride=2, feed_forward=False)
+    model = model.to(device)
+    if pretrained:
+        if weights_path is None:
+            current_path = Path(os.getcwd())
+            if not (current_path / "fmcib.torch").exists():
+                wget.download(download_url, bar=bar_progress)
+            weights_path = current_path / "fmcib.torch"
+
+        checkpoint = torch.load(weights_path, map_location=device)
+
+        if "trunk_state_dict" in checkpoint:
+            model_state_dict = checkpoint["trunk_state_dict"]
+        elif "state_dict" in checkpoint:
+            model_state_dict = checkpoint["state_dict"]
+            model_state_dict = {key.replace("model.backbone.", ""): value for key, value in model_state_dict.items()}
+
+        model.load_state_dict(model_state_dict, strict=False)
+
+    return model
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/optimizers/index.html b/api_docs/fmcib/optimizers/index.html new file mode 100644 index 0000000..4bd4a99 --- /dev/null +++ b/api_docs/fmcib/optimizers/index.html @@ -0,0 +1,75 @@ + + + + + + +fmcib.optimizers API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.optimizers

+
+
+
+ +Expand source code + +
from .lars import LARS
+
+
+
+

Sub-modules

+
+
fmcib.optimizers.lars
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/optimizers/lars.html b/api_docs/fmcib/optimizers/lars.html new file mode 100644 index 0000000..755a5b4 --- /dev/null +++ b/api_docs/fmcib/optimizers/lars.html @@ -0,0 +1,607 @@ + + + + + + +fmcib.optimizers.lars API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.optimizers.lars

+
+
+

References

+ +
+ +Expand source code + +
"""
+References:
+    - https://arxiv.org/pdf/1708.03888.pdf
+    - https://github.com/pytorch/pytorch/blob/1.6/torch/optim/sgd.py
+"""
+import torch
+from torch.optim.optimizer import Optimizer, required
+
+
+class LARS(Optimizer):
+    """Extends SGD in PyTorch with LARS scaling from the paper
+    `Large batch training of Convolutional Networks <https://arxiv.org/pdf/1708.03888.pdf>`_.
+    Args:
+        params (iterable): iterable of parameters to optimize or dicts defining
+            parameter groups
+        lr (float): learning rate
+        momentum (float, optional): momentum factor (default: 0)
+        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
+        dampening (float, optional): dampening for momentum (default: 0)
+        nesterov (bool, optional): enables Nesterov momentum (default: False)
+        trust_coefficient (float, optional): trust coefficient for computing LR (default: 0.001)
+        eps (float, optional): eps for division denominator (default: 1e-8)
+
+    Example:
+        >>> model = torch.nn.Linear(10, 1)
+        >>> input = torch.Tensor(10)
+        >>> target = torch.Tensor([1.])
+        >>> loss_fn = lambda input, target: (input - target) ** 2
+        >>> #
+        >>> optimizer = LARS(model.parameters(), lr=0.1, momentum=0.9)
+        >>> optimizer.zero_grad()
+        >>> loss_fn(model(input), target).backward()
+        >>> optimizer.step()
+
+    .. note::
+        The application of momentum in the SGD part is modified according to
+        the PyTorch standards. LARS scaling fits into the equation in the
+        following fashion.
+
+        .. math::
+            \begin{aligned}
+                g_{t+1} & = \text{lars_lr} * (\beta * p_{t} + g_{t+1}), \\
+                v_{t+1} & = \\mu * v_{t} + g_{t+1}, \\
+                p_{t+1} & = p_{t} - \text{lr} * v_{t+1},
+            \\end{aligned}
+
+        where :math:`p`, :math:`g`, :math:`v`, :math:`\\mu` and :math:`\beta` denote the
+        parameters, gradient, velocity, momentum, and weight decay respectively.
+        The :math:`lars_lr` is defined by Eq. 6 in the paper.
+        The Nesterov version is analogously modified.
+
+    .. warning::
+        Parameters with weight decay set to 0 will automatically be excluded from
+        layer-wise LR scaling. This is to ensure consistency with papers like SimCLR
+        and BYOL.
+    """
+
+    def __init__(
+        self,
+        params,
+        lr=required,
+        momentum=0,
+        dampening=0,
+        weight_decay=0,
+        nesterov=False,
+        trust_coefficient=0.001,
+        eps=1e-8,
+    ):
+        """
+        Initialize an optimizer with the given parameters.
+
+        Args:
+            params (iterable): Iterable of parameters to optimize.
+            lr (float, optional): Learning rate. Default is required.
+            momentum (float, optional): Momentum factor. Default is 0.
+            dampening (float, optional): Dampening for momentum. Default is 0.
+            weight_decay (float, optional): Weight decay factor. Default is 0.
+            nesterov (bool, optional): Use Nesterov momentum. Default is False.
+            trust_coefficient (float, optional): Trust coefficient. Default is 0.001.
+            eps (float, optional): Small value for numerical stability. Default is 1e-08.
+
+        Raises:
+            ValueError: If an invalid value is provided for lr, momentum, or weight_decay.
+            ValueError: If nesterov momentum is enabled without providing a momentum and zero dampening.
+        """
+        if lr is not required and lr < 0.0:
+            raise ValueError(f"Invalid learning rate: {lr}")
+        if momentum < 0.0:
+            raise ValueError(f"Invalid momentum value: {momentum}")
+        if weight_decay < 0.0:
+            raise ValueError(f"Invalid weight_decay value: {weight_decay}")
+
+        defaults = dict(
+            lr=lr,
+            momentum=momentum,
+            dampening=dampening,
+            weight_decay=weight_decay,
+            nesterov=nesterov,
+            trust_coefficient=trust_coefficient,
+            eps=eps,
+        )
+        if nesterov and (momentum <= 0 or dampening != 0):
+            raise ValueError("Nesterov momentum requires a momentum and zero dampening")
+
+        super().__init__(params, defaults)
+
+    def __setstate__(self, state):
+        """
+        Set the state of the optimizer.
+
+        Args:
+            state (dict): A dictionary containing the state of the optimizer.
+
+        Returns:
+            None
+
+        Note:
+            This method is an override of the `__setstate__` method of the superclass. It sets the state of the optimizer using the provided dictionary. Additionally, it sets the `nesterov` parameter in each group of the optimizer to `False` if it is not already present.
+        """
+        super().__setstate__(state)
+
+        for group in self.param_groups:
+            group.setdefault("nesterov", False)
+
+    @torch.no_grad()
+    def step(self, closure=None):
+        """
+        Performs a single optimization step.
+
+        Parameters:
+            closure (callable, optional): A closure that reevaluates the model
+                and returns the loss.
+        """
+        loss = None
+        if closure is not None:
+            with torch.enable_grad():
+                loss = closure()
+
+        # exclude scaling for params with 0 weight decay
+        for group in self.param_groups:
+            weight_decay = group["weight_decay"]
+            momentum = group["momentum"]
+            dampening = group["dampening"]
+            nesterov = group["nesterov"]
+
+            for p in group["params"]:
+                if p.grad is None:
+                    continue
+
+                d_p = p.grad
+                p_norm = torch.norm(p.data)
+                g_norm = torch.norm(p.grad.data)
+
+                # lars scaling + weight decay part
+                if weight_decay != 0:
+                    if p_norm != 0 and g_norm != 0:
+                        lars_lr = p_norm / (g_norm + p_norm * weight_decay + group["eps"])
+                        lars_lr *= group["trust_coefficient"]
+
+                        d_p = d_p.add(p, alpha=weight_decay)
+                        d_p *= lars_lr
+
+                # sgd part
+                if momentum != 0:
+                    param_state = self.state[p]
+                    if "momentum_buffer" not in param_state:
+                        buf = param_state["momentum_buffer"] = torch.clone(d_p).detach()
+                    else:
+                        buf = param_state["momentum_buffer"]
+                        buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
+                    if nesterov:
+                        d_p = d_p.add(buf, alpha=momentum)
+                    else:
+                        d_p = buf
+
+                p.add_(d_p, alpha=-group["lr"])
+
+        return loss
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class LARS +(params, lr=<required parameter>, momentum=0, dampening=0, weight_decay=0, nesterov=False, trust_coefficient=0.001, eps=1e-08) +
+
+

Extends SGD in PyTorch with LARS scaling from the paper +Large batch training of Convolutional Networks <https://arxiv.org/pdf/1708.03888.pdf>_.

+

Args

+
+
params : iterable
+
iterable of parameters to optimize or dicts defining +parameter groups
+
lr : float
+
learning rate
+
momentum : float, optional
+
momentum factor (default: 0)
+
weight_decay : float, optional
+
weight decay (L2 penalty) (default: 0)
+
dampening : float, optional
+
dampening for momentum (default: 0)
+
nesterov : bool, optional
+
enables Nesterov momentum (default: False)
+
trust_coefficient : float, optional
+
trust coefficient for computing LR (default: 0.001)
+
eps : float, optional
+
eps for division denominator (default: 1e-8)
+
+

Example

+
>>> model = torch.nn.Linear(10, 1)
+>>> input = torch.Tensor(10)
+>>> target = torch.Tensor([1.])
+>>> loss_fn = lambda input, target: (input - target) ** 2
+>>> #
+>>> optimizer = LARS(model.parameters(), lr=0.1, momentum=0.9)
+>>> optimizer.zero_grad()
+>>> loss_fn(model(input), target).backward()
+>>> optimizer.step()
+
+
+

Note

+

The application of momentum in the SGD part is modified according to +the PyTorch standards. LARS scaling fits into the equation in the +following fashion.

+

[ egin{aligned} +g_{t+1} & = +ext{lars_lr} * (eta * p_{t} + g_{t+1}), \ +v_{t+1} & = \mu * v_{t} + g_{t+1}, \ +p_{t+1} & = p_{t} - +ext{lr} * v_{t+1}, +\end{aligned} ] +where :math:p, :math:g, :math:v, :math:\mu and :math:eta denote the +parameters, gradient, velocity, momentum, and weight decay respectively. +The :math:lars_lr is defined by Eq. 6 in the paper. +The Nesterov version is analogously modified.

+
+
+

Warning

+

Parameters with weight decay set to 0 will automatically be excluded from +layer-wise LR scaling. This is to ensure consistency with papers like SimCLR +and BYOL.

+
+

Initialize an optimizer with the given parameters.

+

Args

+
+
params : iterable
+
Iterable of parameters to optimize.
+
lr : float, optional
+
Learning rate. Default is required.
+
momentum : float, optional
+
Momentum factor. Default is 0.
+
dampening : float, optional
+
Dampening for momentum. Default is 0.
+
weight_decay : float, optional
+
Weight decay factor. Default is 0.
+
nesterov : bool, optional
+
Use Nesterov momentum. Default is False.
+
trust_coefficient : float, optional
+
Trust coefficient. Default is 0.001.
+
eps : float, optional
+
Small value for numerical stability. Default is 1e-08.
+
+

Raises

+
+
ValueError
+
If an invalid value is provided for lr, momentum, or weight_decay.
+
ValueError
+
If nesterov momentum is enabled without providing a momentum and zero dampening.
+
+
+ +Expand source code + +
class LARS(Optimizer):
+    """Extends SGD in PyTorch with LARS scaling from the paper
+    `Large batch training of Convolutional Networks <https://arxiv.org/pdf/1708.03888.pdf>`_.
+    Args:
+        params (iterable): iterable of parameters to optimize or dicts defining
+            parameter groups
+        lr (float): learning rate
+        momentum (float, optional): momentum factor (default: 0)
+        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
+        dampening (float, optional): dampening for momentum (default: 0)
+        nesterov (bool, optional): enables Nesterov momentum (default: False)
+        trust_coefficient (float, optional): trust coefficient for computing LR (default: 0.001)
+        eps (float, optional): eps for division denominator (default: 1e-8)
+
+    Example:
+        >>> model = torch.nn.Linear(10, 1)
+        >>> input = torch.Tensor(10)
+        >>> target = torch.Tensor([1.])
+        >>> loss_fn = lambda input, target: (input - target) ** 2
+        >>> #
+        >>> optimizer = LARS(model.parameters(), lr=0.1, momentum=0.9)
+        >>> optimizer.zero_grad()
+        >>> loss_fn(model(input), target).backward()
+        >>> optimizer.step()
+
+    .. note::
+        The application of momentum in the SGD part is modified according to
+        the PyTorch standards. LARS scaling fits into the equation in the
+        following fashion.
+
+        .. math::
+            \begin{aligned}
+                g_{t+1} & = \text{lars_lr} * (\beta * p_{t} + g_{t+1}), \\
+                v_{t+1} & = \\mu * v_{t} + g_{t+1}, \\
+                p_{t+1} & = p_{t} - \text{lr} * v_{t+1},
+            \\end{aligned}
+
+        where :math:`p`, :math:`g`, :math:`v`, :math:`\\mu` and :math:`\beta` denote the
+        parameters, gradient, velocity, momentum, and weight decay respectively.
+        The :math:`lars_lr` is defined by Eq. 6 in the paper.
+        The Nesterov version is analogously modified.
+
+    .. warning::
+        Parameters with weight decay set to 0 will automatically be excluded from
+        layer-wise LR scaling. This is to ensure consistency with papers like SimCLR
+        and BYOL.
+    """
+
+    def __init__(
+        self,
+        params,
+        lr=required,
+        momentum=0,
+        dampening=0,
+        weight_decay=0,
+        nesterov=False,
+        trust_coefficient=0.001,
+        eps=1e-8,
+    ):
+        """
+        Initialize an optimizer with the given parameters.
+
+        Args:
+            params (iterable): Iterable of parameters to optimize.
+            lr (float, optional): Learning rate. Default is required.
+            momentum (float, optional): Momentum factor. Default is 0.
+            dampening (float, optional): Dampening for momentum. Default is 0.
+            weight_decay (float, optional): Weight decay factor. Default is 0.
+            nesterov (bool, optional): Use Nesterov momentum. Default is False.
+            trust_coefficient (float, optional): Trust coefficient. Default is 0.001.
+            eps (float, optional): Small value for numerical stability. Default is 1e-08.
+
+        Raises:
+            ValueError: If an invalid value is provided for lr, momentum, or weight_decay.
+            ValueError: If nesterov momentum is enabled without providing a momentum and zero dampening.
+        """
+        if lr is not required and lr < 0.0:
+            raise ValueError(f"Invalid learning rate: {lr}")
+        if momentum < 0.0:
+            raise ValueError(f"Invalid momentum value: {momentum}")
+        if weight_decay < 0.0:
+            raise ValueError(f"Invalid weight_decay value: {weight_decay}")
+
+        defaults = dict(
+            lr=lr,
+            momentum=momentum,
+            dampening=dampening,
+            weight_decay=weight_decay,
+            nesterov=nesterov,
+            trust_coefficient=trust_coefficient,
+            eps=eps,
+        )
+        if nesterov and (momentum <= 0 or dampening != 0):
+            raise ValueError("Nesterov momentum requires a momentum and zero dampening")
+
+        super().__init__(params, defaults)
+
+    def __setstate__(self, state):
+        """
+        Set the state of the optimizer.
+
+        Args:
+            state (dict): A dictionary containing the state of the optimizer.
+
+        Returns:
+            None
+
+        Note:
+            This method is an override of the `__setstate__` method of the superclass. It sets the state of the optimizer using the provided dictionary. Additionally, it sets the `nesterov` parameter in each group of the optimizer to `False` if it is not already present.
+        """
+        super().__setstate__(state)
+
+        for group in self.param_groups:
+            group.setdefault("nesterov", False)
+
+    @torch.no_grad()
+    def step(self, closure=None):
+        """
+        Performs a single optimization step.
+
+        Parameters:
+            closure (callable, optional): A closure that reevaluates the model
+                and returns the loss.
+        """
+        loss = None
+        if closure is not None:
+            with torch.enable_grad():
+                loss = closure()
+
+        # exclude scaling for params with 0 weight decay
+        for group in self.param_groups:
+            weight_decay = group["weight_decay"]
+            momentum = group["momentum"]
+            dampening = group["dampening"]
+            nesterov = group["nesterov"]
+
+            for p in group["params"]:
+                if p.grad is None:
+                    continue
+
+                d_p = p.grad
+                p_norm = torch.norm(p.data)
+                g_norm = torch.norm(p.grad.data)
+
+                # lars scaling + weight decay part
+                if weight_decay != 0:
+                    if p_norm != 0 and g_norm != 0:
+                        lars_lr = p_norm / (g_norm + p_norm * weight_decay + group["eps"])
+                        lars_lr *= group["trust_coefficient"]
+
+                        d_p = d_p.add(p, alpha=weight_decay)
+                        d_p *= lars_lr
+
+                # sgd part
+                if momentum != 0:
+                    param_state = self.state[p]
+                    if "momentum_buffer" not in param_state:
+                        buf = param_state["momentum_buffer"] = torch.clone(d_p).detach()
+                    else:
+                        buf = param_state["momentum_buffer"]
+                        buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
+                    if nesterov:
+                        d_p = d_p.add(buf, alpha=momentum)
+                    else:
+                        d_p = buf
+
+                p.add_(d_p, alpha=-group["lr"])
+
+        return loss
+
+

Ancestors

+
    +
  • torch.optim.optimizer.Optimizer
  • +
+

Class variables

+
+
var OptimizerPostHook : typing_extensions.TypeAlias
+
+
+
+
var OptimizerPreHook : typing_extensions.TypeAlias
+
+
+
+
+

Methods

+
+
+def step(self, closure=None) +
+
+

Performs a single optimization step.

+

Parameters

+

closure (callable, optional): A closure that reevaluates the model +and returns the loss.

+
+ +Expand source code + +
@torch.no_grad()
+def step(self, closure=None):
+    """
+    Performs a single optimization step.
+
+    Parameters:
+        closure (callable, optional): A closure that reevaluates the model
+            and returns the loss.
+    """
+    loss = None
+    if closure is not None:
+        with torch.enable_grad():
+            loss = closure()
+
+    # exclude scaling for params with 0 weight decay
+    for group in self.param_groups:
+        weight_decay = group["weight_decay"]
+        momentum = group["momentum"]
+        dampening = group["dampening"]
+        nesterov = group["nesterov"]
+
+        for p in group["params"]:
+            if p.grad is None:
+                continue
+
+            d_p = p.grad
+            p_norm = torch.norm(p.data)
+            g_norm = torch.norm(p.grad.data)
+
+            # lars scaling + weight decay part
+            if weight_decay != 0:
+                if p_norm != 0 and g_norm != 0:
+                    lars_lr = p_norm / (g_norm + p_norm * weight_decay + group["eps"])
+                    lars_lr *= group["trust_coefficient"]
+
+                    d_p = d_p.add(p, alpha=weight_decay)
+                    d_p *= lars_lr
+
+            # sgd part
+            if momentum != 0:
+                param_state = self.state[p]
+                if "momentum_buffer" not in param_state:
+                    buf = param_state["momentum_buffer"] = torch.clone(d_p).detach()
+                else:
+                    buf = param_state["momentum_buffer"]
+                    buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
+                if nesterov:
+                    d_p = d_p.add(buf, alpha=momentum)
+                else:
+                    d_p = buf
+
+            p.add_(d_p, alpha=-group["lr"])
+
+    return loss
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/preprocessing/index.html b/api_docs/fmcib/preprocessing/index.html new file mode 100644 index 0000000..22b30f3 --- /dev/null +++ b/api_docs/fmcib/preprocessing/index.html @@ -0,0 +1,213 @@ + + + + + + +fmcib.preprocessing API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.preprocessing

+
+
+
+ +Expand source code + +
import monai
+import torchvision
+from loguru import logger
+from monai import transforms as monai_transforms
+
+from .seed_based_crop import SeedBasedPatchCropd
+
+
+def preprocess(image, spatial_size=(50, 50, 50)):
+    T = get_transforms(spatial_size=spatial_size)
+    return T(image)
+
+
+def get_transforms(spatial_size=(50, 50, 50), precropped=False):
+    if precropped:
+        return monai_transforms.Compose(
+            [
+                monai_transforms.LoadImaged(keys=["image_path"], image_only=True),
+                monai_transforms.EnsureChannelFirstd(keys=["image_path"]),
+                monai_transforms.ScaleIntensityRanged(
+                    keys=["image_path"], a_min=-1024, a_max=3072, b_min=0, b_max=1, clip=True
+                ),
+                monai_transforms.SelectItemsd(keys=["image_path"]),
+                monai_transforms.SpatialPadd(keys=["image_path"], spatial_size=spatial_size),
+                torchvision.transforms.Lambda(lambda x: x["image_path"].as_tensor()),
+            ]
+        )
+    else:
+        return monai_transforms.Compose(
+            [
+                monai_transforms.LoadImaged(keys=["image_path"], image_only=True, reader="ITKReader"),
+                monai_transforms.EnsureChannelFirstd(keys=["image_path"]),
+                monai_transforms.Spacingd(keys=["image_path"], pixdim=1, mode="bilinear", align_corners=True, diagonal=True),
+                monai_transforms.ScaleIntensityRanged(
+                    keys=["image_path"], a_min=-1024, a_max=3072, b_min=0, b_max=1, clip=True
+                ),
+                monai_transforms.Orientationd(keys=["image_path"], axcodes="LPS"),
+                SeedBasedPatchCropd(
+                    keys=["image_path"], roi_size=spatial_size[::-1], coord_orientation="LPS", global_coordinates=True
+                ),
+                monai_transforms.SelectItemsd(keys=["image_path"]),
+                monai_transforms.Transposed(keys=["image_path"], indices=(0, 3, 2, 1)),
+                monai_transforms.SpatialPadd(keys=["image_path"], spatial_size=spatial_size),
+                torchvision.transforms.Lambda(lambda x: x["image_path"].as_tensor()),
+            ]
+        )
+
+
+def get_dataloader(csv_path, batch_size=4, num_workers=4, spatial_size=(50, 50, 50), precropped=False):
+    logger.info("Building dataloader instance ...")
+    T = get_transforms(spatial_size=spatial_size, precropped=precropped)
+    dataset = monai.data.CSVDataset(csv_path, transform=T)
+    dataloader = monai.data.DataLoader(dataset, batch_size=batch_size, num_workers=num_workers, shuffle=False)
+    return dataloader
+
+
+
+

Sub-modules

+
+
fmcib.preprocessing.seed_based_crop
+
+

Author: Suraj Pai +Email: bspai@bwh.harvard.edu +This script contains two classes: +1. SeedBasedPatchCropd +2. SeedBasedPatchCrop

+
+
+
+
+
+
+

Functions

+
+
+def get_dataloader(csv_path, batch_size=4, num_workers=4, spatial_size=(50, 50, 50), precropped=False) +
+
+
+
+ +Expand source code + +
def get_dataloader(csv_path, batch_size=4, num_workers=4, spatial_size=(50, 50, 50), precropped=False):
+    logger.info("Building dataloader instance ...")
+    T = get_transforms(spatial_size=spatial_size, precropped=precropped)
+    dataset = monai.data.CSVDataset(csv_path, transform=T)
+    dataloader = monai.data.DataLoader(dataset, batch_size=batch_size, num_workers=num_workers, shuffle=False)
+    return dataloader
+
+
+
+def get_transforms(spatial_size=(50, 50, 50), precropped=False) +
+
+
+
+ +Expand source code + +
def get_transforms(spatial_size=(50, 50, 50), precropped=False):
+    if precropped:
+        return monai_transforms.Compose(
+            [
+                monai_transforms.LoadImaged(keys=["image_path"], image_only=True),
+                monai_transforms.EnsureChannelFirstd(keys=["image_path"]),
+                monai_transforms.ScaleIntensityRanged(
+                    keys=["image_path"], a_min=-1024, a_max=3072, b_min=0, b_max=1, clip=True
+                ),
+                monai_transforms.SelectItemsd(keys=["image_path"]),
+                monai_transforms.SpatialPadd(keys=["image_path"], spatial_size=spatial_size),
+                torchvision.transforms.Lambda(lambda x: x["image_path"].as_tensor()),
+            ]
+        )
+    else:
+        return monai_transforms.Compose(
+            [
+                monai_transforms.LoadImaged(keys=["image_path"], image_only=True, reader="ITKReader"),
+                monai_transforms.EnsureChannelFirstd(keys=["image_path"]),
+                monai_transforms.Spacingd(keys=["image_path"], pixdim=1, mode="bilinear", align_corners=True, diagonal=True),
+                monai_transforms.ScaleIntensityRanged(
+                    keys=["image_path"], a_min=-1024, a_max=3072, b_min=0, b_max=1, clip=True
+                ),
+                monai_transforms.Orientationd(keys=["image_path"], axcodes="LPS"),
+                SeedBasedPatchCropd(
+                    keys=["image_path"], roi_size=spatial_size[::-1], coord_orientation="LPS", global_coordinates=True
+                ),
+                monai_transforms.SelectItemsd(keys=["image_path"]),
+                monai_transforms.Transposed(keys=["image_path"], indices=(0, 3, 2, 1)),
+                monai_transforms.SpatialPadd(keys=["image_path"], spatial_size=spatial_size),
+                torchvision.transforms.Lambda(lambda x: x["image_path"].as_tensor()),
+            ]
+        )
+
+
+
+def preprocess(image, spatial_size=(50, 50, 50)) +
+
+
+
+ +Expand source code + +
def preprocess(image, spatial_size=(50, 50, 50)):
+    T = get_transforms(spatial_size=spatial_size)
+    return T(image)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/preprocessing/seed_based_crop.html b/api_docs/fmcib/preprocessing/seed_based_crop.html new file mode 100644 index 0000000..90effd2 --- /dev/null +++ b/api_docs/fmcib/preprocessing/seed_based_crop.html @@ -0,0 +1,452 @@ + + + + + + +fmcib.preprocessing.seed_based_crop API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.preprocessing.seed_based_crop

+
+
+

Author: Suraj Pai +Email: bspai@bwh.harvard.edu +This script contains two classes: +1. SeedBasedPatchCropd +2. SeedBasedPatchCrop

+
+ +Expand source code + +
"""
+Author: Suraj Pai
+Email: bspai@bwh.harvard.edu
+This script contains two classes:
+1. SeedBasedPatchCropd
+2. SeedBasedPatchCrop
+"""
+
+from typing import Any, Dict, Hashable, Mapping, Tuple
+
+import numpy as np
+from monai.config.type_definitions import NdarrayOrTensor
+from monai.transforms import MapTransform, Transform
+
+
+class SeedBasedPatchCropd(MapTransform):
+    """
+    A class representing a seed-based patch crop transformation.
+
+    Inherits from MapTransform.
+
+    Attributes:
+        keys (list): List of keys for images in the input data dictionary.
+        roi_size (tuple): Tuple indicating the size of the region of interest (ROI).
+        allow_missing_keys (bool): If True, do not raise an error if some keys in the input data dictionary are missing.
+        coord_orientation (str): Coordinate system (RAS or LPS) of input coordinates.
+        global_coordinates (bool): If True, coordinates are in global coordinates; otherwise, local coordinates.
+    """
+
+    def __init__(self, keys, roi_size, allow_missing_keys=False, coord_orientation="RAS", global_coordinates=True) -> None:
+        """
+        Initialize SeedBasedPatchCropd class.
+
+        Args:
+            keys (List): List of keys for images in the input data dictionary.
+            roi_size (Tuple): Tuple indicating the size of the region of interest (ROI).
+            allow_missing_keys (bool): If True, do not raise an error if some keys in the input data dictionary are missing.
+            coord_orientation (str): Coordinate system (RAS or LPS) of input coordinates.
+            global_coordinates (bool): If True, coordinates are in global coordinates; otherwise, local coordinates.
+        """
+        super().__init__(keys=keys, allow_missing_keys=allow_missing_keys)
+        self.coord_orientation = coord_orientation
+        self.global_coordinates = global_coordinates
+        self.cropper = SeedBasedPatchCrop(roi_size=roi_size)
+
+    def __call__(self, data: Mapping[Hashable, NdarrayOrTensor]) -> Dict[Hashable, NdarrayOrTensor]:
+        """
+        Apply transformation to given data.
+
+        Args:
+            data (dict): Dictionary with image keys and required center coordinates.
+
+        Returns:
+            dict: Dictionary with cropped patches for each key in the input data dictionary.
+        """
+        d = dict(data)
+
+        assert "coordX" in d.keys(), "coordX not found in data"
+        assert "coordY" in d.keys(), "coordY not found in data"
+        assert "coordZ" in d.keys(), "coordZ not found in data"
+
+        # Convert coordinates to RAS orientation to match image orientation
+        if self.coord_orientation == "RAS":
+            center = (d["coordX"], d["coordY"], d["coordZ"])
+        elif self.coord_orientation == "LPS":
+            center = (-d["coordX"], -d["coordY"], d["coordZ"])
+
+        for key in self.key_iterator(d):
+            d[key] = self.cropper(d[key], center=center, global_coordinates=self.global_coordinates)
+        return d
+
+
+class SeedBasedPatchCrop(Transform):
+    """
+    A class representing a seed-based patch crop transformation.
+
+    Attributes:
+        roi_size: Tuple indicating the size of the region of interest (ROI).
+
+    Methods:
+        __call__: Crop a patch from the input image centered around the seed coordinate.
+
+    Args:
+        roi_size: Tuple indicating the size of the region of interest (ROI).
+
+    Returns:
+        NdarrayOrTensor: Cropped patch of shape (C, Ph, Pw, Pd), where (Ph, Pw, Pd) is the patch size.
+
+    Raises:
+        AssertionError: If the input image has dimensions other than (C, H, W, D)
+        AssertionError: If the coordinates are invalid (e.g., min_h >= max_h)
+    """
+
+    def __init__(self, roi_size) -> None:
+        """
+        Initialize SeedBasedPatchCrop class.
+
+        Args:
+            roi_size (tuple): Tuple indicating the size of the region of interest (ROI).
+        """
+        super().__init__()
+        self.roi_size = roi_size
+
+    def __call__(self, img: NdarrayOrTensor, center: tuple, global_coordinates=False) -> NdarrayOrTensor:
+        """
+        Crop a patch from the input image centered around the seed coordinate.
+
+        Args:
+            img (NdarrayOrTensor): Image to crop, with dimensions (C, H, W, D). C is the number of channels.
+            center (tuple): Seed coordinate around which to crop the patch (X, Y, Z).
+            global_coordinates (bool): If True, seed coordinate is in global space; otherwise, local space.
+
+        Returns:
+            NdarrayOrTensor: Cropped patch of shape (C, Ph, Pw, Pd), where (Ph, Pw, Pd) is the patch size.
+        """
+        assert len(img.shape) == 4, "Input image must have dimensions: (C, H, W, D)"
+        C, H, W, D = img.shape
+        Ph, Pw, Pd = self.roi_size
+
+        # If global coordinates, convert to local coordinates
+        if global_coordinates:
+            center = np.linalg.inv(np.array(img.affine)) @ np.array(center + (1,))
+            center = [int(x) for x in center[:3]]
+
+        # Calculate and clamp the ranges for cropping
+        min_h, max_h = max(center[0] - Ph // 2, 0), min(center[0] + Ph // 2, H)
+        min_w, max_w = max(center[1] - Pw // 2, 0), min(center[1] + Pw // 2, W)
+        min_d, max_d = max(center[2] - Pd // 2, 0), min(center[2] + Pd // 2, D)
+
+        # Check if coordinates are valid
+        assert min_h < max_h, "Invalid coordinates: min_h >= max_h"
+        assert min_w < max_w, "Invalid coordinates: min_w >= max_w"
+        assert min_d < max_d, "Invalid coordinates: min_d >= max_d"
+
+        # Crop the patch from the image
+        patch = img[:, min_h:max_h, min_w:max_w, min_d:max_d]
+
+        return patch
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class SeedBasedPatchCrop +(roi_size) +
+
+

A class representing a seed-based patch crop transformation.

+

Attributes

+
+
roi_size
+
Tuple indicating the size of the region of interest (ROI).
+
+

Methods

+

call: Crop a patch from the input image centered around the seed coordinate.

+

Args

+
+
roi_size
+
Tuple indicating the size of the region of interest (ROI).
+
+

Returns

+
+
NdarrayOrTensor
+
Cropped patch of shape (C, Ph, Pw, Pd), where (Ph, Pw, Pd) is the patch size.
+
+

Raises

+
+
AssertionError
+
If the input image has dimensions other than (C, H, W, D)
+
AssertionError
+
If the coordinates are invalid (e.g., min_h >= max_h)
+
+

Initialize SeedBasedPatchCrop class.

+

Args

+
+
roi_size : tuple
+
Tuple indicating the size of the region of interest (ROI).
+
+
+ +Expand source code + +
class SeedBasedPatchCrop(Transform):
+    """
+    A class representing a seed-based patch crop transformation.
+
+    Attributes:
+        roi_size: Tuple indicating the size of the region of interest (ROI).
+
+    Methods:
+        __call__: Crop a patch from the input image centered around the seed coordinate.
+
+    Args:
+        roi_size: Tuple indicating the size of the region of interest (ROI).
+
+    Returns:
+        NdarrayOrTensor: Cropped patch of shape (C, Ph, Pw, Pd), where (Ph, Pw, Pd) is the patch size.
+
+    Raises:
+        AssertionError: If the input image has dimensions other than (C, H, W, D)
+        AssertionError: If the coordinates are invalid (e.g., min_h >= max_h)
+    """
+
+    def __init__(self, roi_size) -> None:
+        """
+        Initialize SeedBasedPatchCrop class.
+
+        Args:
+            roi_size (tuple): Tuple indicating the size of the region of interest (ROI).
+        """
+        super().__init__()
+        self.roi_size = roi_size
+
+    def __call__(self, img: NdarrayOrTensor, center: tuple, global_coordinates=False) -> NdarrayOrTensor:
+        """
+        Crop a patch from the input image centered around the seed coordinate.
+
+        Args:
+            img (NdarrayOrTensor): Image to crop, with dimensions (C, H, W, D). C is the number of channels.
+            center (tuple): Seed coordinate around which to crop the patch (X, Y, Z).
+            global_coordinates (bool): If True, seed coordinate is in global space; otherwise, local space.
+
+        Returns:
+            NdarrayOrTensor: Cropped patch of shape (C, Ph, Pw, Pd), where (Ph, Pw, Pd) is the patch size.
+        """
+        assert len(img.shape) == 4, "Input image must have dimensions: (C, H, W, D)"
+        C, H, W, D = img.shape
+        Ph, Pw, Pd = self.roi_size
+
+        # If global coordinates, convert to local coordinates
+        if global_coordinates:
+            center = np.linalg.inv(np.array(img.affine)) @ np.array(center + (1,))
+            center = [int(x) for x in center[:3]]
+
+        # Calculate and clamp the ranges for cropping
+        min_h, max_h = max(center[0] - Ph // 2, 0), min(center[0] + Ph // 2, H)
+        min_w, max_w = max(center[1] - Pw // 2, 0), min(center[1] + Pw // 2, W)
+        min_d, max_d = max(center[2] - Pd // 2, 0), min(center[2] + Pd // 2, D)
+
+        # Check if coordinates are valid
+        assert min_h < max_h, "Invalid coordinates: min_h >= max_h"
+        assert min_w < max_w, "Invalid coordinates: min_w >= max_w"
+        assert min_d < max_d, "Invalid coordinates: min_d >= max_d"
+
+        # Crop the patch from the image
+        patch = img[:, min_h:max_h, min_w:max_w, min_d:max_d]
+
+        return patch
+
+

Ancestors

+
    +
  • monai.transforms.transform.Transform
  • +
  • abc.ABC
  • +
+

Class variables

+
+
var backend : list[TransformBackends]
+
+
+
+
+
+
+class SeedBasedPatchCropd +(keys, roi_size, allow_missing_keys=False, coord_orientation='RAS', global_coordinates=True) +
+
+

A class representing a seed-based patch crop transformation.

+

Inherits from MapTransform.

+

Attributes

+
+
keys : list
+
List of keys for images in the input data dictionary.
+
roi_size : tuple
+
Tuple indicating the size of the region of interest (ROI).
+
allow_missing_keys : bool
+
If True, do not raise an error if some keys in the input data dictionary are missing.
+
coord_orientation : str
+
Coordinate system (RAS or LPS) of input coordinates.
+
global_coordinates : bool
+
If True, coordinates are in global coordinates; otherwise, local coordinates.
+
+

Initialize SeedBasedPatchCropd class.

+

Args

+
+
keys : List
+
List of keys for images in the input data dictionary.
+
roi_size : Tuple
+
Tuple indicating the size of the region of interest (ROI).
+
allow_missing_keys : bool
+
If True, do not raise an error if some keys in the input data dictionary are missing.
+
coord_orientation : str
+
Coordinate system (RAS or LPS) of input coordinates.
+
global_coordinates : bool
+
If True, coordinates are in global coordinates; otherwise, local coordinates.
+
+
+ +Expand source code + +
class SeedBasedPatchCropd(MapTransform):
+    """
+    A class representing a seed-based patch crop transformation.
+
+    Inherits from MapTransform.
+
+    Attributes:
+        keys (list): List of keys for images in the input data dictionary.
+        roi_size (tuple): Tuple indicating the size of the region of interest (ROI).
+        allow_missing_keys (bool): If True, do not raise an error if some keys in the input data dictionary are missing.
+        coord_orientation (str): Coordinate system (RAS or LPS) of input coordinates.
+        global_coordinates (bool): If True, coordinates are in global coordinates; otherwise, local coordinates.
+    """
+
+    def __init__(self, keys, roi_size, allow_missing_keys=False, coord_orientation="RAS", global_coordinates=True) -> None:
+        """
+        Initialize SeedBasedPatchCropd class.
+
+        Args:
+            keys (List): List of keys for images in the input data dictionary.
+            roi_size (Tuple): Tuple indicating the size of the region of interest (ROI).
+            allow_missing_keys (bool): If True, do not raise an error if some keys in the input data dictionary are missing.
+            coord_orientation (str): Coordinate system (RAS or LPS) of input coordinates.
+            global_coordinates (bool): If True, coordinates are in global coordinates; otherwise, local coordinates.
+        """
+        super().__init__(keys=keys, allow_missing_keys=allow_missing_keys)
+        self.coord_orientation = coord_orientation
+        self.global_coordinates = global_coordinates
+        self.cropper = SeedBasedPatchCrop(roi_size=roi_size)
+
+    def __call__(self, data: Mapping[Hashable, NdarrayOrTensor]) -> Dict[Hashable, NdarrayOrTensor]:
+        """
+        Apply transformation to given data.
+
+        Args:
+            data (dict): Dictionary with image keys and required center coordinates.
+
+        Returns:
+            dict: Dictionary with cropped patches for each key in the input data dictionary.
+        """
+        d = dict(data)
+
+        assert "coordX" in d.keys(), "coordX not found in data"
+        assert "coordY" in d.keys(), "coordY not found in data"
+        assert "coordZ" in d.keys(), "coordZ not found in data"
+
+        # Convert coordinates to RAS orientation to match image orientation
+        if self.coord_orientation == "RAS":
+            center = (d["coordX"], d["coordY"], d["coordZ"])
+        elif self.coord_orientation == "LPS":
+            center = (-d["coordX"], -d["coordY"], d["coordZ"])
+
+        for key in self.key_iterator(d):
+            d[key] = self.cropper(d[key], center=center, global_coordinates=self.global_coordinates)
+        return d
+
+

Ancestors

+
    +
  • monai.transforms.transform.MapTransform
  • +
  • monai.transforms.transform.Transform
  • +
  • abc.ABC
  • +
+

Class variables

+
+
var backend : list[TransformBackends]
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/run.html b/api_docs/fmcib/run.html new file mode 100644 index 0000000..f7c01bf --- /dev/null +++ b/api_docs/fmcib/run.html @@ -0,0 +1,212 @@ + + + + + + +fmcib.run API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.run

+
+
+
+ +Expand source code + +
import numpy as np
+import pandas as pd
+import torch
+from loguru import logger
+from monai.networks.nets import resnet50
+from tqdm import tqdm
+
+from .models import LoadModel, fmcib_model
+from .preprocessing import get_dataloader
+
+
+def get_features(
+    csv_path,
+    weights_path=None,
+    spatial_size=(50, 50, 50),
+    precropped=False,
+):
+    """
+    Extracts features from images specified in a CSV file.
+
+    Args:
+        csv_path (str): Path to the CSV file containing image paths.
+        weights_path (str, optional): Path to the pre-trained weights file. Default is None.
+        spatial_size (tuple, optional): Spatial size of the input images. Default is (50, 50, 50).
+        precropped (bool, optional): Whether the images are already pre-cropped. Default is False.
+
+    Returns:
+        pandas.DataFrame: DataFrame containing the original data from the CSV file along with the extracted features.
+    """
+    logger.info("Loading CSV file ...")
+    df = pd.read_csv(csv_path)
+    dataloader = get_dataloader(csv_path, spatial_size=spatial_size, precropped=precropped)
+    device = "cuda" if torch.cuda.is_available() else "cpu"
+
+    if weights_path is None:
+        model = fmcib_model().to(device)
+    else:
+        logger.warning(
+            "Loading custom model provided from weights file. If this is not intended, please do not provide the weights_path argument."
+        )
+        trunk = resnet50(
+            pretrained=False,
+            n_input_channels=1,
+            widen_factor=2,
+            conv1_t_stride=2,
+            feed_forward=False,
+            bias_downsample=True,
+        )
+        model = LoadModel(trunk=trunk, weights_path=weights_path).to(device)
+
+    feature_list = []
+    logger.info("Running inference over batches ...")
+
+    model.eval()
+    for batch in tqdm(dataloader, total=len(dataloader)):
+        feature = model(batch.to(device)).detach().cpu().numpy()
+        feature_list.append(feature)
+
+    features = np.concatenate(feature_list, axis=0)
+    # Flatten features into a list
+    features = features.reshape(-1, 4096)
+
+    # Add the features to the dataframe
+    df = pd.concat([df, pd.DataFrame(features, columns=[f"pred_{idx}" for idx in range(4096)])], axis=1)
+    return df
+
+
+
+
+
+
+
+

Functions

+
+
+def get_features(csv_path, weights_path=None, spatial_size=(50, 50, 50), precropped=False) +
+
+

Extracts features from images specified in a CSV file.

+

Args

+
+
csv_path : str
+
Path to the CSV file containing image paths.
+
weights_path : str, optional
+
Path to the pre-trained weights file. Default is None.
+
spatial_size : tuple, optional
+
Spatial size of the input images. Default is (50, 50, 50).
+
precropped : bool, optional
+
Whether the images are already pre-cropped. Default is False.
+
+

Returns

+
+
pandas.DataFrame
+
DataFrame containing the original data from the CSV file along with the extracted features.
+
+
+ +Expand source code + +
def get_features(
+    csv_path,
+    weights_path=None,
+    spatial_size=(50, 50, 50),
+    precropped=False,
+):
+    """
+    Extracts features from images specified in a CSV file.
+
+    Args:
+        csv_path (str): Path to the CSV file containing image paths.
+        weights_path (str, optional): Path to the pre-trained weights file. Default is None.
+        spatial_size (tuple, optional): Spatial size of the input images. Default is (50, 50, 50).
+        precropped (bool, optional): Whether the images are already pre-cropped. Default is False.
+
+    Returns:
+        pandas.DataFrame: DataFrame containing the original data from the CSV file along with the extracted features.
+    """
+    logger.info("Loading CSV file ...")
+    df = pd.read_csv(csv_path)
+    dataloader = get_dataloader(csv_path, spatial_size=spatial_size, precropped=precropped)
+    device = "cuda" if torch.cuda.is_available() else "cpu"
+
+    if weights_path is None:
+        model = fmcib_model().to(device)
+    else:
+        logger.warning(
+            "Loading custom model provided from weights file. If this is not intended, please do not provide the weights_path argument."
+        )
+        trunk = resnet50(
+            pretrained=False,
+            n_input_channels=1,
+            widen_factor=2,
+            conv1_t_stride=2,
+            feed_forward=False,
+            bias_downsample=True,
+        )
+        model = LoadModel(trunk=trunk, weights_path=weights_path).to(device)
+
+    feature_list = []
+    logger.info("Running inference over batches ...")
+
+    model.eval()
+    for batch in tqdm(dataloader, total=len(dataloader)):
+        feature = model(batch.to(device)).detach().cpu().numpy()
+        feature_list.append(feature)
+
+    features = np.concatenate(feature_list, axis=0)
+    # Flatten features into a list
+    features = features.reshape(-1, 4096)
+
+    # Add the features to the dataframe
+    df = pd.concat([df, pd.DataFrame(features, columns=[f"pred_{idx}" for idx in range(4096)])], axis=1)
+    return df
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/index.html b/api_docs/fmcib/ssl/index.html new file mode 100644 index 0000000..64dfbd7 --- /dev/null +++ b/api_docs/fmcib/ssl/index.html @@ -0,0 +1,70 @@ + + + + + + +fmcib.ssl API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl

+
+
+
+
+

Sub-modules

+
+
fmcib.ssl.losses
+
+
+
+
fmcib.ssl.modules
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/losses/index.html b/api_docs/fmcib/ssl/losses/index.html new file mode 100644 index 0000000..ef5c04e --- /dev/null +++ b/api_docs/fmcib/ssl/losses/index.html @@ -0,0 +1,95 @@ + + + + + + +fmcib.ssl.losses API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.losses

+
+
+
+ +Expand source code + +
from .neg_mining_info_nce_loss import NegativeMiningInfoNCECriterion
+from .nnclr_loss import NNCLRLoss
+from .ntxent_loss import NTXentLoss
+from .ntxent_mined_loss import NTXentNegativeMinedLoss
+from .swav_loss import SwaVLoss
+
+
+
+

Sub-modules

+
+
fmcib.ssl.losses.neg_mining_info_nce_loss
+
+
+
+
fmcib.ssl.losses.nnclr_loss
+
+
+
+
fmcib.ssl.losses.ntxent_loss
+
+
+
+
fmcib.ssl.losses.ntxent_mined_loss
+
+

Contrastive Loss Functions

+
+
fmcib.ssl.losses.swav_loss
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/losses/neg_mining_info_nce_loss.html b/api_docs/fmcib/ssl/losses/neg_mining_info_nce_loss.html new file mode 100644 index 0000000..bb08380 --- /dev/null +++ b/api_docs/fmcib/ssl/losses/neg_mining_info_nce_loss.html @@ -0,0 +1,708 @@ + + + + + + +fmcib.ssl.losses.neg_mining_info_nce_loss API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.losses.neg_mining_info_nce_loss

+
+
+
+ +Expand source code + +
# Copyright (c) Facebook, Inc. and its affiliates.
+
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import pprint
+
+import numpy as np
+import torch
+from lightly.utils import dist
+from loguru import logger
+from torch import nn
+
+
+class NegativeMiningInfoNCECriterion(nn.Module):
+    """
+    The criterion corresponding to the SimCLR loss as defined in the paper
+    https://arxiv.org/abs/2002.05709.
+
+    Args:
+        temperature (float): The temperature to be applied on the logits.
+        buffer_params (dict): A dictionary containing the following keys:
+            - world_size (int): Total number of trainers in training.
+            - embedding_dim (int): Output dimensions of the features projects.
+            - effective_batch_size (int): Total batch size used (includes positives).
+    """
+
+    def __init__(
+        self, embedding_dim, batch_size, world_size, gather_distributed=False, temperature: float = 0.1, balanced: bool = True
+    ):
+        """
+        Initialize the NegativeMiningInfoNCECriterion class.
+
+        Args:
+            embedding_dim (int): The dimension of the embedding space.
+            batch_size (int): The size of the input batch.
+            world_size (int): The number of distributed processes.
+            gather_distributed (bool): Whether to gather distributed data.
+            temperature (float): The temperature used in the computation.
+            balanced (bool): Whether to use balanced sampling.
+
+        Attributes:
+            embedding_dim (int): The dimension of the embedding space.
+            use_gpu (bool): Whether to use GPU for computations.
+            temperature (float): The temperature used in the computation.
+            num_pos (int): The number of positive samples.
+            num_neg (int): The number of negative samples.
+            criterion (nn.CrossEntropyLoss): The loss function.
+            gather_distributed (bool): Whether to gather distributed data.
+            world_size (int): The number of distributed processes.
+            effective_batch_size (int): The effective batch size, taking into account world size and number of positive samples.
+            pos_mask (None or Tensor): Mask for positive samples.
+            neg_mask (None or Tensor): Mask for negative samples.
+            balanced (bool): Whether to use balanced sampling.
+            setup (bool): Whether the setup has been done.
+        """
+        super(NegativeMiningInfoNCECriterion, self).__init__()
+        self.embedding_dim = embedding_dim
+        self.use_gpu = torch.cuda.is_available()
+        self.temperature = temperature
+        self.num_pos = 2
+
+        # Same number of negatives as positives are loaded
+        self.num_neg = self.num_pos
+        self.criterion = nn.CrossEntropyLoss()
+        self.gather_distributed = gather_distributed
+        self.world_size = world_size
+        self.effective_batch_size = batch_size * self.world_size * self.num_pos
+        self.pos_mask = None
+        self.neg_mask = None
+        self.balanced = balanced
+        self.setup = False
+
+    def precompute_pos_neg_mask(self):
+        """
+        Precompute the positive and negative masks to speed up the loss calculation.
+        """
+        # computed once at the begining of training
+
+        # total_images is x2 SimCLR Info-NCE loss
+        # as we have negative samples for each positive sample
+
+        total_images = self.effective_batch_size * self.num_neg
+        world_size = self.world_size
+
+        # Batch size computation is different from SimCLR paper
+        batch_size = self.effective_batch_size // world_size
+        orig_images = batch_size // self.num_pos
+        rank = dist.rank()
+
+        pos_mask = torch.zeros(batch_size * self.num_neg, total_images)
+        neg_mask = torch.zeros(batch_size * self.num_neg, total_images)
+
+        all_indices = np.arange(total_images)
+
+        # Index for pairs of images (original + copy)
+        pairs = orig_images * np.arange(self.num_pos)
+
+        # Remove all indices associated with positive samples & copies (for neg_mask)
+        all_pos_members = []
+        for _rank in range(world_size):
+            all_pos_members += list(_rank * (batch_size * 2) + np.arange(batch_size))
+
+        all_indices_pos_removed = np.delete(all_indices, all_pos_members)
+
+        # Index of original positive images
+        orig_members = torch.arange(orig_images)
+
+        for anchor in np.arange(self.num_pos):
+            for img_idx in range(orig_images):
+                # delete_inds are spaced by batch_size for each rank as
+                # all_indices_pos_removed (half of the indices) is deleted first
+                delete_inds = batch_size * rank + img_idx + pairs
+                neg_inds = torch.tensor(np.delete(all_indices_pos_removed, delete_inds)).long()
+                neg_mask[anchor * orig_images + img_idx, neg_inds] = 1
+
+            for pos in np.delete(np.arange(self.num_pos), anchor):
+                # Pos_inds are spaced by batch_size * self.num_neg for each rank
+                pos_inds = (batch_size * self.num_neg) * rank + pos * orig_images + orig_members
+                pos_mask[
+                    torch.arange(anchor * orig_images, (anchor + 1) * orig_images).long(),
+                    pos_inds.long(),
+                ] = 1
+
+        self.pos_mask = pos_mask.cuda(non_blocking=True) if self.use_gpu else pos_mask
+        self.neg_mask = neg_mask.cuda(non_blocking=True) if self.use_gpu else neg_mask
+
+    def forward(self, out: torch.Tensor):
+        """
+        Calculate the loss. Operates on embeddings tensor.
+        """
+        if not self.setup:
+            logger.info(f"Running Negative Mining Info-NCE loss on Rank: {dist.rank()}")
+            self.precompute_pos_neg_mask()
+            self.setup = True
+
+        pos0, pos1 = out["positive"]
+        neg0, neg1 = out["negative"]
+        embedding = torch.cat([pos0, pos1, neg0, neg1], dim=0)
+        embedding = nn.functional.normalize(embedding, dim=1, p=2)
+        assert embedding.ndim == 2
+        assert embedding.shape[1] == int(self.embedding_dim)
+
+        batch_size = embedding.shape[0]
+        T = self.temperature
+        num_pos = self.num_pos
+
+        assert batch_size % num_pos == 0, "Batch size should be divisible by num_pos"
+        assert batch_size == self.pos_mask.shape[0], "Batch size should be equal to pos_mask shape"
+
+        # Step 1: gather all the embeddings. Shape example: 4096 x 128
+        embeddings_buffer = self.gather_embeddings(embedding)
+
+        # Step 2: matrix multiply: 64 x 128 with 4096 x 128 = 64 x 4096 and
+        # divide by temperature.
+        similarity = torch.exp(torch.mm(embedding, embeddings_buffer.t()) / T)
+
+        pos = torch.sum(similarity * self.pos_mask, 1)
+        neg = torch.sum(similarity * self.neg_mask, 1)
+
+        # Ignore the negative samples as entries for loss calculation
+        pos = pos[: (batch_size // 2)]
+        neg = neg[: (batch_size // 2)]
+
+        loss = -(torch.mean(torch.log(pos / (pos + neg))))
+        return loss
+
+    def __repr__(self):
+        """
+        Return a string representation of the object.
+
+        Returns:
+            str: A formatted string representation of the object.
+
+        Examples:
+            The following example shows the string representation of the object:
+
+            {
+              'name': <object_name>,
+              'temperature': <temperature_value>,
+              'num_negatives': <num_negatives_value>,
+              'num_pos': <num_pos_value>,
+              'dist_rank': <dist_rank_value>
+            }
+
+        Note:
+            This function is intended to be used with the pprint module for pretty printing.
+        """
+        num_negatives = self.effective_batch_size - 2
+        T = self.temperature
+        num_pos = self.num_pos
+        repr_dict = {
+            "name": self._get_name(),
+            "temperature": T,
+            "num_negatives": num_negatives,
+            "num_pos": num_pos,
+            "dist_rank": dist.rank(),
+        }
+        return pprint.pformat(repr_dict, indent=2)
+
+    def gather_embeddings(self, embedding: torch.Tensor):
+        """
+        Do a gather over all embeddings, so we can compute the loss.
+        Final shape is like: (batch_size * num_gpus) x embedding_dim
+        """
+        if self.gather_distributed:
+            embedding_gathered = torch.cat(dist.gather(embedding), 0)
+        else:
+            embedding_gathered = embedding
+        return embedding_gathered
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class NegativeMiningInfoNCECriterion +(embedding_dim, batch_size, world_size, gather_distributed=False, temperature: float = 0.1, balanced: bool = True) +
+
+

The criterion corresponding to the SimCLR loss as defined in the paper +https://arxiv.org/abs/2002.05709.

+

Args

+
+
temperature : float
+
The temperature to be applied on the logits.
+
buffer_params : dict
+
A dictionary containing the following keys: +- world_size (int): Total number of trainers in training. +- embedding_dim (int): Output dimensions of the features projects. +- effective_batch_size (int): Total batch size used (includes positives).
+
+

Initialize the NegativeMiningInfoNCECriterion class.

+

Args

+
+
embedding_dim : int
+
The dimension of the embedding space.
+
batch_size : int
+
The size of the input batch.
+
world_size : int
+
The number of distributed processes.
+
gather_distributed : bool
+
Whether to gather distributed data.
+
temperature : float
+
The temperature used in the computation.
+
balanced : bool
+
Whether to use balanced sampling.
+
+

Attributes

+
+
embedding_dim : int
+
The dimension of the embedding space.
+
use_gpu : bool
+
Whether to use GPU for computations.
+
temperature : float
+
The temperature used in the computation.
+
num_pos : int
+
The number of positive samples.
+
num_neg : int
+
The number of negative samples.
+
criterion : nn.CrossEntropyLoss
+
The loss function.
+
gather_distributed : bool
+
Whether to gather distributed data.
+
world_size : int
+
The number of distributed processes.
+
effective_batch_size : int
+
The effective batch size, taking into account world size and number of positive samples.
+
pos_mask : None or Tensor
+
Mask for positive samples.
+
neg_mask : None or Tensor
+
Mask for negative samples.
+
balanced : bool
+
Whether to use balanced sampling.
+
setup : bool
+
Whether the setup has been done.
+
+
+ +Expand source code + +
class NegativeMiningInfoNCECriterion(nn.Module):
+    """
+    The criterion corresponding to the SimCLR loss as defined in the paper
+    https://arxiv.org/abs/2002.05709.
+
+    Args:
+        temperature (float): The temperature to be applied on the logits.
+        buffer_params (dict): A dictionary containing the following keys:
+            - world_size (int): Total number of trainers in training.
+            - embedding_dim (int): Output dimensions of the features projects.
+            - effective_batch_size (int): Total batch size used (includes positives).
+    """
+
+    def __init__(
+        self, embedding_dim, batch_size, world_size, gather_distributed=False, temperature: float = 0.1, balanced: bool = True
+    ):
+        """
+        Initialize the NegativeMiningInfoNCECriterion class.
+
+        Args:
+            embedding_dim (int): The dimension of the embedding space.
+            batch_size (int): The size of the input batch.
+            world_size (int): The number of distributed processes.
+            gather_distributed (bool): Whether to gather distributed data.
+            temperature (float): The temperature used in the computation.
+            balanced (bool): Whether to use balanced sampling.
+
+        Attributes:
+            embedding_dim (int): The dimension of the embedding space.
+            use_gpu (bool): Whether to use GPU for computations.
+            temperature (float): The temperature used in the computation.
+            num_pos (int): The number of positive samples.
+            num_neg (int): The number of negative samples.
+            criterion (nn.CrossEntropyLoss): The loss function.
+            gather_distributed (bool): Whether to gather distributed data.
+            world_size (int): The number of distributed processes.
+            effective_batch_size (int): The effective batch size, taking into account world size and number of positive samples.
+            pos_mask (None or Tensor): Mask for positive samples.
+            neg_mask (None or Tensor): Mask for negative samples.
+            balanced (bool): Whether to use balanced sampling.
+            setup (bool): Whether the setup has been done.
+        """
+        super(NegativeMiningInfoNCECriterion, self).__init__()
+        self.embedding_dim = embedding_dim
+        self.use_gpu = torch.cuda.is_available()
+        self.temperature = temperature
+        self.num_pos = 2
+
+        # Same number of negatives as positives are loaded
+        self.num_neg = self.num_pos
+        self.criterion = nn.CrossEntropyLoss()
+        self.gather_distributed = gather_distributed
+        self.world_size = world_size
+        self.effective_batch_size = batch_size * self.world_size * self.num_pos
+        self.pos_mask = None
+        self.neg_mask = None
+        self.balanced = balanced
+        self.setup = False
+
+    def precompute_pos_neg_mask(self):
+        """
+        Precompute the positive and negative masks to speed up the loss calculation.
+        """
+        # computed once at the begining of training
+
+        # total_images is x2 SimCLR Info-NCE loss
+        # as we have negative samples for each positive sample
+
+        total_images = self.effective_batch_size * self.num_neg
+        world_size = self.world_size
+
+        # Batch size computation is different from SimCLR paper
+        batch_size = self.effective_batch_size // world_size
+        orig_images = batch_size // self.num_pos
+        rank = dist.rank()
+
+        pos_mask = torch.zeros(batch_size * self.num_neg, total_images)
+        neg_mask = torch.zeros(batch_size * self.num_neg, total_images)
+
+        all_indices = np.arange(total_images)
+
+        # Index for pairs of images (original + copy)
+        pairs = orig_images * np.arange(self.num_pos)
+
+        # Remove all indices associated with positive samples & copies (for neg_mask)
+        all_pos_members = []
+        for _rank in range(world_size):
+            all_pos_members += list(_rank * (batch_size * 2) + np.arange(batch_size))
+
+        all_indices_pos_removed = np.delete(all_indices, all_pos_members)
+
+        # Index of original positive images
+        orig_members = torch.arange(orig_images)
+
+        for anchor in np.arange(self.num_pos):
+            for img_idx in range(orig_images):
+                # delete_inds are spaced by batch_size for each rank as
+                # all_indices_pos_removed (half of the indices) is deleted first
+                delete_inds = batch_size * rank + img_idx + pairs
+                neg_inds = torch.tensor(np.delete(all_indices_pos_removed, delete_inds)).long()
+                neg_mask[anchor * orig_images + img_idx, neg_inds] = 1
+
+            for pos in np.delete(np.arange(self.num_pos), anchor):
+                # Pos_inds are spaced by batch_size * self.num_neg for each rank
+                pos_inds = (batch_size * self.num_neg) * rank + pos * orig_images + orig_members
+                pos_mask[
+                    torch.arange(anchor * orig_images, (anchor + 1) * orig_images).long(),
+                    pos_inds.long(),
+                ] = 1
+
+        self.pos_mask = pos_mask.cuda(non_blocking=True) if self.use_gpu else pos_mask
+        self.neg_mask = neg_mask.cuda(non_blocking=True) if self.use_gpu else neg_mask
+
+    def forward(self, out: torch.Tensor):
+        """
+        Calculate the loss. Operates on embeddings tensor.
+        """
+        if not self.setup:
+            logger.info(f"Running Negative Mining Info-NCE loss on Rank: {dist.rank()}")
+            self.precompute_pos_neg_mask()
+            self.setup = True
+
+        pos0, pos1 = out["positive"]
+        neg0, neg1 = out["negative"]
+        embedding = torch.cat([pos0, pos1, neg0, neg1], dim=0)
+        embedding = nn.functional.normalize(embedding, dim=1, p=2)
+        assert embedding.ndim == 2
+        assert embedding.shape[1] == int(self.embedding_dim)
+
+        batch_size = embedding.shape[0]
+        T = self.temperature
+        num_pos = self.num_pos
+
+        assert batch_size % num_pos == 0, "Batch size should be divisible by num_pos"
+        assert batch_size == self.pos_mask.shape[0], "Batch size should be equal to pos_mask shape"
+
+        # Step 1: gather all the embeddings. Shape example: 4096 x 128
+        embeddings_buffer = self.gather_embeddings(embedding)
+
+        # Step 2: matrix multiply: 64 x 128 with 4096 x 128 = 64 x 4096 and
+        # divide by temperature.
+        similarity = torch.exp(torch.mm(embedding, embeddings_buffer.t()) / T)
+
+        pos = torch.sum(similarity * self.pos_mask, 1)
+        neg = torch.sum(similarity * self.neg_mask, 1)
+
+        # Ignore the negative samples as entries for loss calculation
+        pos = pos[: (batch_size // 2)]
+        neg = neg[: (batch_size // 2)]
+
+        loss = -(torch.mean(torch.log(pos / (pos + neg))))
+        return loss
+
+    def __repr__(self):
+        """
+        Return a string representation of the object.
+
+        Returns:
+            str: A formatted string representation of the object.
+
+        Examples:
+            The following example shows the string representation of the object:
+
+            {
+              'name': <object_name>,
+              'temperature': <temperature_value>,
+              'num_negatives': <num_negatives_value>,
+              'num_pos': <num_pos_value>,
+              'dist_rank': <dist_rank_value>
+            }
+
+        Note:
+            This function is intended to be used with the pprint module for pretty printing.
+        """
+        num_negatives = self.effective_batch_size - 2
+        T = self.temperature
+        num_pos = self.num_pos
+        repr_dict = {
+            "name": self._get_name(),
+            "temperature": T,
+            "num_negatives": num_negatives,
+            "num_pos": num_pos,
+            "dist_rank": dist.rank(),
+        }
+        return pprint.pformat(repr_dict, indent=2)
+
+    def gather_embeddings(self, embedding: torch.Tensor):
+        """
+        Do a gather over all embeddings, so we can compute the loss.
+        Final shape is like: (batch_size * num_gpus) x embedding_dim
+        """
+        if self.gather_distributed:
+            embedding_gathered = torch.cat(dist.gather(embedding), 0)
+        else:
+            embedding_gathered = embedding
+        return embedding_gathered
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, out: torch.Tensor) ‑> Callable[..., Any] +
+
+

Calculate the loss. Operates on embeddings tensor.

+
+ +Expand source code + +
def forward(self, out: torch.Tensor):
+    """
+    Calculate the loss. Operates on embeddings tensor.
+    """
+    if not self.setup:
+        logger.info(f"Running Negative Mining Info-NCE loss on Rank: {dist.rank()}")
+        self.precompute_pos_neg_mask()
+        self.setup = True
+
+    pos0, pos1 = out["positive"]
+    neg0, neg1 = out["negative"]
+    embedding = torch.cat([pos0, pos1, neg0, neg1], dim=0)
+    embedding = nn.functional.normalize(embedding, dim=1, p=2)
+    assert embedding.ndim == 2
+    assert embedding.shape[1] == int(self.embedding_dim)
+
+    batch_size = embedding.shape[0]
+    T = self.temperature
+    num_pos = self.num_pos
+
+    assert batch_size % num_pos == 0, "Batch size should be divisible by num_pos"
+    assert batch_size == self.pos_mask.shape[0], "Batch size should be equal to pos_mask shape"
+
+    # Step 1: gather all the embeddings. Shape example: 4096 x 128
+    embeddings_buffer = self.gather_embeddings(embedding)
+
+    # Step 2: matrix multiply: 64 x 128 with 4096 x 128 = 64 x 4096 and
+    # divide by temperature.
+    similarity = torch.exp(torch.mm(embedding, embeddings_buffer.t()) / T)
+
+    pos = torch.sum(similarity * self.pos_mask, 1)
+    neg = torch.sum(similarity * self.neg_mask, 1)
+
+    # Ignore the negative samples as entries for loss calculation
+    pos = pos[: (batch_size // 2)]
+    neg = neg[: (batch_size // 2)]
+
+    loss = -(torch.mean(torch.log(pos / (pos + neg))))
+    return loss
+
+
+
+def gather_embeddings(self, embedding: torch.Tensor) +
+
+

Do a gather over all embeddings, so we can compute the loss. +Final shape is like: (batch_size * num_gpus) x embedding_dim

+
+ +Expand source code + +
def gather_embeddings(self, embedding: torch.Tensor):
+    """
+    Do a gather over all embeddings, so we can compute the loss.
+    Final shape is like: (batch_size * num_gpus) x embedding_dim
+    """
+    if self.gather_distributed:
+        embedding_gathered = torch.cat(dist.gather(embedding), 0)
+    else:
+        embedding_gathered = embedding
+    return embedding_gathered
+
+
+
+def precompute_pos_neg_mask(self) +
+
+

Precompute the positive and negative masks to speed up the loss calculation.

+
+ +Expand source code + +
def precompute_pos_neg_mask(self):
+    """
+    Precompute the positive and negative masks to speed up the loss calculation.
+    """
+    # computed once at the begining of training
+
+    # total_images is x2 SimCLR Info-NCE loss
+    # as we have negative samples for each positive sample
+
+    total_images = self.effective_batch_size * self.num_neg
+    world_size = self.world_size
+
+    # Batch size computation is different from SimCLR paper
+    batch_size = self.effective_batch_size // world_size
+    orig_images = batch_size // self.num_pos
+    rank = dist.rank()
+
+    pos_mask = torch.zeros(batch_size * self.num_neg, total_images)
+    neg_mask = torch.zeros(batch_size * self.num_neg, total_images)
+
+    all_indices = np.arange(total_images)
+
+    # Index for pairs of images (original + copy)
+    pairs = orig_images * np.arange(self.num_pos)
+
+    # Remove all indices associated with positive samples & copies (for neg_mask)
+    all_pos_members = []
+    for _rank in range(world_size):
+        all_pos_members += list(_rank * (batch_size * 2) + np.arange(batch_size))
+
+    all_indices_pos_removed = np.delete(all_indices, all_pos_members)
+
+    # Index of original positive images
+    orig_members = torch.arange(orig_images)
+
+    for anchor in np.arange(self.num_pos):
+        for img_idx in range(orig_images):
+            # delete_inds are spaced by batch_size for each rank as
+            # all_indices_pos_removed (half of the indices) is deleted first
+            delete_inds = batch_size * rank + img_idx + pairs
+            neg_inds = torch.tensor(np.delete(all_indices_pos_removed, delete_inds)).long()
+            neg_mask[anchor * orig_images + img_idx, neg_inds] = 1
+
+        for pos in np.delete(np.arange(self.num_pos), anchor):
+            # Pos_inds are spaced by batch_size * self.num_neg for each rank
+            pos_inds = (batch_size * self.num_neg) * rank + pos * orig_images + orig_members
+            pos_mask[
+                torch.arange(anchor * orig_images, (anchor + 1) * orig_images).long(),
+                pos_inds.long(),
+            ] = 1
+
+    self.pos_mask = pos_mask.cuda(non_blocking=True) if self.use_gpu else pos_mask
+    self.neg_mask = neg_mask.cuda(non_blocking=True) if self.use_gpu else neg_mask
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/losses/nnclr_loss.html b/api_docs/fmcib/ssl/losses/nnclr_loss.html new file mode 100644 index 0000000..34f8289 --- /dev/null +++ b/api_docs/fmcib/ssl/losses/nnclr_loss.html @@ -0,0 +1,206 @@ + + + + + + +fmcib.ssl.losses.nnclr_loss API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.losses.nnclr_loss

+
+
+
+ +Expand source code + +
from lightly.loss import NTXentLoss
+
+
+class NNCLRLoss(NTXentLoss):
+    """
+    A class representing the NNCLRLoss.
+
+    This class extends the NTXentLoss class and implements a symmetric loss function for NNCLR.
+
+    Attributes:
+        temperature (float): The temperature for the loss function. Default is 0.1.
+        gather_distributed (bool): A flag indicating whether the distributed gathering is used. Default is False.
+    """
+
+    def __init__(self, temperature: float = 0.1, gather_distributed: bool = False):
+        """
+        Initialize a new instance of the class.
+
+        Args:
+            temperature (float): The temperature to use for initialization. Default value is 0.1.
+            gather_distributed (bool): Whether to use gather distributed mode. Default value is False.
+        """
+        super().__init__(temperature, gather_distributed)
+
+    def forward(self, out):
+        """
+        Symmetric loss function for NNCLR.
+        """
+        (z0, p0), (z1, p1) = out
+        loss0 = super().forward(z0, p0)
+        loss1 = super().forward(z1, p1)
+        return (loss0 + loss1) / 2
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class NNCLRLoss +(temperature: float = 0.1, gather_distributed: bool = False) +
+
+

A class representing the NNCLRLoss.

+

This class extends the NTXentLoss class and implements a symmetric loss function for NNCLR.

+

Attributes

+
+
temperature : float
+
The temperature for the loss function. Default is 0.1.
+
gather_distributed : bool
+
A flag indicating whether the distributed gathering is used. Default is False.
+
+

Initialize a new instance of the class.

+

Args

+
+
temperature : float
+
The temperature to use for initialization. Default value is 0.1.
+
gather_distributed : bool
+
Whether to use gather distributed mode. Default value is False.
+
+
+ +Expand source code + +
class NNCLRLoss(NTXentLoss):
+    """
+    A class representing the NNCLRLoss.
+
+    This class extends the NTXentLoss class and implements a symmetric loss function for NNCLR.
+
+    Attributes:
+        temperature (float): The temperature for the loss function. Default is 0.1.
+        gather_distributed (bool): A flag indicating whether the distributed gathering is used. Default is False.
+    """
+
+    def __init__(self, temperature: float = 0.1, gather_distributed: bool = False):
+        """
+        Initialize a new instance of the class.
+
+        Args:
+            temperature (float): The temperature to use for initialization. Default value is 0.1.
+            gather_distributed (bool): Whether to use gather distributed mode. Default value is False.
+        """
+        super().__init__(temperature, gather_distributed)
+
+    def forward(self, out):
+        """
+        Symmetric loss function for NNCLR.
+        """
+        (z0, p0), (z1, p1) = out
+        loss0 = super().forward(z0, p0)
+        loss1 = super().forward(z1, p1)
+        return (loss0 + loss1) / 2
+
+

Ancestors

+
    +
  • lightly.loss.ntx_ent_loss.NTXentLoss
  • +
  • lightly.loss.memory_bank.MemoryBankModule
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, out) ‑> Callable[..., Any] +
+
+

Symmetric loss function for NNCLR.

+
+ +Expand source code + +
def forward(self, out):
+    """
+    Symmetric loss function for NNCLR.
+    """
+    (z0, p0), (z1, p1) = out
+    loss0 = super().forward(z0, p0)
+    loss1 = super().forward(z1, p1)
+    return (loss0 + loss1) / 2
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/losses/ntxent_loss.html b/api_docs/fmcib/ssl/losses/ntxent_loss.html new file mode 100644 index 0000000..4ac6021 --- /dev/null +++ b/api_docs/fmcib/ssl/losses/ntxent_loss.html @@ -0,0 +1,210 @@ + + + + + + +fmcib.ssl.losses.ntxent_loss API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.losses.ntxent_loss

+
+
+
+ +Expand source code + +
from typing import List
+
+from lightly.loss import NTXentLoss as lightly_NTXentLoss
+
+
+class NTXentLoss(lightly_NTXentLoss):
+    """
+    NTXentNegativeMinedLoss:
+    NTXentLoss with explicitly mined negatives
+    """
+
+    def __init__(self, temperature: float = 0.1, gather_distributed: bool = False):
+        """
+        Initialize an instance of the class.
+
+        Args:
+            temperature (float, optional): The temperature parameter for the instance. Defaults to 0.1.
+            gather_distributed (bool, optional): Whether to gather distributed data. Defaults to False.
+        """
+        super().__init__(temperature, gather_distributed)
+
+    def forward(self, out: List):
+        """
+        Forward pass through Negative mining contrastive Cross-Entropy Loss.
+
+        Args:
+            out (List[torch.Tensor]): List of tensors
+
+        Returns:
+            float: Contrastive Cross Entropy Loss value.
+        """
+        return super().forward(*out)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class NTXentLoss +(temperature: float = 0.1, gather_distributed: bool = False) +
+
+

NTXentNegativeMinedLoss: +NTXentLoss with explicitly mined negatives

+

Initialize an instance of the class.

+

Args

+
+
temperature : float, optional
+
The temperature parameter for the instance. Defaults to 0.1.
+
gather_distributed : bool, optional
+
Whether to gather distributed data. Defaults to False.
+
+
+ +Expand source code + +
class NTXentLoss(lightly_NTXentLoss):
+    """
+    NTXentNegativeMinedLoss:
+    NTXentLoss with explicitly mined negatives
+    """
+
+    def __init__(self, temperature: float = 0.1, gather_distributed: bool = False):
+        """
+        Initialize an instance of the class.
+
+        Args:
+            temperature (float, optional): The temperature parameter for the instance. Defaults to 0.1.
+            gather_distributed (bool, optional): Whether to gather distributed data. Defaults to False.
+        """
+        super().__init__(temperature, gather_distributed)
+
+    def forward(self, out: List):
+        """
+        Forward pass through Negative mining contrastive Cross-Entropy Loss.
+
+        Args:
+            out (List[torch.Tensor]): List of tensors
+
+        Returns:
+            float: Contrastive Cross Entropy Loss value.
+        """
+        return super().forward(*out)
+
+

Ancestors

+
    +
  • lightly.loss.ntx_ent_loss.NTXentLoss
  • +
  • lightly.loss.memory_bank.MemoryBankModule
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, out: List[~T]) ‑> Callable[..., Any] +
+
+

Forward pass through Negative mining contrastive Cross-Entropy Loss.

+

Args

+
+
out : List[torch.Tensor]
+
List of tensors
+
+

Returns

+
+
float
+
Contrastive Cross Entropy Loss value.
+
+
+ +Expand source code + +
def forward(self, out: List):
+    """
+    Forward pass through Negative mining contrastive Cross-Entropy Loss.
+
+    Args:
+        out (List[torch.Tensor]): List of tensors
+
+    Returns:
+        float: Contrastive Cross Entropy Loss value.
+    """
+    return super().forward(*out)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/losses/ntxent_mined_loss.html b/api_docs/fmcib/ssl/losses/ntxent_mined_loss.html new file mode 100644 index 0000000..cceff95 --- /dev/null +++ b/api_docs/fmcib/ssl/losses/ntxent_mined_loss.html @@ -0,0 +1,447 @@ + + + + + + +fmcib.ssl.losses.ntxent_mined_loss API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.losses.ntxent_mined_loss

+
+
+

Contrastive Loss Functions

+
+ +Expand source code + +
""" Contrastive Loss Functions """
+
+# Copyright (c) 2020. Lightly AG and its affiliates.
+# All Rights Reserved
+
+# Modified to function for explicitly selected negatives
+
+from typing import Dict
+
+import torch
+from lightly.utils import dist
+from torch import nn
+
+
+class NTXentNegativeMinedLoss(torch.nn.Module):
+    """
+    NTXentNegativeMinedLoss:
+    NTXentLoss with explicitly mined negatives
+
+    Args:
+        temperature (float): The temperature parameter for the loss calculation. Default is 0.1.
+        gather_distributed (bool): Whether to gather hidden representations from other processes in a distributed setting. Default is False.
+
+    Raises:
+        ValueError: If the absolute value of temperature is less than 1e-8.
+    """
+
+    def __init__(self, temperature: float = 0.1, gather_distributed: bool = False):
+        """
+        Initialize the NTXentNegativeMinedLoss object.
+
+        Args:
+            temperature (float, optional): The temperature parameter for the loss function. Defaults to 0.1.
+            gather_distributed (bool, optional): Whether to use distributed gathering or not. Defaults to False.
+
+        Raises:
+            ValueError: If the absolute value of the temperature is too small.
+
+        Attributes:
+            temperature (float): The temperature parameter for the loss function.
+            gather_distributed (bool): Whether to use distributed gathering or not.
+            cross_entropy (torch.nn.CrossEntropyLoss): The cross entropy loss function.
+            eps (float): A small value to avoid division by zero.
+        """
+        super(NTXentNegativeMinedLoss, self).__init__()
+        self.temperature = temperature
+        self.gather_distributed = gather_distributed
+        self.cross_entropy = nn.CrossEntropyLoss(reduction="mean")
+        self.eps = 1e-8
+
+        if abs(self.temperature) < self.eps:
+            raise ValueError("Illegal temperature: abs({}) < 1e-8".format(self.temperature))
+
+    def forward(self, out: Dict):
+        """
+        Forward pass through Negative mining contrastive Cross-Entropy Loss.
+
+        Args:
+            out (Dict): Dictionary with `positive` and `negative` keys to represent positive selected and negative selected samples.
+
+        Returns:
+            torch.Tensor: Contrastive Cross Entropy Loss value.
+
+        Raises:
+            AssertionError: If `positive` or `negative` keys are not specified in the input dictionary.
+        """
+
+        assert "positive" in out, "`positive` key needs to be specified"
+        assert "negative" in out, "`negative` key needs to be specified"
+
+        pos0, pos1 = out["positive"]
+        neg0, neg1 = out["negative"]
+
+        device = pos0.device
+        batch_size, _ = pos0.shape
+
+        # normalize the output to length 1
+        pos0 = nn.functional.normalize(pos0, dim=1)
+        pos1 = nn.functional.normalize(pos1, dim=1)
+        neg0 = nn.functional.normalize(neg0, dim=1)
+        neg1 = nn.functional.normalize(neg1, dim=1)
+
+        if self.gather_distributed and dist.world_size() > 1:
+            # gather hidden representations from other processes
+            pos0_large = torch.cat(dist.gather(pos0), 0)
+            pos1_large = torch.cat(dist.gather(pos1), 0)
+            neg0_large = torch.cat(dist.gather(neg0), 0)
+            neg1_large = torch.cat(dist.gather(neg1), 0)
+            diag_mask = dist.eye_rank(batch_size, device=pos0.device)
+
+        else:
+            # gather hidden representations from other processes
+            pos0_large = pos0
+            pos1_large = pos1
+            neg0_large = neg0
+            neg1_large = neg1
+            diag_mask = torch.eye(batch_size, device=pos0.device, dtype=torch.bool)
+
+        logits_00 = torch.einsum("nc,mc->nm", pos0, neg0_large) / self.temperature
+        logits_01 = torch.einsum("nc,mc->nm", pos0, pos1_large) / self.temperature
+        logits_10 = torch.einsum("nc,mc->nm", pos1, pos0_large) / self.temperature
+        logits_11 = torch.einsum("nc,mc->nm", pos1, neg1_large) / self.temperature
+
+        logits_01 = logits_01[diag_mask].view(batch_size, -1)
+        logits_10 = logits_10[diag_mask].view(batch_size, -1)
+
+        logits_0100 = torch.cat([logits_01, logits_00], dim=1)
+        logits_1011 = torch.cat([logits_10, logits_11], dim=1)
+        logits = torch.cat([logits_0100, logits_1011], dim=0)
+
+        labels = torch.zeros(logits.shape[0], device=device, dtype=torch.long)
+        loss = self.cross_entropy(logits, labels)
+
+        return loss
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class NTXentNegativeMinedLoss +(temperature: float = 0.1, gather_distributed: bool = False) +
+
+

NTXentNegativeMinedLoss: +NTXentLoss with explicitly mined negatives

+

Args

+
+
temperature : float
+
The temperature parameter for the loss calculation. Default is 0.1.
+
gather_distributed : bool
+
Whether to gather hidden representations from other processes in a distributed setting. Default is False.
+
+

Raises

+
+
ValueError
+
If the absolute value of temperature is less than 1e-8.
+
+

Initialize the NTXentNegativeMinedLoss object.

+

Args

+
+
temperature : float, optional
+
The temperature parameter for the loss function. Defaults to 0.1.
+
gather_distributed : bool, optional
+
Whether to use distributed gathering or not. Defaults to False.
+
+

Raises

+
+
ValueError
+
If the absolute value of the temperature is too small.
+
+

Attributes

+
+
temperature : float
+
The temperature parameter for the loss function.
+
gather_distributed : bool
+
Whether to use distributed gathering or not.
+
cross_entropy : torch.nn.CrossEntropyLoss
+
The cross entropy loss function.
+
eps : float
+
A small value to avoid division by zero.
+
+
+ +Expand source code + +
class NTXentNegativeMinedLoss(torch.nn.Module):
+    """
+    NTXentNegativeMinedLoss:
+    NTXentLoss with explicitly mined negatives
+
+    Args:
+        temperature (float): The temperature parameter for the loss calculation. Default is 0.1.
+        gather_distributed (bool): Whether to gather hidden representations from other processes in a distributed setting. Default is False.
+
+    Raises:
+        ValueError: If the absolute value of temperature is less than 1e-8.
+    """
+
+    def __init__(self, temperature: float = 0.1, gather_distributed: bool = False):
+        """
+        Initialize the NTXentNegativeMinedLoss object.
+
+        Args:
+            temperature (float, optional): The temperature parameter for the loss function. Defaults to 0.1.
+            gather_distributed (bool, optional): Whether to use distributed gathering or not. Defaults to False.
+
+        Raises:
+            ValueError: If the absolute value of the temperature is too small.
+
+        Attributes:
+            temperature (float): The temperature parameter for the loss function.
+            gather_distributed (bool): Whether to use distributed gathering or not.
+            cross_entropy (torch.nn.CrossEntropyLoss): The cross entropy loss function.
+            eps (float): A small value to avoid division by zero.
+        """
+        super(NTXentNegativeMinedLoss, self).__init__()
+        self.temperature = temperature
+        self.gather_distributed = gather_distributed
+        self.cross_entropy = nn.CrossEntropyLoss(reduction="mean")
+        self.eps = 1e-8
+
+        if abs(self.temperature) < self.eps:
+            raise ValueError("Illegal temperature: abs({}) < 1e-8".format(self.temperature))
+
+    def forward(self, out: Dict):
+        """
+        Forward pass through Negative mining contrastive Cross-Entropy Loss.
+
+        Args:
+            out (Dict): Dictionary with `positive` and `negative` keys to represent positive selected and negative selected samples.
+
+        Returns:
+            torch.Tensor: Contrastive Cross Entropy Loss value.
+
+        Raises:
+            AssertionError: If `positive` or `negative` keys are not specified in the input dictionary.
+        """
+
+        assert "positive" in out, "`positive` key needs to be specified"
+        assert "negative" in out, "`negative` key needs to be specified"
+
+        pos0, pos1 = out["positive"]
+        neg0, neg1 = out["negative"]
+
+        device = pos0.device
+        batch_size, _ = pos0.shape
+
+        # normalize the output to length 1
+        pos0 = nn.functional.normalize(pos0, dim=1)
+        pos1 = nn.functional.normalize(pos1, dim=1)
+        neg0 = nn.functional.normalize(neg0, dim=1)
+        neg1 = nn.functional.normalize(neg1, dim=1)
+
+        if self.gather_distributed and dist.world_size() > 1:
+            # gather hidden representations from other processes
+            pos0_large = torch.cat(dist.gather(pos0), 0)
+            pos1_large = torch.cat(dist.gather(pos1), 0)
+            neg0_large = torch.cat(dist.gather(neg0), 0)
+            neg1_large = torch.cat(dist.gather(neg1), 0)
+            diag_mask = dist.eye_rank(batch_size, device=pos0.device)
+
+        else:
+            # gather hidden representations from other processes
+            pos0_large = pos0
+            pos1_large = pos1
+            neg0_large = neg0
+            neg1_large = neg1
+            diag_mask = torch.eye(batch_size, device=pos0.device, dtype=torch.bool)
+
+        logits_00 = torch.einsum("nc,mc->nm", pos0, neg0_large) / self.temperature
+        logits_01 = torch.einsum("nc,mc->nm", pos0, pos1_large) / self.temperature
+        logits_10 = torch.einsum("nc,mc->nm", pos1, pos0_large) / self.temperature
+        logits_11 = torch.einsum("nc,mc->nm", pos1, neg1_large) / self.temperature
+
+        logits_01 = logits_01[diag_mask].view(batch_size, -1)
+        logits_10 = logits_10[diag_mask].view(batch_size, -1)
+
+        logits_0100 = torch.cat([logits_01, logits_00], dim=1)
+        logits_1011 = torch.cat([logits_10, logits_11], dim=1)
+        logits = torch.cat([logits_0100, logits_1011], dim=0)
+
+        labels = torch.zeros(logits.shape[0], device=device, dtype=torch.long)
+        loss = self.cross_entropy(logits, labels)
+
+        return loss
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, out: Dict[~KT, ~VT]) ‑> Callable[..., Any] +
+
+

Forward pass through Negative mining contrastive Cross-Entropy Loss.

+

Args

+
+
out : Dict
+
Dictionary with positive and negative keys to represent positive selected and negative selected samples.
+
+

Returns

+
+
torch.Tensor
+
Contrastive Cross Entropy Loss value.
+
+

Raises

+
+
AssertionError
+
If positive or negative keys are not specified in the input dictionary.
+
+
+ +Expand source code + +
def forward(self, out: Dict):
+    """
+    Forward pass through Negative mining contrastive Cross-Entropy Loss.
+
+    Args:
+        out (Dict): Dictionary with `positive` and `negative` keys to represent positive selected and negative selected samples.
+
+    Returns:
+        torch.Tensor: Contrastive Cross Entropy Loss value.
+
+    Raises:
+        AssertionError: If `positive` or `negative` keys are not specified in the input dictionary.
+    """
+
+    assert "positive" in out, "`positive` key needs to be specified"
+    assert "negative" in out, "`negative` key needs to be specified"
+
+    pos0, pos1 = out["positive"]
+    neg0, neg1 = out["negative"]
+
+    device = pos0.device
+    batch_size, _ = pos0.shape
+
+    # normalize the output to length 1
+    pos0 = nn.functional.normalize(pos0, dim=1)
+    pos1 = nn.functional.normalize(pos1, dim=1)
+    neg0 = nn.functional.normalize(neg0, dim=1)
+    neg1 = nn.functional.normalize(neg1, dim=1)
+
+    if self.gather_distributed and dist.world_size() > 1:
+        # gather hidden representations from other processes
+        pos0_large = torch.cat(dist.gather(pos0), 0)
+        pos1_large = torch.cat(dist.gather(pos1), 0)
+        neg0_large = torch.cat(dist.gather(neg0), 0)
+        neg1_large = torch.cat(dist.gather(neg1), 0)
+        diag_mask = dist.eye_rank(batch_size, device=pos0.device)
+
+    else:
+        # gather hidden representations from other processes
+        pos0_large = pos0
+        pos1_large = pos1
+        neg0_large = neg0
+        neg1_large = neg1
+        diag_mask = torch.eye(batch_size, device=pos0.device, dtype=torch.bool)
+
+    logits_00 = torch.einsum("nc,mc->nm", pos0, neg0_large) / self.temperature
+    logits_01 = torch.einsum("nc,mc->nm", pos0, pos1_large) / self.temperature
+    logits_10 = torch.einsum("nc,mc->nm", pos1, pos0_large) / self.temperature
+    logits_11 = torch.einsum("nc,mc->nm", pos1, neg1_large) / self.temperature
+
+    logits_01 = logits_01[diag_mask].view(batch_size, -1)
+    logits_10 = logits_10[diag_mask].view(batch_size, -1)
+
+    logits_0100 = torch.cat([logits_01, logits_00], dim=1)
+    logits_1011 = torch.cat([logits_10, logits_11], dim=1)
+    logits = torch.cat([logits_0100, logits_1011], dim=0)
+
+    labels = torch.zeros(logits.shape[0], device=device, dtype=torch.long)
+    loss = self.cross_entropy(logits, labels)
+
+    return loss
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/losses/swav_loss.html b/api_docs/fmcib/ssl/losses/swav_loss.html new file mode 100644 index 0000000..a3790b1 --- /dev/null +++ b/api_docs/fmcib/ssl/losses/swav_loss.html @@ -0,0 +1,247 @@ + + + + + + +fmcib.ssl.losses.swav_loss API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.losses.swav_loss

+
+
+
+ +Expand source code + +
import lightly
+
+
+class SwaVLoss(lightly.loss.swav_loss.SwaVLoss):
+    """
+    A class representing a custom SwaV loss function.
+
+    Attributes:
+        temperature (float): The temperature parameter for the loss calculation. Default is 0.1.
+        sinkhorn_iterations (int): The number of iterations for Sinkhorn algorithm. Default is 3.
+        sinkhorn_epsilon (float): The epsilon parameter for Sinkhorn algorithm. Default is 0.05.
+        sinkhorn_gather_distributed (bool): Whether to gather distributed results for Sinkhorn algorithm. Default is False.
+    """
+
+    def __init__(
+        self,
+        temperature: float = 0.1,
+        sinkhorn_iterations: int = 3,
+        sinkhorn_epsilon: float = 0.05,
+        sinkhorn_gather_distributed: bool = False,
+    ):
+        """
+        Initialize the object with specified parameters.
+
+        Args:
+            temperature (float, optional): The temperature parameter. Default is 0.1.
+            sinkhorn_iterations (int, optional): The number of Sinkhorn iterations. Default is 3.
+            sinkhorn_epsilon (float, optional): The epsilon parameter for Sinkhorn algorithm. Default is 0.05.
+            sinkhorn_gather_distributed (bool, optional): Whether to use distributed computation for Sinkhorn algorithm. Default is False.
+        """
+        super().__init__(temperature, sinkhorn_iterations, sinkhorn_epsilon, sinkhorn_gather_distributed)
+
+    def forward(self, pred):
+        """
+        Perform a forward pass of the model.
+
+        Args:
+            pred (tuple): A tuple containing the predicted outputs for high resolution, low resolution, and queue.
+
+        Returns:
+            The output of the forward pass.
+        """
+        high_resolution_outputs, low_resolution_outputs, queue_outputs = pred
+        return super().forward(high_resolution_outputs, low_resolution_outputs, queue_outputs)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class SwaVLoss +(temperature: float = 0.1, sinkhorn_iterations: int = 3, sinkhorn_epsilon: float = 0.05, sinkhorn_gather_distributed: bool = False) +
+
+

A class representing a custom SwaV loss function.

+

Attributes

+
+
temperature : float
+
The temperature parameter for the loss calculation. Default is 0.1.
+
sinkhorn_iterations : int
+
The number of iterations for Sinkhorn algorithm. Default is 3.
+
sinkhorn_epsilon : float
+
The epsilon parameter for Sinkhorn algorithm. Default is 0.05.
+
sinkhorn_gather_distributed : bool
+
Whether to gather distributed results for Sinkhorn algorithm. Default is False.
+
+

Initialize the object with specified parameters.

+

Args

+
+
temperature : float, optional
+
The temperature parameter. Default is 0.1.
+
sinkhorn_iterations : int, optional
+
The number of Sinkhorn iterations. Default is 3.
+
sinkhorn_epsilon : float, optional
+
The epsilon parameter for Sinkhorn algorithm. Default is 0.05.
+
sinkhorn_gather_distributed : bool, optional
+
Whether to use distributed computation for Sinkhorn algorithm. Default is False.
+
+
+ +Expand source code + +
class SwaVLoss(lightly.loss.swav_loss.SwaVLoss):
+    """
+    A class representing a custom SwaV loss function.
+
+    Attributes:
+        temperature (float): The temperature parameter for the loss calculation. Default is 0.1.
+        sinkhorn_iterations (int): The number of iterations for Sinkhorn algorithm. Default is 3.
+        sinkhorn_epsilon (float): The epsilon parameter for Sinkhorn algorithm. Default is 0.05.
+        sinkhorn_gather_distributed (bool): Whether to gather distributed results for Sinkhorn algorithm. Default is False.
+    """
+
+    def __init__(
+        self,
+        temperature: float = 0.1,
+        sinkhorn_iterations: int = 3,
+        sinkhorn_epsilon: float = 0.05,
+        sinkhorn_gather_distributed: bool = False,
+    ):
+        """
+        Initialize the object with specified parameters.
+
+        Args:
+            temperature (float, optional): The temperature parameter. Default is 0.1.
+            sinkhorn_iterations (int, optional): The number of Sinkhorn iterations. Default is 3.
+            sinkhorn_epsilon (float, optional): The epsilon parameter for Sinkhorn algorithm. Default is 0.05.
+            sinkhorn_gather_distributed (bool, optional): Whether to use distributed computation for Sinkhorn algorithm. Default is False.
+        """
+        super().__init__(temperature, sinkhorn_iterations, sinkhorn_epsilon, sinkhorn_gather_distributed)
+
+    def forward(self, pred):
+        """
+        Perform a forward pass of the model.
+
+        Args:
+            pred (tuple): A tuple containing the predicted outputs for high resolution, low resolution, and queue.
+
+        Returns:
+            The output of the forward pass.
+        """
+        high_resolution_outputs, low_resolution_outputs, queue_outputs = pred
+        return super().forward(high_resolution_outputs, low_resolution_outputs, queue_outputs)
+
+

Ancestors

+
    +
  • lightly.loss.swav_loss.SwaVLoss
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, pred) ‑> Callable[..., Any] +
+
+

Perform a forward pass of the model.

+

Args

+
+
pred : tuple
+
A tuple containing the predicted outputs for high resolution, low resolution, and queue.
+
+

Returns

+

The output of the forward pass.

+
+ +Expand source code + +
def forward(self, pred):
+    """
+    Perform a forward pass of the model.
+
+    Args:
+        pred (tuple): A tuple containing the predicted outputs for high resolution, low resolution, and queue.
+
+    Returns:
+        The output of the forward pass.
+    """
+    high_resolution_outputs, low_resolution_outputs, queue_outputs = pred
+    return super().forward(high_resolution_outputs, low_resolution_outputs, queue_outputs)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/models/exneg_simclr.html b/api_docs/fmcib/ssl/models/exneg_simclr.html new file mode 100644 index 0000000..6029b52 --- /dev/null +++ b/api_docs/fmcib/ssl/models/exneg_simclr.html @@ -0,0 +1,210 @@ + + + + + + +fmcib.ssl.modules.exneg_simclr API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules.exneg_simclr

+
+
+
+ +Expand source code + +
from typing import Dict, Union
+
+import torch
+import torch.nn as nn
+from lightly.models import SimCLR
+
+
+class ExNegSimCLR(SimCLR):
+    """
+    Extended Negative Sampling SimCLR model.
+
+    Args:
+        backbone (nn.Module): The backbone model.
+        num_ftrs (int): Number of features in the bottleneck layer. Default is 32.
+        out_dim (int): Dimension of the output feature embeddings. Default is 128.
+    """
+
+    def __init__(self, backbone: nn.Module, num_ftrs: int = 32, out_dim: int = 128) -> None:
+        print(backbone)
+        super().__init__(backbone, num_ftrs, out_dim)
+
+    def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False):
+        """
+        Forward pass of the ExNegSimCLR model.
+
+        Args:
+            x (Union[Dict, torch.Tensor]): Input data. If a dictionary, it should contain multiple views of the same image.
+            return_features (bool): Whether to return the intermediate feature embeddings. Default is False.
+
+        Returns:
+            out (Dict): Output dictionary containing the forward pass results for each input view.
+        """
+        assert isinstance(x, dict), "Input to forward must be a `dict` for ExNegSimCLR"
+        out = {}
+        for key, value in x.items():
+            if isinstance(value, list):
+                out[key] = super().forward(*value, return_features)
+
+        return out
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class ExNegSimCLR +(backbone: torch.nn.modules.module.Module, num_ftrs: int = 32, out_dim: int = 128) +
+
+

Extended Negative Sampling SimCLR model.

+

Args

+
+
backbone : nn.Module
+
The backbone model.
+
num_ftrs : int
+
Number of features in the bottleneck layer. Default is 32.
+
out_dim : int
+
Dimension of the output feature embeddings. Default is 128.
+
+

Initializes internal Module state, shared by both nn.Module and ScriptModule.

+
+ +Expand source code + +
class ExNegSimCLR(SimCLR):
+    """
+    Extended Negative Sampling SimCLR model.
+
+    Args:
+        backbone (nn.Module): The backbone model.
+        num_ftrs (int): Number of features in the bottleneck layer. Default is 32.
+        out_dim (int): Dimension of the output feature embeddings. Default is 128.
+    """
+
+    def __init__(self, backbone: nn.Module, num_ftrs: int = 32, out_dim: int = 128) -> None:
+        print(backbone)
+        super().__init__(backbone, num_ftrs, out_dim)
+
+    def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False):
+        """
+        Forward pass of the ExNegSimCLR model.
+
+        Args:
+            x (Union[Dict, torch.Tensor]): Input data. If a dictionary, it should contain multiple views of the same image.
+            return_features (bool): Whether to return the intermediate feature embeddings. Default is False.
+
+        Returns:
+            out (Dict): Output dictionary containing the forward pass results for each input view.
+        """
+        assert isinstance(x, dict), "Input to forward must be a `dict` for ExNegSimCLR"
+        out = {}
+        for key, value in x.items():
+            if isinstance(value, list):
+                out[key] = super().forward(*value, return_features)
+
+        return out
+
+

Ancestors

+
    +
  • lightly.models.simclr.SimCLR
  • +
  • torch.nn.modules.module.Module
  • +
+

Methods

+
+
+def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False) ‑> Callable[..., Any] +
+
+

Forward pass of the ExNegSimCLR model.

+

Args

+
+
x : Union[Dict, torch.Tensor]
+
Input data. If a dictionary, it should contain multiple views of the same image.
+
return_features : bool
+
Whether to return the intermediate feature embeddings. Default is False.
+
+

Returns

+

out (Dict): Output dictionary containing the forward pass results for each input view.

+
+ +Expand source code + +
def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False):
+    """
+    Forward pass of the ExNegSimCLR model.
+
+    Args:
+        x (Union[Dict, torch.Tensor]): Input data. If a dictionary, it should contain multiple views of the same image.
+        return_features (bool): Whether to return the intermediate feature embeddings. Default is False.
+
+    Returns:
+        out (Dict): Output dictionary containing the forward pass results for each input view.
+    """
+    assert isinstance(x, dict), "Input to forward must be a `dict` for ExNegSimCLR"
+    out = {}
+    for key, value in x.items():
+        if isinstance(value, list):
+            out[key] = super().forward(*value, return_features)
+
+    return out
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/models/index.html b/api_docs/fmcib/ssl/models/index.html new file mode 100644 index 0000000..6977153 --- /dev/null +++ b/api_docs/fmcib/ssl/models/index.html @@ -0,0 +1,77 @@ + + + + + + +fmcib.ssl.modules API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules

+
+
+
+ +Expand source code + +
from .exneg_simclr import ExNegSimCLR
+from .load_pretrained_resnet import LoadPretrainedResnet3D
+
+
+
+

Sub-modules

+
+
fmcib.ssl.modules.exneg_simclr
+
+
+
+
fmcib.ssl.modules.load_pretrained_resnet
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/models/load_pretrained_resnet.html b/api_docs/fmcib/ssl/models/load_pretrained_resnet.html new file mode 100644 index 0000000..7f6e5de --- /dev/null +++ b/api_docs/fmcib/ssl/models/load_pretrained_resnet.html @@ -0,0 +1,327 @@ + + + + + + +fmcib.ssl.modules.load_pretrained_resnet API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules.load_pretrained_resnet

+
+
+
+ +Expand source code + +
import monai
+import torch
+from loguru import logger
+from monai.networks.nets.resnet import ResNetBottleneck as Bottleneck
+from torch import nn
+
+
+class LoadPretrainedResnet3D(nn.Module):
+    """
+    LoadPretrainedResnet3D is a PyTorch module for loading a pretrained ResNet-3D model with optional heads.
+
+    Args:
+        pretrained (str): Path to the pretrained model file. Default is None.
+        vissl (bool): Whether the pretrained model is from VISSL. Default is False.
+        heads (list): List of integers specifying the number of input and output channels for each head. Default is an empty list.
+
+    Attributes:
+        trunk (nn.Module): The ResNet trunk network.
+        heads (nn.Module): The sequential module containing the heads.
+
+    Methods:
+        forward(x): Forward pass of the model.
+        load(pretrained): Load the pretrained model weights.
+
+    Example:
+        model = LoadPretrainedResnet3D(pretrained='path/to/pretrained_model.pth', vissl=True, heads=[512, 256, 128])
+    """
+
+    def __init__(self, pretrained=None, vissl=False, heads=[]) -> None:
+        super().__init__()
+        self.trunk = monai.networks.nets.resnet.ResNet(
+            block=Bottleneck,
+            layers=(3, 4, 6, 3),
+            block_inplanes=(64, 128, 256, 512),
+            spatial_dims=3,
+            n_input_channels=1,
+            conv1_t_stride=2,
+            conv1_t_size=7,
+            widen_factor=2,
+            feed_forward=False,
+        )
+
+        head_layers = []
+        for idx in range(len(heads) - 1):
+            current_layers = []
+            current_layers.append(nn.Linear(heads[idx], heads[idx + 1], bias=True))
+
+            if idx != (len(heads) - 2):
+                current_layers.append(nn.ReLU(inplace=True))
+
+            head_layers.append(nn.Sequential(*current_layers))
+
+        if len(head_layers):
+            self.heads = nn.Sequential(*head_layers)
+        else:
+            self.heads = nn.Identity()
+
+        if pretrained is not None:
+            self.load(pretrained)
+
+    def forward(self, x: torch.Tensor):
+        out = self.trunk(x)
+        out = self.heads(out)
+        return out
+
+    def load(self, pretrained):
+        pretrained_model = torch.load(pretrained)
+
+        # Load trained trunk
+        trained_trunk = pretrained_model["trunk_state_dict"]
+        msg = self.trunk.load_state_dict(trained_trunk, strict=False)
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        # Load trained heads
+        if "head_state_dict" in pretrained_model:
+            trained_heads = pretrained_model["head_state_dict"]
+
+            try:
+                msg = self.heads.load_state_dict(trained_heads, strict=False)
+            except Exception as e:
+                logger.error(f"Failed to load trained heads with error {e}. This is expected if the models do not match!")
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        logger.info(f"Loaded pretrained model weights \n")
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class LoadPretrainedResnet3D +(pretrained=None, vissl=False, heads=[]) +
+
+

LoadPretrainedResnet3D is a PyTorch module for loading a pretrained ResNet-3D model with optional heads.

+

Args

+
+
pretrained : str
+
Path to the pretrained model file. Default is None.
+
vissl : bool
+
Whether the pretrained model is from VISSL. Default is False.
+
heads : list
+
List of integers specifying the number of input and output channels for each head. Default is an empty list.
+
+

Attributes

+
+
trunk : nn.Module
+
The ResNet trunk network.
+
heads : nn.Module
+
The sequential module containing the heads.
+
+

Methods

+

forward(x): Forward pass of the model. +load(pretrained): Load the pretrained model weights.

+

Example

+

model = LoadPretrainedResnet3D(pretrained='path/to/pretrained_model.pth', vissl=True, heads=[512, 256, 128])

+

Initializes internal Module state, shared by both nn.Module and ScriptModule.

+
+ +Expand source code + +
class LoadPretrainedResnet3D(nn.Module):
+    """
+    LoadPretrainedResnet3D is a PyTorch module for loading a pretrained ResNet-3D model with optional heads.
+
+    Args:
+        pretrained (str): Path to the pretrained model file. Default is None.
+        vissl (bool): Whether the pretrained model is from VISSL. Default is False.
+        heads (list): List of integers specifying the number of input and output channels for each head. Default is an empty list.
+
+    Attributes:
+        trunk (nn.Module): The ResNet trunk network.
+        heads (nn.Module): The sequential module containing the heads.
+
+    Methods:
+        forward(x): Forward pass of the model.
+        load(pretrained): Load the pretrained model weights.
+
+    Example:
+        model = LoadPretrainedResnet3D(pretrained='path/to/pretrained_model.pth', vissl=True, heads=[512, 256, 128])
+    """
+
+    def __init__(self, pretrained=None, vissl=False, heads=[]) -> None:
+        super().__init__()
+        self.trunk = monai.networks.nets.resnet.ResNet(
+            block=Bottleneck,
+            layers=(3, 4, 6, 3),
+            block_inplanes=(64, 128, 256, 512),
+            spatial_dims=3,
+            n_input_channels=1,
+            conv1_t_stride=2,
+            conv1_t_size=7,
+            widen_factor=2,
+            feed_forward=False,
+        )
+
+        head_layers = []
+        for idx in range(len(heads) - 1):
+            current_layers = []
+            current_layers.append(nn.Linear(heads[idx], heads[idx + 1], bias=True))
+
+            if idx != (len(heads) - 2):
+                current_layers.append(nn.ReLU(inplace=True))
+
+            head_layers.append(nn.Sequential(*current_layers))
+
+        if len(head_layers):
+            self.heads = nn.Sequential(*head_layers)
+        else:
+            self.heads = nn.Identity()
+
+        if pretrained is not None:
+            self.load(pretrained)
+
+    def forward(self, x: torch.Tensor):
+        out = self.trunk(x)
+        out = self.heads(out)
+        return out
+
+    def load(self, pretrained):
+        pretrained_model = torch.load(pretrained)
+
+        # Load trained trunk
+        trained_trunk = pretrained_model["trunk_state_dict"]
+        msg = self.trunk.load_state_dict(trained_trunk, strict=False)
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        # Load trained heads
+        if "head_state_dict" in pretrained_model:
+            trained_heads = pretrained_model["head_state_dict"]
+
+            try:
+                msg = self.heads.load_state_dict(trained_heads, strict=False)
+            except Exception as e:
+                logger.error(f"Failed to load trained heads with error {e}. This is expected if the models do not match!")
+            logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+        logger.info(f"Loaded pretrained model weights \n")
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Methods

+
+
+def forward(self, x: torch.Tensor) ‑> Callable[..., Any] +
+
+

Defines the computation performed at every call.

+

Should be overridden by all subclasses.

+
+

Note

+

Although the recipe for forward pass needs to be defined within +this function, one should call the :class:Module instance afterwards +instead of this since the former takes care of running the +registered hooks while the latter silently ignores them.

+
+
+ +Expand source code + +
def forward(self, x: torch.Tensor):
+    out = self.trunk(x)
+    out = self.heads(out)
+    return out
+
+
+
+def load(self, pretrained) +
+
+
+
+ +Expand source code + +
def load(self, pretrained):
+    pretrained_model = torch.load(pretrained)
+
+    # Load trained trunk
+    trained_trunk = pretrained_model["trunk_state_dict"]
+    msg = self.trunk.load_state_dict(trained_trunk, strict=False)
+    logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+    # Load trained heads
+    if "head_state_dict" in pretrained_model:
+        trained_heads = pretrained_model["head_state_dict"]
+
+        try:
+            msg = self.heads.load_state_dict(trained_heads, strict=False)
+        except Exception as e:
+            logger.error(f"Failed to load trained heads with error {e}. This is expected if the models do not match!")
+        logger.warning(f"Missing keys: {msg[0]} and unexpected keys: {msg[1]}")
+
+    logger.info(f"Loaded pretrained model weights \n")
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/modules/exneg_simclr.html b/api_docs/fmcib/ssl/modules/exneg_simclr.html new file mode 100644 index 0000000..3683cfa --- /dev/null +++ b/api_docs/fmcib/ssl/modules/exneg_simclr.html @@ -0,0 +1,275 @@ + + + + + + +fmcib.ssl.modules.exneg_simclr API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules.exneg_simclr

+
+
+
+ +Expand source code + +
from typing import Dict, Union
+
+import torch
+import torch.nn as nn
+from lightly.models import SimCLR as lightly_SimCLR
+from lightly.models.modules import SimCLRProjectionHead
+
+
+class ExNegSimCLR(lightly_SimCLR):
+    """
+    Extended Negative Sampling SimCLR model.
+
+    Args:
+        backbone (nn.Module): The backbone model.
+        num_ftrs (int): Number of features in the bottleneck layer. Default is 32.
+        out_dim (int): Dimension of the output feature embeddings. Default is 128.
+    """
+
+    def __init__(self, backbone: nn.Module, num_ftrs: int = 32, out_dim: int = 128) -> None:
+        """
+        Initialize the object.
+
+        Args:
+            backbone (nn.Module): The backbone neural network.
+            num_ftrs (int, optional): The number of input features for the projection head. Default is 32.
+            out_dim (int, optional): The output dimension of the projection head. Default is 128.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__(backbone, num_ftrs, out_dim)
+        # replace the projection head with a new one
+        self.projection_head = SimCLRProjectionHead(num_ftrs, num_ftrs // 2, out_dim, batch_norm=False)
+
+    def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False):
+        """
+        Forward pass of the ExNegSimCLR model.
+
+        Args:
+            x (Union[Dict, torch.Tensor]): Input data. If a dictionary, it should contain multiple views of the same image.
+            return_features (bool): Whether to return the intermediate feature embeddings. Default is False.
+
+        Returns:
+            Dict: Output dictionary containing the forward pass results for each input view.
+        """
+        assert isinstance(x, dict), "Input to forward must be a `dict` for ExNegSimCLR"
+        out = {}
+        for key, value in x.items():
+            if isinstance(value, list):
+                out[key] = super().forward(*value, return_features)
+
+        return out
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class ExNegSimCLR +(backbone: torch.nn.modules.module.Module, num_ftrs: int = 32, out_dim: int = 128) +
+
+

Extended Negative Sampling SimCLR model.

+

Args

+
+
backbone : nn.Module
+
The backbone model.
+
num_ftrs : int
+
Number of features in the bottleneck layer. Default is 32.
+
out_dim : int
+
Dimension of the output feature embeddings. Default is 128.
+
+

Initialize the object.

+

Args

+
+
backbone : nn.Module
+
The backbone neural network.
+
num_ftrs : int, optional
+
The number of input features for the projection head. Default is 32.
+
out_dim : int, optional
+
The output dimension of the projection head. Default is 128.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
class ExNegSimCLR(lightly_SimCLR):
+    """
+    Extended Negative Sampling SimCLR model.
+
+    Args:
+        backbone (nn.Module): The backbone model.
+        num_ftrs (int): Number of features in the bottleneck layer. Default is 32.
+        out_dim (int): Dimension of the output feature embeddings. Default is 128.
+    """
+
+    def __init__(self, backbone: nn.Module, num_ftrs: int = 32, out_dim: int = 128) -> None:
+        """
+        Initialize the object.
+
+        Args:
+            backbone (nn.Module): The backbone neural network.
+            num_ftrs (int, optional): The number of input features for the projection head. Default is 32.
+            out_dim (int, optional): The output dimension of the projection head. Default is 128.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__(backbone, num_ftrs, out_dim)
+        # replace the projection head with a new one
+        self.projection_head = SimCLRProjectionHead(num_ftrs, num_ftrs // 2, out_dim, batch_norm=False)
+
+    def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False):
+        """
+        Forward pass of the ExNegSimCLR model.
+
+        Args:
+            x (Union[Dict, torch.Tensor]): Input data. If a dictionary, it should contain multiple views of the same image.
+            return_features (bool): Whether to return the intermediate feature embeddings. Default is False.
+
+        Returns:
+            Dict: Output dictionary containing the forward pass results for each input view.
+        """
+        assert isinstance(x, dict), "Input to forward must be a `dict` for ExNegSimCLR"
+        out = {}
+        for key, value in x.items():
+            if isinstance(value, list):
+                out[key] = super().forward(*value, return_features)
+
+        return out
+
+

Ancestors

+
    +
  • lightly.models.simclr.SimCLR
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x: Union[Dict[~KT, ~VT], torch.Tensor], return_features: bool = False) ‑> Callable[..., Any] +
+
+

Forward pass of the ExNegSimCLR model.

+

Args

+
+
x : Union[Dict, torch.Tensor]
+
Input data. If a dictionary, it should contain multiple views of the same image.
+
return_features : bool
+
Whether to return the intermediate feature embeddings. Default is False.
+
+

Returns

+
+
Dict
+
Output dictionary containing the forward pass results for each input view.
+
+
+ +Expand source code + +
def forward(self, x: Union[Dict, torch.Tensor], return_features: bool = False):
+    """
+    Forward pass of the ExNegSimCLR model.
+
+    Args:
+        x (Union[Dict, torch.Tensor]): Input data. If a dictionary, it should contain multiple views of the same image.
+        return_features (bool): Whether to return the intermediate feature embeddings. Default is False.
+
+    Returns:
+        Dict: Output dictionary containing the forward pass results for each input view.
+    """
+    assert isinstance(x, dict), "Input to forward must be a `dict` for ExNegSimCLR"
+    out = {}
+    for key, value in x.items():
+        if isinstance(value, list):
+            out[key] = super().forward(*value, return_features)
+
+    return out
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/modules/index.html b/api_docs/fmcib/ssl/modules/index.html new file mode 100644 index 0000000..8b1157e --- /dev/null +++ b/api_docs/fmcib/ssl/modules/index.html @@ -0,0 +1,89 @@ + + + + + + +fmcib.ssl.modules API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules

+
+
+
+ +Expand source code + +
from .exneg_simclr import ExNegSimCLR
+from .nnclr import NNCLR
+from .simclr import SimCLR
+from .swav import SwaV
+
+
+
+

Sub-modules

+
+
fmcib.ssl.modules.exneg_simclr
+
+
+
+
fmcib.ssl.modules.nnclr
+
+
+
+
fmcib.ssl.modules.simclr
+
+
+
+
fmcib.ssl.modules.swav
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/modules/nnclr.html b/api_docs/fmcib/ssl/modules/nnclr.html new file mode 100644 index 0000000..8bba380 --- /dev/null +++ b/api_docs/fmcib/ssl/modules/nnclr.html @@ -0,0 +1,340 @@ + + + + + + +fmcib.ssl.modules.nnclr API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules.nnclr

+
+
+
+ +Expand source code + +
from typing import Any, Dict, List, Optional, Union
+
+import torch
+import torch.nn as nn
+from lightly.models.modules import NNCLRPredictionHead, NNCLRProjectionHead, NNMemoryBankModule
+
+
+class NNCLR(nn.Module):
+    """
+    Taken largely from https://github.com/lightly-ai/lightly/blob/master/lightly/models/nnclr.py
+    """
+
+    def __init__(
+        self,
+        backbone: nn.Module,
+        num_ftrs: int = 4096,
+        proj_hidden_dim: int = 4096,
+        pred_hidden_dim: int = 4096,
+        out_dim: int = 256,
+        memory_bank_size: int = 4096,
+    ) -> None:
+        """
+        Initialize the NNCLR model.
+
+        Args:
+            backbone (nn.Module): The backbone neural network model.
+            num_ftrs (int, optional): The number of features in the backbone output. Default is 4096.
+            proj_hidden_dim (int, optional): The hidden dimension of the projection head. Default is 4096.
+            pred_hidden_dim (int, optional): The hidden dimension of the prediction head. Default is 4096.
+            out_dim (int, optional): The output dimension of the model. Default is 256.
+            memory_bank_size (int, optional): The size of the memory bank module. Default is 4096.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__()
+        self.backbone = backbone
+        self.projection_head = NNCLRProjectionHead(num_ftrs, proj_hidden_dim, out_dim)
+        self.prediction_head = NNCLRPredictionHead(out_dim, pred_hidden_dim, out_dim)
+        self.memory_bank = NNMemoryBankModule(memory_bank_size)
+
+    def forward(
+        self,
+        x: List[torch.Tensor],
+        get_nearest_neighbor: bool = True,
+    ):
+        # forward pass of first input x0
+        """
+        Forward pass of the model.
+
+        Args:
+            x (List[torch.Tensor]): A list containing two input tensors.
+            get_nearest_neighbor (bool, optional): Whether to compute and update the nearest neighbor vectors.
+                Defaults to True.
+
+        Returns:
+            Tuple[Tuple[torch.Tensor, torch.Tensor], Tuple[torch.Tensor, torch.Tensor]]:
+                A tuple containing two tuples. The inner tuples contain the projection and prediction vectors
+                for each input tensor.
+        """
+        x0, x1 = x
+        f0 = self.backbone(x0).flatten(start_dim=1)
+        z0 = self.projection_head(f0)
+        p0 = self.prediction_head(z0)
+
+        if get_nearest_neighbor:
+            z0 = self.memory_bank(z0, update=False)
+
+        # forward pass of second input x1
+        f1 = self.backbone(x1).flatten(start_dim=1)
+        z1 = self.projection_head(f1)
+        p1 = self.prediction_head(z1)
+
+        if get_nearest_neighbor:
+            z1 = self.memory_bank(z1, update=True)
+
+        return (z0, p0), (z1, p1)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class NNCLR +(backbone: torch.nn.modules.module.Module, num_ftrs: int = 4096, proj_hidden_dim: int = 4096, pred_hidden_dim: int = 4096, out_dim: int = 256, memory_bank_size: int = 4096) +
+
+

Taken largely from https://github.com/lightly-ai/lightly/blob/master/lightly/models/nnclr.py

+

Initialize the NNCLR model.

+

Args

+
+
backbone : nn.Module
+
The backbone neural network model.
+
num_ftrs : int, optional
+
The number of features in the backbone output. Default is 4096.
+
proj_hidden_dim : int, optional
+
The hidden dimension of the projection head. Default is 4096.
+
pred_hidden_dim : int, optional
+
The hidden dimension of the prediction head. Default is 4096.
+
out_dim : int, optional
+
The output dimension of the model. Default is 256.
+
memory_bank_size : int, optional
+
The size of the memory bank module. Default is 4096.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
class NNCLR(nn.Module):
+    """
+    Taken largely from https://github.com/lightly-ai/lightly/blob/master/lightly/models/nnclr.py
+    """
+
+    def __init__(
+        self,
+        backbone: nn.Module,
+        num_ftrs: int = 4096,
+        proj_hidden_dim: int = 4096,
+        pred_hidden_dim: int = 4096,
+        out_dim: int = 256,
+        memory_bank_size: int = 4096,
+    ) -> None:
+        """
+        Initialize the NNCLR model.
+
+        Args:
+            backbone (nn.Module): The backbone neural network model.
+            num_ftrs (int, optional): The number of features in the backbone output. Default is 4096.
+            proj_hidden_dim (int, optional): The hidden dimension of the projection head. Default is 4096.
+            pred_hidden_dim (int, optional): The hidden dimension of the prediction head. Default is 4096.
+            out_dim (int, optional): The output dimension of the model. Default is 256.
+            memory_bank_size (int, optional): The size of the memory bank module. Default is 4096.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__()
+        self.backbone = backbone
+        self.projection_head = NNCLRProjectionHead(num_ftrs, proj_hidden_dim, out_dim)
+        self.prediction_head = NNCLRPredictionHead(out_dim, pred_hidden_dim, out_dim)
+        self.memory_bank = NNMemoryBankModule(memory_bank_size)
+
+    def forward(
+        self,
+        x: List[torch.Tensor],
+        get_nearest_neighbor: bool = True,
+    ):
+        # forward pass of first input x0
+        """
+        Forward pass of the model.
+
+        Args:
+            x (List[torch.Tensor]): A list containing two input tensors.
+            get_nearest_neighbor (bool, optional): Whether to compute and update the nearest neighbor vectors.
+                Defaults to True.
+
+        Returns:
+            Tuple[Tuple[torch.Tensor, torch.Tensor], Tuple[torch.Tensor, torch.Tensor]]:
+                A tuple containing two tuples. The inner tuples contain the projection and prediction vectors
+                for each input tensor.
+        """
+        x0, x1 = x
+        f0 = self.backbone(x0).flatten(start_dim=1)
+        z0 = self.projection_head(f0)
+        p0 = self.prediction_head(z0)
+
+        if get_nearest_neighbor:
+            z0 = self.memory_bank(z0, update=False)
+
+        # forward pass of second input x1
+        f1 = self.backbone(x1).flatten(start_dim=1)
+        z1 = self.projection_head(f1)
+        p1 = self.prediction_head(z1)
+
+        if get_nearest_neighbor:
+            z1 = self.memory_bank(z1, update=True)
+
+        return (z0, p0), (z1, p1)
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x: List[torch.Tensor], get_nearest_neighbor: bool = True) ‑> Callable[..., Any] +
+
+

Forward pass of the model.

+

Args

+
+
x : List[torch.Tensor]
+
A list containing two input tensors.
+
get_nearest_neighbor : bool, optional
+
Whether to compute and update the nearest neighbor vectors. +Defaults to True.
+
+

Returns

+

Tuple[Tuple[torch.Tensor, torch.Tensor], Tuple[torch.Tensor, torch.Tensor]]: +A tuple containing two tuples. The inner tuples contain the projection and prediction vectors +for each input tensor.

+
+ +Expand source code + +
def forward(
+    self,
+    x: List[torch.Tensor],
+    get_nearest_neighbor: bool = True,
+):
+    # forward pass of first input x0
+    """
+    Forward pass of the model.
+
+    Args:
+        x (List[torch.Tensor]): A list containing two input tensors.
+        get_nearest_neighbor (bool, optional): Whether to compute and update the nearest neighbor vectors.
+            Defaults to True.
+
+    Returns:
+        Tuple[Tuple[torch.Tensor, torch.Tensor], Tuple[torch.Tensor, torch.Tensor]]:
+            A tuple containing two tuples. The inner tuples contain the projection and prediction vectors
+            for each input tensor.
+    """
+    x0, x1 = x
+    f0 = self.backbone(x0).flatten(start_dim=1)
+    z0 = self.projection_head(f0)
+    p0 = self.prediction_head(z0)
+
+    if get_nearest_neighbor:
+        z0 = self.memory_bank(z0, update=False)
+
+    # forward pass of second input x1
+    f1 = self.backbone(x1).flatten(start_dim=1)
+    z1 = self.projection_head(f1)
+    p1 = self.prediction_head(z1)
+
+    if get_nearest_neighbor:
+        z1 = self.memory_bank(z1, update=True)
+
+    return (z0, p0), (z1, p1)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/modules/simclr.html b/api_docs/fmcib/ssl/modules/simclr.html new file mode 100644 index 0000000..60e730e --- /dev/null +++ b/api_docs/fmcib/ssl/modules/simclr.html @@ -0,0 +1,272 @@ + + + + + + +fmcib.ssl.modules.simclr API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules.simclr

+
+
+
+ +Expand source code + +
import torch
+import torch.nn as nn
+from lightly.models import SimCLR as lightly_SimCLR
+from lightly.models.modules import SimCLRProjectionHead
+
+
+class SimCLR(lightly_SimCLR):
+    """
+    A class representing a SimCLR model.
+
+    Attributes:
+        backbone (nn.Module): The backbone model used in the SimCLR model.
+        num_ftrs (int): The number of output features from the backbone model.
+        out_dim (int): The dimension of the output representations.
+        projection_head (SimCLRProjectionHead): The projection head used for projection head training.
+    """
+
+    def __init__(self, backbone: nn.Module, num_ftrs: int = 32, out_dim: int = 128):
+        """
+        Initialize the object with a backbone network, number of features, and output dimension.
+
+        Args:
+            backbone (nn.Module): The backbone network.
+            num_ftrs (int): The number of features. Default is 32.
+            out_dim (int): The output dimension. Default is 128.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__(backbone, num_ftrs, out_dim)
+        self.projection_head = SimCLRProjectionHead(num_ftrs, num_ftrs // 2, out_dim, batch_norm=False)
+
+    def forward(self, x, return_features=False):
+        """
+        Perform a forward pass of the neural network.
+
+        Args:
+            x (tuple): A tuple of input data. Each element of the tuple represents a different input.
+            return_features (bool, optional): Whether to return the intermediate features. Default is False.
+
+        Returns:
+            torch.Tensor or tuple: The output of the forward pass. If return_features is False, a single tensor is returned.
+                If return_features is True, a tuple is returned consisting of the output tensor and the intermediate features.
+
+        Raises:
+            None.
+        """
+        return super().forward(*x, return_features)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class SimCLR +(backbone: torch.nn.modules.module.Module, num_ftrs: int = 32, out_dim: int = 128) +
+
+

A class representing a SimCLR model.

+

Attributes

+
+
backbone : nn.Module
+
The backbone model used in the SimCLR model.
+
num_ftrs : int
+
The number of output features from the backbone model.
+
out_dim : int
+
The dimension of the output representations.
+
projection_head : SimCLRProjectionHead
+
The projection head used for projection head training.
+
+

Initialize the object with a backbone network, number of features, and output dimension.

+

Args

+
+
backbone : nn.Module
+
The backbone network.
+
num_ftrs : int
+
The number of features. Default is 32.
+
out_dim : int
+
The output dimension. Default is 128.
+
+

Returns

+

None

+

Raises

+

None

+
+ +Expand source code + +
class SimCLR(lightly_SimCLR):
+    """
+    A class representing a SimCLR model.
+
+    Attributes:
+        backbone (nn.Module): The backbone model used in the SimCLR model.
+        num_ftrs (int): The number of output features from the backbone model.
+        out_dim (int): The dimension of the output representations.
+        projection_head (SimCLRProjectionHead): The projection head used for projection head training.
+    """
+
+    def __init__(self, backbone: nn.Module, num_ftrs: int = 32, out_dim: int = 128):
+        """
+        Initialize the object with a backbone network, number of features, and output dimension.
+
+        Args:
+            backbone (nn.Module): The backbone network.
+            num_ftrs (int): The number of features. Default is 32.
+            out_dim (int): The output dimension. Default is 128.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        super().__init__(backbone, num_ftrs, out_dim)
+        self.projection_head = SimCLRProjectionHead(num_ftrs, num_ftrs // 2, out_dim, batch_norm=False)
+
+    def forward(self, x, return_features=False):
+        """
+        Perform a forward pass of the neural network.
+
+        Args:
+            x (tuple): A tuple of input data. Each element of the tuple represents a different input.
+            return_features (bool, optional): Whether to return the intermediate features. Default is False.
+
+        Returns:
+            torch.Tensor or tuple: The output of the forward pass. If return_features is False, a single tensor is returned.
+                If return_features is True, a tuple is returned consisting of the output tensor and the intermediate features.
+
+        Raises:
+            None.
+        """
+        return super().forward(*x, return_features)
+
+

Ancestors

+
    +
  • lightly.models.simclr.SimCLR
  • +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, x, return_features=False) ‑> Callable[..., Any] +
+
+

Perform a forward pass of the neural network.

+

Args

+
+
x : tuple
+
A tuple of input data. Each element of the tuple represents a different input.
+
return_features : bool, optional
+
Whether to return the intermediate features. Default is False.
+
+

Returns

+
+
torch.Tensor or tuple
+
The output of the forward pass. If return_features is False, a single tensor is returned. +If return_features is True, a tuple is returned consisting of the output tensor and the intermediate features.
+
+

Raises

+

None.

+
+ +Expand source code + +
def forward(self, x, return_features=False):
+    """
+    Perform a forward pass of the neural network.
+
+    Args:
+        x (tuple): A tuple of input data. Each element of the tuple represents a different input.
+        return_features (bool, optional): Whether to return the intermediate features. Default is False.
+
+    Returns:
+        torch.Tensor or tuple: The output of the forward pass. If return_features is False, a single tensor is returned.
+            If return_features is True, a tuple is returned consisting of the output tensor and the intermediate features.
+
+    Raises:
+        None.
+    """
+    return super().forward(*x, return_features)
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/modules/swav.html b/api_docs/fmcib/ssl/modules/swav.html new file mode 100644 index 0000000..43daf71 --- /dev/null +++ b/api_docs/fmcib/ssl/modules/swav.html @@ -0,0 +1,561 @@ + + + + + + +fmcib.ssl.modules.swav API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.modules.swav

+
+
+
+ +Expand source code + +
import torch
+from lightly.loss.memory_bank import MemoryBankModule
+from lightly.models.modules import SwaVProjectionHead, SwaVPrototypes
+from torch import nn
+
+torch.set_float32_matmul_precision("medium")
+
+
+class SwaV(nn.Module):
+    """
+    Implements the SwAV (Swapping Assignments between multiple Views of the same image) model.
+
+    Args:
+        backbone (nn.Module): CNN backbone for feature extraction.
+        num_ftrs (int): Number of input features for the projection head.
+        out_dim (int): Output dimension for the projection head.
+        n_prototypes (int): Number of prototypes to compute.
+        n_queues (int): Number of memory banks (queues). Should be equal to the number of high-resolution inputs.
+        queue_length (int, optional): Length of the memory bank. Defaults to 0.
+        start_queue_at_epoch (int, optional): Number of the epoch at which SwaV starts using the queued features. Defaults to 0.
+        n_steps_frozen_prototypes (int, optional): Number of steps during which we keep the prototypes fixed. Defaults to 0.
+    """
+
+    def __init__(
+        self,
+        backbone: nn.Module,
+        num_ftrs: int,
+        out_dim: int,
+        n_prototypes: int,
+        n_queues: int,
+        queue_length: int = 0,
+        start_queue_at_epoch: int = 0,
+        n_steps_frozen_prototypes: int = 0,
+    ):
+        """
+        Initialize a SwaV model.
+
+        Args:
+            backbone (nn.Module): The backbone model.
+            num_ftrs (int): The number of input features.
+            out_dim (int): The dimension of the output.
+            n_prototypes (int): The number of prototypes.
+            n_queues (int): The number of queues.
+            queue_length (int, optional): The length of the queue. Default is 0.
+            start_queue_at_epoch (int, optional): The epoch at which to start using the queue. Default is 0.
+            n_steps_frozen_prototypes (int, optional): The number of steps to freeze prototypes. Default is 0.
+
+        Returns:
+            None
+
+        Attributes:
+            backbone (nn.Module): The backbone model.
+            projection_head (SwaVProjectionHead): The projection head.
+            prototypes (SwaVPrototypes): The prototypes.
+            queues (nn.ModuleList, optional): The queues. If n_queues > 0, this will be initialized with MemoryBankModules.
+            queue_length (int, optional): The length of the queue.
+            num_features_queued (int): The number of features queued.
+            start_queue_at_epoch (int): The epoch at which to start using the queue.
+        """
+        super().__init__()
+        # Backbone for feature extraction
+        self.backbone = backbone
+        # Projection head to project features to a lower-dimensional space
+        self.projection_head = SwaVProjectionHead(num_ftrs, num_ftrs // 2, out_dim)
+        # SwAV Prototypes module for prototype computation
+        self.prototypes = SwaVPrototypes(out_dim, n_prototypes, n_steps_frozen_prototypes)
+
+        self.queues = None
+        if n_queues > 0:
+            # Initialize the memory banks (queues)
+            self.queues = nn.ModuleList([MemoryBankModule(size=queue_length) for _ in range(n_queues)])
+            self.queue_length = queue_length
+            self.num_features_queued = 0
+            self.start_queue_at_epoch = start_queue_at_epoch
+
+    def forward(self, input, epoch=None, step=None):
+        """
+        Performs the forward pass for the SwAV model.
+
+        Args:
+            input (Tuple[List[Tensor], List[Tensor]]): A tuple consisting of a list of high-resolution input images
+                and a list of low-resolution input images.
+            epoch (int, optional): Current training epoch. Required if `start_queue_at_epoch` > 0. Defaults to None.
+            step (int, optional): Current training step. Required if `n_steps_frozen_prototypes` > 0. Defaults to None.
+
+        Returns:
+            Tuple[List[Tensor], List[Tensor], List[Tensor]]: A tuple containing lists of high-resolution prototypes,
+                low-resolution prototypes, and queue prototypes.
+        """
+        high_resolution, low_resolution = input
+
+        # Normalize prototypes
+        self.prototypes.normalize()
+
+        # Compute high and low resolution features
+        high_resolution_features = [self._subforward(x) for x in high_resolution]
+        low_resolution_features = [self._subforward(x) for x in low_resolution]
+
+        # Compute prototypes for high and low resolution features
+        high_resolution_prototypes = [self.prototypes(x, epoch) for x in high_resolution_features]
+        low_resolution_prototypes = [self.prototypes(x, epoch) for x in low_resolution_features]
+        # Compute prototypes for queued features
+        queue_prototypes = self._get_queue_prototypes(high_resolution_features, epoch)
+
+        return high_resolution_prototypes, low_resolution_prototypes, queue_prototypes
+
+    def _subforward(self, input):
+        """
+        Subforward pass to compute features for the input image.
+
+        Args:
+            input (Tensor): Input image tensor.
+
+        Returns:
+            Tensor: L2-normalized feature tensor.
+        """
+        # Extract features using the backbone
+        features = self.backbone(input).flatten(start_dim=1)
+        # Project features using the projection head
+        features = self.projection_head(features)
+        # L2-normalize features
+        features = nn.functional.normalize(features, dim=1, p=2)
+        return features
+
+    @torch.no_grad()
+    def _get_queue_prototypes(self, high_resolution_features, epoch=None):
+        """
+        Compute the queue prototypes for the given high-resolution features.
+
+        Args:
+            high_resolution_features (List[Tensor]): List of high-resolution feature tensors.
+            epoch (int, optional): Current epoch number. Required if `start_queue_at_epoch` > 0. Defaults to None.
+
+        Returns:
+            List[Tensor] or None: List of queue prototype tensors if conditions are met, otherwise None.
+        """
+        if self.queues is None:
+            return None
+
+        if len(high_resolution_features) != len(self.queues):
+            raise ValueError(
+                f"The number of queues ({len(self.queues)}) should be equal to the number of high "
+                f"resolution inputs ({len(high_resolution_features)}). Set `n_queues` accordingly."
+            )
+
+        # Get the queue features
+        queue_features = []
+        for i in range(len(self.queues)):
+            _, features = self.queues[i](high_resolution_features[i], update=True)
+            # Queue features are in (num_ftrs X queue_length) shape, while the high res
+            # features are in (batch_size X num_ftrs). Swap the axes for interoperability.
+            features = torch.permute(features, (1, 0))
+            queue_features.append(features)
+
+        # Do not return queue prototypes if not enough features have been queued
+        self.num_features_queued += high_resolution_features[0].shape[0]
+        if self.num_features_queued < self.queue_length:
+            return None
+
+        # If loss calculation with queue prototypes starts at a later epoch,
+        # just queue the features and return None instead of queue prototypes.
+        if self.start_queue_at_epoch > 0:
+            if epoch is None:
+                raise ValueError(
+                    "The epoch number must be passed to the `forward()` " "method if `start_queue_at_epoch` is greater than 0."
+                )
+            if epoch < self.start_queue_at_epoch:
+                return None
+
+        # Assign prototypes
+        queue_prototypes = [self.prototypes(x, epoch) for x in queue_features]
+        # Do not return queue prototypes if not enough features have been queued
+        return queue_prototypes
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class SwaV +(backbone: torch.nn.modules.module.Module, num_ftrs: int, out_dim: int, n_prototypes: int, n_queues: int, queue_length: int = 0, start_queue_at_epoch: int = 0, n_steps_frozen_prototypes: int = 0) +
+
+

Implements the SwAV (Swapping Assignments between multiple Views of the same image) model.

+

Args

+
+
backbone : nn.Module
+
CNN backbone for feature extraction.
+
num_ftrs : int
+
Number of input features for the projection head.
+
out_dim : int
+
Output dimension for the projection head.
+
n_prototypes : int
+
Number of prototypes to compute.
+
n_queues : int
+
Number of memory banks (queues). Should be equal to the number of high-resolution inputs.
+
queue_length : int, optional
+
Length of the memory bank. Defaults to 0.
+
start_queue_at_epoch : int, optional
+
Number of the epoch at which SwaV starts using the queued features. Defaults to 0.
+
n_steps_frozen_prototypes : int, optional
+
Number of steps during which we keep the prototypes fixed. Defaults to 0.
+
+

Initialize a SwaV model.

+

Args

+
+
backbone : nn.Module
+
The backbone model.
+
num_ftrs : int
+
The number of input features.
+
out_dim : int
+
The dimension of the output.
+
n_prototypes : int
+
The number of prototypes.
+
n_queues : int
+
The number of queues.
+
queue_length : int, optional
+
The length of the queue. Default is 0.
+
start_queue_at_epoch : int, optional
+
The epoch at which to start using the queue. Default is 0.
+
n_steps_frozen_prototypes : int, optional
+
The number of steps to freeze prototypes. Default is 0.
+
+

Returns

+

None

+

Attributes

+
+
backbone : nn.Module
+
The backbone model.
+
projection_head : SwaVProjectionHead
+
The projection head.
+
prototypes : SwaVPrototypes
+
The prototypes.
+
queues : nn.ModuleList, optional
+
The queues. If n_queues > 0, this will be initialized with MemoryBankModules.
+
queue_length : int, optional
+
The length of the queue.
+
num_features_queued : int
+
The number of features queued.
+
start_queue_at_epoch : int
+
The epoch at which to start using the queue.
+
+
+ +Expand source code + +
class SwaV(nn.Module):
+    """
+    Implements the SwAV (Swapping Assignments between multiple Views of the same image) model.
+
+    Args:
+        backbone (nn.Module): CNN backbone for feature extraction.
+        num_ftrs (int): Number of input features for the projection head.
+        out_dim (int): Output dimension for the projection head.
+        n_prototypes (int): Number of prototypes to compute.
+        n_queues (int): Number of memory banks (queues). Should be equal to the number of high-resolution inputs.
+        queue_length (int, optional): Length of the memory bank. Defaults to 0.
+        start_queue_at_epoch (int, optional): Number of the epoch at which SwaV starts using the queued features. Defaults to 0.
+        n_steps_frozen_prototypes (int, optional): Number of steps during which we keep the prototypes fixed. Defaults to 0.
+    """
+
+    def __init__(
+        self,
+        backbone: nn.Module,
+        num_ftrs: int,
+        out_dim: int,
+        n_prototypes: int,
+        n_queues: int,
+        queue_length: int = 0,
+        start_queue_at_epoch: int = 0,
+        n_steps_frozen_prototypes: int = 0,
+    ):
+        """
+        Initialize a SwaV model.
+
+        Args:
+            backbone (nn.Module): The backbone model.
+            num_ftrs (int): The number of input features.
+            out_dim (int): The dimension of the output.
+            n_prototypes (int): The number of prototypes.
+            n_queues (int): The number of queues.
+            queue_length (int, optional): The length of the queue. Default is 0.
+            start_queue_at_epoch (int, optional): The epoch at which to start using the queue. Default is 0.
+            n_steps_frozen_prototypes (int, optional): The number of steps to freeze prototypes. Default is 0.
+
+        Returns:
+            None
+
+        Attributes:
+            backbone (nn.Module): The backbone model.
+            projection_head (SwaVProjectionHead): The projection head.
+            prototypes (SwaVPrototypes): The prototypes.
+            queues (nn.ModuleList, optional): The queues. If n_queues > 0, this will be initialized with MemoryBankModules.
+            queue_length (int, optional): The length of the queue.
+            num_features_queued (int): The number of features queued.
+            start_queue_at_epoch (int): The epoch at which to start using the queue.
+        """
+        super().__init__()
+        # Backbone for feature extraction
+        self.backbone = backbone
+        # Projection head to project features to a lower-dimensional space
+        self.projection_head = SwaVProjectionHead(num_ftrs, num_ftrs // 2, out_dim)
+        # SwAV Prototypes module for prototype computation
+        self.prototypes = SwaVPrototypes(out_dim, n_prototypes, n_steps_frozen_prototypes)
+
+        self.queues = None
+        if n_queues > 0:
+            # Initialize the memory banks (queues)
+            self.queues = nn.ModuleList([MemoryBankModule(size=queue_length) for _ in range(n_queues)])
+            self.queue_length = queue_length
+            self.num_features_queued = 0
+            self.start_queue_at_epoch = start_queue_at_epoch
+
+    def forward(self, input, epoch=None, step=None):
+        """
+        Performs the forward pass for the SwAV model.
+
+        Args:
+            input (Tuple[List[Tensor], List[Tensor]]): A tuple consisting of a list of high-resolution input images
+                and a list of low-resolution input images.
+            epoch (int, optional): Current training epoch. Required if `start_queue_at_epoch` > 0. Defaults to None.
+            step (int, optional): Current training step. Required if `n_steps_frozen_prototypes` > 0. Defaults to None.
+
+        Returns:
+            Tuple[List[Tensor], List[Tensor], List[Tensor]]: A tuple containing lists of high-resolution prototypes,
+                low-resolution prototypes, and queue prototypes.
+        """
+        high_resolution, low_resolution = input
+
+        # Normalize prototypes
+        self.prototypes.normalize()
+
+        # Compute high and low resolution features
+        high_resolution_features = [self._subforward(x) for x in high_resolution]
+        low_resolution_features = [self._subforward(x) for x in low_resolution]
+
+        # Compute prototypes for high and low resolution features
+        high_resolution_prototypes = [self.prototypes(x, epoch) for x in high_resolution_features]
+        low_resolution_prototypes = [self.prototypes(x, epoch) for x in low_resolution_features]
+        # Compute prototypes for queued features
+        queue_prototypes = self._get_queue_prototypes(high_resolution_features, epoch)
+
+        return high_resolution_prototypes, low_resolution_prototypes, queue_prototypes
+
+    def _subforward(self, input):
+        """
+        Subforward pass to compute features for the input image.
+
+        Args:
+            input (Tensor): Input image tensor.
+
+        Returns:
+            Tensor: L2-normalized feature tensor.
+        """
+        # Extract features using the backbone
+        features = self.backbone(input).flatten(start_dim=1)
+        # Project features using the projection head
+        features = self.projection_head(features)
+        # L2-normalize features
+        features = nn.functional.normalize(features, dim=1, p=2)
+        return features
+
+    @torch.no_grad()
+    def _get_queue_prototypes(self, high_resolution_features, epoch=None):
+        """
+        Compute the queue prototypes for the given high-resolution features.
+
+        Args:
+            high_resolution_features (List[Tensor]): List of high-resolution feature tensors.
+            epoch (int, optional): Current epoch number. Required if `start_queue_at_epoch` > 0. Defaults to None.
+
+        Returns:
+            List[Tensor] or None: List of queue prototype tensors if conditions are met, otherwise None.
+        """
+        if self.queues is None:
+            return None
+
+        if len(high_resolution_features) != len(self.queues):
+            raise ValueError(
+                f"The number of queues ({len(self.queues)}) should be equal to the number of high "
+                f"resolution inputs ({len(high_resolution_features)}). Set `n_queues` accordingly."
+            )
+
+        # Get the queue features
+        queue_features = []
+        for i in range(len(self.queues)):
+            _, features = self.queues[i](high_resolution_features[i], update=True)
+            # Queue features are in (num_ftrs X queue_length) shape, while the high res
+            # features are in (batch_size X num_ftrs). Swap the axes for interoperability.
+            features = torch.permute(features, (1, 0))
+            queue_features.append(features)
+
+        # Do not return queue prototypes if not enough features have been queued
+        self.num_features_queued += high_resolution_features[0].shape[0]
+        if self.num_features_queued < self.queue_length:
+            return None
+
+        # If loss calculation with queue prototypes starts at a later epoch,
+        # just queue the features and return None instead of queue prototypes.
+        if self.start_queue_at_epoch > 0:
+            if epoch is None:
+                raise ValueError(
+                    "The epoch number must be passed to the `forward()` " "method if `start_queue_at_epoch` is greater than 0."
+                )
+            if epoch < self.start_queue_at_epoch:
+                return None
+
+        # Assign prototypes
+        queue_prototypes = [self.prototypes(x, epoch) for x in queue_features]
+        # Do not return queue prototypes if not enough features have been queued
+        return queue_prototypes
+
+

Ancestors

+
    +
  • torch.nn.modules.module.Module
  • +
+

Class variables

+
+
var call_super_init : bool
+
+
+
+
var dump_patches : bool
+
+
+
+
var training : bool
+
+
+
+
+

Methods

+
+
+def forward(self, input, epoch=None, step=None) ‑> Callable[..., Any] +
+
+

Performs the forward pass for the SwAV model.

+

Args

+
+
input : Tuple[List[Tensor], List[Tensor]]
+
A tuple consisting of a list of high-resolution input images +and a list of low-resolution input images.
+
epoch : int, optional
+
Current training epoch. Required if start_queue_at_epoch > 0. Defaults to None.
+
step : int, optional
+
Current training step. Required if n_steps_frozen_prototypes > 0. Defaults to None.
+
+

Returns

+
+
Tuple[List[Tensor], List[Tensor], List[Tensor]]
+
A tuple containing lists of high-resolution prototypes, +low-resolution prototypes, and queue prototypes.
+
+
+ +Expand source code + +
def forward(self, input, epoch=None, step=None):
+    """
+    Performs the forward pass for the SwAV model.
+
+    Args:
+        input (Tuple[List[Tensor], List[Tensor]]): A tuple consisting of a list of high-resolution input images
+            and a list of low-resolution input images.
+        epoch (int, optional): Current training epoch. Required if `start_queue_at_epoch` > 0. Defaults to None.
+        step (int, optional): Current training step. Required if `n_steps_frozen_prototypes` > 0. Defaults to None.
+
+    Returns:
+        Tuple[List[Tensor], List[Tensor], List[Tensor]]: A tuple containing lists of high-resolution prototypes,
+            low-resolution prototypes, and queue prototypes.
+    """
+    high_resolution, low_resolution = input
+
+    # Normalize prototypes
+    self.prototypes.normalize()
+
+    # Compute high and low resolution features
+    high_resolution_features = [self._subforward(x) for x in high_resolution]
+    low_resolution_features = [self._subforward(x) for x in low_resolution]
+
+    # Compute prototypes for high and low resolution features
+    high_resolution_prototypes = [self.prototypes(x, epoch) for x in high_resolution_features]
+    low_resolution_prototypes = [self.prototypes(x, epoch) for x in low_resolution_features]
+    # Compute prototypes for queued features
+    queue_prototypes = self._get_queue_prototypes(high_resolution_features, epoch)
+
+    return high_resolution_prototypes, low_resolution_prototypes, queue_prototypes
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/optimizers/index.html b/api_docs/fmcib/ssl/optimizers/index.html new file mode 100644 index 0000000..dc09bcd --- /dev/null +++ b/api_docs/fmcib/ssl/optimizers/index.html @@ -0,0 +1,75 @@ + + + + + + +fmcib.ssl.optimizers API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.optimizers

+
+
+
+ +Expand source code + +
from .lars import LARS
+
+
+
+

Sub-modules

+
+
fmcib.ssl.optimizers.lars
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/optimizers/lars.html b/api_docs/fmcib/ssl/optimizers/lars.html new file mode 100644 index 0000000..05e0643 --- /dev/null +++ b/api_docs/fmcib/ssl/optimizers/lars.html @@ -0,0 +1,509 @@ + + + + + + +fmcib.ssl.optimizers.lars API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.optimizers.lars

+
+
+

References

+ +
+ +Expand source code + +
"""
+References:
+    - https://arxiv.org/pdf/1708.03888.pdf
+    - https://github.com/pytorch/pytorch/blob/1.6/torch/optim/sgd.py
+"""
+import torch
+from torch.optim.optimizer import Optimizer, required
+
+
+class LARS(Optimizer):
+    """Extends SGD in PyTorch with LARS scaling from the paper
+    `Large batch training of Convolutional Networks <https://arxiv.org/pdf/1708.03888.pdf>`_.
+    Args:
+        params (iterable): iterable of parameters to optimize or dicts defining
+            parameter groups
+        lr (float): learning rate
+        momentum (float, optional): momentum factor (default: 0)
+        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
+        dampening (float, optional): dampening for momentum (default: 0)
+        nesterov (bool, optional): enables Nesterov momentum (default: False)
+        trust_coefficient (float, optional): trust coefficient for computing LR (default: 0.001)
+        eps (float, optional): eps for division denominator (default: 1e-8)
+
+    Example:
+        >>> model = torch.nn.Linear(10, 1)
+        >>> input = torch.Tensor(10)
+        >>> target = torch.Tensor([1.])
+        >>> loss_fn = lambda input, target: (input - target) ** 2
+        >>> #
+        >>> optimizer = LARS(model.parameters(), lr=0.1, momentum=0.9)
+        >>> optimizer.zero_grad()
+        >>> loss_fn(model(input), target).backward()
+        >>> optimizer.step()
+
+    .. note::
+        The application of momentum in the SGD part is modified according to
+        the PyTorch standards. LARS scaling fits into the equation in the
+        following fashion.
+
+        .. math::
+            \begin{aligned}
+                g_{t+1} & = \text{lars_lr} * (\beta * p_{t} + g_{t+1}), \\
+                v_{t+1} & = \\mu * v_{t} + g_{t+1}, \\
+                p_{t+1} & = p_{t} - \text{lr} * v_{t+1},
+            \\end{aligned}
+
+        where :math:`p`, :math:`g`, :math:`v`, :math:`\\mu` and :math:`\beta` denote the
+        parameters, gradient, velocity, momentum, and weight decay respectively.
+        The :math:`lars_lr` is defined by Eq. 6 in the paper.
+        The Nesterov version is analogously modified.
+
+    .. warning::
+        Parameters with weight decay set to 0 will automatically be excluded from
+        layer-wise LR scaling. This is to ensure consistency with papers like SimCLR
+        and BYOL.
+    """
+
+    def __init__(
+        self,
+        params,
+        lr=required,
+        momentum=0,
+        dampening=0,
+        weight_decay=0,
+        nesterov=False,
+        trust_coefficient=0.001,
+        eps=1e-8,
+    ):
+        if lr is not required and lr < 0.0:
+            raise ValueError(f"Invalid learning rate: {lr}")
+        if momentum < 0.0:
+            raise ValueError(f"Invalid momentum value: {momentum}")
+        if weight_decay < 0.0:
+            raise ValueError(f"Invalid weight_decay value: {weight_decay}")
+
+        defaults = dict(
+            lr=lr,
+            momentum=momentum,
+            dampening=dampening,
+            weight_decay=weight_decay,
+            nesterov=nesterov,
+            trust_coefficient=trust_coefficient,
+            eps=eps,
+        )
+        if nesterov and (momentum <= 0 or dampening != 0):
+            raise ValueError("Nesterov momentum requires a momentum and zero dampening")
+
+        super().__init__(params, defaults)
+
+    def __setstate__(self, state):
+        super().__setstate__(state)
+
+        for group in self.param_groups:
+            group.setdefault("nesterov", False)
+
+    @torch.no_grad()
+    def step(self, closure=None):
+        """Performs a single optimization step.
+
+        Args:
+            closure (callable, optional): A closure that reevaluates the model
+                and returns the loss.
+        """
+        loss = None
+        if closure is not None:
+            with torch.enable_grad():
+                loss = closure()
+
+        # exclude scaling for params with 0 weight decay
+        for group in self.param_groups:
+            weight_decay = group["weight_decay"]
+            momentum = group["momentum"]
+            dampening = group["dampening"]
+            nesterov = group["nesterov"]
+
+            for p in group["params"]:
+                if p.grad is None:
+                    continue
+
+                d_p = p.grad
+                p_norm = torch.norm(p.data)
+                g_norm = torch.norm(p.grad.data)
+
+                # lars scaling + weight decay part
+                if weight_decay != 0:
+                    if p_norm != 0 and g_norm != 0:
+                        lars_lr = p_norm / (g_norm + p_norm * weight_decay + group["eps"])
+                        lars_lr *= group["trust_coefficient"]
+
+                        d_p = d_p.add(p, alpha=weight_decay)
+                        d_p *= lars_lr
+
+                # sgd part
+                if momentum != 0:
+                    param_state = self.state[p]
+                    if "momentum_buffer" not in param_state:
+                        buf = param_state["momentum_buffer"] = torch.clone(d_p).detach()
+                    else:
+                        buf = param_state["momentum_buffer"]
+                        buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
+                    if nesterov:
+                        d_p = d_p.add(buf, alpha=momentum)
+                    else:
+                        d_p = buf
+
+                p.add_(d_p, alpha=-group["lr"])
+
+        return loss
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class LARS +(params, lr=<required parameter>, momentum=0, dampening=0, weight_decay=0, nesterov=False, trust_coefficient=0.001, eps=1e-08) +
+
+

Extends SGD in PyTorch with LARS scaling from the paper +Large batch training of Convolutional Networks <https://arxiv.org/pdf/1708.03888.pdf>_.

+

Args

+
+
params : iterable
+
iterable of parameters to optimize or dicts defining +parameter groups
+
lr : float
+
learning rate
+
momentum : float, optional
+
momentum factor (default: 0)
+
weight_decay : float, optional
+
weight decay (L2 penalty) (default: 0)
+
dampening : float, optional
+
dampening for momentum (default: 0)
+
nesterov : bool, optional
+
enables Nesterov momentum (default: False)
+
trust_coefficient : float, optional
+
trust coefficient for computing LR (default: 0.001)
+
eps : float, optional
+
eps for division denominator (default: 1e-8)
+
+

Example

+
>>> model = torch.nn.Linear(10, 1)
+>>> input = torch.Tensor(10)
+>>> target = torch.Tensor([1.])
+>>> loss_fn = lambda input, target: (input - target) ** 2
+>>> #
+>>> optimizer = LARS(model.parameters(), lr=0.1, momentum=0.9)
+>>> optimizer.zero_grad()
+>>> loss_fn(model(input), target).backward()
+>>> optimizer.step()
+
+
+

Note

+

The application of momentum in the SGD part is modified according to +the PyTorch standards. LARS scaling fits into the equation in the +following fashion.

+

[ egin{aligned} +g_{t+1} & = +ext{lars_lr} * (eta * p_{t} + g_{t+1}), \ +v_{t+1} & = \mu * v_{t} + g_{t+1}, \ +p_{t+1} & = p_{t} - +ext{lr} * v_{t+1}, +\end{aligned} ] +where :math:p, :math:g, :math:v, :math:\mu and :math:eta denote the +parameters, gradient, velocity, momentum, and weight decay respectively. +The :math:lars_lr is defined by Eq. 6 in the paper. +The Nesterov version is analogously modified.

+
+
+

Warning

+

Parameters with weight decay set to 0 will automatically be excluded from +layer-wise LR scaling. This is to ensure consistency with papers like SimCLR +and BYOL.

+
+
+ +Expand source code + +
class LARS(Optimizer):
+    """Extends SGD in PyTorch with LARS scaling from the paper
+    `Large batch training of Convolutional Networks <https://arxiv.org/pdf/1708.03888.pdf>`_.
+    Args:
+        params (iterable): iterable of parameters to optimize or dicts defining
+            parameter groups
+        lr (float): learning rate
+        momentum (float, optional): momentum factor (default: 0)
+        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
+        dampening (float, optional): dampening for momentum (default: 0)
+        nesterov (bool, optional): enables Nesterov momentum (default: False)
+        trust_coefficient (float, optional): trust coefficient for computing LR (default: 0.001)
+        eps (float, optional): eps for division denominator (default: 1e-8)
+
+    Example:
+        >>> model = torch.nn.Linear(10, 1)
+        >>> input = torch.Tensor(10)
+        >>> target = torch.Tensor([1.])
+        >>> loss_fn = lambda input, target: (input - target) ** 2
+        >>> #
+        >>> optimizer = LARS(model.parameters(), lr=0.1, momentum=0.9)
+        >>> optimizer.zero_grad()
+        >>> loss_fn(model(input), target).backward()
+        >>> optimizer.step()
+
+    .. note::
+        The application of momentum in the SGD part is modified according to
+        the PyTorch standards. LARS scaling fits into the equation in the
+        following fashion.
+
+        .. math::
+            \begin{aligned}
+                g_{t+1} & = \text{lars_lr} * (\beta * p_{t} + g_{t+1}), \\
+                v_{t+1} & = \\mu * v_{t} + g_{t+1}, \\
+                p_{t+1} & = p_{t} - \text{lr} * v_{t+1},
+            \\end{aligned}
+
+        where :math:`p`, :math:`g`, :math:`v`, :math:`\\mu` and :math:`\beta` denote the
+        parameters, gradient, velocity, momentum, and weight decay respectively.
+        The :math:`lars_lr` is defined by Eq. 6 in the paper.
+        The Nesterov version is analogously modified.
+
+    .. warning::
+        Parameters with weight decay set to 0 will automatically be excluded from
+        layer-wise LR scaling. This is to ensure consistency with papers like SimCLR
+        and BYOL.
+    """
+
+    def __init__(
+        self,
+        params,
+        lr=required,
+        momentum=0,
+        dampening=0,
+        weight_decay=0,
+        nesterov=False,
+        trust_coefficient=0.001,
+        eps=1e-8,
+    ):
+        if lr is not required and lr < 0.0:
+            raise ValueError(f"Invalid learning rate: {lr}")
+        if momentum < 0.0:
+            raise ValueError(f"Invalid momentum value: {momentum}")
+        if weight_decay < 0.0:
+            raise ValueError(f"Invalid weight_decay value: {weight_decay}")
+
+        defaults = dict(
+            lr=lr,
+            momentum=momentum,
+            dampening=dampening,
+            weight_decay=weight_decay,
+            nesterov=nesterov,
+            trust_coefficient=trust_coefficient,
+            eps=eps,
+        )
+        if nesterov and (momentum <= 0 or dampening != 0):
+            raise ValueError("Nesterov momentum requires a momentum and zero dampening")
+
+        super().__init__(params, defaults)
+
+    def __setstate__(self, state):
+        super().__setstate__(state)
+
+        for group in self.param_groups:
+            group.setdefault("nesterov", False)
+
+    @torch.no_grad()
+    def step(self, closure=None):
+        """Performs a single optimization step.
+
+        Args:
+            closure (callable, optional): A closure that reevaluates the model
+                and returns the loss.
+        """
+        loss = None
+        if closure is not None:
+            with torch.enable_grad():
+                loss = closure()
+
+        # exclude scaling for params with 0 weight decay
+        for group in self.param_groups:
+            weight_decay = group["weight_decay"]
+            momentum = group["momentum"]
+            dampening = group["dampening"]
+            nesterov = group["nesterov"]
+
+            for p in group["params"]:
+                if p.grad is None:
+                    continue
+
+                d_p = p.grad
+                p_norm = torch.norm(p.data)
+                g_norm = torch.norm(p.grad.data)
+
+                # lars scaling + weight decay part
+                if weight_decay != 0:
+                    if p_norm != 0 and g_norm != 0:
+                        lars_lr = p_norm / (g_norm + p_norm * weight_decay + group["eps"])
+                        lars_lr *= group["trust_coefficient"]
+
+                        d_p = d_p.add(p, alpha=weight_decay)
+                        d_p *= lars_lr
+
+                # sgd part
+                if momentum != 0:
+                    param_state = self.state[p]
+                    if "momentum_buffer" not in param_state:
+                        buf = param_state["momentum_buffer"] = torch.clone(d_p).detach()
+                    else:
+                        buf = param_state["momentum_buffer"]
+                        buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
+                    if nesterov:
+                        d_p = d_p.add(buf, alpha=momentum)
+                    else:
+                        d_p = buf
+
+                p.add_(d_p, alpha=-group["lr"])
+
+        return loss
+
+

Ancestors

+
    +
  • torch.optim.optimizer.Optimizer
  • +
+

Methods

+
+
+def step(self, closure=None) +
+
+

Performs a single optimization step.

+

Args

+
+
closure : callable, optional
+
A closure that reevaluates the model +and returns the loss.
+
+
+ +Expand source code + +
@torch.no_grad()
+def step(self, closure=None):
+    """Performs a single optimization step.
+
+    Args:
+        closure (callable, optional): A closure that reevaluates the model
+            and returns the loss.
+    """
+    loss = None
+    if closure is not None:
+        with torch.enable_grad():
+            loss = closure()
+
+    # exclude scaling for params with 0 weight decay
+    for group in self.param_groups:
+        weight_decay = group["weight_decay"]
+        momentum = group["momentum"]
+        dampening = group["dampening"]
+        nesterov = group["nesterov"]
+
+        for p in group["params"]:
+            if p.grad is None:
+                continue
+
+            d_p = p.grad
+            p_norm = torch.norm(p.data)
+            g_norm = torch.norm(p.grad.data)
+
+            # lars scaling + weight decay part
+            if weight_decay != 0:
+                if p_norm != 0 and g_norm != 0:
+                    lars_lr = p_norm / (g_norm + p_norm * weight_decay + group["eps"])
+                    lars_lr *= group["trust_coefficient"]
+
+                    d_p = d_p.add(p, alpha=weight_decay)
+                    d_p *= lars_lr
+
+            # sgd part
+            if momentum != 0:
+                param_state = self.state[p]
+                if "momentum_buffer" not in param_state:
+                    buf = param_state["momentum_buffer"] = torch.clone(d_p).detach()
+                else:
+                    buf = param_state["momentum_buffer"]
+                    buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
+                if nesterov:
+                    d_p = d_p.add(buf, alpha=momentum)
+                else:
+                    d_p = buf
+
+            p.add_(d_p, alpha=-group["lr"])
+
+    return loss
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/transforms/duplicate.html b/api_docs/fmcib/ssl/transforms/duplicate.html new file mode 100644 index 0000000..cc725a5 --- /dev/null +++ b/api_docs/fmcib/ssl/transforms/duplicate.html @@ -0,0 +1,153 @@ + + + + + + +fmcib.ssl.transforms.duplicate API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.transforms.duplicate

+
+
+
+ +Expand source code + +
from typing import Any, Callable, List, Optional, Tuple
+
+from copy import deepcopy
+
+import torch
+
+
+class Duplicate:
+    """Duplicate an input and apply two different transforms. Used for SimCLR primarily."""
+
+    def __init__(self, transforms1: Optional[Callable] = None, transforms2: Optional[Callable] = None):
+        """Duplicates an input and applies the given transformations to each copy separately.
+
+        Args:
+            transforms1 (Optional[Callable], optional): _description_. Defaults to None.
+            transforms2 (Optional[Callable], optional): _description_. Defaults to None.
+        """
+        # Wrapped into a list if it isn't one already to allow both a
+        # list of transforms as well as `torchvision.transform.Compose` transforms.
+        self.transforms1 = transforms1
+        self.transforms2 = transforms2
+
+    def __call__(self, input: Any) -> Tuple[torch.Tensor, torch.Tensor]:
+        """
+        Args:
+            input (torch.Tensor or any other type supported by the given transforms): Input.
+
+        Returns:
+            Tuple[torch.Tensor, torch.Tensor]: a tuple of two tensors.
+        """
+        out1, out2 = input, deepcopy(input)
+        if self.transforms1 is not None:
+            out1 = self.transforms1(out1)
+        if self.transforms2 is not None:
+            out2 = self.transforms2(out2)
+        return (out1, out2)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class Duplicate +(transforms1: Optional[Callable] = None, transforms2: Optional[Callable] = None) +
+
+

Duplicate an input and apply two different transforms. Used for SimCLR primarily.

+

Duplicates an input and applies the given transformations to each copy separately.

+

Args

+
+
transforms1 : Optional[Callable], optional
+
description. Defaults to None.
+
transforms2 : Optional[Callable], optional
+
description. Defaults to None.
+
+
+ +Expand source code + +
class Duplicate:
+    """Duplicate an input and apply two different transforms. Used for SimCLR primarily."""
+
+    def __init__(self, transforms1: Optional[Callable] = None, transforms2: Optional[Callable] = None):
+        """Duplicates an input and applies the given transformations to each copy separately.
+
+        Args:
+            transforms1 (Optional[Callable], optional): _description_. Defaults to None.
+            transforms2 (Optional[Callable], optional): _description_. Defaults to None.
+        """
+        # Wrapped into a list if it isn't one already to allow both a
+        # list of transforms as well as `torchvision.transform.Compose` transforms.
+        self.transforms1 = transforms1
+        self.transforms2 = transforms2
+
+    def __call__(self, input: Any) -> Tuple[torch.Tensor, torch.Tensor]:
+        """
+        Args:
+            input (torch.Tensor or any other type supported by the given transforms): Input.
+
+        Returns:
+            Tuple[torch.Tensor, torch.Tensor]: a tuple of two tensors.
+        """
+        out1, out2 = input, deepcopy(input)
+        if self.transforms1 is not None:
+            out1 = self.transforms1(out1)
+        if self.transforms2 is not None:
+            out2 = self.transforms2(out2)
+        return (out1, out2)
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/transforms/index.html b/api_docs/fmcib/ssl/transforms/index.html new file mode 100644 index 0000000..93d17e8 --- /dev/null +++ b/api_docs/fmcib/ssl/transforms/index.html @@ -0,0 +1,77 @@ + + + + + + +fmcib.ssl.transforms API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.transforms

+
+
+
+ +Expand source code + +
from .duplicate import Duplicate
+from .random_resized_crop import RandomResizedCrop3D
+
+
+
+

Sub-modules

+
+
fmcib.ssl.transforms.duplicate
+
+
+
+
fmcib.ssl.transforms.random_resized_crop
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/ssl/transforms/random_resized_crop.html b/api_docs/fmcib/ssl/transforms/random_resized_crop.html new file mode 100644 index 0000000..bf47f01 --- /dev/null +++ b/api_docs/fmcib/ssl/transforms/random_resized_crop.html @@ -0,0 +1,165 @@ + + + + + + +fmcib.ssl.transforms.random_resized_crop API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.ssl.transforms.random_resized_crop

+
+
+
+ +Expand source code + +
from typing import Any, Dict, List
+
+import torch
+from monai.transforms import RandScaleCrop, Resize, Transform
+
+
+class RandomResizedCrop3D(Transform):
+    """
+    Combines monai's random spatial crop followed by resize to the desired size.
+
+    Modification:
+    1. The spatial crop is done with same dimensions for all the axes
+    2. Handles cases where the image_size is less than the crop_size by choosing
+        the smallest dimension as the random scale.
+
+    """
+
+    def __init__(self, prob: float = 1, size: int = 50, scale: List[float] = [0.5, 1.0]):
+        """
+        Args:
+            scale (List[int]): Specifies the lower and upper bounds for the random area of the crop,
+             before resizing. The scale is defined with respect to the area of the original image.
+        """
+        super().__init__()
+        self.prob = prob
+        self.scale = scale
+        self.size = [size] * 3
+
+    def __call__(self, image):
+        if torch.rand(1) < self.prob:
+            random_scale = torch.empty(1).uniform_(*self.scale).item()
+            rand_cropper = RandScaleCrop(random_scale, random_size=False)
+            resizer = Resize(self.size, mode="trilinear")
+
+            for transform in [rand_cropper, resizer]:
+                image = transform(image)
+
+        return image
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class RandomResizedCrop3D +(prob: float = 1, size: int = 50, scale: List[float] = [0.5, 1.0]) +
+
+

Combines monai's random spatial crop followed by resize to the desired size.

+

Modification: +1. The spatial crop is done with same dimensions for all the axes +2. Handles cases where the image_size is less than the crop_size by choosing +the smallest dimension as the random scale.

+

Args

+
+
scale : List[int]
+
Specifies the lower and upper bounds for the random area of the crop,
+
+

before resizing. The scale is defined with respect to the area of the original image.

+
+ +Expand source code + +
class RandomResizedCrop3D(Transform):
+    """
+    Combines monai's random spatial crop followed by resize to the desired size.
+
+    Modification:
+    1. The spatial crop is done with same dimensions for all the axes
+    2. Handles cases where the image_size is less than the crop_size by choosing
+        the smallest dimension as the random scale.
+
+    """
+
+    def __init__(self, prob: float = 1, size: int = 50, scale: List[float] = [0.5, 1.0]):
+        """
+        Args:
+            scale (List[int]): Specifies the lower and upper bounds for the random area of the crop,
+             before resizing. The scale is defined with respect to the area of the original image.
+        """
+        super().__init__()
+        self.prob = prob
+        self.scale = scale
+        self.size = [size] * 3
+
+    def __call__(self, image):
+        if torch.rand(1) < self.prob:
+            random_scale = torch.empty(1).uniform_(*self.scale).item()
+            rand_cropper = RandScaleCrop(random_scale, random_size=False)
+            resizer = Resize(self.size, mode="trilinear")
+
+            for transform in [rand_cropper, resizer]:
+                image = transform(image)
+
+        return image
+
+

Ancestors

+
    +
  • monai.transforms.transform.Transform
  • +
  • abc.ABC
  • +
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/transforms/duplicate.html b/api_docs/fmcib/transforms/duplicate.html new file mode 100644 index 0000000..7a4f69f --- /dev/null +++ b/api_docs/fmcib/transforms/duplicate.html @@ -0,0 +1,159 @@ + + + + + + +fmcib.transforms.duplicate API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.transforms.duplicate

+
+
+
+ +Expand source code + +
from typing import Any, Callable, List, Optional, Tuple
+
+from copy import deepcopy
+
+import torch
+
+
+class Duplicate:
+    """
+    Duplicate an input and apply two different transforms. Used for SimCLR primarily.
+    """
+
+    def __init__(self, transforms1: Optional[Callable] = None, transforms2: Optional[Callable] = None):
+        """
+        Duplicates an input and applies the given transformations to each copy separately.
+
+        Args:
+            transforms1 (Optional[Callable]): _description_. Default is None.
+            transforms2 (Optional[Callable]): _description_. Default is None.
+        """
+        # Wrapped into a list if it isn't one already to allow both a
+        # list of transforms as well as `torchvision.transform.Compose` transforms.
+        self.transforms1 = transforms1
+        self.transforms2 = transforms2
+
+    def __call__(self, input: Any) -> Tuple[torch.Tensor, torch.Tensor]:
+        """
+        Args:
+            input (torch.Tensor or any other type supported by the given transforms): Input.
+
+        Returns:
+            Tuple[torch.Tensor, torch.Tensor]: A tuple of two tensors.
+        """
+        out1, out2 = input, deepcopy(input)
+        if self.transforms1 is not None:
+            out1 = self.transforms1(out1)
+        if self.transforms2 is not None:
+            out2 = self.transforms2(out2)
+        return (out1, out2)
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class Duplicate +(transforms1: Optional[Callable] = None, transforms2: Optional[Callable] = None) +
+
+

Duplicate an input and apply two different transforms. Used for SimCLR primarily.

+

Duplicates an input and applies the given transformations to each copy separately.

+

Args

+
+
transforms1 : Optional[Callable]
+
description. Default is None.
+
transforms2 : Optional[Callable]
+
description. Default is None.
+
+
+ +Expand source code + +
class Duplicate:
+    """
+    Duplicate an input and apply two different transforms. Used for SimCLR primarily.
+    """
+
+    def __init__(self, transforms1: Optional[Callable] = None, transforms2: Optional[Callable] = None):
+        """
+        Duplicates an input and applies the given transformations to each copy separately.
+
+        Args:
+            transforms1 (Optional[Callable]): _description_. Default is None.
+            transforms2 (Optional[Callable]): _description_. Default is None.
+        """
+        # Wrapped into a list if it isn't one already to allow both a
+        # list of transforms as well as `torchvision.transform.Compose` transforms.
+        self.transforms1 = transforms1
+        self.transforms2 = transforms2
+
+    def __call__(self, input: Any) -> Tuple[torch.Tensor, torch.Tensor]:
+        """
+        Args:
+            input (torch.Tensor or any other type supported by the given transforms): Input.
+
+        Returns:
+            Tuple[torch.Tensor, torch.Tensor]: A tuple of two tensors.
+        """
+        out1, out2 = input, deepcopy(input)
+        if self.transforms1 is not None:
+            out1 = self.transforms1(out1)
+        if self.transforms2 is not None:
+            out2 = self.transforms2(out2)
+        return (out1, out2)
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/transforms/index.html b/api_docs/fmcib/transforms/index.html new file mode 100644 index 0000000..879369e --- /dev/null +++ b/api_docs/fmcib/transforms/index.html @@ -0,0 +1,89 @@ + + + + + + +fmcib.transforms API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.transforms

+
+
+
+ +Expand source code + +
from .duplicate import Duplicate
+from .med3d import IntensityNormalizeOneVolume
+from .multicrop import MultiCrop
+from .random_resized_crop import RandomResizedCrop3D
+
+
+
+

Sub-modules

+
+
fmcib.transforms.duplicate
+
+
+
+
fmcib.transforms.med3d
+
+
+
+
fmcib.transforms.multicrop
+
+
+
+
fmcib.transforms.random_resized_crop
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/transforms/med3d.html b/api_docs/fmcib/transforms/med3d.html new file mode 100644 index 0000000..ca14a0f --- /dev/null +++ b/api_docs/fmcib/transforms/med3d.html @@ -0,0 +1,205 @@ + + + + + + +fmcib.transforms.med3d API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.transforms.med3d

+
+
+
+ +Expand source code + +
import numpy as np
+from monai.transforms import Transform
+
+
+class IntensityNormalizeOneVolume(Transform):
+    """
+    A class representing an intensity normalized volume.
+
+    Attributes:
+        None
+
+    Methods:
+        __call__(self, volume): Normalize the intensity of an n-dimensional volume based on the mean and standard deviation of the non-zero region.
+
+        Args:
+            volume (numpy.ndarray): The input n-dimensional volume.
+
+        Returns:
+            out (numpy.ndarray): The normalized n-dimensional volume.
+    """
+
+    def __init__(self):
+        """
+        Initialize the object.
+
+        Returns:
+            None
+        """
+        super().__init__()
+
+    def __call__(self, volume):
+        """
+        Normalize the intensity of an nd volume based on the mean and std of the non-zero region.
+
+        Args:
+            volume: The input nd volume.
+
+        Returns:
+            out: The normalized nd volume.
+        """
+        volume = volume.astype(np.float32)
+        low, high = np.percentile(volume, [0.5, 99.5])
+        if high > 0:
+            volume = np.clip(volume, low, high)
+
+        pixels = volume[volume > 0]
+        mean = pixels.mean()
+        std = pixels.std()
+        out = (volume - mean) / std
+        out_random = np.random.normal(0, 1, size=volume.shape)
+        out[volume == 0] = out_random[volume == 0]
+        return out
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class IntensityNormalizeOneVolume +
+
+

A class representing an intensity normalized volume.

+

Attributes

+

None

+

Methods

+

call(self, volume): Normalize the intensity of an n-dimensional volume based on the mean and standard deviation of the non-zero region.

+

Args: +volume (numpy.ndarray): The input n-dimensional volume.

+

Returns: +out (numpy.ndarray): The normalized n-dimensional volume.

+

Initialize the object.

+

Returns

+

None

+
+ +Expand source code + +
class IntensityNormalizeOneVolume(Transform):
+    """
+    A class representing an intensity normalized volume.
+
+    Attributes:
+        None
+
+    Methods:
+        __call__(self, volume): Normalize the intensity of an n-dimensional volume based on the mean and standard deviation of the non-zero region.
+
+        Args:
+            volume (numpy.ndarray): The input n-dimensional volume.
+
+        Returns:
+            out (numpy.ndarray): The normalized n-dimensional volume.
+    """
+
+    def __init__(self):
+        """
+        Initialize the object.
+
+        Returns:
+            None
+        """
+        super().__init__()
+
+    def __call__(self, volume):
+        """
+        Normalize the intensity of an nd volume based on the mean and std of the non-zero region.
+
+        Args:
+            volume: The input nd volume.
+
+        Returns:
+            out: The normalized nd volume.
+        """
+        volume = volume.astype(np.float32)
+        low, high = np.percentile(volume, [0.5, 99.5])
+        if high > 0:
+            volume = np.clip(volume, low, high)
+
+        pixels = volume[volume > 0]
+        mean = pixels.mean()
+        std = pixels.std()
+        out = (volume - mean) / std
+        out_random = np.random.normal(0, 1, size=volume.shape)
+        out[volume == 0] = out_random[volume == 0]
+        return out
+
+

Ancestors

+
    +
  • monai.transforms.transform.Transform
  • +
  • abc.ABC
  • +
+

Class variables

+
+
var backend : list[TransformBackends]
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/transforms/multicrop.html b/api_docs/fmcib/transforms/multicrop.html new file mode 100644 index 0000000..bacda27 --- /dev/null +++ b/api_docs/fmcib/transforms/multicrop.html @@ -0,0 +1,158 @@ + + + + + + +fmcib.transforms.multicrop API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.transforms.multicrop

+
+
+
+ +Expand source code + +
from typing import Any, Callable, List, Optional, Tuple
+
+from copy import deepcopy
+
+import torch
+from lighter.utils.misc import ensure_list
+
+
+class MultiCrop:
+    """
+    Multi-Crop augmentation.
+    """
+
+    def __init__(self, high_resolution_transforms: List[Callable], low_resolution_transforms: Optional[List[Callable]]):
+        """
+        Initialize an instance of a class with transformations for high-resolution and low-resolution images.
+
+        Args:
+            high_resolution_transforms (list): A list of Callable objects representing the transformations to be applied to high-resolution images.
+            low_resolution_transforms (list, optional): A list of Callable objects representing the transformations to be applied to low-resolution images. Default is None.
+        """
+        self.high_resolution_transforms = ensure_list(high_resolution_transforms)
+        self.low_resolution_transforms = ensure_list(low_resolution_transforms)
+
+    def __call__(self, input):
+        """
+        This function applies a set of transformations to an input image and returns high and low-resolution crops.
+
+        Args:
+            input (image): The input image to be transformed.
+
+        Returns:
+            tuple: A tuple containing two lists:
+                - high_resolution_crops (list): A list of high-resolution cropped images.
+                - low_resolution_crops (list): A list of low-resolution cropped images.
+        """
+        high_resolution_crops = [transform(input) for transform in self.high_resolution_transforms]
+        low_resolution_crops = [transform(input) for transform in self.low_resolution_transforms]
+        return high_resolution_crops, low_resolution_crops
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class MultiCrop +(high_resolution_transforms: List[Callable], low_resolution_transforms: Optional[List[Callable]]) +
+
+

Multi-Crop augmentation.

+

Initialize an instance of a class with transformations for high-resolution and low-resolution images.

+

Args

+
+
high_resolution_transforms : list
+
A list of Callable objects representing the transformations to be applied to high-resolution images.
+
low_resolution_transforms : list, optional
+
A list of Callable objects representing the transformations to be applied to low-resolution images. Default is None.
+
+
+ +Expand source code + +
class MultiCrop:
+    """
+    Multi-Crop augmentation.
+    """
+
+    def __init__(self, high_resolution_transforms: List[Callable], low_resolution_transforms: Optional[List[Callable]]):
+        """
+        Initialize an instance of a class with transformations for high-resolution and low-resolution images.
+
+        Args:
+            high_resolution_transforms (list): A list of Callable objects representing the transformations to be applied to high-resolution images.
+            low_resolution_transforms (list, optional): A list of Callable objects representing the transformations to be applied to low-resolution images. Default is None.
+        """
+        self.high_resolution_transforms = ensure_list(high_resolution_transforms)
+        self.low_resolution_transforms = ensure_list(low_resolution_transforms)
+
+    def __call__(self, input):
+        """
+        This function applies a set of transformations to an input image and returns high and low-resolution crops.
+
+        Args:
+            input (image): The input image to be transformed.
+
+        Returns:
+            tuple: A tuple containing two lists:
+                - high_resolution_crops (list): A list of high-resolution cropped images.
+                - low_resolution_crops (list): A list of low-resolution cropped images.
+        """
+        high_resolution_crops = [transform(input) for transform in self.high_resolution_transforms]
+        low_resolution_crops = [transform(input) for transform in self.low_resolution_transforms]
+        return high_resolution_crops, low_resolution_crops
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/transforms/random_resized_crop.html b/api_docs/fmcib/transforms/random_resized_crop.html new file mode 100644 index 0000000..aca875c --- /dev/null +++ b/api_docs/fmcib/transforms/random_resized_crop.html @@ -0,0 +1,188 @@ + + + + + + +fmcib.transforms.random_resized_crop API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.transforms.random_resized_crop

+
+
+
+ +Expand source code + +
from typing import Any, Dict, List
+
+import torch
+from monai.transforms import RandScaleCrop, Resize, Transform
+
+
+class RandomResizedCrop3D(Transform):
+    """
+    Combines monai's random spatial crop followed by resize to the desired size.
+
+    Modifications:
+    1. The spatial crop is done with the same dimensions for all the axes.
+    2. Handles cases where the image_size is less than the crop_size by choosing the smallest dimension as the random scale.
+    """
+
+    def __init__(self, prob: float = 1, size: int = 50, scale: List[float] = [0.5, 1.0]):
+        """
+        Args:
+            scale (List[int]): Specifies the lower and upper bounds for the random area of the crop,
+             before resizing. The scale is defined with respect to the area of the original image.
+        """
+        super().__init__()
+        self.prob = prob
+        self.scale = scale
+        self.size = [size] * 3
+
+    def __call__(self, image):
+        """
+        Call method to apply random scale cropping and resizing to an image.
+
+        Args:
+            image (torch.Tensor): The input image.
+
+        Returns:
+            torch.Tensor: The transformed image.
+        """
+        if torch.rand(1) < self.prob:
+            random_scale = torch.empty(1).uniform_(*self.scale).item()
+            rand_cropper = RandScaleCrop(random_scale, random_size=False)
+            resizer = Resize(self.size, mode="trilinear")
+
+            for transform in [rand_cropper, resizer]:
+                image = transform(image)
+
+        return image
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class RandomResizedCrop3D +(prob: float = 1, size: int = 50, scale: List[float] = [0.5, 1.0]) +
+
+

Combines monai's random spatial crop followed by resize to the desired size.

+

Modifications: +1. The spatial crop is done with the same dimensions for all the axes. +2. Handles cases where the image_size is less than the crop_size by choosing the smallest dimension as the random scale.

+

Args

+
+
scale : List[int]
+
Specifies the lower and upper bounds for the random area of the crop,
+
+

before resizing. The scale is defined with respect to the area of the original image.

+
+ +Expand source code + +
class RandomResizedCrop3D(Transform):
+    """
+    Combines monai's random spatial crop followed by resize to the desired size.
+
+    Modifications:
+    1. The spatial crop is done with the same dimensions for all the axes.
+    2. Handles cases where the image_size is less than the crop_size by choosing the smallest dimension as the random scale.
+    """
+
+    def __init__(self, prob: float = 1, size: int = 50, scale: List[float] = [0.5, 1.0]):
+        """
+        Args:
+            scale (List[int]): Specifies the lower and upper bounds for the random area of the crop,
+             before resizing. The scale is defined with respect to the area of the original image.
+        """
+        super().__init__()
+        self.prob = prob
+        self.scale = scale
+        self.size = [size] * 3
+
+    def __call__(self, image):
+        """
+        Call method to apply random scale cropping and resizing to an image.
+
+        Args:
+            image (torch.Tensor): The input image.
+
+        Returns:
+            torch.Tensor: The transformed image.
+        """
+        if torch.rand(1) < self.prob:
+            random_scale = torch.empty(1).uniform_(*self.scale).item()
+            rand_cropper = RandScaleCrop(random_scale, random_size=False)
+            resizer = Resize(self.size, mode="trilinear")
+
+            for transform in [rand_cropper, resizer]:
+                image = transform(image)
+
+        return image
+
+

Ancestors

+
    +
  • monai.transforms.transform.Transform
  • +
  • abc.ABC
  • +
+

Class variables

+
+
var backend : list[TransformBackends]
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/utils/download_utils.html b/api_docs/fmcib/utils/download_utils.html new file mode 100644 index 0000000..65ad2aa --- /dev/null +++ b/api_docs/fmcib/utils/download_utils.html @@ -0,0 +1,132 @@ + + + + + + +fmcib.utils.download_utils API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.utils.download_utils

+
+
+
+ +Expand source code + +
import sys
+
+
+# create this bar_progress method which is invoked automatically from wget
+def bar_progress(current, total, width=80):
+    """
+    Display a progress bar for a download.
+
+    Args:
+        current (int): The current progress value.
+        total (int): The total progress value.
+        width (int, optional): The width of the progress bar in characters. Defaults to 80.
+
+    Raises:
+        None
+
+    Returns:
+        None
+    """
+    progress_message = "Downloading: %d%% [%d / %d] bytes" % (current / total * 100, current, total)
+    # Don't use print() as it will print in new line every time.
+    sys.stdout.write("\r" + progress_message)
+    sys.stdout.flush()
+
+
+
+
+
+
+
+

Functions

+
+
+def bar_progress(current, total, width=80) +
+
+

Display a progress bar for a download.

+

Args

+
+
current : int
+
The current progress value.
+
total : int
+
The total progress value.
+
width : int, optional
+
The width of the progress bar in characters. Defaults to 80.
+
+

Raises

+

None

+

Returns

+

None

+
+ +Expand source code + +
def bar_progress(current, total, width=80):
+    """
+    Display a progress bar for a download.
+
+    Args:
+        current (int): The current progress value.
+        total (int): The total progress value.
+        width (int, optional): The width of the progress bar in characters. Defaults to 80.
+
+    Raises:
+        None
+
+    Returns:
+        None
+    """
+    progress_message = "Downloading: %d%% [%d / %d] bytes" % (current / total * 100, current, total)
+    # Don't use print() as it will print in new line every time.
+    sys.stdout.write("\r" + progress_message)
+    sys.stdout.flush()
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/utils/idc_helper.html b/api_docs/fmcib/utils/idc_helper.html new file mode 100644 index 0000000..44d6edd --- /dev/null +++ b/api_docs/fmcib/utils/idc_helper.html @@ -0,0 +1,731 @@ + + + + + + +fmcib.utils.idc_helper API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.utils.idc_helper

+
+
+
+ +Expand source code + +
import concurrent.futures
+import os
+import sys
+from pathlib import Path
+
+import numpy as np
+import pandas as pd
+import pydicom
+import pydicom_seg
+import SimpleITK as sitk
+import wget
+
+
+class SuppressPrint:
+    """
+    A class that temporarily suppresses print statements.
+
+    Methods:
+        __enter__(): Sets sys.stdout to a dummy file object, suppressing print output.
+        __exit__(exc_type, exc_val, exc_tb): Restores sys.stdout to its original value.
+    """
+
+    def __enter__(self):
+        """
+        Enter the context manager and redirect the standard output to nothing.
+
+        Returns:
+            object: The context manager object.
+
+        Notes:
+            This context manager is used to redirect the standard output to nothing using the `open` function.
+            It saves the original standard output and assigns a new output destination as `/dev/null` on Unix-like systems.
+        """
+        self._original_stdout = sys.stdout
+        sys.stdout = open(os.devnull, "w")
+        return self
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        """
+        Restores the original stdout and closes the modified stdout.
+
+        Args:
+            exc_type (type): The exception type, if an exception occurred. Otherwise, None.
+            exc_val (Exception): The exception instance, if an exception occurred. Otherwise, None.
+            exc_tb (traceback): The traceback object, if an exception occurred. Otherwise, None.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        sys.stdout.close()
+        sys.stdout = self._original_stdout
+
+
+with SuppressPrint():
+    from dcmrtstruct2nii import dcmrtstruct2nii
+    from dcmrtstruct2nii.adapters.input.image.dcminputadapter import DcmInputAdapter
+    from dcmrtstruct2nii.adapters.output.niioutputadapter import NiiOutputAdapter
+
+from google.cloud import storage
+from loguru import logger
+from tqdm import tqdm
+
+
+def dcmseg2nii(dcmseg_path, output_dir, tag=""):
+    """
+    Convert a DICOM Segmentation object to NIfTI format and save the resulting segment images.
+
+    Args:
+        dcmseg_path (str): The file path of the DICOM Segmentation object.
+        output_dir (str): The directory where the NIfTI files will be saved.
+        tag (str, optional): An optional tag to prepend to the output file names. Defaults to "".
+    """
+    dcm = pydicom.dcmread(dcmseg_path)
+    reader = pydicom_seg.SegmentReader()
+    result = reader.read(dcm)
+
+    for segment_number in result.available_segments:
+        image = result.segment_image(segment_number)  # lazy construction
+        sitk.WriteImage(image, output_dir + f"/{tag}{segment_number}.nii.gz", True)
+
+
+def download_from_manifest(df, save_dir, samples):
+    """
+    Downloads DICOM data from IDC (Imaging Data Commons) based on the provided manifest.
+
+    Parameters:
+        df (pandas.DataFrame): The manifest DataFrame containing information about the DICOM files.
+        save_dir (pathlib.Path): The directory where the downloaded DICOM files will be saved.
+        samples (int): The number of random samples to download. If None, all available samples will be downloaded.
+
+    Returns:
+        None
+    """
+    # Instantiates a client
+    storage_client = storage.Client()
+    logger.info("Downloading DICOM data from IDC (Imaging Data Commons) ...")
+    (save_dir / "dicom").mkdir(exist_ok=True, parents=True)
+
+    if samples is not None:
+        assert "PatientID" in df.columns
+        rows_with_annotations = df[df["Modality"].isin(["RTSTRUCT", "SEG"])]
+        unique_elements = rows_with_annotations["PatientID"].unique()
+        selected_elements = np.random.choice(unique_elements, min(len(unique_elements), samples), replace=False)
+        df = df[df["PatientID"].isin(selected_elements)]
+
+    def download_file(row):
+        """
+        Download a file from Google Cloud Storage.
+
+        Args:
+            row (dict): A dictionary containing the row data.
+
+        Raises:
+            None
+
+        Returns:
+            None
+        """
+        bucket_name, directory, file = row["gcs_url"].split("/")[-3:]
+        fn = f"{directory}/{file}"
+        bucket = storage_client.bucket(bucket_name)
+        blob = bucket.blob(fn)
+
+        current_save_dir = save_dir / "dicom" / row["PatientID"] / row["StudyInstanceUID"]
+        current_save_dir.mkdir(exist_ok=True, parents=True)
+        blob.download_to_filename(
+            str(current_save_dir / f'{row["Modality"]}_{row["SeriesInstanceUID"]}_{row["InstanceNumber"]}.dcm')
+        )
+
+    with concurrent.futures.ThreadPoolExecutor() as executor:
+        futures = []
+        for idx, row in df.iterrows():
+            futures.append(executor.submit(download_file, row))
+        for future in tqdm(concurrent.futures.as_completed(futures), total=len(futures)):
+            pass
+
+
+def download_LUNG1(path, samples=None):
+    """
+    Downloads the LUNG1 data manifest from Dropbox and saves it to the specified path.
+
+    Parameters:
+        path (str): The directory path where the LUNG1 data manifest will be saved.
+        samples (list, optional): A list of specific samples to download. If None, all samples will be downloaded.
+
+    Returns:
+        None
+    """
+    save_dir = Path(path).resolve()
+    save_dir.mkdir(exist_ok=True, parents=True)
+
+    logger.info("Downloading LUNG1 manifest from Dropbox ...")
+    # Download LUNG1 data manifest, this is precomputed but any set of GCS dicom files can be used here
+    wget.download(
+        "https://www.dropbox.com/s/lkvv33nmepecyu5/nsclc_radiomics.csv?dl=1",
+        out=f"{save_dir}/nsclc_radiomics.csv",
+    )
+
+    df = pd.read_csv(f"{save_dir}/nsclc_radiomics.csv")
+
+    download_from_manifest(df, save_dir, samples)
+
+
+def download_RADIO(path, samples=None):
+    """
+    Downloads the RADIO manifest from Dropbox and saves it to the specified path.
+
+    Args:
+        path (str): The path where the manifest file will be saved.
+        samples (list, optional): A list of sample names to download. If None, all samples will be downloaded.
+
+    Returns:
+        None
+    """
+    save_dir = Path(path).resolve()
+    save_dir.mkdir(exist_ok=True, parents=True)
+
+    logger.info("Downloading RADIO manifest from Dropbox ...")
+    # Download RADIO data manifest, this is precomputed but any set of GCS dicom files can be used here
+    wget.download(
+        "https://www.dropbox.com/s/nhh1tb0rclrb7mw/nsclc_radiogenomics.csv?dl=1",
+        out=f"{save_dir}/nsclc_radiogenomics.csv",
+    )
+
+    df = pd.read_csv(f"{save_dir}/nsclc_radiogenomics.csv")
+
+    download_from_manifest(df, save_dir, samples)
+
+
+def process_series_dir(series_dir):
+    """
+    Process the series directory and extract relevant information.
+
+    Args:
+        series_dir (Path): The path to the series directory.
+
+    Returns:
+        dict: A dictionary containing the extracted information, including the image path, patient ID, and coordinates.
+
+    Raises:
+        None
+    """
+    # Check if RTSTRUCT file exists
+    rtstuct_files = list(series_dir.glob("*RTSTRUCT*"))
+    seg_files = list(series_dir.glob("*SEG*"))
+
+    if len(rtstuct_files) != 0:
+        dcmrtstruct2nii(str(rtstuct_files[0]), str(series_dir), str(series_dir))
+
+    elif len(seg_files) != 0:
+        dcmseg2nii(str(seg_files[0]), str(series_dir), tag="GTV-")
+
+        series_id = str(list(series_dir.glob("CT*.dcm"))[0]).split("_")[-2]
+        dicom_image = DcmInputAdapter().ingest(str(series_dir), series_id=series_id)
+        nii_output_adapter = NiiOutputAdapter()
+        nii_output_adapter.write(dicom_image, f"{series_dir}/image", gzip=True)
+    else:
+        logger.warning("Skipped file without any RTSTRUCT or SEG file")
+        return None
+
+    image = sitk.ReadImage(str(series_dir / "image.nii.gz"))
+    mask = sitk.ReadImage(str(list(series_dir.glob("*GTV-1*"))[0]))
+
+    # Get centroid from label shape filter
+    label_shape_filter = sitk.LabelShapeStatisticsImageFilter()
+    label_shape_filter.Execute(mask)
+
+    try:
+        centroid = label_shape_filter.GetCentroid(255)
+    except:
+        centroid = label_shape_filter.GetCentroid(1)
+
+    x, y, z = centroid
+
+    row = {
+        "image_path": str(series_dir / "image.nii.gz"),
+        "PatientID": series_dir.parent.name,
+        "coordX": x,
+        "coordY": y,
+        "coordZ": z,
+    }
+
+    return row
+
+
+def build_image_seed_dict(path, samples=None):
+    """
+    Build a dictionary of image seeds from DICOM files.
+
+    Args:
+        path (str): The path to the directory containing DICOM files.
+        samples (int, optional): The number of samples to process. If None, all samples will be processed.
+
+    Returns:
+        pd.DataFrame: A DataFrame containing the image seeds.
+    """
+    sorted_dir = Path(path).resolve()
+    series_dirs = [x.parent for x in sorted_dir.rglob("*.dcm")]
+    series_dirs = sorted(list(set(series_dirs)))
+
+    logger.info("Converting DICOM files to NIFTI ...")
+
+    if samples is None:
+        samples = len(series_dirs)
+
+    rows = []
+
+    num_workers = os.cpu_count()  # Adjust this value based on the number of available CPU cores
+    with concurrent.futures.ProcessPoolExecutor(num_workers) as executor:
+        processed_rows = list(tqdm(executor.map(process_series_dir, series_dirs[:samples]), total=samples))
+
+    rows = [row for row in processed_rows if row]
+    return pd.DataFrame(rows)
+
+
+
+
+
+
+
+

Functions

+
+
+def build_image_seed_dict(path, samples=None) +
+
+

Build a dictionary of image seeds from DICOM files.

+

Args

+
+
path : str
+
The path to the directory containing DICOM files.
+
samples : int, optional
+
The number of samples to process. If None, all samples will be processed.
+
+

Returns

+
+
pd.DataFrame
+
A DataFrame containing the image seeds.
+
+
+ +Expand source code + +
def build_image_seed_dict(path, samples=None):
+    """
+    Build a dictionary of image seeds from DICOM files.
+
+    Args:
+        path (str): The path to the directory containing DICOM files.
+        samples (int, optional): The number of samples to process. If None, all samples will be processed.
+
+    Returns:
+        pd.DataFrame: A DataFrame containing the image seeds.
+    """
+    sorted_dir = Path(path).resolve()
+    series_dirs = [x.parent for x in sorted_dir.rglob("*.dcm")]
+    series_dirs = sorted(list(set(series_dirs)))
+
+    logger.info("Converting DICOM files to NIFTI ...")
+
+    if samples is None:
+        samples = len(series_dirs)
+
+    rows = []
+
+    num_workers = os.cpu_count()  # Adjust this value based on the number of available CPU cores
+    with concurrent.futures.ProcessPoolExecutor(num_workers) as executor:
+        processed_rows = list(tqdm(executor.map(process_series_dir, series_dirs[:samples]), total=samples))
+
+    rows = [row for row in processed_rows if row]
+    return pd.DataFrame(rows)
+
+
+
+def dcmseg2nii(dcmseg_path, output_dir, tag='') +
+
+

Convert a DICOM Segmentation object to NIfTI format and save the resulting segment images.

+

Args

+
+
dcmseg_path : str
+
The file path of the DICOM Segmentation object.
+
output_dir : str
+
The directory where the NIfTI files will be saved.
+
tag : str, optional
+
An optional tag to prepend to the output file names. Defaults to "".
+
+
+ +Expand source code + +
def dcmseg2nii(dcmseg_path, output_dir, tag=""):
+    """
+    Convert a DICOM Segmentation object to NIfTI format and save the resulting segment images.
+
+    Args:
+        dcmseg_path (str): The file path of the DICOM Segmentation object.
+        output_dir (str): The directory where the NIfTI files will be saved.
+        tag (str, optional): An optional tag to prepend to the output file names. Defaults to "".
+    """
+    dcm = pydicom.dcmread(dcmseg_path)
+    reader = pydicom_seg.SegmentReader()
+    result = reader.read(dcm)
+
+    for segment_number in result.available_segments:
+        image = result.segment_image(segment_number)  # lazy construction
+        sitk.WriteImage(image, output_dir + f"/{tag}{segment_number}.nii.gz", True)
+
+
+
+def download_LUNG1(path, samples=None) +
+
+

Downloads the LUNG1 data manifest from Dropbox and saves it to the specified path.

+

Parameters

+

path (str): The directory path where the LUNG1 data manifest will be saved. +samples (list, optional): A list of specific samples to download. If None, all samples will be downloaded.

+

Returns

+

None

+
+ +Expand source code + +
def download_LUNG1(path, samples=None):
+    """
+    Downloads the LUNG1 data manifest from Dropbox and saves it to the specified path.
+
+    Parameters:
+        path (str): The directory path where the LUNG1 data manifest will be saved.
+        samples (list, optional): A list of specific samples to download. If None, all samples will be downloaded.
+
+    Returns:
+        None
+    """
+    save_dir = Path(path).resolve()
+    save_dir.mkdir(exist_ok=True, parents=True)
+
+    logger.info("Downloading LUNG1 manifest from Dropbox ...")
+    # Download LUNG1 data manifest, this is precomputed but any set of GCS dicom files can be used here
+    wget.download(
+        "https://www.dropbox.com/s/lkvv33nmepecyu5/nsclc_radiomics.csv?dl=1",
+        out=f"{save_dir}/nsclc_radiomics.csv",
+    )
+
+    df = pd.read_csv(f"{save_dir}/nsclc_radiomics.csv")
+
+    download_from_manifest(df, save_dir, samples)
+
+
+
+def download_RADIO(path, samples=None) +
+
+

Downloads the RADIO manifest from Dropbox and saves it to the specified path.

+

Args

+
+
path : str
+
The path where the manifest file will be saved.
+
samples : list, optional
+
A list of sample names to download. If None, all samples will be downloaded.
+
+

Returns

+

None

+
+ +Expand source code + +
def download_RADIO(path, samples=None):
+    """
+    Downloads the RADIO manifest from Dropbox and saves it to the specified path.
+
+    Args:
+        path (str): The path where the manifest file will be saved.
+        samples (list, optional): A list of sample names to download. If None, all samples will be downloaded.
+
+    Returns:
+        None
+    """
+    save_dir = Path(path).resolve()
+    save_dir.mkdir(exist_ok=True, parents=True)
+
+    logger.info("Downloading RADIO manifest from Dropbox ...")
+    # Download RADIO data manifest, this is precomputed but any set of GCS dicom files can be used here
+    wget.download(
+        "https://www.dropbox.com/s/nhh1tb0rclrb7mw/nsclc_radiogenomics.csv?dl=1",
+        out=f"{save_dir}/nsclc_radiogenomics.csv",
+    )
+
+    df = pd.read_csv(f"{save_dir}/nsclc_radiogenomics.csv")
+
+    download_from_manifest(df, save_dir, samples)
+
+
+
+def download_from_manifest(df, save_dir, samples) +
+
+

Downloads DICOM data from IDC (Imaging Data Commons) based on the provided manifest.

+

Parameters

+

df (pandas.DataFrame): The manifest DataFrame containing information about the DICOM files. +save_dir (pathlib.Path): The directory where the downloaded DICOM files will be saved. +samples (int): The number of random samples to download. If None, all available samples will be downloaded.

+

Returns

+

None

+
+ +Expand source code + +
def download_from_manifest(df, save_dir, samples):
+    """
+    Downloads DICOM data from IDC (Imaging Data Commons) based on the provided manifest.
+
+    Parameters:
+        df (pandas.DataFrame): The manifest DataFrame containing information about the DICOM files.
+        save_dir (pathlib.Path): The directory where the downloaded DICOM files will be saved.
+        samples (int): The number of random samples to download. If None, all available samples will be downloaded.
+
+    Returns:
+        None
+    """
+    # Instantiates a client
+    storage_client = storage.Client()
+    logger.info("Downloading DICOM data from IDC (Imaging Data Commons) ...")
+    (save_dir / "dicom").mkdir(exist_ok=True, parents=True)
+
+    if samples is not None:
+        assert "PatientID" in df.columns
+        rows_with_annotations = df[df["Modality"].isin(["RTSTRUCT", "SEG"])]
+        unique_elements = rows_with_annotations["PatientID"].unique()
+        selected_elements = np.random.choice(unique_elements, min(len(unique_elements), samples), replace=False)
+        df = df[df["PatientID"].isin(selected_elements)]
+
+    def download_file(row):
+        """
+        Download a file from Google Cloud Storage.
+
+        Args:
+            row (dict): A dictionary containing the row data.
+
+        Raises:
+            None
+
+        Returns:
+            None
+        """
+        bucket_name, directory, file = row["gcs_url"].split("/")[-3:]
+        fn = f"{directory}/{file}"
+        bucket = storage_client.bucket(bucket_name)
+        blob = bucket.blob(fn)
+
+        current_save_dir = save_dir / "dicom" / row["PatientID"] / row["StudyInstanceUID"]
+        current_save_dir.mkdir(exist_ok=True, parents=True)
+        blob.download_to_filename(
+            str(current_save_dir / f'{row["Modality"]}_{row["SeriesInstanceUID"]}_{row["InstanceNumber"]}.dcm')
+        )
+
+    with concurrent.futures.ThreadPoolExecutor() as executor:
+        futures = []
+        for idx, row in df.iterrows():
+            futures.append(executor.submit(download_file, row))
+        for future in tqdm(concurrent.futures.as_completed(futures), total=len(futures)):
+            pass
+
+
+
+def process_series_dir(series_dir) +
+
+

Process the series directory and extract relevant information.

+

Args

+
+
series_dir : Path
+
The path to the series directory.
+
+

Returns

+
+
dict
+
A dictionary containing the extracted information, including the image path, patient ID, and coordinates.
+
+

Raises

+

None

+
+ +Expand source code + +
def process_series_dir(series_dir):
+    """
+    Process the series directory and extract relevant information.
+
+    Args:
+        series_dir (Path): The path to the series directory.
+
+    Returns:
+        dict: A dictionary containing the extracted information, including the image path, patient ID, and coordinates.
+
+    Raises:
+        None
+    """
+    # Check if RTSTRUCT file exists
+    rtstuct_files = list(series_dir.glob("*RTSTRUCT*"))
+    seg_files = list(series_dir.glob("*SEG*"))
+
+    if len(rtstuct_files) != 0:
+        dcmrtstruct2nii(str(rtstuct_files[0]), str(series_dir), str(series_dir))
+
+    elif len(seg_files) != 0:
+        dcmseg2nii(str(seg_files[0]), str(series_dir), tag="GTV-")
+
+        series_id = str(list(series_dir.glob("CT*.dcm"))[0]).split("_")[-2]
+        dicom_image = DcmInputAdapter().ingest(str(series_dir), series_id=series_id)
+        nii_output_adapter = NiiOutputAdapter()
+        nii_output_adapter.write(dicom_image, f"{series_dir}/image", gzip=True)
+    else:
+        logger.warning("Skipped file without any RTSTRUCT or SEG file")
+        return None
+
+    image = sitk.ReadImage(str(series_dir / "image.nii.gz"))
+    mask = sitk.ReadImage(str(list(series_dir.glob("*GTV-1*"))[0]))
+
+    # Get centroid from label shape filter
+    label_shape_filter = sitk.LabelShapeStatisticsImageFilter()
+    label_shape_filter.Execute(mask)
+
+    try:
+        centroid = label_shape_filter.GetCentroid(255)
+    except:
+        centroid = label_shape_filter.GetCentroid(1)
+
+    x, y, z = centroid
+
+    row = {
+        "image_path": str(series_dir / "image.nii.gz"),
+        "PatientID": series_dir.parent.name,
+        "coordX": x,
+        "coordY": y,
+        "coordZ": z,
+    }
+
+    return row
+
+
+
+
+
+

Classes

+
+
+class SuppressPrint +
+
+

A class that temporarily suppresses print statements.

+

Methods

+

enter(): Sets sys.stdout to a dummy file object, suppressing print output. +exit(exc_type, exc_val, exc_tb): Restores sys.stdout to its original value.

+
+ +Expand source code + +
class SuppressPrint:
+    """
+    A class that temporarily suppresses print statements.
+
+    Methods:
+        __enter__(): Sets sys.stdout to a dummy file object, suppressing print output.
+        __exit__(exc_type, exc_val, exc_tb): Restores sys.stdout to its original value.
+    """
+
+    def __enter__(self):
+        """
+        Enter the context manager and redirect the standard output to nothing.
+
+        Returns:
+            object: The context manager object.
+
+        Notes:
+            This context manager is used to redirect the standard output to nothing using the `open` function.
+            It saves the original standard output and assigns a new output destination as `/dev/null` on Unix-like systems.
+        """
+        self._original_stdout = sys.stdout
+        sys.stdout = open(os.devnull, "w")
+        return self
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        """
+        Restores the original stdout and closes the modified stdout.
+
+        Args:
+            exc_type (type): The exception type, if an exception occurred. Otherwise, None.
+            exc_val (Exception): The exception instance, if an exception occurred. Otherwise, None.
+            exc_tb (traceback): The traceback object, if an exception occurred. Otherwise, None.
+
+        Returns:
+            None
+
+        Raises:
+            None
+        """
+        sys.stdout.close()
+        sys.stdout = self._original_stdout
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/utils/index.html b/api_docs/fmcib/utils/index.html new file mode 100644 index 0000000..3048cf4 --- /dev/null +++ b/api_docs/fmcib/utils/index.html @@ -0,0 +1,77 @@ + + + + + + +fmcib.utils API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.utils

+
+
+
+ +Expand source code + +
from .download_utils import bar_progress
+from .idc_helper import *
+
+
+
+

Sub-modules

+
+
fmcib.utils.download_utils
+
+
+
+
fmcib.utils.idc_helper
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/visualization/index.html b/api_docs/fmcib/visualization/index.html new file mode 100644 index 0000000..4430606 --- /dev/null +++ b/api_docs/fmcib/visualization/index.html @@ -0,0 +1,71 @@ + + + + + + +fmcib.visualization API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.visualization

+
+
+
+ +Expand source code + +
from .verify_io import visualize_seed_point
+
+
+
+

Sub-modules

+
+
fmcib.visualization.verify_io
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/api_docs/fmcib/visualization/verify_io.html b/api_docs/fmcib/visualization/verify_io.html new file mode 100644 index 0000000..d59bd61 --- /dev/null +++ b/api_docs/fmcib/visualization/verify_io.html @@ -0,0 +1,244 @@ + + + + + + +fmcib.visualization.verify_io API documentation + + + + + + + + + + + +
+
+
+

Module fmcib.visualization.verify_io

+
+
+
+ +Expand source code + +
import matplotlib.pyplot as plt
+import monai.transforms as monai_transforms
+import numpy as np
+import torch
+from monai.visualize import blend_images
+
+
+def visualize_seed_point(row):
+    """
+    This function visualizes a seed point on an image.
+
+    Args:
+        row (pandas.Series): A row containing the information of the seed point, including the image path and the coordinates.
+            The following columns are expected: "image_path", "coordX", "coordY", "coordZ".
+
+    Returns:
+        None
+    """
+    # Define the transformation pipeline
+    T = monai_transforms.Compose(
+        [
+            monai_transforms.LoadImaged(keys=["image_path"], image_only=True, reader="ITKReader"),
+            monai_transforms.EnsureChannelFirstd(keys=["image_path"]),
+            monai_transforms.Spacingd(keys=["image_path"], pixdim=1, mode="bilinear", align_corners=True, diagonal=True),
+            monai_transforms.ScaleIntensityRanged(keys=["image_path"], a_min=-1024, a_max=3072, b_min=0, b_max=1, clip=True),
+            monai_transforms.Orientationd(keys=["image_path"], axcodes="LPS"),
+            monai_transforms.SelectItemsd(keys=["image_path", "coordX", "coordY", "coordZ"]),
+        ]
+    )
+
+    # Apply the transformation pipeline
+    out = T(row)
+
+    # Calculate the center of the image
+    center = (-out["coordX"], -out["coordY"], out["coordZ"])
+    center = np.linalg.inv(np.array(out["image_path"].affine)) @ np.array(center + (1,))
+    center = [int(x) for x in center[:3]]
+
+    # Define the image and label
+    image = out["image_path"]
+    label = torch.zeros_like(image)
+
+    # Define the dimensions of the image and the patch
+    C, H, W, D = image.shape
+    Ph, Pw, Pd = 50, 50, 50
+
+    # Calculate and clamp the ranges for cropping
+    min_h, max_h = max(center[0] - Ph // 2, 0), min(center[0] + Ph // 2, H)
+    min_w, max_w = max(center[1] - Pw // 2, 0), min(center[1] + Pw // 2, W)
+    min_d, max_d = max(center[2] - Pd // 2, 0), min(center[2] + Pd // 2, D)
+
+    # Check if coordinates are valid
+    assert min_h < max_h, "Invalid coordinates: min_h >= max_h"
+    assert min_w < max_w, "Invalid coordinates: min_w >= max_w"
+    assert min_d < max_d, "Invalid coordinates: min_d >= max_d"
+
+    # Define the label for the cropped region
+    label[:, min_h:max_h, min_w:max_w, min_d:max_d] = 1
+
+    # Blend the image and the label
+    ret = blend_images(image=image, label=label, alpha=0.3, cmap="hsv", rescale_arrays=False)
+    ret = ret.permute(3, 2, 1, 0)
+
+    # Plot axial slice
+    plt.figure(figsize=(10, 10))
+    plt.subplot(1, 3, 1)
+    plt.imshow(ret[center[2], :, :])
+    plt.title("Axial")
+    plt.axis("off")
+
+    # Plot sagittal slice
+    plt.subplot(1, 3, 2)
+    plt.imshow(np.flipud(ret[:, center[1], :]))
+    plt.title("Coronal")
+    plt.axis("off")
+
+    # Plot coronal slice
+    plt.subplot(1, 3, 3)
+    plt.imshow(np.flipud(ret[:, :, center[0]]))
+    plt.title("Sagittal")
+
+    plt.axis("off")
+    plt.show()
+
+
+
+
+
+
+
+

Functions

+
+
+def visualize_seed_point(row) +
+
+

This function visualizes a seed point on an image.

+

Args

+
+
row : pandas.Series
+
A row containing the information of the seed point, including the image path and the coordinates. +The following columns are expected: "image_path", "coordX", "coordY", "coordZ".
+
+

Returns

+

None

+
+ +Expand source code + +
def visualize_seed_point(row):
+    """
+    This function visualizes a seed point on an image.
+
+    Args:
+        row (pandas.Series): A row containing the information of the seed point, including the image path and the coordinates.
+            The following columns are expected: "image_path", "coordX", "coordY", "coordZ".
+
+    Returns:
+        None
+    """
+    # Define the transformation pipeline
+    T = monai_transforms.Compose(
+        [
+            monai_transforms.LoadImaged(keys=["image_path"], image_only=True, reader="ITKReader"),
+            monai_transforms.EnsureChannelFirstd(keys=["image_path"]),
+            monai_transforms.Spacingd(keys=["image_path"], pixdim=1, mode="bilinear", align_corners=True, diagonal=True),
+            monai_transforms.ScaleIntensityRanged(keys=["image_path"], a_min=-1024, a_max=3072, b_min=0, b_max=1, clip=True),
+            monai_transforms.Orientationd(keys=["image_path"], axcodes="LPS"),
+            monai_transforms.SelectItemsd(keys=["image_path", "coordX", "coordY", "coordZ"]),
+        ]
+    )
+
+    # Apply the transformation pipeline
+    out = T(row)
+
+    # Calculate the center of the image
+    center = (-out["coordX"], -out["coordY"], out["coordZ"])
+    center = np.linalg.inv(np.array(out["image_path"].affine)) @ np.array(center + (1,))
+    center = [int(x) for x in center[:3]]
+
+    # Define the image and label
+    image = out["image_path"]
+    label = torch.zeros_like(image)
+
+    # Define the dimensions of the image and the patch
+    C, H, W, D = image.shape
+    Ph, Pw, Pd = 50, 50, 50
+
+    # Calculate and clamp the ranges for cropping
+    min_h, max_h = max(center[0] - Ph // 2, 0), min(center[0] + Ph // 2, H)
+    min_w, max_w = max(center[1] - Pw // 2, 0), min(center[1] + Pw // 2, W)
+    min_d, max_d = max(center[2] - Pd // 2, 0), min(center[2] + Pd // 2, D)
+
+    # Check if coordinates are valid
+    assert min_h < max_h, "Invalid coordinates: min_h >= max_h"
+    assert min_w < max_w, "Invalid coordinates: min_w >= max_w"
+    assert min_d < max_d, "Invalid coordinates: min_d >= max_d"
+
+    # Define the label for the cropped region
+    label[:, min_h:max_h, min_w:max_w, min_d:max_d] = 1
+
+    # Blend the image and the label
+    ret = blend_images(image=image, label=label, alpha=0.3, cmap="hsv", rescale_arrays=False)
+    ret = ret.permute(3, 2, 1, 0)
+
+    # Plot axial slice
+    plt.figure(figsize=(10, 10))
+    plt.subplot(1, 3, 1)
+    plt.imshow(ret[center[2], :, :])
+    plt.title("Axial")
+    plt.axis("off")
+
+    # Plot sagittal slice
+    plt.subplot(1, 3, 2)
+    plt.imshow(np.flipud(ret[:, center[1], :]))
+    plt.title("Coronal")
+    plt.axis("off")
+
+    # Plot coronal slice
+    plt.subplot(1, 3, 3)
+    plt.imshow(np.flipud(ret[:, :, center[0]]))
+    plt.title("Sagittal")
+
+    plt.axis("off")
+    plt.show()
+
+
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/assets/Header.png b/assets/Header.png new file mode 100644 index 0000000000000000000000000000000000000000..e8ee1659860076ed4ba4a804b55f3465c3a7faed GIT binary patch literal 376734 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⁡gkvs_4_z|tszN@_JK03jrQK_ zgo!AD?9NITP3Mq<-V(3Zy6RDu*Yv;lFg^JWOALw4(q7HyG(Idbh#wFCJ=gH3kvYzW z2vle#AWOnpa$v@P(of{ux4Zjr-|6B&>TMCl_-`XV!sB0SRkQp=8PMVUhsN7}7fYHy zHPw?RJH+q@UQ)_}s4oQK-XwK$5Pzsu2^mHqRy90c-74jEM7*}14XRudPU5maZfykijgb2lR&a#M1$XJNT1!(Qoezbp&EX^kqt34a~Z38u;SKa4}Vin%*w)mHxZC9ES9x3MMEerc!e9igz#JXBB4qWAx zB!k>q-B2v#68m&~JCSbf%P&JZT5)#GYmZGLypvTGZ9Y7}E_Zkr*}*Gz!N$43Bb*)9 zBLTcSDE<)!$Qv1OwYD=aobx(;>WA{HC>f4OGS)~T7zW%m`()n$p>&-ADi|l`QsodR z7hoc9q~t7DL6}M~`!%A-%ZwF(|5 zRz3e8s=hlO3iyxvDsf6hWOc@6UgjAYk*LU7IeTZ%lAT><*>UzBN9f2Zdt}cG*`bIF znP<=E>-Rjr-|O}Gvv9-rKHtyhy*_yF{$dl~qTJ8m7z;NY#wNlZ@eCZCCwaV_+70K* z7zc95ijkYs6RH8MNf{}VpG{i1^ZBBdT-1OF6z>?)d+j=*_S_C2Y)U3!rocSZAW>7vGCS6 z5ct2^ml-YtL{?}pCV(iSA}EJ|eET^4@`?I2I4jB5sdQk4(WH42Dc?$zW)okOh@P+3 zE;bDU`gmZV=)1j&T47i06MF>h9unCAV`va%#=5m_3R@ej^Tx%8HcxWP{2e|WmYTHn z>1VVdvo&80a9_){S?r>E_)Z;#P^nN>WFUEqiACSVM&x`Pc`4jMLQssg!KLD8v6a(H zk4?Mi0WLi>F`?J#MkObO55~w+Qp#aQ0rXg<52%98_vCPrKN3RPHU;yN*Xh2AhXW>6 zF+k8A7V5$u+>8l8L*WCSltB64sC1npFfq z+{?cIUZO+Sy&^8bT?$uK1~)x@U_x_}J)1qaf*ZqUy$(xHlxO(kn;^&3SX8Nw?F!#f zdV8&wOA1$gvO6`kx?9M2()EF@z|JPzl6^ZZ)V2?0!HHZ?kD=tgrn@r7zL@k}Gr0{W z_^XDw_Da4yBZQJ(k=jmc%M(r_#thtUI@XH1^m{t?E?SFHCI(P zUIo1>yAj;FCqBlO78JJy@#M6$dW-pvC!*k8+5Z*jzZYMcWO7yW{rrBixS!QniQ|k% zrgWg5DtXELPtT*(L=(S*n>+r$n&0B4zO0Vd09lhrDrl>aQ#P*#$VLFt^~o4$hSX_P z)KrWrt@@WoiW3D)Uf!Vm-O=Kb47q4&{F?5ev#{0-E#qpB%*=L(1e~X8smjqifMQj!L zvf}@0Rcr9r`z_Uoa#Cs4t=0s_m)v>gjK91Vm|gON@3 zfG)29u4r)}sHbf7YN6}9Yjn~|mu|^uU+zZ-J-VBjZM+Dm5K`%<6}r5FV%@I=a2(s$ zy&;0CSP5BftRN@UR$52aHd1sbOZIICBLYh$ufV7FeUS#6oqAS###gZ;#Me3C*_$X( zbQ(q+Fvxkzn;;x)*_$v8juXoXz)eJI{I3T5y5#Zm_t9zL^)|DzwEp_-6niK?v7QPn{09AXj8)_zi~Ne|83s^whNG;Mp|5E z_uh%Vb#W)X9Q}o7J+bVUAuTQu?^nD4iiQ)%+gAaegC5@Ls8%=*^R2tcsT; zO99HpeCzvn_xaZc7 z^b!~vfR7OJ41I6v1>&)0@j{wL2V*~{xw36P5w;*<&Z`7c5GcW8Y8PAHvQT=;zy4F#x=m(; zAjRRl652VnB+5(u^`w=<8u*f)RcO{Y9)q$*(VEw-dBxPwhwoe7-^OXEJ@I@EGU-Kt6 z)v*R>qg*19*+6yS_zH}!$zOgM&AxLV6Cv)a*{`Ik--0W zW++AiXmSdtO&P+elD{I3LAFT9LCuvJilZYfZ5cyMVV#^NRzH`Nm6e~JA5@wEq&)Nk zdUR!n9Vl{5(+D-BT@qxt_|Yo;eqz0N6auSPcTGR_XBw0hPn77Sg3A|b-~BYQ#XFyN zRFb+-L*9Mg^>4s*-H6**#>RNjS~6s} z^g+#o;zU{VFmm*4xC^oZ(+h?rcGq<6r=^84Tu2?p&w9a&De#BS^OUcBOyYHUN&$iF z(oU6gy91@#Zcey-=~-WikrG`*yEEx#SYngUUWW9Z%tmwJwfV8x4jt{Dk=Tl7v z4}X&nuxhvUq^lBg{Z9#_U6pAAtU+t_C%Y=C_tIl#t}{J2-YNAzskm&AuZn=UT#RjAR7h1_R83}jjVnV#4bBs-SgI7WwaOIcX= zl{#4NJKn7157GR$>4a|TZK#|N(o3L@s2a^6L`6qmBE{0!jM#n+Y%T~2R_}tzBl?Fb zhnFHEBTWN*0Wxz_88${`XrVW1`xVrr49lpMJ8wjKt0@;9;ua*}ZB9n!Vzp7`J)RjJ zAi||i`uIVMph0PBcMniefuZNR+{fu9h@2c0VVMCgbwZlCTplIP{dO(Um0Hel4B%3V zvAil3yz_G6QMnkQxhV2@A*vYQD-ZD%?FIT^$e^MbVoJ0vZw>(Kfp3aH)miJ~5)2Jf*Zd`Kk-X5IG zaA16}J8sT$G~Nl+MitL*j2XH_5@o9X86Q88v4Y(rfpd6~(`p zRW;B0*5SWe0Ia018eQPa>!GtE*AbxbSl?W99rT_qIhteYmF~ZxXjGR5r$a_(l<|fr(-kGy3v-3kkiTYi;^P&?`Ma-!Fh(&PT4HGuB@=lmYmpM9AsshCvi_^?y%dnsypBdNGS^rj@S`el@pRv{jT* zx9i)#c+HVMGt-eIh8!kcvVro)5jLj$gTMmuz?$KY2DASSE+9@oMK#!+VV`^T=p(Qu zBdT$jlX+~Z?IE>%EBA2{@xh{>9proQ>Q392LB{u@#_X;m+la07zy7YgYv?v=!KgJ0Q)$f+oo{ z0nhvBd;2vPBN)!`PB1)?b8_|ax68lMQkB#63&o?VMoZ=?BdFx8CMQG`NeF#TB5%qB zRs2LWBsP3A2v)RiC@8$mL5b#xKH^$4$UCyd8I6JXk1N@gFRP|(6M!`lVM!mNPLrIG ztB)JB0d?1<1Oo&S=OIc@fiYR4AA>V8#=nXyDy6|Ku*WmJ&qOx z!k5`0Nsgt%OFu!7A{eAv?*kcJc`rZD>T-LuZ*;Y+hvCOMa^mBBKMF4e?AYfYt1&9{ z3$DmNe$FihZSzvudb|n4VG;%9bwBHbRwS4z_B!Oo21IUMWzGj6M&x3pDt9B{`^u}0 zU$nhB2Qzz3P3D9FDju2bjaIc6vyFM1;N$|=?$6EBy=Vc9l;3+@-`~OOeuVq0>E|Oq zx#6pp%WR`*>FFmjzz-fvdVW8PHSFL7UbkG0s)%cqW+G0_J~)uHdSCFx@$4sE<3?T6 zp7+`OJd6L|-=S)rQvVyYFAq>5Dtb0L|1>PbUK9M2?6uSFRrOUC*({gP%sP_AeTSmQ z;NAw$$8GbnG~J>jQ#TW)A3bYv331J=m+juMXxkaw>_z!%|VXoPT z$l@x}pflTPp1t7S=$^!9ACR>yTtgl9w`C0OAsc-TwupF>8ms=v{#3D2{TgRGXFdA; zQU&kE%DR(Uljc2x>49+H?fW_XaupLk|H?Wue0TNay2NAsi!!U_|E*J#!rVloQK^iQ zKMwl-Xf;u2i${QNk^nPpljx+k$CdNCBneAMEY+06-c`|%ds;lQB?Xv~o+QdUfMf38 zk^-WW#?ts9{o9-BsHJLt4id=g40E7SmW5iLYv3_x6xaos!VVb4+q>(fYd0*R*%)+( zV23OvYf!BCVp{4OEJoiRPwX@NjTt%|r@t3Beg|X8fYrS8qqD;he+e>B(;bj(%^=5( zcR?Wtu*&NJ%|ze0WAv2|?C&M~Z^~I&TT#lHQnEV%XhE}B5gtT|p+sOcQBOgV69AFM z?BwY2qQdueVV&kXwc255$=^pHsHBDOG}t@*+ao21ww<48)>@HPnd)cafvF2Ll& z5VP2UMh`=d5SGurQ`d!r6cB~XTO+?o+n+hi?8!T|t(JphCCJ%;E#o5y8GTddqmFR4 zjkTn$SH@Khp?KykE;btqsrPfjBMs`HIY=pNi0KGl{^Y zq@?{{=^kj5+E%qXz2C;beWNky?s?D(xWsAk=tSufP5h7N)nDG_P0(l`!TX=?fH1nv z?JUgUvdrl`OB%DJ6&3b}8jIIofwkI|*0Z(QlfPhPRApHIe`gs9GKnK>-(aTQjYQs1 z`UJKI9xNrQ{C~}s54KnRTNY$FXnV_$Pp6iB|MBQWRjcu93w%ktPvQI}swuSblwywy<=zl(I zA#NJOz4@F4KwkzN94UGFJn(AmFs|;Sdf)UQ}EL()L#<5fi==^Hyg|o{iqWpN^+~@pai{9J25Ib z+XSZ;YwO!-M3G)tXL@?F8;tA%C76@J1O-wqIP=_#Ik1}gw>v)|!4$7D-sfc43CE;Z zW7FMlQ_GS6PNPNzvg&&OrQ~g^7#=o+W)K#SIpeo{X8U^hf;Ix*AVZM(AUbDDN(Tkv zbqJom4!mF}Qt`#xf7L&alQZhPfU5xix!@TE0oi1p*Nt8zA{QmEn>&0mX1NU>0tych zRGzCIUV089TAT{z4;n}Hp8_QWB}ovaeBr!!q}8y)Cn_;y2mQQiL8}D5{GZRP$*Z-k z%!^3{-23mjo;NZWPR0S&`2gI2X0IKAZWuwK6@(wbKI(m}`}-?P_q=Zv zxjk==|LC=^BbH4=$l5=0e_+GIOWT{=@-!~#k(iRz`afZU@kJZl;*jc!T-+cyt}FVy zx#b|-MF3=3yx|l+<=$BXg^lsJ9dA@Nl4)_^n45lep@b=XW{M61La%C zMBiDKvMsjg2eo-Ey1bpOMOwu(Za#|n0GTrR={7d&zra&au~qGOcB%%JSov?QpPe-6 ziVpwpP`ai4^Qcx6YCW^o8oK!WFY(m)_r~F~4J(wHO5s3Eb4b?(>{hIgU{3J!vWTb* z8Mm#NEm_fMf8OwgwjrI|pbst<-+bcjy08}2Z-SBho(b6TkSQbm6$Sp+Gx&j~Z$1|z zA+`{bEYYl*cK)cjug$we-yY&mq9N*OY<`9UMmzQr{4r|bC}W`9qjxp4dF3ni^sIr* z*Hysq?>BiC{#QG9>4Hfluk53d?}T+=&_P2|V5( z`~ohI)uJaS$jPs8BM;%=UR1CKvlAL1Bd z&!?hTI-pi7F*@^^_2sgzKA+lSmG~tj%=N(Mq_)bQt_0K>Cz#A;uL-}cAZ;&l-g74X z>+D+O#{Fj5b5W&-?;JIm!t1Id*IyI9M{B3s1v-AK_NCsd_FoO%Zo&U(Dp>rl1vN-p zKwHJjhAF#gl?|}UR!riv@)QDH`^=bI;QUtVjWG4UFwOo4OJ89(*dA;#HKgc$j{d;M z=6qb&xx~AOo|Ob5 z&}!#<1VSq#kaExtaXf(HJ3Bk4R=-f*3CrQ_HI^+8?~Xf@HT;p2n~&bNeP!HA?w5Wh z^$LT&OVP@%5=05fs!BlJ1%&y%-GY@`%%D|;B17bTBx-{4(vzTpAodE_!-Om%@ua%pH7&l8Epu2`2}V6oAKmqYhd!zIeEbIn(cONeUn89|_8yd=GCA2K!YnB3w`EQ;}m0J&LR= zW-2fCj^37RXtdCsT>9ikX}ti|Fk=IM{Q@dLu02FF(axsd$)5Q?| zOGBJ*MQlVo8WdbK67UWF$VvMf3Bs7frfuvBh^<~z^FL&dKI#+3ABRT!{J{cY46x($t>mI7tD!}OQcP=FaJUhgoInBU*|T5q`y=8WC_c_r!ZqF^lNF+SbGGM|$_ zUZ0E`yxLOK*2f3EJBI+hRlP91{=mOI%>3nPAj|1SMdn$(r^g|M8TbV=CxvP_!5UgHwc21WyXixCYyvY{_5eNfF}b~GWJ^|>BFwJs z3T>|$gR3~ECsgNlS$VtAoxq3#v)|-mLPyI<4Jp{4eu4k`%)T~kH4J*5S)cG+NDbdN z4Cpf}S58vOzYKXrE&V#UwL+OnZccnt`UWIcoGFt&`aY<$-vs{{{_#v8fLqh;3501i zKbC-AkIU08rjknmu~|<{=|L(f5Qakl5b9<$w(2U08Cp6~I~nWVmswJ&Q-A$~hKb}N zM25~iAC}B0|nWq z=_PK2z51UTevn|*P5ikdg&^T*bAll_%#{_-=XQDZAV`kLD(`klJ>|F8p^fWesVbeo zb)4oB8Y5pJfqamWhk%o?vBz)u&bmxb$Oo#U7=$~r6-VAvhUI)5UaF3oKWdB->K7Vw z5`?4dAHE|I6GF z>12chIRa=v9wZ;8A@BJpW&Y(?W_eI=H{W4$x&=ssEEKBC_&wSVRK1l^-0h(PMLqpV ztWv>AV+Z?kqE5MohNg&6=+8W@lP+}dZwevaL7&dryC&LAm1r5Q)C$RuU`Wy!bSV{i zQrY%vrJK5oC$cMc zbaW)#VF!)Is7uRbx(HntcXxM1@X3lw=F>6S;W79EGcXu9m_1&do!P@VrjN&{assvD zNgJ0;jorxI7ge_ZqmeA$s<}aw+9_A_E5F?BrzpDDHdc5=q&-?I^yZ;uCoiq`NT1z_ znP-{jtt0W-@*fe^(OMppzomJLrqu292MkeMzs+s#e+<1G*=IKem*<3NMgrogq{LUMM$M*tNX zbwMwM{knMoNQ=n%9r1g#!umx z17F4z?Rb;v%+{4NFMeh!H{!Tjp*y}8<@CLC`5qXVDgtXlja~dWVAASuwNbV&{4Ux| zOUEb0C6Qj!FJ6<|yI8t2Sh8sHG2A>O;u=s$iy8W#IM%Pe*wudy7@x+|NJj_Yq$tDL zRZWtu*AFwnubq{tmyWH!K08uSB$~{H@6Fs77OtRy15Co@?fcD5D*G=}s~nMSW)ka{tFWH)_j`)N#Xup$gZZPx-XMjij05j z1kL<<&@TZ9$K7LPTis~1gOfm|(e?&tKKVV=*?4C$OWQrOGVN8!iV9axR~x;KZ+Vft z_D)~rX#R`Yl_-P&Dvf;S)bykn%{Vafy}ik`W#BtxgU4ofVB&jYa`+hT#4CN(jK< zm@6aF-Ivz;Pyb-MOJvWk5JLtbj5p_gR{ZM;O;=QYstME~%4dD1=i%eGNghB%QgI@R z(ql@oK*rGl)E+J{Vc>tz1DHS(fcKf7sApIvfsCJdaWn!;!_nqu1OO)B4l=BC%v_ty z9+3%Yjf;b3FIo0dzM;7T%v-hzmgjLn4CW;(cY@}`IWbnYcK@_+Rg`i(PoU>49*ERi zKLYu&sVXGj;|!7T48jFDdO*Wx5Wp6JUZJ2ebWh(5D8mF$y>Xfugg2CgpL@RGJ!pke zp{hm!|Bp2syM;E3h!YtBrZj9->v#ZRs)p3aEM#}&(*)zg0vHH@?y`pl~>i!%6827`O^0mYv%0P0!lJBV+H zQ}!s_aDJlG2HXv9V*z)6Dy+ycO>2n|80ls^KBpbjA8M6)O&QGEsh!gHF1?A_Dgo)E z^yo&T*S~|mP6IJ_&|~PqFD4IVRaO2kzdag{rjMHT8n6IDC`)5|eYKxwD0jq;&z2p` z@|y`_O`dj}bk86$=uSBBk@*v{w(W$8CAtE5pd^kICIoKjw!cH~#YU zN2r3McxxATFHf_!pk;dlD3k?m=3?6K`ln1O} z+OGdS4g)k&7{wG|@QNryqimT-WPvy-0f8Oj9oA1xZp-CfZgZ-baHUtO=yMnt-xqHg z-#Zaegfu%DDMPWEAmaO4z(eR;$}2vzH!fxnPzX6F-USSFDV(-pRC4s*fKl>H$d{$R z2r=hX)WEwj0YEIk1@i1_zm~`~2xMMZ_$hQiLe6HSNXtsgq?ZzI5$kmwjwcSu{?KW8 ze3=x-goa*EkoLC0)EN{fF#@>W=yB4EQ@UsH|f&eFj_7EHId%(2ErQAbZ=>VJyV0=IBQg@^yLhRceut zzmGL6igHP1cpNV}8vAUvhrg(LG4Z9n=qfrR*XgP; zW`n7wgRMmW!;Mz1d(8j6i`$)}UeThGbBFf^#VMY;R&p~@_p8nS&?)>^C)if;N&DmO zGg#MQN&?oZtHe#tp;xx9w%u8dzP;bkX=Nx4|NJ)G4& z3-hhI<+9aY|0lkoY0)s!QnDs^^%5K@k0Ku+iZ4Bdlf$b%@&{|8F0x`Vq)!BGuHB*Q zGfkolTN0;Xk#rY+bt|f+HHAUp86ubx098@*&m&p|KLKI5ON0|nyZ8L`!h`0;>9fV& zO*dtp{QO|{)({i?p@|xIxHT^MB#CnCd-fwpR^F9>hbTn#$B~@P&G%Ax*+&J_wxX#) zHxajTe@O8?jeTst3g{tjm753>RuX*$)4xX#SlfUbK?o}<_YR1W3}4|VsvHH0hxe=g zt6$ZONuFu)E*AV;J~bMiz}b*d+ftH3-l0RNEOBtPp{p%ZqC@e=L>lrf$V^FD$dbE zxUuxvf)pwj)d#@b6}4g(0SI|%HT!<>fshiuQ3tY0jBps503mrOJSa$Aqp=Roic#* z13XL~EpHncTyp@?O`IcN0=;gZgaCLk&54&^&&p$wXk6Y`W7|vcD&*|_#MxdcHe^lV z=+%1L_^fs;eVLn=R>{ASIK4jOe|8f7A{g1YBfYLy>c<0rO~= zj$XKY?akm)u{ytv1yBJig%zWub!4Kdd(05!ze>>4N=o)eYiYhKy1ZOLu}fM;S5NrK zv~)gwjX*N6=n5P2*lo*Bqcst9BYxDO>-#Cu&(Oal@vBoIOQ`J@~8FI8e>=SxXYg;My) zL~=+2EE(kZbySWJA|TC!kN{ok#ek*~ zA_piS7J6N}I2vIPD}m$8`vFNK>NoJmU&K)X{Ik=kaP_(lpM`T!3an@{kb4t;-><&|n6u@V^J!SHkT>1s=*=dLASF z?9=Dx@4*Nz`1F)*1fzN>^z@cdIWZ#Cy$>r+$vRHOAn z@ydU-0RB7SS=G#I8N5qexjG^kxtM0HmyfwA2YcXCJ>lRyfWSr| zD~y140*kx~wvhZzW_dxSaHwi%+(TmbU_f%lTHCO!mFeoY@1{TzX`7Pd-GLGVe&zymFy$V4y=Wfb!;aeX1NFe^98nj+@juRS9UbAZ{$@Wlk`v`^;uu9rqyv zS*iU$mLtmKb7i3|L4uv?C`&y~>>s&5o&yqMCXOljPO+>Ic+h+53rY2V9$1n@ypgw=ZpQf9-g*yDIFGe?tOu$b8x6LA%|Ps}iF2t}?rUo%&+O6-e*Oh~T@?G{Sr9x@0_GvvkY~G%`X}A8x!t{n_17W! z7{6ap_W{&GJGF62#=O7l(c~@l2%NcaQ`Z_pltho?ZQg{q4vyPmFMobEEyGz^Tc6D~ z?Ozohj{2YHp$sN$9gUGVZrR-^m~U7B&v%=tHHK{0_vEwe)-UcSiCh+-bd>|6AT_Hk7ehSYKCJB4d3%*-OICz{?y}D*e`x4S;vhs#RRwEn_gHbv z$$0?TVM>oiflSIY_A32IGzuz9?*cc(yBH-t(=Q$irnF5!0R9IojM_thonA?CxxdoX z?Y4UWVht5sl%t;-vgi?UgETLNyx1}UV=MdnxHbzeE&WRnx*U(|=aXzJ_myuk&kn`0 ztzT&%0O}-oTD|m;drC?2F}1nM^^KuZ`>m@3ef#6)(YFlZX^TP)J~WO6&%rh75k<_; zo>d>xD22%=oixkoWDYX*4{c@HX)(FH&OBF4F4)lamDo>+>E++$=>6A|EI%1E!|=(> zKzqG3(JLJAfc;|A+xBB7{{OKxumRoo1HZlLgSnH4UV*xQ=PERF<~`|kudyd|MwR2* zK%sFO?7b$jD9cA1j(tiK!ZsQ)|N0#3qwTeiTG}Zn_1P(|i0t_Pik*EL2YPWs;YVwG z54!uE+V@aR`V#YRK8{)Y73_M~_e7P9t_f7CrY^LVXDRE&>WAniVeMKK7&L7pj_B94 znO!o!ud~nYRnEF_c+-x(1N!lU8|0?18tMZfnMO!Os1Vbdgh3;0<(FJ1HAt9N54aU% zm`AUJ^i#%8Bxw8?JDouCeyoL$kD)yu&?cy;s-{E=jZ}`J3I!?p+a{!x{3}k{4ED}w zdWTwO9WAawvII{Lx329)$|wvZ-_=L`KDxmA3}qT7K?r(|CqkNcq&PUTG04TEMsORy z1jLE3PBj&hO3pLk?dZ9$m{2QtQH{@J0Mbnp}3-; zTmX@kqO-FD>^BGsGW`o|K<`{$o`Tb=m%`|xY2Qz89urJDna}eOb7E1nP%~ za8c^&m4N3yKJ}Wb^~3@1lNFPu=Z?|RySk1wuSvB0cWJ%MEH|sUM?L|4OAW=X#BdL7 z?80To?rop>3aT134V9}+NLe?{=gY^ zrRy=ezXv+gi29SoRFi`+owV~#ulLStyQ5u!(;X9*N3A;3uUfB`HXhP5o=)zJHT?}1 zFmx!Mn3$-0aO#9uKt|XAh(xOk>gdK8)nfQnHz6vXkl6&(o$X&HK^UM1%j@TexpNfd z|Bkf;M(g(&J?whxso4Q{an{@gOh(j=4}FJWHsM~!CQMkzxVdj-eg?F??=8ye=3?eQ zj-^gF@O3JhoRydAk`o2U1kVD5EV3;u67FK;5j}}m&V~kQ%NdzZO-NHCm1lHkDT%xq zmkbpr1*pA;*z+;Y8EipYQe#=z7|(>7l1q$=2u!RL9R{@RV=h(N6&1pUfBb&A&0XgN zf&-9a+WmUwUy-Hd&FdH3V4Zo66s_Ma(8{rS(=W{<$l;3x2R5;&J3$eyN#}9|&Q$Z< z!RjxYe;oUd$KzqB+uG?iRkypMxde`T4pJ{?15u6E&!txbRiqJu^3~HXxoqzS32G}9 zkIbc6d%j#mM}y5Zijar4tFJRKLquOJ4P-xK?ESpBVwm3jqYN*0IZO<@N+9biBQe!j zUOYKG2t7;u#`-Zj@}LncFAz}yYscczXw<`ZH|LK0>PDPlTy)<6U?&QAy*X7f2+&cu zKz^m!<9ug5z-t+yXr(m&SHsT{1l(2mSmVHp)yQDXG!_dPA2sJJuuo$!= zxVI~mZKdnX+Szmr2N_vr#~fEs;2tysl3o23-rk5?weG8vX2IvNeIU2q1!nzPCQ{zK zGm7ca-R%Z49_{bMh2EJ>bS1kI&Pyd^_RTE;5nrA7Z@L>PRli6R*3^qft+Ylf^TB9v zZ}9%$L(}XuUX7JpMWm<=Kh1VPPl@+5HhO9>lU|Z0p^@=li&cnjc*sM{HEZJh- z1nl$b)FBUChT81)XiqZcl3ra^f0W-4xvfEbS{U&?@W~y+k_AmN@A7R+B5-#ZbViz= zS@JIyl_IDP&PGjUp&d~vv_t}>0RN|vRk3cSjQOWn!EYtNn02SRYbXLJW?tS)g*2aA z2wgDGP>|*u0s6Q_Nr2~V_y&ER7YBQ!MAqXzm1hMqkE$kEqEV%(De8!L%VgUOLQV2y zDmsO5Fg_0SWr{aJ$Uj(P$^L#5OejFJ`f<*6zeo?fP&QERmITmHr?H=2=@1^ zAFh-(0lRVltM2DGGUnIKU8TO!QOjk*IbYsgS#mg@b>aNN;x1XjXr~_W+HEk0B9?epvPWR_!fRq^vT}*0ZFFTOu$@Y{&Ob_U*#R+onr10_Rbk*CymT>u@(@!{91JJp=Bcc)?Qki_%Sc-8q z487Sy68iW8ya8U<=c_E(D_E?-8`Mm%fkJk8X4HW#q9xr??~wx_zNuA2g{gB>Y8{yV zKu;LW>0wnctT>FJ6q*^|BU?H-GoQHXPD<^_FM$+<-(ws&v{81QUT(M;+?)C@ei7yIVZzpBO@w-}MoJjOlcz zzi%E~5xv)OhMqR9q(-l`6CqC_LOvQ7AYfndi-~gV@Di97#T8>k?MGRIMnCC2>f**_ z4=;g5R+rjaW$A zAuXCRUd1_P17`c}`9K6dVJ5)v2zD9&`Onw*I6WNfEeIsL!7Tpj`Pu0S9_$xbo33N= z*^o6q7Px|=`9@z!O2SAfq_F*SVTQ&A@(e{Cu&8SMG>|k>B&Ci&>*j>Qd1CdI7Adfxog}ZX2ITg$I*PU&_ z8Lvq+X#^iEeH`r*b((?SM~xD~piRrS1@W#h7Ae=i-31wk3!^yi-G36n$XWMZJ^{bM za8*-CLPZj&BqnYP@xVGrJrBHx<~wC&+!R!DtEz;q->tyDbe&1kb>n+B=x83ChMS}< zKgU1EpgpF2_kgJR5!iGbZYM4+>PBGl@Y%+n)$`2WXmd)tG2>|s7XLXo%=&M%IQkw< zg}<X@IA0Jp30~{IRQDEgn6x01LFM(6Fo2&o+u{9Z} zPhzvp`}_Og8cO~Kh4i_3u4y0tYO!`-m7I?%CF*>to~yxwOsr0Q^Gdp^aN)KL-*O`Q;EC^Z>_BR!gRZEM(v|$eXRA&6<6>LurHAoc1^gKV z?Y=<`zQxn)RQ{zEVvltxb42rO=Z*`Pt&g@AQZxKgTpl2iU>95hp^gmNUI2jIQlF6R;61%Is3lCy>DUA4UayJ1tNGyKQ(?w!=Q_VAG||4 z0o$O6pqme3ZH!fOK#8{(aPWucu#Z z_Bdzo_=|S&PACXNZe0Nu=i83;o3$$?Q}v!Mvk@AN>!m<>wzE9a5DTJi&lj>OnH&y* zG2!-hqD`)iYF9F?RGi8BsK zY|vwZk>|ofqR|(p)(~)GT@Kv#o!vVj4&2B4__PC=X3%(<3jwV0+uXqW?QTagvAz6v zv&?R!h+yQ@j!iVKeYraM+g76QHk(x(kU)9wTs4M3aPA;ZE?wqyGn(c2_YEwD3tH6Uqc;ah=>_5KNFR9p%eqz8b-tgORB?BRw^H)|# zs7P8S!}%GD$Lx2!_`<;3i#vMr%pSzZPNqkBCRkC-%jcGX_jmaB`^o!Y-z1PeMWcyJ z1(~O_{%3owE6Qpr4S(7NW}HW~inVde25@jMP=pgoz|8~JQC^xoUGq?TG;tV_HDc#` zyjFL%x_(+x*HteBJj?t2v-^<(KV9$}cIWzlU^?UK@sAlmvxxWoeKq`roBSI}eK1OZ zM;KY&Df4OoHO8(=kRq4cnTbm=R=W;7$CUoXGyIHasG|D9)uS}Y_*zM2HO>OlB!)S` zKc)|Jp5A<-9sq^Dqu*oH))~Xwj~nex)p@M1`RNRbep(4D2@CUl!ohvz%G0R33?bd= zMLe17(XArV>G^d9-d1nCGCdayOCGolEG?sq2)J4N%1-U{8foGRh-lOr8F?|iN&6u& zQAb;Uvea=lARxf%t4M6fx8JWwqAm^RtKNFD*%d9bHr3=$C@}&XdzRLn!~bgNidR=w z`ZxKdOS*-rE1yTt2HeQ5C~2%MDzaN|^p*Md)AQFaSt6Z=a|DZ6iNnS(oAnMBslJzA zJ6(31f$}U`=0s#>pellSx{k2;Cnh%(EC!icZR4I39{|a5z7HI8Js&a4OB(1UH)cL1 zH~l*C(x_2t;G00>Haf8PmRfg2M1-f2=;(I6#i=yY~_Ej}7@7lO< za&!rzsU_{U{NwZzS)*>#%&l3{w42%`x>RbDERbg4s()~FOdPkA^jI@|;QS}1yc}fD zy}R5+F1cSYTBuPl>iDzzAk}fQBCe<0;mq%ZbbH+dZ3tVSAz|VBZp)gI zHk8Thn_f3y;-6i{O49Fp^n}Hp8Y{G0Rb5B$+!lZSP+eU;;yX@61@M*D^G2=#MMdBm zo@lVfe_5R}=+}mcnmzXP^pxT#E-EtiU9A!?UNt}qt#{mREv@QW14$=iZ!eMdr6K1x zKCsOKuUEo)qsHX6fiUv?t45@{8rx@e4fn3dGU981QSv(>mB)O%lMNX*v{tVUY%(mL zOOl@r)$duvUN;l}P&RwhB*R({b`~8L3AA2FzISo7kLUv z3CU;DVI#yl%AW4-7J2}Yn@w*@sYxk?<+vJ&Q3U>(=7irp@oQp*hULWUYcWTM=G&e( z78+V3w!i)1%({Gar|AYiKfV_G0;Az1%KcEL5D7c2)+yB8aXBl>%>(j$`j7<6c0meR z%H!C_DUTv&=@gerY#AeCN`Uw8NrGO8I`W?8h+qVz1lyd%&MPac!4GWj@;ShEQDZHd z5L3`N^;->#s;JX2nunMQ_M&3j1Sx`IOz9tuUFgWcTho)iiIIP2N*{r|oIU%0X!`1~ zCjam6DTts$27(NW4y8LJloF&w7$MRvjijVXi8M$Hf`km|k`N>$q#Yq8Al)F{&*A%d ze!IN9_(QjGZ})kh^QyDPj6)mi4)T6b#$e6?-TMH6|DcCYiSf9P?;7nT+VGaf7tb^_ zG^D(~(GX&>2Qrb8L38d(7z&wQzR=09(YNktIImrK)0aNMi6j3001-^@)vWFSZfLMg z^_rS4cM9SmYFx)}sXj5$E{9xVxL1Gib*{L0h^F9Oyb@ub_Nr3?K1a`2VQ=GhxH(k!wS3)?M91#T2Q61_{jEU;5w{m_ z^hK|7vM}HCfSP^W+WSfM{JYe}#YL$=k~KIHz=$r7|3igB(UUd$d-FyF!q5KabQ^pG z;mmPPfk#JFxNLoX)1L>#H~#2U@6d?^6VMFnA6X=p&yKm``VthvX-!Qvb=^&&P1pIy z8*La56&Ah|n?KvYW;MJ$ROKu|Etc4zEc>a@bxp{}yuYun$<4I^IO4l^UsHPqM|0>_ zu{|rCNX#wxbJQuQ@40WP+mS?(*FCTLNfrub^+%fC5&B8^gh^Yk>Rb!}qjvSU; z$GxhZt*pe+L z6gKS!N;1|IC5dc=5Nb@n+q)k<{IRCajaMzc3#kh#bUxQ zCqLRdH5@8&tc^wzn*uoJMM<~_&^OTS-XMk&?Uo{RZk!N?02uAq3%QuBLwP?62u>BU z{i<;DA#X^&&Fl-;E&tmRjSzMD^C*yMk6wdS!Z;gGu7G)?HuYnMs+peFJYKZ(h= zOwSs!5r7a`)D!joyM)-Rg{rV~A6YJ)zt0Ye-gX zVn%FwdiusxOI&O$BqcY8RZ-qZ>J%_)3L>SK{Q{1Uz8p1Z>;3@d)*O1Hv!FoCxa{c~ zwEWOol$&r7(W>j|>HTT2+W9{%fS#T=ObxK@W;c+8I?OyLsGg^d0dSw= z9cI>@jxh)4EdDWV7##P+LEj>Om6@q(V)TZs(2LoQN&1Hk<9BZftuH3Eq<=^n?VRs738KFX2&33RhhuO5vxDvWldnwBN=%JMo-`~QiNF087Uq%uw zU~X@@@ckU#!PWv!GFw>i>``H~HGlu}p3O)_s&#eX>Jv%$mG@uFF-Eej~DrMwH}M&S7cPhs$BJ}OxoZQ2>$UbAx_dtf|Cwe@bWKX_gCO zCXO-G3=Qg~404%zbS^f)!mlXp`SmkX+)~x#_WrWKjZPZ*e`=tX1S@yjLPv3k{??5E zT6yoVspBYVRdT=YVKcI{yo#OpD8$57p3&782t-ontV?y<+qdZ~?|wYd(E(F44IxUh zU{Il{sj5mOzz}wwwoK7lcG?IejjzoKbN2lT&#{kqLm1>myP@fSe!T_ORG%ZH3UH`=#@7D4Dh%}+@t9nO zUi!sN0c3S&)`AGBj*Uw-n|y#F>P1V#W>wa{r+6;Tz4XN#wx;HC%VeP)DSqcZJ3>B- z*fxxptr{km3E3fTm-R*6y!T2j7IBsuS;djIH|00+@vBM7%eO(A@52yuq(w-P z*}|_(=p1zc$Z*-3?;V6)j$>8Mv%CFQ5=7nq0YakoS)BaZwUZf6pZzK7)31QIYR$;8 zb*vjCpo|bmJT<~7dSb-)?*xA23>;>j^*q&1E1t*8LvOCD1?VovT)8O(-9s05bV50P ztSPf{{NpFjj{dfDW*ci=pmjP7rq~E953byX; z?$50VzcN4sr)McA@OTZEs^@_*?2&>3wbyi{IRp|ky}f!TXY=1=sNneWugVt=4n}En zQ~}yWp8Iy*yVVijZgJ}eJYkjp6Dl<2jdowcnOJx z@fv_C+haLy!8tV!s&OMCDV->{=|O07GCwiLkyQ!{4|b-AWqe_q*;P3YWo~W|w#)25 z{i^i#N=&q%1p_KvAHR($OA-D?a2ADgaIXEzY(Eu0WOL{HrUaF0&UsKTX`bJP3`S|F ze@e+*lN0rCZV1>6*BU<*dAbmhDlvDkq=0i#$S5pahcvB&*%7;Oy^`jo&CHzlF}|p( z7c)O0364ouO5S1P)O|YA$7g5g-rBdghOmVH6{Bb3&%Qh{D>2e&vM}L3|6T@XWmG{% zPxfT*x2Lok?`U2Kt$sj9$QbpDoN zj3%JXfF=j4R}g1HVU7;iOAIiKP@j!rSg6XkOw3=>$StdbB&((X^LwFRC~hM7ik?V0 zb@*nvHzXcw)JF_u@9JPMv5dOe!eP9~rx^7_Lu80{EJhupO8)nh==H}|9wpUl@BHJz zJ+3rJi;%%!iZT_EzTxSBTr@{OAZ#YWQk#Arfxr9aJr{>Y8s5lh_rcV)okah#%y=pzmZD< z;Y+xHy+os~-k+N4Q~2@z)P6((yQlG`4$^aOw|#YtJts`uYm3qhez!$u`kW>$3kf9I zv_{Ytvz4$xq3)ie9~AbkOZ{90GznoWo`KeMs{uE+)&PTx+4o*#t!J>qH}WDyX%e2o zy1=!r`m!H8Oj6=9L0MEArlr>vqdtE9>bCLs2mQk^#c})dX^^i_2eBQ1I37YVv;AFI zfAn*h2%wZ*KmmcyQ`0Mk%{fllf%Bdysx;KIN?F^ATcii;8GYq29se}C7 zgqLE8=m^?Pv|V}|{AWJNmT_sj-+MK;KN8DH&1G<(wX`2Pwm|Rwb`pt`y~c3yM}}qW z)aNUc9fWT3W+~;O#YARA%-o~~bv;&^Hl|L$*^b364OYzI_lS9HX_eX=rW@w}rG>Gv z{&4N|5U|nXa+^B^M`Q%XN6YZ84qEBo9vnlG;?9Vz#{r2Cp|zc8_qfC1%3FfMa|r99 zs_l|)2^FWD9ohZQs<`~ByJKlL?*w1xF_E*hTmS%R(0jcel&imnpCwPv&2j41eEsmT`=6fdd@2!oNdF(>f=v~{*t`?3iH<}J2g_&EaqDN6xeQ2US z^9_N`c#-j0&B^By-X8m7OqRtUf8(q`Wu zbEm|t%i3Lh$!t={w!X$4?{L>=;l1Xlt!q`1LJ(kZ@E$m!(VF3RT^m>#tUKu6ET`5hdq2^P|)*rtHpOK>f{|5sQ!b(xQUp);YC=|?PMDA(K1O_hpa5|DYW)@ z7m86S%Du8^`iw8#EBJuij>aW*>eQEsX#-{RDY)Drz`B1@K_-d%6MJ-f^mK^gZ@E?{ zdw*`G^Ri5STm~iqf{*@$?(t+8ze=P?^r+iqh%6)fa2|o;JJ(emh(MjDlkYRVc?7+I zy-AR`L?cgCmK33T3XU(-R7+YF*(pf~<`PV3`p5j-AW5hqRUE;3!RcDD7;>epcg1X~ zgxYy72v~L9?ucwe_})r;GV7m@dXB)Oofd)wvpc~cPGJe=K}roe^9)BOBv_&eWK;pS zt;#U%>l6>eXZX|0I0$Q~nM%>6ZQ$lg=5G>XIoH3GgQ+;Ewe|&cblX^P8CwVBu zHP>K;KzyF^>mR$=Zw5jE@_fEVd(nqDKFOeXACpAUPU|8qWQema^M{LbKPX3q!<=L; zF1z3vOXHA@_X+P1@?(CWt93cxb#bNXEE-9nggFd1v+^xbk_cLDUTnIXm$;HD0?ypl zVm2){LRxKAa+!^NPjX4NMpW+mIrrEpcpmZ}T<~tQQAX(I9_LH66=!cZXrryx%V&8| zWoAFf>xx7O!R*bJy)j(2*lm>(YEk9u*FV_>2>#Ub;!pT!S*2N^hc-^?3_v-GdaB70)oJgV=)ia)^x5y1jsjSBC2M&6D{+wjLM(pXXkC1Xc{M2dP zd6*H$AR{BAB5}M0`6@r#+i^A~1oMCqO@&LG9Bp=Ms;ieOzhmN_@BP#Q%ScYM8e172 zlk@wW9A&3^iIEt|ee{TUFxy=7&n= z{wCR7si|>Z_@(^T>UoPw@*WhM$oVHL!K(BR#rGk`AdbzlY1A#|?-0SD`NqC zxLo&bvD@zRX~p$#I79D&ZD-u0TP&JMS+OFL>bqGPhjyvOlO=B}2T9ewm5MO|7Uv3j zf-C6tRw)wT5a2R{3*qY3=ytyyw>V*<*Zm1Wr^e)0I*^>#!UeC{M2P?G2*TU%ti3Vi z)ATmN@@n(|!>|k5*e-a!%(qZUOjeAE$?vzU+4@b%Le_+cNGh$H_?7SdB19UK2n%k~ zAH2CewfHrp+53Xc^w%~8$1o7}$_+Zn|GVnZ_?^HP(Oasr)m98k z@RaE5#@DtFkd3~m%dg*OS<0Q0ro~|LUSFWSWNeKVY1Yy((f)TMVAWozxaR`#mM5is z^dEkjS0<}WyHifOuGM3=!&{cNVKvLYp$iZ06PlWv!`-ihtI^~1dkh7lxU2X}{*th; zurz**sW2<60tTZUd+W+Y?QhqV^xQo+d#a4gzu8cAPcFtA?2H zSW|fo42E1LF^d)vj15j_Y3KQ_g>%-$ArK4!EDPn0laEb>4PMC}-s{b|YJs$q#g#I& z`=-Tcg$&jq9|z{g-G>&;(D&TZ;LV zpl<07wq;*syC#DXvlWz4^-WjDyf+z|+TdbavKQjRIE#Gf7Z$$wFzicv`{kjKL@^5^ z1b(>r?{XVhng)x}6y!_e#Slm1OxJCqXSom^>yxO4b9e-VufIEt!a>L&kIl)UrA~HB zxDq%8Eik}+Tu9V{BZq-uirwc0VM2i{CY9AFwj*l_8}Es{iMNRQZ^S7<^F{$z9ZoVG zMoRmAQ2<1izIX002o4VRK7^1uNLutHcOTB6VBz36Nj=?9)%Y4N`n>Nmkc-;Jj}S^> zw@qXx)C0MjL*tqPdgrar)6aj$xy96@ea}dy9iQ7P?{*vkNkky7C`cbb ztW#+uQ#DBBcQ$rZj3tJl7UOu}c6ZxOJykTShnrnFL6iz%zw$-<4Vg;e{DxbK`;Imy zbnpI{jPICP_30mvxG|V(1fI9k4oRkZ9&HpEH4j8!ep)f(cb~ncA(Bi5Ax{!WW&%KO%Qjw=P>oO zZrkrOTI}Vdl3?ae9A}FIl$}cNon`WY1V@qSIdg`u?Q0VDG)f;T@u4}I#HeMJdRL$I zY-1jF_k>^S3tRqbxN!N`@fN)jZWFeHPaZ7ch9CJB|M~@WWsr(jr%y&&R<`*KiD=Iy zs^3x{S)TtHt;A(3+swEaONDgAFx#*7<=`4g#4Y~JaQ%-WlMi~w>E&L6*G)Q;WY5gx z;*MghRsCub@abOUq@7GM^@`8Y1-kOvpXQjD^_ko9sy=N!Wy3-6u>x;!P&}Y*Qp-B;~VhT&fBcpRy3a_m?MA^Q0Z)BS08cPuHrR z4y7byVzK!*1d=A=rbCc{BP*)p{>IwDQ2cYS4GziJ&*?0Za+Zk%Tv;ra@IGRB8twH` zA7aGV8n2^!2_FzL)TPd`BN{utC~9kratIcv`Vz17_{X6Kj1uvA`uLPE7~Mhn`w#sd zD=CHkFv`i#zlQ%R%QC8RWX5r3dO89T5uDD2#P#%i=R#^rn0$zMglv3F{$s|mh|Q{E zM3-amZ{oKPPNx_58I=Zzg~sm`zs8gAI7e_@n%b2$|K8?iYd{Hz?0c|Ti>SN74aIC1 zK+dL$fim&*h3=qsEQJiDz(r|(8w$;PHHX2-ki+jvKr0#a0K`88v>`=?=wODNM1pf4 zQFL@n&A*?QVX?v7S%id!jo;DHeDlA#gi@Gigu`&eQjw-%hOqZeYhZ3O@_j;NWEu-p zA8%D@!nb^0g|2og8X8lVf)cYtk90pT?H}%Ji+jXAkZaJ2ow2JsE{9&=$B!RvVkhto z8w&ro=@abKBH^YoLCL=8wEE1 z?7Z$CA*!L7Z>F&FYdqJJ*!2mcS0$Lzmy(ZUbA{916L6+5%$^Mzc=`5AB_L^L*C{W} zAjs`M0G~%Dr;yQ62y6)hM|rsT!8|NP9I4`ry9IEj_rEsgTUQ<~@eO`@81Aw5ZMTg% zHRMR3S;(#BBI3TAxRyXO0fJoAPEXR&;x$7CF9L;!R3gAjfW&!&}I3^ee)?h;c8);6v-`-Qtzqe0n6226C-&#)gZl^`N?`!cO6(Q zU=ztMFIJs2C~)@o4KP(1+)MkYSwPVqS23BE^1XOD-T!j6^Gel0s35Y@qBF}bnRgDz z9i5UN<(W1TcG=1wZhKC=I)w_Elb>UmD;}Q_47^*xvm(0eywnc{=-I6OP5A!@XW-|$ zxg%0G{JJwl*Je)rJtwK9t{(I6xtbgRN@TjzfgkSSdZXXn^6LpUZ4W?F{nEHKACclv&-|Pp~#RdpN4vN6IG@P2tJl zSR0R%f=;Ct8KyQSnY5AnJSNI~l)Nsl7(zPCxI-1Aw@7VMrO6-tEgM(l?LQFsb=Ec^cYL0D}bdI^XK$^Xuu^-b}iR zsLH<)kamMW3CA$YBH22%{q({)gs;VcwAn0d)^<(|Ae|m+#s|Pw!3Fls`}n}(LgLML*Sn493h=MzDIsaOkRhlh zG{V9_@zs4fCDEnDT)TMQ>`umV^~eP$ar<$vJf<#L2I+TMORbG&=H(Cs7sV#j)9rzwLm1o${O+-=Ad z?$H^yge;8a;COR2_`g208H;1uS{iZf?G((Gui!x%Z!Z;Of0|W~9FLb}Qmzpnua^q^ z)tB%tam4mp8OW8&SEPXI&#ydK3=d2emz-_s5p0Z3xw!knRb$e1|4nPY zz4w5B-mQzr7h8LpQ%{&u>rv-p(@2%xd8-Z*$K^hVG>x61kt`;$1>o$<`Uig{pIiLM{ADPqZ*!?uQ-g_FX45 z?%1puSrI_K;d{jmi`TPQg3m}}JO@5q4uD2)hd+#BNIz~X_7o2lLNtXNYHLI>kf}z^ zxu+{T-kgILUg^fPi1SD!XI`;1nZeZe;d+|&^U;{!U$2pvy6$NPHe6TzMSRPcO)D=k zYoGD$JZCW*4pIw(K4;&#qy#@DW}Rzhbnr_~b4$sxBuukKGc;#ou>tu~!LQLJY?o>H zoIWthx3OOXMGm-^>c)ZlNb0{UPv(!3Do&M>%TScYC1%M-O<$Eci$VsfDc~F}!=#*W z>;=SL-oOV&M&`?xofEGN8A%F!T8E-`d1rN{!t^pmUqv;hdoJ2^hzki~9f#!nC2|>9 zfH4h=uZCd_xU;i!$XxHS_i68^hk`c4TfGmdBWXU>bW@I6?2#sSjPg2WoNYkRj-~ax z*&_Tw*$>s?03|g~1K<)DI-XIoVxJ4M5q7-4A0vgYM{FttaZ?@H%C$|XJ^46nR)C}H z3jf;tx|(uBM8K%cY_6jCvqLYp>Cc$6#$%uYdjH-L*1m z`sl}xAFnS3Qm^Vh?isjM=}SZS4rgX^9&x7hnJ+T7#ELRb&(1QbpUihlB;lb*p*E=L zxSm5GvYxq{J}A($`LzYqwuS)D86_&%nVOpQ6NVY5J5&k#`}?O3-C{PjCS-uP*#7{M zd?XO23!sjb)Mn6AgF0eWHUHhzKe~R9-zgdL=pnsW**Mp<4wtdz8g=8tjW_1an>=0n zy?;W*Y>a+ApZJLKt*?I4wErrPT=uOy)iatJicw(ao31NzNHv5{_hw|88JiGX)+7DU ze*e`(6b;LPnH%HBh1L5%Z@N026st`YN*fDx@SX0({htwxlm{Bb^qX68#+|ZULdN_ogy~{E1m`vPlLRY5}q! zkW1GNcmOdmG2B!L?q*RtLyKX~{X4QI zG%tz)`~|>U(rz6d!+!?p;>|0t94GkinY&d97xa=4v3_{m6wv2*u6Z^L3Mj=q#eaTvOV8rXE+3m4tD+|!_8KTL0qrss7 zayv8a*l85Ad?R;rF!pZnuaTL9;!0vW>XvOyj1tDuk3riE9gxm~XRM1e!T2Lktb;~H zELd#LT`JcY3jaBGIo0Cy2>ewPB4x@VQG@(~qy?Iw(z$C>^lgk~5nP?k15dQER1{0V z{+)Z(SWV7icYhlZrP}Ouw}c@Of4Q!e8;4NI0{Ec{-0=^iNK;s|o!b5InU?OLjH;;j z(cS_so0o^jM4L&l415&n@Y+E6#IcJ%pxqp`BRDnSDltdd+*-J)J8bLPLZWrZ6@IEyljc9eh``COh`*H$Ru|R_r7m?x2&-X9px@=M@k%VcGAVon=erDyG z73*|rBvBF_vR|LO20Rq|A? z)yj+1ZXX$~YPFS9MEC!(7GxBhY#CDc>5slpSqci5kNEI@`@7ff@l?NN-B=aBS6)Y= zaEVjT$F2VHKWMS%eE^k|ul~4D<+R`kF<7{ii%cAvO` z1>Id4*T4GkYoODFz0kEkPHG2>ekqjptnjKLXIcp~Q^BXr_O++y z)mphk`_;sLy?y;HN{!bf%Mfky_vYGB;S&0O{bljl3xOOgZ-spkzJ~mVRfk<%$fWo0 z@el^ui8tXJT&m@!#2a*!y>#98u?D#e25d1jzmL2lC1bFQ>GOC9E@ZodsALfI*?1N0 zGp(&~X9s0b$ds*%X81D56SV)U`7z~S-t$k`z=m#H7sbc@eLVyzqDp=y_8sW&Hw=L% z%wKAHDNR_!rlYT~BH9i@B#>eNtXTF`I~H`0Xo$#eoSYEKFE5XsPr4HL=1Y2V^38PP zUwldpQj&yT;;EAxqcgiFpAOgQ6K>s~x`aog-qI9`Lm?>5-E&oj%Cbr31pCe*v|@h* zfS*xXHG}2RptB!J28T^&se&85#ev*!1OMh>rBvWKiDT&ppRso<<)LZtpQDQ9N8;g4 zP|744S_DLzP)VW*nJyuE_=ssiIVOdRO1DSS%ab+7!yP|pWuQo(k#qMADo2C4ve$Vm zHDO=PFpYtbMlO!{l!Q)+EBKe!oN~*?6qUC2HZd`S!q+n;Z*aO?pB60PtG%B7i)^91 zyj%n22co16QJ;U)^0B6Og6S67{UW}W3nYPB7Z1U9?efV+OT@eIph3EZMiLJY0c?0Q ziKli?Z6x1w4O`}6c#_Bx4AkZYnyqw>>3>Y=1yswN0TyAjS3fQ|YwjiApP^ydVhYK4 z6|j5v2%oYsCB(ucppN2CW>8rI0&$H^iwo9xm9NV1hEPlBk^eZ;li7?#w%?MEsy#Va z0_-AL$l)*OrlyNtAzlNMs}AzknlE42dLM`*?#syhD7D0iLs=nQo7@!sNn2wt@7tYf z^XeSJA21zq8B&?en!2|ST$BgIT*p5|SYHn_M7M-dOL*?t>w0|~Sz!{18(ixA+0oJ7 z+1Unvy1Kf4Izl!~Yqv_Sai2I01EblgUf1Z2oCxc_E^z<_5+m;K-)>u(`Rzx?Zx!3?^}yKr(39fPWH_yg&hO|X5sscO^o~B1MGeu-v95BkdT@>Uam@e zZ+fmf>7L-ikENw0pQD9rUh^(D(c2X*Q`;}y!@&C>ki-rJA9Sv;b(EQu>2&+q0?5 zY0v)GEnZ7gmf)(X@{!@ZNO=Ra86c&VW2?FzJEb-%%^K=RDjo(eNQ*u_-pW*0rVt() zB6`nUQKC4^3o|OZr|vZ6o5x5MeOh1NfcN1_1!!uY!pW_xcGd9>2S|JEEiLO{I3&Nu zL~C)T76$Fy?Qmwyw-spXK#3=Zu~~TqquBz;n;qMqC%XKdZi7Vboc!89keecU8-oGe z)R?X7@0GDC7xwwF5!({Rr|j}V>prklefnj;WGshvRBaQzcim~I&oNZk{}g7=8lLez zF%u%){%L_VZN2Z^bp1ST5^sc5tkwQ9Z-5V#QW?^Rb(n5L<>6B0Tlo<(wp#o(i~26p zQaNKQ>rpOE2y;HOjetHU>(3ybJUBK6AoPA5I@M0@gW)wu7n z6usfo>dku*rO(qI#TCIE^HrJah+1WrmWK3%V7go(}ROvi#@Z_F63be zd(le>1yyw~FE2AQrnmp*cMsiD0#S}P0rjo~Yh% zLRux9TMD!6$NZ%z2ABjYMwD=+?K5=kA~&!6z3_zmLZP_NDdo~Z$bmowCBZ~P#q|v1 zfTmt`)Un3g-=gMv!(f$2FjI0v;?9V*fHj(dhY`v%OGpueJWMl*1ItvU!?tmz2{S^M zU=hL{zhvd?be8n)7OoJs_K0*Y06H}X`EvWQ*t=3VazAoOY&s(NJYqiJ0gkVei_cHI zKoiIJj)tW;!~$$AWWwQ1g?@ZqHCBVX`}-z3A%-ThTRbnqsMmaszE&4U%?O>rz5K|= z1t%;Pj4)DCc)i>Joel*++3%h!d73xfNcJu!3zFZJ90#H!61?liZ7bmZK_Dy=2lzrm zcBkU>0~BKMy?B)fJJO1ax0)XYzS*T|V!4Ep1%tFaVF45a0em!O- znF2anK=-Jmh*koGLOx(gCINSBs^`D9>a|*hFf&q8nGJ|@KZM;;C`rLFCmfJPcn@2J zDmR*M&?`XYbOiB|5t8ORBH&^>!^K+$Xf$mQw-WCeFVXj9zB7&GC){|jaj@FBg+wov z1V2>;#*LtKx5cf631PPOFtmX6nd$G+}?=hbI6y1GhAO7J%Z^B$^VXXi>p zYHAWZUZgNQhivs4qmFn^LF=FrPk=q6EM^>;I63VAo6OPRALYkT+}-l=VfgL# zIF93S^He3n5A4%(|IMGBvFzM6hH>p>faY%B5PW)J5)fQg*>L679wTiRQ0`M&K5iD6 zu3oEK8_sM8aT&;A@|QTj9XVp0oqt-{UVuCKS9T$nKgHc(Nk^It0Z}p~Tm^^z$<~^W zPkAwqfB$&|5H_5;#S9BCETp6wyL7A1EFP|>-b%QJ%Wh}873X^=gcFqKfa{)Y40K)Y zp{*xT# z2(FiZoBteNym(Pu0)ItU@6|p38M8xgY7|0pTcp%*s(Iy}OVd|UO*NhB)pwi&UK=tR zX0!0x$Xh%NX_0J!joc1Ld%J&pBq($VM7s;LYHMbOi0-nol28jj(br#dtbE3ysp}=? z%f(Ai5BH4FO{yyo!+}6^UWy$aHzK{m%Km}N+mr0_Z4pnm;{alhomFD@Yl6w(E(y!| zjOKSVkyL5CMnRzqF7s6H9c?l%E23y-<>m1L{gCtU+bn@!V{!2rN8Fe#tP_Pt*eTuO zl!`d_)TRF_F+=?iT2ld!57*PD@R{f?@olK16_LU`D8D;OB4)|B&YjUFhO(x08v46D zlkb`Y?lgh~m`RaxlZPQal1h)sM5L)4-_SfTh?D+$!sJ|x1&;JkD&o%Uhuc$LNcUDU zJY@GA%f&*=@35YFeoilHltCjLm1he~q3l-w}o2RmU+<4}a zZ?Xh-7MF5F#j6(8q1gMQLQ!YbG_vud}wn3lFw%x3=9$m@mtbC%#ICJ9qQ zN;s5XFc#E6N>)|MyvPfPPAP`!yhY<3V3D37|&f!nm7wA3j2`xdL@(gSGpPP^=I!%*0%2CtPE`JIbS^wbR<<|x! zLvjsHs^l<#w$DHyiD-9pLHFDyTv3A%FL7$?j)RpAw=Wv3L>-`SJcj^&CQ&v&2#!U4 zY9-w8D?F~OF!>2;@84jSp?QRE-5fWGs6#v6CE`G-79g*&yvaTPz&tw0#jLgLS)n3P<~Z_1tK#u6Vx{BF~PB%`raVF52b8G4QBd{ubrhs05e8; z8un@FfVH6JAAo9N`_s|KMt|0>oay_H4|m6JIG`6Klb7!!S9%N*;%`b_e`A`jwWd}O1M zgtPX@Fpe)&05Pp56@u0P<3l_)k zySsyY|IFjnmw6=(fasyYXOPmhR+bSJ^H@jc5DJ_(q($seZoK^~akAe{d_(Y$*W3r9 z{ZX((oW9t8j=@}An>FoBbRCDxgC*aSV>O+XLu${SS?=FaQ^VRNXV`hvbq0A6$LUru zxprx22=MXs4fJ1-EaOH-!%)27WM*o%1LfzlO6pk{Lk4?N|I5K!kUH&Jx0%Ut{bsjA zMZvR#$JhE0(9vyzseKQpay2yK>3GljNg#FY>13e)HxJE_+qwd7_KvsY!YTzvd%o#Z z_+0~C*AhT~V{@qr8y{*!_0|GHA(3pDud2p#c57in!WUe~g1gN(&bo2GDp$+Rfkb|8 zWqWA1+4ZaVQeHw8yM5e!YF(~%WY}7e!fgy1?qq*@I{9DVCNA|kJ=x6HYVCyzD)Ir^ z+i#aI1;ZByEHw(lWcZU^BX*~quxoJRrOp!-$NPkF?Am0#eEi6%@AYqBGjRV7wKriM zJT)7|3<#P+gTHlO4=6g=9#k8eDvg}Cdl7fXv^@Uj&!2V`)OQBODt_G1&Y3FYKzAauxVWS#cIr7E6*Xd4%}#sEbFa`a zCyK{TyY#b^xA(7ir=DB$aJehieml%A53RdO4P5BnJO-DM&XXrVab__~74z`g!Eq-Y zNC;Hy7F^`!Q{F{5(|yEWZZ(EW)V^#E`KS8nuTSYL7-e>sM+TRt81G~#%ykXwy-;eZ zkXAkN9w{eI5|A0S0QWJU?ecFh{WSk!R7n-a9VF)b2VG{?%g~rM*M1J3t@R6c37qGl zwN>(6pFH|5z2_8^NYoIpE_D*9e#2&2qK3KmCB=zG$>te3Q4(d!C&tLdyJsr*%8b1u zmL-LW^4{dQ_41}<&~qw1sS+Tsh8WzGm-AEu`wn$~E(txn8oheNx50Uy=~frTQnUKn z`QHeH5HAn8b`(P$gqayKG0JODyf;HN+S^trpx6jik?k*QZeMyrAOM#VW(_t4fh4J| zeYR`$Tu#~==l~50seV41cD6?Qo6PcLK+rP)qtVF4)r`J@dTsqEJpBl$q{~_m_~XFv z9ns0(Xr3hYdb4K2GQ0f%y45g()od?gkDOxrX)-j$z zi9<$3=zs@znH>aySACin%s_=+3P@WJA&OXtV+b&n_f^EGf{$FDMLZx20_>-rs)_;| zI9No#&r(mz<&Y7lWM(wF|GS98V|Q3cSt=;Y5`%#>LU(rv`Y8Ug1j1}enO-hrxB0yUU1`!!mI0#=U$oHv`8OCH_Ava4d`OH2uP-5N<#>rl{LmRi_?fMZV zKX!Q(OK$)A{{8qubUwrD*&`X$wK*P>jqg;ikdl7S9{cZw)nB0NLN2I$6`?wMkm$Ky zxI9N%)*e)BS(-qzZ1OSz2R2X z(GJq=hoRT`ZAZUOKY=xuw_nbu!M!N;R!)G4eG+bQ&|tbbvesl}&7Oc{x?TU|NxWQ7 zK?1M2Y%CA-+y;#ZateMermrZr7t3Ea&h&ukBjAXAxs+ECc3a~1sP&N^Q(9K}&WAFq zaqVgsxI@7Ztdf3%Jv%?&wjFl$2-;vRkrktCpqkR!KH7xf05+&ewDfrZuU-kH?^+k` zlpRLA)gokg?UwA%DT0!8&3~4#g&JGnH9tci0VmZ+xks57qC)PKF1I!6tnYb_mTh^= zO=kv zTzMbk`7j`@agE@?~&^fElkh zEEVK7938b|RTPMb_wV_^9h_!rD*te>y}P^4c;@Hn0WP&+C38An!cK3l$&^!fP|#-+ zjBMWq8~QRIdLNyoK%BhTUIZjG>=thpBj!ij$5(hQ;Wy%X=vu<5eReA6uvX8>Y%Uug zZO?Yz^WHO@$*TZsq+nMjXtF)Gw+Cs9WH`;$F`<*=Eu8qqA!=^hJkOhgz%Iy8@r4a? z$!y0etp@)b9~$2h!{*BGO|t7$oJa6{=mLEkeAoxEF${xnF0aB8xRXGT*anf>;C{kd zcU{z-wnMngdTtAu=<^BSs;@r+FrzE!UWLwJKIuEJZ|Y6QA zn5dGQ4z7;D=PF{qZjk(LPkLjl%t}J1VihJ4Xq%_n@%*>ITJf|~xlroPe^H&Fu| zmnY-A-J@{cZUp9bba!)d+ zH|pb8{ypJ`=frSCoSe#~QM6pY}>u1AoA1Ri6b zBV1~f1qTsIQo*j0@vlo61WRbtoxBWb(d|kWE&)Z&$@YNG)#lLZm$MxfBqZ=*!tB`5Wi6W!!XuVASX+% zW~38Oqv%eQ!(P5?=D3e?lq1=o|D<%Wn<(d124%Q~2|;%~I$CtFzOwyIF0tmTHrYe% zmPux7lZk!FkPapeCLxKIEVpJ&9~I+U2o^%g0=)~tSOgL!IV~%U|F~ZrR-*?4OfExe zJVEKj)*ku$>FXbo=c#^1jnipCYug+z%h#;cuO4e^nKpSxMgrxM*O^?4|v2;aTjPi7* zTCx4kx~k-Xjgy=Et-&+ydMNPyKxfVp4E!){PCZu$;P(NBF9(xrbT#!j&@;2_uf&Z; zg@#y|1%mAm=hxL_^9y<$`@0W$$o(T{5ZKLsS6tWfc@zu7h!S~u+I;F)R?ECRvH($n-)8zZ0mTtGBo zu?zy)`Aa6zOsvVK+DbUs+RJd^Fitu-5A>_!ObA~^i$n+%LP>($pJ8rPK7^*y;y3KhYc6SAWb zZ8Zz#W!h%6LC76KyRWnwPZ}&dfiSnLJG8x2kbdOC zP6dhB`h74(C%?N-c##-waNY8bd0RS64l?p=T54*WlMksGH$n|UVAOWpYmFokKR63X zfcnqS9nJ7lX>(3fQo$_46I4jXCza63AgqvM+AO4 zi+IWN{sM6I#ALLHc^z!M?? zI@V^2sVO~-EpQy1`GeUbe?uDwhk*OZXr+T0k3UKoe0Fn``ifOD(N4JR!u47I%U8>m z5QxMquWHlwVMv;=vygKdItYOGAecY?wMfNqvY*#HmVwa);ubvMD*0HA<>kUK114iK zo~y<+4!A7v2=jIY4Z?8Z{x>H(OV7DK#1bbt4I=W*okadSOSU5Ne@kzySSm*U_N=oR z0rHHQl5&7K*yms~m6H8ge9x!zaP6sm4lKz!Gx0H)anGf^y%HAbX_$Cm9{LBG`)j9k zph&h#i)nlD%<*;g;N0OnSSU{azKi|scJaz>Q7Fe*IAKW7=$)BqJI249W+yK%N%F@{ zG-XcT%@9s9c1tHHs{Q@_uA|-_%AUJ76oTJ@4`@`Ro~NLCXV^aV&)nv>or5JXMRTNF zchc40{XscyH&SkJas;jbsXxci3}4F^`~OP+1V0~KIZx-GS|aMnFfmdGZFEcxPcmA= zw9ubQ{8r~+hyW?itqoJT7LH9)*Ju}+y#chbaag%qsnKM!eA6{04iU+keZNPtFE$z} z8L*6m_wM+8PN4mfPL+@$`9wTJYx!DT+d_o|z0k7JeTpVZz&^Mp_#A#!uDR=;L;POZ zdHwpl+&P(8;S?AJAsvP`aRwbo|0W&eIC=#TUNgqUa_K_K$wNL#z%5u=i(96e(NVxj+V5ij)y|LqpBBK#;J&mxp)V+jl`gGn{`PtH&eDkbz*GDI zN?H~0CE%6jHW#Y&0N&bu37cx))>@W5g$Vr=y7pq2oc@PE6Vj>*xTj>ZJR+B&(~m+W zZEtS_1HTm<Q~HQiG2=`P9hdtm9KEtgQF10 zG`e<#G2KJ5p_taNvvg}djH%XuQ4vjIGs2=O-+q)tM#kgiE|bIk2RK_lMZcrKsy~}8 z)EDiBO>zq!5=KU{7cT<94c5VznJmF*V;NNdzZm3El2MKA3r-M$vnfiHDlcG%!N?Q1 z*Nt-$O3KO->}LTJ_6}-21_R)TWRO;6)4%`6)LF+x9d+G)K#(Dn5l~41C5G;91eETQ zR=QKV5ox4DLO?)<5)hE?90bXsQIPI#xQFL?-+M2A`T?97e&?Kh_Fn6|I!A8euh2SK@ zFHb0(X{H=yqbloEI}RgaVkdSeobJw&+#gpfRI=^;w#)d4nrc~ zHAY;=+ougeMc#s%?sJsYLY4|c0~1?2%;rz8efOBXy!!L3AIMbw5M`d{Bm~7+2JW&F`LW$eHD}pL>IBQXR-3hz{fKNYG?r7zCCuh zS#jtVH+WB zkl3UgP7CP8eF@yhBYg1ky#!jv+|$jzN$(Do6|)orUSM@fo+iO)YdW2~Eq?V36T&UX zXmj~HX6z%S-&y9a-)Y^#mASAOMnu=5V(t92n%Zvil?vhh8sSr;tBUR@=ND5o*O4G7 zGrQ$_+X+1=YgOcWtLpZs)IsFpZ0X(WUDk+2BLm;#NrkwcJSwPt^YMfeL7Ia1>GtLI zjKg6MpYwnmH{v0ssL$%0d+dTncV!6~Fac5k=2u_RbEN-1;@X=-FVyu5)*}K~({5La9^&gKYfG0o%=6yrH_L z7SF?$o0*n5w;_>tRGfJij;OLtho65h$m}PD=!C{2CrTTR60*sa@4XqnGdupoox2B& zRlC=xF5vAYjuZlVo4?EN^c=vaQSm5E zbMCbDUc>3u-&mtYk9`kbzGnh4hryILju}#PqYY$yJAZheU_zMne^_SdT@9F}kkrpx z7d1CG?;5!Lav2g6qrM3{m;4J3&1=frt086K^M7X#lFENxIo}wg-29!Fq6yoHp7DF^ z0WD!-)itbr$me2oX<_YKzj;+k7q13mQd!-}8>Qz}2+0bMB}KmLqm|ETQ&LP-r**X|0e6$z-W)fCfVbtQ0ZDx z^BZRBaRSAd?)P8EGhRdwrhE7tZqt3dKGJ$I`AzoK@30AU`u4=}lwaWkq;ky9w5kRe zP2DO#;8#W(Wjpagc;HeYC1ljBj^d(oEgUbISH$Za|4N2^+9m9G{fOWzUY-VXec8LT zBz79^uUVUY5$!dxKr;0r3JnwXTv`>n4cwGgqVvut&+h?T*Gf z#S1cy3AwdiMHb6l_vpRB@A>+uvMX^po6XRVAN32Sd7_O1pdS$Xv-|N8y~gy}LXQ4m znZ|c2V+jbfB4f+=pLdEW7&BakgarkF&~hpqbgrDQiKL;_061Y~LW~n10z2?o0Pgft z@6`d%>sc49SMkLYe^R+?VAr3YkqX`>X%9};DocgYid)PUnh?j+JixR%+AX$*NR0014-puA6)!z`T78(iK}w!+Yta!0hXK{pAziost-6!_c2}Z|(=W~B0g5XeJ zO{1D8)Nlygt~@&d1bmJ?GqjkHn_hmM-D^DoI=EHP_kk z?{dE`PKZ+2Gv6zxo07;hg@TVW1pKPe^K(D<*DbP0lpmN7&pWMVf}t|u_}9L%r=qv# zTGyZ2*?s6>MjbGv?gp_SSIYxyofuBXJKAgqVamY7SNm!02Z`xvE-^$ZNBeAky# zdPW=jG>Vl6Cu>AhJCN#9yN#DSw^xJi^UoHRN)#kuvwo|YSC=iCi|=!ZLjO{@&sA>% z+%ls5)idv?+nCPAI+q?UqDL5i)l&?ot&2cA+|Xsan($y#h;iYRa_0MAJwWgTySsq- zgv;Od4@`ripSk##8CNX$LH4-lk;t$TL%nGI zEVRTH!-y9rj1UA0T3RX2P0-14_aP!b@0B=c=;d)$T*Ti7I5M2$MH~suN<)Qa8s3^Pv%gT7`yIZk&G;nbbvyJl*1D&6-lJ}+B?kc*%%Hl)6n+vzWwR;qw1K8b0m(DX{!tc{0b|I8zaN1nTzT+FV>WK8@14N3U@<3`#cqTI;iy6PGz}H_C4inlEziF2s~K ze<|hiM?&~krYy3r8(Jeu>UE&D7Ks?9QK5|gl1-;e}u|5nmPyXb7|KWTSRm%^IS8ZFd z_Bh>DWQE-yD<&RO{{z)f^KBs38|SEd5Lb71qnos$D2vh3Y18SN>%8nM({_$9+0mf$ z!*kVeA5ni$Dkw5PT=tr0sh#WAUG3UL(dX?v1m(m9s8OmlI)Sck&hIjmK09Nt8;E01 z0nyZZ!S@QEi`}ehib-$Z`Lj;b-eTm^ELrpJEvPxNy)M?NpwBF61zKgbi)$K6=f(Mx zG+9#|&Zma#>zALn%*xUuz=J;1XohRSE@{cByNY<`eYKD6!;b^`?mhI(uT!0 z=BQ7ewa>hY%IMNcxy%j9E!Wjc0~CaPQ7ru84{@7*z>8JFD!&d)uBtn{FEI)jOWg zNVXs6CXnheT3f2R+X)UN{GPyTy3#FENB~0}B6(>bPRqUXs7)CobTq+Sp zE&v=HtN8YM`U2=wG@=YC{hg;ii&!*xL9LYvJx=W1_B0aryMO91Pt}wnA`t5l&j}aR zNx}V$0a&Kp$QQAK0z^=l5O!l$D70ILfEE%^fI#oAv5O1}c=Vov4H{;Z-n^@dQ~5=e zGv=?%X?>1W`oM?b%96G=iG@?9BpmO)MwSO1Dqt&F25>^EZyJns`hXN(Lq;9ay!#aA zgIW;{(z)8UPXA$$csz|N5ecqN6Q^<1)P-~1KnAJrLJx6d(BAS*?9JKQ`_~3*qNSUx{qIndvvOGMuCBYM%rf%?lNt|QQ}s10M55JF zLlI?wGSkaR?5|XSI*BMJn@JGS$`W8uLyYC!Pswa1{*A7a>eRBPlNdlC1N`r|2+LbU z-}O9PIArg}Ycl(|{QEadG7Pp@Z(pY$`a+=R@Lae94%}IGGj0YUFc*PwZk8lD4jZ+h zL*OviV9bSc27MB+d5CxS^|K5~tTg$Q#DBjhgDDlNW(YtkHQyWKszeT;~DZe8D=Yn^=>r z>4@N#`1r@DlFh*m_ETDwF0de^(L#)Fy=-{X?mBn7hMv{a@3?u9Tl!56PD|A&BeB0v zoRZ`|WXB0IaQTmFhL-u)NHHTmP)_eQsj$W9i*7)uEeq> z$)Tj9rlxbA`d`l6#S3Uf!uuYl7?oK~PuB2*zR%%AnO#xuJun{`qXokrfa=G*RgV8i z>1m4Be2}*RMn@S>?C0j@p4OZlQV-LtG5POdSu^>06j=Fz*LnsnkG18pE!T6qWi5Y0 zwI1aU`K@r#cRBhF%{SpIsUW66O|rFcyChbS?Bq}!ETfy8q~%qtt`!^{jPkp^+~yxP z^gPzQ`6IhWQ8K*g&^R2^BVA)Z*H78#x;|22hbehB^@QYfet!P;VqJOe3C9tKCD^0+ z7QAeV^XnTLP|mR>F(=0&`(x^*_Cc@6vOIzg2S?~d_ru?Fe+kd>*eK!S zZOnd$Mb|~#70GKvFnrCakoFSnZ+f2OL1{l%=r^dw&7%0*@;uyO{v`M@x1|yd#B#*3 zMP=ozI`KEisizk@_aWrUQvF0roGG8ZwGvO!plA?3@e@jZDkuS@^)(5!O@TL(s?ttx zoEw-;j6l{Vh2r>5gm!3YTicyS_f!*Wf(Mp5Ch%S7=fK9(ku)=jpXsbG$T zsTJu20fQwNyfftMh_AcKz(UxeA}Hh{;S9ODe*h5r5A!QDy3Iljwni%g`+SlgxF1%UlHG>-~OVYhozqB~d|gsXkGCq6x%YwXBxLW7l~vTM zt}NmPJn1z>BAQ9aW&evp|LKLrmmB^k7XHcn?-fdX7H&^!TMQIixdR2gj@CfNfIzTk z0to^Q|`RuJ{$Xiu+Obx@;S1>k^ zV1cq!C<3-+!?J~#&G^10-o^P#{Og<37Kfr_j zevxtk%i52`C4RA{^A%8KsTF}$2Py~e&*@|KEC3Un>$Z8egiT!wReVzj9Rk9vhu~UFsvQHxz4xXEH6LgZk2wLUtDHwl&}#2 zbKdnmRs7SNL!q^7H%_cT?oy{O^oBEY?5+!UjEWT?b9SMy%s2B=j7F7oeb{Yyv&72t{v6^i$*t>Gd zWL%$ynbMTsM5jc^RDM_+CYElS^m>Yo|Es<=(G>!Rz#u2Ly_}E$HFo`s!P*Np(hK&B zI`{*u`!UPT0zFO;$g&y(Dyhn@=Tt;?EQtNcSByB6LPU;15=O1Vn8f}Bf*BlqPo}?> z7%Nb*$XF*w@>3(PNZm6rKCJ9rK6=~I*5P)^GoZ$`mUC9hwAOJH8!ks(~=@R-@51V%_ zIMcGSvLtf?UlDD zA_kK9(zalqQBvo;10vV&)@q6+@}>r$GD^a!^ip!%O9%*AgvCj4tC}gss9O1*vvo?%?n|!uXw+ywSA0X4?bl$t%-a*YE9ELE*D}Vn$wXC9FYhpV! zW_R*+(MH%q86R#N$Ztz!jlDMkhM zK+$|SWZ18s(paWba zTa&{D{lHn&Ig3BC2nq_n>QldC)oL#%0?ZpJC}BUPe-1soHCuH!yw zSY9rc=Cz-nvg2TZ=**kl`3yE4DJu|S#ZtkRueJ`>eHO;^g!Pk#osEqh(aZ)W(1&0G zeQCwo*^vn?itSAs_0>)O!Fk`yLE$C5EaTG0J(W^!ZeMFpV;XiY#BMIii(BBIku}@d z0Jyuv-EZ)F{bEDAd4wS93}i|vg%#n)icZ!aw*elG|K*a{3fn=EJe%(gUkd|KWU2jT z$ujah`10~{w`sRoi*H!ush>**&cRo(vrP3ygFim34&M+OnepD5<&5uUnTBZ7ZBz2&LuE=6uY9$M}$;_(`GiDZ90s?vZlD#6Q^PhjC z|F`R_T3GZlXW-{Xdt#m-Hcv!}5Inp*_FanG@W7eA-&}7!@|QNR?hqxo31J~vWeD@9 zAm8!@+QR9b4Y;}f@)UmRK2+ps-`OlH@nll6=Di^Mz-$vXKnknc0pU&0)^%st%w9o1 z-q)uC;$r*4v!W|=9oli3ULgq>`xB}F2^evaMxAMWRxw--7776|m2g=!>O{3D$JcS2 zb)j+SFbEEjCQDL3SA7F$_6DmENkMa%kvg!jU1X&&JNuV!IQcnLI5;Zol2DVO3Wj_W z*xRTu$^jL$us7<`KVc`e%m^;?0ca4|HbPDE)gEC4s)kFz!g70I%H1je-?J&mWo8;0 zV`~JMx_c7Rs-U3)!_fT0lc~ft`U+VIcvduhhr%@i$V$#Mg*yEjW~LM*N3oLmjFoOO z@8s!1ZIknm)zh7!_tE;Vl&DD2Ag&>HrnmST-S^~^{m*~zkStd^=vL;gAxM2Wf2z7S zhAu#%}JUsvk~61k!1iJWXDH0*f@Ofp|BylJL*^Yat7n#cJ&=Z=j< z^kpV&ZlFe)_vXR^8x#@bzHX&R26Fk}Tv$kdN(AtXX=Np$6(Y$>g}5KkUszJ~v=MWS zReS03Dsq8c1m}aRAVp}-X8k}+;#8(2^g#zz2vrE!;vN>j+S&2k3@orL^3}j?y2kGG z=!lsy(9TYMLq$E^&jY!`=1UEr`Emoh4rt3-he$r$jVAQ$hgXtBmye|JNQ;|( zeJT=XqcUjOX6f^T!%e89-hj;V_pfnohURt4IQ}q_k37X)^jaYNj3G&m&~RI7oowOk zzW-ipD@gUc-aav7iQNQ}h}#o~+xOemsDsu0t8TvL{ogO~X+47qLSo1T+DZBZK6Cmk zY7Z-jGhi}lmHcrS0jy%t=_WEs=p=0rI%xU47JIf}yXu&xEOs~m$ez;^iZn`T3FT}) zJ1$p32{30+O#n}Ab+s&y-c>o7!_@>|OP>RM)%#!Rn1`z%D(+k91DotK_wso0G{T%y zUOO*POWX#$*!Lw4b)R)Zjky)*R(k9Ulpg8c&2+%RZT8&`->hY85w0p+jX<)kMx~gY zgZA$J{N=8L6%&Ak_nKE-?YH>doGYCaEDl$44gHInt@XcceiHppZ`@oI4zf=^;68EX z4|d+L{2PQRyzoX7v}5gsMsWCsi_4pM!SBV*z7@7;q>(kcSbTcds;#L(AlhA}b}Kq11dBBd>!r3$Eza!&wq@dv7} zUqs_{OF>F-H=SV2J+$Aha|jJn&C+L&%QpKf@gCuHuv1CJn?;T+u<7hgA1o(L{*ofS z)NaTc$;WzF;(4(?mh*C8J{}~*#v>3(a?(UyYDND%pMgkW!FSzw;I;&!kKab=-Z;(F zOzqpw)PU@WGViRO{`=tbN&(Rn9V(;TchHNxL{Ov*FzQr;DcILT5R%%v;w&Hm!}$}nN4xJ%HFzkT$cm71d016(Y$)mz+|weMN{9dlHEUe0^Zpi*VL*0fuu zQF6^oNwb3rnx${5Bg8;!t{I4eO6_w;J7Xythi{m-$rik057+7ZlDSnI#z)5UG#KYR zQ3iH4@-IaWCg1&cChR#Vux+CdZ3r4evQ@;prWGZkS8}mDd`CY}gZN^1Gwx|cK+L#b zw>zXj4d9xYwE!WYX&h_*34|K-d_(k(uJ+fwkr@j&jRK-62g`LM|@W ze_!jRJEd{%ml1m?<6aXoQQo`?YCRO5sc|#VCYm}F89G#7C+ZGDFjhXtLPHAxwhMmN z?#b8rXb|R(%vH}yfYkl)=wT35W}k|<2uhP^{8R+x#+4RjHv^H>)e=VGc2I#clQ0V8 zBtuOkU=4flRU|Bty&ELTxf!get=HRYYXdwSxOdxrOq2tDPE%c0A{@{ZQv-Z{-p>z$ zT5IfjoIq%yV5a%hH(fzz$=4M+G$E-4eU>0f1GEI2yBwc{8gs_LAgzuH$)#kHI;<&f zvR6jE*6sRGH1n_guNZ!OuCWG8-y=)ff9K#=Xy zC$+l{Y}Z?$>h4s4qdDsHfhMQsOUOghDmK78t}QI|tad{cDjX&N>-a@pEDds%cc}`(k}o7a7E;<;~^S%@d&={@F1j z&%cMI`*eF(~$WQ0; ze$Se+6z*zpT7B{|4OC#GeI6haVcTBexl-m_|M=2}r$(;&wZ73-xuAa;BF3N4m%+=> z147|J@ZAWF?YBcSAtm{Jh7L=0`GWeL=F@pCY*fWM@hSes`cb2PxHr5kdj0%cayK<$59T`9cArlRndR3LJqw^8_wfS4rzv1LGUlXW?sM}K zTTNa4Yu|vc{OCxYQa-B0s?)4{c))V1erCC|ivYo_`l_f8jYRBh3Hgg*AU##J_Hzcs zs9|*3D$h?-ZjZ5fY8)vUMee*ZZ(D)-()3yckL~bkQ-;9dPu$0l=${Hi9x0FKhcLJ1 zwKAo;OO#Y$m{Gy(zj+j4V3h%|B6X<-W5`*|lCBmeb)sA$+JiK*+>+jqGpMBMC!fW8 z;IM^M&zC~ zv)u)pHt!ZAHtOx~dWN#`M4>rU&_p#bgVZfZ)M8B1VEk}*+0P!TN?ZoR`9ohZXpmff zd*!=AwW5tCF=S4Hx4KX5{a5|ZEnhqgUg0-C znp^mletLB!{W=~d$#fsf1~Ai%1QLp#Q3D4e6$J7+SEpi|3a^7b1ZssqeB0ny@ZXN& zG6bi}D;Q}-R`i;J___d~p*ta;9IvS++vyWY*T}mWe1xSJ=oV=JpJG^?$@LeTYU{+nu@#}c+MeJUlYUC3ZPS>W=ZL91vi=eyp zo48cZH}9G-{s$^HjdBMSxT13cot8n}Y!D_cfAHb?6)rtK^@Z`~1Q^cj_mmqnrHkpn zLh|L49q%`kU0#jx@h$eOzu%qW5=c~ba9~rO%zffCBV`9lu*IPtfN-dsOFIb;$k|3u zF8`|yEt!LN6W*VBlj@>R3u@1rTGI#$2NKF;mU4d*>Dt@K)2Ux6rM)AI$acC|ziPX? zClK>;^es~A+Razym$H~lH+l0}{7akVUr#+&Ltmx`9XT-k%S6NkbAB#1Hy3Fp&-TTt zu(Ev?9axBQO!sF~X`=^O6Y`F3KsR?#du~a%es;uUHlvH2{y6?y!Z=7;SW7n|gndlg zxWRm2S!n5e2ygiS=3N|G%!cEl`Imh=)^BoEe-6k;2(5Zan@8#%7Ey;l#8qK1NrsL+ z;n>ieUBWObj4&AG9TTCO7(xY|r0;a0kX74~lZIh{^K=dx^!u=h9gn>|Q4Japr}Q!; zn5va{<}vcnr^m^5h5#e*T+w{QYT?j#G5k5}lSqV(3>i5J7S8~|8zz(5XTArkWo?z9KkEqdHJ_MpTIQvYb1^Ne_@K_D zBNRwyobR(4HhKWhh@G8sF1D(X5#=rRpu-a#3hs9j{E;)!AX5}1@kBqIF%9Ys2nn)Q z<{L1bSYTcaRieNSYQ1j|-u=Q)2W*AHK#pl=r{DrQVBVQC?GN6~5;#n&0tH(}oUQBJ zM0bW77^yd04+<^ah{P<-x*q;YxK~`QY=bKKOBr)>QMam8Ci0Js(l3>(gU521#Jx+` zqHp$3FIZT@;WQUg;gtN7qjDRo`(a#^J78o{$Z9B->3TC=y=6!q>v!0WOOG^7SqIw0 zuhmRIW>dU~HNJD)UGTL!~ zPO}R;D}DXEUSHeCuc=K(YZeikRP^!0JGzP>O0W zz>y1F7w=S4hYf0tK)q!0G&(W!4GM*>A!FGkZ?X8hgUr%ien1DSc8#AmpGdrwAZF%n z0#*;;`1JCe*yuB5U)2~O0lVkPW@@BwLri5kSmafSpe7Y6jud*yv{7+XVG`o)?4QgY z;|8sIn!qYOsdUvKkRUi>?9~rJ3C-27hjA)Xb7+cNiPI#*lVPRp33?Y}DyWXlMo0I;FqW=1vS+*|H>fmG)U0@68bUp?n@tKmi7w(IcWN7 zwlx@eK+nB$#)w_AeY}gKc%x^sX4|<=*kUkaLl)-^2QsQGHrbAdT;Mp=v){U?{G{NB-nf;_^2iiB{BoA_57=^y$Q;qQxn}$jB@KBXZ~yn z%;ZOEs%eKq!eQ;Z+ikdJoF$wfAoot`=1*!qlqDho%i>Rcb}|R(M^Dz%w7&gz(JHYtlAlIM=Co2~n4V|Vh0E6i7#Ah5qh zPzbq$7pVClBlRpdjwJ>>?@|9 z>n9*ftFmD>;Y*HB7Jbxh?cU^%maa&{|E*m)X*0I&lcT<=ckO#Fr?0Ql4JhUztXHN# z7e5le|CVc$$A&a%aTf0H2#(noq{yRbQ{Q9$k1r-{_NT?0ily@YtVd_jAP_rG4W6o6 zAJux&2qmYk{{f6lA#h_^3kA|Q#-umjjRURH0bh5g`Wnln*nkGF!?$PCf?2BbK|)X! z!D>>;nU{7F{ zP5b>T&z$JBF6YQsVSfHFjwcw@cpVCK!5lSqpH+RC-38=D2V0w61r30_P2XEEb7y-y zQ^dRGE`NG3TWrCJ9OcHN2zr8t!qA*m&w=-G9GM6NXZw(wfy{I8Utan#Cbbil%>Nw|M?j!4`=7V2}YrRZ@AOmFNSCcz)k~x21@qMNM zGSIESN-L{I)K$rRH;AgW6G}nqCg*R~Z`K1btXdJ?g9oxeq5PJL4*6z&bd-yqA1+HE ze`d&K3-;1Vkw5f(5}%Us;1PO`o@IJH-nC;@FQ#e+VjC)DyX67 za#9U%=qt9CtAmA`?FHxQ)(pT213m%chR=zXSD>|bpR!_XBZ?XGOGCqFF+Wt90YpW7 z3iOz97|6oJC&ncpXqb?ZzYk;89Iayjy_TSk-bhokT8WpAKfn6@_M4jpOE4+3vw7z+ z=D(!_s@6j7eUKYkU`a2;&D}`}{4eL*J_P$~MHX4QKOO&`uV(fbiXLuNIVk%kaH$fV zyO`~O0M38Yrko&y@0eM1$SrDrdb}9KeY#~C`@OSemo^St34*Ou>Sn!8ZU}bCj#aEBFOE z@E`%3^};3@e39KHa|z25S^rNU2knn4Hjfu-#(RFGkaz6HWSje~R5iLw706|n)Ee9A z*gn^WaB-^UD*gTjH_gbgQe&4(i;6Iqpfx5?^xlW1xh>d*>}of}lkN@xR58ep=Bwia zSdtG<%Nmx$)EQrm7>uJobPYj%J>x z>kDvmbr_Ss2iVP+++xfUogDP4l((*DFeeGkyG-SPvChB;cxU{?yQpo5p9a2;8AgR zuU+*7_IxlbVvh?RJ0iQcN8?>mMn;^=V5?7q!~l}r|bG`$H#@WO;DhpH3Keu zfHUjqzu7uZ%@5JSs$}vf*SPO@gd22zFeBXzq*d?6)1~QQ8K6x}@InPRfiVKr`kA?~ zsqylTe8FSAa0;|@hmGK7jMo85hnbqk(z1o4pzcqm>0`%}d|jl`PRxY@1q)Ji$Z{G$ zQ9IZ%B#iMbxSEqQp9WEVp9$I$0-dLdy6fxfcp8obrT;>qS-h8%GPBR5TO&Zd`4=yMZPTPw_ubWmxWZ(cswnuL}_X+PdZq*tY?D*ag5ENh?} zG@7u5$7FYt{8}sg+`Y(GGu7nn9)4Noe#yByP!VFNziDo;j z^NrONYtgE#{Idby|Fl%E*8F&bgv;FVNtzO&xTk1>bU~ttV>;)<9v3m(4bS;R5B`wb zo?dW=pD5EEo#_67;Gp^9Ae))(EBartt6GiLQFpZ)m5jsfvbsovOmz zu`sUU#@{KeTq*T8ijIAxqy-3mL-lB^2a_qu)AtHc_-94=eY1y(@BtYP9<+5=ueo|R zTWjh;0Zm%ySqt0Pwc*8{imC4`XF@xP-+9&YHWWbZyx!U|lSX}clnW31gpMP(9RIvH zF*MnXIwbfLhG8o?j6*U4!5`C6LP8xvLshmZ9>U%opf*zm!Ra@jVjm%2R|jBzg)tu&lsYfo)=T@)HV64iMrjMp!Nh$+9J+sz^AfsLxnyhjW9@ophvQEwB!Je} zchzno>wYUXdZ;#mB;q97md`qU#q*gY(8^Ll`{*9YPCzcA8C7AG zZab8MG&4Y@B^3bh35_OWk~OJUO)bf&EYu|SiZt{u|3lGyaFqgdhLLzYOe zkW2|6oXlUe3|M<_aHd4V`((6RWQHDh?)Rsslkqgm;wiTk!Tnz30;+gRDa+rxnT|k? zf&pr3eRPM8mb5Tp_P+DGUW3%XRaxkGmY2r3`H5{Q^r>c&{0E7>d!vs#YSJFG4on9Q z5IvQ&92Z#CcWlEf)+$qIjqH2szq09jc`6hG9%M&r(E3gBy%^1C1NR^GNBtN8Gn=&B z&`zUbF7(fH9`uGXx3m<#^5fGN{K{<0IXONC@vA@RxMW`J;|sa%G@IY?IIxBaz7^Du znsV~;uUoHg?E6{hi`>V;!lx7!c9<8=`jb5C((?rf*lH%kmR-Nr*3!aV&P~rZXwe}9 zpZRukaoO}6%pX{+3K?j^pG^JI%redcroh|3pFpy!Tae57xAYM)8B^VEVl0W@1sA83 z{J#s*3Gdu@VC^kw7mBB4L|i`O(KQ0L$y|CweWkg{Sd!ufr3Ee_?FM((qXbfUWb(KE zm9n&75@}MSdQS12&2*&t55D2Poxmv3smR^QjH?e=8Lw)Umlh-nAnXkdGb?zeA*y{L zjxG^BJRgqiXhYva2cGilWavd#wDtwEatb8`ks5f2_c7p0bf%jZ%> zH1E2Ho0M45|EQrM86$&Xw7Jc7e8eXU{d?J*3kOSV^aogVGP~!^3*+Nvx>_&{AU<#+ zmyOryb^&%|N&EB_K%l|vFoqlY`-@SV-dvr71IK*Ns7`;-lylj6>eLrtEamJMPJI`K zmYoyT7EX%~`@!(%u#wTJSD#m8NFFGhZBG_ocvotj2aakJMinohUFOPo?Js>TfVSoB z2Y<rR{D0S$cAASVfx46FM%UGwXt3b+8h zg&<%IEu;55L}3)ncQbauG`Ou2WDyyTI*}`m`Yc#92&N!`hV`M91I;ZENQ0bIwXD_r zQLCAnswrk6ipfN3q#_$=tkGl-aR~y=#=_~{u;;9K=*^&x+WTx()Nxgf?NqZfE#%h# z=RI9sFR#~i%+MfER9H>mour!4Nruf01;MmXAtsZ(%v{r#or<(JM3@{)j;2?09H&CU z9<*T%yv3!oT114t5w>qoW4{dd^M+Ejm*;eU~oFP6CT z$)4mxB+b2k<$*s603k_H=Ub*CF*?lC64Bo$efbn*Vzi@99eh4zky*Xdj;md&pSCg| z9Zsiz#eDFQ;@tsoZ@ovk35eW|ly*!|JdYK+E`}>q=!JzVMVuAoN#;1N?fnG>w-GR8 zboG7Md$A(uZVLXa7N+zzctaVki3IS&uaW*gZPHhouP(_FgK%s{nE)q43Pw zb?;Bx<5HT;)Zw`%$G`3OuqVfqer>Jm-d4nx>Na_SXM?_hg@XEhN5yAC$AFTm#-9zT>)yB>h|S*?pvz)%bm5}-l%0!aW- zfd%BsUKHQ{uNDAN_Rc2VK258S5vVUEVCa&tZV6a#Wk|)J`iBq*H8T@>2uy+qLrOW{ zEy|#WAw@ojN=HjN{;Q84JZ00F9CfIFU#Py!Vx|Tjp0(-OjBg1nB1MUT9D@=g!WCB7 zNW3U@&7?W$1K$=ExMlhi3<+gr{Dy|k$_V**8rk?Ie%vR_VDcaVg9d#XT5V`(ASqx# z9sucxvU03dI#_pZ2FOZ~T4(^Y>>(-+4&`7$$ktn>*VtKbk|a}8NUqhF?OxW{eKffX z{ECRk{jRYx&>xqt_z@-;;}U58OX#dk*_@3_6Ens~HLiU7XZXrOEvG)nLgkElyLms2 zD8R+r8?`kVD2yNWJYNIl7HV7>vUKiaNF*&&Ng$~(s*tZXphG07Q=}n01db?RR=8{U zbP02s>6$AgLjcgxOt*wFjK&M1j4#a0!ROyClRAMX^SP8~(0apTu zP(!ywR_d600@x+It(J$vy}oE{-yfVV#poAax5i!vBak<0xZ1J2-i>JmQxg}3 z8KSe*oBd2>mPNhbhDivoqS)wP7JWY~ZKG8VI@3;^?p#)jyQqTx@t2?bmC_&qu7Y!P z@X?(pDZ>BN5y)&n;Z=1T1iU2P?6a`>YbCOb0rt|$ zPl7vPrgg-7G^a-F&ic@^hT$Ytbs&+o<^Q8p!+#=1YV6-~ zT}A1tQ$rz;zu_Ob^O-B)uSr68&!M-OJT6dC|cPlZ#$_xUvf~Y2I zGLg&RB1jwx9Go#+z{7d>P~FAFFecsYv?OZ`vTFZPBMeZf6Gb>te_l<07?rp5K zpzRSsmbD^Wr%o*1Z*M#!FVSF>5j0>-;!KMYI1qW0+_m>ASvG^@1E-C+IgcEJ8Ey#_ z(pt$}LkQ1juJz`5iPJ$lr38jcaf!Ac0ihScc!*Lc9Q{xKRVL`pNwy7^7jq=VHgmb4 zWZ0A)NZ0}_Sm;1QqEp2dI}Af2*(^k*PCtvwLMcZ@=jXegz-45fcLQRBlq+e3ljITT z@&K}MM@;UwM}T{z_J#+Ear|X~zmmjPps}mlFkV%s>JgG3v1ATh<7nf@`%IcIJ`U1F zS&?sMoR|YH+~7ZaQ9zx$d@~Y%*MG_`Kmf4x+_vo4-^JA?=23KGj2etBQVHsS4yqM) z|GxOtSCkFkJkj&k?~!Ddg1{MrANF(UR2ZPJf=I*o@6 zkw21Qrn=QkHJf#Ku`fbQD|JV?IY2n1CS!6y#kQw`!Cdnyrb#bns5*|6s&R5eCC$q) z8tnUll%a_*|AGhzrsAI{i4u=25Gc3AUtndW2Dy;>;pAj(qMfbYe3oxLakL{WN!_ z%TE;GM2CQUh{W`QK4)vL``ihAlQk?z&hAO43|5IV{}|f_yOni4mpRqo(Kt3@9|wh} z@waHLEql_Ea%_UGmgBD|WudCzDrR~=H)~b%5Y<~b;Gt!J0#knAGtdF10rn1BH1NEd z-c1pQAd2^O0WabI@bupCRKNfKcp;9FPImSZlb@A08r0#Px0FFvDM$;UV=HF(;1jRHeXqHUNIjUdS zU16jmmfcbDi=W^AWO60zE9?%64|y_DOqL=7E!Z_}H--rr({=Yfb*U_edz=iwXi#KRUKZE)Zk`Hg)c(t>#$<-^gsBiJ_20P}uCPt%`mOTSea&X6h)=KtlrvJF$hlCx7Z zP22M%$ehCc4{nAlf6|O3=h;6lg%jg@(rWD7mo6z)W=#qNT)V823zdR~#XS?nQhLBH zD-p@oKUP9wu*ZE+SN2;Zl#RlO){J-zj3eWqxllT=MlS^V;C`p#9{dp+s25IBj-YR; z#9{{C{ux(}avpXYUU9tH5i4CF+bzMley#LfABj1IQ%2k?(XiG1ur@} zI=iYzlfg?JcR)izyYy-S^~L-VbP_r(fliO8pRR@}+x}o9vU$O>y}JvTYcQCpGc!kY zWj+=kGv|zA@Adeo3HE(tAqX!SSvxrQRZ|;_dcvptk)Qx5wk`4KyLrIVKb1>{>EC?W zW=+cR&Sn)2I;j6mVt*qVzpkh`Hyg{spmum=Y-cWsg9MvSQG+aJh}%FKQj2TZG{C3? zZnne;ZB|f@M285-0E$*cemK07eE&pg|usugt+) z+MaEw^50+H3?SAyUK!66i4wProtoJ@)tDJcPofPm1HwMc1ZU}LE1B<;zS@_AFLQ)S zl5P3NqlE-sq|48b1UbFn+eeSg@+e62UOtdz8cZS7;RsMj(kcCnScyX$nn-yxZ}IY) zcL~5S<^>}xAE(P-8s5x~ae_Qf3n7?>Or2~p>3qVZgZ;8lR{AE1b2x!&;@Mbm40&o@ z;=?Ak6bj<^IFO~P&jlX6slB`+Du$(6t=E&!u4dcBhO}Fz%M~tjN8XCw{G=&f08tvr zxhjb9SGRkQ{LfG{z|A`O`Yyok7xAl#mc6b`nbq(Y$-1kI-~Pljmk7r5_QsZh&1IV*;{4lo8A&67?WSzWIU;`7*y`>VQW}S(*p&QtS*>P?mZ*J zpyvsADfE#AcztkK6%XQaanR@xP~`9ma9i5+JaPJaw?QCbO_jr|l@PjGtI^HfU2Dfk za2}xu%~FtOLyG_eHsi3>X)J3JC^3x4CyJC?ZGzkb+244(6y)Sc%O}zUpSx%w_VYkB zg@n~x>p1{tx6p$==R2{-w?BV!i)<>ll+oIKPqAvzcJtDnmwfmNAr)@0**sa5zK4ij zB<|X)ZEGvXr*!*=)0JxJ4giLlJ1ePDjRVEKugFj6_l8!0W^Lq5D|rRj7$+xD!uSQx zK@!ln0y1;y0dPqGjys4?Hfj65hZi5iPg`YACFH$(KzTaKsO_MThAP^HbRA#B22h$jEFyEn{;Ktd#{0F?Q?C(y0-}FW*2n@rI z_G7CSs%4Oc>2~jr3(bkFGPNo~rbnId=?l%>T?Np4nPPuTB|03%Jv*{Iw9`MN{v-m| z7c!ZW+I2(Y2RMYaMX`72=gCZks~n#1Zp4z6OFso4%0%#B5UG=CM%c>#?oLkql0M}7 zQ_i(4APtgtOmq3unybYgEZXMG)EJ$BFkT(YNXax#$YrPb@J)LMCLF%#Caab^A{&11 z-X{~CEA%`i^^Zw?;8K+deIyj?EFOE!v{L%k=Zqr$rSQ}XZ5O+Ji^z_r+a)>f9J3zv z{PfEF@BKcz+g0oS^(8=VWD>Kz%=9|}im9T4)bLx%lI+epH zzHg~}Az3w=M8W=!4_?IoJz%e!8g%RxPK@IJFULwFUrUEdJn%`8N73{cWYn)cNvLUR3(QLD@Uznj~CH z=6lb8Yl(C3Fh%&17UN!5d_^uqT76qPI5PUxtPln{4KglPTEO^z zfG(as?jl0e8}hgr63LO{pKd@*G4nOZhaxcUF((ZnnF(|5-Rt^5u>2eu27UW40>%=< zhj*(%4rGw?^&jGC!8ctzq>K<$n9oG+&+{!IZSacs5SEtKpEgo52unyM zQziQT#sE7o5SMkJD3?~y&Ha;S$0^+3w>`Cag^Z0 z?$7_rTCkuam3thcFOf6DKYHp1CH2Y1GD6lnm`8y}vEP}4gJZ*uoWH{84JafF+?uXr=Clx*x zwEYH(@fpj_&}-?c^#!T1PpMc^^XX1Y8uKByiQIRJjdVe;LVeM?)+ic!^E5p9f&eE6 zemqu+Pl}}tELEPvHOz8piM^O2dpEF$VjepNb+$S(L8a&!qVMH{ay#CY1hLGtnvxv_ zi~M*k+zORm@VVT608+3@e=xGW zrN7q4h<}Ozk4#wpS~G-BDh{THbM^JmK<~Sp#$M|O(zCBA;$t)BE=*ZUFaj%2Pclp& z_N68XI=Zp_%B_p`Vw-gOa;bG|UOjbwvnWeBDU8yx2<`*;qWkYvS!t+Qkxek{D+J55 zq|BD^#HB- zf~&=&{EM6O7LP2iKOc54y~hYK?rWQw6wpWHqlDw?GS|Ez#0X)~eRS6{W=a-f`XPVH zIkTvU>F0A0VJ>yAqj96TvW!(%Kad$j=iRA9a=Y9ppHjzmJGtKR+H^UMDB*gCpg9b{>1jE=n)5480$7cK9A{))Q+Ub3D3dH!?nvPG`cgjUg*_Z41&#I ztE2@Od+Vy&n}OUUR6lw&EW$=FaW@k$={=;)12B`Hv;TL7qB?^z6a zfqyU?QZz~pdi#`*>|uWX%NqG=0&ivKG~4aOb@LcA%N$byV}Z%S$DAph=1G_oXZRH#>@*vVgzdL}Py`X$Dgz8J%B#!Uyx3@{!P9_< zllB4Cm0jEzYzm8~xJ~o4Se{y1g#FHg7Mf7Rj~_1wS~wtR%nXO;t-F`|Uhtf;hPpby z$V~Dp#89SVu8ek)H*l?C36Y*VQ{rRCes>p-x(@LbgX!(FWPngx zl41S>iIvYVY|^dhl0*h5JJ|`ZSO5ZH_QxHBEk5iPe*5PcoLWc~9Q8Ppz)wst#?a~6 z`iCy^Gww@@ETE*98lnq+Oc?W{Zgpg#7aYIlo4w$cclK6ubEV9Zuf*c7UwE9^S;P)Y7tcO6=wl_8Md2)mImvl>}1f?NB6a%A>B7rQ3 znsfTvCz}?fn6HBHam49;GJ?(27BRBWvtp7g;zp1{Bjost)UnkWG^lB?z2ED^vYYvI zIXqVv)bGEq%Yek7(~KCDFR-h-_}V-ET!}2IAcKyzJi=`)&zB)gqPs>g)&6!fq&@cc zuV25wv6LaY*l~=yu$wZaorv`RXZL%_8j!po&5%mmR=ZGtn5)s`_r>uZ1yup1j*cWq z{yJR!7Ol^dqVLk{*sJ~nN z@*B4%;iB|IJ@4a)nhaYu)>2)v4lJCa)afWbo0Dk`!MRZrJa+d~1o4akU0ox$MB!s%F>HI_DU8VH zf5m&oZdFCN`Wsx@|9MKlbFr|1U-ojw-EYy8Qenn@oLu=Xzy~~E{GfQ1%oI##E-KPt zw2-*htsg%=K!A2w$FE*Rn&2}o!bP$k5mOBoLEWbiTtu-PHJ za2~T(DSHj%+5*pt6lKXi+$r5Ef%#^1=k&dV)kMpFvTdmXD=rEt?$XY1c7^b>m{B(p?ZxU9T>Q zelnQ_?=V3~AUHG=6KKlnpa052Is-!59gX1{aao5Hp1*RD&!e(9D-5!XGts-)rl z$hy>NN*;|_bhKBz!|bnYU%D2tpX)kK7(goY?=iYRw@O}2XMUHI`i=c?eXC$+u_LE_ z@3U#Q$1aEnHCeZ@vnv=gQrN{D64nQ@sYFHr)vf(57~_)>Q}1e=!#}QVuZl&yn%>UV zSUykbI*dfpLhgnt9X0Xe&QKabc1}#<_FWl;$fCX637hY+>P38MA@W@&c*ML@GicZI zETQ)=#A4UHy+!LRF*KO!Zr*Xr+^)*NsZ$ukn+kZ8!OVuodaa&$vGW+?{uT%2<81x5 z3tXWEvQp)D?=HR9vRi=L7ThgyR-j=}$jIOC_3PJ#`k+o`KPUU$4wv0bGF~q)IhLj8 zgNNWqJY0W=&nQoU_kZIVNglU*kD=?ulvzHn;fuk{Irm8GA7p7UwjcOE_ku&6O+GO= zXZu{)lZR;(?!o-))^3PuaH5uXj>bJ2z=8Ad>rojzwuY_HpJjf}Lc1_Z6^Fq8J6a!oiU2TwhWr!_d}=9?gVmy}NM30J7MReU+4f!B zzr45aGY zA9pMAD=5T$uGhaqj{nUtO=iZcyij8bO=BYSW{p4-yAPM@q~(JIE<=K7-#9vgJSxx& zv?lcsJG`qCi|9W$dSox{q42*aQc(8c1Nb9?(I6O+X4`!I@3}d03@L!4^qR#DQEHC4 zQd-Y@EVU)t3zjqEz{DSQLnjh5im(s#;syiTNn%KKKjH-5OQE)Z5GL?op2;-K=cCQ^ zR9dI|40ctAQD#xAfsCH6z6(c6B$I}*RoaTnNJMO2MAn*1)q2DsgGMF)HqZ|}-aULI zoRyVz6f7nxiW$!AdUdvc6#R%%_?a=80fL1%M&E0+l_x zg$&0DAAKb87t8z=x%pKvg;SJ8&vNt51@Ok$9&h^Pyq|0QN)`{+xb zrG>_ZdD9*Q1wf^lWwzaCC>htB3i3!(#$N|aMABgC~Q>4knxz!{8>-n!+dn) z8C#U+efoh$iJTm-fZop7&wUojsIh&*Wl(Pq@{ECiVLG=YgxM9G&XBFD*rTFffQEhv zTx1zeZPSe)3ZiUrh7UUGwn!ocz{*_sl{2y8 zO08~#qDQ%R>q%4|jPG=K^hfaX1u zC;?B^S(8V@r3nm;Dn9i329?jx1R%u97I%WU;2YC+jcbw~}Go=OhQ^bcF zD4p9yB~@pMDST{3^p@3>p6DbAxBfGKflZa|Tr-dP+bR{l_|X@?I&Kjv@`rFmj7Lr! zAa2QLYzz#CP{+A?!?%Ev0!Ij3J$?D$M$H%vlw;Pl3OszHrKRNwNETOD&J-;j0SKD# zJeVR;!f*M#vnAjD`A}p7=E;OX<_I&OUyrC^FE3+-NQ36@wIvHzTDzvQGBWc4u3c~H zKC+kF-qbMB6wBE|_*)QI5uTqqyz;{TWL6-OWLj`o781{*wRgFjvi>;o-G^Yd>U@&g z^k9poo?7mN1Kn4?7e}GCCuu9qD%wB7IbvHwL~C=L@u{1eoB#L}v)p-GfQXY{6h^)( zuaPR}g3gH0O_mdBHbxcO{su3fB8(R0^Bv9-AV7qa8+x~MVj@xWkpoCj9>}{Xf9SAWJ!1`Bub`i zrILYJMe#kZC>aUXbfF_7PjG#ji-~&pA8E*-@+=Mtl@b|ir}9;N&aJdd$NyLWQ_LPF zlj;)csftOyiahp_=OYFZ3jbfuK|MHryzU*rH`!mw-o6CwlMiQ%X-a{Dq~W*E*5b_{ zETv?(_LN!@_QuuCau)x0bO^v9iIu;sS^%lI1?cA5h?{Ia$6vy7$qxNCZ{XK!34WK% z&tsm5H|NE3ll^!4WS61nN!@~b@*Vke%_A-xRt}@8b!mlGH3zoURH{LeYBi{MlF~U z=n!6aHjMShs*}JE`5!{Dzv`Wh66Wep&xx)akcEh2Dm83fr|?ESBxHi~zdPy3@;e#( zCbpZ`8|nXUv(zbuB1I@FIXQV*dpCP6009Dy1|H#eDSU2#gCFw^Go2n>a83A|b0%m98MJsd2wXT!3HyFD$nQZ6EN^ad zuetFaf=WSdYq|DaijeyvvvjjQzuY6ap1PFK*M3&Jns*E$#5+anB>i^}*EOPQWx3sK zu)k~Mpj%;9i=*V}BQ?_IIm2>p!`6>}Kg84T85<3Cff_x>H{3_#kt0y)%MyPd%=Jly z`Y&Jpu*&M2-#&qv;^{BE+Z7*@bqb^%NtHmSn_?@L4WpevB`B#Y6(e$$dCz1>Xr#FN zjL#2JHn@^Gc02sX+D>mS;uTWqU7-Xv>Tlyx&w$f2p`BZ7iwuu;qK?lOcFf2_kxIRVQ zw;r9V)9BD*K%{46ICX3b$|X}go`^$L1mj9JxG;XC=gWF=`?px~x|rrRm4!E!_GqyK zLn>9m&qpTc2~=XCHnhe9PMsrasVoy@`oFW1Tg+enJO1KfN&cT2Uz^_eCR@Hs1Dl6y z!$9$*K70FvEXtfPeYiNCGQrTNAI)!Jue|iUTtG+T{639V>D0~j;c?!{Yr;}c5FqP?-;=^)*q=JQcBl@_2ujI; zabbaRiu^#@CCoW?NEzDAt@sfM=R!!8Fe{5@kudVW3j5P0+_9x9QGu_Lzq$s{V48k_ zx=_7}w~Rp@SV=&9<>E8EZ{wnwf3r>yM^N@Z33(jbPv>Gd12&vO{4uLq;1|mnHH(sx znVp(SRABw@B(n=0@X366_j=L3Jy>!Z`BDxb}Heqx)F1v)078tnz2Ljr=j zoB`lwqKnq@7$ZHO*@cocwqI(Ab(ps?0sIE9pG5Y4T_$1|r0W&=C-er?VUEA-Gph#I znr?x^d<`(R=?UWi74P9Wfal`8K#Z$!z!HWcQ$lgufwC!A(!Xk%lcf@k5@d68?v$+M z(C~6v$-go#J?)95ij&83yVfVA9Bd6?l~PKtn&!kmn~Bw>;2WN(-|~vRzw)}kaE&gg zt8?!{U?&Dk3FA*%B7293Dr+QcKnI*PIzGb+>7Qyq9?z*dFbkNkMrCIxFLh)$KyeQh zcd6>%9^RiBIp~YA*u6kTa%GE{W2!1Gp8DUOp>9DZ&OoL;CI_f`$F@|Gf?8$0m6i$0 zgH0$J!JeCAqL{5fL)KBph)Rawr@T&e0wvm?s@sOwAkkLDlaZu^Wq8AQtxD)x;cRI=5Lg+vMfC?2c7)BkN&aF-yj?SbhOYO(zqbH#%$?e=JqilUri$3o3c29s%wfEe5oT5I50st?a1#6d4O+}1>YAS}=1iq|`l^-uR#T=|UlH~t&6Hio^ZaF=d6mbCQ%sPj znG>n(rcWHX{j-{3#fRH)AI3hi54l(}IvP9p=XpkgfOHw;J&EFx#$dpwSa$0TrxK0|Y>+P6F7ruo*L>@8rZ|&uP;AcfA7w z`nPG-d!gPzG49ir4`&KcVFUbWl3y>GFAcBXIro@I4n)|@xSO^Y*)&&T0R>Q??>bbI zK3<*Zfkj|Gb07)SL%48a)f>D91QOhD$Y+joq&N!85v=pGoO@!UL62eSdvu!A(7|df zKftA>Gcj5Gj8J%d>S*9sO87f z_VeGYYU5<7H5;BLC_!txpT536xEE znY7q)w0LReDx9mB(`3>TGglpQ-b)~DkMf^Oy!I|I`Z;#_x6(JW-t6{j=h^A`h%m_F#-!-hpHD{@$9S=J)ciJ zE)ZS7g}Jh1$^BtRdy~O7bl|QB6BDaOQ5wUi)Y6l6`iWejB29O0u#rEP(!?L0&(?SZ zHM9Rfd=E43BLd@X!u%uM1;5?4KDn;-gp`?zyfHt6k&!2Sm4;0&Ur|q_*FnH8*Lw}3 zUWw-y?YCPB)aTzNZ(W%ZMDPN5Yza5A`7D{wly@$Vv_eJueF`u6{tu6nDdi^dvQTIm z3XNuqDM;b^q)3Gtt*bK*bL`0i+maT?Z&$fUJs0M>`BLE=!|ZF>jiJEYX z>+a=wbf{=dQciLUmCNvpnn4g2xmM_WTalf~L|;PbgGhx0ZQeJJQeUExhTNT}hPqxe zAY}0b!Bo9*2ym#3AW9|7F3=Eh?|cCP$Q3t4Jq$EqU}(&^&+~E&_fe9D^tc=9=!lOA z;bpDyggOf*^g<2;|MZ>{fwvg2 zOHmrqT3^P?s}HfITXvmA2hEljztU-2)xk4D=?*H;g~gV!x_{*;96$w ze;mT4A-d+6QhzQb-q7AJ?*x{YOTcGcbYnk>;HZK_&lcxjIimdbw~JB`<+b`K)6N({W=Sy51ZMMk%_g1L;GL+OR@F%Y~ksPv?F?r^fz{2X4mrb2A*@Z$r^i|AFL?Y9xhd&gdKY$ zh>z-wK$&<6TRy2J01@+Qw(?JeDk6d}xl-7hSnY%aXzeInT9rQ8Wbj%>z?4efdeWCD z<|rvv(J`?I+fcg{QxO@yk<+-@oU^m}GF-WJb7p*F+5asol&&lQO;oa<92EEDsy+9a z_%}N`&4>yO1&H1RsTD6SW z0SS}3(x>%5)uoVyJOv6`B<)~Jn%94Aqb#xiH(~5*L+v^&k|z$Rkc%@!V|zfQrIkYU zjkxB&t3T*N$nKDbV%efn5C8vj2Os#}*!hXPpqE%7rMymE0_~NAzVE$>Kb&qmZPP#6=BnM<62E@wUXbCDyDiB2g9l#n%}YBS zlC$4=@_g=Vb*l3(=YA#Rze|b5t&On9*6CK9DUZGAQbtXqu(7H7fn0~^0SG;w*$1^; z28*Y}I)q+EL=Th*+zb^Urcnkny_9RhAo#MZY!8TqVh|YS?1K@siU{Zk9iNkE3s7h>Ag2 z7*h&31wiBzSqN=E;>@%va3^lfd&V92pwoa8^!_kQ`7Pc~owUP`D+GMlHj+e7%JjyG zZH}0Gn@)EjenJ(Ao-O{jw*0|E5yWF^^>uB0?@s21IbXYfmy6{xY_>f=5F+9Hm&tEq z%mfY>Qvz-Lksr-LMv$){1g)FRpeQ?Hn6a{nY<0J|c0M&{#C{?%c1!OC$Q2I*A_OT=m~64pmaQO>KxuRkh!`=Y9<) zH4+A^_s|dDMc|)bV-qwopN^MJ3))UBIdRwt!xUiFZE&Qr><}V}6*oJ^v=T$c>kdjJ@5D1z8R@ZgBMB>W##3=p3kiu~gDa=F)F(&Fh@9I@?dmm7IlzAM%R_ zfBybHT?iT>xb1g zcu)U*=Y!}-i(IdixzChzZiBs~LjP|%#PeyimGKFUUJm#e5i}&ww`418v?#CRc2Hh& zVJ6CrS%A-)ZkC)<+W1BP+xlGZ8)>tY!(94Jt?+i=Iy1(@;mD0V3h0sgQ@!e7-*-ai z)Ax@m!xsd;?>3KLzZ+kxkN5u>S@D_HP1sA+uZKeNrP})(Cy}44dC?TrKi9t(cxCrf zN@D~gj;zuFUieTZzu!$S9-9u(_cawD8s##;X4aHU8Hsm3+D-eFk{(8c@z}hutPJ%N zsQbG?^9hJqOc?_)Hb4|{9!4uIJyRz`pomwCD_9DgI7%0&8X=Vm3k8|V2txM5+EuMnw zf}JGjM0^Y#o278uD1*#(Y{V6xT3X$L0N`2}59lt8aQq5ZUo=wZ-5$J)>c8Oc_-Ck; zg*Hm=I-WDTYS8k}ep1wlWA;VTWIerK2x+G7U*7(y}LVl0iD zL`hL)yeI}C7C$3F~95*YS38_`d*lDr|YN>-6MCXjlq6cEA3!oq2w{?;t& z@{7rC?QFzv)WJps#cR!qG2ryK0++>6a8=uhe)ihd>&H8hbJO109jobf>#rIthm-9E zUsvywmxr*$gm}SUG#MUCb$k@SLDg(s{Dh^c>=b>AZME26mN}W0@>B_gidc01k(v48 z3X*Dy{$9RrsC<91A>YsU$Ll@K?=rN#njVer`3%ADq}h^A3t>y$6r?H+oJQ@G3$OAz zoikN;TPMf8$fEM(VAckPGqJfNmVh+kvmVLix;>e9Qn2+WtaJOYcJ3;9Ijb1`NE&qD z<;<}Yn)_}rrttGq_r;;Q4O^O#N<&>`Wkz0qVY2;dsc)CDpN^+k8wN{tF?3uST3cIF z5sSpMoaIM40zhNnicdC;$L~UX@%)?njM4nWgtVSzuN>+3E3akYZ~iwk{?$^+oqZ&m zDa%l4@IGa@4zWbzT0Q%@*GF*_T>K(S^zsg2!Ta9@hsmg8yeekjZP;iZ*Em;(8}zof zz`4;L+D1No^t!Is)UR*R+Vn&R;mj`MeKV8%ibPF)Q~#&Ckn9uPYPmrM^jEJKrj1G? z-(@GI-TO3}?|+-88-K(=)61*Y`CCl_s$<=^=(dX9a8E?w%6$ct(1`Fio0;HkArR8KUM5`m7+inkO2W54r* z_*X=XB$46yC1pO)kg|L_#Ot2rhZSFq*Z@CL?@(YAPYG+q>{p%Sm%;$tRX6vu_pA|S zc6Q}OHsHcr^Hx8mLx8-uMw^TF-R4RgfIIkPr`&0D!DgRqnFgI$SO9IWz|p}2{E5%f z+(aL?$A0$U{)V7|N>yP$WFo-6%aQ^r+cKa2!rGg6e-mYZMP30)^<@OMK1-CIBG&*t z!bM2P0-uMV^lkWf%45-Px!1oIv_H35V}NK!%=p4IzfE4HkLQ=6kNlm!W!9w_o=oVx zYV)1e88h~n-Ev*^<+atmgWNNUn*49yD~jPy0L~hw1h5?l2v-F$8?fW{-5?YTC0F(u zh@%MSDEtiYOt_YLHCdl9NhFw`TPp4JNDP7wn%xEdrUu9UaA+X5tBtrsFlv5A@)Ao< z9MN4CHpT~R>L!0NzC6)2zEYU2bs0?;I0{yXCU@^8es!c*k;B>@@$fE92K2-gRvpaQ zRmmAX=u0(9#9ls@%6BXLwS?}%9>V;;UCra)&x9AE*mQ^pv5DYQ{D>B|P!GchTS}g9 z@Iw{lnJ>jJs~p|9qrVovFwTBsYx@Qkn$`f?Xe8WQXd&P}`abSe#^dgEZ~gYM zFDkU=wtco66$#Y`dZg#BuBgCLDH!fYZam|~&vcrXU_QCMxlRmT8_RgA^s$2iPlTRj ztVku>7fh$oxFI}5dAmFGh&wmNP{k1Xw~uTuWiKQMj(0lWKr6Q-44epD5#tqvYOQPY zi_~Hs|Gvt*laUG7P8s{Juo+)&zUr65Uf{+XO8h|~==ke&qxe|9{|%9ooNwCSF3Vxe zb1sfMme1P-ByFbZG5vS^qNJY1j{n^|`Z6@5sY<9NF=SLwH#eF*R$&!7`|9iqr6t2J zJb9VYtk$}>4ku}-Iu9NX9bQ&VjZZo;L5)G=Z9znXJNVyNu8g(Qp@?yRR=!(in#I~E zggm>Tl}hM#BZO}85s}WZA6Ld`NFG;2zG;t}>M1-HB`l3L`GvcG!zXI3G1c@tRSr*W;XNlb%aY zk0>ciS78Fo8BD2tR|t%qro}L&+}%XWCx!X{xs{|P98*hy@UZ7|MvNFAS6E3twAPCO zn;t{tzJ7|-tv{w=x}2-a`l0tx6_d}Xv{7eZ#k%qN6T)NT-pR^z{=;#t+Q6HdWn=A^ z4R%u{4%XRCCkMmE%?Cs7{>QJjs#2i2Nw0?bW7W8((Ow42G_qU5`714;mF~paduJdRULRo zD_)r!8*}Bf8kKJJW}R5uO78``%48(<-;OWxE1(DM<16r+J2ozb5Jps}GOv8#Pt3IM z9my8I454rgo0>ZulQib3w|(}>fKy@iee}^v{134YVxQ&7rb!+SM1)|dDL4nWf(1wf z8p)vD7>-1~+sd`*JKEsyh0p;pt35bg9~M~n;uZP%k=;?-!eaRr<6Rx4ZnPW^FKPWm_EhWXQL;aaAO$s|A@(L-_!qK6#jAR zqK5H#e!b++pP!x0VObYRp!$sF`_=JRp6MLQzp_4M%1F1ZQ6ZZ50*8#G#&F9aqKkt& zaYaC7WnXW1SkEfQYa^fYmFDtC6oUU^oP1GHlWH_ysR! z7))$izB3;Cyom~#%u@ENaiZ}%=P~ay@LNfWjsFV{sa$X`WVkQ;lKlyB(UuuExw2mh*|6ld5_!2}`Do-cwLE8F zXP&ZX3-$JbRH;n-!O|c0v%|c&vucka{5+QLiDZ(dXaj_g0pPe&Ba)4h)96aY4IFp= z)taUNId6aTKzJk|kCuLbS5*TlD>blkkX}TJ9MDas!k`;FH2QNH;B;hFs6!;OhaR)m zMf-(H3?_?&jW{D=rcuHp8Ohi_3ewVxkKkj(UVsM!E?GHj5BWe`+iknRX6{GS5rMSp z&GjLZdZQYJ_o5paNg$<$=|AA{<0;CVS3u}v{PpK{teEkwyHLd!5^OpA5k)kz1y66 z^CQ_xe!?RrpBDIID)-rCarJ~;*lRvXJD;0964<}Zz@!=tWg`V|sQu`%4x(6H#S z^@+d9nF6EVnUvj7^h|)cA0Kpdyo7bMIivdgHgJvK7{FIXfQiIL_WDTlhYp#=)oQ%L zh4~iq@WI0wL(ku95}p{lhWv_1x6T?%|I6!L03SbtB1H9tP5bbMkU;vOqi`A3eee1a zI?`@{r0OVhV*2=sS=IFi;J20`MDSqy#MJxV%UF~ zQcUI>YbXuQ1+CO&&?6F4O4myiuqWU1kX_oA}z33mWxESq^s?*hzK=~s=rx( zh9*XM^JL;VYjyvAR!%>=Hqo5e=jnp?H^p>2!z*-%FtXS3zQC08nH6h@2)Yj8QiyIv z9f2`dj`;&$Nj!8N9j($GZoJ2Rck=T%FuN7nHN%uQ+<;DD@i34UhM`xq;R6s5Q!*&H z{!)vQMlE)Y`YXBq&A6w`F)ST|`WdQZhI!}GlmqE09e#Xg`ciRpi)ec+l z6t>#<_~}U4%Aq&6mbQ*Sl5$#6+MosPv^!8vz^Oy=Q2Sn)(0t}0Q1%D}-8Sj)vCH-j z&t0QCy*fx0iwCM+%$=y*-G4hf$(DLE$M%A_PeIT>h*5%|&DVExe{m3lpv|~T4(S=^ zxPQO+xo0+NIVQz+6Xqj{oCr6Ywkjp5Ra|s=ru8bClF@qs``yW}Mu&MnyC1)oweiXRJM%w(*Ww#XUF+l?~=cJrfx9{%7U8P_sN46>%&0vxd5us zX>qC)V2~s z>(1cvk1~$@#gT##I0~syK5flDI(9(O` zO+&9E;{Gi&GKI@Y9nPqdF6<00YK5{Ir^R+_hM}PVd(P9%X7|Kk@9f*FheA{9S@_u5 zF$eiX(r*rcpiteD94i@UJ{rLoY2>`$8)qHFLk8*ItL~?c)Lto^t>rST&X?LxLqyk>&BXB)T_ciI20guDx6lU+FKXULd5NXL71FDvy zvg3W%*?u%`DLH%$ygvV3`}OwV;|_D){{$n#L+el4+JI+M`VHjCn3g)frIF5Gbm@Wsgf3|XmVVI!hoT0Bd=JFNc!NcUcR zrNc<=gtTlD`5wgs1lq{I+_LFKeJJ^nTGrjHg;8ZwC9v^9?dO5`DhDXQfCTC5(u6Zm zOy3D9uxd&Or4P=5O!$xMlMp)4oQq~Q1h9_zdccNJ^@{+x6VN7u@Xi;I$8sR2cOdKG zrb;(AK{x^>jEJL!05DWAgAvqL;6^_sz}6rVADeVHgd*HTuTzpy?R@9I2soJNLMa=9 zM2EZXSHk+)r_D}YvSc4#?LEFE!1fBrUh^L4t8CuM{Pr!$sl)G-t?Ji)7w)3(&3T5g zkInZOs)FX0awWRUL@N^i3PFtn(xfDow93YX1OImB_q^|~>|EDwoWJK!52xIk?k^XE z=)P;M7qfO`-ot^~t8dq-`U4o&FW*b#aGkr8nNtFlk~Yf+WbC((DJ11J5iMbi4@sCd zPy*7Tn8&thD&Uf!4%fC^?g{rl_4LPLX)Vv<;J1G9(19Mf$4fUr zN3B%hRVpO!71#p-n$PMK9dd`1R;~X{P@~?fy?deOg17Y)ypZ_R=sX|EicYvczSK)< zdIU5ZS z-q!~l4YJ2{H@|oN9~tX!{VAO;-^kH(aBwhgT*4f3s}4%|P2=|kU`dKPz}M+H3(y+o z>A{3+S}U*@xq8uWzdR zY1Qz})%OS6{caDcZgIkcHm#18M=oCOc!Et-NIl>fOD=g#h5E<|6CSB_6jP0);|4O>FB(I3`P+hWY=HN<|hIv;s z|IT|93RC&m+zpNAwzsui_Tq$~Wv?9;4Vo_Say*XW7m4Ynqzi*0M=gT5Wy$92&GneZ z_N5g0??M0|XmauBi?4{1)*i%=x~ZZ-MICnQpPw=L1He28goEC9F@5zbipb1wg&^pY zYmc%odzXMzE0!#T z%-nDWOo*s`;VZa9I#Vi3pbzN41iIe`AXzxQ=z-KT#W74E9>EB()XS|;wA9leiZh8J z7Xb0_08A>azU#3itjT#?(aU2w$FL*-I|m7gEn=xh=yPIOHZjjcDnQo^LeitYv!%f4A{b&B$wsFOsB9#8UYc zJ)JUg4LDEVfN*5}(t9z`JkPWG~zM>$_ViZvx|RO__Rmc zLiv9+zE-_IE(b|_a%H@BKPs@Oy-dKk8rFquA{Us;;k6vz(5%AA_cwCLU$0*9i63ujd=u z_oKaC*94hihLi0lGyZ-HO>6R>&My0DXquNzFj3rlEnoo9^o{}*m4OTtO{w=^`?GQYhm0NVWK{9xX(tLM>_91r!Unu^`ZZt*ZT^5fwub zC+MzPK$L(T$i2EZ^qVZ+%VoN(#41gm{RDir8MnUC2$J4>DkgbmVwZS?3(1qEcb;iz z7dYk1u~Ap-<$p>bWZ?OGru||%K9p?<{r|wC7h~@lf}L<5Ud*X4*l!b0#}xbOR+_n= zJ6wWOgBy2Bm^268_OqeXaUYw3tAO#OYAz1xI9 zAPXUZUtNC!g{Y37N~O@$2RFsr2#a}-_`&|iyauo{e%DaBi|W!9la!2 zI6{%=!6GiSGho*hPKt^r`{7e7`8W85*aw5Z*=vB$Ke2@}Ds6&M7p64hp1tM(5<#L- z!g@d@4TwA>%$X9abnH&CqLpk3K1!;|8l3_k-7l0{^Oi^%-iJT>|7iN|aH{+N|D%Kk zog`$R5;C*03E6vQOR~vMwouBBkezjGGRqFxD|?gdy~+MP&;9xS?mzD9>QWq>_v`h1 zK4xt^jSaS+{IIi$_EepBor(5;E2RD~6k|3j6G`-Q9X<{_jeppoS8zz*bnooJ!+7C; zw@^=ib0-Sae)segbsg2M`jO$6*@$Y6#Y6cXkYY12$Zd7F5d?=ao6!D1h?3y;kw$L8o0)fNk8NKmWCjiE@BOs-kA|oVDRlvjYWSoyYcUo;?{)#YRRY< zPw>j_4-B33@*Pe@TrWR8W{G9cbcrHjvdEO2E=#W$FaLgQCHVRGzzS#i-=8_o6=4L< zI&T|Pb_F+Q0;ofEJb!(-b+M;(Q3{prJ2;@tv$%&v%%ZcGMtx=uA5sx_+i9Z*%^11G zAaJ@%HQBtORol(vR@M$7iOL2KsKTaQragfQ4QtRTc{=0q$0jqqX;M9uAM!q=NrqIe1Tq~@cl&IO zV;*7x7ys~72E)_S#lq^-9jv;*me)=bXX~~~$-+XGP3r=$^K|RHo`do-l;g4O=*|IJ zLB*R6hAUq|h5Q zvxkl~Qh_|vUMDq&Q$aeQC{?OHDX3}=r5yhNdbc<qXv;xk$yzeRMoAC?N(a>pb^*vjQz8RBB;^(F0UHWcPkDm;K*- zp22{qu4anJ019WxGJe(y(^PR=ZIjm!m9lR&pse+x(3` zH_cdZX1}EV+o9G8;lx1=61ar))8xEwoF|~%#0{a6#M|fEd2m?cQt^w-ey^SoJ1x+P zrX~tcl=Lu~*5x(bLT>kd;{$&?;bao*q*>4jTt!8jyf*?jL-U8lD?Qhrc0LRw!$vi? zI_v8XgHCkQnBaP$Clhw+V z6W$wVk7%K4qeuc1RBTVd5R7MeZT+%zVX5;s4cbDo^(1gMLD0!+B~4W+b1srLi(WKh ziC2;IeFQC-1f?~Fp}D=gTQO-7ZYO9cmy?sDi^Q`1jS(Hdm;%z9zw~&Q9=)A)HHb*3 zfylO>r0_UkWI|wh(p#zB1hvhDfb{|SvE2l@Fa?$`lJ3LTzU3tGfhrsCiy8hw4uL_^ zPQf|p1{saVle@PLJDc#%TsyzqJvns2SV_b66T$t^{uEDCb(02<1~^#E0*@?bq6!0& zR!q9VSxLn1`38j6y(D}*VQo3a{o>b#N?MhNjLv$ zJuWr$Lpf5evKYZu3VOS&0l%BVTJGzfNe*!Ri4+Cm6(*=D3Bkh42h;8c zLendz-3hKzHH?7`3q-6df5W(ChrXwxJX!pW{=xh{W#2-%r}3g_L?80LI}Fbq_WPA? zJ8UgXoe*UW+4Eicf|k(+7jh`OF{CW!rfhS4c(GzNDd7kc#R}wnoI&)0H0TX$hbz21gRHP_g zP35b}g2}3ryFaCTFU80uawdkKF*v#w}IAA)3v*byzcM*ett z&3CB5W6{NVpb^6&Ld(kolp>sQR3 z)$IX)JRkfWvn0<0c(G(ZiLlf%Dk>~>=Ll5_uU3HqCw!#Dih}WF z(|ozqp3Wp}{ghGM5w%whRdXXgY$eANt8u7P<(o$3mCcn^ZNtdIP8kev;k z)};1$_xn3}9>g(s+`^vXSbr1wscYdDq&PTGu*s%U|3msLx~4La{Sr|w{T@i8^SI*tyEDPS>iO&WHFhke*tR1Yr=y!4O{EB0a06_!Rklne;QE0JO}^#I<*bSzi0 z2EKq}$kUAU{W~3?eIuY^_GLXBec)-)z`zn^UwfS>0%m`Ft2jf4me|>^Wv!W0@R!i^ zC&Zua6$*Pji=b7EzO1q#q;VW=nmRRW$m{IUdG@L=U3c0QMD5B3W99f3Lm<@W>cTXL zvNsnqH?qR|RKEU3FsTbNsGRhNG06Q-lm24nVEdq1uJs8%lU-Ap2yi@lCX)-iwz^l8 znbsKGVztC!KdO>f#ut!qrjb3g{4mB?^MtgtbdH$0l|@Tgi|b|zo2JD9mp|R4>!Om^ zPUK4t?cZuc;m?SB*dE&P4hA+E{T|M_g;Lm>uk!U8^a~eunS@xcM(VRADd(3Wr=4cP zjw{)j1%`F!DFIYtg!ZRZ$U%S5l-HdfAMGv_eC1c_Fl6<2a$>#*u=DTONOdz3+Dw->Mo;FhExc3ah6~RMR z=ykT5)%YCNXkqu6hW>?~LgRn=y@JOh#_*_Q8~=N4E!C3GGhGei9{scY9NoCP{rjL} zWYzojbwg+u`f}O9Q7PKk;(j0q3PTbWL#ndWoE#`P;DhX$hojDh|9d>{H;YP#a70bMNL9AT$1qIfJk`h9a0yw`*og_l~3 ztCy;GiCML_+T*yDg!k1ec@&;fVnmRz^kd4$6cXFLI4K-F0EC?NKApvI*ZElt?MKi( z2ro0auTxElZ{F9W1FEgn4EF(p!YgT`xOaM5cOh`2k$;LL2cGfSmN04&uT%IpF#2Xk z^VIBi!=aewc2e&?hWU_1U;5SCbnr#PX)V6~%~N1aKJ-jhCG`aQ9Dd+GDA}c6vx^T? zxJif0W*Wl6yW1`FJ+u;@k6}IM!HC_Si(OzV4;MuQ3Upma!Ow$1R=_n-Z}&vRb zqAylddS{B?C>}8wQyQ3my0_-I`hM>#r5`&jgJ#x1=Il!f&!^616n0|%o=HrE*_10( z(#QsXDFF4PW)^D>5AW~C?93&Z+;NW8=;RQkJnVnvw@P_*O%s>D6H{03|@Z%j9TrrqBW*>q2EA4bl4f-%wY|UMC4yyf(Fv` zkmB^`{`$k8OdiaMKMl`e^!E>)We7~@FpbxZ>wOBEzpv4(Y-}yG-FL82 z@m*q5Tk>>itNf>4xFoh9dL;#`adfOGk~j1|CUzz;6$;csXKys(H6pLw23-+A7)b2j zG&<2&Vt>Ql1Z3diZaAY*qN2DT+5)J(tG_|+$T_w&U8-1U5`H!G%exGTe(w^Sb$NC! zKLjX4tJyyMCh;LwuGcA+PSaK{C33@;5TYs-pfcoin7iwK2yvtKdJrSBhLyAk^foq@ zwQzlly2hX$D=tCWJKf||hOb&pq*ig!U8Z*=mRD9T$*K5<8*^AShZA?HaB+E_MrT|GG`D zlr)k2xg9S2o@CdBShCgBxe%VIkt!Fqnm-R=DFSNZaLU~_xq`0avXzxp)!D)Lq9nU_ z&ZKoyZsCZi;}gZ@l!A`a0P1tQzI2%uYQv5DdO^3KcgCqdhP8Uj7nUlQLzpmrtb*$6 zHMNJ|*PZzL0Z~pwQqhnYb#(k5e_#7USy{Q)(U2}EmRGaJy&v0*aXB{MINpIJgBKV9 z?~Bo%1Mu1;zk49VZ!=X5r&XAn8-*fs$FYdWQCs5lv1a|!Wh>7gu``4J8?I$lzeqMH&w3iw< z>DjaBM=Qmb12U6H?XlI{Lhb!;CLrC90HRENjM>H+{;#1C_MC9eLs)6_89>rie|I{l z&zmlcH>+o78M|vl9Nk9g@~zt(zSq|%Uw-RPEKA5Qv(XhVHwGRMe_Eb1Lg`o6!kfw6 z0%-k}#aakPz7YPziA3NS>&+R=p$lv>lQ}szsqg1&j+g4lL|ZRhr#|}3$Jt}yZtCK- zcqphU!9>w=mh62tJj20c^7-$wS#ly=THq(i8Lvj87aU{sUr)I%f?3KKes)l#lQSoN z2l3TnOa<~Z6WC|JGzH~GSCBLn=RJ^%@!DrH%zm}|Pz~)dTX(*?n|v|>GGELucji5Q z)Q`rT9Ddu42|n_vv--mlf|?qG<@rwh zV3%kSRnWl00tJZ-Hlpbn@$dhy1$dJbX7@Fq0d4fp3--IbEUas^D))SpP3WPuq2VRt z13W=o6#dS!yrhPPN<>x&RMV=jG&{2w14MGJ6`$7Fg1M(aA|396J1j|ROl#% z%x822CTE3K23FZ!!MJ(oLr(T#TImtHXE<=J*n`k<^3bcyGlTgWX;3Mjb~OG(noe8c z&4Vhgozh_Jy{PwyYF^isR42Ct=Bk2KSE{lDh{>R6IjV(TflW}asYcMoO;d$%~WT*7Px zpAXV?FlF+J;3~`E4THLOb1uS<14Bbp0C6<_U4_0yHsRB)#yf5=30lc*s{tAJD%u$` zE*k0LnLceMw*{+)w8?MsdcwF=xWwH_4;J@H1+f`rg@RGFU zILT$bYS0r6H-9cGmG_HBZF$cwW~pNg z9NNA{WGTjS%zJz9L_RZgw>eA_>T*9+4ccaopzTWHwmQhu#yorcCher9&CKa(CA$Ug z8%HyTb%xHR|2JS+B%i)SV!I!%udXe%Vmft~<>?~ZKKLRD0>o34c_|128YAfy$cUw) zg@Ctroc0XZl*096XB7PRTO3v`fVZE0uSjJGB4*VqwVSE)n7N*)uYYp5E@#G}-UJ1O zf;~b0jY5a+3`B*w@$f=^yVKQfPP<>6!Iva|AylyjNezWzA~17$l?B=?!uV*`O~G%Y zt!bqjZ#-^r@D`#OJOfX>T*=GR!uWIIe&;sqR=aQ3U9?>6ifEiv%0z&>9sDz9hHvVx zpe@SF%3`BU;!NoxizlsJZ^-MjG&i#L(?w z@8nrop_lVq9>a1^eohX7T;?9~_t==u(RKCY(_i#c@I9it;&BI`N)Oi^h1lN62~d`_ z6LD+~mSe5`ht_>{SN#U{Enk`+CrR$-hx8)Z@Ly#_cmZ|En{9Sr2v$jI!{zA!7ma6! zJua)0*O(Nec%5CJvHCsvizmgJ4C`ts+j`h>ko{#Mn?{ErpF zb@Hm=#9UU>sQN9E7MMY)Ze}7vs#I~6gta}N~M*Jc=_^%OoUJmF5*e(WlX8g zcJ*du?V@ERtHZTnrc+3K_oeA@;7?T1xPl74dI_l$ee2^>Wgqr>#BIb^<8eed6_2d; z0cmI4LXK}}imk&N6H zuN|fj*_$J1QU0mD=KP7#v>%f=;FuCDs;Pk`T7^iVKmGluva+&0d81&+Ihp0{HHXl| z#IYZ`Xb*~?6yAO3Vx389+PqjlW5(izuXhslR20Z{(YZUIX{+gQQ zC4@(kyTe#%VWA=0H4tkf91h5bga6%l!7bOyg&)=}E@@q6?tKA3uI<;IZ8#e&b1hsc|Tu z>4zxwhB$7kS2g=X^{*Y;KO4d|4QcH2VQ7|k@T=L zRIoWKYlPf-y)m}`NBrj5;>B5=IK?O-wh@ezoML8xuPbU;zD-oH_f4FDPoC2XEGH)>?U;&VIaOhG3AWE`MyGD*&Hyv4}oN z>$}$(%KQWST6Kx30%KzBP9RgxoAvb%=@uQ)?eh^Zhn)=99xTGF-2bGFhXL83l;}Kk zlzi0r+|VwO-`R3T4EW0}*c{y2A8sI3v#7Ue)w10;sy3xW{?&hD2!ne~t9A4YzH#oy zj}>DDT|ewU!NYu8HJR<0DGSF><%6>2m)Aeu+jaf^s
2)H-&(j{tHteL-+_E2M-oLn`slKmTi||uHX^#frI^wRK$Z?_&J|AdXC;j7ChK8E0 zoYoh}s#_k^O|tFfB8WLVn2m&wE_Cih#dvAQf97Slc1eukNo%n+SYzKt(n9e)>z_yU zq%*+L1io-YB9}%8RD5!BzC70$%+gWO(C`o6JV|A!2qgzo1On^H8&KI8gg+fG_JaoH zz*J08sG-W8q}!0acTZ~a>jxiJ`nA%ps-Bm7c562w{w^c7U{&(oC+j!|1?Y$grOYG%VI*8xSpmnBF~vu) zNnm`xTU&da!>jve>ECJ^p1EB*>HADV%U)-)DZ(`^bB`!QGFzOq#U30Z!TJsRM3?!R zGi#=xtfy&NQ5^X?-~~-4Vkye@08xKn?xf&(mbzf7&=1yO@sx0jxX{_w;sns^`G1o3 zKi)FoxXYNgCkQr4g?{Faoc#PUn|LbfxbI+icJqQx3t38^V`%vN_dn8J=UDK6nNPO+4 zM0U&B`uAyJqXz#l&o$%wcc!W%Q|^H&^d4^tawm_NJob(YLgiK$764A(1T;6 zK=1Qagw`YP^ZmNh`4YL90==>v`66>Jx1qac31`_#`0dFYat4fBT3l}15+t5~2h?(F z?`sz5aBHcUvc{nmAe~~RtA${*KwItEv%?BGHp=xUICRFO-(h8ZpuJ9dLlU^9NvH?F z;6>lQ1ch<+2wj}6e4ipqX{YvFD{70Rqr96u6ZLJSizibdUQ-{(66f-NrK2tr+mX42 z1rtTKMB23;u18c4Axhh1b%-2@dR<7xRW=kED+(4~9m=nAdQ@03G%( zZ#MM3Git~q{Q)&RfO1pwghwfXS#$~s405UmEDu$Pl!WF#%du8w1^YoqS+{-_mHX*- zj+$4PsK<2OV(rQKVVsqdKJ~iR|B{s+1@@;A-R)JG6U3pA%B`CMku`{42h9ZPs_ zZ=Q!PjvqTsfGTUO6{+TwQp`i%n=bDiaOCvqS^wJ=Bfk??{=Ca}=-*QI5X0)Eb6X3m!2TVmwfA{)WUxdO>J*~$#e*FEli`prct z7CI#Pz_XZ^T#}AB_iebN9zEGdQgliV8I6xDSTs20@23YKd=P}%(S9^``jDKdaR(Zo z7JI8ld}*+;2;U?v@)FTtf1}x<@VCc8h~(NZ?|i>53s*H<@z?IUCS_7Z7Bj0gfqK1| z8J47XU$h6G!>G>~buG#5eh{4>>~$5}t3zw$MAra=LGu zE8z&<)jvs6rp!A}S*#7h9J6{of zbVIzq)Y`!@=VeCWnm8VqD?L3ufgu#6$_$`HK@===2heh;rzHvfpEtOAfj8KbR;5(?SK<;onH2ur zJ=L<9d3Xc8Ia&V>(@jZ+!B{p#$!2+QdXq4gERlcnVBbj)aM}1E!GD7S(r?W~PGT2bFK>)JcipI1R1^es3h0;>G8+FlG=BRl z&LE4ps0(I;fuiDS!b+%2s_s~O&O~v2!gVnbZDHVbG%qFp>>!aF3VRn5L_bnG>tE~u zdEBBT>5&7s=k-yhtzhfkc46OeK-^_H*jG3o8E?ZhUeeC$BUg;OS9D$y8w*o zOGjP%>;j@4?~8MG6E%LF>TfS36qsKR#hQh_rkS^+Sln>mu&}U!=b1FP@yo%%0p{MT ztJ}|CIldDR9F?mn^xb;2b#U|KeABk}2&&aEr$}oV2l~xkQOn=$f2Wq5%ABOI#kfp5 z_PAV})V2IrFom04=;V7{$ZMkD6bERE11R`>7XXiiyJjB0c8NA&i~0HX@@;y>JdfLW zGxUl=&h@89RwDoY{HgbYO=rByHhJ>|rC*qv3k#v3X>TelAoxuShDd+vvp=}GQ*YqS z0sXQR+z?*cp)q`LYc6CkmtG-mFT13hZ2igm5cob$&bI<=^<5uS5&rM#4punsi!mb! z*^|~#aqp0Iimhml&1fgWFN^pVP;3~myabT*LAG91tXY!NuV5KY0{jg13Yg+|gyPt9 za+tzRWf6V}djm!0>2#WYw;-{G3tyrC)-~4Lx5)(V!xZYb{v11eCW$m(P%tqwd^{M# zvM)u$Esh1bFj&yH@#hL&3eZ%S^oMzqu6rcU{!nIkse{h3B)uQ}wqO;*GySp`L_I;i z>B+zeuV$7j&eJNtf}p{E4q{nIYUdhsu0dQu>6h3H+b2TN6MprJ-h*CzlOBw3n3nJp zZFWfsCm~#6pPt?m-G4`F++v@VYyz(NfJUzCd@axyqKu+ZaN9T$=59?d4^bIAP}mge<#3QNktY4%3!lY|qkrKUcic1X3*(#^Q3&CKCMaGC*adW) z$=-`Lg%bOY<|CGzM>{LXUOpkySk6;l4SZv~;egnQ{33Aa;!q-}?#H?K{}e%8j^%XMgw={S;IjXxV$K&=4M8!6` znDzp5s@MHo7Q#+$tVpo|@6Sn>+=`dBZ@v@5y-5}P^d3daa$w&VX?ev=foBE(k!lV0 z%MaBm&AKNH4R6Y}a&>gD@0ynM51z4tIbtANEj}(z_90uz?TY5;3`?f_M`WmZ&ED$H z3ag;^TqCt^y~Z3v47auJcD+!!MUVJtpRnnDaRPJTO;F)Z7~wmPXhEbPKF`E+Qpr1J z=@AOAD(0iBKsEB)ENZOQ^CaSdTtVeZ&b1Db{U==~(bpK=N6``QpA?N(Tjnn=iQygX zCSOeSjUCr)dbw!zg@^D1M|}2tvT`;|;MF&BDwu~=YP_NcUb=nbYwvJuUd~LmcXMVV zAXF0UfOa=0bZ(tl3QOXQ-fPY>(DoWw(CCqRD}@OAWq)jFe%1H+^7MK6-;5ae?9E$$T&E1Fy*<`pGMV4$SPgsH(Mf|> zSy{#O@aVMIWctV7!1^KT4%eA$#`2tW_~j8CP?-ir=yw~nW~4$|lHOcGIc@MQ2EV3h zY(}HeRT~un%N%$A#9oi^oSdq>NVMmwawF7G9gR37AAs`LRc5 z3np6+jlK52|00-AQc>k|O@d(fi7XeE|K9NDTUZfEK~QtW%jM-!v*=o!`UKBH)j~Vs zN>Z4`P6&Q1wc-=k_213M=v~eI#paEXK^CK%SSmz%!z#`pi>~7iPC^5tqYvbYSNQ>I z2o>+QF_wP`n)EEtuzbL}<}rO;`R8>(guiKFGj>qw2ll_NibPNKhwpv*us#w&n-ln# zH;MXRD$R@FMx>~3`^)@;ui-nrKkR3-(v^UFMuHfIxr3XVTbgh692UgIQjP z^l=qMenGeGf*O|VHjndY`act1(Mq}a^45+iaqw%;YyA?$^1 zrzbVx=w+oRze+Zys~miLqqzTo_`Wy~$R~zt{^1KNO{B&W=okde8Bz4;gG={(!moTR ze~1>9Hgv>BM3kVQ7`||l>s3N3115}3D)JjsAR+c!43U0ZTe!-P@~67iQJnSTmpw&4 z*K%QOueo|ZSFruTH`4c_`j66j&C8|I83Hl&2mO~Iij3;G24Z-YT-Gbv+;&kW;1k+uZ*-%t}nV8J~lK2aL*fdwJVaG z4Jqe9y#s9Ujc^amyYl_rVMmB90c(AH)Z_h%RB}c~3rm8hZ5*%;4AOYNmhfd8FGF!q_X%CwD^Vh z9BH-AhIBDaAm&o+ns3(khcV`?W5Vt)e{XZhCcJ_pXsiLlM-&7f3YJ?>9(Sx3dheGFho;}OY_W$yeZLNNU8(t~TcH|{f; zD`3oF#ryfej-ti>cQNz$Yy8GN!I;^v3^Jho z#_Hor6y~>hwJJ?}FOZN8?-JWcd4?5#^RL6pp?;UxkiMSaW9AW)J@xoqbw8gfy+L%P z2@hdM5s-5O3o&E&1)T|jZ7M`E5xk*kI`SGC*-dCrlg%n)-J>K)*?6TL`*rg~uqQwa z6?bFOK4D>GZd0L(mmFuAT4Q>q^A^I??4rhfxA1jc=;dTt(kr50sS@D&0be!xo(kh= z5mwBgo9a6gO;?#hyzWE2;mf4S!$kp7cyku)?%Xw_?>fx7WS?7WM`J>>ETJ8V)jxbi zQ>Z8HVQY5AgFEHz#d)jz+|}v#hSeG0AyYrL0z%hJYAnCHE!cDD=|;;J3M+M*WV%1n z&C+@t?H(shyVUetTXV=bg3+A4IVVRlO(mySU84+$1r;Lw;bo=V0Zla|_B0p0i&H|W z*I5MwJ+l>7JM`}MB*RqKM*f(qv{ap;h554sL11%pvta%mQfYad#o?f8?9 z(+?Rfx81)4wiTuU^l&W-P_K|#pU93QN(+#sO8DkGn4X{Gs4mL zzH7bG&3#sAQ0sA&GRFDMVZPn)^e>6u*~99kP_vlNh5}idI0>u?LV8+Nuh$Q~xBTvl z^AEwLc=*haa#?ffwqv^P!=BslYR|{Y(#RV}jNm>SzF6P^>ptoF6SpnTi=r0ly3L#3 zcA;N;WpRv||NPj{Kb+WIi+F&S@>Y(TFfJ~xpz8d1J>YbAu_?x|_VD~9j8^99-7MB! zYIwQkxP4(SIgWle-V`~Xi%g@$OS>o7Qw4u1+3k24Ra?UuY&}{$Uuk&Z2HYHc*!bz! z=vba9k6p+Fl@f?ff!QU7#n5YT@RqEN?^;l#_UT5z_N|Pqls}hhm0V-g9_2<5VO>JBMof(GimH_% zt_Zf=dV+^l3zP}$RD1?%8q+svTC#Hv*lulpza8ww8Y;2Ub3|{bh^NW>iRtDL?Hs9? za1^~5-W_ce>5n8P*;JYxf27K1Y*B1%aXfL9J`p77AP`Bj^8Nl4PI|+R`oW(pbcA|T z@!lkTr)+^7wnuben39P`_+ahKdc3tusdLQA@aNOv^M@Mk5>vGk@MvKn)Y+itgd;W` zCq%vFVMnnMDO@B-Y&;Nfpy?pL8`NDe2ESi)Ro}4quZe1M@=#H5HmS{Qo-*C*?S67s z*@K$$|A(Fr>hF4bd^QSP#!VC<~Q(tz1cVhed`^C&~R)`{r zB>3KJ(Xhxk#>As#_BEnS004lhlapE_QuUuO)NYg-t`>uE%# z2A^9qKl(aVuyrDK7ypIIr+fZ(p!c3WKlsiAiUZXu6?Tva9Cy3amOz<~^4kSMqVX1v z`5=eGNf!~YVFo-;FkbG<;F)x~?Yx!0A=@$TqI}@=tXDR6HAlUu@k5RKq1TD-G&~5I zHse(5TJPJ{dIU?n8sC4)t*fay11e^e7e^R*zLhDm4&sc`G*YH?)ocu0vmeDIC4l@r zI=Ful|LXX}su1q28_l;mcJ453{8%mMr12~ZpbXwFp6{@&+}CX6l6v5CI9yP3K3wPJ zy*{Smt@H=!gFNm}zBt`V3k$t+*&R&w9?KcY=WAxUj3q(F!ITCbNAu$wKkg?ghP@&s zoh8xC`>`FZD=9?SEM4L}UJj2Iym_Vsp7yl%row9lrp#-QdzkrXe7duq{PHGrgZH*j zk$?QjkhCaN^|GxoOpwDt;gM`_waX^B(e|VBb)^Ktjf_u1DTmKjp6Qlb-(82gyyp-- z@_pj<_`1vF;LyJTE(z&S{c|)_AyTcXpkp`TFRqIshs*Q%A-_wl6@6GfHQu7#Pd}YuAVK4aYMNHvWeUVBc%E)Xygw6L$DK0SDF=@CtZ=)#4K6vbNCI4fj1T3}#X%w?m* zP8MsA6o{b)*@UCdAg zjVJnHW}plLv5(ByQMUA#S!Y>(yD!*NoM+A@`%ER4PT{0`*8^<(UF%dpd_|cu5IN}c zM7BvsJmrk&S5lEs0a+*l;nb3izAc8ygo@5nA zC)F1e6hL5=Ef4Tyt=y4qTG4k10|U%w;#Z?oD(tw118t_n2R5zC*PG&Xp_l{01;;G;<+6NH#k`< zfdYl~4>zZ`0188gtw?s-xN)6l9lk;_OhR)x4 zhT)`_K2cyj52ij^H3TL0o0%&lpjul0jr)hUJ3jZBNS(Fz9lxO)IL6A>BR{ss0PtRF zxGn^{y#!!DBNwZitx=7w8uj>K%2*af|0!0)C}nZvJo2brE0gdBxgT%}I~< zQAfQWF1T3M`sC7jmyk??5gybx@!wlO3T+n&)L#Q`bhmH6m%xm)^(6<-ltV`bxME|K zyyMPUg&5fd>pYGC1@q!PN5d=)SHJPdttaef^WTC+?hrK1hh~^?$7l>_Tjoyu3o3w> z{ zCULeB`?>#zO@Rp7%Lu*UdVg%Z7rqZf=iVUgDG_2dRR&Kv;-baTqtMpZVjqWoKzNnW zHT{KDTw--v+I_;0PcU#UOaLj+!@SBbCanUEXIV%06vh=e-TD(21{7|KWvw3f+coS| z8apUm@BCC^YPO8(#F3}*!Pc8TGf+rvDrF{n5BYV*WFzEQWShz6j8g4w|^rbcdTgCo`o%s`Mw4-;|~fuCjKCH zuLXE-LMVzHYsFk~2WxJAe*WXr`re_Ta`2eVcf_diOc;4==b0a+4qt$569nMrTX9we zd@EULI2vZI6fN47PRn2*TR!m`j8gxH?)oj@|BkWqzEaFp#L~(}?OCWmlIy`}p~q22 zW|A9Y&u$u}3O8@T$py>=?Y17q8(Z0Tz~V#gHuq@_?-=q=;12=!u8me$4MPk{iOtDD z%2Sgs3mAOacekf*>vY#*+G50B|8T24vKD$jomYpcT{_uG^z7;f9;y*2q(z(LyUm7x zs>Gu7#x7}a7|q9*J8U;as!!jMuvY)^#gN_p!k4dGSX#Py9qpjJ+-|Z}9j;X@59xwy z+oer{qze$K(#E^mKsH~Tj#-I#0#Kji7>dS!pxyB237*Yp`Cc2T|&_^T4^(W zj86`z+?i2nn%7FKnRQFWzlQ4pa`Ow78`s%tf559<;(6u&TVS)+9RM+PeIx!vgW4BO za7+j@&v>TO_%p-nA~Ezj>R(K92k6{iEamO@yW>c)B>l?0vob3Y?@^P0f6g(m$sB;% z-ms|Q1=~MxgM+|&NrHi*s5{b>VD`y?kJn?9cG&A#MEK)desfAwp^Y7GG;4hwpgI1E zGaSTkuBlJ%ry?zS>@X6qes_VmeTCzGU|zN_MrYyd;=+`JgLmr*vSphq)30NGGVHSKs6D~^~$L0sdd|2Nu?=;hJ!2Tb7D$202L zeJS%=56l(}+q(^|LHU!H(H8F;jfR~mTe1raGx=JU9VeXiwWBQvHfZp&$N}))77Po# zPT7L;hn+(^IwyzAo^LX6p`+YJ_qUi~u0Wv_sV-8+wWO23r+VWLdF?7T0w`YDlzNSrVljVMYK0`o4pg7N)7wMNO6+$+O1%W(#~2{QcHWrX~TN{nj$|rc0H8W zo=rIR=)WE{Au;r@2fWDHUF9mE?Rv#8+b~Jg^Iu%mM{L`Y&P1cw(qYcd$t^ezyZ9Fd z=Cq*W9fD6V2rPn;MBLro-6&0bIpU6n5pkTJrv8zXC>$B)78Yk`Aw0rIb84B12W{`J zlTbMis01Y1qb;;C_*hKszowFILB|gokOXmofxTNqE@ES-55i!GsoC_%ye1)Sr90kN zcV+|F7(V+q=8kB#>1x;A;ktvetN8eh8UWjuuk!%@u-zvYVEn4942U!R?;F2n!|MK= z?gmV9a+5SZ!hmLdOoiX-IdP2Dm)2H}cMZ>rF(*jnR>N&2UZc76SpRT%vRQR&Jr)b} z?+^S!LdQmFcD4m@RY4>yaiH+~)!f`0YM#F3nH(pr@6juf>A4eme^LU()!vJfF3)PV zC1KO=eGd{ixB|rQuhIEiPn24W?#x4e8$}8oX}~QA+5Q2B_r{dpR{_y5?@b*oG3_<1 zk^J;6~DT69}JV~ajsL46b#DvnNKmM<>h5I@R`rvoZ;|?3y5X?k+Zfy_lpT!v>vEjE4pym+n>JVjZ9nJqv6;hO2Et)t~GA53-EZqU; zv#IHWFY_7C=5xCwwYa)dy<)}v_e)8GMeWT8BIVQCNW=BsNfiwEb-RUc4!%5yF+I>R zZKp^Ng{mo)LebWJ1gex$is-2fAr@Bc>OFsTjkn4Kmkc9_l4d!8)S?KLIqjOQDt~cS z%X*xvX@s+z@X_la%#;7ubb5;t#{~6oMiDib+UtH*Juz0tL?>?Qr1pt3j!XA*(dvaov4?`lhwyqLGkhN z0SPR6&Ojua+0SJNqFVJnh`)|99V=();7CM&EO*w=T&^hbW^W#twwE&ho4B96BzITw zP>^laee-CUvx64#WGiauP_bC&5ehaKD;Ydgmz?5YvVSssxac>#+yt<$?)+K!e{Z{?Xd%!p;Y~d8^!b?KGrT+2aH}KU$~ajo#Jd?fszkn zq0hFb6N1RAxUmmt)rUE%^Sq&C9x$WGM3{HNJL)=?`19S)1_?zQA8x5qXep3x`0c>(YP=z-6-Tc|}qZ);S#0+IXh ze%pjDtoA6TY&`2H73)63;&*D|8Wezs0pkX>>)a=BAYDK!ctK$ywRIu_(f9~+x7LB! z1x6O5JMknD?sY`0JsL&?^9RgqE!bCFUQKBRP&z$3Sf9QaF$RUmzuT1sln__gLgm;A z$VINeX4)mx93TQGc4x;yY?bDqWz!h==Da!-W9VuE9jp?=8vq%U3vB$Ga;a52`tyQ6 z(aWeQ@R^~vkkT}t6GjYI0>Gv*d`}yrW;fX#c~I#U6|R#3)V0UQs{vKN?Yd4j3qfWL zrqA;q#$iC}YdYJ$B5JZvfc?zI(o(0wGHSN6QG>;=J}dMfG*m=*>*sDqO!9e~Qg@P& zJLC~JnzX!Q7k;z#=YUdRO0TBUb#uxn+wtk>4~zb0g?I#_jGG%2K?aX(r&QqKe@T0% ztFbh%PWb#EfG Q2pK8$Xu&GjH0Wq3~hYc4TW|W$-@jzvscXiW@fil>}@+^sI)K zzsq_dCMJE*Z>;3F`)#0&_eCpd^J=bUO|4}VtxOOJtKh;HV{rC@dW=9Dk*y9wDvWx1 zvrymN+~Dy)pf8gR-Pa$G=sWeb2y4E>sm#q?1vJReu%g(!WqiL{*S78qlez)k22CxL z*b=OY+Qm)}Z%^DL37tJ%KU&0i&M;>_9IgGCN`=Q#W2*a`BNdU?K8y?Szb{%)Rd#{u zgawbaU$;rvbU+{$@ckU#>Mm2BE`#y5RH2(s{x9r`YcGSXhm|aaJyTR$hd7#+apW9%*_IdH&7>OANA55h;sD zfvIjnmURfkPf>y=&&kjQtAZ^?zOJD+eG&K9cV7)R z_u|uy1tHP7EHTGMI>Zw@ABO2=<#QHON;9V&3MGUO()5O!3Xw_#(E7MoVu5+cU{7kR zxCP#52HB)V9IQ(}Nw9^92u92OkPRRU5F8G9np(Sw>-7~?HDa{hFF}{mH#y0IC&r(M zE{1gn&PW>@mVM83*CKd0yU^<=wJ`1szt-2E1RA-n z=>Hno6_f$(rHV!r9Ty-`?HZ7rhr|Y19vwpf^0l+Gii)vN^4AqDJ%3Ne!FFAV6KL;9So53qm{~^uuZPh|nE3`I*X zKYO$GvtF10Es0SeVQ20j#I7%22XVO@s<(QMOB&%b%M0XBoQdk}Pia~)$2fsdsuUSD|?ey47kXt6UZn4|kLjP&&^E zh#MazL2N%g^gw-9Q#=A|ZHe7XgRJFieV4Q2eb{^!bRo`7q^-l+gtQs-c8ph>JKKm7 z4qq5dH8e5*kWwCdBe{w%Yc}Pu_m?^#E8Gv6n&clf$w7b_2M=;;lJ0T|8 zpkbP*HtB$^1?(psBvVifU<>iJnC+usyCtR&!UF+)3CX&C9W|E-hBz2;NIH`*+LSzA zz{v@NZl9oDB6@Y_@E6vX)+p5bLC=$`T>sl%y18fPYo9#g=jVrN#B6%JW(R9` zIZf5sB}uVG9UXUvY{mh*ff~f|Z%kH9aEw+oP1n}UeDK=261+F)!P#zZ$=WQ^%LeKi6l z7w-l7#6?{|A;W}hINqKG4*NfeOs_O8#`%C!=>KP=!EU;|wnFyNGAKee!vMTbFkxks zmmkd1Cvt&H=Kb;U8$kn!I>?HI^XCkgV9nyyRGAg{S573C95In34Ly-VZ;w#{SKb?` z|EOE;tr{K^;7@W}xQp;9uz<5V36z;&w)yL~EM)>;X{^W?cU>klwY&N7tesky%Dv|0 z9^@;Jt0jUx7}i}fa&mh4FUlfb9yT`Xb{1VM9hP9rwXhKy>2m-P6%3&_j9>4xFK=vk zf#TaxtLSeD2%D=b9C1CKK$RXiB4Ch#s{&`uU7*0dBmX<335+HS?hgRGxibjGF+wFT z+iK5Faz}zd_OTpQ^GTpDc?QN(Bva(~v4G#W1NM_pBeDIC#E=NvXd{6SHrzz#z1~QA zr2@sxQ1(|AHj~9*P6ml6H#h#UQjp&ZXfu!hZv7U?`bFddbL$CO^nq(Ur-Ld|nwEe< z@Q2Ihlu%a}W(2Mva5Q`N>|K}-`~q(UzWtwN?Hi&;_{93RVbYgG*3)>YSo>@avUb7y zoel3Y&~i2r`PEs4GQFN{?^sg|ah42KgD2+Sag$Kt)3v{RbnPKq4nuYQF1q6~;%l8f z(V6-~vL{DdKq$Kk$xh({2EvqpKIT&%l@MdQxndMM`M8R4ldxU$B-qO-l5~?^!siUE z-8c@xp;u|(yqCvA;iXJ1;Q53RrDs?$Qv#TEavJALV`~bS2doOeR=TChL3!v)X0Z$#cwnF}bArgFm zuP!b+ySMNfq0na5LJ59gyeRzI2)NL1im@!w{Vy3uD!$2f+s1w)#~moF@h=zl~< zQ4}DMKk^yVyyp~tjc|p;yo@!IvAn1&fG@? zI9hMl4Z>(X%3Gx5rn?V20LCUxBYT6$5YluVhqGJ+B@PUc*;!Lg`Nf%XZsS1R3INf< zLb&zRy%pgA@6dkegZ_)bDx+|33nTw2|Mew?ed;#2+pmdwi7evdD` zl(1#*_cvcI8PE4+7k_-hy0Je7p6R3HrdN_WKVqc;Vx}F(KM>86dB_`QZSr|HTvu*aWV$KoX=!NzyF#BUlEeOn*aE{`(Z^o|xuZkD+I(;>`nk$P2VHh{ePDC0 zuJOTZ2weH7YMQw-lP5xRPC_b6us8Kfb{WRdu&;(eO?kA8iqkv4P%&t{?wN~AK8tRj zC-^isG;Ve8P3A^{7>IPeYjJO^OKWSD-s(h!!!YXe3k!MoQe{g@fQ@EGtzoRSNiO=5 zO63QaNA>BEx1|)agmwO}&4TbM5NQi3KE3;ZA}%^w)yb<>@S?k}u^OH4dwQVye1z+H z+SgAah>4ZweP8yy3V!Th>%CFmzv^vy>oPaz+3Blyg}5}QxK!SI;PVsl{Q}ySj}ox0 ztnl{CkkRs2(QoQr0eq>f?DS(jNN`@(dZouu-3{Mf9VleS`>LwxhP4S07BaqqeBf1& z(R&Kn?fB!XZM-b-J?B#ODP2U-&XXmkKApV2{`uIHnx55s!Ap?I z{RTd5z~6@_qwj39z*&<4bZ`zGQt!HB4t?=2;t%MHYR#}jG#?EN$+~e z8`fe~;c^=CEJF+0v+=v1Db6(A08O%%66%oJR0P(3!nYNou41jF*bJD;+V%DfO9jIr zkd!@;Cf0ntbWAwq-$ApGp{o46AS9T&iRW$*j%lqs=xDu7AX8Mh{5JIMDfsLYjpSGL zU#YxIt9gX1c@1o*zBym>y@Zdqp7AI6j_ubqY6xhCEk^y(eQBli=!?4L1$=vwLsn<( zTF0C)>So42sZ^fd7tTHMU6#3?6=^#Xg4Y%72x?~UH#VPlvrPV0akg$k>-IRP0TV@0;Y}7RsLxi>wx4qSbOCE^z64wa zOtjjufA&?qe$s_B(XCeUTa;$mK6dlJ=AFuPaOVA2-H8(aIi2ym>PCgA>{D73+h9t( zAi?6fnf&o@dt^*hiL0$Kw1q-rB!M_Cz zA-oC5o@-c`Bh62IA&*|BUUcO7rqeCO3s#zOj$JNWcbN$ECtLtHq}u z;;)p|(aZQ${C#j%f3@X9{IHChY;nc6*qH|jLtRovmBzcwcLxm3jb6HVHvQ=6Pc(mA zXgwaA<#e+o?hI`a9u;)Hd7E}%;2Eio+;@v|E!QqgqT3E@;mw<0fhpk;HjrT2>inx3)3Cc?Yj~j zmIb4hSARj-hk2BKf-2t|@B)<_dzxpzA^PHPUv+5M#l~NjooCfiS(;@=hGJI{P_&Mi zKtV%HjTmsaf#+D=Oz~4neVhjSwtjFfU`ftVZJ<()uXa1oPUykqWPhfH@h#Fy*Y>v> z@s3hn=xdN(qq&Z=Pf66vlhM7Q8^zg`@WoGbFC5V1QurK&>$d2jSSYS+PNmLkH>l<8g!zU^w*Rb zAnF&`feN&+u;if*;Jt2xNyhjB0Lmfi!U+J>Hv%F^pev8fdCKQ;AuaI1LC#TVO%s3F zb?Q?PNaIMkr-8>k@E=duL%k<7;j$FO{CDkFxc=kVdHaR=`FzM*N5_i@=@~ir?LKKp z@VRPLpUzQ{4-brmc397aQK%=@`3z`7)M2+Ke>6r{5t=KHi)BvQVEIjpDe=5|ZP(xzc9Uslg} zDj`%Ca=;?kIsyrx2^Q}bF-s6=60Rv^!YgL_%ETA``RU2k8ZP=t3b{EDp~oUF8sByK z^45%Q660}#2}*h`i>@NzRg&4R%SU^^XWRHraig1$(?7pMmVVYL$fm-GUw*h)N_AKq z`EBUih4tL^kYbO@(9}gOn$9Dkdky;k-x~i?@?axJLV~kIBuz|l&8X_LPRSY}-m2;5 z0&0^!i$9xqn3EF2Eo)BAam=9&gGb_rqd9* z=6D+#kL#7*~*TC9aD{&YU^G`&XZ=8&Tyx9Dx z>*;!r5?j`RhXfiYnTz@cFw00`^T7dWU8WXh-arEdn>;27ukrA%Em7sc(ZKF;yy8iF zZP5l6J2oL-3=EjS!SCtWR?m z`vM-3gc#76y};)>^hd=r|84uSTmuPSJOTw-_m*y-(Fu{y^kre;NvNF=6mjd;O9x7=9W4rXNv(YS7tT!~Yho zd1+H2CaSO9m+)QI`-h6|`^on+%rDQdKm@%n{2|RINH~A|>)dnAw9I-73fvrtdzFee!q`crZDOFwq-a)rD7}0Euf*!RZvl z)x(}3F5SDEg}a_8FRp$^{cr20Uh28$WajpWtNU&R@?{^7-xW}O-g-Ukt(MOGj5|#I zZ35sNT!-0c8()r^b{?7GZM`)Pj^-&u@QOd|X?RxuMToL~mIefR=P+n%T!mO6+PJbu zpghmeG9J_N>8`RP-k5gp?u%-btawSoYjWyl%=O#aeB3Yi_}{~hAj#_3i-{p2E_Xs) zGH%|4!p}RmXimmpdF>8((JfIo;1wfV%6_?d`&;$KUZkP!&Dm&UujPWW?jf(j<)x8I zyXQRS>9yO#PK5fcVW;%^y9@peYKfIg96kG=MJ2=&VT@yJBNa1gH;DXk+Wkr-+Z%{G z85C6e@vAzDU6~tS$?UHsmQ2Yrr>GbqcMe`dVLxnW50VF;FE>0sBSZry4@>JRP%d7t*Y zh9oV~vJm3FxAM-#mliG6ZIhHV+0di@d7hb+-TlP831y|@uDPCR)=~~BQ-ru@m>V}& z;MU>FKKX&g83?-b-##XyKfB)teISJVqFy-at z_01Ux$)t8MM`+-laC-s$4e`m0jS0x@v&ru9AMnq#F)<(1j)kau{-h4x4bYQ6UdY_R zS}47@;QIbn3!-*r)v%VHic`3~PH3=Uo1U$~+Vwe$3-{PISNY}+hw23%a)rcT-Ol3G@r65nxy^HrBx^VgQMZy!~ZeM^msu{&UvRvv4xlpX(US#axUb##>bsJgPc zR_2l1N()(Faem$Mb=O$BP&Y&9Gc^6{v5{UzYLH(4KR>N6)O!y+oj^|Amz8&3TJ>HC zn-*iU*dJ{xKkKg)F)FAQ!W)Xo-t{tkE3NnVkNR)@w)IigOI+uK(Cu1n=qh2Vh?}2Y zQ1g;OGvAByVH1(6BL&{JgO#BreJ`^)}Cd^o~z^VjEc? ztt*5_gbCUe6t?^GBt*5gwnCoZ98>~$_UqMBpFi0q3~_xu_&q82Yn^Am_g=l6r(}^& zET8${W*`GZ!{CnZMLm@oSt%k;5`~1k)8UWrEi4qom!$V3_L_2(r^dBmG2D1O`(KUo zWWvzXb}VGHs$rpiTm255Uk0TbHp<$}dN(#6c=zsVHLP+JltiaX$#ue;UkA?Gsjj_s zl)c;cMUWOvhX?3gu0uRZJ2ovdQ!BHB)zVDpaxM7Bnxb+tuEbuSy)V1l#(XesJv%$Q zug`Gh5MYDZN)DdwI2FS|FKM{}Qvq$MOpvFgrl@F2xQ}WV?fAX;1Xu1dvKj~~Lmfu&hOu0tIdh*&GY`qRSqUrX7|$+f@{C5E>z1lPv|CmLHu z=GMF8M5Nk+Ex%5Em@2N56`5#P)0s%Nw42sq_nu^9X!CXQe%ya&CiG98L;AFg8-7vg zDxK@X=jKYOrYF2#pVVDg7^@;$giN7tmi8hASMRXE8!Hz<}2Q zDP(6>Fuu==eIM^39-j5r*o}Z0zoy;(E=;O6w?N*Gv_H|2q~@_Pd96@l*h51|LEqXH ze+~j|bnQ^{-Rmu0hzG=2d%Sh5wAU>f3~8(0W849q!-RrD-ecLP`Ex@>7~7WUEy6yn z>;No&IAhvd6G0<%oe|?J)ZrirtrzTyS~n2Ty1Zl`(ScT0RS!38kV7HR2U~9a1ZS8zfIs3!npiHYHe9CfPV( z14Peq=ASwpyrD{;dK-DNm<}AgM1-gd;S(yxlj5|kHdlgHTh5EwR?(R^+_xi+TyA;_ zR3tNxe*eJz>qBF=r>D^buYOe`Ni^I_Dj9~bnic#CuE^I=iSR4f7{0c-IS1%XXivow z5W9RK1OK|$sQJHt1;;OvKntj0aGjXNXav28P8ZOQrBrXL`b8Ao7da^$UgoWe)0>)Y zx!bCywy$AXQ~8)E%ySP9aA;}Z;EPvqCCc5K5fVo)0sRf8V9ToTM`baHYfOlp16k_Y z`oisH<+JPcfih}0WcR%(TUAA_6anYapC4k~1Up8Q=kEXhoDsM*;Y<9tw>_ZzoOoIx zXYHRM9Y)nME`#>Z{L=U!cWKZsx@h_ZPTOB5))ULKMADcKYw6Lio#S@#Aus6vycSPx zN#Ay}Fe#rR2f~m}bxUa<>B_kx+oeYiD;-}kO3LRfhUG+KZJE|z%aCE3F;eQoc zdPeV|HP7@{6i5ig+Y8zg0*wYv+dTOt{ekKGxfKEi0apL9x4}UnNg}_HKRRkaEph3Y znFh$}81q3p6V-IR{l~8$X$DAbrZdDFrs&h^BeE`oh+t9Ojx0Xxbxo>}_*nf4Q-VA? z4d7=-*(|j@e)npJetdSwtX@D=I*T87v}{Z$2Ccj-yc^fg+ALo-E~(ikZG*#*AR#_q zYkBdLA>HpdivPWxHaRgRNVJLNi$@Vz;e3UAPl4#uCg@j1qIXw8V#1C92L{YYkk}l(@zDH{mMr#f+8gBknNlflZmE9xBVH=5_ev@ z`tm$H%h1+*utzZ-#<-a->8O0t_Ls{NKfQc&8iM~)v|wMe3rt4zk=avt*eS?wUEFTA zjDwM#sZ+L)E%XJ3`<^3Cs3R6t^H9`kXET2o2k*HB^_mEp&E~lfU*xvGl#~4Z!t0sm z8TvOj`PSMWtijlQr^qfFxq$V;WWz?95hYtcGL>Jt>Ti=@Q{-lH4HzSSF2v@(Ln$ z5+Cnnz7I>okQH5=Gw?2huOT1|3bK+83xOo-w6k)jz^=%%nB_lq*L)Q-Y>&om7Zolj zJwE&%VK*V?;*)&$ae3#c`|6dsZts1=`Mjgdk^HdK^cEQS~i9o0o*&r{n0oKh@NYkq~@7-+Oc3_e<&)52hs78 zvU2e6{t|ecd*?*JdY8R{wvdcjQ?8CD?0Xsq*C|$Xjt&%$ENECb1v?dgcka{a;K_9I zu*r6G{n5y`Dv_I=gM-!Zp9hb44u1ja=en2rR#{n@yxGcVHJU(JNI@Z?Z>DpKoK_CO zC5V8Mssa7u)BTUEc$MLY#HQbHEa*5xLA3@sUgHuF!El7oWq&WJWKJ$FjR}21d3hqN z*K6$GzY=g2KJx~~s^)Z_9Ia<`MW(yu$r)R6_b%EMaEu5PDw&N|tVf6Fz8YO+2)#)7qpC1X z{xHSEuapq5kD|vqf0nROK3oW$N*_apehr)${`H`H=gvs7<-?~F@?MrxRiK@hkBPHj7afdu23RS6KT6dkM4#zZc_L;iJ)$Hp-Am)`4I-(VMZ-XzGM`HihaqXM znQ{cj*eO7EVEi@(kp{?P)ry_&d*d~?HfHgz2RyImq9rasAkR(gj`tpIA3bk<>62E* zr@dAO2^&x36r2I=L1szJ8H`EWK)2vSzQs;MG#x}Vse?~D9@P^EEFwv^WuhJNC^hrv zf6lGlb7LAco?3nc4O%|9aU8H&NLCa+Pbe=NTKx0py8_FZ_mYnT`cDzdKtxlz9vC*t zM3q!kA2%8?oupz%N)q3JLBbvwTRm4z)+sDZ>9YM7Q-1$O$ym|HD_^m}WoIFK4L3~l z9NMdcC##>Np;lC=dba};Da4dZrzY0PPO0em5=Bh5p4g7X{;yUm>(%_vX(y=%x36}W ziYA~W^`F)0K<)rD4L$IKm6Sv}N>}zvMX8?1rfP(CJhaT9m?YvIhAWml6)z)hpK58#tk3YiAey?jEy=lG?CAX-)Rqpt3Kuq|!#wNhbWxUVHIALE3$HcZA z<)+5rt@l7`v}&0W#eve{jQrp2Be?#~)nG0=258Tb&+93je_Z=?{}1A0I^AG}81m79L7Df}cu{Ka~G*j_B>3t65ge*P6KaDpmWGS@{3 zIcF^;Nt9nH6D^)cI<+Wtm&U_}Hv2sErcSeZ{K2chzs#~pETaSbaEJ|B4@4V0fu$cB>ue>LinOurR%_ z&ppP?ytCg0@#Q75Z)xyGB3!)JiII|IMG6QOJ+@$fqPBjWWL z4FkX>J_pHKEM4)Zj1F)0DkSmIKt>ybG9?ppg(%7mu^Rpzti38V&ivX|IERrfeA45! zaS7&#QqgV_DJnYp-o1O}r8tWNjq!@+ zjjkn^f`3ZwH)4jy{^p$@Jlgm>^x2TDy1E`;hE++aCS>pT$0=zfD!q!mn!xE{AXpoa zNaz3T*}2Nz?F$)iB`cCk%Z3BBCM;clW-X)~ADDCg=gnA4@8=RVWjc6iSTjnZeOYOf zbgi<=!+X+dT{ZMW*FiJgBjL;uLcmq%+Mmfkh>R=KvAF||o5N1UGP>E~8L_F)Uq2AN zag7EnU9?kdgdpGl4&bEFUt-=!5|tz_B~y}hVwJn8c;_jx($_%2e(>j&&vV6eDN=YA zc*}QVh*ji52S=w!nHmRxeGA!mnV*N(VQ?t?W=}wdO?6omtaqF115-fNy?zTt-}OwP z;noY|eP?PJCFl>;H`k8I6Fu$v#K<1vyW6zr@^Z3o(D$)tW6``*Xv#%BGTvG_^i(V-6Co2QBwB|q5IFVVf}Ck;?uWbD1MB}dzKdoL zDZ@qUUwvH8LC6Y3L2wLhz8D9t)M38bXs<;F&8&~so{TY^c1~WiHtpR3t1l1n2Nxlq z%1PBNR_;?x!dNmpggN32{f~a`6rnlFcF!RA$`OdqN2)BE2@aD-H1RaO^J* zWC0kgmAm_-y+99~6OSvYDWZWpq!5?O$+U28)qr0WO985bruXAj zpw}z&N;ek!Z!QN=CVcHP>pYzN?JhKzhMM(9?BFc0rVtzM zt6-pzrW)Tz>~~AiPFk0{o4x*HnhvQ;9b&eLD$ZFp(u}&XEG0#P)BgBy-=j)}o0rim z5xO>7YM4`M<07wm%l+ti7v|aZiPK9l=vSm_AWu5jN@^&D?+;rhC;z;ju9N0NRzQZK zXd!~xh%jvvDN<_1QcXhx6>BW5RtLz}CttfP?CfbRW}?rSBeoOs{;S^M!ou*>m(OBEsS42>IQk z2LUbn>+L1ozveOvCytfGZFHXT)D)rPX-L#|TGk(5M-HEcV6`&*Rz4PinkV>{E^hqb6gz;<2 zl(g2eZrd_2d`!()mB_29S%@cn94Hj+$d_5%ANOZ~7#o9uMi66-b0^(`8XJRpx%=@o z?zAQEI@$gLgq*VLtOwOD!|AsRV#aSE3FYEdf&p}@&nVG^y{$ouTB+~iDpGQWibBW4 zR#jU<bY%^Qi|365bpM_1mTkpeDa;423O^*K>$Hp@GNu=39ey6bwA7 zii+XvT{T7NnMHfV|HlQu6yM!Vo!HPF{3}WoM&5pY1VA=k>pW`=nyE3)Vl&iUTB{+5 zX#SibAe<|9iA@>igA}uj7IqaGDgWJ(9@|A|-_{mjIJjhM_Vmr~4oYa?X@@+LN0nqz z2d6DZv5VbE23N`3g?bgXE&jZ2C`c?j3S*O2N`qBD!((%{yftqq9e@Mlq^Mf4M zV~xP$dztmW&c)`^*ci3<+xy?{)GT>g&ID-+0f>qLQx9i}XvYJkV~M7fU5_6=Ol%3p zr<-{6Ee$poOGe( z#QX*Zsx)^<)2kQ+E1CwL1{@?ll}(JLPZWP_HSO$xGs_x69tZBuNHlDq7URK^{luFB zAk^{7-5(1*NG-6Xf6Q9jKkcF5@s;0q8rwd!mU<)EMJPXsGOQ^AO3s~~DhCi3mZg+S zR_rK!xV5n%tsR@|z>4m9bHh=+PdadcP-*2~Q*;Tz$;0DBSg1J*=wgs21(vIW#rHq9 zSltAB{^wgG4PyF={r6p6CIDyuVIM@jDxi;J_D$`dAw`?V9Xld_cUD4PYfXr`OYk z!~SgjY`&aa8RPsob*YJNdWhK7tx0aFT%$AJE;6SNDk6Wo_-E|L5`T~G1y}b%RRNrn znd^sO-&m#EGUqSbFFOQ6XgztqW4p%8uEVjCvw!U~Y^yODC}ywcC@50QP>OFogWHrqhbqga{<7yxQ$Sko!@>itb0QrN+|wL^jtqd@r*WC!EHQ<2phN zW<#=Z%#T;*f3~LPO(9@y3M)0st+jDMp#jcXb~1<3Js<@1GVvShwrpY(qXJmn<|U`o!C0_`Z? zIc4_GAJC%iv)q0|oKQGFsJioYz0EqW z!ULmp+?&MTxUR(F%gT}DMqHg4^b=5{aQ@EqjX;i@Yzaxp%_LmSysAbX&ilqmZY(yw znsBx9<>C}un!CtF+2s{@O()^&Q-V0gF1>OGy}M*}9qyfb5O8z%rruSgm>|=(wQqof7g|TCi3}vayXyP9==nkXs8Q!v zQ$}Kw2p$S%;MbD`NlAIH{(Ko-4z5e(C=HWuGks#h6tMr=H8ut^L_Y14gkKc$*6NA9 z*%tucu{-6&kg7KgJA5q$jR(uq{$&aF@y(=N9+I-XPV>YHKikV zfA@ZR%tAlQanR?W4Yi`9Or_lA{R|8V{nMKgj{++dNoEDe?JhjPMJ|eIq~^Yv@012Z zqd|*&W;ePUK+ql@0MIr`{HF<&??TtG@)Rtr$0`ox=joXfzczkXsGO|F7p=taT*-Xu zx>MY3Q@dA82GM`hlCEgm{7zdR&(n4!r0V9yUnG>@uMrK;5)E&etIQ0PF-t(J(px=G zMp1Srb~p0C56*ZGft@bCD`ZzT1c2(g00P*BgDy_e`}y;t@+fyOlXt&@8Q8Ji3gTDj9%*?sq z#-lW2Kdo575x9KG-ZkClK%vwS9U9Ug@6Ur*JDB zN6jHmMK986802?dN7<-vaXb>w2O+U*gvt0xC9?zScUS2_X!OKho$e7La65ed_ixi5 z3Fk*^#_t}L&5Q-jklJ`uK%f{j_I9P-DOf{(+l1Nc#+|bUaCP21UU^F6Bt^}7<&^Wr zkY?j)c#=a><_oh5z5|ov`Ouo;r$P%wcVoYUq8l0B_E)ajlmO;sV`CH&Z zhyCwC0YUjJDM|w;8Q&|~!HWJkARI*v|2{W22lm8hQBwuY(?4p8z*ZORr9m;QMTD8| zcWn_}BXsE@SaqTx+z9$1UazbZOc7h-coV;iJ4(+W`GuxP8ctR;Sg@SZj(xs2_26+j zr`Vd+;p>~?Za-|>iyIHtL@W;H{dtt1;54T13E8CN_87@*(NUBguhGEQcMrflhmFZ~ z;E#KQLLxyJSN-<-?x?>T4upe~)l$1sa^KLBz@b#^GxhiIU~IMCxI!olhcPNu6cz&a zHAh)(M)>#LU0*t$;`kID{+qvc2!#nJM<0jmz{sYJ{uaQ^cBS>q@*SKs!S zwN$~v?7_jPY4+au!&Zf>@i`{*>C-w87~Uwwws0jKL#}D@U<;`vzlIH0oB>Mu+M@Gc zF<*t?aBPjK0g??*+L!JM!Dz=;xQI}%lePmNB({j0IjEFS-pjBqciCbUV{6u=ZAzen z7@k%87rAQJ@S@>i&Tq#k2ENtSm9O`Ls8!=nLF#69c$_AVGo^jJ`^zw~k9GHXQY?0u z8^dCe$O4SGCOn#|mJN*v14)nH@Vd7B{HN4GM|sd|Ij|fA}1J5J} zV7H9!0@}hi9z;Iv!ovCeaZ{z#t}LhAlL7nhnms<)Qh<=%aE|xBza4-!F$kz#ogjcu zCxHJBZ?F&GQc*Z5oeFkea^qo$fK?jw#Qs3{xk?3ki6fUYlE>B2L3QUpEYz^RFc%u| z;-UnoW}b)F6h#!JNd_oG0A4-d)uj-$vuZg~F%HZ<(Txg}#~|w+jLLJK>=SzksKGe9 zaiOH*u17U)7+6&=)Y#&5^ZJ0LSz-B!OHXukGyrN&SQ0VxkdjwD-bPL;sa?Yrhh5Qu z&IU{iCSPpgsw?gT)P5FLOL_6Oi*0Q(nF7DKfH}gh*v`-7~E%w!A9C z`GYiJ5os^TuyM7n;0lIfAwF%T`^O3Qmg;l4(nj5=+;~NArRK_=^!=0#=^=w%nY^nU zCf`W3|9K)~^1k1k>ahI0=y`RE5E@BQzW&HMziW7ud)c)H9rZxwRD0tIdZ>BB$y$7( z2qCXN7g9Gpx*XwWmR?<^cUSIPl3QVu_$yrOtLf>uPzE0HBoXu{RE;1l=~WMs)*+HV zek;%}QmDPxUY89Y{|Y9Ew=tRZCCNLbvIl?BJ%2I)j8S}vtS+@=UpK;A6cS!83p&F< zgLv|0#DaBi$mzarLvOoqdRBS)-Uc*qP|{SGrj{?P86jll?=RPIf$5#P%8*ZW(Qaz z-7Giy>FFkq>YR8I1w-;R9~|GWaG`-4SQeD$g2$do@!hC%P9d5);iw=;hZ9Rwf<`Fh zDPTiZECJdMe+uM!Y8S9+c?sWg!PQ=X1Wr8SA4FT*!PZgwXfaAGMlblsZCTyya%3zP zr77r6QlzY3aT|$}B))nduegHO8O}|X&{Nx;O{y$^x8UxRTq@XMvHM40+6EAF5Kl=| zO)t+eSZ%EGX49d8-EQJdC)qG-o%F+ zS7eAe4)gVD3JPuO%6=}gfOM3~fd(hgBoU~N06+0FSuf8J@|kRF!t53Ur1KL%r+QJ$ z_Mo-A;TZU?E5J{ySEaq#4{y#loQ2;DwATc3VrI-dl)a1VXf#?|UW8_dKzvN{1Q3i|3>5O|eN>|Z;fSNcdNG&p{e zP9Rzcf>^x>eHswp3=p|bi62`$+Ss;LA?g`3SoH}JydNSThJwD$Ex<(Sud2cjxE}a3 zz{fJZGgbcpc^+PV-*kZwpk)QAMElenp$|=hS0UKmY@>snvC!kKjj0*DSvgmo$3P5f z=O06p{~vm`1+pDtN-a>K?%rbp+DFY|=yWiTPtXcO?>PWOv++Q_hy99c;|o8tuDnu1 z53y3a!)6?93X1F%?05U=eC-eooQP#K_ z1^mW#z@|^0d8JTmfbufgN;kOs`Q&Mf3>`syd@s1+Qlq1yV)-0W_&cPW#Ngi*k|@4V z%M%1C``u;82@WWI0nVq%XNU7$$<6_?pI@0J&WpXENH+p@2Y8d*7lGe4x(s%c$hl$f zFGWuH{(t}6nW{C#oEM*-UIh-iJGoOciOiTl!piQVoymx+nIcesdD^|*l>PTSpw67j z{~pEtY1rkNhFgP2ntxXnCvM6%KJ#&9*mMcyi?SXudAhKF+|+0oQ*2zs#h@goNgRiJ z(T`k59k8iOh+B3~-BkQK_rLl^@Yl63zKih+S)|cQy-DlYd-I2p^II4%IBL8|LAsf#;CuK7bH-Hz)&JKpXT-- zi_FvsU{9$({?pg?2TYvm*G<7HzURH9qBbL`8Z)k-1$~R6{iZ77P7Ho7 z)ZsYEw)n8&Q^W)B87aA)OWVy6Yd?z;sh|Iy`4}7hbo2Q02S+Rfk{Pm>H}znm8AxM# ze)sryE4Zb+mSjfoV!tFI>g{cZDhL>HT@VeP&GFZ&+;oAJ zfeVr~hfcI{86i>D1zQ0(B90agd0({f4D3kq`U=Q3S3LudeW)cFAT`@x@48FH`Q5@eJ7RHyKFCn6$qOzK2JgVv7_JozO+QIF>cn3yA zsc6LWWP^{2ncd}NQzs!j*o$&cmnl)wFg-Rm3YDi>qaLtK=T*8m5o~aWdm_c3_~XX- zlQ?Q6RQ%!__vWJvyoB0Eh1YiYM{mdP%9gB{yC3@gNTtjw&6lraP0!uyT@#pksxhml zatIIa6r<!;vBRhvu0U`#~CJA%m?)f0@Jdvt8J?3b$S>aw! zJzXB3N7y@uht>;2mg1hzl9*p5u?=P^&x=v&M9(AVtV*tvXvFInPNvO5dB{e6@5x1< zmf2;ionq~fLODYTC^t3sYEihysLdur)<@PB4VqpGu5eMX13ka)y7Jv#BP4JzUsc8O z+F0Qvi4YiCCpIU(ck$0Hq;QOLHg#J|3h20uhaFHtHv9 znVI;0L#7V@f0GxHKs+;CaT(OadwP0x+t?V^RgevKI$+@nKxpi6rf61l$Q#j)QxG%` zyw9c(ISz?GZgVW9+u_*IpCoZNAiV0IO4Q%~h+yzv@2PB{eRQ)^V&|+r z6aYdirR!z;2tlqB%$PQwk~luYe;?K}BVA+z@#SDj9UxdpFbnc)wCv z%JQ?wr$e$tz*iF`PCnN|+p2Dxbp@CW_m5Q?udv4$r|IFe?%;nu`{`M2f#3|f{8mjE zsoHa)u)QsQv^6JX*{wb-cdGT;yQ`O%mFN0w2I)rc@IW)pWhyOvXT$!-0bKKZ|MYWL z=Mpv{)SA0nLA3nw4Gs&U>cP(!kNpJK5iyl7Z`qPxD0aBF$gVBhOfZ}+3j9RJV|}Y+ z_Q&5|j_18fImuLd69D}I z#>NVidJu*#g#`Q0hiEbIda!dbr{+oyvjR#T$sh6)siAc%SU)i?|3w)|l7xV0nxx>@ zcY7SGMI*lXb_jYAeOIW04fy+RZwq6a*lcjQH;)H>CJv_C@Y0yTHps;BDQM}?1*PZ5 z*AEVk_CE`?nQad-AD8XdW#e$~;6HJ-o$Nw!#>Sh45tsKS6Yh_nvjfS|?O((lRfcODe z5#u!2&8OX7iW}~$aQRpm&LWen1C)}cnd#};z_lP!u_HfB42%}Qm#~~{@TIUkN;Wwj z6ksY4Kag)dlh&%lDwhLd;qM!30Bh6W_@L>82jA3<+0NEx?hq!V?Cg~6u9y*3LO-_f z_`Jo`o>w*2YLJ_G_UYmF`_LRSioq z_f<50e68cM({dfFlpC;FR+e@q>VH>IZn<;>4?sh!ue6LR_K0)w-`u?RA4T}b2wi>p z6->SV(v^QZdwmVrB|AGkuy3}nKL}D6i93g0c=CBxrBk^sF;FOf`{Zyo8@~&^E9+*e zwkB?6$Srxq)ex7iA&nnFeEV3VGgxVH@QvkTAu=`|_5{#osDc?|XOg{&Txxd%#O2Q+ zhAS>2V5i{JD=O1zs1zGEijI>D&LEIM{ZlzrlfuaMp<_ANc(LjVWydSn(R@f-hbi0i zE3ll_;UFZS5Mh&`hGMCS`6&Lvzn^5%-oVuP({4E83~B_hG@!pyrRE7p$%SKA-o+iy zE~ifLoBpa=jJB&x7UDs|$MnC@&%8U93fL6rnh?4Mh@%~)g@t=3U3}U)$n2qN+TE>2 z32TFWc5P8=m#uFG2ioer%Ss^b2KTg$Arf?~@!oWXdeDNxa1`MA(fz776VLu0BMGRF zPQo!U#-r z<6&0mVr!y15N-tI)c146@v&0wBwq?XCgi-6^PtbAuR+HTp8NE%W9(oUtsmWhK_H8@ zm!Jjj0S{6{)=$8$W{ebGr~!5$KyEw$@;ZT;BU7MaYOaZRl5fUDt&c?a`jGS1xAPKM z7%Q4=iZ`lTttm=C^;Ai>KNiAEKJ_(8B)${v=miUAjVa)-*+b|vRZ7;`16WO{s!_sB zm6k2!*}th~207ij82F2lx9q1NzK_$T+&0Xm11@s;o>BQcTe+_-CvK$j)IU#ry(!Wu z^+kY6nITV|uRTS5IM&>ic}R$hn_RYzyE^2m_3P79{eOy<*PV*K*ju>&f7T^5zMtN) ziW^?23?1#S`_t5^w4^QT>^Yb4|lU53JP>(v<|#)}?hvisDcnBrFW^ z)CtsQl5eoOkXU#fU@{2;0s%(T#Bh+b&$`D6`LqeAcF`&RLgw%2owJ@z?<3k1XsBr8 zF}9HowR$3(hh_6xE6U+XqL2p3q2;DqPpBJ&BF8qXrYBLYJ4r)s2Zr-^)7C3o0EdK1 z9S~IB#G{1pCpa2;xK#8Ol!040Y%9`qLAe{0-7L;^LghG!_H&e;<_cKxpWwLV3@#)G z0$P8~oEN)3cc1vUHPM9$G6 zp?Do3#Tah2g;^U_C``@#>t+cb6u!k-bNIGY`OZ&s6SRFD)@?nXbN7d($Xiq>3@ky1 z1;>h;%#8IA7L)hgz`xw01+-tUrF;0S!IRdcZqaF9CVl_DHNdisLFjBb0tFHdNbfd}Wv{e3oYwJ*_1E<#m9*8pUP0 z)=cH|;EPQ!bF5Ak<;gO`zi3o|Ac0l}(#(DW(l;O`?9!+Yy|2nd^u{>!m&KtnBY{pq zx)2?c?UzHxLP?69u$UoGl=v@+2N?ipCMg^8V=KbdnK zEnoW5g1xVqpLQv&T3sUv_*9ywp~`7U6RrzYaQleasS^CWhZrv1M_16 z;`CZ2ETd=vh#Ru);;rzAV>txk`CW*cF^loTe$#UZiU)rE+RacLY_0g+>i^LKz?(tH zKoU==G7A#ahd^&RP!dWw7@ke+;!2O9Q4MDRiIf4Wgl1_C)tl=3Tr@#e^YM(aaX%nG z`B`K&`|7A{6F8Wf-SU0mh(`g3N9tdKI+liJl6KUANOl3&{QEB=&nw;vNM2QAI>vi| z(d(XI=Gv@o-71JdWVPs<`zb{aIR+6kjTZnl<2C?_BTQGo@ zG{|tbUp*S=CJ(O&6UQ<0Wu~@a{jx6W&W>5Fe-b4#I((Ix6I=Ub_uLZu=lMP7L!Z@K zO#^bT!oAs1;)TqV%TfE=CV#=5$+HUofeLq|Cy{ZLPJXtQ}L zvsBI)ajqElAlfrp!TRrZLH)y!RvB`gPgPV3(^1(QxvE`<>?VJ7>_~x4f)x+_c?h}k zxGdXXVeYwoVfZg=ETz0~D-~h#3oQ$Lr_ut#KIpcs89GQsas? zeitjE3XDf(J+nKqOV@66QhvmYVq( zY-HPyuQb17jR3lc+0-N$+Gd_73@2AhI@D`PYFF1&qi>37dp|t5Br$y9We{&de0cuU zd{2|IU%w~`2{j(dH90K=g+J71#?ru!#}l@~>LLsL!z)OtaZ>h(OktOO88b?azq-7X z0*oIO257(03rOoeyXzN`uhvpspB0c-fePPO#gZuqG>GMnU=wCS#$t4icWe|ANLi2& z`4}F84(Ti6G6?ci%S9PDa~v=iA{>T7AwV{E4emDZ#qgf%_WDjnRmq<2ezD)xr>Zef zIM5A}<8aX>g2cE5+d;decq>5e@ez-a9pJB&O|sJOcOUVYF*5GQfqX)dV@(05uaAJ2 z9xv0}N>k*LP6GyT*=66EHoSj?ogpByb#;|Hd30oJ)f3n}!(Hjmb>xu8qY6{Z+iy2cNn5#E z*mT`R=gWyISvoXvx;bzR@~-^h-Bpaf^5TZ^^sCDkHyOta#l}t#7!EH9hpv=POd|jD z_+i_%SycqW5oKDW|yb#RynOI`B*b^k3z`@8$tx6QT6!$>ZwhhtXH)wlXiswR%o zjaw-T9#(H{NV|=Q8vU@VgBkOdMw@jeV3K67c z!ZFane-px$CD@LdV-QxbF&^F09C9JIyYz0=&if>`!jO;eVpGBN+`j?&PzJa#8RgT9 z)moS?$=4UEhRVyxs_^Q%^I#JV*TCzb+GV?;76f3R^n-9cS>S+hZ9}-YbK+d!uR)Vd z+>7a23*1ZkGhZYI7gxFdY@G=0iW{B3OW=m@=dT+cd3ydOTtv!xuiGxxu$~pM0LEe0 z8A6%IH533j!mXKY)%bxk53ESh1J5u23Zo42!SM6)08rv4OM%1Co8tr)$PDYK6KphG zr}!!;$4C%Z#ydoiDx+I=NgSMY<%==jEnqV37u`^kQf=eavkOIS^55k|I%Ukr2=in$xSbcvP7Km8$#3eckYj zYpwXB);{NUUxVTg6OSU3?>{}a|M>@;_6M)!q!S(M{^vWZCkkI=HWn(#5ECov9zQ}| z#*TdbKKv)A<4@w($8V)X&YdSP+z5XZ*-^Fi{Z75CqFMI~!p;AXBwUZkmvTCr`enj8 zKK6TW%I=g5Tvqu0OUokt!U3i3jPm93u!lvJjDSP_ejhva(rPPLYMkfdRlu7prd;d) z$An}|Pw;pZ#o(~dNw?kQHuGn04mgkqqL@gSi12Eit}(c7r4zMk&c`wR+QM%B#{ZB` z=4tblcwO>pz>O9Xt^qJ%^e;GMre>j<`>mB!TWP0sLY8X04bqvKvSq@b!X3^m0*uU8 zfJPJ7dtJD?XpQD+2N5Ck_BtK4Ry`K@A)(?1cEmz)=L?-xaQUyWl=(u@K|XkI7-{&U zT>rh*q2Y4V{(u?NeVdJz(NB}Jvrq^a^R`l9OgG;H^YSgaK+xEYj7Dwx1-Q92O95<9 zKVDq(albgYq`^kqwt6i7GDV}AxlmxJ7l;6Y`(yn)kJ69|)lZPaJq$qs$_6RmZOKS- z{jB%XeX%yGC~?H6!|LmGL}bFgm-aGjqo}~az(SMRTtf54>^Wc4#!WW-TDi#WWwi ziL&_ONM_6I^q~gps$mK*Cf;dBE|aUmT}OA`3IBU%VdC*Aem|jZuewhx(%@INU5OwA zoLiO2Pl09(2)u-NC*|zP(qg*ygjnHS{Ef1 z4Qt-r7rEa*3JGKUr(odnIP|fV;M!7VlOn1!C_ntQ;aOB!6-Yj)G zjrGm-vDtN=+KaZ=sR`ktN>12!oS0dyQ=G(3TsAnm9n$Rm9B+GL^IkdQv(J}wC!H1w zA=iKF#YMjkvl|ja8!KNhS*|Mr;}zh&#%k|Uyr^uMwe$Q$TrUiKDucF#UrL{>NLp54&r6u-LP$iALQ)|y6WQUIq zEux*pT@ZK!i-%`gKwt7P_wVT7a5k)Ic-Z)OTRSGAVX>8Au#9K=@m8te9e_(@svoE- zKx4qKPEZ_zC>Q0hAwGeEd^3nV8V%8oxB6*PY+NmosPPxwQ|3aT;T8Qe|1BIcGZJJ212}-#x5=z`8?MQ zY*;$OkUbchPM<(_JWT$K9-YlNLO!Sq`r4dmT-6rZKVErenx}RGSy&6T#Qt^ZO_5DK zt$tGL-~Xb1^gK7nx$67wll_71Zwn@+usN;5o3GKg%T zl;|$hy_RhUHfg9@E`^8g2T9T<@-vB*e3BRk87Dj@5z2H>lX!ibGK%If9krsO9Dts| zui?VwFqs`VoCzyRL$fH@u#Z_dZl^3^j0$Q z2rQ%(e04ymVDfKqaS^bKPbJwS&E++zwLtxS8hB~rtOmroWIKR>72wteIZflsV`E&J zkKu}p1U5M!Is>8GK-bwP7E$PK%<}L;NWWl*!MABsvo^&*=0I&TkideMFuKEqL&RHQ z-_ESmv?OKf0IEwW`5MQyci^=h9`~=%mQdOi*)96G+e+}F@hV`L^?Rcq;LDZpunT{& z{_yug6rVV$nQo=Wa$|(Lv_y)|Kwz+);~af&luwHC@I{$!&d#dvmjRn=MMXlkod%mJ z^TR(Ngq~G07WS8LB5=ivFoW%c0$oV->gfHI=5JHITOu@Li)lx)x_Lzyz?E~y%V1tc zhltZOwA^j@WilOd-D+gz?ue#8sZ=a<>f3qTt{mHZJ;fu3#U%VLw$u2p&e!o;&j){S zsa+IP>@Oa5UHNDkb<<5_s?}!4-q5D-9J&;9=I#;gkIF|eq5<)poqig$mUcMJf6xDW zJbT7ZjG5$Ls`_EpoAhpP!o<(~#%cHrsn+n~9jCeXTfOX*pHW<`*Jg~AU2~mk z?VH5!zC7fa*<5lhbex>B%q=KwJ8fX0F8Jh%+}UT&*@G8p{!PYAHaE@fzX%x#3l2VE zp#jwT0HAzreupE9pJ*4)Ba)jp2$s@|0Eq*Zd<2q9wJ$pt=*-w5KMWA0j0FjfC?a!k zTff{p_h4jFJK*`LBkv;(x6YI1*N$!kOpFFq z3`-JR$eDVlA@0Vaq=*dLA&FDpCkc;oKvsyY7+`j^6OQe8Unpqw6xQF%i**8!T0=-E z6*v_Uf32C%9$TNR^e@K(0KRtXp-wX_M&}gBS3XX$Sr^HKw6o?L&jVO*&M#dPu{Tpp1BQ2yGrW2JIR88#k`?gAMwS1ig4 z{I?jo3wjV1&th8x_R5@whKFwgANqyvxVTkHp&yy+D?8OZutY%m`O!s_O$-lSsi?z{9+a&@YISLvNbd}~o8132#0 z1Cv^(r0J2prC4NV^-QiW*4*LSfc;Egb659|TTRpCt(*P=&OMy0f2NBsP(}q<+I8nJ z>iP5Ro0uSmqS1}%nlk||p?_`)y(nVwZmE1B)c-yyzuaI{#)R$i!>;We0bADp0+_nj zT2RxyW^jyBvRUv;B6^}ged2Xzhp@DN4e7hA?$Eq$No8J0=;fe44iul>gpczXLOiPi zmKSru)n(o?EKhWM625=$bG6pGuxT3Mc@Q(q1`2;K z1I!X=Ddti9CxOl_QYo{l2#9KcDz`JYi*;ypRJcPVd-5_s1;A`~iW}lg&V0-E*d@m< zFYdT5_;9MR@d4ux73j*y`LL#Ap#KL8b%8|`VbiEjnWPNSXfZ6G~jbSk(iJ*u8;os z`g?jq?{QurYXxi`?j2f+q14`4u?1V5f#YC?hK6BbVc1mQ)H29)ovZC$^R=;2hF*vY zz)!J>es78S=mO#+ux!AMPPEj)>(n>(2P2-&qp8$0V1 z_Yqg2thk9bMQ1Xf1)eQ4Kkp0;P#z%QmdEQbP?iBhzty*synsxb#y*{_1RMVdXjTva zBG)_tb!a-U)qL~>yG~F7l5d!_{hBNdq|#ZRv3+wFG6g9YYjSY577g_0$77$ZPVC8~ z-TAJ+bB8Xlz481#deHB?*ZgP-l#$b$+Daq1XY6hC1f_C04nyjxLxXo0JJQR_ix$AO zEct*x5+Phh0cL=LDazn`HBhkTBa#SaLdT`1rY2TqQRz3DeJX(3bT`Hn^2UN?9rr^l z5@9WQ6-aQCL37^Ed&i+>d_UPO%=4B6JNSq-tSJtwZGTk5vtEh_(4B8q;2M!ZzG5It zDf7XQ#AwZYTpW2X+cAdw1?8-=0;g=I;5KY1ekKu^M%ik%MqJ5dD9YfI_WJFAGat9s zR1))%)`y#hBQCZMjLU49y5~*>+ZHnc9@im>Bz52ax-S8l7aS*kFu*ZVM-@IZ$fMGFtk z_)0z8W0A4u&B2a#$htm_|4gbiDQ%m+H42WxbxKW=$!@yG9Q`P}xNBr}`4fs!SsU_z z<=!<sN|p)-jf$GyxN4?Ov& zkgaRS>r}r%8OZQPz5>|@y=dd^Y_QX8-B-N`rz469gUBtp@QbRa$MG^OtW%V)!NCWx zK#1KS$>$OO22ITtF#BKB;eW_Kd}8PPR_KwhL{T6OL7ewd-M{*@#(-U^ZAGki!(P~d z{>gxewdL`Hkw#;0fA5e{8;+y27+%&H@NfZ1e=a4-)r9$>4l}|}is*KSwfTlba#tLx zbO3+M$Xf_1bxne)isPCh@d?-^aKXW#zUW2455Wn7vdvo<3XRqfbHaxU-2ho8RKjc8 z3{)ObaQ({Y4l~&Y`05SjxHSnIFs^PF{_PK}+4}Rr7YP@+)XFr6L`X^HcEI<@_9hfg zrv$XJXf!Z`uTcy@O_&Mj`nYOW=;^+(D zh#P+#gk3c=C(K<$dWK%XH1yv5=jn6Vl8TJ01VK{)+#4B&g`>{o%Dh?cv-xs7wWRMx ztT#;S;Xz!&qMlizshDSue*-3l$I$2CmKPWOYt6uMF?DJ?{GUfQ3Hws=t%!v&1k}a~ z-E|PXC+z}IXSSOL$zvzrINC(5D3G_q!3&QD7eND`D@DtukNYjCv4$cz9^s-LhU^PN zq5&HL)O!~A6Y}VIhanh5O(iKC7F0%I)#TGG#jpIvM`!1*y?MbdE2cS|=OK1gTZxT` zQb9uR9Ljj_zdTs!OP}S-NeO@B>17;Ne;~Hs$*^oy=7p;-_$FLKH@agpF89-BUT?(W zTcV#^j@(1ikyOA|&h|SPtwn)d66^002gCn4EASp|tgp+hG}M*|eFi7w#Q;UE^ZaDs z$MYhjUNMjr4w0NW7BTS=@t;8t5J}V#XmD#z!$0E?m-|wHuJEJY;Pwt~{am1S`>HHG zG)`y6C=i6{B@Id?*kJ$Ujs@uepflcT?8M9;y(_odzP5;UvD)BJ@S6ZVnuqP%f*GUM z=V+HwU}W2no9^}3%6~V#|DJeimYo3c&(P58y~vlh%P1?!)7bm0jOLOWkl(|@8^9n~ zTU~vnv;zE6Cc;T^Q{cCyV+h)ZdtMMC3e>la_4*AG_18m^4SRF znep25pnR)W@U`^wByL3JF2%C9*3yW2OPJK*c1~hBUkENY{D%3f^O3$)nDBPO0n5*w z4F41shbH2{q-Gr_&nHtAEj{#%gZ*wrrPM0A;bzfGw9`rF%?-1zGx_mC!yUw-${Hkc zH-bms$Oe0|w%!)=-}U$pV!Bel8$Y;N8;=f|5vmefdzOdwN*7{?q2wX{g~WvPENvtg z&=v~PVIS&w-_p}dml>)JYZ&;vtcTuO6Z*n}mD0QDo!7B1SiEc8*lTyO?=8rnlmBo- zoDK@XsVwW{&F+T=($UhX1cDrVlgT(8>i!2l=uLNH8-1a~g1m?qLSLhS_x*K-ZBkX< z{4L$0xKbvlGudgRrY&TQ@SQMC)<>QO$(k&WwJJ2P1UbE<4IJ}J%0hx}oH&Yp67BC< zw{xdXAXPD!W`Yod<%Mf4LUT6iN3Xj!Uz-4Z(YF;AMjB{1C$Fg#4v5*uX!rj`E|=bI z6RMz+zXgZ*nly2uo%={Pei+|#^q&^ptn`I(eXc~!kETptN>|U^OZ=x0Ioo^+IQKpV+KeS3MS0sXp6te^2dT2kTxD~)!A5B zb{XUmOyEFbK|vXabrm>y8dp^8vU#O-tUx@DiTrgfRYd9Z9koaV63Ue&kYCe!{@i(f zIM89_*<&JKM4=>y+y);bJvtMU;a>Hq*>3d<2}O0xJa6|nN1rJ|xD#TCFk za2&`Sl63-g>O*aosQ4++DG!?n)ynDPE1$-Wh@GAJb9!Zu>N`_ORiYV7Njs`>6Jk5J za17+~09*i@dYqriN+cPy>lybq^~_GI3!kJ;7)yT=eXFKWJnf&=`MTGS&rMy(pec{Y z(4DkYJ=;6fzu)%D50|p{yNd9&GF5rop7H-^0niogOaHvzIUGcKYaT#XBYxCh5j1}G ztjiz1F1`9~nnCVCjdpj6TsqCJ$JDAsu|aS0|H4TwLEP^D;zTT-TK@WnZ|)kKq4DFk z$^j1Dlb7d}Ip!0DhfjjDl{a5{jHd_o>>+)9ido`;^jjJ7w+lSHoi;2yAGUrQ{K(tA z{xe8UQTj)$b^;DIe2Ez;JZ}MId~@&9(&GrG815Lz!04zhn9Qeww?-052h8qd#nDEC zVA+Ydo^mw4^l2F+I(u$>{B3j)${L>nVDY4L5f5T`XlUui2)BN*TV$64M+5A~pa`i1 z2=`erPlnVI8R-=YnE{pD&YDKfj*EW3RAa|JbK>UD)ycHQw)642ChHllW@ZRFOJ-D* z1yd@i(^nKD7hSXM{^`i|?ziG=4QE|>K3G$AFMKLkuXzX=O|IRVS-b}#W6kjTK$VRJ z##j(1J6Kf&V%@`AX}G3?0A8=zrx*+3M~F>gn)JaBpf6GEk6n~?UBDP8ABAckczz0U z9GGkIZHZeoE3R+ui-TbdGeegNG(Pb~ytO_Wt#(U^--a2=x`2xwWTg_q%nB|U0chdy z@P0ag*E7Z7iu{+5AL3wYCs|Zu?vUP5;B@V*z#X?#utuhN+17Iyd)HL&__lu$%~HQs z6*j@b2!HP6!~p+7Axj;DlE_ydKZ=lIxWku<%RImli^1eO43!8Lmg&cXnsx3rK>EwB zX7)e<09!Wg=)s4HHT}{o;PZb$f{vE<$={cWR_T(#W zG;5>>2H*{_rdw|Lb>gZ&mmDOsJuutAQ|lOYfU>FAJmr zDY1qlgzK_o@`Xac8W_g}(%PQ3Pkia$GOAVM-vBYTDeffJOic||2mEJB8~Er!>g_xG z6d+i*LppcvJRX7XWmSt|O5*0HL7^|P&~kNJ_vuSn#9hWZrhq`MJdn!@g`$*L80+oIjgf6o>o5?j*h z1rOKj)tqiiHP>GJwes_gF#v@=c`c5n?i1}7>b`Oh#;?6Hrx<{p8q`8?MCIqLjvVV7 z*2FDR9f?mszJn{swnc(msoE|4=MupXn3cZLFgSIC)s)27#>V8Kpd7`JB#$3|-qd6l z9Bgmys|m+RwEH+kW-`Z!b@k!3<7X=E4UTV`c%s2Ah#5f@t^ggO=lqbDpX~sJQw9XP z2wQ0Mi$=J75|M_h+m(OnV)x;IqIiz?-|$xhDS;49zuEL|232V8!tV0&9f3k{Iv#uc zGk|E#08{ABsK|az6Ig2nb_)<^>|~h{;l5(xnIr59@%}GFcKZ73%12i&<2yALJmt3j znBCDfkeT5k)vu>&tMNMwfyqgPWB_7bDku_~uHC=#C%L7HbKKI&A^KI)UXv(Ykkaj* zT(2m7`1i^}%uL-|q4!B(9}aN8lR(z}g{^F{vaHo8|5<31S6`fKnT~X8iB5?3^ktjlP2 zaX44&EiK6o-38*i=J{KEcAgDhGBOW1|+CqX8rM?7vWX%?;9n|!RX`VlK z?uo29!{VY?jLbyj2|#f2KW+yw18hFUVUVQ%IG(6t32E)c!zB1lso4>kVdjOJO#C>N z*epACphCZhakzfd=DD|+IOQk$c8C}W2SX{xf|Y&@x4SXtwQFa?5LvhMFc!?+prwW*Dl=P(m2sMX!Z>E1 zlsxJ?C`wj~9bTeo)|dLj62EMel|Bgl?nAGxPLQni-Xnx>uzWG@+0Op|H|m51PQL zA`ef`h>Z6f*Sf54P80~Jli!y~K%o3csD9ELk_Ft{f00L%2{MMC#>TUR#EH-?k6@{% zX}HWHH^>#56JXKs;UtveQ4sUU+<9Qd=Lc*?=nbs_TiI1ILt{z>dYI4QFy%^snbSU7 ztgwGdDQc?sPNMFs-G*(-=#?d>3p2GjKqe7fc1_{)!sFDzc>1RqAP1JAT^(_ft__##5n1x@&EVU% zZ(K+qM)y8lv`Bi~P1Lb(o9v?&jxvBYvPEUzupx+^;sC4Qz;F6s8VI-?6p?|l-E1}} zHCi0Z#p;N7w{CmNKd@6Y0~2^KK08{o*=TD?+px4$1Zbi}Zq?3xEq>5lCwZ0P4kF9r zOlrM1mX|--u|r;|VLFXX&}e*iWkm%&M2#QWTJQ5WT%_Z&TW4L$4&cn{ia=r`0JZJ| z&OBs!MAs^}>>Rw68y+|P5FU#|oWgm{kS11E8hNsW%{^?|^j9uC-F{?DsVNzmz9>*| zZm7~a7CogNAo*o|hJKj1kiS?uFY(pQToXHb$I$(ZW5+{<=!6hgEAv_7nNPbcTaj3hB|&1FlkSf;?BKL4za+TOPxL58{fG8RIieR7|13S4y4 zjr-H=r{I&jkyp0_0#_nfGjsY zR(siS_tDlVweIer7{+M`&6q`0-MAEgEcY{fSBSxkQ72A|Kk~Dv0<@>UU_ly$3jPM` znQV;CD85lJa~=$+N!k5N^+%65yv%CfvOz?MbxXS&UiVJGvtS9+Rg7i&r z_S)QrD?-N=B;!R+pN{i*s3Eyv#T39^x+#&8L$v!A#`wzRhN=UW ze&VR3!VTBCMbFw|iYZN6POGtb6Gv6V&Lf%lyb*?*e*D;9Pu1_%pE!Hp|D?WPh!ydF zIr@gJv00tO;I4#NGl>Cb1sXTIuhp8J9d%`uZe8LV&r4{7xQaP;l^8t6ixsOPCa06v zD~!?IHQZHE42QT7toITT!So>ThRs5FUtI5iTf5Zgz{pboBT}$xfsk?hX@1hgizFVp z1|LoZQ5Vt|ia|cND){YzvH?jJ;7d>Jkp>E_cZhhDeagKyp+y`sS${?l!uLyrbng7Q zthmyFPM>1gohj*~w5amb(!W{bHkUd@UmzZNx2cXVyx$$Oq*C!})@3LG_GmQvomHaM zz~@Ns46{_*RGYl7TB0P@nHmSMMxuuf<@W~CV$;&7U;2_J!rTb|Jo-iZXzGOhy1Uo< zr9i+ALKq8D8+;(I5W)&j)tKgnM28{ZJIS_VhMhhhCJ?(8Pee0Ya?9S7X8_}1S$%ys z>(JmJ5KQm@Hk$F>aJHK;?l*-Hv?kR4nj(!f57hW3pfh+hzP zNibSeyH^#>D^C-k#dD=xfFR}VrU)2AtHQJQRT8x`5C4`46Ijbr`i3?{PIxK#PdHGu zfdPLS@XFwG`+sE`&4g*4vL|XZ^8G(8@gcxN1J(!cSOkrC47W1nkaF=60b_Y8uz2q; zi-SI?qXU?GqtX#Cqk+2{>8!;kZa^O>*nxzu2sV>c_$}URNE$kLmM2&HKEMV2D$X6& zq;ziTnz-^NmhN1%iQVe1YaBR=Y!slnu32|dW1j`9q^UcU5`zZwx(|~+{awD^+R>I2 zu>Wmvp|bv4ulrMnvblHlFX;94-olWS{KVgD{}D+(SmL`1nVu+~IrBzXH($cs4w8;u z5!Q967SP}UkDN;trS+Q_;o71JU*hOeynkK6D2-G{rRSJ9ZS$`C?ycB!KU{+|^m0#x z-RWn3qp+H?e-_fvO>!~%J=fE-KH^hsfO(zqUMt54DALr})MJ6?=>qcIQ=s?pc6-8j z1|IS>Nn7nz1&E;~tU|zi0x(;W!9p*08HL?}js;Og*diNHeV57lHgIUBW(5}4PJf&M~axGGclij+S|DTICq#Ltc5}ISU9n9vN5yYDHR^|$L^Ip_15+E*6 zHoaNuynGh3!4)CB<%W~4TJ)STf}m>zDO(?R3Q0%gu1Y7dl2~D_tA7kIk?C>#zg&cB zJmX@@(dP$(`>FNom5aA>!sfWO4WKzKOCc+>eNO&s{rC0?0A4!*cs|ogm+!2i{cjhl zra?cf#a&DMcL^`*aQNzb?r_i?laM{9Ji1NNk8d=H%7lyR9_L2CCA_2rhKZ*tb{Q;Kcg-Tm!J)Arx>HhZ#Lvel$>5mbx+s4 z>^)VPe|xcV_-w)m%yFi?bU(4ugP59tbv*w~DD=NzxvJ!P&{6^WRRdNVY0qf8OAMJ~ z$psYCFL$cJLd41A>Ic0SCw^hl$~y97NoqCxamI(8GbI8hKc~p8K^~Q=2Wyv@8$L5Y zJAP`=o?e;!?aT$I6FHAofzV#P`ft={wDveKB*MIbZ3_-nOD=y25xD@4lCtRQI0%ga zI3B@~a*B){lK5`s<^0K%`2H6$A4kvcc z3o84jgf~9k@K>zQOYD-Wia=7>ac~e2UONTP8_sr7U8A~Hs(Sw!&0%QiwtL!qIM0=) zO{Uo|M7a99xjkVHaa{s+7u{=o`yepqphrxzR1lLy0)`1qd@&o6uS0}K46F_~7#TPm z!AV?yxB)iX%pSg_#X53ov6@#H9c#n+rEj+b&vSn3roP0eBLwLZl=20;A+Jh95z`7| zFUtze@n?i=N)r*ytQ{d{c!|Op{IOOTm0=<0BFCWgepFSY0_gYkoTCQYDb}nU?!O$?xd%3Y_zB;bP;pkgwH_5{Q6U%Kk zKZt$AmI?V>Q?$TZA~yf&g?M3^>l+tGJYa$Dlnc1buN0Kc)K!!G{cO5AH1m>*`vM9C z{eBb(;7Z^0=goy^?iRf0pfGPzGxE!ajs6-9GSXpxm5ga@9U0ef*?QbHsy|HfE40(B zw_SYhi3^5%bTbc<$%MRU;3>FqDFNYr0(|JYcuaPsY{ntgXrQ)?44M zT|KPTt}y=k@HuP4^R+W?i3KrSclE16LvGa9#cT-m$m*G~Kz?M!*2%gVf0~sH;$9P$ zpG{0U4RfYk`$x^OipvDkz8~{cj!yRImoe5EPe{De*)CcY4my_I5@7-an*Y&2JCmLNn5Avcr%8rW7P2GQhR+3vYDT7`k?@*e3kOnVVYy7>H=8L1tXGfQpo6dJfc8dRl_)_WosXE&j zC!g3~XCTK~8^s7%(AEPrp)5;$C@il;qZEfQVLU?%G$rt{dn#})y3De;@UkL110u6c z0bhiya7~$AQr`P-bq;J+2FZCvUnrFKxAb=pF^{^V)Fi=`Y+}oH@at~vLlw4ei~YZd z8(6@P&hpP()iP2A0Y3Tw9+j2UF}A{^A@#eVcR@1b*ZqYwf9aejw=P|J1i3?DLR!Ws zcJvW`*CM!iZ{oD)Yv>{Wqu{HQ?GDS-sTd3~PBX&H@Ip-tO5((~h(lQa+cg2?t&-)Y z^pJ4kqr?zXHsdFae{hrxtyf$>QFq#pw2s%;rVXK z=U+{zXn=VN!)+50g?Ql>$B_RXoi-mB){=4iQl8!iPt_APx2oM@520=Wd{x!9c01oP zhFD5rbOVH;s~75ToR~k5fsD|bTySiOo~=ITH(h>{AP(mvG9(LoCB85SbL_g-vgmbL za(lx5wA3LrD_%0aEb*Nva_$2k9f${JAP<$hQ=XzVp{?96$PdBJqf54?=q0LHd?`Bx z$;(@9ya>WojzceiEKve@Yodw#K$?i69tg4>tTX&&u?fEXTYr3YvO6*6M(N!A^NaMI-`|^%tlX!x_>akGCC7x8%`YK2RY(InG}; zz?_D!7`Dt6TXoexKOCz)BwEcZXKnULD=3THTdF;>TyFMs3V5v*24Ga3ug{0#5tna% zV||5C3IM4p`_ny}kJY|IKOo*@$F1H2)|QDVIgX8HhLx(6l=_WS&ss;D0>Bya&~Z-W zXhm5o0f$+P3IxglK|bz3E^y$t!ln}K=KZ2U^uD61lO($U@e2j=K+P_43V#JtM!D~$ zmdlJfqsoR!nqHY7!({Ir^!eD^(BdGbNgDTes``m`?A7u=0~V^@B>$sQmCu(HVMy;I zc|M}la>t!pSsw#{yJjn3`Hg31%%stcwT=GbQP+jbGqPPJwparUZ*2G$&}|FRLG zh*%v(Pm1JB!3LSX5H!`$P7q)vep6@G6+1;sc~4XN7qpG5)bHLE7xqRII;PJjp@lzJ z=r0OTSd092p3lkAQ#kiS&h~s#Gzk%`RqQwF{q(oQv~-bc9`GA8zY`|tP}c_8%D{~ilO63x!ZkOo!;xVBn~tA6|e ztk#3U(cj5S)a_!yX8u1HkDh>gUZWLN3!|mLSIPtAmc3#dBR2XHDO$w1%$|?n-kK2g zZv;YXV5jh=0zh(fv%F%MY#iizSf|WUX}}z?{bx;$jdS1j&QAl;#tHpwyc&PpnTH52 zy1{aB5>VxU0=S#xlW<%a9aPc=+=-wXgBIosb$|RA87p>d>5;O)zD+1aL22MMN0r@j zN1>kfWDDi%E6>BoaBdjwKBZrFb9t?QY2|)40}E0Gu<)e!v$iDJjg^{P#J~1d`XZ$A z@^b6a0U#hhnylN4_Xh#0T96Og^Y^;t(kuZRWEbBRB|v0`hU@9L`JzxT4i#^$`CY7>+&p+)TPhs)+KR$ z?qq$}#sfkC1mZgz%!%JJEctpi@ljX*Q8VX3Pw`=XK-qvJcv_>2z5HkC1MYN{$Qao{ zDN=p#!;Tk6V`ffH)akBd;l;)AqqzvK*0fu72gUpEJZmPdB^T_>Jqp-us$ae3S$*&S z?)R;?zJHFZOn0dCPmz&P8{{l9>C4hwl`R^y>`GejjO1!Hwu%ij#I#qtQF#}p&b!?; zz4zyZa?XNL(dmFo>TY=Mdr^GYs@E2cZ};RS!(*&{Rqm)!>yKX6@b!v)23*0FOk;1( zS8Jd&cG2w482*Yyuc8YWK#{E(twT@w3zaj+$H&uQci1CwV^alm5C=T$I-M{s3ok${ z6};7v$jk(teHt(?f0P#HBFybdzxMO#znz4Zpplh`moN7gTsC#vMt;vwR{3aAY712y zkxD(kUZ-C?4ftnE>6B@#3Hq0ptYgx&_yf6<122lDEtfw3J7EQR#xA7|4?RsUhedH8u;gplx$DNPGYt-wEp|j!Q#IWPS-RqMgfe&)pN4a z(jd$rt~cAx{I?eAH>lsR&jni$hxcsy-TIxbWTS^OtF5(L*{H*j$K763pwP6tJ~2)) zQ00F|Asf!y4VB|`;9mMq0fS_m#Dmtidbm{UDkM3Bgd)|{?BXL>_hMbM<0MG1M92%2 znu8ee3v_(J)N9%kl+(6BE@ber&UDZlsbJz&Q`4wc)*V?iAQ*$4Tm?5Rrb5QX&w z4$8lfr&cOxVs@X7EHwe(5MW-T-G$NKx%~7WA30|Bp6C8|b;8%Kce%tXLdHJ>J`@Pg zTd_K?X&Pq?(GM@)CvVh?@W_kr)f>&04^y|;Srm#L+i%qAZ=bi3De$JU&X zXY3iCyFdB6%XfP`Ec3ALbhqr@ztI0tc$l87nHDeRkN9gflIyxOHa1o%9I!K&lXh6z z?YE@feJ|`t`Bo5@=`bKz<<Nmp^TO0eVL`ERQw-Iq#ddA_$#B8E#F$+@XB510CN&=*r4Q{cHl4NB7ifk-G>p{~ z+1Z-4zW*OBfJM;O2)%`73^!c^2s5!8$^-HT$teCjAa8vf28P@ZF@^RaFtsui&xn*7 zSH~(0IW^X_u{~Nb_qoi=-VixjPp8KizoTS(IMnmc{WSEmJCK&&?mX7*f?^Lwc$QsK zqnUQUI8g7RnL|K8bb8q|K`xHz|@2yn1I&W%!-8NG89YCxE-otV4cT!+X-NF`N7=|GkCG+BTH}2Lvi|2Nh z;ImGv7^&K5aGS3Yj`+qpQPXeGBLChB?V!m6k|{p`YtvU4_%PZ9hy`U6E0Pj{Fs9;* z59U@OiM-LUDrvLPr$!s?Rc<{u|8=T=Bz$`CsS~^N&19E}cYTSN;8SXR)H|{zm=N&} zlN##xU=10id5W+V&)Gifggk!vALgnRI-xXVSsWJH7N-pk`|K zL2d{nF}Xl))N)SiE^}b(S4>0!GD9M`hrI1^E1$m`V}R&^gVL+t|-YB z7=Da$O-Lh_n$j#~A(7BT4IXesI~ZnOqWKV~qn5IUM%(BE|8qR?_^+=(#|lb;bw|gU zE^thN@k%0#6lg>M?Wg)r?P6TW3J?%O76e1G$w()8Q|0tu*9T}GKD(i?F8s)lbu5dU z5HIhU67>GaQFd=-yvxU^Fiu)l7GO8{NjMHDfIrUaco&38XaZX|&~2=+=jZhTKHBr= z1-G=E7c7XH**2Th8M~yXAaE4a)_hD{gS}JB&9)=BlHO;=P@HuN`u)}c)f+w7HFwUsu>1Tgb;}Pusp~+0=LIG<(|(vg^q>~1GmRc zg7|ft+jM3i@2XuAGhgMHbiMm1b0%$iP(f1a`3h1p@f>gecc=RC+t!kxDh$=0mp8^8 zWaq{Q-r_Jkm1o9?uwA;i_-HubX#ZpJZn5pqmT|RpiUollLaJoGjsr9B2+PAB0U#{_ zRk9eoYAhY(3q>s#0uu(^u^G{4a8J-vQ2pO?e+#zq@eTe7re7~T-=43YK2>6`+|n{1 zRGc)N##Fc}*nM`mLRECv)MoBqp8IZ#b60b39&GYf!czXpf?1Ze81X6Ra?=9uhn3E2 zLRB=!&Wf5EOa0Aw-qh_wDhR_nq(2&~KAax)9eYV{GI#m^!@Rc|zf7%fKb?Q7Mp&mw zV3%g*a!^P?3_pv&Tt@<*8NBrtxiYvbc~2<$Pl%9TP8E(CBsk^BcbM!`yO2N%uY6s} z<%m){`;51;qub;}i^u=N)mH#T9d`XLAt4ATC`+e=(jW~hC?F+*k|N>K4J%zLrLcfV z3J|{U+QJT z5|Hj3)k7u~(FrZUeY9YuGVhM#XHiuiy{?B{+#0BkH*6umSj{>s5!=t*9R;%DhNezN zNB~l^^yL>d(S><&d2nTig9T)V1byg@PYehtI8UBCmTFPr1ZEn(XljxWsFZ}wffrzG zJm3dBH;W|jn{|JqcsYRvSA)%>^7+X`^7DU^m;SemAz#Qi>H&4*GSuV9^f&U2`1}q? zBjgWc?n*CK+z#?SbE@d5wIwStqKZ=35AL4cO~1Y2-zcVgEP;8rB2j7S?+;XuRgHUv zjzTHpv!(tUfotobH!`EM6K<-w6h^Dzjv$aJ2L7jH_xX+BZ+>&DTXCv=)&0n=Js_fb zg+Ad1N9aKeLU(~^#p&a>(2q3r-a*pLSNR7do<^rhpGBYG(%nU8ef$&&2+|&&j?KFQ zr%Rg;^vVg={GoOLB!e+i;kU%XXxxYB+b>SCrGA>Qh@T$_;uJax1S8+-F~Z|WUUO^P zYbmi#caXg|b0T~5q)P_Z4-%3Io5P^79U-$ckm>}i3ESIBFTf_@CkUQkz>@|q^+vpU z9i7gVZ_xNuswzu+Z6$?5bukV9hw&3)&yc4VB$^X=aaqG5+H%1sfq;{=D|JUW+uY3&DskNEKrDv-YbSA)Bf*-1)+o3s=$I`x*88Pf z5xcmu1#E!1>Y&)wp!#oZl|EQKLY%Fn_sM)Z1~L(Tzx2l=I%G?fMy_X zs>~K}L8h)aC(Ka3W^_!;c1f!R(9xZS9l+ykkw#4A8xYVC&eRK*Wja5{FhJaX0(Z?% zNi=R#qL?W!xB2th4r>eDWswseQREMWo#ofu?gNVeAG-^etrDpRewHE>b5
j{+?T@J0#E00J!KhNY+a>& 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 OYv0q?$i4IQ<^KUd?|DK1 literal 0 HcmV?d00001 diff --git a/assets/analysis_1.png b/assets/analysis_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1b2fd0e2bff95b81b5f113d07d66b3a18ec71c GIT binary patch literal 39463 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%0A~`m3-06`f2&F_>eZD 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

s~gmC^#x2`&d;p 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

E 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 literal 0 HcmV?d00001 diff --git a/assets/analysis_5.png b/assets/analysis_5.png new file mode 100644 index 0000000000000000000000000000000000000000..9845e92dd2aca4dfe041e1651777f9e6644fd8a4 GIT binary patch literal 30214 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 literal 0 HcmV?d00001 diff --git a/assets/extra.css b/assets/extra.css new file mode 100644 index 0000000..9e08c20 --- /dev/null +++ b/assets/extra.css @@ -0,0 +1,21 @@ +[data-md-color-scheme="slate"] { + --md-primary-fg-color: #4D4D4D; + --md-default-bg-color: #3D3D3D; + color: white; + + } + +@media only screen and (min-width: 75.25em) { + .md-main__inner { + max-width: 1000em; + } + .md-sidebar--primary { + left: 0; + } + .md-sidebar--secondary { + right: 0; + margin-left: 10em; + -webkit-transform: none; + transform: none; + } +} \ No newline at end of file diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 0000000..a8cfd7f --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/coverage.svg b/assets/images/coverage.svg new file mode 100644 index 0000000..bc3407c --- /dev/null +++ b/assets/images/coverage.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + coverage + coverage + 23% + 23% + + diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/assets/images/implementation1.png b/assets/images/implementation1.png new file mode 100644 index 0000000000000000000000000000000000000000..294955bcc9d9635801f074e1194f7b55644ef5a2 GIT binary patch literal 63289 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 literal 0 HcmV?d00001 diff --git a/assets/images/implementation2.png b/assets/images/implementation2.png new file mode 100644 index 0000000000000000000000000000000000000000..9b326ab8daedbee429d07bef8c860b71df2f2278 GIT binary patch literal 74991 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 z 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 Ytd9=ds&`F&IXbIy1F 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�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

L(1>1fcz3Z7C(Km4awwx$X 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 rS1`j6`wKOYbUcnow3eb{-D$ndJrRa^fBaZmf9 literal 0 HcmV?d00001 diff --git a/assets/images/linear_model.png b/assets/images/linear_model.png new file mode 100644 index 0000000000000000000000000000000000000000..40b91d36d8ce7cf555e17c33182f02a8ca247529 GIT binary patch literal 59975 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≠~C% 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

jABxwQGP_zo6CBmlfhcN95_vVUk?B8K@KA>o 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%0D79Z1e9Id?Vh{`WbJ+Q$kS7E)J`9XlN*G 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